蓝牙核心规范(V5.2)7.4-深入详解之AMP

举报
心跳包 发表于 2021/11/12 22:41:33 2021/11/12
【摘要】 蓝牙篇之蓝牙核心规范(V5.2)深入详解汇总 本部分指定了为备用MAC/PHY特性合并AMP管理器协议(A2MP)所需的规范的更改。    AMP管理器协议(A2MP)为一个设备提供了一种从另一个设备获取有关AMP功能的信息。每个设备都包含一个称为AMP管理器的抽象实体,该实体使用AMP管理器协议与...

蓝牙篇之蓝牙核心规范(V5.2)深入详解汇总


本部分指定了为备用MAC/PHY特性合并AMP管理器协议(A2MP)所需的规范的更改。

 

 AMP管理器协议(A2MP)为一个设备提供了一种从另一个设备获取有关AMP功能的信息。每个设备都包含一个称为AMP管理器的抽象实体,该实体使用AMP管理器协议与另一个设备上的对等AMP管理器进行通信。

AMP管理实体具有以下职责和能力:

  1. 能够发现远程AMP管理器
  2. 能够发现可用的控制器
  3. 能够查询远程AMP控制器的信息
  4. 能够管理AMP物理链接
  5. 负责创建专用的AMP密钥

AMP管理器与本地AMPPAL进行通信,并通过固定的L2CAP通道使用AMP管理器协议与远程AMP管理器进行通信。AMP管理器实体存在于蓝牙堆栈中,如图2.1所示。

图2.1 较底层的软件层的概述

 图2.1显示了AMP管理器的两个基本通信路径。AMP管理器通过L2CAP使用路径1和主BR/EDR控制器,首先发现远程AMP管理器。AMP管理器可以查询可用的远程amp的可能性及其功能以及其他信息。AMP管理器通过AMP管理器协议通道(A200万像素通道)进行通信。

 在发现远程设备支持的AMP后,AMP管理器使用通信路径2来管理其本地AMP(s)和远程设备上的AMP之间的物理链接。可以有多个本地AMP,并且在远程设备上也可能有多个AMP。

 AMP管理器协议是两个AMP管理器之间的请求/响应协议。请求和响应都指向两个方向。任何一个对等对象都可以向其相应的对等对象请求相同类别的信息。

1.L2CAP上的AMP管理器通道

对等AMP管理器通过A2MP信道进行通信,这是一个L2CAP固定信道。AMP管理器通道的配置参数应如下所示。MTU值应为大于或等于670字节的任何有效值。

表2.1:AMP管理器通道配置参数

 在固定信道上使用的增强再传输模式的参数应如下所示。重传超时、监视器超时和MPS应为大于或等于表2.2中规定的值的任何有效值。

表2.2:AMP管理器信道增强重传输模式参数

表2.2:AMP管理器信道增强重传输模式参数

 2.使用AMP管理器协议

发现远程AMP管理器

一旦通过主BR/EDR控制器建立了ACL连接,本地AMP管理器应检查远程设备的L2CAP扩展特性位,以确定是否支持L2CAP固定通道。如果是这样,可以通过对所有可用的固定通道发出信息请求来查询其对等点(AMP管理器)的存在。

在远程设备上发现可用的控制器

下一步是发现对等机的AMP控制器的存在性和能力。为此目的,可以通过AMP管理器协议通道发出一个AMP发现请求包。

在AMP发现响应包中,对等AMP管理器将以控制器列表的形式返回有关其本地AMP功能的信息。控制器列表是控制器ID/控制器类型/控制器状态三元组的序列,标识可用于通信的控制器。

控制器列表包含对可用的对等控制器及其状态的基本顶级描述。AMP管理器解析此列表以获得物理无线电兼容性。如果需要关于远程AMP控制器的更多信息,本地AMP管理器随后可以使用通过AMP发现交换检索到的控制器ID发出AMP获取信息请求包。使用指定AMP控制器的AMP控制器信息返回来自对等点的AMP获取信息响应包。AMP控制器信息包含有关AMP控制器的信息,主机可使用这些信息来确定是否创建到AMP控制器的物理链接

创建AMP物理链接

一旦确定需要通过AMP进行蓝牙连接,AMP管理器将通过发出AMPGetAMPAssoc请求包来检索远程AMP控制器的AMP_Assoc结构。然后,它将从远程设备接收到的AMP_Assoc结构传递到其本地AMPPAL,并向其发出信号,以开始物理发现和连接过程。在支持HCI的设备中,这是通过HCI_Create_Physical_Link命令和HCI_Write_Remote_AMP_ASSOC命令来完成的。

 AMP管理器只保存AMP_Assoc结构的内容,以便在AMP管理器操作中使用。AMP管理器不直接尝试解释AMP_Assoc结构的内容。

AMP管理器负责生成在HCI_Create_Physical_Link和HCI_Accept_Physical_Link命令中使用的物理链路句柄。当AMPPAL准备好时,它将生成一个HCI_Channel_Selected事件,这是一个使用HCI_Read_Local_AMP_ASSOC命令读取本地AMP_Assoc结构的信号。

如果没有执行相互身份验证或没有通过BR/EDR启用加密,AMP管理器不得通过AMP创建或接受物理链接。

当AMP管理器为两个设备之间的控制器类型没有选择的专用AMP密钥,且BR/EDR链接键类型不是“调试”时,AMP管理器应调用安全简单配对h2功能以生成专用AMP密钥。在后续连接时,应使用此专用的AMP密钥。

如果蓝牙设备支持多个AMP类型,则AMP管理器应第二次调用h2函数以重新生成Key_GAMP,然后再为不同的AMP类型生成专用AMP链接密钥。

当BR/EDR链路键类型设置为“调试”时,AMP管理器应直接使用Key_GAMP作为AMP的密钥,而不管AMP类型如何。密钥长度、键类型和链接键本身在HCI_Create_Physical_Link命令中传递给AMP控制器。

在接收到HCI_Channel_Selected事件并读取本地AMP_Assoc结构后,AMP管理器将发出一个AMP创建物理链接请求包,将本地AMP_Assoc结构发送到对等设备,以便使对等设备参与AMP物理链接创建。

如果对等机接受该请求,它将向其本地AMP发出HCI_Accept_Physical_Link命令,并将在AMP创建物理链接请求包中接收到的AMP_Assoc结构传递给其本地AMP控制器。对等机使用AMP创建物理链接响应包进行响应,以接受或拒绝创建物理链接的请求。

两个主机将收到一个HCI_Physical_Link_Complete事件,指示物理链接创建。

成功后,就可以开始创建逻辑连接的过程。

3.控制器ID

设备中的每个控制器都由本地AMP管理器分配一个八分位唯一标识符。从远程设备的角度来看,控制器id仅在AMP管理器协议通道的生命周期内有效。当A2MP通道断开时,远程设备上的控制器ID将无效。如果本地控制器在A2MP通道的生命周期内不可用,则在接收到发送给所有受影响的远程AMP管理器的对AMP更改通知数据包的AMP更改响应后,可以回收控制器ID。然后,可以将它分配给已添加的任何新的AMP。值0为主BR/EDR控制器保留。设备中的其他控制器应分配值从1到255。

如果AMP控制器不可用,然后在A2MP通道的生命周期内再次可用,远程AMP管理器不应假设AMP控制器将被分配给它之前分配的控制器ID。

4.控制器类型

每种类型的控制器都被分配了一个唯一的一个字节值。这些值在已指定的数字中定义。一个设备可以具有多个相同类型的AMP。

5.协议

AMP管理器协议定义了用于在两个对等AMP管理器之间交换信息的数据包的过程和格式。

 Code(1个字节)

该代码标识了数据包的类型。当AMP管理器接收到一个具有未知代码字段的包时,它应该发送一个命令拒绝包作为响应。表3.1列出了本文档定义的代码。所有的代码都在最左边的位置指定了最重要的位。

 identifier

该标识符字段可将响应与请求相匹配。请求设备设置此字段,并且响应设备在响应中使用相同的值。对于每个A200P通道,AMP经理应为发送的每个请求使用不同的标识符(这包括AMP变更通知命令)。在请求中的标识符的原始传输之后,如果随后使用了所有其他标识符,则可以回收该标识符。

将丢弃具有无效标识符的响应数据包。标识符0x00是一个非法标识符,不得在任何数据包中使用。表3.2显示了标识符字段的有效值,

 Length

“长度”字段仅表示数据包的数据字段的八进制大小,即不包括“代码”、“标识符”和“长度”字段。

 Data

数据字段的长度是可变的。代码字段确定数据字段的格式。长度字段确定数据字段的长度。

文章来源: xintiaobao.blog.csdn.net,作者:心跳包,版权归原作者所有,如需转载,请联系作者。

原文链接:xintiaobao.blog.csdn.net/article/details/120417624

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。