erpc/erpc设计文档.md

58 lines
2.3 KiB
Markdown
Raw Permalink Normal View History

2024-10-29 08:42:21 +00:00
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 | 处理完成 |