diff --git a/通讯协议-教育新版-基站部分usb json.md b/通讯协议-教育新版-基站部分usb json.md index ff4f3e9..00a4a21 100644 --- a/通讯协议-教育新版-基站部分usb json.md +++ b/通讯协议-教育新版-基站部分usb json.md @@ -1,7 +1,22 @@ [TOC] # 一、概述 - - +### 通信流程 +相对usb 64byte传输,json格式命令数据长度大多都是比较长的。使用常规的一问一答的方式效率较低; +所以设计了如下通信方式: +- step 1,发送方先发送整个数据包的信息;接收方回复; +- step 2,发送方发送纯数据,此时接收方只接收不回复; +- step 3,发送方发送询问"接收方是否正确的接收到刚刚的数据",接收方回复: + - 正确->本次通信结束; + - 错误->接收方从step 1开始重发; + +### 说明: +为了避免通信失败时重发的代价太大,在step 1中将数据包拆分成N个以1024bytes为单位的小数据包; +当如上传输出错时,只需重传当前的1024bytes即可; + +### 通信机制 +在"通信流程" step 2中传输的是纯数据,接收方会把所有当前收到的数据都当作是纯数据,这样在收发双方通信时就会有如下限制: + - 发送方必须在完成当前数据传输流程后才可以开始下一个传输流程; + - 接收方必须在完成当前数据传输流程后才可以主动发起传输。 # 二,