5.2、广播数据包报文结构 BLE 报文结构如下:
1、前导 前导是一个 8 比特的交替序列。他不是 01010101 就是 10101010,取决于接入地址的第 一个比特。若接入地址的第一个比特为 0:01010101 若接入地址的第一个比特为 1:10101010 接收机可以根据前导的无线信号强度来配置自动增益控制。 2、接入地址 接入地址有两种类型:广播接入地址和数据接入地址。广播接入地址:固定为 0x8E89BED6,在广播、扫描、发起连接时使用。数据接入地址:随机值,不同的连接有不同的值。在连接建立之后的两个设备间使用。对于数据信道,数据接入地址是一个随机值。 3、报头 报头的内容取决于该报文是广播报文还是数据报文。广播报文的报头包含 4bit 广播报文类型、2bit 保留位、1bit 发送地址类型和 1bit 接收地址类型。 广播报文类型 内核协议中定义了 7 种类型:
发送地址类型和接收地址类型 发送地址类型和接收地址类型,俗称蓝牙MAC,指示设备使用公共地址(Public Address)还是随机地址 (Random Address)。公共地址和随机地址的长度一样,都包含 6 个字节共 48 位。BLE 设备 至少要拥有这两种地址类型中的一种,也可以同时拥有这两种地址类型。具体见第6章。 4、长度 广播报文:长度域包含 6 个比特,有效值的范围是 6~37。数据报文:长度域包含 5 个比特,有效值的范围是 0~31。 广播报文和和数据报文的长度域有所不同,主要原因是:广播报文除了最多 31 个字节 的数据之外,还必须要包含 6 个字节的广播设备地址。6+31=37,所以需要 6 比特的长度域。 5、 数据(AdvData) 广播和扫描响应的数据格式如下图所示,由有效数据部分和无效数据部分组成。
有效数据部分:包含 N 个 AD Structure,每个 AD Structure 由 Length,AD Type 和 AD Data 组成。对于应用层开发,实际可见或者操作的只是有效数据部分,其格式为:Length:AD Type 和 AD Data 的长度。AD Type:指示 AD Data 数据的含义。AD Data:数据内容。 其中AD Type表示的意义,可以查看SIG标准。https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile
|