碧波液压网 欢迎你,游客。 登录 注册

WinCE下光电编码器的驱动程序设计

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。
液压导航网

  引言

  近年来,嵌入式技术发展迅速,嵌入式系统在各行各业得到了广泛的应用。然而,由于嵌入式计算机的专用性,系统的硬件、软件结构千差万别,其输入设备也不再像通用计算机那样单一。嵌入式计算机的输入设备一般有鼠标、键盘、触摸屏、按钮、旋钮等,而光电编码器(俗称“单键飞梭”)作为一种输入设备,由于其具有输入灵活,简单可靠等特点,因此特别适合应用在嵌入式仪器和手持式设备上,整个系统可以只用一个键作为输入。触摸屏由于其方便灵活、节省空间、界面直观等特点也备受青睐,但存在寿命短,长时间使用容易产生误差等缺点。如果用光电编码器辅助触摸屏作为输入设备,必将大大增强系统的可靠性,使得人机接口更加人性化。但由于光电编码器并不是WinCE的标准输入设备,因此其驱动程序在嵌入式操作系统Windows CE Platform Builder中并未给出。本文以三星公司S3C2410(ARM9芯片)为CPU的嵌入式系统开发板为平台,详细阐述了嵌入式操作系统WinCE下光电编码器驱动程序的设计方法,以供同行参考。

  1 光电编码器的工作原理

  光电编码器(Optical Encoder)俗称“单键飞梭”,其外观好像一个电位器,因其外部有一个可以左右旋转同时又可按下的旋钮,很多设备(如显示器、示波器等)用它作为人机交互接口。下面以美国Greyhill公司生产的光电编码器为例,介绍其工作原理及使用方法。光电编码器的内部电路如图1所示,其内部有1个发光二极管和 2个光敏三极管。当左右旋转旋钮时,中间的遮光板会随旋钮一起转动,光敏三极管就会被遮光板有次序地遮挡,A、B相就会输出图2所示的波形;当按下旋钮时,2、3两脚接通,其用法同一般按键。

  当顺时针旋转时,光电编码器的A相相位会比B相超前半个周期;反之,A相会比B相滞后半个周期。通过检测A、B两相的相位就可以判断旋钮是顺时针还是逆时针旋转,通过记录A或B相变化的次数,就可以得出旋钮旋转的次数,通过检测2、3脚是否接通就可以判断旋钮是否按下。其具体的鉴相规则如下:

  ① A为上升沿,B=0时,旋钮右旋;

  ② B为上升沿,A=1时,旋钮右旋;

  ③ A为下降沿,B=1时,旋钮右旋;

  ④ B为下降沿,A=0时,旋钮右旋;

  ⑤ B为上升沿,A=0时,旋钮左旋;

  ⑥ A为上升沿,B=1时,旋钮左旋;

  ⑦ B为下降沿,A=1时,旋钮左旋;

  ⑧ A为下降沿,B=0时,旋钮左旋。

  通过上述方法,可以很简单地判断旋钮的旋转方向。在判断时添加适当的延时程序,以消除抖动干扰。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码: 看不清?点击更换

最新评论