首页 > 其他分享 >BLE中GAP层的PDU类型表

BLE中GAP层的PDU类型表

时间:2023-06-15 13:44:41浏览次数:33  
标签:PDU REQ GAP IND 广播 BLE RSP LL

在蓝牙的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中的说明。

标签:PDU,REQ,GAP,IND,广播,BLE,RSP,LL
From: https://www.cnblogs.com/simpleGao/p/17482625.html

相关文章

  • 【每日一题】Problem 180C. Letter
    原题解决思路每一个字符以前一个字符为基准,来判断自己是upper还是lower,从而找到最少的解最开始的解决思路是,用回溯的方式来解决,即使划分区块该方法也十分耗时,因为每个字符都有两种情况,因此时间复杂度为\(O(2^n)\)将\(1\)的方式修改下,分别用\(num[i][0],num[i][1]\)来......
  • pyautogui.screenshot('test.png') 报错:PyAutoGUI was unable to import pyscreeze (T
    根据提示需要importpyscreeze还需要Pillow.通过pip3list可以查看到已经安装PyScreeze==0.1.29但是不是我手动安装的,应该是Pillow或者pyautogui下载的时候依赖了pyscreeze并且安装了最新版本0.1.29。通过依赖树可以看到是pyautogui依赖了sudopip3installpipdeptree安装查......
  • VUE使用Element-ui表达式拼接字符串 el-table-column的prop拼接字符串 拼接table 使
    VUE使用Element-ui表达式拼接字符串el-table-column的prop拼接字符串使用<templateslot-scope="scope">更改td里面值https://blog.csdn.net/WindNolose/article/details/125422409描述VUE中的标签属性,可以在属性前使用:,让属性绑定到data中的动态数据el-table-column标......
  • Wtm layui add form pop out and dispaly in tables
    #regionAddChargeItem[AllRights]//useineditpagepublicIActionResultAddChargeJob(stringid){varvm=Wtm.CreateVM<tbl_ma_dbn_jobListVM>();vm.SearcherMode=ListVMSearchModeEnum......
  • 从 SpringApplication 认识 Spring 应用启动过程
    一、SpringApplication是什么?Spring应用的启动类。二、SpringApplication执行了什么?创建ApplicationContext实例ApplicationContext就是我们所说的容器实例。注册CommandLinePropertySourceCommandLinePropertySource的作用是将命令行参数输出为Spring属性。......
  • Oracle drop table ... purge
    https://www.cnblogs.com/hider/p/12194675.html操作Oracle时,经常会删除一个表,当删除错误后,希望能够恢复该表,有时也希望删除表之后能够立刻释放表的空间。通过purge的使用可以在Oracle中删除表、恢复表和空间释放。droptable当在Oracle中删除(drop)一个表时,数据库不......
  • 解决MySQL8.0报错:Unknown system variable 'validate_password_policy'
    解决MySQL8.0报错:Unknownsystemvariable'validate_password_policy'解决MySQL8.0报错:Unknownsystemvariable'validate_password_policy'一、问题描述1.通过yum安装好mysql8.0,通过生成的临时密码登录后操作mysql时会报如下错误:mysql>showdatabases;ERROR1820......
  • 503 Service Temporarily Unavailable
    请求不可用基本处理步骤1.Restart/reboottheservers2.Checkforunexpectedautomaticmaintenance3.Checkonyourbandwidth4.Checkserverconnectivityontheserverchain5.Checkthefirewalls6.Checkthelogs7.Checkthecode1.重新启动/重新启动服务器2.......
  • 五月学习之Ansible vault
    3.1、AnsibleVault概述AnsibleVault可以将敏感的数据文件进行加密,而非存放在明文的playbook中比如:部分playbook内容中有明文密码信息,可以对其进行加密操作,后期只有输入对应的密码才可以查看、编辑或执行该文件,如果没有密码则无法正常运行3.2、AnsibleVault应用1、使用ansibl......
  • 【Azure 应用服务】Azure Function App在部署时候遇见 503 ServiceUnavailable
    问题描述在VSCode中编写好AzureFunctionApp代码后,通过 funcazurefunctionapppublish部署失败,抛出503ServiceUnavailable错误。Gettingsitepublishinginfo...Creatingarchiveforcurrentdirectory...Performingremotebuildforfunctionsproject.Deleting......