qi关于序列号: 回复ACK[02],使用对方发来的序列号 回复心跳HB[05],使用对方发来的序列号 回复 SetupAck[03],使用对方发来的序列号 数据帧[06]/Setup[01],使用自己的发送序列号 发送 Setup 帧时,发送和接收序列号回统一设置为1 关键规则 recvSerialNo:记录对方发来的最新序列号,回复时原样返回 sendSerialNo:记录自己已发送的序列号,收到对方ACK后递增 序列号从1开始:溢出回绕时若为0则强制置为1 Setup阶段特殊:握手时双方序列号同步为相同值 [Len=7] [ARM] FF AA 00 07 01 01 F6----------------[ARM 下发开始建链 0x01 Setup,将发送和接收序列号统一置1] [Len=7] [MCU] FF AA 00 07 01 03 F4----------------[MCU 回复开始建链 0x03 SetupAck] [Len=7] [ARM] FF AA 00 07 01 02 F5----------------[ARM 对SetAck回复确认 0x02 ACK],此时建链成功!] [Len=9] [ARM] FF AA 00 09 02 06 01 81 6C----------[ARM 下发 public 0x81 指令,要求MCU发送初始化信息,如acc,brake,version等信息] [Len=7] [MCU] FF AA 00 07 02 02 F4----------------[MCU 收到 public 0x81,用0x02 ACK指令进行回复,序列号使用收到的02] [Len=10][MCU] FF AA 00 0A 02 06 01 05 00 E7-------[MCU 发送 public 0x05 首次上电状态,使用数据帧 Data 0x06] [Len=7] [ARM] FF AA 00 07 02 02 F4----------------[ARM 收到 public 0x05,用0x02 ACK指令进行回复,序列号使用收到的02] [Len=11][MCU] FF AA 00 0B 03 06 01 01 02 03 E4----[MCU 发送 public 0x01,检测状态如ACC,Brake,Reverse] [Len=7] [MCU] FF AA 00 07 03 02 F3----------------[ARM 收到 public 0x01,用0x02 ACK指令进行回复,序列号使用收到的03] 代号 意义 数值 Setup 建链请求消息 0x01 ACK 响应消息 0x02 SetupAck 建链请求消息回复 0x03 Close 关闭链路 0x04 HB 心跳消息 0x05 Data 数据消息 0x06 Transfer 透传消息 0x07 Boot BOOT消息 0x08