大部分旋转编码器均产生两路正交的输出信号,即A相与B相;部分旋转编码器还有一个Z相输出,其主要作用是进行定位,以确定零点位置。通过A、B两相信号就可以确定转速和转向。
旋转编码器的结构及其输出信号形式如下图所示:
从原理上来说确定转速有两种方法:
$$v(k)\approx \frac{\Delta X}{T}\ \ \ \ \ (1)$$
$$v(k)\approx \frac{X}{\Delta T}\ \ \ \ \ (2)$$
式(1)固定时间周期,测量在一定时间内的脉冲个数,进而计算出速度。这种方法中,可以认为时间是准确的,不过脉冲数是有误差的;
式(2)固定脉冲数,测量一定脉冲数所需的时间,进而计算出速度。这种方法中,可以认为脉冲数是准确的,而时间是有误差的;
一般来说,方法(1)适用于高速情况,而方法(2)适用于低速情况。而且定时器的精度一般都高于旋转编码器,故方法(2)的精度一般要更高一些。
对于方法(2),针对TI C2000系列DSP,我编写了一个简易Excel表格用于计算QCPDR
、溢出次数、误差和同等情况下使用方法(1)所需的周期T
,可以从这里下载。