B. 协议约定
(1) 帧头和帧尾分别固定为 0xFF 和 0xFE 表示;当遇到 0xFF 表示帧头,遇到 0xFE 表示帧 尾;从 0xFF 到 0xFE 的数据内容表示一帧数据;
(2) 帧头和帧尾用了 0xFF 和 0xFE 表示,其中数据长度、指令、数据和异或校验可能出 现 0xFF 与 0xFE,所以需要使用 0xFD 进行换码;
(3) 串口发送数据时,遇到 0xFF、0xFE 和 0xFD 时换码方式:
0xFF -> 0x7F 0xFD
0xFE -> 0x7E 0xFD
0xFD -> 0x7D 0xFD
示例:
当设备MCU需要发送数据帧 FF 00 05 00 FF FE FD F9 FE 时,串口发送时候需要转换转换 为 FF 00 05 00 7F FD 7E FD 7D FD F9 FE 发送;
注意:换码是在协议打包完整后换码的,换码的内容为数据长度、指令、数据和异 或校验,帧头和帧尾不需要换码。