光电编码器的工作原理和应用电路_第1页
光电编码器的工作原理和应用电路_第2页
光电编码器的工作原理和应用电路_第3页
光电编码器的工作原理和应用电路_第4页
光电编码器的工作原理和应用电路_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

光电编码器的工作原理和应用电路

I光电编码器的工作原理

光电编码器(OpticalEncoder)俗称“单键匕梭”,其外观好像一个电位器,因其外部有一个可以左右旋

转同时又可按下的旋钮,很多殳备(如显示器.示波器等)用它作为人机交互接口.下面以美国GreyhiH公司

生产的光电编码器为例,介绍其工作原理及使用方法。光电编码器的内部电路如图1所示,其内部有1个发

光•.极管和2个光敏三极管。当左右旋转旋钮时,中间的遮光板会随旋钮一起转动,光敏三极管就会被遮光

板有次序地遮挡,A.B相就会输出图2所示的波形;当按卜.旋钮时,2.3两脚接通,其用法同一般按键。

电源+5V。

输出A。

B

图1光电编码器的内部电路

顺时针旋转一

逆时针旋转--

位置

图2光电编码器的输出波形

当顺时针旋转时,光电编码器的A相相位会比B相超前半个周期;反之,A相会比B相滞后

¥个周期。通过检测A.B两相的相位就可以判断旋钮是顺时针还是逆时针旋转,通过记录A或B

相变化的次数.就可以得出旋钮旋转的次数.通过检测2.3脚是否接通就可以判断旋钮是否按下。

其具体的鉴相规则如卜:

2.A为上升沿,B=0时,旋钿右旋;

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

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

5.B为下降沿,A=O时,旋钮右旋:

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

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

8.B为下降沿,A=1时,旋钿左旋:

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

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

2WinCE提供的驱动模型

WinCE操作系统支持两种类型的驱动程序。•种为本地驱动程序,是把设备驱动程序作为独立的任务

实现的,直接在顶层任务中实现硬件操作,因此都有明确和专一的目的。本地设备驱动程序适合于那些集成

到WindowsCE平台的设备.诸如键盘、触摸屏、音频等设备。另一种是具有定制接口的流接口驱动程序。

它是一般类型的设备驱动程序。流接口驱动程序的形式为用户一级的动态链接库(DLL)文件,用来实现一组

固定的函数称为“流接口函数”,这些流接口函数使得应用程序可以通过文件系统访问这些驱动程序。本

文讨论的光电编码器就属于流接口设备。

2.1流设备驱动加载过程

WinCE.NET系统运行时会启动负责流驱动的加载进程DEVICE.exe。DEVICE.exe进程对球动的

加载是通过装载注册表列举器(RegEnum.dll)实现的。在WinCE.NET中,所有设备的资源信息都由OAL

负贡记录在系统注册表中,RegEnum.dll一个一个扫描注册表项HEKY_LOCAL_MACHINE\Driver'Bui

Itln下的子键,发现新设备就根据每个表项的内容进行硬件设备初始化。

2.2中断与中断处理

如果一个驱动程序要处理一个中断,那么驱动程序需要首先使用CrcateEvem函数建立一个事件•.调用

Intenuptlnitialize函数将该事件与中断标识绑定。然后驱动程序中的1ST就可以使用WaitForSingleObject函

数来等待中断的发生。在一个硬件中断发生之后,操作系统进入异常处理程序,异常处理程序调用OAL的

OEMInten-uptHandler函数,该函数检测硬件并将中断标识返回给系统;系统得到该中断标识便会找到该中

断标识对应的事件,并唤醒等待相应事件的线程(1ST),然后1ST进行中断处理。处理完成之后,1ST帘耍调

用InterruptDone函数来告诉操作系统中断处理结束,操作系统再次调用OAL中的OEMInterruptDone函数,

最后完成中断的处理。图3为WinCE.NET中断处理的流程框图。

图3WinCE.NET中断处理流程框图

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

3.1光电编码器与S3c2410的硬件接口

光电编码器与S3c241。的接口电路如图4所示。光电编码器的A、B相为集电极开路输出,由于S3c2

410的I/O口电平为3.3V,所以将其通过电阻上拉到3.3V后再分别接到CPU的E1NT0和EINT1上:

将P1直接接到3.3V,P2通过电阻下拉到GND。当旋钮按下时,P2口输出为高电平,否则输出为低电平。

工作状态下,将EINTO、EINTI配置成上升沿和下降沿均触发的外部中断,将EINT2配置成上升沿触

发的中断、旋钮按下时EINT2引脚产生上升沿触发中断。

3.2外部中断初始化及中断服务程序的编写

1.首先必须完成CPU的I/O口和中断的初始化工作,然后再编写中断处理程序。具体分为4

个步骤:

2.初始化I/O口。在PM」nit()函数中,将EINTO和EINTI初始化为匕升沿和下降沿均触发的中断。

将EINT2初始化为上升沿附发的中断。

3.添加中断号。在oalint.h下添加光电编码器中断向量的宏定义。代码为#defineSYSINTR_OED(SY

SINTR_FIRM\VARE4-2O)

4.添加中断的初始化、禁止、及位等函数,分别在OEMlntcrruptEnabkO、OEMIntcrruptDisablc().O

EM-InterruplDone()等函数中加入相关代码。

返同中断标识,由OEMInlcrruplHandlcr。函数返回中断标识(SYSINTR_OED)。

3.3编写流接口驱动程序

WindowsCE.net把中断处理分成两个部分:中断服务程序(ISR)和中断服务线程(1ST)。TSR通常要求

越短、越快越好,它的唯一任务就是返回中断标识。正由丁-ISR很小,只能做少量的处理,因此中断处理器

就调用1ST执行大多数的中断处理.中断服务线程(1ST)在从waitForSingleObject。函数得到中断已经发牛•的

信号前一直保持空闲:当接收到中断信号后,它就在本机设备驱动程序的PDD层调用子程序,这些程序反

过来访问硬件以获得硬件的状态。1ST使用InierrupiInitializeO函数来注册自己,然后使用WaitForSingleObj

81()函数等待中断信号。如果这时中断信号到来,则应将光电编码器的状态记录卜.来,保存在变量OED_Sl

atus中。OED_Status=1表示旋钮按下,OED_Status=2表示旋钮逆时针旋转,OED_Stalus=3表示旋钮顺时针

旋转。

这里还有一种比较简单的鉴相规则,具体步骤是,当创建线程时读出EINTI的电平状态并保存在变量P

reEINTI中,每次中断到来时首先判断EINT2是否为高电平。如果为高电平,则说明按钮按下:如果EINT2

为低电平.则判断EINTO电平是否与PreEINTI相同。如果相同.则说明旋钮逆时针旋转:反之.旋钮顺时

针旋转,判断的流程如图5所示。

图5光电编码器鉴相流程框图

WindowsCE流接口驱动程序模型要求驱动程序开发者编写10个接口函数,针对光电编码器的驱动主

要应完成设备初始化和数据读取2个函数的编写。WindowsCE设备文件名前缀由3个大写字母组成,操作

系统使用这3个字母来识别与流接口驱动程序相对应的设备。这电定义设备文件名前缀为MOEDM(Optical

Encoder),其中设备初始化函数OED」nit()在WindowsCE装载驱动程序时用于创建中断事件和中断服务

线程。在函数OED_Rcad()M将光电编码器的状态(OED_Stalus)返凡

3.4封装驱动程序并加入到WinCE中

根据上述方法编译出动态链接库(DLL)还不够,因为它的接口函数还没有导出,还需要告诉链接程序输

出什么样的函数,因此必须建立•个后缀名为def的文件。在本设计中为OpiicalEnccder.def。下面是此文件

的内容:

LIBRARYOpticalEncoder

EXPORTS

OED.Close

OED_Deinit

OED.lnit

OED-IOControl

OED.Opcn

C)ED_PowerDown

OED_PowerUp

OED.Read

OED.Seek

OED.Write

一个具体的流接口驱动程序和注册表是密不可分的。向WinCE内核添加注册表项的方法有两种:一种

是直接修改PlatformBuilder下的reg文件;另一种是自己编写一个注册表文件,通过添加组件的方法将动

态锌接库文件添加到内核中。这里用第2种方法,将OplicalEncoder.dll添加到内核中。编写的注册表文件

内容如下:

[HKEY_LCX:AL_MACHINE\Drivers\Builrln\STRINGS]

*'Index"=dword:1

MPrefix"=M()EDM

MD11M="OpticalEncoder.dll”

*,Orderu=dword;0

最后编写一个CEC文件,完成对定制内核注册表部分的修改并将OpiicalEncodcr.dll添加到系统内核

中去,然后在PlalformBuilder中就可以直接添加已经编写好的驱动程序了。

光电编码器的应用

1、角度测量

汽车驾驶模拟器,对方向盘旋转角度的测量选用光电编码器作为传感器。重力测量仪,采用光电编码器,

把他的转轴与重力测量仪中补偿旋钮轴相连,扭转角度仪,利用编码器测量扭转角度变化,如扭转实验

机、渔竿扭转钓性测试等.

摆锤冲击实验机,利用编码器计算冲击是摆角变化。

2、长度测量

计米器,利用滚轮周长来测量物体的长度和距离。

拉线位移传感器,利用收卷轮周长计量物体长度距离。

联轴直测,与驱动直线位移的动力装置的主轴联轴,通过输出脉冲数计量。

介质检测,在直齿条、转动链条的链轮、同步带轮等来传递直线位移信息.

3、速度测量

线速度,通过跟仪表连接,测量生产线的线速度

角速度,通过编码器测量电机、转轴等的速度测量

4、位置测量

机床方面,记忆机床各个坐标点的坐标位置,如钻床等

自动化控制方面,控制在牧歌位置进行指定动作。如电梯、提升机等

5、同步控制

通过角速度或线速度,对传动环节进行同步控制,以达到张力控制

结语

本文主要介绍了光电旋转编码器的原理及应用方法,并详细介绍了WinCE驱动程序的结构,成功地开

发出了光电编码器在嵌入式操作系统WinCE下的驱动程序。实验证明,该方法正确可行,程序运行稳定可

靠.

光电编码器的应用电路

1.EPC—755A光电编码器的应用

EPC-755A光电编码器具备良好的使用性能、在角度测量、位移测量时抗干扰能力很强.并具有稳定

可靠的输出脉冲信号,且该脉冲信号经计数后可得到被测量的数字信号。因此,我们在研制汽车驾驶模拟器

时,对方向盘旋转角度的测量选用EPC—755A光电编码器作为传感器,其输出电路选用集电极开路型,输

出分辨率选用360个脉冲/圈.考虑到汽车方向盘转动是双向的,既可顺时针旋转,也可逆时针旋转,需要对

编码器的输出信号鉴相后才能计数。图2给出了光电编码器实际使用的鉴相与双向计数电路,鉴相电路用1

个D触发器和2个与非门组成,计数电路用3片74LSI93组成。

当光电编码器顺时针旋转时,通道A输阳波形超前通道R输出波形90。.【)触发器输出Q(波形W1)

为高电平,Q(波形W2)为低电平,上面与非门打开,计数脉冲通过皴形W3),送至双向计数器74LS193的加

脉冲输入端CU,进行加法计数:此时,卜面与非门关闭,其输出为高电平(波形W4)。当光电编码器逆时针

旋转时,通道A输出波形比通道B输出波形延迟90°,D触发器输出Q(波形WI)为低电平,Q(波形W2)为

高电平,上面与非门关闭,其输出为高电平(波形W3):此时,下面与非门打开,计数脉冲通过(波形W4),

送至双向计数器74LS193的减脉冲输入端CD.进行减法计数。

汽车方向盘顺时针和逆时针旋转时,其最大旋转角度均为两圈半,选用分辨率为360个脉冲/圈的编码

器,其最大输出脉冲数为900个;实际使用的计数电路用3片74LS193组成在系统上也初始化时,先对其

进行复位(CLR信号),再将其初值设为800H,即204&LD信号);如此当方向盘顺时针旋转时,计数电路

的输出范围为2048〜2948,当方向盘逆时针旋转时,计数电路的输出范围为2048〜1148;计数电路的数据

输出D0-DI1送至数据处埋电路。

实际使用时,方向盘频繁地进行顺时针和逆时针转动,由于存在量化误差,工作较长一段时间后,方向

盘回中时计数电路输出可能不是2048.而是有几个字的偏差:为解决这一问题,我们增加了一个方向盘回

中检测电路,系统工作后,数据处理电路在模拟器处于非操作状态时,系统检测回中检测电路,若方向盘处

于回中状态,而计数电路的数据输出不是2048,可对计数电路进行复位,并重新设置初值。

2.2光电编码器在重力测量仪中的应用

采用旋转式光电编码器,把它的转轴与重力测量仪中补偿旋钮轴相连。重力测量仪中补偿旋钮的角位移量

转化为某种电信号量;旋转式光电编码器分两种,绝对编码器和增量编码器。

增量编码器是以脉冲形式输出的传感器,其码盘比绝对编码器码盘要简单得多且分辨率更高。一般只

需要三条码道,这里的码道实际上已不具有绝对编码器码道的意义,而是产生计数脉冲。它的码盘的外道和

中间道有数目相同均匀分布的透光和不透光的扇形区(光栅),但是两道扇区相互错开半:个区。当码盘转

动时,它的输出信号是相位差为90,的A相和B相脉冲信号以及只有一条透光狭缝的第三码道所产生的脉

冲信号(它作为码盘的基准位置,给计数系统提供一个初始的零位信号)。从A,B两个输出信号的相位关

系(超前或滞后)可判断旋技的方向。由图3(a)可见,当码盘正转时,A道脉冲波形比B道超前K,2,而

反转时,A道脉冲比B道滞后”/2。图3(b)是一实际电路,用A道整形波的下沿触发单稔态产生的正脉

冲与B道整形波相'与'.当码盘正转时只有正向口脉冲输出,反之.只有逆向口脉冲输出。因此、增量编

码器是根据输出脉冲源和脉冲计数来确定码盘的转动方向和相对角位移量。通常,若编码器有Nj(码道)

输出信号,其相

温馨提示

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

评论

0/150

提交评论