关节回零与限位是每一项运动控制的起点,机械微动开关寿命只有几十万次、光电对射怕粉尘油污。本文基于 Melexis US1881 霍尔锁存器数据手册,讲清锁存型磁开关的双极性触发与磁滞门限、3.5~24V 宽压开漏输出的三线/两线/抗噪三种电路、磁钢与气隙设计,附 STM32 去抖与回零状态机代码及七步落地清单。
机器人关节每次上电都要先"找家",限位则是防止越程撞坏减速器的最后一道闸。机械微动开关触点寿命只有 10 万量级且怕粉尘,光电对射镜头一沾油污就误报。更稳的做法是在关节输出轴上贴一块小磁钢、在固定侧放一颗霍尔锁存器。结论先给三条:第一,回零/限位是"开关量"需求,选型应该选锁存型(latch)而不是线性霍尔,因为锁存器带 7~12mT 磁滞,磁场抖动时输出不振荡;第二,Melexis US1881 一颗器件集成了稳压器、动态失调消除霍尔片、施密特触发器和开漏输出,3.5~24V 宽压供电、5mA 以内功耗,可以直接挂在 嵌入式 控制板的 3.3V 或 5V 轨上;第三,机械结构上要保证"过零即翻转",磁钢与器件的极性朝向决定输出高低的对应关系,SE 封装与 UA 封装的南/北极对应输出恰好相反,装反了就是永远读反。
增量式编码器只报告"转了多少格",上电时并不知道自己在哪一格,所以必须有一个绝对参考点——回零点(home);减速器与丝杠又有机械行程边界,一旦控制环算错或丢步,就要靠硬件限位(limit)在物理边界前把运动停掉。两者都是开关量输入,对 MCU 来说只是两根 GPIO,但要求不同:回零要"能重复找到同一位置",限位要"极端情况下不死不粘"。
选型的核心因此不是精度,而是寿命、环境耐受与电平稳定性。四种常见方案的横向对比如下。
| 方案 | 机械微动开关 | 光电对射/反射 | 霍尔锁存器(US1881) | 磁编码器绝对角度 |
|---|---|---|---|---|
| 检测原理 | 触点闭合 | 光路遮断 | 磁场极性翻转 | 磁场角度解算 |
| 机械寿命 | 104~105 次 | 107 次(无接触) | 无接触,无磨损 | 无接触,无磨损 |
| 环境耐受 | 怕粉尘、怕潮 | 怕油污、怕粉尘 | 可整体灌封,耐油污 | 可整体灌封 |
| 输出类型 | 无源触点 | 数字电平 | 开漏数字电平 | 串行绝对角度 |
| 是否需要上拉 | 需要 | 内部常带上拉 | 需要(典型 10kΩ) | 需要通信总线 |
| 成本/复杂度 | 最低 | 低 | 低,单器件 + 磁钢 | 高,需要芯片与标定 |
| 适合角色 | 低成本限位 | 洁净环境限位 | 回零 + 限位首选 | 全闭环绝对定位 |
结论很直接:回零与限位只要"有/无"两态,锁存型霍尔在寿命、耐污、集成度上全面胜出,成本又远低于绝对式磁编码器;唯一需要额外设计的是磁路——磁钢、气隙与极性朝向。
US1881 是 Melexis 混合信号 CMOS 工艺的霍尔锁存器,片内集成电压调整器、带斩波稳定(chopper)动态失调消除的霍尔片、施密特触发器与开漏输出级(Melexis US1881 数据手册 Rev 015)。斩波稳定用开关电容技术抑制霍尔片与放大器的失调电压,换来更稳定的磁门限与更小的芯片面积,也降低了封装机械应力的影响。
| 参数 | 符号/条件 | 数值(最小值~最大值) | 工程含义 |
|---|---|---|---|
| 工作电压 | VDD | 3.5 ~ 24 V | 3.3V/5V 数字轨、12V/24V 现场电源通吃 |
| 电源电流 | IDD(B < BRP) | ≤ 5 mA | 常通功耗约 17~120mW,多路并联需算总线电流 |
| 输出饱和压降 | VDSon(IOUT=20mA) | ≤ 0.5 V | 可直接驱动光耦/逻辑输入,低电平裕量大 |
| 输出漏电流 | IOFF(VOUT=24V) | 典型 0.3 µA,最大 10 µA | 高电平几乎不漏电,上拉电阻可取得较大 |
| 输出上升/下降时间 | tr/tf(RL=1kΩ, CL=20pF) | 0.25 µs | 支持最高约 10kHz 开关频率,够做低速测速 |
| 工作点 / 释放点 | BOP / BRP | 0.5~9.5 mT / −9.5~−0.5 mT | 南极/北极分别触发,必须两块极性 |
| 磁滞 | BHYST | 7 ~ 12 mT(L 级 6 ~ 12.5 mT) | 抗抖动的核心,抑制门限附近输出振荡 |
| 封装热阻 | RTH(单层 JEDEC 板) | 301 °C/W | 小封装自热明显,驱动大电流要考虑结温 |
| 温度等级 / 封装 | E / K / L;SE / UA | −40~85 / 125 / 150 °C;TSOT-3L / TO-92 | 关节内腔靠近电机,建议直接选 K 或 L 级 |
| 绝对最大额定 | VDD / IOUT / TJ | 28 V / 50 mA / 165 °C | 反接与浪涌保护必须外置 |
这里有一个最容易被忽略的细节:US1881 是"锁存型"而不是"单极型"。它需要南极和北极同时存在才能正常工作——南/北极分别把输出拉低和拉高,撤掉磁场(B→0)输出保持上一次状态,相当于一个"磁记忆"。这意味着两块磁钢(或一块磁钢的两极)从传感器面前扫过,每扫过一次输出翻转一次;只放一块磁钢单极扫过,输出可能只翻一半然后卡住。
选完器件,真正的工程量在磁路,原则只有一条:保证传感器处的磁场幅值稳定跨过 BOP 与 BRP 并留足余量。手册给出 BOP 最大 9.5mT(95Gs),故触发位置场强应做到 15~20mT(留 1.5~2 倍余量);未触发位置低于 0.5mT,靠磁滞自然隔开。
| 设计项 | 推荐取值 | 依据与说明 |
|---|---|---|
| 磁钢材料 | 钕铁硼 N35~N45 | 同体积场强最高;高温关节优先选耐温牌号 |
| 磁钢尺寸 | Ø6×3mm 及以上 | 表面场随厚度增加,小磁钢在 3mm 气隙下余量不足 |
| 气隙(磁钢↔器件) | 2 ~ 4 mm | 气隙每增 1mm 场强约降 30%~40%,需实测确认 |
| 触发处场强目标 | 15 ~ 20 mT | 相对 BOP 最大值 9.5mT 留 1.5~2 倍余量 |
| 脱离处场强 | < 0.5 mT | 低于 BOP 最小值,保证可靠复位 |
| 极性朝向 | 同一磁钢两极依次扫过 | 锁存器必须经过南、北两极才能完整翻转 |
| 角度窗口 | ≥ 8° 机械角 | 过窄会导致转速高时采不到,需按最高转速核算 |
这里有个极易踩的坑:同一颗 US1881,SE 与 UA 封装对南/北极的输出对应关系是相反的。手册第 8 节:SE 封装下南极大 BRP 时输出为高、北极大 BOP 时输出为低,UA 封装相反。若 PCB 从 TSOT-3L 换成 TO-92 直插,固件极性判断必须同步取反,否则回零逻辑会"永远找反方向"。
US1881 输出是开漏结构,最简单的用法就是在输出与上拉电压之间接一颗上拉电阻,直接接 TTL/CMOS 逻辑输入。数据手册给出三种官方电路,分别对应普通、两线电流检测、恶劣电气环境三类场景。
三点要求必须照做:一是 VDD 与 GND 之间就近放 100nF 旁路电容,越靠近引脚越好;二是上拉电阻 RPU 取 10kΩ 是兼顾静态漏电与上升沿的折中,驱动长线可降到 4.7kΩ;三是输出端加 4.7nF 到地,抑制长线拾取的射频干扰。上拉电压可与 VDD 不同(如器件用 5V 供电、上拉到 3.3V 进 MCU),这就是开漏输出的灵活性。
两线接法把器件"串"在回路里,只引出两根线,靠电流大小区分输出状态:磁场小于 BRP 时回路电流为 IDD+VDD/Rb,大于 BOP 时为 IOFF+IOUT,其中 IOUT=VDD/RL。它的价值在离关节最近的限位点只走两根线,线束与接插件风险更低,但接收端需用电流检测电路(采样电阻 + 比较器)识别两个电流档位。
关节内电机 PWM 与动力线就在旁边,电源轨必有尖峰。手册 13.3 节用 R1(100Ω)+C1(100nF) 低通滤波旁路尖峰,Z1 齐纳钳位过压,D1 反接保护。反接保护还有两种更省事的做法:串电阻需满足三个约束——反向电流不超 50mA(VCC/R1 ≤ 50mA)、器件实际供电仍高于 VDD 最小值、电阻能承受反接功耗(PD=VCC²/R1),经验值是 5V 应用用 100Ω/0.25W,更高电压优先串二极管。
硬件给出的是"理想边沿",到 MCU 还有两件事:去抖,以及别在回零过程中把限位当成回零点。机械振动、反向间隙、磁钢边缘抖动都会产生多次边沿,纯 GPIO 中断极易误计数。稳妥做法是1ms 轮询采样 + 连续 N 次一致才认账,再用回零状态机区分"找零中"和"正常运动"。
/* 机器人关节回零/限位采集:1ms 定时器轮询 + 计数去抖 + 状态机 */
#include "main.h"
#define DEBOUNCE_N 5 /* 连续 5 次一致才认账,约 5ms */
#define HOME_ACTIVE 0 /* 开漏输出:触发时读到低电平 */
typedef struct {
GPIO_TypeDef *port;
uint16_t pin;
uint8_t stable; /* 去抖后的稳定状态 */
uint8_t cnt;
} hall_t;
static hall_t home = { GPIOB, GPIO_PIN_0, 1, 0 }; /* 回零位 */
static hall_t limit = { GPIOB, GPIO_PIN_1, 1, 0 }; /* 限位 */
static uint8_t hall_sample(hall_t *h)
{
uint8_t raw = (HAL_GPIO_ReadPin(h->port, h->pin) == GPIO_PIN_RESET) ? HOME_ACTIVE : !HOME_ACTIVE;
if (raw == h->stable) { h->cnt = 0; }
else if (++h->cnt >= DEBOUNCE_N) {
h->stable = raw;
h->cnt = 0;
return 1; /* 返回 1 表示状态发生了可靠变化 */
}
return 0;
}
typedef enum { HOMING_IDLE, HOMING_SEEK, HOMING_BACKOFF, HOMING_DONE } home_state_t;
static home_state_t st = HOMING_IDLE;
void Joint_Homing_Tick(void) /* 1ms 周期调用 */
{
hall_sample(&home);
hall_sample(&limit);
switch (st) {
case HOMING_IDLE:
break;
case HOMING_SEEK: /* 低速朝零点方向走 */
if (home.stable == HOME_ACTIVE) {
Motor_Stop();
st = HOMING_BACKOFF; /* 先退出触发区,避免停在门限上 */
}
break;
case HOMING_BACKOFF: /* 反向退出一段,再低速逼近 */
if (home.stable != HOME_ACTIVE) {
Encoder_Reset(); /* 此处清零位置计数器,即为机械零点 */
st = HOMING_DONE;
}
break;
default:
break;
}
}
/* 限位在正常运动模式下是硬约束:一旦触发立刻停 */
void Joint_Motion_Tick(void)
{
if (limit.stable == HOME_ACTIVE) {
Motor_Stop();
Fault_Set(FAULT_LIMIT_HIT);
}
}
这段代码有两个要点:一是先进入触发区再退出,在"退出触发"这一刻清零计数器,回零点才落在磁滞回线同一侧、重复精度稳定;二是找零过程中屏蔽限位语义(或改用另一颗器件),避免上电就压在限位上导致逻辑打架。
| 常见现象 | 可能原因 | 处理办法 |
|---|---|---|
| 输出一直在翻转 | 气隙过大,场强在门限附近 | 减小气隙或换更大磁钢,触发场强做到 15~20mT |
| 回零方向永远相反 | 封装/极性装反(SE 与 UA 相反) | 固件极性取反,或调整磁钢朝向 |
| 上电读到限位报警 | 关节停在了限位行程内 | 上电先低速反向退出,再做回零 |
| 高速时漏采 | 角度窗口太窄或开关频率超 10kHz | 保证 ≥8° 角度窗口,测速另用编码器 |
| 输出高电平不足 | 上拉过大 + 线缆容性负载 | 上拉降到 4.7kΩ,输出端补 4.7nF |
| 步骤 | 内容 | 验收判据 |
|---|---|---|
| 1 定需求 | 确认回零重复精度、最高转速、行程边界 | 明确"开关量"而非"角度"需求 |
| 2 选器件 | US1881 选 K 或 L 级温度档,封装按 PCB 工艺定 | −40~125℃ 及以上 |
| 3 算磁路 | 磁钢尺寸、气隙、触发处场强目标 15~20mT | 用高斯计实测触发点与脱离点 |
| 4 画电路 | VDD 100nF 旁路、10kΩ 上拉,按场景加 R1/Z1/D1 | 示波器看输出边沿无毛刺 |
| 5 写固件 | 1ms 轮询去抖 + 回零状态机 + 限位硬停 | 重复回零 50 次,位置离散度达标 |
| 6 做防护 | 反接保护、电源滤波、必要时整体灌封 | 反接不损坏、油污浸泡后仍可靠 |
| 7 验极限 | 高低温循环、振动、连续回零寿命测试 | 全温区无漏采、无抖动误报 |
机器人关节的回零与限位应该用锁存型霍尔开关而不是线性霍尔或机械触点:US1881 一颗器件集成稳压、斩波稳定霍尔片、施密特触发与开漏输出,3.5~24V 宽压、5mA 以内功耗,磁门限 BOP 0.5~9.5mT、BRP −9.5~−0.5mT、磁滞 7~12mT,靠磁滞天然抗抖动。设计上抓住三点即可稳定落地:磁路留 1.5~2 倍门限余量(触发处 15~20mT)、SE 与 UA 封装极性相反必须核对、固件用"先触发再退出、退出沿清零"的回零状态机。
本文基于《US1881 Hall Latch – High Sensitivity 数据手册》(Melexis,Rev 015,Jan/2006)等技术资料整理优化,并结合机器人关节回零与限位检测的工程实践进行了系统化梳理。
沧州艾诺威电子 — 国家高新技术企业,20+项国家专利
嵌入式系统开发 · 物联网方案 · AI智能硬件 · 一站式交付
电话:13930711029 | 邮箱:tech@czinv.com | 24小时内响应