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

上传人:z****2 文档编号:182573035 上传时间:2023-01-25 格式:DOCX 页数:13 大小:296.52KB
返回 下载 相关 举报
光电编码器的工作原理和应用电路_第1页
第1页 / 共13页
光电编码器的工作原理和应用电路_第2页
第2页 / 共13页
光电编码器的工作原理和应用电路_第3页
第3页 / 共13页
点击查看更多>>
资源描述
光电编码器的工作原理和应用电路1光电编码器的工作原理光电编码器(Optical Encoder)俗称“单键飞梭”其外观好像一个电位器,因 其外部有一个可以左右旋转同时又可按下的旋钮,很多设备(如显示器、示波器 等)用它作为人机交互接口。下面以美国Greyhill公司生产的光电编码器为例, 介绍其工作原理及使用方法。光电编码器的内部电路如图1所示,其内部有1 个发光二极管和2个光敏三极管。当左右旋转旋钮时,中间的遮光板会随旋钮一 起转动,光敏三极管就会被遮光板有次序地遮挡,A、B相就会输出图2所示的 波形;当按下旋钮时,2、3两脚接通,其用法同一般按键。电源+5 V Q一r输出A输出B按键GND只二;-CgHLIson光电编码器的内部电路顺时针旋逆时针旋转一输出12 位書 56光电编码器的输出波形当顺时针旋转时,光电编码器的A相相位会比B相超前半个周期;反之,A相会比B相滞后半个周期。通过检测A、B两相的相位就可以判断旋钮是顺时 针还是逆时针旋转,通过记录A或B相变化的次数,就可以得出旋钮旋转的次 数,通过检测2、3脚是否接通就可以判断旋钮是否按下。其具体的鉴相规则如 下:1. A为上升沿,B=0时,旋钮右旋;2. B为上升沿,A=l时,旋钮右旋;3. A为下降沿,B=1时,旋钮右旋;4. B为下降沿,A=O时,旋钮右旋;5. B为上升沿,A=0时,旋钮左旋;6. A为上升沿,B=1时,旋钮左旋;7. B为下降沿,A=l时,旋钮左旋;8. A为下降沿,B=0时,旋钮左旋。通过上述方法,可以很简单地判断旋钮的旋转方向。在判断时添加适当的延 时程序,以消除抖动干扰。2 WinCE提供的驱动模型WinCE操作系统支持两种类型的驱动程序。一种为本地驱动程序,是把设 备驱动程序作为独立的任务实现的,直接在顶层任务中实现硬件操作,因此都有 明确和专一的目的。本地设备驱动程序适合于那些集成到Windows CE平台的 设备,诸如键盘、触摸屏、音频等设备。另一种是具有定制接口的流接口驱动程 序。它是一般类型的设备驱动程序。流接口驱动程序的形式为用户一级的动态链 接库(DLL)文件,用来实现一组固定的函数称为“流接口函数”,这些流接口函数 使得应用程序可以通过文件系统访问这些驱动程序。本文讨论的光电编码器就属 于流接口设备。21流设备驱动加载过程WinCE. NET系统运行时会启动负责流驱动的加载进程DEVICE, exe。DE VICE, exe进程对驱动的加载是通过装载注册表列举器(RegEnum. dll)实现的。 在WinCE. NET中,所有设备的资源信息都由OAL负责记录在系统注册表中, RegEnum. dll 一个一个扫描注册表项 HEKY_LOCAL_MACHINE Driver Buil tin下的子键,发现新设备就根据每个表项的内容进行硬件设备初始化。2. 2中断与中断处理如果一个驱动程序要处理一个中断,那么驱动程序需要首先使用CreateEve nt函数建立一个事件,调用Interruptinitialize函数将该事件与中断标识绑定。然 后驱动程序中的1ST就可以使用WaitForSingleObject函数来等待中断的发生。在 一个硬件中断发生之后,操作系统进入异常处理程序,异常处理程序调用OAL 的OEMInterruptHandler函数,该函数检测硬件并将中断标识返回给系统;系统 得到该中断标识便会找到该中断标识对应的事件,并唤醒等待相应事件的线程(I ST),然后IST进行中断处理。处理完成之后,IST需要调用InterruptDone函数 来告诉操作系统中断处理结束,操作系统再次调用OAL中的OEMInterruptDone 函数,最后完成中断的处理。图3为WinCE. NET中断处理的流程框图。3光电编码器驱动程序的设计h黔餐理流翌粮图3. 1光电编码器与S3C2410的硬件接口光电编码器与S3C241O的接口电路如图4所示。光电编码器的A、B相为 集电极开路输出,由于S3C2410的I/O 口电平为3. 3 V,所以将其通过电阻 上拉到3. 3V后再分别接到CPU的EINTO和EINT1上;将Pl直接接到3. 3V, P2通过电阻下拉到GND。当旋钮按下时,P2 口输出为高电平,否则输出为低电 平。工作状态下,将EINTO、EINT1配置成上升沿和下降沿均触发的外部中断, 将EINT2配置成上升沿触发的中断,旋钮按下时EINT2引脚产生上升沿触发中 断。3.2外部中断初始化及中断服务程序的编写首先必须完成CPU的I/O 口和中断的初始化工作,然后再编写中断处理程 序。具体分为4个步骤:1. 初始化I/O 口。在Port_Init()函数中,将EINT0和EINTl初始化为上升 沿和下降沿均触发的中断。将EINT2初始化为上升沿触发的中断。2. 添加中断号。在oalint.h下添加光电编码器中断向量的宏定义。代码#d efine SYSINTR_OED(SYSINTR_FIRMWARE+20)3. 添加中断的初始化、禁止、复位等函数,分别在OEMInterruptEnable()、 OEMInterruptDisable()、OEM-InterruptDone()等函数中加入相关代码。4. 返同中断标识,由OEMInterruptHandler()函数返回中断标识(SYSINTR_O ED)。33编写流接口驱动程序Windows CE. net把中断处理分成两个部分:中断服务程序(ISR)和中断服 务线程(1ST)。TSR通常要求越短、越快越好,它的唯一任务就是返回中断标识。 正由于ISR很小,只能做少量的处理,因此中断处理器就调用1ST执行大多数的 中断处理。中断服务线程(1ST)在从waitForSingleObject()函数得到中断已经发生 的信号前一直保持空闲;当接收到中断信号后,它就在本机设备驱动程序的PD D层调用子程序,这些程序反过来访问硬件以获得硬件的状态。IST使用Interru ptlnitialize()函数来注册自己,然后使用WaitForSingleObject()函数等待中断信号。 如果这时中断信号到来,则应将光电编码器的状态记录下来,保存在变量OED_ Status中。OED_Status=l表示旋钮按下,OED_Status=2表示旋钮逆时针旋转,0 ED_Status=3表示旋钮顺时针旋转。这里还有一种比较简单的鉴相规则,具体步骤是,当创建线程时读出EINT1 的电平状态并保存在变量PreEINTl中,每次中断到来时首先判断EINT2是否为 高电平。如果为高电平,则说明按钮按下;如果EINT2为低电平,则判断EINT O电平是否与PreEINTl相同。如果相同,则说明旋钮逆时针旋转;反之,旋钮 顺时针旋转,判断的流程如图5所示。EINT2为高电*?按钮按下OED Status = 1初始化时读出EINTI状态保存任PreEINTl中I按钮逆时针旋转.OED Status = 2按钮顺时针施转OED Status - 3PreEINTl = EINT1(返回)Windows CE流接口驱动程序模型要求驱动程序开发者编写10个接口函数,针对光电编码器的驱动主要应完成设备初始化和数据读取2个函数的编写。Win dowsCE设备文件名前缀由3个大写字母组成,操作系统使用这3个字母来识别 与流接口驱动程序相对应的设备。这里定义设备文件名前缀为“OED”(Optical En coder),其中设备初始化函数OED_Init()在Windows CE装载驱动程序时用于创 建中断事件和中断服务线程。在函数OED_Read()中将光电编码器的状态(OED_ Status)返回。34封装驱动程序并加入到WinCE中根据上述方法编译出动态链接库(DLL)还不够,因为它的接口函数还没有导 出,还需要告诉链接程序输出什么样的函数,因此必须建立一个后缀名为def的 文件。在本设计中为OpticalEnccder.def。下面是此文件的内容:LIBRARY OpttcdEncoderEXPORTS(圧 DCloseOED_DeinilOEDlnitOEDlOControl()ED_C)pcn()ED_ Power DownOED.PowerUpOED_ReadOEDSeekOED.Write一个具体的流接口驱动程序和注册表是密不可分的。向WinCE内核添加注 册表项的方法有两种:一种是直接修改Platform Builder下的reg文件;另一种 是自己编写一个注册表文件,通过添加组件的方法将动态链接库文件添加到内核 中。这里用第2种方法,将OpticalEncoder.dll添加到内核中。编写的注册表文件 内容如下:C H K E HX ALM AC H1N E Drive rs Bui I r lnSTRINGSj如 Index1* = dword : 1l,Prefi3tH = nOEpflMluOpticalEncoder. dllOrder = dword *0最后编写一个CEC文件,完成对定制内核注册表部分的修改并将OpticalEn coder, dll添加到系统内核中去,然后在Platform Builder中就可以直接添加已经 编写好的驱动程序了。光电编码器的应用1、角度测量汽车驾驶模拟器,对方向盘旋转角度的测量选用光电编码器作为传感器。重力 测量仪,采用光电编码器,把他的转轴与重力测量仪中补偿旋钮轴相连,扭转角 度仪,利用编码器测量扭转角度变化,如扭转实验机、渔竿扭转钓性测试等。摆锤冲击实验机,利用编码器计算冲击是摆角变化。2、长度测量计米器,利用滚轮周长来测量物体的长度和距离。拉线位移传感器,利用收卷轮周长计量物体长度距离。联轴直测,与驱动直线位移的动力装置的主轴联轴,通过输出脉冲数计量。介质检测,在直齿条、转动链条的链轮、同步带轮等来传递直线位移信息。3、速度测量线速度,通过跟仪表连接,测量生产线的线速度角速度,通过编码器测量电机、转轴等的速度测量4、位置测量机床方面,记忆机床各个坐标点的坐标位置,如钻床等自动化控制方面,控制在牧歌位置进行指定动作。如电梯、提升机等5、同步控制通过角速度或线速度,对传动环节进行同步控制,以达到张力控制结语本文主要介绍了光电旋转编码器的原理及应用方法,并详细介绍了 WinCE 驱动程序的结构,成功地开发出了光电编码器在嵌入式操作系统WinCE下的驱 动程序。实验证明,该方法正确可行,程序运行稳定可靠光电编码器的应用电路一、光电编码器的工作原理光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数 字量的传感器。这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测 装置组成。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电 码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等 电子元件组成的检测装置检测输出若干脉冲信号,其原理示意图如图1所示; 通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。此外,为 判断旋转方向,码盘还可提供相位相差90的两路脉冲信号。图1光电编同熬境理示意图根据检测原理,编码器可分为光学式、磁式、感应式和电容式。根据其刻度方法 及信号输出形式,可分为增量式、绝对式以及混合式三种。(一)增量式编码器 增量式编码器是直接利用光电转换原理输出三组方波脉冲A、B和Z相;A、B 两组脉冲相位差90,从而可方便地判断出旋转方向,而Z相为每转一个脉冲, 用于基准点定位。它的优点是原理构造简单,机械平均寿命可在几万小时以上, 抗干扰能力强,可靠性高,适合于长距离传输。其缺点是无法输出轴转动的绝对 位置信息。(二)绝对式编码器绝对编码器是直接输出数字量的传感器,在它的圆形码盘上沿径向有若干同心码 道,每条道上由透光和不透光的扇形区相间组成,相邻码道的扇区数目是双倍关 系,码盘上的码道数就是它的二进制数码的位数,在码盘的一侧是光源,另一侧 对应每一码道有一光敏元件;当码盘处于不同位置时,各光敏元件根据受光照与 否转换出相应的电平信号,形成二进制数。这种编码器的特点是不要计数器,在 转轴的任意位置都可读出一个固定的与位置相对应的数字码。显然,码道越多, 分辨率就越高,对于一个具有N位二进制分辨率的编码器,其码盘必须有N条 码道。目前国内已有16位的绝对编码器产品。绝对式编码器是利用自然二进制或循环二进制(葛莱码)方式进行光电转换的。 绝对式编码器与增量式编码器不同之处在于圆盘上透光、不透光的线条图形,绝 对编码器可有若干编码,根据读出码盘上的编码,检测绝对位置。编码的设计可 采用二进制码、循环码、二进制补码等。它的特点是:1.可以直接读出角度坐标的绝对值;2没有累积误差;3电源切除后位置信息不会丟失。但是分辨率是由二进制的位数来决定的,也就是说精度取决于位数,目前有10位、14位等多种。(三)混合式绝对值编码器 混合式绝对值编码器,它输出两组信息:一组信息用于检测磁极位置,带有绝对 信息功能;另一组则完全同增量式编码器的输出信息。光电编码器是一种角度(角速度)检测装置,它将输入给轴的角度量,利用光电 转换原理转换成相应的电脉冲或数字量,具有体积小,精度高,工作可靠,接口 数字化等优点。它广泛应用于数控机床、回转台、伺服传动、机器人、雷达、军 事目标测定等需要检测角度的装置和设备中。1、EPC 755A光电编码器的应用EPC 755A光电编码器具备良好的使用性能,在角度测量、位移测量时抗 干扰能力很强,并具有稳定可靠的输出脉冲信号,且该脉冲信号经计数后可得到 被测量的数字信号。因此,我们在研制汽车驾驶模拟器时,对方向盘旋转角度的 测量选用EPC755A光电编码器作为传感器,其输出电路选用集电极开路型, 输出分辨率选用360个脉冲/圈,考虑到汽车方向盘转动是双向的,既可顺时针 旋转,也可逆时针旋转,需要对编码器的输出信号鉴相后才能计数。图2给出了 光电编码器实际使用的鉴相与双向计数电路,鉴相电路用1个D触发器和2个 与非门组成,计数电路用3片74LS193组成。01.IT-L01.IT-E01.IT-AOUT-AOUT-BW1W2W3W4顺时针徒转逆时针徒转匸DO HlD2D3P0 FlP2P3 CU CDCL MRP0Q0P1QIF2豪P3Q3:CUCDTCUCL MRTCP74LS1932-TCUTen74LS193qvcc TP0PlP2P3 CU CD CL MRnoDlH2D3TCUTCD74LS193D0D1D2D3H4D5D6D7D8D9D10D11CLZED当光电编码器顺时针旋转时,通道A输出波形超前通道B输出波形90,D W器输出Q(波形W1)为高电平,Q(波形W2)为低电平,上面与非门打开,计数脉冲通过(波形W3),送至双向计数器74LS193的加脉冲输入端CU,进行加 法计数;此时,下面与非门关闭,其输出为高电平(波形W4)。当光电编码器逆 时针旋转时,通道A输出波形比通道B输出波形延迟90,D触发器输出Q(波 形W1)为低电平,Q(波形W2)为高电平,上面与非门关闭,其输出为高电平(波 形W3);此时,下面与非门打开,计数脉冲通过(波形W4),送至双向计数器74 LS193的减脉冲输入端CD,进行减法计数。汽车方向盘顺时针和逆时针旋转时,其最大旋转角度均为两圈半,选用分辨 率为360个脉冲/圈的编码器,其最大输出脉冲数为900个;实际使用的计数电 路用3片74LS193组成,在系统上电初始化时,先对其进行复位(CLR信号),再 将其初值设为800H,即2048(LD信号);如此,当方向盘顺时针旋转时,计数电 路的输出范围为20482948,当方向盘逆时针旋转时,计数电路的输出范围为2 0481148;计数电路的数据输出D0D11送至数据处理电路。实际使用时,方向盘频繁地进行顺时针和逆时针转动,由于存在量化误差, 工作较长一段时间后,方向盘回中时计数电路输出可能不是2048,而是有几个 字的偏差;为解决这一问题,我们增加了一个方向盘回中检测电路,系统工作后, 数据处理电路在模拟器处于非操作状态时,系统检测回中检测电路,若方向盘处 于回中状态,而计数电路的数据输出不是2048,可对计数电路进行复位,并重 新设置初值。2.2光电编码器在重力测量仪中的应用采用旋转式光电编码器,把它的转轴与重力测量仪中补偿旋钮轴相连。重力测量 仪中补偿旋钮的角位移量转化为某种电信号量;旋转式光电编码器分两种,绝对 编码器和增量编码器。增量编码器是以脉冲形式输出的传感器,其码盘比绝对编码器码盘要简单得 多且分辨率更高。一般只需要三条码道,这里的码道实际上已不具有绝对编码器 码道的意义,而是产生计数脉冲。它的码盘的外道和中间道有数目相同均匀分布 的透光和不透光的扇形区(光栅),但是两道扇区相互错开半个区。当码盘转动 时,它的输出信号是相位差为90的A相和B相脉冲信号以及只有一条透光狭缝 的第三码道所产生的脉冲信号(它作为码盘的基准位置,给计数系统提供一个初 始的零位信号)。从A,B两个输出信号的相位关系(超前或滞后)可判断旋转 的方向。由图3 (a)可见,当码盘正转时,A道脉冲波形比B道超前n/2,而反 转时,A道脉冲比B道滞后n/2。图3 (b)是一实际电路,用A道整形波的下 沿触发单稳态产生的正脉冲与B道整形波相与,当码盘正转时只有正向口脉冲 输出,反之,只有逆向口脉冲输出。因此,增量编码器是根据输出脉冲源和脉冲 计数来确定码盘的转动方向和相对角位移量。通常,若编码器有N个(码道) 输出信号,其相位差为n/N,可计数脉冲为2N倍光栅数,现在N=2。图3电路 的缺点是有时会产生误记脉冲造成误差,这种情况出现在当某一道信号处于高 或低电平状态,而另一道信号正处于高和低之间的往返变化状态,此时码 盘虽然未产生位移,但是会产生单方向的输出脉冲。例如,码盘发生抖动或手动对准位置时(下面可以看到,在重力仪测量时就会有这种情况)。逆向脉沖逆方向V 1 正方向正向脉沖4toiwwIITOWornmn图孑増量光电编码器基本波貳和电路tby图4四倍计数方式的浪形和电路wwnnnnnnrr i(a谨方向斗一:一正方向I矚道 TXT_TT_rLXTXTXTJ正向脉冲1逆向脉沖:wwmnnjnr图4是一个既能防止误脉冲又能提高分辨率的四倍频细分电路。在这里,采 用了有记忆功能的D型触发器和时钟发生电路。由图4可见,每一道有两个D 触发器串接,这样,在时钟脉冲的间隔中,两个Q端(如对应B道的74LS175 的第2、7引脚)保持前两个时钟期的输入状态,若两者相同,则表示时钟间隔 中无变化;否则,可以根据两者关系判断出它的变化方向,从而产生正向或反 向输出脉冲。当某道由于振动在高、低间往复变化时,将交替产生正向和仮 向脉冲,这在对两个计数器取代数和时就可消除它们的影响(下面仪器的读数 也将涉及这点)。由此可见,时钟发生器的频率应大于振动频率的可能最大值。 由图4还可看出,在原一个脉冲信号的周期内,得到了四个计数脉冲。例如,原 每圈脉冲数为1000的编码器可产生4倍频的脉冲数是4000个,其分辨率为0.0 9。实际上,目前这类传感器产品都将光敏元件输出信号的放大整形等电路与传 感检测元件封装在一起,所以只要加上细分与计数电路就可以组成一个角位移测 量系统(74159是4-16译码器)。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


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

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


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