光电旋转编码器的原理及应用方法
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单片机教程
评论