ATC_MiThermometer项目解析:小米BLE广播协议Mi Beacon v4技术详解
协议概述
Mi Beacon是小米IoT蓝牙协议的重要组成部分,专门规范了基于蓝牙4.0及以上版本设备的广播格式。该协议使得小米智能家居APP和MIUI系统能够识别并连接兼容设备。在ATC_MiThermometer项目中,这一协议被用于温度计设备与手机APP之间的通信交互。
协议核心要素
广播数据格式要求
设备广播消息必须包含以下两类信息之一才能被识别为符合小米广播格式:
-
**广播数据(Advertising)**中必须包含:
- 服务数据(Service Data, 0x16)
- 小米服务标识(Mi Service, 0xFE95)
-
**扫描响应(Scan Response)**中必须包含:
- 制造商特定数据(Manufacturer Specific Data, 0xFF)
- 小米公司识别码(0x038F)
统一数据格式
无论是广播数据还是扫描响应,都采用相同的格式定义。对于扫描响应,建议不添加可选的MAC和能力字段,以便容纳更多的对象数据。
| 字段名称 | 类型 | 长度 | 是否必需 | 说明 | |----------------|----------|------|----------|-----------------------------| | 帧控制(Frame Control) | 位图 | 2字节 | 是 | 控制位字段 | | 产品ID(Product ID) | 无符号16位 | 2字节 | 是 | 产品唯一标识符 | | 帧计数器(Frame Counter) | 无符号8位 | 1字节 | 是 | 序列号(用于去重) | | MAC地址(MAC Address) | 无符号8位 | 6字节 | 否 | 设备MAC地址 | | 能力(Capability) | 无符号8位 | 1字节 | 否 | 设备能力描述 | | 对象(Object) | 无符号8位 | 可变 | 否 | 事件或属性数据 | | 随机数(Random Number) | 无符号8位 | 3字节 | 否 | 加密时必填字段 |
帧控制字段详解
帧控制字段是一个16位的位图,各位含义如下:
| 位编号 | 名称 | 说明 | |--------|--------------------|----------------------------------------------------------------------| | 0 | 时间协议 | 置1表示请求时间同步 | | 1-2 | (保留) | 保留位 | | 3 | 加密标志 | 置1表示数据包已加密 | | 4 | MAC包含标志 | 置1表示包含MAC地址 | | 5 | 能力包含标志 | 置1表示包含能力字段 | | 6 | 对象包含标志 | 置1表示包含对象字段 | | 7-8 | (保留) | 保留位 | | 9 | 绑定确认 | 置1表示这是一个绑定确认包 | | 10 | 安全认证支持 | 置1表示设备支持安全芯片认证 | | 11 | 安全登录方式 | 置1表示使用对称加密登录,否则使用非对称加密登录 | | 12-15 | 版本号 | 设备协议版本号(当前为4) |
对象字段结构
对象字段用于携带设备的具体事件或属性数据,其结构如下:
| 字段名称 | 长度 | 说明 | |----------|--------|--------------------------| | ID | 2字节 | 事件或属性的标识符 | | 长度 | 1字节 | 事件或属性数据的长度 | | 数据 | 可变长 | 事件或属性的具体内容 |
能力字段详解
能力字段是一个8位的位图,描述了设备的各种能力:
| 位编号 | 名称 | 说明 | |--------|--------------|----------------------------------------------------------------------| | 0 | 可连接性 | 置1表示设备支持建立连接 | | 1 | 中心设备能力 | 置1表示设备可以作为中心设备工作 | | 2 | 加密能力 | 置1表示设备支持数据加密 | | 3-4 | 绑定类型 | 描述设备支持的绑定方式 | | 5-7 | (保留) | 保留位 |
设备绑定类型
小米BLE设备支持四种绑定方式,在ATC_MiThermometer项目中需要根据实际需求选择合适的绑定方式:
-
00b模式:用户自主选择或基于RSSI信号强度选择
- 适用于大多数简单设备
- 用户可自由选择要连接的设备
-
01b模式:先扫描,设备发送确认包后再连接
- 提供额外的确认步骤
- 增强连接安全性
-
10b模式:扫描后直接连接,通过设备振动确认
- 适用于需要物理确认的场景
- 如门锁等高安全需求设备
-
11b模式:专为组合设备设计
- 适用于多功能复合设备
- 需要特殊处理逻辑
实际应用建议
在ATC_MiThermometer项目开发中,建议:
- 广播数据中应包含完整的设备信息,包括产品ID和必要的传感器数据
- 扫描响应可精简,优先传输关键信息
- 根据设备安全需求选择合适的加密和绑定方式
- 帧计数器应确保单调递增,避免数据包重复
- 对于温度计类设备,建议使用00b或01b绑定方式,平衡易用性和安全性
通过遵循Mi Beacon v4协议规范,ATC_MiThermometer项目能够实现与小米生态系统的无缝集成,为用户提供稳定可靠的温度监测体验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考