docs: synchronize host mesh protocol

This commit is contained in:
十七
2026-11-05 17:52:26 +08:00
parent aedde75d65
commit 7d3997700c
3 changed files with 21 additions and 14 deletions
+7 -7
View File
@@ -97,23 +97,23 @@ JDY-28M 的 STAT 依据模块手册第 7 页:MESH 模式下高电平表示入
### 6.2 模块转发给 STM8
```text
F1 DD 09 00 0A | 源短地址 2B | 业务数据 | 0D 0A
F1 DD 08/09/0A | 源短地址 2B | 目标短地址 2B | 业务数据 | 0A
```
- `F1 DD 09 00 0A`:固定接收帧头;
- `F1 DD 08/09/0A`:根据当前实测,第三字节可能随模块固件或转发路径变化;
- 源短地址:2 字节;
- 目标短地址:2 字节;
- 业务数据:STM8 自定义业务帧;
- `0D 0A`:蓝牙帧结束符。
- `0A`:实测帧尾,部分串口工具可能同时显示前置`0D`。
广播和单播格式相同,仅目标地址不同。整个 JDY-28M 外层数据包最大 20 字节。
## 7. STM8 业务帧
```text
0x55 0xAA | CMD | LEN | DATA | CRC16
CMD | LEN | DATA | CRC16_H | CRC16_L
```
- `0x55 0xAA`:业务帧头;
- `CMD`:命令码;
- `LEN`:DATA 长度;
- `DATA`:命令数据;
@@ -124,8 +124,8 @@ CRC-16/MODBUS 固定参数:
- 初始值:`0xFFFF`;
- 右移实现多项式:`0xA001`;
- 输入、输出反转;
- CRC 低字节在前;
- 计算范围:从 `CMD` 到 DATA,不包含 `0x55 0xAA`;
- CRC 高字节在前,低字节在后;
- 计算范围:从 `CMD` 到 DATA;
- 不计算 JDY-28M 外层帧字段。
测试向量:
+7 -6
View File
@@ -36,13 +36,14 @@ DST_L = 0C
### 1.2 接收端串口收到的 Mesh 数据格式
```text
F1 DD 09 | SRC_H SRC_L | DST_H DST_L | BUSINESS | 0A
F1 DD 08/09/0A | SRC_H SRC_L | DST_H DST_L | BUSINESS | 0A
```
这是接收方 UART 侧看到的接收格式,不是设备或主机发送时使用的格式。
其中前两字节是发送方短地址,后两字节是接收方短地址;业务帧中不再重复
嵌入发送方或接收方地址。部分模块/串口工具可能显示为`0D 0A`,设备解析器
兼容`0A`和`0D 0A`两种接收表现。
嵌入发送方或接收方地址。根据当前实测,第三字节可能显示为`08`、`09`或`0A`,
设备和上位机解析器应兼容这三种表现。帧尾通常为`0A`,部分模块或串口工具可能
显示为`0D 0A`;其中`0D`属于外层结束符,不能计入业务数据。
无论发送方是主机还是设备,发送时都统一使用第1.1节的格式:
@@ -202,7 +203,7 @@ DATA[0] = 当前继电器控制状态
设备接收侧看到:
```text
F1 DD 09 34 FA 35 FA 01 01 01 50 E0 0A
F1 DD 0A 34 FA 35 FA 01 01 01 50 E0 0A
```
设备向主机地址`34FA`回复:
@@ -217,8 +218,8 @@ F1 DD 09 34 FA 35 FA 01 01 01 50 E0 0A
41 54 2B AA A1 FF FF A0 01 01 01 50 E0 0D 0A
```
设备收到广播后执行控制,并向发送方地址回复`0x81`。正式多设备版本应对广播
应答增加随机错峰延时,避免多个设备同时发送。
设备收到广播后执行控制,并向发送方地址回复`0x81`。广播应答增加随机错峰
延时,避免多个设备同时发送造成网络拥塞。
### 4.2 `0x02` 查询继电器状态
+7 -1
View File
@@ -213,7 +213,7 @@ CRC正确
业务数据帧格式:
```text
SRC_H | SRC_L | CMD | LEN | DATA | CRC16_L | CRC16_H
CMD | LEN | DATA | CRC16_H | CRC16_L
```
说明:
@@ -224,6 +224,7 @@ SRC_H | SRC_L | CMD | LEN | DATA | CRC16_L | CRC16_H
- `LEN`:DATA长度;
- `DATA`:命令数据;
- `CRC16`:CRC-16/MODBUS,计算范围为 CMD、LEN、DATA,高字节在前;
- 发送方和接收方 Mesh 短地址由 JDY-28M 外层帧携带,业务帧不重复添加地址;
- CRC错误时静默丢弃,不执行继电器动作,不返回错误帧。
JDY-28M的Mesh外层帧负责目标地址、源地址、Mesh头和帧尾,业务帧本身不重复添加地址。
@@ -238,6 +239,11 @@ JDY-28M的Mesh外层帧负责目标地址、源地址、Mesh头和帧尾,业
| `0x04` | 故障/恢复上报 | 设备→主机 | DATA为故障码或恢复码 |
| `0x05` | 查询设备短地址 | 主机→设备 | 返回2字节短地址 |
| `0x06` | 配置电流阈值 | 主机→设备 | 2字节,单位mA,低字节在前,保存到EEPROM |
当前汇编主程序已经完成并通过实物验证的命令为:`0x01`、`0x02`和`0x05`。
`0x03`、`0x04`、`0x06`、`0x07`以及`0x08~0x0E`属于已确定的协议设计,
在当前汇编主程序中尚未全部完成或尚未完成实物验证,上位机不应据此判断当前
固件已经支持这些命令。
| `0x0E` | 查询当前固件版本 | 主机→设备 | 无DATA |
| `0x0D` | OTA升级结果上报 | 设备→主机 | DATA为升级结果码 |