为了更方便理解 BLE 中的广播,首先要先了解 BLE 架构中的通用访问配置文件 (GAP)层。

GAP 为BLE 设备相互交互提供了一个框架,包括:

  •         BLE 设备角色
  •         广播(广播、发现、广播参数、广播数据)
  •         扫描
  •         连接建立(发起连接、接受连接、连接参数)
  •         安全相关

BLE 设备有四种主要的 GAP 角色:

Central:发现 BLE 外围设备和广播者的设备,具有连接外围设备的能力。
Peripheral:可以广播,可以接受连接请求。
Broadcaster:广播者是一个纯广播设备
Observer:扫描者是一个纯扫描设备

1.广播信道

图1  信道分配

        BLE设备共40个信道,3个作为主广播信道,其余37个作为数据信道或辅助广播信道。

        次要广播频道用作“辅助”频道,这意味着设备必须先在主要广播频道上做广播,然后才能在次要频道上发送广播数据包。

        如果设备想要使用次要广播通道,它会在主要通道上发送指向次要广播数据包的广播数据包。

2.广播包格式

        PDU 字段是我们感兴趣的。这个字段会根据传输的数据包类型(数据与广播)而变化。

PDU Header

PDU 类型:该字段的长度为 4 位,对于广播包来说,具有以下可能的值:

PDU 根据用途分为多个类别,在我们列出每个 PDU 之前,先介绍一些常用术语:

定向与非定向:定向广告类型接受来自已知对端设备的连接请求,而非定向接受来自任何对端设备的连接请求。

可连接与不可连接:确定广播设备是否允许建立连接。

可扫描与不可扫描:广播设备是否能够处理来自观察者或中央的扫描请求消息。

扩展广告:扩展广播相比传统广播,允许的携带更多数据。

注意:由于蓝牙 5.0以下的设备无法发现扩展广播,建议广播者也使用带有传统广播 PDU 的广播集,以便较旧的扫描设备能够发现终端设备。广播集用于同时发送不同类型的广播事件。每个广播集都会有不同的广播参数,例如广播 PDU 类型、广播间隔和 PHY。

周期广播:蓝牙 5 .0开始支持的扩展广播的另一个功能是周期广播。这用于在两个未连接的设备之间的设定时间段内向设备广播数据包,这意味着多个设备可以同时收听这些周期广播。它们由以固定间隔发送的广播组成,广播数据内容不时变化。

Legacy Advertising PDUs

这些适用于所有蓝牙版本 - 支持向后兼容,并用于主要广播信道。

ADV_IND:可连接的可扫描非定向广播。
ADV_DIRECT_IND:可连接的定向广播
ADV_NONCONN_IND:不可连接不可扫描非定向广播
ADV_SCAN_IND:可扫描非定向广播

Extended Advertising PDUs

这些类型是在蓝牙5.0 中引入的。 除了主要广播信道之外,它们还为设备提供了在次要广播信道上做广播的选项。 辅助通道的好处是它们允许增加广播数据容量。

ADV_EXT_IND:扩展广播(用于除 Connectable Scannable Undirected 之外的所有广播类型)——在主要广播信道上发送。
AUX_ADV_IND:扩展广播(用于除 Connectable Scannable Undirected 之外的所有广播类型)——在辅助广播信道上发送。
AUX_SCAN_IND:用于周期广播。
AUX_CHAIN_IND:与其他广播类型一起使用以保存额外的广播数据。

RFU:保留以备将来使用

ChSel:如果广播者支持 LE 信道选择算法 #2 功能,则该位将设置为 1。

TxAdd:如果广播者的地址是随机的,则该位设置为 1,如果地址是公共的,则该位设置为 0

RxAdd:如果目标设备的地址是随机的,则该位设置为 1,如果地址是公共的,则设置为 0

Length:保存数据包有效载荷的长度。

相关文章

  1. 万维网(www)

    万维网(www)是互联网中使用最广泛的一种应用,是一个超大规模线上信息储藏所&...

  2. 系统架构设计师学习资料

    百度网盘连接: 链接:https://pan.baidu.com/s/1-OkaphvJI...

  3. 五笔输入教程

    http://www.dazima.cn/jiaocheng/20121016324.html 1.五笔字型简介 五笔...

  4. IDEA轻松实现.class文件反编译(超实用)

    IDEA简单实现.class文件反编译 在没有.java源码的情况下,.class文件直接用记事本打开查看...

  5. LVS的介绍与使用

    LVS负载均衡 1.LVS服务简述 1.1lvs服务简介 ​ LVS(Linux Virtual Serv...

  6. 正则表达式(菜鸟教程)

    文章目录 普通字符特殊字符修饰符(标记) 普通字符 '+ 前面的字...

  7. 常见下载方式之BT下载实现过程详解

    常见下载方式之BT下载实现过程详解 一、BT下载是怎么来的? 在互联网上下载文件的方式大概有这么几种&#x...

  8. 海康威视ivms-4200图文说明

    iVMS-4200概述 摘自官方: iVMS-4200客户端是一款与网络监控设备配套使用的综合应用软件&...

  9. Lora模块(SX1278)

    主要引脚说明 NRESET–复位触发输入 DIOx—数字IO,软件配置 GND—接地 SCK—SPI时钟...

  10. 计算机网线怎么连接另一台电脑,教你如何用一根网线将两台电脑直连

    在办公过程中,我们经常需要在两台电脑之间传输文件,这时除了用U盘拷贝或者其他在线软件传输外...