交流伺服绝对值编码器位置反馈脉冲分频输出方法及电路
技术领域
本发明属于伺服控制技术领域,尤其涉及一种交流伺服绝对值编码器位置反馈脉冲分频输出方法及电路。
背景技术
目前,在高精度伺服控制系统中,通常采用高分辨率的绝对值编码器。对上位控制装置而言,有时候必需要求交流伺服驱动器输出位置反馈给上位装置。对于普通的增量式编码器而言,由于反馈的是脉冲,所以可以直接送给上位装置进行计数。但是由于高精度绝对值编码器通常采用串行通讯的方式进行位置反馈,没有来自编码器的直接位置脉冲输出,而上位装置一般要求反馈脉冲量给它进行位置反馈计数,所以就存在一个如何按照上位装置的要求输出可分频的编码器位置脉冲的问题。
发明内容
本发明的目的是解决上述问题,提供一种交流伺服绝对值编码器位置反馈脉冲分频输出方法及电路,实现对绝对值编码器反馈的位置信号分频转换成两路脉冲输出,两路脉冲之间具有一定的相位差,适合在上位装置实现倍频计数。
为实现上述目的,本发明采用的技术方案是:
一种交流伺服绝对值编码器位置反馈脉冲分频输出方法,步骤包括:
首先由公式XQM=(XM*XQ)/XS,计算得到一个采样周期T内期望输出的脉冲数的最大值XQM;式中,T是上位装置根据自己的绝对值编码器采样周期、XQ是期望的电机每转输出脉冲数、XS是绝对值编码器实际每转脉冲数、XM是一个采样周期T内实际最大增量脉冲数(根据电机最高转速得到的);再由DIV_REG≥XQM,根据XQM得到溢出门限寄存器DIV_REG的最小值;然后由fclk=DIV_REG/T,得到CLK时钟的频率fclk;如果上位装置一个位置采样周期内期望输出的脉冲数不大于溢出门限寄存器DIV_REG的值,就可以得到正确的两路脉冲分频输出,即
每来一个CLK脉冲,就对一个采样周期T内期望输出的脉冲数DIV_NUM进行一次累加,然后比较累加和寄存器DIV_BUF和DIV_REG的数值,当DIV_BUF≥DIV_REG的数值时,比较器就溢出一次,分频信号发生器输出的分频信号A、B就改变一次状态,然后从DIV_BUF中减去DIV_REG的数值,余数放在累加和寄存器DIV_BUF中;当时钟脉冲CLK的个数等于DIV_REG的数值时,比较器溢出次数就等于DIV_NUM的值,A、B信号也发生状态改变的次数也就等于DIV_NUM的值。
一种实现上述方法的电路,包括累加和寄存器、比较器和分频脉冲发生器;累加和寄存器的输入端分别连接时钟信号CLK、上位装置一个位置采样周期内期望输出的脉冲数DIV_NUM、与CLK相关的溢出门限寄存器DIV_REG以及比较器的输出结果;累加和寄存器的输出端连接比较器的一个输入,比较器的另一个输入端连接溢出门限寄存器DIV_REG;比较器的输出端连接分频脉冲发生器的一个输入端,分频脉冲发生器的另一输入端连接控制输出脉冲A、B相位超前滞后的方向信号DIV_DIR;分频脉冲发生器输出具有一定相位差的A、B两个脉冲信号。
所述电路以CPLD/FPGA为内核载体,将电路全部构造在该内核中。所述CPLD选用LATTICE公司LCMXO640C。
本发明的工作原理如下:由外围电路输入一个时钟信号CLK(它的频率与DIV_REG的容量选择有关,DIV_REG的容量选择取决于上位装置一个位置采样周期内期望输出的脉冲数的最大值),对DIV_NUM(上位装置一个位置采样周期内期望输出的脉冲数)进行自累加,一旦累加和大于或等于DIV_REG(溢出门限寄存器)中的值,就溢出一次,输出信号A、B就改变一次,然后从累加和中减去DIV_REG值,余数放在累加和寄存器DIV_BUF中。DIV_DIR信号的作用是控制A、B输出脉冲的超前滞后关系。
本发明利用可编程逻辑电路实现对绝对值编码器反馈的位置信号分频转换成两路脉冲输出,两路脉冲之间具有一定的相位差,适合在上位装置实现倍频计数。该发明适用于带高分辨率绝对值编码器的交流伺服驱动器的应用场合,将位置量反馈给上位控制装置构成闭环控制。
与现有技术相比,本发明的有益效果是,不需要使用通讯方式就可以反馈位置信息给上位装置,满足绝大多数通用上位装置的信号接口,不需要对上位装置进行额外开发。
附图说明
图1是本发明电路的原理框图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
在本实施例中,CPLD选用LATTICE公司LCMXO640C。
一种交流伺服绝对值编码器位置反馈脉冲分频输出电路,包括累加和寄存器、比较器和分频脉冲发生器;累加和寄存器的输入端分别连接时钟信号CLK、上位装置一个位置采样周期内期望输出的脉冲数DIV_NUM、与CLK相关的溢出门限寄存器DIV_REG以及比较器的输出结果;累加和寄存器的输出端连接比较器的一个输入,比较器的另一个输入端连接溢出门限寄存器DIV_REG;比较器的输出端连接分频脉冲发生器的一个输入端,分频脉冲发生器的另一输入端连接控制输出脉冲A、B相位超前滞后的方向信号DIV_DIR;分频脉冲发生器输出具有一定相位差的A、B两个脉冲信号。所述电路以CPLD/FPGA为内核载体,将电路全部构造在该内核中。
首先由上位装置根据自己的绝对值编码器采样周期T、期望的电机每转输出脉冲数XQ,绝对值编码器实际每转脉冲数XS、一个采样周期T内实际最大增量脉冲数XM(根据电机最高转速得到),计算得到一个采样周期T内期望输出的脉冲数的最大值XQM。计算公式为XQM=(XM*XQ)/XS,再根据XQM就可确定DIV REG的最小值,即DIV_REG≥XQM。然后根据如下关系式确定CLK时钟的频率fclk:fclk=DIV_REG/T。
这样,只要写入到DIV_NUM中的值小于或等于DIV_REG,就可以实现正确的两路脉冲分频输出。
本实施例的工作过程:每来一个CLK脉冲,就对DIV_NUM进行一次累加,然后比较累加和寄存器DIV_BUF和DIV_REG中的数值,当DIV_BUF≥DIV_REG中的值时,比较器就溢出一次,输出信号A、B就改变一次状态,然后从DIV_BUF中减去DIV_REG的数值,余数放在累加和寄存器DIV_BUF中。这样,当时钟脉冲CLK的个数等于DIV_REG的数值时,比较器溢出次数就刚好等于DIV_NUM的值,A、B信号也发生状态改变的次数也就等于DIV_NUM的值。上位装置接收到A、B信号后,只需要进行四倍频处理,就可获得期望的电机每转输出脉冲数XQ。
假设上位装置的绝对值编码器采样周期T为100us,计算得到DIV_REG选择为10000,则fclk应为100MHz。如果设置DIV_NUM为100,则当经过10000个CLK时钟后,A、B输出信号刚好发生100次状态改变(A、B组合状态),上位装置只需对A、B脉冲进行四倍频就可在T时间内获得100个位置脉冲。