知乐空间

设计增量式编码器的接口电路(增量式光电编码器)

增量式光电编码器(设计增量式编码器的接口电路)

现场可编程逻辑阵列(FPGA)资源丰富,结构灵活,近年来发展迅速。根据其特点,设计了基于FPGA的增量式光电编码器接口电路,实现了增量式编码器脉冲信号的倍频、鉴相和计数功能。最后,通过仿真验证了设计的可行性。为进一步实现高精度位置伺服控制提供了基础。

光电编码器是目前伺服系统中应用最广泛的传感器。它通过光电转换将输出轴上的机械几何位移转换成脉冲或数字量。光电编码器与电机相连,当电机转动时,带动码盘转动,然后发出转速或转角信号。

目前,光电编码器已经广泛应用于雷达、光电经纬仪、地面指挥仪、机器人、数控机床和高精度闭环调速系统等诸多领域。根据校准方法和信号输出形式,可分为增量式、绝对式和混合式三种。

绝对式编码器可以读取转轴每个位置唯一对应的数字码,抗干扰,不需要断电记忆。但其制造工艺复杂,价格是增量式编码器的几倍到几十倍。因此,在实际应用中,增量式编码器占据了主导地位。

增量编码器的工作原理

增量式编码器由光源、码盘、检测光栅、光电检测器件和光电转换电路组成。其原理如图1所示。

图1增量式编码器示意图

当码盘随被测转轴转动时,探测光栅保持静止。当光线通过码盘和探测光栅之间的间隙照射到光电探测装置上时,光电探测装置会输出两组相位差为900度的差分电信号,类似于正弦波。两组差分信号通过脉冲整形转换成普通的单端电平信号。最后,对两个单端电平信号进行倍频、鉴相和计数运算,得到码盘旋转的方向和位置。

本文旨在解决增量式编码器的倍频、鉴相和计数问题。充分利用FPGA丰富的逻辑模块和IO模块,设计了简单的接口电路,并行输出结果供进一步运算,如图2所示。

图2编码信号处理模块

倍频、鉴相和计数的原理分析

编码器码盘和检测光栅有两组对应的等间距透光间隙,错开1/4节距,用于在转动过程中对光电收发装置产生通断变化,使光电检测装置输出相位差为90°的信号A和B。根据A和B的相位关系,可以判断码盘的旋转方向。

A相超前B90o时,DIR(方向信号)为高电平,电机正转;当a滞后B90o时,DIR(方向信号)为低电平,电机反转。码盘信号经过计数器计数后,码盘的旋转角度可以转换成位置信息,计数器的加减是基于方向信号。

同时,码盘上有一个判断码盘绝对位置的开口,即码盘每旋转一周就会产生一个分度信号I,有的还以I作为对位和复位信号。如图3所示。

图3编码器输出信号

编码器每旋转一周,A相和B相输出的脉冲数是一样的,这就决定了编码器的精度。

从图3可以看出,在一个编码脉冲输出周期中,A和B信号产生四个转变沿。捕捉每个跳变并计数,即A为高时,B在上升沿加1,下降沿减1;当A为低电平时,B在下降沿减少L,在上升沿增加L;当B为高时,A在上升沿减1,在下降沿增加L;当b为低电平时,a在上升沿增加1,在下降沿减少1。

这样,在每个周期中,码盘正转计数4次,反转计数4次,计数脉冲数增加了4倍。如果编码脉冲信号量化误差为0,四倍频后的量化误差减小到/4,角位移的测量精度提高了4倍,光电编码器的分辨率也提高了4倍。

信号四倍频设计的关键是捕捉A、B信号的上升沿和下降沿。在这个设计中,一个数字电路,即D触发器,被用作检测边沿变化的延迟环节。A、B相倍频的脉宽和延迟时间由时钟(由外部信息源网络的有源晶振提供)控制,倍频后的脉宽一致,可有效克服传统RC差分或积分边沿检测电路的缺点。

A和B的信号经过D触发器后分别记为A1和B1。将A1和B1作为倍频的原始信号,将消除A和B信号中尖脉冲的影响,提高系统的抗干扰性能。A1和B1通过D触发器,延迟一个时钟周期,将产生A2和B2信号。

即A2和B2分别滞后A1和B1一个时钟周期,A1和A2的相位分别滞后B1和B290o(假设此时电机反转,B1超前A190o)。为了达到预期的目的,需要能够在一个周期内完全捕捉到脉冲的上升沿和下降沿,也就是图4中的圆形黑点。

从图4中虚线所示的状态可以看出,A1和A2、B1和B2信号中存在一组不同的能级状态,因此使用三个异或门来获得信号的四倍频信号F4_CLK。同时用两个与非门获得方向信号。

图4信号A和B通过D触发器后的信号图

光电编码器的行数为1024,四倍频后每转一圈产生4096个脉冲,精度为0.0879o为了满足精度要求,本设计采用16位可逆计数器,计数范围为-65536~65535。该计数模块采用Altera设计软件的LPM(宏功能模块)模块实现。

接口电路的设计与实现

本设计使用的软件是Altera公司的Quartus II,选用的芯片是CycloneⅲIII的EP3C16Q240。该芯片拥有15408个逻辑单元、56个乘法器、4个锁相环和20个全局时钟网络,存储容量为504Kbit,最大工作频率为437.5MHz,输入输出电压为3.3V[8]。如此强大的资源足以实现设计的预期功能。

子模块1的原理图设计

FPGA具有动态系统重构和静态可重复编程的特点,使得像软件一样通过编程修改硬件的功能成为可能。我们可以通过原理图输入或HDL(硬件描述语言)来设计和实现一个数字系统。根据上一节对原理的介绍,生成倍频、鉴相、计数模块的顶层文件原理图,如图5所示。

图5顶层示意图

其中,输入为正交编码信号A和B,输出为16位计数结果。顶层原理图分为两部分,一是倍频鉴相模块,如图6所示;一种是计数模块,利用自身的宏功能模块实现。编码后的信号经过倍频和鉴相后产生四倍频信号F4_CLK和方向信号ENADD,然后通过pluse_count实现16位可逆计数功能。当ENADD为高电平时,即码盘正转时,实现加法计数;当ENADD为低电平时,即码盘反转时,实现减法计数。

图6倍频和鉴相示意图

2编译和下载

在Quartus II中,依次进行以下操作:新建项目、选择目标芯片、绘制原理图、管脚分配、设置芯片参数和配置选项,然后就可以编译设计文件了。

编译完成后,项目文件夹中会生成两个后缀为sof和pof的下载文件。这两个文件的区别在于,前者是通过JTAG口(配置了FPGA芯片)下载到FPGA芯片,程序直接运行,但是掉电后程序消失;后者通过AS口下载到配置芯片,上电后会自动完成配置并运行程序。

前者下载速度快,一般用在FPGA调试过程中。而后者写EPCS配置芯片(其实是串行FLASH)比较慢,所以一般用于开发后期的程序固化。本设计还跟随调试阶段使用JTAG模式刻录下载,在方案确定后使用AS模式刻录下载[11]。

波形模拟和分析

编译完成后,我们使用Quartus II自带的仿真器进行功能仿真,验证设计的逻辑是否正确。建立矢量源文件时,先将编码信号A设置在B 90o之前,得到如图7所示的仿真结果;然后在b超前设置编码信号A 90o,得到如图8所示的模拟结果。

从图7和图8可以看出,当信号A超前B 90o时,即电机正转时,方向信号为高电平,实现四倍频,一个周期内加计数四次;反之,b超前信号A 90o时,即电机反转时,方向信号为低电平,也实现了四倍频,一个周期减四次。因此,仿真结果与理论分析完全一致,该接口电路逻辑正确,具有实际意义。

在实际调试阶段,连接编码器和电路板,通过QuartusII的信号ap II捕获并显示实时信号,结果与预期一致,进一步验证了设计的可靠性。

图7信号A领先B 90o的仿真结果

图8b超信号前90°的模拟结果

总结

基于FPGA的增量式编码器接口设计实现了编码信号数据的采集和处理,克服了使用ASIC(专用集成电路)处理数据带来的编译复杂、通用性差的缺点。该接口电路具有适用性好、集成度高、抗干扰能力强、工作可靠、数据处理速度快等优点。,适用于各种需要增量式编码器测量位置和速度的场合。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@xxxxxxxx@hotmail.com 举报,一经查实,立刻删除。

留言与评论(共有 0 条评论)
验证码: