STM32F103如何实现霍尔编码器测速功能?

摘要:一、编码器介绍 编码器,是一种用来测量机械旋转或位移的传感器。这种传感器能够测量机械部件在旋转或直线运动时的位移位置或速度等信息, 并将其转换成一系列电信号。 编码器是工业中常用的传感器之一,广泛应用于工业生产当中需要对机械系统进行监视或控
一、编码器介绍 编码器,是一种用来测量机械旋转或位移的传感器。这种传感器能够测量机械部件在旋转或直线运动时的位移位置或速度等信息, 并将其转换成一系列电信号。 编码器是工业中常用的传感器之一,广泛应用于工业生产当中需要对机械系统进行监视或控制的场景, 包括工业控制、机器人、照相机镜头、雷达平台以及部分计算机输入设备例如轨迹球和鼠标滚轮等等。 编码器可以根据不同的方式分出很多种类型。例如: 根据检测原理,可分为光电编码器和霍尔编码器; 根据内部机械结构的运动方式,可分为线性编码器和旋转编码器; 根据其刻度实现方法及信号输出形式, 又可分为增量式、绝对式以及混合式三种。 线性编码器通常用于测量直线运动,而旋转编码器常被用来测量旋转运动。因此不难看出,电机转速测量应该使用的是旋转编码器。旋转编码器的原理示意图如下图所示; 1.1 按检测原理划分 1.1.1 光电编码器 光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器,光电编码器内部大都由码盘、光电检测装置和信号处理电路等部分组成。 光电码盘上刻了若干圈线槽, 线槽等距并且可透光,光电码盘与电动机同轴,电动机旋转时,光电码盘就会周期性的透过和遮挡来自光电检测装置的光线,这样检测装置就会周期性的生成若干电信号。 但是这些电信号通常比较微弱,需要加入一套处理电路对信号进行放大和整形,最后把信号整形为脉冲信号并向外输出。 1.1.2 霍尔编码器 霍尔编码器是一种通过磁电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器,由霍尔码盘和霍尔元件等部分组成。 霍尔码盘是在一定直径的圆板上等分地布置有不同的磁极。霍尔码盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相位差的方波信号。 1.2 按信号输出形式划分 1.2.1 增量式编码器 增量式旋转编码器是将设备运动时的位移信息变成连续的脉冲信号,脉冲个数表示位移量的大小。 只有当设备运动的时候增量式编码器才会输出信号。 编码器一般会把这些信号分为通道A和通道B两组输出,并且这两组信号间有90°的相位差。同时采集这两组信号就可以知道设备的运动和方向。 除了通道A、通道B以外,很多增量式编码器还会设置一个额外的通道Z输出信号,用来表示编码器特定的参考位置,传感器转一圈Z轴信号才会输出一个脉冲。 增量式编码器只输出设备的位置变化和运动方向,不会输出设备的绝对位置。 1.2.1.1 光电增量式编码器 增量式编码器都有A、B两通道信号输出,这是因为增量式编码器的码盘上有两圈线槽, 两圈线槽的之间会错开一定的角度,这个角度会使得光电检测装置输出的两相信号相差1/4 周期(90°)。码盘的具体工作方式如下图所示; 图中黑色代表透光,白色代表遮光。当码盘转动时,内圈和外圈的线槽会依次透过光线,光电检测装置检测到光线通断的变化, 就会相应的输出脉冲信号,因为内外圈遮光和透光时候存在时间差,所以也就有了A、B两通道信号的相位差。 这里我们将设A相为外圈,B相为内圈,码盘转动循环输出如下信号:11 -> 01 -> 00 - > 10; 根据两相信号变化的先后顺序就可以判断运动方向,记录输出的脉冲个数可以知道位移量的大小,同时通过输出信号的频率就能得到速度; 通过判断B相处于上升沿时A相的电平状态,我们就可以知道码盘旋转的方向了; 当码盘正转时,在B相的上升沿,A相恒为高电平; 当码盘反转时,在B相的上升沿,A相恒为低电平。 注意: 正/反转是相对而言的,重点在于区分不同旋转方向时的波形特征; 通过观察A相上升沿时B相的电平亦能判旋转方向。 1.2.1.2 霍尔增量式编码器 霍尔增量式编码器在结构上和光电式几乎相同,只不过检测原理变成了霍尔效应。 内部元件也稍有不同,霍尔编码器的码盘上不是线槽,而是不同的磁极,或者有些直接把电机的旋转磁场当作码盘, 然后检测装置换成了霍尔传感器。输出和光电式相同,仍然是相位差1/4周期的A、B两通道信号。 增量式编码器计数起点任意设定,可实现多圈无限累加和测量。需要提高分辨率时,可触发A、B两通道信号的上升沿和下降沿对原脉冲数进行倍频。 但是当接收设备停机重启后,增量式编码器需要重新寻找参考零点。 1.2.2 绝对式编码器 绝对式旋转编码器是将设备运动时的位移信息通过二进制编码的方式变成数字量直接输出。 这种编码器与增量式编码器的区别主要在内部的码盘。 绝对式编码器的码盘利用若干透光和不透光的线槽组成一套二进制编码, 这些二进制码与编码器转轴的每一个不同角度是唯一对应的,读取这些二进制码就能知道设备的绝对位置,所以叫它绝对式编码器。
阅读全文