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

159 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

| **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) ->|
| |