ble 广播ad结构定义
BLE(蓝牙低功耗)设备在进行广播时,会发送包含自身信息的广播数据包。这个包由一个或多个 AD Structure(Advertising Data Structure,广播数据结构)组成。
每个 AD Structure 的定义遵循一个固定的格式,包含三个连续的字段:
-
长度字段 (Length):
- 长度:1 字节
- 含义:表示其后的两个字段(AD Type + AD Data)总共占用的字节数。
- 范围:0 ~ 31。因为整个广播包(包含所有 AD Structure)的有效载荷最大为 31 字节,所以单个 AD Structure 的长度字段值加上下一个 AD Structure 的起始位置不能超过 31。
-
类型字段 (AD Type / Data Type):
- 长度:1 字节
- 含义:指定 AD Data 字段中包含的数据类型以及如何解释这些数据。
- 关键性:这是定义广播数据内容的核心字段。蓝牙 SIG 组织定义了标准的 AD Type 值,每个值对应一种特定的数据类型。
- 常见 AD Type 示例:
0x01: Flags。指示设备能力(如是否支持 BR/EDR,是否支持 LE 通用/受限发现模式,是否仅支持 BLE 等)。0x02/0x03: Incomplete List of 16-bit Service Class UUIDs / Complete List of 16-bit Service Class UUIDs。设备提供的服务 UUID 列表(不完整/完整)。0x08/0x09: Shortened Local Name / Complete Local Name。设备的名称(简称/全称)。0x0A: Tx Power Level。广播设备的射频发射功率电平。0xFF: Manufacturer Specific Data。制造商自定义数据。这是最常用的自定义数据类型。紧随其后的 AD Data 的前 2 个字节通常是公司标识符 (Company Identifier),由蓝牙 SIG 分配,剩下的字节是制造商自定义的数据内容。- (还有其他许多标准类型,如 32-bit/128-bit Service UUIDs List, Service Data, Appearance, Slave Connection Interval Range 等)
-
数据字段 (AD Data):
- 长度:可变长度,具体值等于 Length 字段的值减去 1(因为 Length 字段包含了 AD Type 的 1 字节)。
- 含义:包含实际的数据内容,其结构和意义完全由 AD Type 字段指定。
- 示例:
- 如果 AD Type 是
0x01(Flags),AD Data 通常只有 1 个字节,表示具体的标志位。 - 如果 AD Type 是
0x09(Complete Local Name),AD Data 就是设备名称的字符串(如"MyBLEDevice")。 - 如果 AD Type 是
0xFF(Manufacturer Specific Data),AD Data 的前 2 个字节是公司 ID (如0x004C代表 Apple),后续字节由该公司定义(如 iBeacon 数据)。
- 如果 AD Type 是
总结:一个 AD Structure 的结构定义
| 字段序号 | 字段名称 | 长度 (字节) | 描述 |
|---|---|---|---|
| 1 | Length | 1 | AD Type + AD Data 的总字节数 (N)。 |
| 2 | AD Type | 1 | 数据类型标识符 (蓝牙 SIG 定义的标准值或制造商自定义值 0xFF)。 |
| 3 | AD Data | N-1 | 实际数据内容,其格式和含义取决于 AD Type。 |
关键特点:
- 串联组成广播包: 一个广播数据包由多个这样的 AD Structure 串联而成。
- 长度限制: 广播包的总长度(所有 AD Structure 长度之和 + 每个 AD Structure 的 Length 字段占用的 1 字节)不能超过 31 字节(这是 BLE 协议规定的广播通道 PDU 有效载荷最大值)。设计广播数据时需要谨慎规划内容和顺序。
- 扫描响应包: 除了主广播包,设备还可以定义另一个包含额外 AD Structure 的 扫描响应包。当扫描设备(如手机)主动发送扫描请求时,广播设备才会回复这个扫描响应包。扫描响应包也遵循同样的 31 字节限制和 AD Structure 格式。
- 灵活性: AD Type 机制提供了极大的灵活性,允许设备广播标准信息(名称、服务、能力)和制造商自定义信息。
- 0xFF 类型:
AD Type = 0xFF是用于 Manufacturer Specific Data 的标准类型,是实现私有数据通信(如 Beacon、自定义配置)的最常用方式。
简单示例:
假设一个广播包包含两个 AD Structure:
- Flags (
AD Type=0x01,AD Data=0x06):AD Structure = [Length=0x02, AD Type=0x01, AD Data=0x06]Length=0x02: 表示 AD Type + AD Data 共 2 字节。AD Type=0x01: 表示 Flags。AD Data=0x06: 具体的标志位值。
- 设备名称 "BLE" (
AD Type=0x09):AD Structure = [Length=0x04, AD Type=0x09, AD Data=0x42, 0x4C, 0x45](ASCII 'B', 'L', 'E')Length=0x04: AD Type (1字节) + "BLE" (3字节) = 4 字节。AD Type=0x09: 表示 Complete Local Name。AD Data=0x42, 0x4C, 0x45: "B"、 "L"、 "E" 的 ASCII 码。
这个广播包的总长度 = (Length字段1 + AD Type1 + AD Data1) + (Length字段2 + AD Type2 + AD Data2) = (1 + 1 + 1) + (1 + 1 + 3) = 3 + 5 = 8 字节(小于 31 字节)。
理解 AD Structure 的定义和组成是开发和解析 BLE 广播数据的基础。
扫描到的BLE设备始终不会显示AT+BLEADVDATA 定义的设备名称是哪里出了问题?
AT 固件版本:release/v2.2.0.0 版本使用“AT+BLEADVDATA”定义了蓝牙的广播的蓝牙名称,使用“蓝牙调试助手” 和 “Light Blue”APP ,在安卓手机上扫描
户外做BLE广播,隔天却无法扫描到广播了怎么解决?
你们有遇到这样的问题吗?可以分享如何搞定。我的 esp32c3 开发板昨天在户外做 BLE 广播一切正常(将开发板放在户外的塑料瓶子中),但我今天无法扫描到广
BLE主从一体相互收发广播包
大佬们,BLE蓝牙主从一体怎么做到让他们相互收到对方发的广播啊?单链路的情况,添加独立的RF文件也不行;相同程序,目前只能其中一方收得到另一方收不到,多个设备时,也有某个设备收不到其它
请问我必须打开BLE的接收端来识别“广播类型消息”吗?
1 /我计划使用上面的BLE微控制器在电池供电的应用程序中,连接到手机。2 /我打算把微卫星放进深度睡眠中以尽可能多地节省功率。3、我必须定期“唤醒”我的申请并做广告吗?或者我的手机发送了一个“广播
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览