FPGA增量式编码器的接口设计与实现
编码器按信号输出形式分为绝对式编码器和增量式编码器。绝对式光电编码器具有输出数字量可与PC机、ARM或FPGA等器件直接接口,无累积误差等优点,但价格高、制造工艺复杂,不宜实现小型化。增量式光电编码器不具有计数和接口电路,一般输出A、B、Z脉冲信号,价格较低,在实际工程中比较常用。
文中设计了一个基于FPGA的简单且精度高的接口电路,其结构简单、性能可靠。具有滤波、硬件辨向、4倍频计数和数据锁存等功能。计数结果以并口输出,可与PC机、ARM或FPGA等部件进行并行通信。同时在并口之前,用锁存电路来消除硬件电路延时所可能引起韵计数错误,减轻了后续微机的负担,可提高被控对象的测量和控制精度。
1 4倍频电路设计原理
增量式光电编码器实际是一种旋转式角位移检测装置,它根据轴所转过的角度,输出一系列脉冲,能将机械转角变换成电脉冲,输出信号如图1所示。A、B两相信号是相位相差90°的正交方波脉冲串,每个脉冲代表被测对象旋转了一定的角度,A、B之间的相位关系则反映了被测对象的旋转方向,即当A相超前B相,转动方向为正转;当B相超前A相,转动方向为反转。pcb抄板Z信号是一个代表零位的脉冲信号,可用于调零、对位和重置计数器。
对于每个确定的编码器,每转过固定角位移θ,就对应一个脉冲信号,故其量化误差为θ/2。若将A或B信号4倍频,则在此θ角位移内,就会产生4个脉冲信号,其量化误差下降为0/8,光电编码器的角位移测量精度提高4倍。由于伺服系统中编码器的转速具有不可预见性,造成脉冲周期r具有不确定的特点,从而无法使用锁相环等常用倍频方案。由图1可知,在脉冲周期内,A、B两相信号共产生4次变化,尽管T不确定,但由于A、B两相方波信号之间相位关系确定,使这4次变化在相位上平均分布。如果利用这4次变化产生4倍频信号,则可以实现光电编码器测量精度的提高。
分析发现,4倍频设计的关键在于鉴别出A、B信号的上升沿和下降沿。输入信号与其延时信号异或后,就可得到倍频信号。
2 接口电路的FPGA总体方案及设计实现
光电编码器的可靠性与精度直接决定了控制系统的可靠性与控制精度。控制系统精度不会高于检测元件的精度,也就是说检测元件的误差是决定控制系统稳态误差的关键,这种误差也是控制系统无法克服的。因此,选择和设计高精度的光电编码器固然重要,但后续电路对光电编码器输出脉冲的处理精度也不容忽视。因此,一方面要选择精度高的光电编码器;另一方面要重视对光电编码器输出脉冲的处理,传统的处理方法有3种:(1)通过74LS193、74LS171、RC等搭建一个硬件电路实现脉冲的倍频和鉴相的判断。(2)直接将光电编码器的A、B信号送至微处理器,进行纯软件的倍频和鉴相的判别。(3)通过硬件电路和软件结合的方法进行光电编码器脉冲的处理,一般是指上述两种方法的结合。
对以上3种计数方法进行分析可知,用纯软件计数虽然电路简单,但是计数速度慢,电路板克隆微处理器工作量大,难以满足实时性要求,想得到更高的指标,只能不断地更换高性能微处理器,而且由于光电编码器的转速具有不可预见性,采用锁相环进行倍频的话会造成数据的不精确;而纯硬件电路体积大且稳定性、可靠性差、调试烦琐,而且当电阻、电容等组件参数变化时,会导致脉宽发生变化或不能产生具有稳定宽度的脉冲。此外,RC电路抗干扰能力差,反馈部分易受外界干扰,在实际应用中会出现丢失脉冲现象,以至影响控制系统的精度和可靠性。