共计 1997 个字符,预计需要花费 5 分钟才能阅读完成。
物理原理差异
霍尔效应 (Hall Effect) 编码器
- 基础原理:当电流通过半导体材料时,垂直方向的磁场会使电子发生偏转,产生与磁场强度成正比的电压(霍尔电压)。
- 13 线设计:通过多极磁环(通常 8 -32 对极)实现角度细分,13 线指信号输出线数(包括 A / B 相、索引信号等)。
- 转速测量 :极对数越多,单圈脉冲数(PPR) 越高,低速测量更精确,但高速时信号频率会受硬件限制。
GMR(巨磁阻 /Giant Magneto Resistance)编码器
- 量子效应:利用铁磁材料与非磁材料多层结构中电阻随磁场方向变化的特性,灵敏度比霍尔效应高 10 倍以上。
- 1°分辨率:通过特殊磁栅设计(如 256 极磁环)和插值算法实现,GMR 元件对磁场方向变化极其敏感。
核心参数对比
| 参数 | 13 线霍尔编码器 | GMR 编码器 |
|---|---|---|
| 分辨率 | 通常 100-2000 PPR | 可达 0.1°(3600 PPR) |
| 线性度误差 | ±0.5°~±1° | ±0.1°~±0.3° |
| 温度范围 | -40°C~+125°C | -40°C~+150°C |
| 抗磁场干扰 | 易受外部磁场影响 | 自带差分结构抗干扰更强 |
| 响应频率 | 典型 100kHz | 可达 500kHz |
| 寿命 | 无接触,理论无限 | 无接触,理论无限 |
STM32 驱动实战
霍尔编码器接口示例
// 使用 TIM1 正交编码模式
void Encoder_Init() {TIM_Encoder_InitTypeDef encoderConfig = {0};
encoderConfig.EncoderMode = TIM_ENCODERMODE_TI12;
encoderConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
encoderConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
HAL_TIM_Encoder_Init(&htim1, &encoderConfig);
HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_ALL);
}
// CRC 校验示例
uint16_t Calc_CRC(uint8_t* data, uint32_t len) {__HAL_RCC_CRC_CLK_ENABLE();
CRC->CR |= CRC_CR_RESET;
for(uint32_t i=0; i<len; i++) {CRC->DR = data[i];
}
return CRC->DR;
}
GMR 编码器信号处理
// 使用外部中断捕获边沿
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
static uint32_t lastTick = 0;
uint32_t currTick = HAL_GetTick();
// 信号完整性检查(脉冲宽度验证)if((currTick - lastTick) < MIN_PULSE_WIDTH) {errorHandler();
}
lastTick = currTick;
// 方向判断
if(GPIO_Pin == A_PIN) {direction = (HAL_GPIO_ReadPin(B_PORT, B_PIN) == GPIO_PIN_SET) ? 1 : -1;
}
}
EMC 设计三要素
- 屏蔽层布局:
- 编码器信号线使用双绞线 + 铝箔屏蔽
-
接地点选择在靠近接口处

-
电源去耦:
- 每颗 IC 的 VCC 引脚放置 0.1μF+10μF 电容组合
-
磁珠隔离模拟 / 数字地
-
信号滤波:
- A/ B 相信号线上串联 100Ω 电阻并并联 100pF 电容
- 使用施密特触发器整形信号
选型决策流程图
graph TD
A[转速 >5000RPM?] -->| 是 | B(选 GMR)
A -->| 否 | C{环境磁场 >5mT?}
C -->| 是 | D[选 GMR]
C -->| 否 | E{预算 <$20?}
E -->| 是 | F[选霍尔]
E -->| 否 | B
霍尔编码器校准技巧
强磁场补偿方法
- 硬件补偿:
- 在编码器背面加装 μ - 金属屏蔽罩
-
使用差分霍尔元件(如 AS5047P)
-
软件补偿:
- 上电时旋转 360°记录各角度误差值
- 运行时应用误差查表补偿
# 简易误差补偿示例 def angle_compensation(raw_angle): idx = int(raw_angle / COMP_STEP) return raw_angle - calibration_table[idx]
实际应用案例
- 机器人关节:GMR 编码器因高分辨率成为优选,但需注意高温导致磁铁退磁
- 无人机电调:霍尔编码器成本优势明显,建议选择 IP67 防护等级型号
- 工业传送带:两者均可,振动大的环境优先选用 GMR(无机械损耗)
故障排查清单
- 信号丢失:检查供电电压是否低于 4.5V
- 计数错误:确认 A / B 相序是否正确,TIMx_SMCR 寄存器配置
- 温度漂移:GMR 编码器需避免超过居里温度(通常 150°C)
扩展阅读建议
-
霍尔传感器灵敏度公式:
$$V_H = \frac{I·B}{n·e·t}$$
(I: 电流, B: 磁场强度, n: 载流子浓度, e: 电子电荷, t: 材料厚度) -
GMR 多层膜结构:
Fe/Cr/Fe 三明治结构产生自旋相关散射效应
正文完
发表至: 未分类
近两天内

