编码器接口简介

•Encoder Interface 编码器接口

•编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度

•每个高级定时器和通用定时器都拥有1个编码器接口

•两个输入引脚借用了输入捕获的通道1和通道2

编码器的测速实际上就 是测频法测正交脉冲的频率,CNT计次,每隔⼀段时间取⼀次计次。

2. 正交编码器




编码器架构 输出尺寸c nn_单片机


编码器架构 输出尺寸c nn_stm32_02


  • 当编码器的旋转轴转起来时,A相和B相就会输出⽅波信号,转的越快,⽅波的频率越⾼, ⽅波的频率代表速度,取出任意⼀相的信号来测量频率,可测得旋转速度,只有⼀相 的信号⽆法确定旋转⽅向,因为无论正传反转,他都为一条方波。(正交信号:当正转时,A相超前B相90度,翻转时,A相滞后B相90度 提前或者滞后由自己规定)
  • 正转时,第⼀个时刻,A相上升沿,对应B此时是低电平,第⼆个时刻,B相上升沿,对应A 相⾼电平,第三个时刻,A相下降沿,对应B相⾼电平,B相下降沿,对应A相低电平。
  • 反转时,第⼀个时刻,B相上升沿,对应A相低电平,第⼆个时刻A相上升沿,对应B相⾼电 平,第三个时刻,B相下降沿,对应A相⾼电平,第四个时刻,A相下降沿,对应B相低电 平。 当A、B相出现这些边沿时,对应另⼀相的状态,正转和反转正好是相反的
  • 编码器接⼜的设计逻辑是:首先把A相和B相的所有边沿作为计数器的计数时钟,出现边沿 信号时,就计数自增或者自减。

3. 编码器接口基本结构


编码器架构 输出尺寸c nn_编码器架构 输出尺寸c nn_03


输⼊捕获的前两个通道,通过GPIO口接⼊编码器的A、B相,然后通过滤波器和边沿检测极性选择,产⽣TI1TP1和TI2FP2,通向编码器接口,编码器接口通过控制预分频器控制CNT计数器的时钟,同时,编码器接口还根据编码器的旋转⽅向,控制CNT的计数⽅向,编码器正转时,CNT自增,编码器反转时,CNT自减。

另外设置ARR为65535最⼤量程,这样利用补码特性很容易得到负数。(直接把16位无符号数转换为16位有符号数,根据补码定义65535对应-1,65534对应-2)

4. 工作模式


编码器架构 输出尺寸c nn_编码器架构 输出尺寸c nn_04


编码器接口的工作逻辑:TI1FP1和TI2FP2接的就是编码器的A、B相,在A相和B相的上升沿 或者下降沿触发计数,向上计数还是向下计数取决于边沿信号发⽣时,另⼀相的电平状态 (相对信号的电平)

5. 实例

TI1和TI2均不反相(上升沿)


编码器架构 输出尺寸c nn_编码器架构 输出尺寸c nn_05


TI1反相(下降沿)

极性变化对计数的影响


编码器架构 输出尺寸c nn_编码器架构 输出尺寸c nn_06


TI1反相后,把TI1高低电平取反,这才是反相后实际给编码器接口的电平。