forked from EmbeddedTeam/app_photomagnetic
49 lines
1.5 KiB
Markdown
49 lines
1.5 KiB
Markdown
# 串口通信协议设计文档
|
||
|
||
- **帧结构**:`[起始标志:16bit][数据指令类型][数据字节数:8bit][数据][CRC]`
|
||
- CRC从[数据指令类型]到[数据]结束
|
||
- 温度:0x00指令
|
||
- 主板请求:0x[7ee7][00][00][crc16]
|
||
- 小板回:0x[7ee7][00][02][2411][crc16]
|
||
- 主板请求时,小板回复温度
|
||
- id:0x01指令
|
||
- 主板发 0x[7ee7][01][00][crc16]
|
||
- 小板发 0x[7ee7][01][03][989680][crc16]
|
||
- 主板请求时,小板回复id
|
||
- 小板在系统上电时,主动发一次id
|
||
- 运行状态:0x02指令
|
||
- 主板发 0x[7ee7][02][01][状态值][crc16]
|
||
- 主板在运行状态变化时,主动向小板上报状态
|
||
- 状态值定义:
|
||
- 0x00:待机中
|
||
- 0x01:运行中
|
||
- 0x02:暂停中
|
||
- 0x03:故障中
|
||
|
||
```mermaid
|
||
sequenceDiagram
|
||
participant S as 小板 (传感器)
|
||
participant M as 主板 (控制板)
|
||
Note over S: 系统上电
|
||
S ->> M: 【主动】发送 ID 信息 (0x01 指令帧)
|
||
|
||
Note over S, M: 周期性温度上报 (每 20ms 一次)
|
||
loop 每 20ms
|
||
S ->> M: 【主动】发送温度数据帧 (0x00 指令)
|
||
end
|
||
|
||
Note over M, S: CRC 校验范围:从帧第 3 字节开始至 CRC 前
|
||
|
||
Note over M: 主板运行状态变化
|
||
M ->> S: 【主动】发送运行状态 (0x02 指令帧)
|
||
|
||
opt 主板查询
|
||
M ->> S: 请求 ID 信息 (0x01 指令帧)
|
||
S -->> M: 回复 ID 序列号
|
||
|
||
M ->> S: 请求 温度 信息 (0x00 指令帧)
|
||
S -->> M: 回复 温度 数据
|
||
end
|
||
|
||
```
|