erpc/erpc设计文档.md

58 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CRC16 校验长度为 16-256字节较为合适。
ACK丢了不重发
# 发送指令流程
1.发送数据后始终要等待ack
2.接收数据后始终要回复ack
3.获得ack不代表指令成功
4.crc校验不成功发送repeat包
5.指令号=端口号
## 正常传输
| host | slave |
| ---------------- | ---------------- |
| 发送指令 | 等待指令 |
| 等待ACK回复 | 发送ACK |
| 等待指令处理完成 | 处理指令 |
| 等待指令处理完成 | 发送resp |
| 发送resp_ack | 等待resp_ack回复 |
| 处理完成 | 处理完成 |
## 指令丢失
| host | slave |
| ---------------- | --------------------- |
| 发送指令 | 等待指令 |
| 发送指令丢失 | 等待指令 |
| 超时重发指令 | 等待指令 |
| 等待ACK回复 | 指令接收成功发送ACK |
| 等待指令处理完成 | 处理指令 |
| 等待指令处理完成 | 发送resp |
| 发送resp_ack | 等待resp_ack回复 |
| 处理完成 | 处理完成 |
## cmd ack 丢失
| host | slave |
| ---------------- | -------------------------- |
| 发送指令 | 等待指令 |
| 等待ACK回复 | 指令接收成功发送ACK |
| 超时重发 | 指令已经开始行发现重发包发送ACK|
| 等待ACK回复 | 处理指令 |
| 等待指令处理完成 | 处理指令 |
| 等待指令处理完成 | 发送resp |
| 发送resp_ack | 等待resp_ack回复 |
| 处理完成 | 处理完成 |
## resp ack 丢失
| host | slave |
| ---------------- | ---------------- |
| 发送指令 | 等待指令 |
| 等待ACK回复 | 发送ACK |
| 等待指令处理完成 | 处理指令 |
| 等待指令处理完成 | 发送resp |
| 发送resp_ack | 等待resp_ack回复 |
| 处理完成 |发送resp |
| 发送resp_ack | 处理完成 |