999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

WinCE下步進電機驅動程序的設計與應用

2016-09-09 02:51:46蘭文濤
電子設計工程 2016年16期
關鍵詞:嵌入式

袁 博,蘭文濤

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

WinCE下步進電機驅動程序的設計與應用

袁 博1,蘭文濤2

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

為了實現S3C2440開發板中的GPIO流接口驅動開發,完成了在WinCE下驅動程序所包含的函數以及如何在應用程序中調用驅動程序的開發過程,并解決了控制步進電機運動的工作問題,對在WinCE下開發流驅動以及控制步進電機的運動具有一定的啟示作用。

WinCE;GPIO驅動;步進電機

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

1 流接口驅動

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

由于流接口驅動程序經過編譯后,最終生成的驅動程序文件為dll文件,所以流接口函數也稱作流接口驅動程序的dll接口,這些函數與硬件打交道。在應用層上,開發者通過使用文件系統 API函數:CreatFile、DeviceIoContronl、ReadFile、WriteFile與驅動程序打交道,進行對驅動程序的調用以及功能開發。

表1 流接口驅動函數

2 GPIO驅動程序實現

2.1WinCE下GPIO工作原理

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

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

2.2GPIO驅動實現過程

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

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

2)創建.def文件,指出需要導出的函數。內容如下:

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

4)新建Makefile文件,內容如下:

該文件指出了驅動程序的編譯和鏈接方法,但實際上該文件并不做什么事情,具體的方法由Sources文件進行設置。

5)新建Sources文件,內容大致如下:

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

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

7)將驅動文件編譯進內核

①修改dirs文件,添加以下內容:

②修改dirs文件,添加以下內容:

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

③修改platform.reg文件,添加以下內容:

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

3 控制步進電機程序的實現

步進電機是將電脈沖信號轉變為角位移或線位移的開環控制元步進電機件。當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度。即要使步進電機運動,只需對應引腳輸出高電低電平即可。

利用VS2005開發一個可運行在S3C2440開發板WinCE下的應用程序,該應用程序通過調用GPIO驅動來控制步進電機運動。由于GPIO驅動為流驅動程序,用CreatFile()函數以文件方式打開驅動,內容為:

然后使用該句柄調用DeviceIoControl()函數,內容為:

利用Sleep()函數進行高低電平延時發送步進電機所需的脈沖信號。

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

圖1 示波器輸出波形

4 結束語

本文主要介紹了在WinCE嵌入式系統下一種實現GPIO驅動程序的方法,利用VS2005開發工具實現了S3C2440控制器的GPIO控制步進電機運動,對在WinCE下開發其它驅動程序以及控制步進電機的運動具有一定的啟示作用。

[1]王鴻鈺,朱恩.步進電機控制技術入門[M].上海:同濟大學出版社,1990.

[2]姜波.Windows Embedded CE程序設計實踐[M].北京:機械工業出版社2009.

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

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

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

[6]周立功等.ARM&WinCE實驗與實踐——基于S3C2410[M].北京:北京航空航天大學出版社,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—),女,陜西宜川人,碩士研究生,助教。研究方向:供用電技術及其自動化控制。

猜你喜歡
嵌入式
Focal&Naim同框發布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
基于嵌入式Linux內核的自恢復設計
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
嵌入式PLC的設計與研究
電子制作(2018年16期)2018-09-26 03:27:18
搭建基于Qt的嵌入式開發平臺
基于嵌入式系統Windows CE的應用程序開發
嵌入式單片機在電機控制系統中的應用探討
電子制作(2017年8期)2017-06-05 09:36:15
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 黄色在线不卡| 亚洲中文无码h在线观看| 国产对白刺激真实精品91| 欧美精品高清| 欧美一区中文字幕| 亚洲欧美日韩成人高清在线一区| 亚洲视频免费播放| 国产毛片不卡| 一级毛片高清| 中文字幕有乳无码| 国产国产人在线成免费视频狼人色| 98超碰在线观看| 99人妻碰碰碰久久久久禁片| 亚洲av日韩综合一区尤物| 国产精品99久久久| 国产日韩AV高潮在线| 亚洲成年人片| 国产成人亚洲精品蜜芽影院| 成色7777精品在线| 精品国产香蕉在线播出| 日韩欧美国产成人| 久草视频一区| 色综合天天操| 国产精品手机视频一区二区| A级毛片无码久久精品免费| 成人福利在线视频| 71pao成人国产永久免费视频| 狠狠亚洲五月天| 丰满人妻中出白浆| 国产精品太粉嫩高中在线观看| 国产成人区在线观看视频| 91视频首页| 亚洲永久免费网站| 日本午夜精品一本在线观看 | 人妖无码第一页| 香蕉视频在线观看www| 国产99精品久久| 刘亦菲一区二区在线观看| 久久频这里精品99香蕉久网址| 日韩毛片免费| 国产最新无码专区在线| 婷五月综合| 欧美日韩精品一区二区在线线 | 成人国产精品视频频| 日韩欧美国产区| 乱色熟女综合一区二区| 国产福利在线免费| 国产成人av大片在线播放| 成人在线不卡视频| 99热国产在线精品99| 一本一道波多野结衣av黑人在线| 国产精品亚欧美一区二区 | 欧美色视频在线| 成年女人a毛片免费视频| 区国产精品搜索视频| 毛片一级在线| 91区国产福利在线观看午夜| 在线观看视频99| 亚洲欧州色色免费AV| 97se亚洲综合| 五月婷婷丁香色| 亚洲 欧美 日韩综合一区| 亚洲无码视频图片| 亚洲一区二区约美女探花| 国产精品久久久久久久伊一| 88av在线看| 亚洲人妖在线| 2020精品极品国产色在线观看 | 91福利国产成人精品导航| 欧美另类一区| 亚洲爱婷婷色69堂| 99福利视频导航| 青青青视频蜜桃一区二区| 亚洲大学生视频在线播放| 国产精品va免费视频| 免费一极毛片| 无码国产伊人| 欧美成人二区| 国产精品久久久久无码网站| 国产理论最新国产精品视频| 色老头综合网| 国产成人精品一区二区|