generated from hulk/gd32e23x_template_cmake_vscode
86 lines
3.4 KiB
Markdown
86 lines
3.4 KiB
Markdown
# 电涡流传感器模块通信协议
|
|
|
|
## 电涡流传感器模块通信协议
|
|
|
|
| **序号** | **修改内容** | **版本** | **日期** | **修改人** |
|
|
|:------:|:--------:|:------:|:----------:|:-------:|
|
|
| 1 | 初版 | V1.0 | 2024-12-25 | Hulk |
|
|
| 2 | 修改指令含义 | V1.1 | 20250822 | Hulk |
|
|
| | | | | |
|
|
| | | | | |
|
|
|
|
### 发包格式
|
|
|
|
| **包头** | **类型** | **数据长度** | **数据** | **校验** |
|
|
|:------:|:------:|:-----------:|:------:|:------:|
|
|
| D5 | 0x03 | Data Length | Data | CRC |
|
|
|
|
- 数据长度只包含数据部分,不包含包头、类型、数据长度、校验
|
|
- CRC求和校验,包含类型、数据长度、数据
|
|
- 数据部分为ascii码
|
|
|
|
### 回包格式
|
|
|
|
| **包头** | **状态码** | **数据长度** | **数据** | **校验** |
|
|
|:------:|:----------:|:-----------:|:------:|:------:|
|
|
| B5 | 0xF0 正常包 | Data Length | Data | CRC |
|
|
| B5 | 0xF1 CRC错误 | Data Length | Data | CRC |
|
|
| B5 | 0xF2 包头错误 | Data Length | Data | CRC |
|
|
| B5 | 0xF3 类型错误 | Data Length | Data | CRC |
|
|
| B5 | 0xF4 包长度错误 | Data Length | Data | CRC |
|
|
|
|
- 数据长度仅包含数据部分,不包含包头状态码等
|
|
- CRC求和校验,包含状态码数据长度和数据部分
|
|
|
|
-------------------
|
|
|
|
## 电涡流传感器模块功能
|
|
|
|
### 1. 开启自动读取并发送电涡流传感器模块数据
|
|
|
|
- M1指令 开启自动读取并发送涡流传感器数据,间隔10ms左右
|
|
- `D5 03 02 4D 31 83`
|
|
- 电涡流传感器模块涡流回复数据
|
|
- `B5 F0 04 01 AE 1B E4 A2`, 有效数据为 `0x01AE1BE4`,转换为`28187620`
|
|
- `B5 F0 04 04 19 C1 FA CC`, 有效数据为 `0x0419C1FAD2`,转换为`17612012242`
|
|
|
|
|
|
### 2. 关闭自动读取并发送电涡流传感器模块数据
|
|
|
|
- M2 指令 关闭自动读取并发送涡流传感器数据
|
|
- `D5 03 02 4D 32 84`
|
|
> 注:因为485总线为半双工,M1命令开启后持续自动发送数据,M2指令发送停止命令可能无法一次成功,可持续发送几次
|
|
|
|
### 3. 单次读取并发送电涡流传感器数据
|
|
|
|
- M3 指令 单次读取并发送涡流传感器数据
|
|
- `D5 03 02 4D 33 85`
|
|
|
|
### 4. 单次读取并发送板载温度传感器数据
|
|
|
|
- M4 指令 单次读取并发送板载温度传感器数据(TMP112,返回温度值×10000,4 字节有符号大端)
|
|
- `D5 03 02 4D 34 86`
|
|
- 示例回复:`B5 F0 04 00 04 28 74 94`,有效数据 `0x00042874` = 272500,即 `27.25°C`
|
|
|
|
### 5. 单次读取并发送温度补偿后的涡流传感器数据
|
|
|
|
- M5 指令 单次读取并发送温度补偿后的涡流传感器数据(补偿系数默认为 0,与 M3 等价)
|
|
- `D5 03 02 4D 35 87`
|
|
|
|
### 6. 单次读取并发送标定数据(涡流原始值 + 温度值)
|
|
|
|
- M6 指令 单次读取涡流原始值和板载温度值,用于温度标定
|
|
- `D5 03 02 4D 36 88`
|
|
- 回复 9 字节:涡流原始值(4字节大端) + 0xFF + 温度值×10000(4字节大端)
|
|
- 示例回复:`B5 F0 09 01 AD BA DC FF 00 04 28 74 DC`
|
|
|
|
### 7. 查询固件版本号
|
|
|
|
- M999 指令 返回固件版本号字符串,如 `v23.1.0.1`(板卡类型.主版本.次版本.修订号)
|
|
- `D5 03 04 4D 39 39 39 FF`
|
|
|
|
### 8. 复位 MCU
|
|
|
|
- M9999 指令 立即复位 MCU(无回复)
|
|
- `D5 03 05 4D 39 39 39 39 39`
|