蓝牙规范 Core v5.2 GAP 文档解读第8章 EIR数据格式

8 EIR数据格式

在通用查询、受限查询和设备发现的响应中会包含EIR(扩展查询响应)数据。

EIR数据格式如图8.1所示。数据为240 octets,由重要部分和不重要部分组成。重要部分包含一系列数据结构。每个数据结构有一个长度字段占1 octet,包含数据字段的长度值,还有一个数据字段。数据字段的前n octets是EIR数据类型,剩下的是EIR数据。非显著部分将EIR扩展到240 octets,全为0。

蓝牙规范 Core v5.2 GAP 文档解读第8章 EIR数据格式_第1张图片

EIR数据类型和定义:参见 Core Specification Supplement,Part A,Section 1

数据类型值:https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/

Data type 大分类 EIR Data type 小分类 类型值 描述
Service UUID O «Incomplete List of 16-bit Service UUIDs»  0x02 More 16-bit Service UUIDs available
«Complete List of 16-bit Service UUIDs» 0x03 Complete list of 16-bit Service UUIDs
«Incomplete List of 32-bit Service UUIDs» 0x04 More 32-bit Service UUIDs available
«Complete List of 32-bit Service UUIDs» 0x05 Complete list of 32-bit Service UUIDs
«Incomplete List of 128-bit Service UUIDs» 0x06 More 128-bit Service UUIDs available
«Complete List of 128-bit Service UUIDs» 0x07 Complete list of 128-bit Service UUIDs
Local Name C1 «Shortened Local Name» 0x08 Shortened local name
«Complete Local Name» 0x09 Complete local name
Flags C1 «Flags» 0x01 参见下表
Manufacturer Specific Data O «Manufacturer Specific Data» 0xFF Size: 2 or more octets
The first 2 octets contain the Company Identifier Code followed by additional manufacturer specific data
TX Power Level O «TX Power Level» 0x0A Size: 1 octet
0xXX: -127 to +127 dBm
Uniform Resource Identifier O «URI» 0x24 Scheme name string and URI as a UTF-8 string

 

蓝牙规范 Core v5.2 GAP 文档解读第8章 EIR数据格式_第2张图片

如果长度值设置为0,那么数据字段的字节数为0。只有在允许提前终止带标记的数据的情况下才会发生。

为了减少干扰,主机应该尽量减少EIR数据的数量,这样基带就可以使用1-slot或3-slot EIR包。这是有利的,因为它减少了干扰,并最大限度地提高了EIR包被接收到的概率。如果Host上的应用提供的EIR数据长度超过240 bytes,由Host将其限制在240 octets。

EIR数据应在查询响应状态期间发送。在选择要使用的包类型时,应该考虑使用FEC (DM1或DM3)来最大化范围。
    FEC:Forward Error Correction code,基带数据包报头使用前向纠错(FEC)编码,允许接收端进行纠错。
    DM1包:ACL包的一种,占用一个时隙,使用rate 2/3 FEC
    DM3包:ACL包的一种,最多可以占用三个时隙,使用rate 2/3 FEC。

Host应按照以下规则在EIR数据中包含设备名称:

1、设备没有设备名称

    a)没有其它数据时,Host发送name tag:长度为0、‘complete’

    b)有其它重要数据时,Host不发送name tag

2、设备有设备名称

    a)名称过长时(还有其它重要数据),Host缩减名称,并标注‘shortened’

    b)没有其它数据时,Host应最大化要发送的设备名的长度

注意:如果Host不理解给定的EIR数据类型值,它应该跳过Length octets,并寻找下一个EIR数据结构。

你可能感兴趣的:(蓝牙,协议栈)