PLC、触摸屏、组态软件都只认 Modbus。本文从零实现一个 RS485 从站协议栈,用真实报文逐字节比对响应,含 CRC 表与异常码处理。
OTA 最怕的不是升级失败,而是「升级失败之后连旧版本也回不去」。本文实现一套 A/B 双分区 IAP:协议帧、分块校验、状态元数据双备份、试运行计数与自动回滚,并把丢帧、CRC 错、升级中途掉电、新固件起不来全部实测一遍。
「收到乱码就死机」「半包粘包分不清」——这套 1 个字节喂进去、永不越界的协议解析状态机,配完整打包/解包代码与主机端测试。
CAN 的可靠性不是「协议写得稳」,而是硬性地做在了比特层:每个位都靠差分电平和 5 位填充防止失步,15 位 CRC 保证检错,ID 越小优先级越高的仲裁让高优先级帧几乎不排队,错误计数到 128 / 256 就自动降级甚至下线,坏节点没法拖垮总线。本文把这一切用纯软件实现并实测。