旋转编码器编程原理实例

上传人:小** 文档编号:141620829 上传时间:2022-08-24 格式:DOC 页数:8 大小:240.50KB
收藏 版权申诉 举报 下载
旋转编码器编程原理实例_第1页
第1页 / 共8页
旋转编码器编程原理实例_第2页
第2页 / 共8页
旋转编码器编程原理实例_第3页
第3页 / 共8页
资源描述:

《旋转编码器编程原理实例》由会员分享,可在线阅读,更多相关《旋转编码器编程原理实例(8页珍藏版)》请在装配图网上搜索。

1、旋转编码器编程原理实例光电旋转编码器的原理及应用方法时间:2012-03-13来2源1::作3者3::37WinCE下光电编码器的驱动程序设计近年来,嵌入式技术发展迅速,嵌入式系统在各行各业得到了广泛的应用。然而,由于嵌入式计算机的专用性,系统的硬件、软件结构千差万别,其输入设备也不再像通用计算机那样单一。嵌入式计算机的输入没备一般有鼠标、键盘、触摸屏、按钮、旋钮等,而光电编码器(俗称“单键飞梭”)作为一种输入设备,由于其具有输入灵活,简单可靠等特点,因此特别适合应用在嵌入式仪器和手持式设备上,整个系统可以只用一个键作为输入。触摸屏由于其方便灵活、节省空间、界面直观等特点也备受青睐,但存在寿命

2、短,长时间使用容易产生误差等缺点。如果用光电编码器辅助触摸屏作为输入设备,必将大大增强系统的可靠性,使得人机接口更加人性化。但由于光电编码器并不是的标准输入设备,因此其驱动程序在嵌入式操作系统中并未给出。本文以三星公司芯片)为的嵌入式系统开发板为平台,详细阐述了嵌入式操作系统下光电编码器驱动程序的设计方法,以供同行参考。光电编码器的工作原理光电编码器俗称“单键飞梭”),其外观好像一个电位器,因其外部有一个可以左右旋转同时又可按下的旋钮,很多设备(如显示器、示波器等)用它作为人机交互接口。下面以美国公司生产的光电编码器为例,介绍其工作原理及使用方法。光电编码器的内部电路如图1所示,其内部有1个发

3、光二极管和2个光敏三极管。当左右旋转旋钮时,中间的遮光板会随旋钮一起转动,光敏三极管就会被遮光板有次序地遮挡,、相就会输出图所示的波形当按下旋钮时,、两脚接通,其用法同一般按键。输出B电源+5V0一T输出Ao按键GNDo图1光电编码器的内部电路位置图2光电编码器的输出波形当顺时针旋转时,光电编码器的相相位会比相超前半个周期反之,相会比相滞后半个周期。通过检测、两相的相位就可以判断旋钮是顺时针还是逆时针旋转,通过记录或相变化的次数,就可以得出旋钮旋转的次数,通过检测、脚是否接通就可以判断旋钮是否按下。其具体的鉴相规则如下:为上升沿,时,旋钮右旋为上升沿,时,旋钮右旋为下降沿,=时1,旋钮右旋为下

4、降沿,时,旋钮右旋为上升沿,=时0,旋钮左旋为上升沿,=时1,旋钮左旋为下降沿,时,旋钮左旋为下降沿,=时0,旋钮左旋。通过上述方法,可以很简单地判断旋钮的旋转方向。在判断时添加适当的延时程序,以消除抖动干扰。提供的驱动模型操作系统支持两种类型的驱动程序。一种为本地驱动程序,是把设备驱动程序作为独立的任务实现的,直接在顶层任务中实现硬件操作,因此都有明确和专一的目的。本地设备驱动程序适合于那些集成到平台的设备,诸如键盘、触摸屏、音频等设备。另一种是具有定制接口的流接口驱动程序。它是一般类型的设备驱动程序。流接口驱动程序的形式为用户一级的动态链接库文件,用来实现一组固定的函数称为“流接口函数”,

5、这些流接口函数使得应用程序可以通过文件系统访问这些驱动程序。本文讨论的光电编码器就属于流接口设备。流设备驱动加载过程系统运行时会启动负责流驱动的加载进程。进程对驱动的加载是通过装载注册表列举器实现的。在中,所有设备的资源信息都由负责记录在系统注册表中,一个一个扫描注册表项下的子键,发现新设备就根据每个表项的内容进行硬件设备初始化。中断与中断处理如果一个驱动程序要处理一个中断,那么驱动程序需要首先使用函数建立一个事件,调用函数将该事件与中断标识绑定。然后驱动程序中的就可以使用函数来等待中断的发生。在一个硬件中断发生之后,操作系统进入异常处理程序,异常处理程序调用的函数,该函数检测硬件并将中断标识

6、返回给系统;系统得到该中断标识便会找到该中断标识对应的事件,并唤醒等待相应事件的线程,然后进行中断处理。处理完成之后,需要调用函数来告诉操作系统中断处理结束,操作系统再次调用中的函数,最后完成中断的处理。图为中断处理的流程框图。ARM9S3C24I010k2x2EINTOEMUEINT233V5VVCCPlP2lOkftONDARM9S3C24I0S3C2410EMUPlEINT2P2lOkftGND光电编码器光电编码器驱动程序的设计::-光电编码器与的硬件接口光电编码器与的接口电路如图所示。光电编码器的、相为集电极开路输出,由于的口电平为,所以将其通过电阻上拉到后再分别接到的和上将直接接到3

7、通过电阻下拉到N当旋钮按下时,口输出为高电平,否则输出为低电平。33V5V10klx2VCCEINTO光电编码器工作状态下,将光电编码配置成上升沿理下降沿均触发的外部中断,将配置成上升沿触发的中断,旋钮按下时引脚产生上升沿触发中断。外部中断初始化及中断服务程序的编写首先必须完成的口和中断的初始化工作,然后再编写中断处理程序。具体分为4个步骤:初始化口。在函数中,将和初始化为上升沿和下降沿均触发的中断。将初始化为上升沿触发的中断。添加中断号。在下添加光电编码器中断向量的宏定义。代码为添加中断的初始化、禁止、复位等函数,分别在、p等函数中加入相关代码。返同中断标识,由函数返回中断标识T编写流接口驱

8、动程序把中断处理分成两个部分:中断服务程序和中断服务线程s通常要求越短、越快越好,它的唯一任务就是返回中断标识。正由于很小,只能做少量的处理,因此中断处理器就调用执行大多数的中断处理。中断服务线程在从函数得到中断已经发生的信号前一直保持空闲当接收到中断信号后,它就在本机设备驱动程序的层调用子程序,这些程序反过来访问硬件以获得硬件的状态。使用函数来注册自己,然后使用函数等待中断信号。如果这时中断信号到来,则应将光电编码器的状态记录下来,保存在变量中。表示旋钮按下,表示旋钮逆时针旋转,表示旋钮顺时针旋转。这里还有一种比较简单的鉴相规则,具体步骤是,当创建线程时读出的电平状态并保存在变量中,每次中断

9、到来时首先判断是否为高电平。如果为高电平,则说明按钮按下如果为低电平,则判断电平是否与相同。如果相同,则说明旋钮逆时针旋转反之,旋钮顺时针旋转,判断的流程如图所示。初始化时读出EINT1状态保存在PreETNTI中中断到来EINT2为高电平?7按钮按下OEDStalus=11INTO姙=PreEINTl按钮逆时针旋转OEDStatus=2*pN按钮顺时针施转OEDStatus=3rPreEINTl-EINT11*WindowsCE流接口程序开发者编写10个接码器的驱动主要应完成设备初始化和数据读取2个函数的编写。WindowsCE设备文件名前缀由3个大写字母组成,操作系统使用这3个字母来识别与

10、流接口驱动程序相对应的设备。这里定义设备文件名前缀为“OED”(OptICalEncoder),其中设备初始化函数OED_Init(在WindowsCE装载驱动程序时用于创建中断事件和中断服务线程。在函数OED_Read()中将光电编码器的状态(OED_Status)返回。封装驱动程序并加入到中根据上述方法编译出动态链接库还不够,因为它的接口函数还没有导出,还需要告诉链接程序输出什么样的函数,因此必须建立一个后缀名为的文件。在本设计中为。下面是此文件的内容:LIBRARYOpticalEncoderEXPORTSOEDCloseOEDDeinitOED_InitOED_IOControl()E

11、D_Opcn()ED_PowerDownOED_PowerUpOEDReadOED.SeekOED_Write一个具体的流接口驱动程序和注册表是密不可分的。向内核添加注册表项的方法有两种:一种是直接修改下的文件另一种是自己编写一个注册表文件,通过添加组件的方法将动态链接库文件添加到内核中。这里用第2种方法,将添加到内核中。编写的注册表文件内容如下:HKEY,L(XAUMACHlNEDriversBuilTlnSTRINGSTndexT*=dword:1Prefi3tH=OEDDU=OpticalEncoder.dUT,Order1=dward:0最后编写一个文件,完成对定制内核注册表部分的修改并将添加到系统内核中去,然后在中就可以直接添加已经编写好的驱动程序了。结语本文主要介绍了光电旋转编码器的原理及应用方法,并详细介绍了驱动程序的结构,成功地开发出了光电编码器在嵌入式操作系统下的驱动程序。实验证明,该方法正确可行,程序运行稳定可靠。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!