DCS/ruiyiweiUX/Assets/DCS项目串口通信协议说明书.md

159 lines
4.6 KiB
Markdown
Raw Permalink Normal View History

2026-06-09 13:59:11 +08:00
| **DCS ****项目****串口通信协议说明书** | |
| --- | --- |
| **版本** | **日期** | **负责人** | **主要内容** |
| --- | --- | --- | --- |
| Version v1.0.0v1.0.0 | 2025-10-17 | 开发部/覃陆孙 | 通信协议与示例帧 |
| **1. ****通信参数** | |
| --- | --- |
| **项目** | **参数** |
| --- | --- |
| 通信方式 | UARTRS232/TTL 兼容) |
| 波特率 | 115200 bps |
| 数据位 | 8 |
| 停止位 | 1 |
| 校验位 | None |
| 流控 | None |
| 通信方向 | 双向(嵌入式主控 ↔ 安卓上位机) |
| 字节序 | Little Endian |
| **2. ****通信帧格式** | |
| --- | --- |
| **字段** | **长度****(Byte)** | **说明** |
| --- | --- | --- |
| 帧头 | 2 | 固定: 0xAA 0x55 |
| 命令字 | 1 | 指令类型(握手/心跳/上报/报警等) |
| 数据长度 | 1 | 数据区字节数 |
| 数据区 | N | 实际数据内容 |
| 校验 | 1 | 从“命令字”到“数据区最后字节”的异或校验 |
| 帧尾 | 2 | 固定: 0x0D 0x0A |
| **3. ****命令字定义** | |
| --- | --- |
| **命令字** | **方向** | **含义** |
| --- | --- | --- |
| 0x01 | 下→上 | 握手应答 + 时间同步 |
| 0x02 | 上→下 | 握手请求 |
| 0x03 | 上→下 | 心跳上报(含状态) |
| 0x04 | 下→上 | 心跳应答 |
| 0x05 | 下→上 | 报警控制命令(开启/关闭/等级) |
| 0x06 | 上→下 | 数据上报BFI、电量、温度等 |
| 0x07 | 下→上 | 参数查询或设置命令 |
| 0x08 | 上→下 | 告警状态反馈 |
| 0x09 | 下→上 | 时间同步命令(可选) |
| **4. ****协议说明** **4.1 ****握手流程(上电后)** | |
| --- | --- |
**嵌入式上电后主动发送握手请求:**
| **字段** | **示例值** | **说明** |
| --- | --- | --- |
| 帧头 | AA 55 | 固定 |
| 命令字 | 0x02 | 握手请求 |
| 数据长度 | 1 | 固件版本号长度 |
| 数据 | 0x01 | 固件版本 V1 |
| 校验 | XOR | 异或和 |
| 帧尾 | 0D 0A | 固定 |
上位机收到后返回时间同步帧:
AA 55 01 05 YY MM DD HH mm ss CS 0D 0A
| **4.2 ****心跳与状态上报(周期**** 1s****** | |
| --- | --- |
命令字0x03
| **字段** | **长度** | **说明** |
| --- | --- | --- |
| BFI 血流值 | 4 | float, 嵌入式算法计算结果 |
| 电池电量 | 1 | 百分比 0100% |
| 电池电压 | 2 | 单位 mV |
| 内部温度 | 2 | 单位 0.1°C |
| 激光器状态 | 1 | 0=异常1=工作,2=停止 |
| 电源类型 | 1 | 0=AC,1=BAT |
| 保留扩展 | 4 | 预留字段 |
| 校验 | 1 | 异或校验 |
上位机应答帧:
AA 55 04 01 00 CS 0D 0A
| **4.3 ****报警控制命令(上位机**** → ****嵌入式)** | |
| --- | --- |
命令字:**0x05**
| **字段** | **长度** | **说明** |
| --- | --- | --- |
| 报警代码 | 1 | 见下方报警表 |
| 报警级别 | 1 | 0=低,1=中,2=高 |
| 报警状态 | 1 | 0=清除,1=触发 |
| 校验 | 1 | 异或校验 |
**示例:**
AA 55 05 03 31 02 01 CS 0D 0A
→ 表示触发高优先报警代码31电池电量<5%
嵌入式根据报警等级执行:
| **优先级** | **指示灯** |
| --- | --- |
| 高 | 详细见《报警声光表达》 |
| 中 | - |
| 低 | - |
| **4.4 ****数据上报(嵌入式**** → ****上位机)** | |
| --- | --- |
命令字:**0x06**
| **字段** | **长度** | **说明** |
| --- | --- | --- |
| BFI 数据 | 4 | Float 32 位 |
| 电池电量 | 1 | 百分比 |
| 电压 | 2 | mV |
| 内部温度 | 2 | 0.1°C |
| 激光器状态 | 1 | 0=关,1=开,2=异常 |
| 电源状态 | 1 | 0=AC,1=BAT |
| 扩展保留 | 4 | 预留字段 |
| 校验 | 1 | 异或校验 |
**示例:**
AA 55 06 0B 42 48 00 00 64 0F 27 01 2C 00 01 00 00 00 CS 0D 0A
→ BFI=50.0,电量=100%,电压=9999mV温度=30.0°C激光状态工作中
| **5. ****报警代码表** | |
| --- | --- |
| **报警代码** | **优先级** | **报警原因** | **报文方向** |
| --- | --- | --- | --- |
| 11 | 低 | 电池电量低(<40% | 下位上位 |
| 21 | 中 | 电池电量低(<20% | 下位上位 |
| 31 | 高 | 电池电量空(<5% | 下位上位 |
| 32 | 高 | BFI 数值异常 | 上位→下位 |
| 22 | 中 | 激光器温度异常 | 上位→下位 |
| 33 | 高 | 激光器工作异常 | 上位→下位 |
| 34 | 高 | 通信异常 | 上位→下位 |
| 35 | 高 | 电池故障 | 上位→下位 |
| 12 | 低 | 交流电未连接 | 上位→下位 |
| **6. ****典型通信时序流程** | |
| --- | --- |
| MCU Android |
| --- |
| 握手请求 (0x02) ->|
|<- 握手应答 + 时间同步 (0x01) |
| 周期心跳上报 (0x03) ->|
|<- 心跳应答 (0x04) |
|<-触发报警 33高优先 |
| 确认并执行灯光报警 ->|
| 周期数据上报 (0x06) ->|
| |