Initial commit of akmon project
This commit is contained in:
99
doc_ble/SUMMARY.md
Normal file
99
doc_ble/SUMMARY.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# 蓝牙协议整体总结
|
||||
|
||||
## 1. 协议定位与目标
|
||||
- **协议名称**:Wearable Band Bluetooth Protocol (WBBP)
|
||||
- **应用场景**:运动手环与手机之间的数据通信
|
||||
- **技术基础**:BLE 4.0+,基于 GATT Profile
|
||||
- **设计原则**:低功耗、可靠性、扩展性、安全性
|
||||
|
||||
## 2. 服务与特征总体结构
|
||||
协议按功能划分为多个 BLE Service,每个 Service 下有若干 Characteristic:
|
||||
- **设备信息服务 (DIS, UUID: 180A)**:型号、序列号、固件/硬件版本等基础信息
|
||||
- **电池服务 (Battery, UUID: 180F)**:电池电量上报(可读/可通知)
|
||||
- **主业务自定义服务 (Primary Custom Service)**:
|
||||
- 数据下发 (TX):手机→手环,命令/配置写入
|
||||
- 数据上报 (RX):手环→手机,状态/数据通知
|
||||
- 控制命令:关键控制类操作(需响应)
|
||||
- **健康数据服务 (Health Data Service)**:
|
||||
- 心率、运动、睡眠等数据的定期/实时上报
|
||||
- **紧急服务 (Emergency Service)**:
|
||||
- SOS 报警、录音数据上传等高优先级通道
|
||||
|
||||
## 3. 通信报文统一格式
|
||||
所有上/下行命令尽量收敛为统一包格式,便于解析与扩展:
|
||||
- **基础结构**:STX + LEN + CMD + SEQ + DATA + CRC
|
||||
- **字段含义**:
|
||||
- `STX`:固定 0xAA,起始标志
|
||||
- `LEN`:长度(不含 STX/CRC)
|
||||
- `CMD`:命令码,按功能分区(控制/健康/交互/紧急/系统)
|
||||
- `SEQ`:序列号,用于 ACK / 重传 / 防重放
|
||||
- `DATA`:变长载荷,最多 16 字节或按 MTU 协商扩展
|
||||
- `CRC`:XOR 校验,兼顾实现简单与错误检测
|
||||
|
||||
## 4. 命令空间规划
|
||||
命令码按功能模块分段,避免冲突并方便查表:
|
||||
- **基础控制 (0x00–0x0F)**:PING、设备信息、时间同步、配置读写、固件升级、重启、ACK 等
|
||||
- **健康数据 (0x10–0x2F)**:心率、步数、睡眠、血氧、体温、卡路里、实时监测控制与配置等
|
||||
- **交互功能 (0x30–0x4F)**:消息通知、来电、闹钟、查找设备、相机/音乐控制等
|
||||
- **紧急功能 (0x50–0x6F)**:SOS 报警、录音数据、位置信息、跌倒/异常心率报警等
|
||||
- **系统配置 (0x70–0x8F)**:显示、震动、语言、表盘、用户资料等
|
||||
- **错误响应 (0xF0–0xFF)**:通用错误、不支持、参数错误、超时、硬件故障等
|
||||
|
||||
## 5. 关键业务流程概览
|
||||
### 5.1 连接与心跳
|
||||
- 扫描 → 广播 → 连接 → 服务发现 → PING/ACK 建链
|
||||
- 通过周期性 CMD_PING 保活,超时触发重连逻辑
|
||||
|
||||
### 5.2 健康数据
|
||||
- **心率/血氧/步数等** 均定义了结构化数据包:
|
||||
- 含时间戳、数值本体、质量指标、活动类型等
|
||||
- 支持:
|
||||
- 单点数据上传
|
||||
- 实时流式数据(心率、血氧实时监测)
|
||||
- 组合数据(心率+血氧等生命体征合包,节省带宽)
|
||||
|
||||
### 5.3 实时监测控制
|
||||
- 通过 CMD_REAL_TIME_START / CMD_REAL_TIME_STOP 控制:
|
||||
- 监测类型(心率/血氧/体温/运动)
|
||||
- 上报周期、监测时长、质量阈值
|
||||
- 会话 ID 支撑多次监测任务区分
|
||||
|
||||
### 5.4 紧急与录音
|
||||
- 紧急报警包含:时间戳、类型 (SOS/跌倒/心率异常)、严重程度、位置、用户 ID
|
||||
- 录音采用分包:头包宣告总长度与格式,数据包携带固定长度音频块
|
||||
|
||||
## 6. 安全与可靠性设计
|
||||
- **安全**:
|
||||
- 配对认证流程:配对码确认 + 密钥交换
|
||||
- 数据加密:AES-128,对健康/录音/位置信息等敏感数据加密
|
||||
- 防重放:依赖 SEQ + 时间戳 + 会话令牌
|
||||
- **可靠性**:
|
||||
- XOR CRC 校验
|
||||
- 统一错误码与错误响应结构
|
||||
- ACK/超时/重传机制
|
||||
|
||||
## 7. 性能与功耗优化
|
||||
- **MTU 协商**:从默认 23 升级到 185/247,减少包头开销
|
||||
- **数据压缩**:
|
||||
- 健康数据差值压缩
|
||||
- 录音使用 ADPCM
|
||||
- **功耗控制**:
|
||||
- 连接参数调整(连接间隔、超时)
|
||||
- 批量发送,减少射频唤醒次数
|
||||
- 省电模式与高性能模式可切换
|
||||
|
||||
## 8. 调试与测试
|
||||
- 提供:
|
||||
- PC 端模拟器
|
||||
- BLE 抓包工具
|
||||
- 压测方案(并发连接、大流量传输)
|
||||
- 测试用例覆盖:
|
||||
- 连接稳定性
|
||||
- 各类数据上报正确性
|
||||
- 紧急场景(SOS/网络异常/低电量)
|
||||
|
||||
---
|
||||
本总结面向整体架构与实现要点,可作为:
|
||||
- 蓝牙协议快速入门说明
|
||||
- APP/固件开发对接概要文档
|
||||
- 后续扩展(如加入新的传感器/指令)时的设计约束参考。
|
||||
Reference in New Issue
Block a user