亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        WinCE下步進(jìn)電機(jī)驅(qū)動程序的設(shè)計與應(yīng)用

        2016-09-09 02:51:46蘭文濤
        電子設(shè)計工程 2016年16期
        關(guān)鍵詞:低電平驅(qū)動程序寄存器

        袁 博,蘭文濤

        (1.西安鐵路職業(yè)技術(shù)學(xué)院 陜西 西安 710014;2.華為科技有限公司西安研究所 陜西 西安 710000)

        WinCE下步進(jìn)電機(jī)驅(qū)動程序的設(shè)計與應(yīng)用

        袁 博1,蘭文濤2

        (1.西安鐵路職業(yè)技術(shù)學(xué)院 陜西 西安 710014;2.華為科技有限公司西安研究所 陜西 西安 710000)

        為了實(shí)現(xiàn)S3C2440開發(fā)板中的GPIO流接口驅(qū)動開發(fā),完成了在WinCE下驅(qū)動程序所包含的函數(shù)以及如何在應(yīng)用程序中調(diào)用驅(qū)動程序的開發(fā)過程,并解決了控制步進(jìn)電機(jī)運(yùn)動的工作問題,對在WinCE下開發(fā)流驅(qū)動以及控制步進(jìn)電機(jī)的運(yùn)動具有一定的啟示作用。

        WinCE;GPIO驅(qū)動;步進(jìn)電機(jī)

        隨著計算機(jī)和通信技術(shù)的迅速發(fā)展,嵌入式系統(tǒng)在各行業(yè)得到了廣泛應(yīng)用。WinCE系統(tǒng)是微軟公司推出的一種開放的、可裁剪的、32位實(shí)時嵌入式操作系統(tǒng),被廣泛應(yīng)用于工業(yè)控制、移動通信、汽車電子、個人消費(fèi)品等各個領(lǐng)域。WinCE作為嵌入式系統(tǒng),有其自身的特殊性,為了提高運(yùn)行效率,所有驅(qū)動皆為動態(tài)鏈接庫(DLL),驅(qū)動實(shí)現(xiàn)可以通過標(biāo)準(zhǔn)流接口函數(shù)。對于大多數(shù)GPIO外圍設(shè)備來說,適用于采用流接口驅(qū)動程序模型來開發(fā)驅(qū)動程序。文中在 WinCE下開發(fā)了GPIO驅(qū)動程序,然后將其燒寫進(jìn)內(nèi)核映像重新加載,為控制步進(jìn)電機(jī)開發(fā)所用。

        1 流接口驅(qū)動

        WinCE驅(qū)動從結(jié)構(gòu)上講分為本地驅(qū)動和流接口驅(qū)動。本地驅(qū)動專為頂層內(nèi)置硬件而設(shè)計,如鍵盤、觸屏等。這類驅(qū)動程序總是在WinCE平臺啟動時被自動加載。與本地驅(qū)動程序相對應(yīng)的是流接口驅(qū)動,它是一般類型的設(shè)備驅(qū)動程序,在實(shí)現(xiàn)形式上表現(xiàn)為一個動態(tài)鏈接庫DLL,由一個叫做設(shè)備管理(Device Manager)程序的特殊應(yīng)用程序加載、管理和卸載。流接口驅(qū)動程序是一種可以定制接口的驅(qū)動模型,它的接口是一組固定的流接口函數(shù)(見表1),具有很高的通用性,WinCE所有的驅(qū)動程序都可以通過這種方式來實(shí)現(xiàn)。

        由于流接口驅(qū)動程序經(jīng)過編譯后,最終生成的驅(qū)動程序文件為dll文件,所以流接口函數(shù)也稱作流接口驅(qū)動程序的dll接口,這些函數(shù)與硬件打交道。在應(yīng)用層上,開發(fā)者通過使用文件系統(tǒng) API函數(shù):CreatFile、DeviceIoContronl、ReadFile、WriteFile與驅(qū)動程序打交道,進(jìn)行對驅(qū)動程序的調(diào)用以及功能開發(fā)。

        表1 流接口驅(qū)動函數(shù)

        2 GPIO驅(qū)動程序?qū)崿F(xiàn)

        2.1WinCE下GPIO工作原理

        在WinCE中,程序訪問的地址都是虛擬地址,因此要訪問硬件物理地址,必須將硬件物理地址空間映射到虛擬空間。GPIO口是一個比較重要的概念,用戶可通過GPIO口和硬件設(shè)備進(jìn)行數(shù)據(jù)交互,控制硬件設(shè)備 (如步進(jìn)電機(jī)等)工作,讀取硬件設(shè)備的工作狀態(tài)數(shù)據(jù)等。在ARM9平臺上,WinCE系統(tǒng)將GPIO的實(shí)地址(S3C2440A的GPIO的基地址為 0x56000000)映射到虛擬地址空間(GPIO對應(yīng)為0xB1600000),這樣,通過對這段虛擬地址空間的操作,就能夠完成對GPIO或者其他片內(nèi)資源的控制、輸入輸出工作。

        S3C2440A一共有8組GPIO口,117個引腳。這些GPIO口大部分是復(fù)用的,可以作為輸入、輸出以及特殊功能口,通過配置寄存器 (GPxCON)來配置為不同的功能。步進(jìn)電機(jī)GPIO口的控制首先需要設(shè)置GPxCON寄存器為輸出功能,然后再通過設(shè)置GPxDAT寄存器的值為0或1來實(shí)現(xiàn)控制GPIO口的高低電平,發(fā)送脈沖信號。

        2.2GPIO驅(qū)動實(shí)現(xiàn)過程

        WinCE下GPIO驅(qū)動程序開發(fā),不管是什么設(shè)備,它們的實(shí)現(xiàn)框架都是相同的,實(shí)際上就是完成一個典型的流接口驅(qū)動程序設(shè)計,只要把相關(guān)的流接口函數(shù)實(shí)現(xiàn)即可。文中驅(qū)動程序的所有文件名用GPIO來命名,實(shí)現(xiàn)過程如下:

        1)新建GPIO_Driver cpp文件,添加一些頭文件和完善接口函數(shù)的內(nèi)容,主要有:GPI_Init()函數(shù)主要是定義一個寄存器結(jié)構(gòu)變量,并給這個變量分配空間并映射到寄存器的空間上。VirtualAlloc()函數(shù)的功能是申請一塊虛擬內(nèi)存空間,該空間 的 大 小為 sizeof(S3C2440_IOPORT_REG) 字 節(jié) 。VirtualCopy()函數(shù)的功能是將VirtualAlloc()函數(shù)申請到的虛擬空間映射到 GPIO寄存器的物理地址(PVOID)(S3C2440_BASE_REG_PA_IOPORT>>8)。經(jīng)映射后,通過全局結(jié)構(gòu)體變量指針v_pIOPregs就可以訪問GPIO寄存器了。GPI_Open()和GPI_Close()函數(shù)主要是為應(yīng)用程序調(diào)用GPIO驅(qū)動時提供打開或者關(guān)閉的句柄,GPI_IoControl()函數(shù)用于設(shè)置寄存器。因?yàn)镚PIO都設(shè)置為輸出口,故GPI_Read()函數(shù)未用到。GPI_Deinit()函數(shù)為驅(qū)動卸載函數(shù)。

        2)創(chuàng)建.def文件,指出需要導(dǎo)出的函數(shù)。內(nèi)容如下:

        3)新建注冊表文件gpi.reg,內(nèi)容如下:

        4)新建Makefile文件,內(nèi)容如下:

        該文件指出了驅(qū)動程序的編譯和鏈接方法,但實(shí)際上該文件并不做什么事情,具體的方法由Sources文件進(jìn)行設(shè)置。

        5)新建Sources文件,內(nèi)容大致如下:

        Sources文件,編譯和鏈接文件,用于設(shè)置連接器和編譯器,指出驅(qū)動程序的編譯和鏈接方法。

        6)生成GPI.dll動態(tài)鏈接庫,這就是流接口驅(qū)動程序的源代碼經(jīng)過PB的編譯生成的DLL,該文件就是WinCE設(shè)備管理器能夠識別并管理的流接口驅(qū)動程序文件。

        7)將驅(qū)動文件編譯進(jìn)內(nèi)核

        ①修改dirs文件,添加以下內(nèi)容:

        ②修改dirs文件,添加以下內(nèi)容:

        加入這一行,指明在生成 WinCE內(nèi)核映像時自動將GPIO.dll加入到內(nèi)核映像。

        ③修改platform.reg文件,添加以下內(nèi)容:

        到此,GPIO口驅(qū)動程序所需的文件就修改完畢了,重新編譯內(nèi)核將生成的映像文件燒寫到開發(fā)板,完畢后自動啟動WinCE,到這里驅(qū)動程序就全部燒寫完成了。

        3 控制步進(jìn)電機(jī)程序的實(shí)現(xiàn)

        步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元步進(jìn)電機(jī)件。當(dāng)步進(jìn)驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一個固定的角度。即要使步進(jìn)電機(jī)運(yùn)動,只需對應(yīng)引腳輸出高電低電平即可。

        利用VS2005開發(fā)一個可運(yùn)行在S3C2440開發(fā)板WinCE下的應(yīng)用程序,該應(yīng)用程序通過調(diào)用GPIO驅(qū)動來控制步進(jìn)電機(jī)運(yùn)動。由于GPIO驅(qū)動為流驅(qū)動程序,用CreatFile()函數(shù)以文件方式打開驅(qū)動,內(nèi)容為:

        然后使用該句柄調(diào)用DeviceIoControl()函數(shù),內(nèi)容為:

        利用Sleep()函數(shù)進(jìn)行高低電平延時發(fā)送步進(jìn)電機(jī)所需的脈沖信號。

        應(yīng)用程序編制完后,示波器與S3C2440控制器相應(yīng)端口連接好后,在VS2005下運(yùn)行程序,軟件ActiveSync通過USB與其通信,將在GPIO應(yīng)用層編制的步進(jìn)電機(jī)運(yùn)動程序部署到開發(fā)板后,給GPB5和GPA10兩個端口發(fā)送高低電平,分別延時100 ms和50 ms輸出脈沖波形如圖1所示。

        圖1 示波器輸出波形

        4 結(jié)束語

        本文主要介紹了在WinCE嵌入式系統(tǒng)下一種實(shí)現(xiàn)GPIO驅(qū)動程序的方法,利用VS2005開發(fā)工具實(shí)現(xiàn)了S3C2440控制器的GPIO控制步進(jìn)電機(jī)運(yùn)動,對在WinCE下開發(fā)其它驅(qū)動程序以及控制步進(jìn)電機(jī)的運(yùn)動具有一定的啟示作用。

        [1]王鴻鈺,朱恩.步進(jìn)電機(jī)控制技術(shù)入門[M].上海:同濟(jì)大學(xué)出版社,1990.

        [2]姜波.Windows Embedded CE程序設(shè)計實(shí)踐[M].北京:機(jī)械工業(yè)出版社2009.

        [3]何宗鍵.Windows CE嵌入式系統(tǒng)[M].北京:北京航空航天大學(xué)出版社,2006.

        [4]楊澤輝,徐燕玲,劉碧君等.基于嵌入式WinCE的GPIO驅(qū)動開發(fā)[J].太原科技大學(xué)學(xué)報,2010,31(6):446-448.

        [5]胡秀風(fēng),丁承君,張明路,等.Windows CE下GPIO驅(qū)動程序的設(shè)計與應(yīng)用[J].微計算機(jī)信息,2009,25(6-2):281-283.

        [6]周立功等.ARM&WinCE實(shí)驗(yàn)與實(shí)踐——基于S3C2410[M].北京:北京航空航天大學(xué)出版社,2007.

        The design and application of stepper motor drive for WinCE

        YUAN Bo1,LAN Wen-tao2
        (1.Xi'an Railway Vocational&Technical Institute,Xi'an 710014,China;2.Huawei Technologies Co.,LTD.Xi'an Research Institute,Xi'an 710000,China)

        In order to satisfy the stream interface driver development of S3C2440 board,WinCE driver contains function and how to call the driver in the application program is accomplished in this paper,the stepper motor motion has also insolved,the process can be enlighten to development stream driver and control stepped motor motion.

        WinCE;GPIO drive;stepper motor

        TN409

        A

        1674-6236(2016)16-0174-03

        2015-08-22稿件編號:201508112

        袁 博(1984—),女,陜西宜川人,碩士研究生,助教。研究方向:供用電技術(shù)及其自動化控制。

        猜你喜歡
        低電平驅(qū)動程序寄存器
        數(shù)字電路中“邏輯非”的用法辨析
        鐵道車輛高/低電平信號智能發(fā)生器設(shè)計
        Lite寄存器模型的設(shè)計與實(shí)現(xiàn)
        2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        集成電路靜態(tài)參數(shù)測試
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        一種可重構(gòu)線性反饋移位寄存器設(shè)計
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        按摩偷拍一区二区三区| 精品国产黑色丝袜高跟鞋| 亚洲av无码片在线播放| 高清av一区二区三区在线| 婷婷丁香开心五月综合| 亚洲精品~无码抽插| 亚洲日韩乱码中文无码蜜桃臀| 亚洲va欧美va人人爽夜夜嗨| 女同在线网站免费观看| 亚洲av无码专区在线| 依依成人精品视频在线观看 | 国产精品女同二区五区九区| 水蜜桃在线观看一区二区| 漂亮人妻被中出中文字幕久久| 亚洲大尺度在线观看| 国产av一区二区三区国产福利| 日本av亚洲中文字幕| 极品少妇一区二区三区四区| 亚洲视频天堂| 高清少妇一区二区三区| 午夜dv内射一区二区| 丰满熟女人妻中文字幕免费| 一区欧美在线动漫| 成人做爰黄片视频蘑菇视频| 女人色熟女乱| 色婷婷七月| 国产熟女乱综合一区二区三区| 国产人妖网站在线视频| 首页 综合国产 亚洲 丝袜| 国产极品美女高潮抽搐免费网站 | 日韩国产欧美视频| 青青自拍视频成人免费观看| 中国国产不卡视频在线观看| 激情偷乱人成视频在线观看| 亚洲激情人体艺术视频| 日本一区二区三区精品免费| 欧美69久成人做爰视频| 久久精品片| 亚洲天堂av在线免费看| 亚洲av色欲色欲www| 国产成人无码精品午夜福利a |