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 固件升级类协议 | ... | ... |