ATC_MiThermometer项目解析:小米BLE广播协议Mi Beacon v4技术详解

ATC_MiThermometer项目解析:小米BLE广播协议Mi Beacon v4技术详解

【免费下载链接】ATC_MiThermometer Custom firmware for the Xiaomi Thermometers and Telink Flasher 【免费下载链接】ATC_MiThermometer 项目地址: https://gitcode.com/gh_mirrors/atc/ATC_MiThermometer

协议概述

Mi Beacon是小米IoT蓝牙协议的重要组成部分,专门规范了基于蓝牙4.0及以上版本设备的广播格式。该协议使得小米智能家居APP和MIUI系统能够识别并连接兼容设备。在ATC_MiThermometer项目中,这一协议被用于温度计设备与手机APP之间的通信交互。

协议核心要素

广播数据格式要求

设备广播消息必须包含以下两类信息之一才能被识别为符合小米广播格式:

  1. **广播数据(Advertising)**中必须包含:

    • 服务数据(Service Data, 0x16)
    • 小米服务标识(Mi Service, 0xFE95)
  2. **扫描响应(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表示数据包已加密
4MAC包含标志置1表示包含MAC地址
5能力包含标志置1表示包含能力字段
6对象包含标志置1表示包含对象字段
7-8(保留)保留位
9绑定确认置1表示这是一个绑定确认包
10安全认证支持置1表示设备支持安全芯片认证
11安全登录方式置1表示使用对称加密登录,否则使用非对称加密登录
12-15版本号设备协议版本号(当前为4)

对象字段结构

对象字段用于携带设备的具体事件或属性数据,其结构如下:

字段名称长度说明
ID2字节事件或属性的标识符
长度1字节事件或属性数据的长度
数据可变长事件或属性的具体内容

能力字段详解

能力字段是一个8位的位图,描述了设备的各种能力:

位编号名称说明
0可连接性置1表示设备支持建立连接
1中心设备能力置1表示设备可以作为中心设备工作
2加密能力置1表示设备支持数据加密
3-4绑定类型描述设备支持的绑定方式
5-7(保留)保留位

设备绑定类型

小米BLE设备支持四种绑定方式,在ATC_MiThermometer项目中需要根据实际需求选择合适的绑定方式:

  1. 00b模式:用户自主选择或基于RSSI信号强度选择

    • 适用于大多数简单设备
    • 用户可自由选择要连接的设备
  2. 01b模式:先扫描,设备发送确认包后再连接

    • 提供额外的确认步骤
    • 增强连接安全性
  3. 10b模式:扫描后直接连接,通过设备振动确认

    • 适用于需要物理确认的场景
    • 如门锁等高安全需求设备
  4. 11b模式:专为组合设备设计

    • 适用于多功能复合设备
    • 需要特殊处理逻辑

实际应用建议

在ATC_MiThermometer项目开发中,建议:

  1. 广播数据中应包含完整的设备信息,包括产品ID和必要的传感器数据
  2. 扫描响应可精简,优先传输关键信息
  3. 根据设备安全需求选择合适的加密和绑定方式
  4. 帧计数器应确保单调递增,避免数据包重复
  5. 对于温度计类设备,建议使用00b或01b绑定方式,平衡易用性和安全性

通过遵循Mi Beacon v4协议规范,ATC_MiThermometer项目能够实现与小米生态系统的无缝集成,为用户提供稳定可靠的温度监测体验。

【免费下载链接】ATC_MiThermometer Custom firmware for the Xiaomi Thermometers and Telink Flasher 【免费下载链接】ATC_MiThermometer 项目地址: https://gitcode.com/gh_mirrors/atc/ATC_MiThermometer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值