04.AD
- LE Advertisement Broadcast Channel用于在设备间进行无连接的广播通信,这些广播通信可用于蓝牙的设备的发现、连接(和BR/EDR类似)操作,也可用于无连接的数据传输
使用场景
在BLE协议中,广播通信主要有两类使用场景:
- 1)单一方向的、无连接的数据通信,数据发送者在广播信道上广播数据,数据接收者扫描、接收数据。
- 2)连接的建立。 后续的分析,将围绕这两个使用场景展开。
协议层次
在BLE协议中,和广播通信相关的协议层次比较简单,主要包括:
GAP-------->HCI-------->LL
LL(Link Layer)位于最底层,负责广播通信有关功能的定义和实现,包括物理通道的选择、相关的链路状态的定义、PDU的定义、设备过滤(Device Filtering)机制的实现等。
HCI负责将LL提供的所有功能,以Command/Event的形式抽象出来,供Host使用。
GAP负责从应用程序的角度,抽象并封装LL提供的功能,以便让应用以比较傻瓜的方式进行广播通信。当然,这不是必须的,也就是说,我们可以在没有GAP参与的情况下,进行广播通信。
Link Layer
状态定义
在某一个时刻,参与广播通信的BLE设备,从LL的角度看,可以处于如下三种状态的一种:
Advertising,数据发送方,周期性的发送广播数据;
Scanning,数据接收方,扫描、接收广播数据;
Initiating,连接发起方,扫描带有“可连接”标志的广播数据,一旦发现,则发起连接请求(都是由Link Layer自动完成,不需要Host软件参与)。
PDU (Protocol Data Unit)定义
根据应用场景的不同,处于不同状态的BLE设备,可以发送不同类型的PDU(Packet Data Unit),具体如下