BLE中GAP层的PDU类型表

发布时间 2023-06-15 13:39:49作者: 不回本不改名

在蓝牙的spec中Host卷GAP篇中对有关广播、扫描、连接以及相关扩展的概念和流程进行了解释和说明。但是如果只看这些抽象的理论是比较难以理解的,而在controller卷LL篇中给出了这些抽象概念的具象化实现,也就是各种各样类型的PDU包。通过对GAP层在LL层中PDU部分的各种实现情况,可以让我们能很好的把握GAP的核心意义。

​ 在spec中,根据使用的物理信道的不同,将PDU分为两大类别。

Advertising physical channel PDU-广播物理通道PDU

Advertising PDUs-广播PDU

Type 说明 特点
ADV_IND 可扫描可连接非定向广播 基本的广播包类型
ADV_DIRECT_IND 可连接定向广播 带有主机地址的广播包,只有特定主机才能连接
ADV_NONCONN_IND 不可扫描不可连接广播 不响应扫描请求和连接请求
ADV_SCAN_IND 可扫描非定向广播 响应扫描请求,但不响应连接请求
ADV_EXT_IND 扩展广播 用于主要广播通道
AUX_ADV_IND 扩展广播 用于次要广播通道,广播数据的第一个片段,不可连接的、定向扫描的。
AUX_SYNC_IND 扩展广播 用于次要广播通道,用于周期性广播,以一定间隔发送不定向的数据包
AUX_CHAIN_IND 扩展广播 用于次要广播通道,发送剩余的数据

Scanning PDUs-扫描PDU

Type 说明 备注
SCAN_REQ 扫描请求
SCAN_RSP 扫描响应
AUX_SCAN_REQ 扫描请求 用于扩展广播应用
AUX_SCAN_RSP 扫描响应 用于扩展广播应用

Initiating PDUs-初始化PDU

Type 说明 备注
CONNECT_IND 连接请求 用于传统广播
AUX_CONNECT_REQ 连接请求 用于扩展广播
AUX_CONNECT_RSP 连接响应 用于扩展广播

Data Physical Channel PDU-数据物理通道PDU

LL Data PDU -LL数据PDU

对于连接后的数据通道的数据PDU,内容涉及更上层的L2CAP协议和ATT协议,与GAP协议本身关系已经不大了。相关内容将在L2CAP协议的分析博客中再进一步说明。

LL Control PDU-LL控制PDU

数据通道的控制PDU的类型比较多,内容涉及连接参数控制、加密鉴权、时钟同步等内容,这里不作一一说明。

Op Code Type
0x00 LL_CONNECTION_UPDATE_IND
0x01 LL_CHANNEL_MAP_IND
0x02 LL_TERMINATE_IND
0x03 LL_ENC_REQ
0x04 LL_ENC_RSP
0x05 LL_START_ENC_REQ
0x06 LL_START_ENC_RSP
0x07 LL_UNKNOWN_RSP
0x08 LL_FEATURE_REQ
0x09 LL_FEATURE_RSP
0x0A LL_PAUSE_ENC_REQ
0x0B LL_PAUSE_ENC_RSP
0x0C LL_VERSION_IND
0x0D LL_REJECT_IND
0x0E LL_SLAVE_FEATURE_REQ
0x0F LL_CONNECTION_PARAM_REQ
0x10 LL_CONNECTION_PARAM_RSP
0x11 LL_REJECT_EXT_IND
0x12 LL_PING_REQ
0x13 LL_PING_RSP
0x14 LL_LENGTH_REQ
0x15 LL_LENGTH_RSP
0x16 LL_PHY_REQ
0x17 LL_PHY_RSP
0x18 LL_PHY_UPDATE_IND
0x19 LL_MIN_USED_CHANNELS_IND
0x1A LL_CTE_REQ
0x1B LL_CTE_RSP
0x1C LL_PERIODIC_SYNC_IND
0x1D LL_CLOCK_ACCURACY_REQ
0x1E LL_CLOCK_ACCURACY_RSP

参考

上述PDU的结构在spec中

Vol 6: Core System Package [Low Energy Controller volume]

Part B: Link Layer Specification

2 Air interface packets

章节有具体说明,该博客只做类型总结。相关说明需要查看spec中的说明。