1. BLE广播技术概述
低功耗蓝牙(BLE)广播机制是蓝牙设备通信的基础入口,它允许外设(Peripheral)通过广播方式向周围发送自身信息,而中心设备(Central)则通过扫描接收这些广播包。这种机制构成了BLE设备发现、连接和数据交互的基础框架。
1.1 BLE广播的核心特点
BLE广播具有以下几个显著特点:
- 单向通信:只有外设能发送广播,中心设备只能接收
- 低功耗设计:专门为节能优化的通信机制
- 信道固定:使用37、38、39三个专用2.4GHz信道
- 数据量小:单个广播包最大31字节有效载荷
1.2 广播与经典蓝牙的区别
与传统蓝牙相比,BLE广播具有本质区别:
- 发现机制:经典蓝牙采用查询/响应机制,而BLE使用广播/扫描
- 功耗表现:BLE广播功耗仅为经典蓝牙的1/10到1/100
- 连接方式:BLE支持无连接的数据传输(广播模式)
- 协议复杂度:BLE协议栈更精简,适合IoT设备
2. BLE广播协议栈解析
2.1 协议栈层次结构
BLE广播涉及协议栈的多个层次:
code复制应用层
↑
GAP层(广播配置和管理)
↑
LL层(链路层,处理广播信道和时序)
↑
PHY层(物理层,处理射频信号)
2.2 广播包格式详解
BLE广播包由以下几部分组成:
- 前导码(1字节):用于频率同步
- 接入地址(4字节):广播信道固定为0x8E89BED6
- PDU(2-39字节):包含广播数据和头部信息
- CRC(3字节):循环冗余校验
2.3 广播事件时序
一个完整的广播事件包含:
- 在37信道发送广播包
- 等待150μs
- 在38信道发送广播包
- 等待150μs
- 在39信道发送广播包
- 等待广播间隔时间
3. 广播参数配置实战
3.1 关键参数配置
3.1.1 广播间隔配置
广播间隔是影响功耗和发现速度的关键参数:
c复制// 配置为100ms广播间隔
adv_params.adv_int_min = 0x00A0; // 100ms = 160*0.625ms
adv_params.adv_int_max = 0x00A0; // 固定间隔
不同场景下的推荐值:
- 快速发现:20-100ms
- 平衡模式:100-500ms
- 低功耗模式:1-10s
3.1.2 广播模式选择
四种广播模式对比:
| 模式 | 可连接 | 可扫描 | 典型应用 |
|---|---|---|---|
| ADV_IND | 是 | 是 | 大多数外设 |
| ADV_DIRECT_IND | 是 | 否 | 快速重连 |
| ADV_NONCONN_IND | 否 | 否 | 信标设备 |
| ADV_SCAN_IND | 否 | 是 | 扫描响应 |
3.2 物理层参数优化
3.2.1 PHY选择策略
三种PHY的特性对比:
| PHY类型 | 速率 | 距离 | 功耗 | 兼容性 |
|---------|-
解锁全文
加入我们的会员,获取最新、最热、最精彩的开发者技术内容