4.3 KiB
4.3 KiB
蓝牙协议整体总结
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/固件开发对接概要文档
- 后续扩展(如加入新的传感器/指令)时的设计约束参考。