# 电涡流传感器模块通信协议 ## 电涡流传感器模块通信协议 | **序号** | **修改内容** | **版本** | **日期** | **修改人** | |:------:|:--------:|:------:|:----------:|:-------:| | 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`