1引言
对于交流异步电机调速来讲,电机转子转角和转速的测量是一个极其关键的环节。美国TI公司专为电机调速设计的数字电机微控制器TMS320F240具有其特殊功能模块--正交解码(QEP)电路和捕获单元,它们可直接与光电编码器相连,用于转速检测。其中QEP电路内部设有转向判别和倍频功能,因此不再需要其它辅助电路,接口电路设计变得非常简单。而且F240具有三个功能强大的通用定时器,可灵活应用于各种测速方法。
TMS320F240与测速相关的管脚主要有四个:CAP1/QEP1,CAP2/QEP2,CAP3和CAP4。正交解码(QEP)电路与捕获单元CAP1、CAP2共享两个输入引脚,因此需要正确配置捕获控制寄存器CAPCON来使能正交解码电路并禁止捕获单元1、
2。这样就把相应的管脚分配给QEP电路使用。
F240与增量式光电编码器连接如图一所示,光码盘的A与B信号相差900,-A、-B分别为反向1800的信号。Z、-Z信号互为反向,是每转输出一个脉冲的零位参考信号。其中TL714是高速差分比较器。
2QEP电路和捕获单元的工作原理
正交解码电路必须选择一个计数器用于计算电路的输入脉冲次数,即将QEP电路脉冲信号作为某通用定时器的时钟源。F240的通用定时器2,3或2和3一起形成的一个32位定时器可供其选择。以通用定时器2为例,首先要求T2定时器工作在双向加/减计数模式。在这种工作模式下,QEP电路不仅为定时器T2提供计数时钟,而且还决定了计数方向。
当电机正转时,QEP电路的方向检测逻辑测定出连接到光码盘A相的QEP1输入引脚上脉冲序列的相位领先于QEP2上的
脉冲信号,然后产生一个方向信号(此信号可以在特殊寄存器内读取,以此判别转向)作为T2定时器的计数方向,则
计数器T2CNT递增计数;反之,若电机反转,QEP2输入是先导脉冲序列,则计数器T2CNT递减计数。定时器T2在计数器下溢或上溢时发生翻转,并重新开始计数。如果两列正交解码输入脉冲的两个边沿均被QEP电路检测,则T2的时钟频率是每个输入序列频率的4倍,如图2所示。由此省去了原有的正交解码脉冲电路4倍频电路。F240共有四个捕获单元,每一个捕获单元都有一个相应的捕获输入引脚。用户定义捕获控制寄存器检测捕获引脚上的转换:上升沿、下降沿或二者均检测。每个捕获单元都可以选择通用定时器2或3作为其时间基准。每当在捕获输入引脚上检测到一个设定的转换时,该捕获单元选定的通用定时器的计数器值被捕获并锁存在相应的2级深度FIFO堆栈中。如果去除了捕获中断屏蔽,捕获单元同时会向CPU发送一个中断申请。
在检测电机转角和转速之前,必须先作以下设置:
选择通用定时器1工作在连续递增计数模式,允许周期定时中断。在这种工作模式下,定时器按照定标输入时钟递
增计数,直到计数器的值与周期寄存器的值相同时,计数器复位为零,周期中断标志被设置为1,然后开始另一个
计数周期。通用定时器2工作在双向加/减计数模式,计算QEP电路输入脉冲个数。通用定时器3工作方式与定时器1
完全相同,但是被选为捕获单元4的时间基准。
3转角计算
在计算电机转角之前,必须先解决转角定位问题。当在捕获输入引脚CAP3上检测到零位参考信号时,定时器2的计
数值T2CNT被捕获并存储在相应的2级深度FIFO堆栈中,被捕获的T2CNT值就可以作为计算转角的基准值。这样,转
子每旋转一周,基准值就被重新定义一次,从而保证了转角的准确性。
为了方便说明,我们只考虑正转情况。用于正交解码电路计数的定时器T2是一个16的通用定时器,因此当定时器T2
计数到最大值FFFFH时,计数器T2CNT发生翻转,重新从零开始计数。必须分两种情况来计算转角。
3.1定时器T2不发生翻转计数
如图3(a)所示,f(1)、f(2)分别是t1、t2时刻定时器T2计数值;f(0)、f1(0)为相邻两次零位参考信号时的定时器T2
计数值。那么在t1~t2时间内电机转子旋转的机械角度应是
(rad)(1)
式中PN—每转脉冲数,PN=2500脉冲/转;
式中Δ1=f(2)-f(1)。
若要计算t2时刻相对于以光码盘Z信号转角基准的旋转夹角,则必须以最后一次捕获值f1(0)为参考值。可表示为
(rad)(2)
式中Δ2=f(2)-f1(0)
3.2定时器T2发生翻转
因为计数器T2CNT每计数FFFFH次,才翻转一次,这远远大于光码盘每转输出脉冲的四倍数(10000)。因此,在相邻两个零位参考信号之间,计数器T2CNT最多出现一次翻转的情况。如图3(b)所示。可知
(rad)(3)
其中Δ1=f(2)-f(1)+FFFFH
同定时器T2不翻转情况相同:
(rad)(4)
式中Δ2=f(2)-f1(0)+FFFFH
4转速计算
下面介绍M法、T法以及M/T法三种常用测速方法。M法测速是在相等的时间间隔Tc内用光码盘输出脉冲个数来算出转速,从而得到转速的测量值。T法测速是测出相邻两个脉冲之间的间隔时间来计算转速。根据以上定义可知,转速越低,M法测速误差越大;T法测速则正好相反,测速误差随转速加大而加大。那么若想检测低转速,同时又要保证高转速的精度,就必须综合这两种测速方法的特点,从而得到M/T法的测速方法:在M法的基础上,以时间TC之后光码盘再输出第一个脉冲为止的时间为检测时间。
4.1M法测速
设置通用定时器T1的时钟输入为20MHz。并且开通定时器周期中断,中断周期等于计算转速的采样周期TC。则定时器每隔时间TC向CPU发出一次中断请求,CPU响应中断后,在中断服务子程序中按前面所述方法求出定时器T2变化量,则电机转速:
(5)
M法计算转速只需要检测一个变化量,即定时器T2变化量,而且由于PN和TC均为常数,令,将上式改为:
(6)
这样避免了复杂的定点除法运算,因此计算程序十分简单,只需四、五条语句便能实现。不过,正如前面讲到的一样:转速越低,M法测速误差越大。这在DSP中更加明显。通常情况下,我们希望控制周期越短越好,而同一转速下,周期越短,能够检测到光码盘输出脉冲个数就越少,分辨率也越高。举例说明见表1。
表1M法测速性能表
每转脉冲数PN=2500脉冲/转:
控制周期TC(ms)转速(转/分)定时器T2变化量△1分辨率(q=1/△1)
130005000.2%
508.3312.5%
0.13000502%
50△1小于1无法检测
可知当控制周期TC=0.1ms,转速低于60转/分时,使用M法将无法检测到转速。
3.2T法测速
T法测速可以利用捕获单元的功能来实现。选择通用定时器T3时钟频率f=20MHz,作为计算转速的时钟基准.设定当捕获引脚上发生上升或下跳沿时,均将计数器T3CNT值捕获并锁存。在计算两个连续捕获发生的间隔时间T时也必须考虑16位定时器翻转情况。与前面所述定时器T2翻转情况相同:
不翻转时,m=f(1)-f(0)(7)
f(1)为当前捕获发生时16位定时器的计数值;
f(2)为前一捕获发生时16位定时器的计数值;
翻转时,只考虑翻转一次的情况;
m=f(1)-f(0)+0FFFFh(8)
那么转子转速:
(9)
这里TC指引脚CAP3上两个连续跳变沿间隔时间,TC=(m/20)MHz在计数器T3CNT翻转一次的情况下,T时间里内,定时器计数值最大变化量为mmax=0FFFFH,则最大检测时间那么可测最低转速在一般情况下,每分钟3.66转的转速已经相当低了,因此不能一味地追求低速测量,而选取由通用定时器T2和T3合成的32位定时器作为QEP电路的计数器,设计复杂的32位运算程序来计算更低转速。所以可以认为定时器出现两次
或两次以上翻转的情况时,转子是静止的,即n=0rpm。
当电机转速n为3000rpm时,两个脉冲间的计数值:
分辨率q%=1/160=0.625%。这已经能满足一般测速系统要求,所以对高速的DSP而言,采用T法测速即可达到要求。但是T法测速含有定点除法运算,因此计算过程比M法稍微复杂一些。
3.3M/T法
仍然按M法设置通用定时器T1,按T法设置通用定时器T3。当发生定时器T1周期中断时(中断周期TC,计算定时器T2计数值变化量△1,读取此时定时器T3计数值T3CNT(0),并允许捕获单元CAP4捕获中断。在此之后,当捕获单元CAP4捕获到第一个跳变沿时,向CPU申请捕获中断。在捕获中断子程序中,根据捕获的计数值T3CNT(1),得检测时
间
(10)
则电机转子转速:
(11)
M/T法综合了M法和T法的测速特点,能够在很宽范围内按要求检测转速。但是它涉及两个通用定时器、捕获单元、QEP电路等多个特殊寄存器的设计,所以在定义特殊寄存器时一定要小心,以免相互冲突。
5结束语
本文主要介绍了数字电机控制专用控制芯片TMS320F240中专用模块正交解码电路和捕获单元的功能特点,给出了由它们实现M法、T法以及M/T法测速的三种方案,并做了对比。无论采用哪一种方法,在设计过程中都应该注意硬件与软件的配合,有效地利用QEP电路、捕获单元、定时器三者间的关系实现了测速功能。