共计 1887 个字符,预计需要花费 5 分钟才能阅读完成。
基础概念:AB 相编码器的工作原理
AB 相编码器是一种常见的位置传感器,通过输出两路相位差 90°的方波信号(A 相和 B 相)来检测旋转方向与位移。其核心价值在于:

- 方向判别 :通过比较 A、B 相信号的相位关系(A 超前 B 或 B 超前 A)确定转动方向
- 位置反馈 :每个脉冲对应固定的机械位移量,脉冲数累计即为位置信息
- 速度计算 :单位时间内的脉冲数反映运动速度
在运动控制系统中,编码器分辨率直接影响控制精度。原始信号每转产生的脉冲数(PPR)是固定值,而 4 倍频技术可将有效分辨率提升 4 倍。
4 倍频技术深度解析
硬件层实现
- 信号调理电路
- 差分接收:采用 AM26LS32 等芯片抑制共模干扰
- 施密特触发器:对输入信号进行整形,消除毛刺
-
电压比较器:将正弦信号转换为规整方波
-
边沿检测原理
- A、B 相信号各产生上升沿和下降沿,共 4 种状态变化
- 每个状态变化都视为有效计数点(原始信号的 1 / 4 周期)
软件算法实现(STM32 示例)
// 编码器接口配置(TIMx 为例)void Encoder_Init(void) {TIM_Encoder_InitTypeDef sConfig = {0};
htimx.Init.Period = 0xFFFF; // 16 位计数器
sConfig.EncoderMode = TIM_ENCODERMODE_TI12; // 双通道模式
sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
HAL_TIM_Encoder_Init(&htimx, &sConfig);
HAL_TIM_Encoder_Start(&htimx, TIM_CHANNEL_ALL);
}
// 4 倍频计数逻辑(外部中断方式)void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
static uint8_t last_state = 0;
uint8_t current_state = (A_PIN << 1) | B_PIN; // 组合当前状态
/* 状态转移表:* 旧状态 -> 新状态 | 方向
* 00 -> 01 | 正转
* 00 -> 10 | 反转
* 01 -> 11 | 正转
* 01 -> 00 | 反转
* ...(其余 4 种情况)*/
if((last_state == 0x0 && current_state == 0x1) ||
(last_state == 0x1 && current_state == 0x3) ||
(last_state == 0x3 && current_state == 0x2) ||
(last_state == 0x2 && current_state == 0x0)) {position++;} else {position--;}
last_state = current_state;
}
工程实践关键问题
抗干扰设计
- PCB 布局 :
- 编码器信号线走差分对,等长处理
- 远离功率线路,必要时加屏蔽层
-
电源端并联 0.1μF+10μF 电容
-
信号处理 :
- 软件消抖:连续采样 3 次确认有效边沿
- 硬件滤波:RC 低通滤波(截止频率>10 倍信号频率)
计数溢出处理
// 32 位扩展计数方案
int32_t full_cycles = 0;
int16_t last_count = 0;
void Update_Position(void) {
int16_t current = TIMx->CNT;
if((last_count > 0xC000) && (current < 0x4000)) {full_cycles++;} else if((last_count < 0x4000) && (current > 0xC000)) {full_cycles--;}
position = (full_cycles << 16) | current;
last_count = current;
}
性能对比测试
| 倍频方式 | 1000PPR 编码器有效分辨率 | 实测位置波动(±μm) |
|---|---|---|
| 无倍频 | 1000 counts/rev | 12.5 |
| 2 倍频 | 2000 counts/rev | 6.2 |
| 4 倍频 | 4000 counts/rev | 3.1 |
生产环境避坑指南
- EMC 防护
- 信号线串接 120Ω 终端电阻
- 使用 TVS 二极管防护静电
-
金属外壳接地处理
-
安装注意事项
- 保证编码器与转轴同心度<0.1mm
- 避免强振动环境安装
- 定期清洁光栅 / 磁栅
进阶思考:与 PID 控制的结合
通过 4 倍频获得高精度位置反馈后,可构建更精确的闭环控制:
- 位置环 PID 根据编码器反馈计算速度指令
- 速度环 PID 结合 M / T 法测速实现平滑调速
- 前馈补偿机械传动间隙
建议尝试调节 PID 参数时:
- 先调 P 项至系统开始震荡
- 加入 D 项抑制超调
- 最后用 I 项消除静差
完整的运动控制系统还需要考虑加速度规划、柔性传动补偿等更深层问题,这将是下一个值得探讨的话题。
正文完
