BLE 广播报文格式

广播报文结构

一个完整的BLE广播报文由四部分组成,分别是前导码接入地址协议数据单元和CRC校验码。

Preamble 前导 Access address(接入设备) PDU CRC校验
1 Bytes 4 Bytes 2-37 Bytes 3 Bytes
  • 前导码:用来同步时序,可以是0x55或者0xAA,由接入地址的第一个比特决定。如果接入地址的第一个比特是“0”,则前导码是0x55;如果接入地址的第一个比特是“1”,则前导码是0xAA。 在广播报文里面,这一字节为0xAA。
  • 接入地址:长度为4个字节,广播报文的接入地址为0x8E89BED6
  • 协议数据单元:包含两个字节的报头和0 ~ 37字节的净荷
  • CRC校验码:长度为3个字节

PDU由Header和Payload组成

 

广播报文之PDU报头

PDU Type(协议数据类型) RFU(保留) TxAdd RxAdd Length RFU(保留)
4 bits 2 bits 1 bits 1 bits 6 bits 2 bits
  • PDU Type:PDU类型,标识广播报文的类型
  • RFU:Reserved For Future,保留位
  • TxAdd:发送地址类型,标识广播地址是公有地址还是随机地址
  • RxAdd:接收地址类型,广播报文不使用这一比特
  • Length:长度,标识净荷的长度(6 ~ 37字节)

 PDU类型

广播报文之PDU Payload

  • AdvA: 广播设备地址,分为公有地址和随机地址。
  1.   公有地址:类似MAC地址,由OUI和一个唯一的数字组成
  2.   随机地址:为了防止设备被跟踪,广播地址可以是随机的。随机地址又分为静态设备地址(Static Device Address)、私有设备地址(Private Device Address)和不可解释私有地址(Non-resolvable Private Address)。
  • AdvData:广播数据,包含N个AD Structure,每个AD Structure由Length,AD Type和AD Data组成

广播报文之CRC检验码

报文的最后是3个字节的循环冗余校验。CRC对报头、长度域以及净荷域进行计算。该CRC的计算公式如下:

CRC = x^{24} + x^{10} + x^{9} + x^{6} + x^{4} + x^{3} + x^{1} + x^{0}

 

posted @ 2024-08-26 18:02  橙橙橙Cc  阅读(553)  评论(0)    收藏  举报