SIEMENS内蒙古兴安盟 西门子代理商——西门子华北一级总代理
| 更新时间 2024-11-26 07:00:00 价格 请来电询价 西门子总代理 PLC 西门子一级代 驱动 西门子代理商 伺服电机 联系电话 15903418770 联系手机 15915421161 联系人 张经理 立即询价 |
如下图,电机正转时,编码器的通道A(TI1)的信号超前通道B,计数器向上计数,反转时,通道A的信号滞后,向下计数。
设置信号的极性反相,可以使向下计数代表电机正转。
以STM32 芯片为例,其内部有专门用来采集增量式编码器方波信号的接口,这些接口实际上是STM32 定时器的其中一种功能。不过编码器接口功能只有gaoji定时器TIM1、TIM8 和通用定时器的TIM2~TIM5 才有。
正交编码器有两路正交的输入信号(关于正交编码的介绍,可查看之前的文章:编码器计数原理与电机测速原理——多图解析),根据实际需要,可以设置只捕获某个通道的上升沿或下降沿,也可以设置同时捕获两个通道的上升沿与下降沿,这样就可以提高编码器的计数精度,实现倍频。
编码器模式的配置实际上是通过配置SMCR寄存器和CCER寄存器来实现。
2.1 SMCR寄存器配置触发模式SMCR即从模式控制寄存器(slave mode control register),查阅STM32F4的参考手册,可以找到类似如下信息,现在我们只需关注SMS这几位:
位 15 ETP:外部触发极性 (External trigger polarity)
位 14 ECE:外部时钟使能 (External clock enable)
位 13:12 ETPS:外部触发预分频器 (External trigger prescaler)
位 11:8 ETF[3:0]:外部触发滤波器 (External trigger filter)
位 7 MSM:主/从模式 (Master/Slave mode)
位 6:4 TS:触发选择 (Trigger selection)
位 3 保留,必须保持复位值
位 2:0 SMS:从模式选择 (Slave mode selection)
000:禁止从模式––如果 CEN =“1”,预分频器时钟直接由内部时钟提供。
001:编码器模式 1––计数器根据 TI1FP1 电平在 TI2FP2 边沿 递增/递减计数。
010:编码器模式 2––计数器根据 TI2FP2 电平在 TI1FP1 边沿 递增/递减计数。
011:编码器模式 3––计数器在 TI1FP1 和 TI2FP2 的边沿计数,计数的方向取决于另外一个信号的电平。
100:复位模式––在出现所选触发输入 (TRGI) 上升沿时,重新初始化计数器并生成一个寄存器更新事件。
101:门控模式––触发输入 (TRGI) 为高电平时使能计数器时钟。只要触发输入变为低电平,计数器立即停止计数(但不复位)。计数器的启动和停止都是受控的。
110:触发模式––触发信号 TRGI 出现上升沿时启动计数器(但不复位)。只控制计数器的启动。
111:外部时钟模式 1––由所选触发信号 (TRGI) 的上升沿提供计数器时钟。
上面的SMCR寄存器介绍中,关于TI1、TI2等的函数:
TI1 和 TI2对应编码器的A、B两相输入信号。
TI1FP1 和 TI2FP2 是进行输入滤波器和极性选择后 TI1 和 TI2 的信号,如果不进行滤波和反相,则 TI1FP1=TI1,TI2FP2=TI2。
从上面的SMCR寄存器的功能介绍可知,选择编码器接口模式时:
如果计数器仅在 TI2 边沿处计数,在 TIMx_SMCR 寄存器中写入 SMS=001
如果计数器仅在 TI1 边沿处计数,写入 SMS=010
如果计数器在 TI1 和 TI2 边沿处均计数,则写入 SMS=011
定时器的编码器模式根据两个输入的信号转换序列,产生计数脉冲和方向信号。根据该信号转换序列,计数器相应递增或递减计数,同时硬件对 TIMx_CR1 寄存器的DIR位进行相应修改。