编码器接口简介
•Encoder Interface 编码器接口
•编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度
•每个高级定时器和通用定时器都拥有1个编码器接口
•两个输入引脚借用了输入捕获的通道1和通道2
编码器的测速实际上就 是测频法测正交脉冲的频率,CNT计次,每隔⼀段时间取⼀次计次。
2. 正交编码器
- 当编码器的旋转轴转起来时,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. 编码器接口基本结构
输⼊捕获的前两个通道,通过GPIO口接⼊编码器的A、B相,然后通过滤波器和边沿检测极性选择,产⽣TI1TP1和TI2FP2,通向编码器接口,编码器接口通过控制预分频器控制CNT计数器的时钟,同时,编码器接口还根据编码器的旋转⽅向,控制CNT的计数⽅向,编码器正转时,CNT自增,编码器反转时,CNT自减。
另外设置ARR为65535最⼤量程,这样利用补码特性很容易得到负数。(直接把16位无符号数转换为16位有符号数,根据补码定义65535对应-1,65534对应-2)
4. 工作模式
编码器接口的工作逻辑:TI1FP1和TI2FP2接的就是编码器的A、B相,在A相和B相的上升沿 或者下降沿触发计数,向上计数还是向下计数取决于边沿信号发⽣时,另⼀相的电平状态 (相对信号的电平)
5. 实例
TI1和TI2均不反相(上升沿)
TI1反相(下降沿)
极性变化对计数的影响
TI1反相后,把TI1高低电平取反,这才是反相后实际给编码器接口的电平。