当前位置: 首页 > news >正文

【android bluetooth 协议分析 03】【蓝牙扫描详解 3】【Bluetooth 中 EIR、IR、BLE 普通广播与扩展广播详解】

Bluetooth 中 EIR、IR、BLE 普通广播与扩展广播详解

本篇文章将详细介绍 Bluetooth 规范中四种关键广播机制:

  1. BR/EDR 中的 EIR (Extended Inquiry Response)

  2. BR/EDR 中的 IR (Inquiry Response)

  3. BLE 中的 普通广播(Legacy Advertising)

  4. BLE 中的 扩展广播(Extended Advertising)

文中将结合 Bluetooth Core Specification v5.3 标准内容,解释每种广播的结构、使用场景和各自的优势。


一、BR/EDR 中的 Inquiry Response (IR)

基本定义

IR 是经典蓝牙 BR/EDR 设备在执行 Inquiry 流程时,用于回应探测设备的基础广播消息。

特点

  • 最多包含 240 bits(30 bytes)数据

  • 由 Controller 自动发送

  • 包含设备地址(BD_ADDR)、Class of Device(CoD)

存在的限制

  • 可包含的信息类型有限

  • 无法承载自定义厂商数据、完整设备名称等信息

使用场景

  • 早期 BR/EDR 设备发现阶段(如功能机蓝牙配对)

二、BR/EDR 中的 Extended Inquiry Response (EIR)

基本定义

EIR 是为了解决标准 IR 无法承载丰富信息的问题,从 Core Spec v2.1 引入。

数据结构

EIR 数据通过 HCI 命令或事件传递,其格式为 TLV(Type-Length-Value):

| Length (1 Byte) | Type (1 Byte) | Value (Length - 1 Bytes) |

常见 EIR Type(参见 Core 5.3 Vol 3, Part C, Section 18.3.2)

Type Code名称内容
0x09Complete Local Name设备完整名称
0x08Shortened Local Name设备简短名称
0x0ATx Power Level发送功率
0x0D~0x11Class of Device/Service UUID支持的服务 UUID
0xFFManufacturer Specific Data厂商自定义数据(如小米、华为等定制)

使用场景

  • 车机(head unit)向手机广播更多服务信息(音频、电话、HFP、PBAP 等)

  • 蓝牙配对时展示更丰富的信息

优势

  • 灵活的数据结构

  • 可自定义字段


三、BLE 中的普通广播(Legacy Advertising)

基本定义

BLE 普通广播是 BLE 最初引入的广播方式,用于广播存在、连接请求、数据同步等。

数据结构

  • 广播包(Advertising Packet):最大 31 字节

  • 扫描响应包(Scan Response Packet):额外 31 字节(需要扫描器发送 SCAN_REQ)

广播信道

  • 使用 3 个广播信道(37, 38, 39)

常见字段(同样使用 TLV 编码)

  • Complete Local Name

  • Flags(如可连接、可发现等)

  • 16-bit/128-bit Service UUIDs

  • Manufacturer Data

使用场景

  • 简单的传感器设备(温度计、心率计)

  • 低功耗定向广播(如 iBeacon)

限制

  • 数据量有限(最多 31 + 31 字节)

  • 广播速率固定,且受主广播通道影响


四、BLE 中的扩展广播(Extended Advertising)

引入背景

从 Core Spec 5.0 起,为了解决 BLE 广播数据容量与灵活性不足问题,Bluetooth SIG 引入 扩展广播机制

特点

  • 支持 非广播通道 扩展:扩展广播可以跳出传统 37/38/39 信道,使用数据通道广播

  • 单个广播事件最多可传输 255 字节,可通过链式方式进一步扩展(最高可达数 KB)

  • 支持 Periodic AdvertisingAdvertising Sets

  • 支持 非连接广播长数据传输

广播结构

  • 初始包仍在 3 个主广播信道上发送

  • 后续数据在指定的扩展通道上广播

使用场景

  • 大量广播信息(如完整 GATT 服务信息)

  • 升级版 Beacon(如 Apple 的 AirTag 定位)

  • 无连接的数据传输设备(如公交车 ETA 广播)

  • 蓝牙 Mesh 的 Provisioning 或 Beaconing

对比表

特性普通广播扩展广播
最大数据长度31+31 字节最多 1650 字节(链式)
使用信道37/38/39可用数据通道
是否支持 Periodic
是否支持长广播数据
功耗较低较高(可调节)
硬件支持要求所有 BLE 芯片需要支持 BLE 5.0+

总结:场景选择建议

应用场景推荐广播类型
经典设备发现IR + EIR
简单 BLE 外设配对BLE 普通广播
支持 BLE 5.0 的 BeaconBLE 扩展广播
无连接长数据传输BLE 扩展广播
厂商定制配对识别EIR + Manufacturer Data

附录:为何车机中只有 EIR 没有 IR?

现代车机往往配置较高、支持 Bluetooth 2.1+EDR,因此在蓝牙设备发现阶段直接使用 EIR 结构来包含更丰富的服务和属性数据,而不再使用受限的标准 Inquiry Response(IR)。这也可以减少冗余、提高交互效率。因此在 btsnoop 中常只看到 EIR,而非 IR。


如需进一步深入了解各字段含义与协议交互机制,建议参考 Bluetooth Core Spec v5.3 Vol 3, Part C(Generic Access Profile)以及 Vol 2, Part E(Host Controller Interface)。


🤖 好了,文章结束,逻辑理清,脑细胞也差不多燃尽了。

如果你看到这,说明你是真·有缘人,那就别客气:

👉 点个赞鼓励一下,不然我都怀疑是不是 AI 在看我的文章……
👉 留个言交个朋友,说不定下一个版本更新的坑我们一起踩~
👉 转发分享更不用说,同行之间互通有无、抱团取暖、集体升级打怪才是正道!

别做默默潜水的 “系统服务”,上线回应一下,别让我像个 Binder 一样孤独等待调用😭!


http://www.dtcms.com/a/284330.html

相关文章:

  • 数仓建设中,系统数据录入错误或者延迟,如何对历史数据修复或补入?
  • 安装物理机ubuntu系统
  • 初试Spring AI实现聊天功能
  • PyCharm 高效入门指南(引言 + 核心模块详解)
  • ubuntu22 npm install electron --save-dev 失败
  • 基于Rust游戏引擎实践(Game)
  • 智能体开发工具链全景图:IDE、调试器与监控平台
  • 营业执照识别-营业执照文字识别API-营业执照真伪
  • Flutter状态管理篇之ChangeNotifier(一)
  • 什么是协变(Covariant)与逆变(Contravariant)?
  • 在 Windows Server RDS 上配置用户配置文件磁盘查找对应的用户名
  • 第2章通用的高并发架构设计——2.5 高并发读场景总结:CQRS
  • 【计算机网络】第四章:网络层(上)
  • Spring中事务失效的情况深度分析
  • 深入理解 KVM 子系统:从虚拟化核心到内核实现的全景解析
  • 7.18 note
  • 第十八节:第三部分:java高级:反射-获取构造器对象并使用
  • 【参数初始化】——深度学习.全连接网络
  • Cadence SPB 2024软件下载及安装教程|Cadence软件安装详细步骤附下载链接
  • Spring IoCDI_2_使用篇
  • Anime.js 超级炫酷的网页动画库详解
  • 【图像质量评价指标】信噪比(Signal-to-Noise Ratio,SNR)
  • Linux 基础指令
  • makefile missing separator. Stop.问题
  • 一款实用的.NET Core加密解密工具类库
  • C++11之lambda表达式与包装器
  • 20.轮廓特征与近似,改变图像的轮廓识别画线的精确度,同时画出轮廓对应的矩形
  • GitHub 趋势日报 (2025年07月16日)
  • 【Burp入门第三十八篇】Repeater Strike:AI 驱动的 Burp Suite 插件
  • Effective Modern C++ 条款13:优先考虑const_iterator而非iterator