蓝牙核心规范(V5.2)9.2-深入详解之消息序列(主机接口和链路层交互)
下面主要介绍HCI和LL之间的交互。(主控制器接口和链路层)。
1.示例
图1.1所示的示例中表示的协议实体说明了两个名为A和B的设备之间的交互。请注意,在本例中,每个设备都包括一个主机和一个LL实体。本节中的其他MSCs可以显示两个以上设备的相互作用。
2.待机状态
2.1 初始化设置
图示详解:
1.主机将等待控制器指示主机当前允许使用无操作命令操作码上的命令完成事件发送的HCI命令数据包的数量。
2.它将将该控制器重置为已知状态。
3.它需要读取本地支持的特性,以检查该控制器上是否支持BLE。
4.它将设置事件掩码和LE事件掩码,以启用它希望控制器向主机生成的事件。
5.它将使用“读取缓冲区大小”和“LE读取缓冲区大小”命令来检查可用于数据流的缓冲区。
6.它将读取本地支持的LE特性,并选择它希望使用的特性。
7.如果控制器有一个,它将读取公共设备地址。
2.2 随机设备地址
设备可以使用随机设备地址,但在广告、扫描或启动期间使用之前必须配置该地址。
2.3 白名单
在广告、扫描或启动可以使用白名单之前,可以清除白名单,并根据需要添加设备。
2.4 向解析列表中添加IRK
2.5 默认数据长度
在创建连接之前,主机可以为控制器的最大传输包大小和用于新连接的最大包传输时间指定其首选值。这可以在主机或从机上做。
2.6 周期广播列表
3.广告状态
3.1 无针对性广播
设备可以通过启用广告来进入广告状态。它还应该在这样做之前配置广告参数:
3.2定向广告
一个设备可以使用定向广告来允许一个发起者连接到它。高占空比定向广告在控制器中是有时间限制的,因此这可能会在创建连接之前失败。本示例只显示了故障的情况:
3.3 使用ADV_EXT_IND进行广告
设备可以通过启用广告集来进入广告状态。它还应该在这样做之前配置广告集参数:
3.4 扫描请求通知
3.5 广告持续时间结束
设备可以通过在有限的时间内启用广告集来进入广告状态:
3.6 周期广告
设备可以通过在集合中启用周期性广告来进入广告状态。它还应该在这样做之前配置广告集参数:
3.7 无连接的恒定扩音传输
3.8 同步广播状态
3.8.1 创建一个广播同步组
设备进入同步广播状态,并启用与BIG相关联的定期广告。然后,该设备创建BIG,并使用等时数据路径发送等时数据
3.8.2 终止广播同步组
4.扫描状态
4.1 被动扫描
一个设备可以使用被动扫描来查找该区域内的广告设备。这将接收来自同行设备的广告数据包,并将其报告给主机:
4.2 主动扫描
设备可以使用主动扫描来获取有关可能对填充用户界面有用的设备的更多信息。主动扫描涉及到更多的链接层广告消息:
4.3 对具有隐私性的定向广播进行被动扫描
如果设备不支持控制器中的隐私,它可以选择从支持隐私的设备转发LE定向广告报告事件,而不需要通过控制器解析列表进行过滤。
4.4 主动扫描与隐私
设备可以使用主动扫描来获取有关可能对填充用户界面有用的设备的更多信息。在主动扫描期间可以使用隐私,以使在主动扫描期间跟踪任何一个设备更困难。
4.5 主动扫描与基于隐私和控制器的可解析的私人地址生成
如果设备使用主动扫描和隐私广告,控制器将定期更新在两个设备上使用的可解析的私人地址。主机可以随时从控制器中读取当前正在使用的地址。
4.6 在辅助广告物理频道上的主动扫描
设备可以使用在辅助广告物理通道上的主动扫描,以获得关于可能对填充用户界面有用的设备的更多信息
4.7 扫描超时
4.8周期扫描广告
设备可以与定期的广告商建立同步,并向主机报告定期的广告数据包。
4.9 取消对定期广告的扫描
设备可以取消与定期广告商建立同步的未决请求。此示例显示了一个不成功的同步,然后取消了该同步。
4.10 周期广告同步超时
设备可能会失去与周期广告者的同步
4.11 终止周期广告
一旦与周期广告商同步,主机就可以终止同步
4.12 无连接恒定音扩展接收
设备可以接收包含常音扩展的周期性广告包,并向IQ样本发送到主机
4.13 与单独的报告启用功能进行同步
5.启动状态
5.1 启动连接
设备可以启动与发送广告的设备的连接。本示例显示了一个成功的启动,导致这两个设备都能够发送应用程序数据
5.2 取消启动
设备可以取消挂起的连接创建。此示例显示了一个不成功的启动,然后取消了启动。
5.3 使用具有隐私的无定向广告启动连接
设备可以启动与广告商的连接。在连接启动期间可以使用隐私,以便在连接设置期间更难跟踪任何一个设备。该示例显示了一个成功的启动,导致这两个设备都能够发送应用程序数据。
5.4 使用具有隐私性的定向广告启动连接
一个设备可以启动与正在使用定向广告的广告商的连接。在连接启动期间可以使用隐私,以便在连接设置期间更难跟踪任何一个设备以及针对单个启动器。该示例显示了一个成功的启动,导致这两个设备都能够发送应用程序数据。
5.5 启动无法建立的连接
本示例显示了一个无法建立的启动,因为设备B(广告发送设备)无法响应设备A发送的数据物理通道pdu。
在建立失败之前,设备A不需要在6个连接间隔内发送数据通道pDU。但是,如果不这样做,设备B将无法响应。
5.6 在辅助广告物理频道上启动连接
设备可以启动与辅助通道上的广告商的连接。本示例显示了一个成功的启动,导致这两个设备都能够发送应用程序数据。
5.7 启动一个信道选择算法#2连接
当设备支持信道选择算法#2功能时,它可以启动一个连接,使用信道选择算法#2到将广告物理通道PDU的ChSel字段设置为1的广告商。该示例显示了一个成功的启动,从而导致使用通道选择算法#2进行连接。
6.连接状态
6.1 发送数据
一旦两个设备连接,任何一个设备都可以发送数据。本示例显示了发送数据的设备,例如属性协议执行读请求并返回读响应时.
6.2 连接更新
连接的主节点可以使用链路层控制过程请求连接更新。
6.3通道MAP更新
主服务器的控制器可以从主机接收一些通道分类数据,然后执行通道更新链路层控制程序.
6.4功能交换
主设备和从设备都可以发现远程设备上可用的功能集。为了实现这一点,我们使用了特性交换链路层控制程序.
6.5 版本交换
任何一个设备都可以执行版本交换过程.
6.6 开始加密
如果尚未在连接上启动加密,则可能会由主节点启动加密.
6.7 无长期密钥即可启动加密
如果尚未在连接上启动加密,则可能会由主节点启动加密。图6.9显示了从服务器没有主服务器的长期密钥的故障情况。
6.8 通过事件屏蔽开始加密
如果尚未在连接上启动加密,则可能会由主节点启动加密。图6.10显示了从程序屏蔽了HCI_LE_Long_Term_Key_Request事件时的故障情况。
6.9 启动加密,而不支持从属加密
如果尚未在连接上启动加密,则可能会由主节点启动加密。图6.11显示了不支持加密功能的从属服务器的故障情况。
6.10 重新启动加密
如果在某个连接上已经启动了加密,则可能会由主节点重新启动加密。这可能需要使用由安全管理器协议协商达成的更强大的加密。
6.11 断开连接
一旦连接不需要保持活动,主机可以断开连接。这可以通过任何一种设备来完成。
6.12 连接参数请求
连接的主节点或从属节点可以使用链路层控制过程请求更改连接参数。
6.13 LE PING
主机可以使用HCI_Write_Authenticated_Payload_Timeout命令来更改包含有效MIC的数据包之间的最大间隔,链路层在使用加密时将强制执行该间隔。
即使远程设备不支持LE Ping特性,任何一个链接层都可以使用LE Ping过程对远程设备进行身份验证。此过程还可用于从包含有效MIC的远程设备中获取数据包。LL A可以是主机,也可以是从机。
当在LE认证的有效负载超时时间内没有收到具有有效MIC的数据包时,将通知主机该计时器已过期。
当主机设置了经过身份验证的有效负载超时时,定时器将被重置。
6.14 数据长度更新
一旦创建了连接,主机可以建议用于连接的最大传输包大小和最大包传输时间。这可以在主属或从属身上做。
6.15 PHY更新
连接的主属或从属可以使用链接层控制过程请求更改PHY.
6.16 所使用的通道请求的最低数量
当从设备支持“最小使用通道数”过程时,它可以请求在指定的PHY上使用一定的最小通道数。该示例显示了一个成功的请求,导致使用用于连接的最小通道数进行通道图更新。
6.17 LL程序碰撞
主属和从属的链接层可以同时启动相同的LL过程。
6.18持续的音调扩展请求
连接的主端或从端可以请求远程设备发送具有恒定音调扩展的LL_CTE_RSPPDU.
6.19 已连接的同步组设置
主服务器设置CIG参数,并使用从服务器建立CIS。
6.20主机拒绝已连接的同步流
从服务器的主机拒绝与主主机建立CIS的请求。
6.21 链接层拒绝已连接的同步流
从服务器的链接层拒绝与主服务器建立CIS的请求
6.22 链接层拒绝已连接的同步流
主节点的链接层拒绝创建CIS的请求。
6.23 主机A终止已连接的同步流
主服务器的主机终止已连接的等时流(请参见图6.46)。A或B都可以是主节点。
6.24 ACL断开
ACL的断开会导致CISes的断开。
6.25主机A删除已连接的同步组
主机终止CIS并从控制器中移除CIG
6.26 请求从属时钟的精度
6.27 电源控制
任何一台设备都可以启动电源控制请求程序,以请求对等设备调整其传输功率电平。
任何一设备都可以使用电源控制请求程序从对等设备查询可接受的功率降低(APR)值,并根据响应调整其传输功率。
当主机发出一个命令以启用远程电源电平变化的报告时,控制器可以启动一个电源控制请求程序到请求远程设备启动电源电平管理。当遥控器改变其发射功率水平时,它会向对等设备发送指示。如果启用了远程传输功率级变化的报告,控制器将向主机发送一个LE传输功率报告事件。
当主机发出读取该远程设备的传输功率电平的命令时,控制器可以启动一个LL电源控制请求程序来查询该远程设备的传输功率电平。
实现方案可以选择只在活动PHY上管理传输功率电平,并且可以在执行PHY更新过程之前拒绝对新PHY上的首选传输功率电平的请求。
当执行PHY更新过程以切换到LE编码的PHY时,当本地和远程设备可以同时使用S=8和S=2编码时,控制器将它们作为单独的PHY来处理,以实现电源控制。
当关联CIS的PHY建立在不同于ACL使用的CIS上时,功率变化指示程序可用于指示在新PHY上使用的传输功率电平。当关联的CIS断开时,实现可以选择停止管理在CIS上使用的PHY。
当主机启用路径丢失监测时,控制器可以启动功率控制请求程序,以查询远程传输功率电平。当远程设备四处移动时,控制器会监视连接上的路径丢失,并根据需要向主机发送事件。
6.28 针对ACIS上的音乐流的数据路径设置
图6.59显示了从主机a到主机B的单向音乐流示例。主机A在主机中进行LC3编解码器处理,并通过HCI将数据发送给控制器,控制器通过空气传输pdu,而无需进一步处理。主机B配置到扬声器(s)的输出数据路径,并在控制器中启用LC3编解码器处理。
注意:主机之间的通知将由相关配置文件(s)指定。
注意:音频数据可以是单声道或立体声的。在后一种情况下,如何将发送到输出数据路径的数据分割成单独的音频信号超出了本规范的范围。
6.29 针对ACIS上的双向语音的数据路径设置
图6.60显示了主机a和主机B之间的双向语音调用的一个示例。设备A包含带有编解码器嵌入的LC3音频接口硬件。因此,主机将设置ISO数据路径,并将Coding_Format设置为透明模式。设备B支持控制器中的LC3编解码器处理,因此主机B设置ISO数据路径,Coding_Format设置为LC3,以及相关配置文件(s)定义的编解码器配置数据。
注意:主机之间的通知将由相关配置文件(s)指定。
6.30 BIS的数据路径设置
图6.61显示了来自广播机A的等时广播流的一个示例。主机A在控制器中使用编解码器处理来设置ISO数据路径,以创建通过BIS传输的PDU。设备B成为BIS的同步接收器,并设置ISO数据路径,以便在接收到的数据PDU上的控制器中进行编解码器处理。
7.周期广告同步传输
在以下示例中,设备B正在进行周期的广告。设备A或设备B与设备C连接,并将关于周期性广告列车的周期性广告同步信息传输到设备C。
7.1 通过扫描仪传输,报告初始化禁用
扫描设备(A)将定期广告同步信息传输到设备C,设备C开始收听定期广告列车,但只在明确要求时才向主机发送报告。
7.2 通过扫描仪传输,报告初始化启用
扫描设备(A)将定期广告同步信息传输到设备C,设备C开始收听定期广告传输,并立即向主机发送报告。
7.3 广告传输
广告商(B)直接将关于其周期性广告的周期性广告同步信息传输到设备C。在本例中,对主机C的报告被禁用。
8.同步状态
8.1 与A广播等时组同步
设备进入同步状态,从与BIG相关联的周期广告列车接收同步信息,并同步到BIS。
8.2 终止与一个大容量文件的同步
设备终止与大设备的同步。
8.3 广播同步组的新频道映射
8.4 与广播等时组失去同步
文章来源: xintiaobao.blog.csdn.net,作者:心跳包,版权归原作者所有,如需转载,请联系作者。
原文链接:xintiaobao.blog.csdn.net/article/details/121077090
- 点赞
- 收藏
- 关注作者
评论(0)