高伟 王云龙 金勇
(南京理工大学 机械工程学院,江苏 南京 210094)
目前使用光电编码器常用的测速方法有M法、T法以及M/T法。M法适用于高速测量场合,低速测量时,检测误差较大;T法适用于低速场合,高速测量时,检测误差大,并且更新速度太快,系统不停地计算更新转速;M/T法可适用于测量高、低速场合,且具有较高的测量精度。光电编码器在实际工作过程中,干扰和抖动总是客观存在,忽视它们系统的将会计数错误,测量系统就无精度而言。本文在基于TMS320F28335对输入A、B、Z相信号进行输入限制,滤除干扰,采用M/T法进行测速,通过并口或串口输出给控制机。
本文采用的是长春禹衡光学有限公司的A-ZKD-13-200BM-G05LH光电编码器。详细参数为:电源电压DC5 V;分辨率2 000 P/R;最大机械转速为5 000 r/min。
TI公司的数字信号处理器TMS320F28335有增强型QEP接口,用于增量式光电编码器测速。TMS320F28335所有IO口的电平均为3.3 VLVTTL电平,5 VTTL电平不能直接输入到DSP的输入口。如图1所示,因此使用一片74LVC245A与光电编码器A、B、Z相相连,并扩展2路通用输出I/O口和2个通用输入I/O口,以便和上位机通讯的握手信号74LVC245A起到电平转换和缓冲隔离的作用。外扩16路输出并口使用一片74LVTH16245A和5 V系统兼容。一片MAX3232外扩一路串口和上位机进行通讯[1]。
理论上,光电编码器的输出波形如图2.。在实际交流伺服系统中,存在着很强的电磁干扰以及光电编码器本身的扰动,用示波器多次观察A、B相脉冲,有很多很尖的干扰脉冲,时间持续很短,如图3所示(为了便于观看,图为示意图),但DSP的IO口采样周期更短。如果不进行输入信号处理,QEP是无法完成计数测速的,在实际系统中运行时,当电机匀速运转时,通过观察口观察正交方向标志(正反转的状态标志位)时高时低,即eQEP位置计数寄存器QPOSCNT时增时减,测速就没有意义了。
本文所用的光电编码器最大转速为5000r/min,故A相输出最大频率为5 000×2 000/60=0.167 Mhz。通过对DSP的输入限制寄存器进行设置,使输入信号需要先与SYSCLKOUT同步,然后在特定的周期进行采样。采样周期是由A口控制寄存器GPACTRL寄存器的值决定的,本文设置为输入限制寄存器QUALPRD2=10,信号的采样次数可以是三个信号宽度或者是六个信号宽度,由输入A口量化选择寄存器GPAQSEL2确定。本文将QEP的输入引脚的量化选择寄存器GPAQSEL2设置为2,即输入信号只有在6个被采样的信号相同时才发生变化,如图4所示(图中量化寄存器 QUALPRD=1)[2]。
采样频率为1.5 MHz>>0.167 Mhz。故不会丢失信号。
M/T法测速原理如图5所示[3]。使能1 ms周期中断,使能eQEP边沿捕获模块。当周期中断发生且捕获锁存模式QCLM为1时,则位置计数器GPOSCNT、捕获计数器QCTMR的值分别锁存到GPOSLAT和捕获时间锁存寄存器QCTMRLAT中;每当捕获到一个计数脉冲,则使单位位置溢出标志置位,捕获计数器QCTMR的值锁存到捕获周期寄存器QCPRD中。捕捉计数器QCTMR的最大计时周期为27.96 ms(0xFFFF×64/150 000 000),当转速很小时,也需捕捉到一个脉冲,捕获计数器QCTMR最多只能溢出一次,则最小转速
图1 系统原理图
图4 输入限制时钟周期
当转速很快时,测量周期略大于1 ms,能满足一般伺服控制系统的实时性要求。
当进入周期中断时,首先清除单元位置捕获事件状态标志UPEVNT为1,然后等待单元位置捕获事件再次发生将位置捕获状态标志再次置位(即使等待时间大于1ms,周期中断也不会发生,因为上次的周期中断还没有结束,中断标志位还没有清除),读捕获周期寄存器QCPRD值,如果捕获计数器QCTMR没有溢出即溢出标志位COEF为0,则测量时间为
反之,测量时间
重新初始化位置计数器GPOSCNT和单位定时寄存器QUTMR,即软件初始化位置计数器SWI=1,单位定时寄存器 QUTMR=0。如果计数方向标志位COEF为0即反转,则计数脉冲为
反之,计数脉冲为1
位置计数器QPOSCNT不可能下溢或上溢,只有转速大于6 000 r/min才可能溢出,已超过光电编码器的最大转速。故转速
周期中断发生时,位置计数器GPOSCNT,捕捉计数器QCTMR是自动装载到位置计数锁存寄存器GPOSLAT和捕获时间锁存寄存器QCTMRLAT中,单元位置捕获再次发生时,捕获计数器QCTMR的值自动装载到周期寄存器QCPRD中,故没有进中断和读计数寄存器值的时间消耗。理论上,在极端情况下,时间的检测会产生±1个时钟周期即为64/150 μs,在高速时最少的测量周期为1 ms,故速度的理论最大误差为0.43‰。
程序流程图如图6,程序运行时,首先进行系统、PIE控制寄存器、GPIO、SCI、eQEP等初始化,然后进入for循环,判断采用哪种方式输出速度值,等待触发中断,实时更新速度值。
为了验证测量方法的测量精度和响应特性,搭建实验平台,采用美国Kollmorgen公司的交流伺服电机,最大转速为3200 r/min,上位机通过DA输出电压值到伺服放大器(范围-2.5 V~2.5 V),以控制交流伺服电机转速,光电编码器装在输出轴的下一级上,在减速器输出端装有旋转变压器(16位)与光电编码器所在级的传动比为(100∶1)。上位机每10 ms更新一次电压值,然后发出读信号,测速板检测到信号后通过并口发出转速值,并向上位机发出可读信号,上位机保存时间、输出电压值、旋转变压器的绝对位置值以及并口读取的速度数据。如图7所示,图7(a)输入电压为幅值为2 V,周期为4 s的正弦波;图 7(b)为 2.5 V的阶跃信号;图7(c)为输入正弦电压时测量转速值,周期相同,幅值约为700的正弦波;图7(d)为输入阶跃电压时测量的转速值;图7(e)为输入正弦电压时根据旋转变压器两次采样位置值差计算出来的转速值;图7(f)为输入阶跃电压时根据旋转变压器两次采样位置值差计算出来的转速值。从图中可以看出,根据 M/T法测量出来的转速和旋转变压器计算出来的转速趋势完全吻合,但更加平滑,测速效果明显优于旋转变压器根据位置计算出来的速度值。
图7 测量结果图
本文使用TMS320F28335的片上资源和光电编码器可实现精确测量电机转速,充分利用DSP的系统资源,发送速度数据,简化系统软硬件设计,如不需要硬件滤除噪声、正交脉冲的鉴相电路以及倍频电路,以及滤波程序,提高了系统的稳定性和可靠性。采用M/T法测速,能保证在很宽的测速范围的测量精度,在高速时,响应时间快(略大于1ms),能够满足一般的伺服系统的速度反馈要求。
[1]TMS320f28× × 和 TMS320f28× × × DSCs的硬件设计指南[R].TEXAS INSTRUMENTS应用报告,2008.
[2]TMS320×2833×,2823× System Control and Interrupts[S].TEXAS INSTRUMENTS Reference Guide,2010.
[3]TMS320×2833×,2823× Enhanced Quadrature Encoder Pulse(eQEP)Module[S].TEXAS INSTRUMENTS Reference Guide,2008.