光電旋轉編碼器的原理及應用方法
Windows CE流接口驅動程序模型要求驅動程序開發者編寫10個接口函數,針對光電編碼器的驅動主要應完成設備初始化和數據讀取2個函數的編寫。WindowsCE設備文件名前綴由3個大寫字母組成,操作系統使用這3個字母來識別與流接口驅動程序相對應的設備。這里定義設備文件名前綴為“OED”(OptICal Encoder),其中設備初始化函數OED_Init()在Windows CE裝載驅動程序時用于創建中斷事件和中斷服務線程。在函數OED_Read()中將光電編碼器的狀態(OED_Status)返回。
3.4 封裝驅動程序并加入到WinCE中
根據上述方法編譯出動態鏈接庫(DLL)還不夠,因為它的接口函數還沒有導出,還需要告訴鏈接程序輸出什么樣的函數,因此必須建立一個后綴名為def的文件。在本設計中為OpticalEnccder.def。下面是此文件的內容:

一個具體的流接口驅動程序和注冊表是密不可分的。向WinCE內核添加注冊表項的方法有兩種:一種是直接修改Platform Builder下的reg文件;另一種是自己編寫一個注冊表文件,通過添加組件的方法將動態鏈接庫文件添加到內核中。這里用第2種方法,將OpticalEncoder.dll添加到內核中。編寫的注冊表文件內容如下:

最后編寫一個CEC文件,完成對定制內核注冊表部分的修改并將OpticalEncoder.dll添加到系統內核中去,然后在Platform Builder中就可以直接添加已經編寫好的驅動程序了。
結語
本文主要介紹了光電旋轉編碼器的原理及應用方法,并詳細介紹了WinCE驅動程序的結構,成功地開發出了光電編碼器在嵌入式操作系統WinCE下的驅動程序。實驗證明,該方法正確可行,程序運行穩定可靠。
51單片機相關文章:51單片機教程
評論