diff --git a/CMakeLists.txt b/CMakeLists.txt index d06d055..402aeb4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,8 +4,8 @@ include(cmake/toolchain.cmake) project(xlsw_3dp_LDC1612) set(VERSION_MAJOR 0) -set(VERSION_MINOR 1) -set(VERSION_PATCH 1) +set(VERSION_MINOR 2) +set(VERSION_PATCH 0) set(VERSION "V${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") string(TIMESTAMP CURRENT_DATE "%Y-%m-%d") diff --git a/CommunicationProtocol.md b/CommunicationProtocol.md new file mode 100644 index 0000000..1345bc3 --- /dev/null +++ b/CommunicationProtocol.md @@ -0,0 +1,79 @@ +# 电涡流传感器模块通信协议 + +## 电涡流传感器模块通信协议 + +| **序号** | **修改内容** | **版本** | **日期** | **修改人** | +|:------:|:--------:|:------:|:----------:|:-------:| +| 1 | 初版 | V1.0 | 2024-12-25 | 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求和校验,包含状态码、数据长度、数据 +- 有效数据部分为uint32_t,高字节在前 +- 包错误和指令错误时,数据部分为ascii码 `err` + +------------------- + +## 电涡流传感器模块功能 + +### 1. 读取电涡流传感器模块数据 + +- 发送M1指令,读取电涡流传感器模块数据。 + - `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` +- 错误命令(M3指令)回包 + - `B5 F0 03 65 72 72 3C`,有效数据为 `err` +- CRC错误回包 + - `B5 F1 03 65 72 72 3D`, 有效数据为 `err` +- 包头错误回包 + - `B5 F2 03 65 72 72 3E`, 有效数据为 `err` +- 类型错误回包 + - `B5 F3 03 65 72 72 3F`, 有效数据为 `err` +- 数据长度错误回包 + - `B5 F4 03 65 72 72 40`, 有效数据为 `err` + +### 2. 读取电涡流传感器模块温度补偿数据 + +- 发送M2指令,读取电涡流传感器模块数据。 + - `D5 03 02 4D 32 84` +- 电涡流传感器模块温度补偿回复数据 + - `B5 F0 04 00 03 40 85 BC`, 有效数据为 `0x00034085`,转换为`213125`(单位为摄氏度*10)温度为21.3125℃ + - `B5 F0 04 00 03 89 C3 43`, 有效数据为 `0x000389C3`,转换为`231875`(单位为摄氏度*10)温度为23.1875℃ +- 错误命令(M3指令)回包 + - `B5 F0 03 65 72 72 3C`,有效数据为 `err` +- CRC错误回包 + - `B5 F1 03 65 72 72 3D`, 有效数据为 `err` +- 包头错误回包 + - `B5 F2 03 65 72 72 3E`, 有效数据为 `err` +- 类型错误回包 + - `B5 F3 03 65 72 72 3F`, 有效数据为 `err` +- 数据长度错误回包 + - `B5 F4 03 65 72 72 40`, 有效数据为 `err` + +### 3. 读取数据时间间隔 + +- 推荐数据时间间隔至少为500ms \ No newline at end of file diff --git a/README.md b/README.md index 2dd6712..e68776e 100644 --- a/README.md +++ b/README.md @@ -1,79 +1,9 @@ -# 电涡流传感器模块通信协议 +# XLSW-3DP-Sensor-LDC1612 + +| **版本号** | **修改内容** | **日期** | **修改人** | +|:-------:|:-------------------:|:----------:|:-------:| +| v0.2.0 | 实现软件与硬件IIC可自选,添加看门狗 | 2024-12-29 | Hulk | ## 电涡流传感器模块通信协议 -| **序号** | **修改内容** | **版本** | **日期** | **修改人** | -|:------:|:--------:|:------:|:----------:|:-------:| -| 1 | 初版 | V1.0 | 2024-12-25 | 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求和校验,包含状态码、数据长度、数据 -- 有效数据部分为uint32_t,高字节在前 -- 包错误和指令错误时,数据部分为ascii码 `err` - -------------------- - -## 电涡流传感器模块功能 - -### 1. 读取电涡流传感器模块数据 - -- 发送M1指令,读取电涡流传感器模块数据。 - - `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` -- 错误命令(M3指令)回包 - - `B5 F0 03 65 72 72 3C`,有效数据为 `err` -- CRC错误回包 - - `B5 F1 03 65 72 72 3D`, 有效数据为 `err` -- 包头错误回包 - - `B5 F2 03 65 72 72 3E`, 有效数据为 `err` -- 类型错误回包 - - `B5 F3 03 65 72 72 3F`, 有效数据为 `err` -- 数据长度错误回包 - - `B5 F4 03 65 72 72 40`, 有效数据为 `err` - -### 2. 读取电涡流传感器模块温度补偿数据 - -- 发送M2指令,读取电涡流传感器模块数据。 - - `D5 03 02 4D 32 84` -- 电涡流传感器模块温度补偿回复数据 - - `B5 F0 04 00 03 40 85 BC`, 有效数据为 `0x00034085`,转换为`213125`(单位为摄氏度*10)温度为21.3125℃ - - `B5 F0 04 00 03 89 C3 43`, 有效数据为 `0x000389C3`,转换为`231875`(单位为摄氏度*10)温度为23.1875℃ -- 错误命令(M3指令)回包 - - `B5 F0 03 65 72 72 3C`,有效数据为 `err` -- CRC错误回包 - - `B5 F1 03 65 72 72 3D`, 有效数据为 `err` -- 包头错误回包 - - `B5 F2 03 65 72 72 3E`, 有效数据为 `err` -- 类型错误回包 - - `B5 F3 03 65 72 72 3F`, 有效数据为 `err` -- 数据长度错误回包 - - `B5 F4 03 65 72 72 40`, 有效数据为 `err` - -### 3. 读取数据时间间隔 - -- 推荐数据时间间隔至少为500ms \ No newline at end of file +通信协议:[LDC1612通信协议]{./CommunicationProtocol.md} \ No newline at end of file