diff --git a/通讯协议-教育新版-基站部分usb json.md b/通讯协议-教育新版-基站部分usb json.md index c91ea33..b73efe1 100644 --- a/通讯协议-教育新版-基站部分usb json.md +++ b/通讯协议-教育新版-基站部分usb json.md @@ -3,11 +3,12 @@ ### 通信流程 相对usb 64byte传输,json格式命令数据长度大多都是比较长的。使用常规的一问一答的方式效率较低; 所以设计了如下通信方式: -- step 1,发送方先发送整个数据包的信息;接收方回复; -- step 2,发送方发送纯数据,此时接收方只接收不回复; -- step 3,发送方发送询问"接收方是否正确的接收到刚刚的数据",接收方回复: - - 正确->本次通信结束; - - 错误->接收方从step 1开始重发; + +- STEP 1,发送包头数据信息 ==》 发送纯数据 ==》 发送询问 +- STEP 2,接收方回复: + - 正确->本次通信结束; ==》 后续接收方附加信息可以在ACK之后紧跟回复。再进step1 + - 错误->回复丢失包 进入step3 +- STEP 3,发送方法发送丢数据 ==》 发送询问 进入step2 ### 说明: - 为了避免通信失败时重发的代价太大,在step 1中将数据包拆分成N个以1024bytes为单位的小数据包; @@ -151,46 +152,6 @@ -## 1.4 事务短包通信 -基站发送数据头:0XB5 SDK回复:0XB5 -数据量小于64字节的做精简通信,若需则可扩展的话增加第三字节(SDK&基站自己判断收齐做事情) 默认可以设定《64还是《128使用该协议 ,其他使用流通信。 - -| **字节** | **标识符** | **描述** | -| --- | --- | --- | -| 0 | Header | 数据包头:基站主动发送0x B5;sdk主动发送0Xd5 | -| 1-2 | com seq | 通信序号 | -| 3 | control bit| bit0-2:当前包总传输次数
bit3-5:当前包传输次数
bit6-8:指定的基站编号,为0时候不指定| -| default | data | 数据包 | -| 60-63 | crc32 | 此数据包的crc32;从byte0-59共60个字节 | - - -## 1.5 问询精简通信 -该协议只在纯询问阶段使用。其他开始结束等等 通过原始指令 使用流模式或者事务模式 -| **字节** | **标识符** | **描述** | -| --- | --- | --- | -| 0 | Header | 数据包头:基站主动发送0x B6;sdk主动发送0Xd6 | -| 1-2 | com seq | 通信序号 | -| 3 | BASEID| 指定的基站编号,为0时候不指定| -| 4 | CMD| 索要数据包数据类型==》对应具体事务从1开始往下排根据数据类型来区分接收的数据长度等等数据类型| -| 5-6 | PACK| 数据编号| -| default | | | -| 60-63 | crc32 | 此数据包的crc32;从byte0-59共60个字节 | - - -回复该包之后 后续跟着0XB2/0XD2 的长透传数据包 -| **字节** | **标识符** | **描述** | -| --- | --- | --- | -| 0 | Header | 数据包头:基站主动发送0x B6;sdk主动发送0Xd6 | -| 1-2 | com seq | 通信序号 | -| 3 | BASEID| 指定的基站编号,为0时候不指定| -| 4 | CMD| 索要数据包数据类型==》对应具体事务从1开始往下排根据数据类型来区分接收的数据长度等等数据类型| -| 5-6 | PACK| 数据编号| -| 7-8 | This PACK Len| 本次要传输的数据包长度| -| 9-12 | This Pack crc32| 本次要传输的数据crc32| -| default | | | -| 60-63 | crc32 | 此数据包的crc32;从byte0-59共60个字节 | - - # 二, 功能协议 ## 2.1 固件升级类协议