无线旋转编码器双通道冗余传输系统设计详解

▶ 收听本文播客版

客户要在产线上给旋转编码器去掉那根又长又容易折断的线,改成 2.4GHz 无线。但编码器不是传个布尔值那么简单——它每秒吐几千个正交脉冲,断一帧对运动控制来说可能就是定位跑偏一整直线。本文我把这套基于 SI24R1 的双通道冗余系统怎么搭、信道怎么避让、数据怎么融合补偿、脉冲怎么还原,按我们实测踩过的坑一条条写清楚。

1. 为什么单发单收根本顶不住

第一版我就拿着一块 SI24R1 单发单收去试,仓库里跑起来还行,一上线就现原形:电焊机一开火花四射,旁边 WiFi 一挤无线就掉包,编码器位置当场跳变。2.4GHz 频段太挤了,微波炉、蓝牙、各种 WiFi 都在里面,单信道等于把命押在一条路上。所以我们一开始就把方案定成双信道冗余传输——两个信道独立收发、时分调度,一路被干扰另一路顶上,把单路 95% 的可靠性抬到双路 99.9% 以上。

2. WiFi 避让:信道不能乱跳

光有双信道还不够,如果两条信道都落在别人家高功率信号上,等于白搭。我们做了 WiFi 避让的动态信道切换:每次上电先扫一遍当前频段,把 2.4GHz 分成若干信道,避开 WiFi 常用的 1/6/11 中心信道附近的强占用区,选两条间隔足够远、实测底噪最低的信道作为工作信道。运行中如果某信道连续丢包超阈值,就地切换,边切换边丢一两个周期的数据由下一节的预测补偿兜住。这一个设计把现场丢包率实打实降了一个数量级。

3. 双通道数据怎么融合:不是简单二选一

两路数据都到接收端后,我宁可多花几十行代码做融合,也不用"哪路先到用哪路"的笨办法。这里用了一个可解释的双通道数据融合评分算法:对每一路,按 时间新鲜度(收到越晚分越高)、数据连贯性(和上一帧差值越小分越高)、信道健康度(该信道近期丢包率低则加权重)三个维度打分,两路各乘权重后加权合成一个置信值,再选置信值高、且过了一致性校验的那一路作为最终位置。这样既避免单路偶发跳变,又不会在两路轻微不一致时左右摇摆。

4. 断帧了怎么办:二阶预测补偿

信道再抗干扰也有短暂黑屏期,位置不能断。我们加了二阶预测补偿机制:根据历史位置的一阶导数(速度)和二阶导数(加速度),在丢帧达到设定阈值时外推当前瞬时位置,而不是傻等下一帧。这个二阶项很关键——如果用一阶匀速外推,减速动作时预测值会超前,回程正好相反会滞后,位置积少成多就偏了。上二阶后实测在 10ms 丢帧窗口内位置误差控制在半格脉冲以内,把运动控制的抖动量按坏。

5. 正交脉冲三态还原,相位不能丢

旋转编码器出来的是 A/B 正交脉冲,方向藏在两路相位里。无线端把一个周期的脉冲先编码成"正转步进/反转步进/静止"三种状态打包发出去,接收端再按这个三态把 A/B 正交波形重新拼出来。这样即使中间丢了一整包,也不会把"前进"误判成"后退"——三态还原保住了方向这一最高优先级的正确性。我在测试里故意丢 20% 的包验证,方向一次都没反过。

6. 计数漂了怎么办:绝对基准要拽回来

双通道加预测补偿能挡住大部分丢帧,但再好的算法解决不了"累计误差"——如果把误差一点点攒起来,转几千圈还是会在传送带上偏一刀。所以我在系统里留了一个绝对校准通道:编码器本体上针对每个整转或者每走满一定角度打一个零位/基准信号,无线端同步把这个"绝对剂次"发出去,接收端每收到一次就把本地累计计数往绝对值上拽一次。

说白了就是"增量计步骤数+定期绝对对表",既保留了增量编码器响应快、分辨率高的优点,又用低频的绝对基准把长期漂移清零。我在产线上测过一个极端场景:故意让无线经常丢包,位置用预测顶着走,但只要每个整转能收到一次基准,连续跑一整天末端定位误差依然被拽回到一个脉冲以内。这个设计是整套系统真正撑住"99.9% 可用性"的最后一根柱子——单靠预测补,靠不住;补完再定期收紧,才靠得住。

整套打样下来,连着 30 天 7×24 挂了台编码器转起来测,24 小时累计丢包率压在 0.2% 以内,对应系统可用性 99.9% 达标。工业现场要把有线换无线,拼的不是"能通",而是"断得漂亮、补得准、方向不乱"。这套东西做透了,无线编码器才能真正意义上替掉那根线。

还想接着看

🎧 本文已制作播客节目
双主持对话音频,随时随地收听本文内容
收听播客 →