基于FPGA增量式编码器的接口设计与实现
摘要 光电增量式编码器,又称光电角位置传感器,是电气传动系统中用来测量电动机转速和转子位置的核心部件。分析了光电编码器4倍频原理,提出了一种基于可缟程逻辑器件FPGA对光电增量式编码器输出信号4倍频、鉴相、计数的具体方法,它对提高编码器分辨率与实现高精度、高稳定性的信号检测及位置伺服控制具有一定的现实意义。经实际项目论证,该方案在保证测量精度的前提下,可以有效滤除噪声干扰和消除抖动,增强了系统的干扰抑制和容错能力,可移植性强,便于系统升级。
关键词 FPGA;增量式光电编码器;4倍频;鉴相
光电编码器在现代电机控制系统中常用以检测转子的位置与速度,是通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的高精度角位置测量传感器。由于其具有分辨率高、响应速度快、体积小、输出稳定等特点,被广泛应用于电机伺服控制系统中。
编码器按信号输出形式分为绝对式编码器和增量式编码器。绝对式光电编码器具有输出数字量可与PC机、ARM或FPGA等器件直接接口,无累积误差等优点,但价格高、制造工艺复杂,不宜实现小型化。增量式光电编码器不具有计数和接口电路,一般输出A、B、Z脉冲信号,价格较低,在实际工程中比较常用。
文中设计了一个基于FPGA的简单且精度高的接口电路,其结构简单、性能可靠。具有滤波、硬件辨向、4倍频计数和数据锁存等功能。计数结果以并口输出,可与PC机、ARM或FPGA等部件进行并行通信。同时在并口之前,用锁存电路来消除硬件电路延时所可能引起韵计数错误,减轻了后续微机的负担,可提高被控对象的测量和控制精度。
1 4倍频电路设计原理
增量式光电编码器实际是一种旋转式角位移检测装置,它根据轴所转过的角度,输出一系列脉冲,能将机械转角变换成电脉冲,输出信号如图1所示。A、B两相信号是相位相差90°的正交方波脉冲串,每个脉冲代表被测对象旋转了一定的角度,A、B之间的相位关系则反映了被测对象的旋转方向,即当A相超前B相,转动方向为正转;当B相超前A相,转动方向为反转。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)通过硬件电路和软件结合的方法进行光电编码器脉冲的处理,一般是指上述两种方法的结合。
评论