编码器
增量式编码器倍频技术
增量式编码器输出的常见脉冲波形信号形式:
占空比为50%的方波,通道A和通道B相位差为90°。
正弦波的模拟信号,通道A和通道B相位差为90°。
对于占空比为50%的方波,通道A和通道B相位差为90°。先以下图为例子。
如果只在某一通道的上升沿计数,则计数频率 = 该通道频率。
如果在某一通道的上升沿和下降沿都计数,则计数频率 = 该通道频率 * 2,即2倍频。
如果在双通道的上升沿和下降沿都计数,则计数频率 = 该通道频率 * 4,即4倍频。
因此,至少在1/2个原始方波周期内就可以计数一次,最多在1/4个原始方波周期内就可以计数一次。这样计数频率就是原始方波信号的2或4倍,即编码器的分辨率提高了2倍到4倍。
假设有个增量式编码器的分辨率是600PPR,能分辨最小角度是0.6°,对它进行4倍频后就相当于把分辨率提高到600*4=2400PPR,此时编码器能够分辨的最小角度为0.15°。
编码器倍频计数还可以用来扩展一些测速方法的速度适用范围。例如电机测试通常使用M法测量,编码器4倍频后可以扩展M法的速度下限。
常用编码器测速方法:M法、T法和M/T法
对于电机转速的测试,可以把增量式编码器安装到电机上,用控制器对编码器脉冲进行计数,然后通过特定的方法求出电机转速。
M法(频率测量法):在一个固定的定时时间内(以秒为单位),统计这段时间的编码器脉冲数,计算速度值。
设编码器单圈脉冲数为C,在时间T内统计到的编码器脉冲数为M,则转速n = M / CT。编码器单圈脉冲数C是一个常数,所以转速n和M成正比,使得在高速测量时M变大可以获得较好的测量精度和平稳度。但如果速度很低,低到每个T只有几个脉冲,此时算出的转速误差就会比较大,并且不稳定。
有一些方法可以改善M法在低速测量的准确性,比如增量式编码器倍频技术。当原本捕获到的脉冲M只有4个,经过4倍频后,相同电机状态M变成了16个,也就提升了低速下的测量精度。
T法(周期测量法):建立在一个已知频率的高频脉冲并对其计数,计数时间由捕获到的编码器相邻两个脉冲的间隔时间T决定,计数值为M。设编码器单圈总脉冲数为C,高频脉冲的频率为F,则转速n = 1/CT=F/CM。C和F是常数,所以转速n和M成反比。在电机高转速时,编码器脉冲间隔时间T很小,使得测量周期内的高频脉冲计数值M也变得很少,导致测量误差变大。而在低转速时,T足够大,测量周期内的M也足够多。所以T法和M法刚好相反,更适合测量低速。
M/T法:综合了M法和T法各自的优势,即测量编码器脉冲数又测量一定时间内的高频脉冲数。
在一个相对固定的时间内,计数编码器脉冲数为M0,并计数一个已知频率为F的高频脉冲,计数值为M1,设编码器单圈总脉冲数为C,则转速n = FM0/CM1。由于F和C是常数,所以转速n只受M0和M1的影响。电机高速时,M0增大,M1减小,相当于M法;电机低速时,M1增大,M0减小,相当于T法。
STM32的编码器接口
STM32芯片内部有专门用来采集增量式编码器方波信号的接口,这些接口实际上是STM32定时器的其中一种功能。编码器接口功能只有高级定时器TIM1/8和通用定时器TIM2~TIM5才有。
编码器接口用到了定时器的输入捕获部分。