蓝牙通信架构(Bluetooth/BLE)
蓝牙通信架构(Bluetooth/BLE)
- 1. 基本原理与协议
- 2. 设备识别与配对
- 3. 主要类结构与分工
-
- A. CommsMCU
- B. ExoBLE
- C. BleParser
- D. ble_commands.h
- 4. 消息收发流程
- 5. 协议与消息安全性
- 6. 定时与带宽设置
- 7. 扩展新命令/新数据类型的方法
- 架构优点总结
1. 基本原理与协议
-
通信方式:采用 BLE(Bluetooth Low Energy),主要与 PC/手机 GUI 实时通信,用于实验调参、数据可视化、在线控制等。
-
协议实现:基于Nordic UART Service (NUS),将 BLE 通信封装为类串口(UART),极易对接 Python/PyQt/手机APP等主流平台。
2. 设备识别与配对
-
设备名需以 EXOBLE_ 开头,并广播 NUS 服务,GUI 扫描到该前缀即尝试连接。
-
连接后,实验开始时设备会自动开始上传 ExoData 结构的“简化版本”——只包含关键运行数据/参数。
3. 主要类结构与分工
A. CommsMCU
-
通信固件的最高层类,管理蓝牙和(可选)电池对象。
-
负责蓝牙初始化、连接维护、数据调度等。
-
可以集成电池电量采样,但目前出于成本考虑未与APP直接集成(可手动查电量)。
B. ExoBLE
-
处理所有具体BLE工作:协议栈初始化、广播、连接、数据收发等。
-
封装底层BLE事件,使上层操作如“收数据、发命令”高度简化。
C. BleParser
-
负责将 BLE 数据包序列化、反序列化(打包/解包)。
-
协议采用“命令-数据对”结构,方便兼容多种命令、参数、结果。
<