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