Commit e20a7371eb74cfd648f12a235c9bc2b6838c8808
1 parent
82e9cb74
修改通信方式
Showing
1 changed file
with
6 additions
and
45 deletions
通讯协议-教育新版-基站部分usb json.md
| ... | ... | @@ -3,11 +3,12 @@ |
| 3 | 3 | ### 通信流程 |
| 4 | 4 | 相对usb 64byte传输,json格式命令数据长度大多都是比较长的。使用常规的一问一答的方式效率较低; |
| 5 | 5 | 所以设计了如下通信方式: |
| 6 | -- step 1,发送方先发送整个数据包的信息;接收方回复; | |
| 7 | -- step 2,发送方发送纯数据,此时接收方只接收不回复; | |
| 8 | -- step 3,发送方发送询问"接收方是否正确的接收到刚刚的数据",接收方回复: | |
| 9 | - - 正确->本次通信结束; | |
| 10 | - - 错误->接收方从step 1开始重发; | |
| 6 | + | |
| 7 | +- STEP 1,发送包头数据信息 ==》 发送纯数据 ==》 发送询问 | |
| 8 | +- STEP 2,接收方回复: | |
| 9 | + - 正确->本次通信结束; ==》 后续接收方附加信息可以在ACK之后紧跟回复。再进step1 | |
| 10 | + - 错误->回复丢失包 进入step3 | |
| 11 | +- STEP 3,发送方法发送丢数据 ==》 发送询问 进入step2 | |
| 11 | 12 | |
| 12 | 13 | ### 说明: |
| 13 | 14 | - 为了避免通信失败时重发的代价太大,在step 1中将数据包拆分成N个以1024bytes为单位的小数据包; |
| ... | ... | @@ -151,46 +152,6 @@ |
| 151 | 152 | |
| 152 | 153 | |
| 153 | 154 | |
| 154 | -## 1.4 事务短包通信 | |
| 155 | -基站发送数据头:0XB5 SDK回复:0XB5 | |
| 156 | -数据量小于64字节的做精简通信,若需则可扩展的话增加第三字节(SDK&基站自己判断收齐做事情) 默认可以设定《64还是《128使用该协议 ,其他使用流通信。 | |
| 157 | - | |
| 158 | -| **字节** | **标识符** | **描述** | | |
| 159 | -| --- | --- | --- | | |
| 160 | -| 0 | Header | 数据包头:基站主动发送0x B5;sdk主动发送0Xd5 | | |
| 161 | -| 1-2 | com seq | 通信序号 | | |
| 162 | -| 3 | control bit| bit0-2:当前包总传输次数 <br>bit3-5:当前包传输次数<br>bit6-8:指定的基站编号,为0时候不指定| | |
| 163 | -| default | data | 数据包 | | |
| 164 | -| 60-63 | crc32 | 此数据包的crc32;从byte0-59共60个字节 | | |
| 165 | - | |
| 166 | - | |
| 167 | -## 1.5 问询精简通信 | |
| 168 | -该协议只在纯询问阶段使用。其他开始结束等等 通过原始指令 使用流模式或者事务模式 | |
| 169 | -| **字节** | **标识符** | **描述** | | |
| 170 | -| --- | --- | --- | | |
| 171 | -| 0 | Header | 数据包头:基站主动发送0x B6;sdk主动发送0Xd6 | | |
| 172 | -| 1-2 | com seq | 通信序号 | | |
| 173 | -| 3 | BASEID| 指定的基站编号,为0时候不指定| | |
| 174 | -| 4 | CMD| 索要数据包数据类型==》对应具体事务从1开始往下排根据数据类型来区分接收的数据长度等等数据类型| | |
| 175 | -| 5-6 | PACK| 数据编号| | |
| 176 | -| default | | | | |
| 177 | -| 60-63 | crc32 | 此数据包的crc32;从byte0-59共60个字节 | | |
| 178 | - | |
| 179 | - | |
| 180 | -回复该包之后 后续跟着0XB2/0XD2 的长透传数据包 | |
| 181 | -| **字节** | **标识符** | **描述** | | |
| 182 | -| --- | --- | --- | | |
| 183 | -| 0 | Header | 数据包头:基站主动发送0x B6;sdk主动发送0Xd6 | | |
| 184 | -| 1-2 | com seq | 通信序号 | | |
| 185 | -| 3 | BASEID| 指定的基站编号,为0时候不指定| | |
| 186 | -| 4 | CMD| 索要数据包数据类型==》对应具体事务从1开始往下排根据数据类型来区分接收的数据长度等等数据类型| | |
| 187 | -| 5-6 | PACK| 数据编号| | |
| 188 | -| 7-8 | This PACK Len| 本次要传输的数据包长度| | |
| 189 | -| 9-12 | This Pack crc32| 本次要传输的数据crc32| | |
| 190 | -| default | | | | |
| 191 | -| 60-63 | crc32 | 此数据包的crc32;从byte0-59共60个字节 | | |
| 192 | - | |
| 193 | - | |
| 194 | 155 | # 二, 功能协议 |
| 195 | 156 | |
| 196 | 157 | ## 2.1 固件升级类协议 | ... | ... |