|||
通常的测速方法包括M法,T法以及M/T三种方法。M法的原则是记下固定时间T内的脉冲数,所以这种方法比较适宜于高速区;T法的原则是记下每个编码器脉冲之间的周期T,所以这种方法比较适宜于低速区;而M/T法结合了这两种方法的优点,因此测速范围和精度都得到了很好的保证。
Fig.1 M/T
测速
上图阐述了M/T测速的基本方法。T0由一个定时器决定,而速度采样周期T由T0之后的第一个脉冲决定(编码器脉冲或者直接使用接近开关传感器脉冲),也就是说,T=T0+ΔT。m1代表时间T内记下的编码器脉冲数(或者接近开关脉冲信号),m2代表与时间T对应的计数器脉冲数(MCU定时器/计数器)。可以得到以下关系:
(1)
这里,n: rpm(转速每分钟),
fmech: Hz.
(2)
如果时间T内记下的编码器脉冲数为m1,则
(3)
如果与时间T对应的计数器脉冲数为m2,则
(4)
这里Np为编码器线数, fCLK为检测时间T的计数器时钟频率,因此
(5)
如果定义
(6)
则
(7)
Fig.2 编码器信号和计数操作
Fig.3 测速的硬件结构图
通过MTU实现M/T测速的过程中需要用到通道0和1,其硬件结构图如图3 所示。通道1中的TCNT_1是一个上/下计数器,它的时钟源是从编码器过来的PGA和PGB信号,其相位相差90度,通过脉冲沿检测电路TCNT_1可以记下PGA和PGB信号的脉冲沿数,图2给出了TCNT_1和编码器信号之间的关系,因为同时检测PGA和PGB信号的上升沿和下降沿,所以TCNT_1频率是PGA和PGB信号频率的4倍。通道0中的TCNT_0是一个向上计数器,TGRB_0是TCNT_0的捕获计数器,它被用来记录速度采样周期T。m1和m2分别代表两次捕获中断之间TCNT_1以及TGRB_0的差值。考虑到电机在低速条件下,m2有可能超过TCNT_0的最大值0FFFFh,为了解决这个问题,需要记下TCNT_0的上溢次数(n),所以式(7)变为
(8)