光電旋轉(zhuǎn)編碼器的原理及應(yīng)用方法
Windows CE流接口驅(qū)動程序模型要求驅(qū)動程序開發(fā)者編寫10個接口函數(shù),針對光電編碼器的驅(qū)動主要應(yīng)完成設(shè)備初始化和數(shù)據(jù)讀取2個函數(shù)的編寫。WindowsCE設(shè)備文件名前綴由3個大寫字母組成,操作系統(tǒng)使用這3個字母來識別與流接口驅(qū)動程序相對應(yīng)的設(shè)備。這里定義設(shè)備文件名前綴為“OED”(OptICal Encoder),其中設(shè)備初始化函數(shù)OED_Init()在Windows CE裝載驅(qū)動程序時用于創(chuàng)建中斷事件和中斷服務(wù)線程。在函數(shù)OED_Read()中將光電編碼器的狀態(tài)(OED_Status)返回。
3.4 封裝驅(qū)動程序并加入到WinCE中
根據(jù)上述方法編譯出動態(tài)鏈接庫(DLL)還不夠,因為它的接口函數(shù)還沒有導(dǎo)出,還需要告訴鏈接程序輸出什么樣的函數(shù),因此必須建立一個后綴名為def的文件。在本設(shè)計中為OpticalEnccder.def。下面是此文件的內(nèi)容:
一個具體的流接口驅(qū)動程序和注冊表是密不可分的。向WinCE內(nèi)核添加注冊表項的方法有兩種:一種是直接修改Platform Builder下的reg文件;另一種是自己編寫一個注冊表文件,通過添加組件的方法將動態(tài)鏈接庫文件添加到內(nèi)核中。這里用第2種方法,將OpticalEncoder.dll添加到內(nèi)核中。編寫的注冊表文件內(nèi)容如下:
最后編寫一個CEC文件,完成對定制內(nèi)核注冊表部分的修改并將OpticalEncoder.dll添加到系統(tǒng)內(nèi)核中去,然后在Platform Builder中就可以直接添加已經(jīng)編寫好的驅(qū)動程序了。
結(jié)語
本文主要介紹了光電旋轉(zhuǎn)編碼器的原理及應(yīng)用方法,并詳細介紹了WinCE驅(qū)動程序的結(jié)構(gòu),成功地開發(fā)出了光電編碼器在嵌入式操作系統(tǒng)WinCE下的驅(qū)動程序。實驗證明,該方法正確可行,程序運行穩(wěn)定可靠。
51單片機相關(guān)文章:51單片機教程
評論