广播包

让我们来看看一个广播包的结构。BLE数据包的主要部分为协议数据单元(PDU)。根据类型不同,PDU可以是广播PDU(有时称为广播信道PDU)或者数据PDU(数据信道PDU),取决于BLE数据包用于广播还是数据传输。


image

image

头部结构包括:

  • PDU Type:决定广播类型,如ADV_IND等

  • RFU:保留供将来使用

  • ChSel:若支持LE信道选择算法#2则置1

  • TxAdd(发射方地址):0或1,取决于发射方是公有/随机地址

  • RxAdd(接收方地址):0或1,取决于接收方是公有/随机地址

  • Length:负载长度

详细字段说明可查阅蓝牙SIG官方核心规范。

负载分两部分,前6字节是广播设备地址(AdvA),其余为实际广播数据(AdvData)。

image


特别说明:负载结构依广播类型变化,如定向广播(ADV_DIRECT_IND)要指定接收设备地址,这时AdvData字段被6字节的接收地址取代。因此该类型广播包实际无广播数据负载。

image


  • 完整本地名称(BT_DATA_NAME_COMPLETE):用户扫描时看到的设备名

  • 简短本地名称(BT_DATA_NAME_SHORTENED):精简名

  • URI(BT_DATA_URI):广播网址等URI

  • 服务UUID:区分不同Profile的唯一编号,便于中心筛选目标设备

  • 厂商自定义数据(BT_DATA_MANUFACTURER_DATA):公司自定义广告数据字段,iBeacon等都用此字段

  • 标志Flags:1位标志,指示设备特性或模式

示例:设置BT_LE_AD_NO_BREDR这个flag的广告数据结构如图。

image

Flags占1字节共8个可用bit,常见Flags如下:

  • BT_LE_AD_LIMITED:置为有限可发现模式,中心扫描仅限时有效

  • BT_LE_AD_GENERAL:一般可发现模式,长期开放广播

  • BT_LE_AD_NO_BREDR:不支持经典蓝牙

LIMITED与GENERAL常用于外围设备广播。

posted @ 2025-11-25 16:05  毛豆*_*  阅读(56)  评论(0)    收藏  举报