深入解析2.4GHz无线旋转编码器双通道冗余传输系统的完整设计方案,从系统架构、时分冗余传输、WiFi避让策略、数据融合算法到正交脉冲还原,全面覆盖工业级无线编码器传输的关键技术细节。
工业现场中,旋转编码器广泛应用于电机测速、位置反馈、角度检测等场景。传统有线编码器在旋转部件上布线困难,线缆磨损和电磁干扰导致信号不稳定。无线编码器成为解决这一痛点的关键技术方向。然而,单一无线通道在工业环境中面临WiFi/蓝牙干扰、信号遮挡等问题,丢包会导致编码器数据跳变或丢失,直接影响控制精度。
核心矛盾
无线传输解决了布线问题,但工业现场的2.4GHz电磁环境极为恶劣,单信道传输的可靠性难以满足编码器对数据连续性的严格要求。需要一套系统化的冗余设计来同时保障可靠性和实时性。
在着手设计之前,笔者团队对工业现场的无线传输环境进行了深入调研,总结出以下四大核心挑战:
综合以上挑战,核心设计问题可以归结为:
如何设计一套无线编码器传输系统,在2.4GHz恶劣电磁环境下实现99.9%以上的数据可靠传输,同时保持毫秒级实时性和编码器脉冲的严格连续性?
笔者团队从系统架构、传输策略、干扰规避、数据融合、丢包补偿和脉冲还原六个维度进行系统性设计,下文将逐一展开。
系统采用TX(发射端)和RX(接收端)双端对称设计,信号流向如下:
TX端(编码器输入采集端):通过GPIO中断实时采集A/B正交脉冲,使用查表法计算旋转方向和增量值。每次中断触发后,系统快速判断A/B相的电平组合,查表得出方向(正转/反转)和计数值变化量,然后打包发送。
RX端(编码器输出还原端):负责双通道冗余接收、数据融合决策、二阶预测补偿和正交脉冲输出还原。这是整个系统中算法复杂度最高的部分,后续章节将详细阐述。
系统采用基于SI24R1芯片的双通道时分冗余传输策略。SI24R1支持2.4GHz ISM频段的126个信道,系统同时启用两个独立信道进行数据传输。
同一数据包分时发送到两个信道,发送间隔约为130μs。TX端先在通道A发送一帧数据,然后立即切换到通道B发送相同的数据帧(携带通道标识以区分)。这种时分策略确保了两个通道的数据在时间上高度同步,便于RX端进行融合比对。
每帧数据共8字节,各字段定义如下:
| 字节偏移 | 字段名称 | 长度 | 说明 |
|---|---|---|---|
| 0-1 | 同步字 | 2字节 | 用于区分通道A(0xAA55)和通道B(0x55AA),RX端据此识别数据来源 |
| 2 | 序列号 | 1字节 | 0-255循环递增,用于检测丢包和评估数据连续性 |
| 3-4 | 编码器值 | 2字节 | 16位编码器当前计数值(0-65535),高位在前 |
| 5 | 相位 | 1字节 | 当前A/B相电平组合(0-3对应四种正交状态) |
| 6 | 信道切换信息 | 1字节 | 交叉携带对方的信道切换指令(详见下文) |
| 7 | CRC8校验 | 1字节 | 对前7字节的CRC8校验值 |
帧格式示意(8字节):
[同步字 A/B] [序列号] [编码器值 H] [编码器值 L] [相位] [切换信息] [CRC8]
Byte 0-1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7
信道切换信息采用交叉携带机制:通道A的数据帧中携带通道B的切换指令,通道B的数据帧中携带通道A的切换指令。这种设计确保即使某个通道受到干扰完全无法通信,对方通道仍能接收到切换指令并完成信道变更,不会因为单通道故障而丢失切换信息。
为应对工业环境中WiFi设备密集、干扰源动态变化的问题,系统设计了完整的WiFi避让和动态信道切换机制。
系统上电启动后,TX和RX分别对126个2.4GHz信道进行RSSI(信号强度指示)扫描。扫描结果按RSSI值排序,优先选择信号最弱的信道作为工作信道。特别是WiFi保护带内的信道(0-1、23-26、48-51、73-125),这些信道在WiFi规范中为保留频段,通常干扰较低。
系统在运行过程中持续监测当前工作信道的干扰状况。每20个发送周期(约20-100ms,取决于发送间隔配置)执行一次RSSI检测。当连续2次检测到RSSI值超过阈值(阈值设为30)时,触发信道切换流程。
系统采用"预通知+延迟执行"的切换策略:在正式切换前10个数据包,TX端通过交叉携带机制向RX端发送即将切换的新信道号。RX端收到预通知后,在后台准备好新信道的射频参数。当10个预通知包全部发送完毕后,TX和RX在同一时刻同步切换到新信道。整个过程对数据流的影响极小,通常仅有1-2个数据包可能受到影响,后续的数据融合和预测补偿机制足以覆盖。
RX端同时从两个信道接收数据后,需要对双通道数据进行融合决策,选择更可靠的一帧数据用于后续处理。系统采用评分机制对每个通道接收到的数据进行多维度评估。
| 评分项 | 分值 | 评分规则 |
|---|---|---|
| 序列号连续性 | +10分 | 当前帧序列号与上一有效帧序列号差值为1(连续)则得分 |
| 相位连续性 | +5分 | 当前帧相位值与上一有效帧的相位变化符合正交编码规则则得分 |
| CRC校验通过 | +10分 | CRC8校验正确则得分 |
| 预测一致性 | +5分 | 当前帧编码器值与预测值的偏差在合理范围内则得分 |
系统分别计算通道A和通道B的得分,然后按以下规则选择:
评分机制的核心思想是"多维度交叉验证"。单独依赖CRC只能检测传输错误,但无法判断数据是否被替换或延迟。引入序列号连续性和相位连续性检查后,可以有效识别"数据虽然正确但不是最新的"这种情况。预测一致性则提供了第三个维度的验证,进一步提高了融合决策的可靠性。
当双通道均出现丢包时,系统启用二阶预测补偿算法来填充丢失的数据。该算法基于运动学二阶模型(位置-速度-加速度),利用历史数据对当前值进行预测。
系统维护一个5个数据点的滑动窗口,存储最近的编码器值、速度(相邻两帧的差值)和加速度(相邻两帧速度的差值)。每次收到新的有效数据时,窗口向前滑动一位。
当检测到N个连续丢包时,系统使用以下公式预测编码器值:
pred = last_valid + velocity × N + 0.5 × acceleration × N²
其中,last_valid为最后一个有效编码器值,velocity为滑动窗口中的平均速度,acceleration为平均加速度,N为连续丢包数。
预测值并非始终可靠,随着丢包数量增加,预测偏差会逐渐增大。系统引入置信度机制,对预测结果的可信度进行分段衰减:
| 连续丢包数 | 置信度范围 | 说明 |
|---|---|---|
| 0 - 100 | 100% → 90% | 线性衰减,预测精度较高,可完全替代真实数据 |
| 100 - 200 | 90% → 60% | 衰减加速,预测数据与辅助信息交叉使用 |
| 200 - 500 | 60% → 30% | 置信度较低,仅作为参考,系统发出告警 |
| > 500 | 0% | 预测完全不可信,系统停止输出并报错 |
当滑动窗口内所有速度值均小于等于1时,系统判定编码器处于静止状态。此时无论连续丢包多久,置信度始终保持在100%,因为静止状态下编码器值不会发生变化,预测值等于最后一个有效值,始终准确。
系统记录最近5次丢包事件的持续包数,计算平均值后乘以2作为当前的最大允许丢包数。这一动态调整机制使系统能够适应不同干扰程度的环境:在干扰较轻的环境中,丢包通常很少发生,上限较低,系统对异常更加敏感;在干扰较重的环境中,上限自动放宽,避免频繁误报。
经过数据融合和预测补偿后,RX端需要将数字编码器值还原为标准的A/B正交脉冲信号输出。这一过程由三态机控制,确保输出信号的时序严格正确。
| 状态 | 含义 | 行为描述 |
|---|---|---|
| NORMAL | 正常输出 | 按照融合后的编码器值和相位,直接输出标准正交脉冲 |
| COMPENSATE | 补偿输出 | 在预测补偿期间,使用预测值生成脉冲,并标记为补偿数据 |
| CONVERGE | 收敛校正 | 恢复真实数据后,在5个周期内逐步校正累积偏差,最大校正20步 |
正交编码器的A/B相输出对应四种电平组合,系统根据当前相位值查表输出对应的电平:
| 相位值 | A相电平 | B相电平 | 说明 |
|---|---|---|---|
| 0 | 低 | 低 | 初始状态或每4个脉冲循环一次 |
| 1 | 高 | 低 | A相上升沿,正转时序 |
| 2 | 高 | 高 | B相上升沿 |
| 3 | 低 | 高 | A相下降沿 |
当系统从COMPENSATE状态恢复到真实数据时,可能会存在累积偏差。此时进入CONVERGE状态,在最多5个输出周期内将偏差逐步校正完毕。每个周期的校正步数根据总偏差量动态计算,最大不超过20步。校正过程中,输出脉冲的频率会适当提高以追赶真实位置,确保后续设备不会因偏差累积而出现控制误差。
以下为系统的核心技术参数汇总:
| 参数项 | 规格 | 说明 |
|---|---|---|
| 工作频段 | 2.4GHz ISM | 全球通用工业科学医疗频段 |
| 可用信道数量 | 126 | SI24R1支持的信道总数 |
| 发送间隔 | 1-5ms可调 | 根据编码器分辨率和应用场景灵活配置 |
| 数据帧长度 | 8字节 | 含同步字、序列号、数据、校验 |
| 校验方式 | CRC8 | 对前7字节进行循环冗余校验 |
| 编码器分辨率 | 16位(0-65535) | 支持标准增量式编码器 |
| 预测窗口 | 5点滑动窗口 | 存储历史值用于二阶预测计算 |
| 最大丢包补偿 | 500包(动态调整) | 根据历史丢包情况自动调整上限 |
| 信道切换预通知 | 10个数据包 | 确保RX端提前准备新信道参数 |
| 主控MCU | STC AI8051U | 40MHz主频,内置硬件CRC加速 |
| 无线芯片 | SI24R1 | 支持126信道、最大2Mbps空速 |
本文详细阐述了无线旋转编码器双通道冗余传输系统的完整设计方案。系统的核心价值体现在三大关键技术:
三大技术环环相扣:冗余传输降低了丢包概率,预测补偿填补了冗余也无法覆盖的极端情况,而脉冲还原则确保了最终输出信号的完整性和正确性。经过笔者团队的实际测试,该系统在典型工业环境下可实现99.9%以上的数据可靠传输率,满足绝大多数工业控制场景对编码器信号传输的要求。
延伸思考
本文所述方案虽然针对2.4GHz频段设计,但双通道冗余、评分融合、预测补偿和状态机还原的架构思想同样适用于其他无线频段和传输协议。未来可进一步探索与5G、LoRa等低延迟广域网技术的结合,将无线编码器的应用场景从车间内部扩展到更广阔的工业物联网领域。