单霍尔传感器低功耗断电前应先避开迟滞临界区
1. 概述
单向电机可以用数字霍尔开关计数。磁铁每转一圈经过霍尔一次,输出完成一次激活和释放,产生两个边沿;固件把这一对边沿记为一个计数脉冲。
现有方案需要在电机停稳后切断霍尔电源以降低功耗。本文默认断电期间电机不动。重新上电后,霍尔会丢掉断电前的内部状态,按上电瞬间的磁场重新判决。单霍尔一圈只有一个计数脉冲,计数值无法说明停靠点落在进入临界区还是离开临界区。前后输出一致,也不能证明已经离开临界区。必须关断霍尔电源时,应先让停靠点以较大概率离开这两个临界区。
2. 迟滞区


数字霍尔开关有两个阈值:Bop 进入激活,Brp 退出激活。沿磁铁路径,它们对应两个临界区:
- 进入临界区:靠近
Bop,即将从释放变为激活。 - 离开临界区:靠近
Brp,即将从激活变为释放。
中间是稳定激活区,外侧是稳定释放区。迟滞防止边界附近反复跳变,也留下状态记忆。断电会清掉这份记忆。上电后若停在任一临界区,器件重新判决;单霍尔读不出停在进入侧还是离开侧。前后输出一致,也不能证明已经离开临界区。
电机转一圈产生两个边沿,并合成为一个计数脉冲,计数位置精度是 1 圈。两个临界区分别位于一次电平周期的两处边界;区分它们需要知道磁铁处于一圈中的哪半段,相当于至少 0.5 圈的相位分辨率。仅凭整圈计数值无法确定停靠点靠近哪一处临界区。
现有磁路和转速约束已经确定使用数字霍尔开关。器件型号及选型参数不展开,下文只讨论霍尔断电后丢失迟滞状态造成的计数偏差。
迟滞区临界情况分析
符号约定

本节只分析停靠点处于临界区时,霍尔断电再上电产生的状态重判。上下电期间的电源暂态和假脉冲已由固件单独排除,不进入以下边沿计数。
屏蔽中断时直接计数
霍尔低功耗断电期间屏蔽边沿中断,重新上电并等待输出稳定后再恢复计数。一次完整旋转正常产生 2 个边沿,并合成为 1 个计数脉冲。停靠点处于临界区时,实际结果可能是 1 个、2 个或 3 个边沿。
霍尔断电时电机位置不变,重新上电后再继续旋转。按临界区位置、断电前电平和上电稳定后电平枚举,共有 8 种情况:
| 临界区 | 断电前电平 | 上电后电平 | 分类 |
|---|---|---|---|
| 进入临界区 | 0 |
0 |
安全 |
| 进入临界区 | 1 |
1 |
安全 |
| 进入临界区 | 0 |
1 |
危险 |
| 进入临界区 | 1 |
0 |
危险 |
| 离开临界区 | 0 |
0 |
安全 |
| 离开临界区 | 1 |
1 |
安全 |
| 离开临界区 | 0 |
1 |
危险 |
| 离开临界区 | 1 |
0 |
危险 |
断电前后电平不变的 4 种情况不会改变边沿序列。电平发生变化的另外 4 种情况分成两类:
- 丢失一个边沿:真实边沿发生在中断被屏蔽期间,预期计数为
2,实际只计到1。 - 多计一个边沿:上电后的重新判决被当成运动边沿,预期计数为
2,实际计到3。
两类错误方向相反。在两个临界区和两种重判方向等概率的理想条件下,长期平均值可能互相抵消;单次停机或单台设备的计数不能依赖这种抵消。


不屏蔽中断时的计数偏差
不屏蔽边沿中断后,原本在断电重判期间被屏蔽的边沿也会进入计数。丢失边沿的场景因此恢复为预期 2 个边沿、实际 2 个边沿。
多计边沿的场景会从 3 个增加到 4 个。正常旋转产生一次激活和一次释放,共 2 个边沿;临界区重新判决又产生一个边沿,继续旋转到稳定区时还会产生一个恢复边沿。中断全程开启后,这两个额外边沿都会被计入,所以结果是预期 2 个、实际 4 个。

严格边沿配对的欠计数
严格边沿配对同时检查边沿方向、先后顺序和时间间隔。收到第一个预期边沿后,软件进入等待状态;只有相反方向的第二个边沿在有效时间窗口内到达,才组成一对并形成一个计数脉冲。等待超时后,未完成的配对被清除,避免拿下一圈的边沿补配当前边沿。
严格边沿配对可以过滤多计边沿的情况,使预期 2 个边沿、实际 2 个边沿;但丢失一个边沿时,剩余边沿无法组成完整配对,整组边沿都会被舍弃,预期 2 个边沿、实际 0 个边沿。
边沿奇偶校验只能标记奇数边沿,无法恢复已经丢失的边沿。若把奇偶校验作为计数有效性的门槛,奇数边沿会被整组舍弃,结果等同于严格配对;若临界区额外产生一对边沿,实际边沿数为 4,简单奇偶校验也无法识别。

结论
三种策略的代价如下:
| 策略 | 丢失边沿场景的实际边沿数 | 多计边沿场景的实际边沿数 |
|---|---|---|
| 屏蔽中断,直接计数 | 1 |
3 |
| 不屏蔽中断 | 2 |
4 |
| 严格边沿配对 | 0 |
2 |
正常的一圈为 2 个边沿、1 个计数脉冲。在这组临界区枚举下,屏蔽中断后直接计数的单次误差为 ±1 个边沿;不屏蔽中断可能多出完整的一对边沿,严格配对可能丢掉完整的一个计数脉冲。因此,必须在单霍尔断电的前提下继续计数时,屏蔽中断并直接计数的代价相对可控,但它仍然不能消除临界区带来的不确定性。
3. 实验现象
用示波器同时监测霍尔供电(绿色,外部手动通断)与霍尔输出(黄色)。把磁铁分别停在触发位、非触发位与临界区,观察两块样品反复上电、下电时的输出。
| 位置 | 样品 A | 样品 B |
|---|---|---|
| 触发位 | ![]() |
![]() |
| 非触发位 | ![]() |
![]() |
| 临界区 | ![]() |
![]() |
对应现象如下:
| 位置 | 样品 A | 样品 B |
|---|---|---|
| 触发位 | 上电先出现假尖峰,随后稳定到激活;下电时电源不可靠处有一个小陡坡 | 上电先出现约 150 ms 的释放台阶,随后才落到正确的激活;下电处有上升小陡坡 |
| 非触发位 | 上电稳定到释放;下电瞬间悬崖跳到激活,接着电源不可靠处有向上小陡坡 | 上电先出现假尖峰,随后约 150 ms 误入激活,再跳回释放;下电缓慢下降,电源不可靠处出现大量尖刺假脉冲 |
| 临界区 | 反复上电,输出每次可能不同 | 反复上电,输出每次可能不同 (样品B的截图没截好,看不出来,参考样品A的图) |
实验给出两点。第一,上电后过早打开中断会把启动尖峰和暂态台阶计进去;正确顺序是先给霍尔供电,等待输出稳定,清除旧中断标志,最后再恢复计数。第二,稳定区的最终输出通常可复现,临界区则不然。样品 A 在临界区反复上电时输出可能翻转;样品 B 多数时候前后一致,但这份一致不能证明它已经离开临界区,更不能说明它停在进入侧还是离开侧。霍尔持续供电时,计数通常更稳定,因为器件状态没有被清掉。
4. 解决办法
方案一:出厂标定停靠参数
这是概率缓解,无法保证形式正确。单霍尔给不出 0.5 圈的位置,所以不去解“现在停在哪个临界区”。每台机器出厂时,用惩罚函数学习一组电机停靠参数,让电机自己停下来时,有较大概率落在安全区。
它成立有三个前提:
- 温度漂移:
Bop/Brp会随温度、批次和老化平移。出厂标的是这台机器、这只霍尔当时的迟滞宽度。换料号,或跑数年以后,原来的安全区可能缩进临界区。 - 电源暂态:上电尖峰、掉电陡坡和供电波动会改变霍尔的重新判决。标定环境若和现场供电差太远,样本无效。
- 电机可控:惩罚函数学的是停机参数,电机必须能按这组参数重复停到相近位置。停点散差大于安全区宽度时,标定没有意义。
惩罚函数的核心观测是一次断电再上电的霍尔输出:
- 前后不一致:这次停靠点让霍尔重新判决翻了面,给明确惩罚。
- 前后一致:只说明这一次没有翻面,不能当成已经安全,最多给较弱奖励。
对同一台设备反复停机、断电、上电,就能采到一批样本。学到的参数要留 margin,覆盖 Bop / Brp 的温度、批次和老化漂移,以及磁路偏差和电机停点散差;具体余量由实际标定数据确定,不能只靠多次断电样本把翻面概率压低。标定结果随机器保存,后续休眠时按这组参数停机,再关闭霍尔电源。
方案二:双霍尔判别区间
把两个霍尔错开安装。两路输出的组合可以直接给出磁铁所在区间;其中一路接近进入或离开阈值时,另一路仍能提供稳定判断。
5. 结论
单霍尔计数在持续供电时是可靠的。一旦切断霍尔电源,软件就不知道停靠点落在进入临界区还是离开临界区。一个由两边沿组成的整圈计数脉冲分辨不出停在哪一侧;断电前后输出一致,也不能证明已经离开临界区。
必须关闭单个霍尔电源时,出厂标定只能降低停进临界区的概率,并要给 Bop / Brp 留 margin;它缓解计数偏移,并不保证形式正确。需要连续且准确的计数时,应保持霍尔供电,或改用至少两个霍尔传感器。





