蓝牙广播包

来源:互联网 发布:网络销售客服工作内容 编辑:程序博客网 时间:2024/06/15 19:11

广播包有两种: 广播包 (Advertising Data)和 响应包 (Scan Response),其中广播包是每个设备必须广播的,而响应包是可选的。 

每个包都是31个字节,数据包分有效数据和无效数据两部分。因为广播包的长度必须是 31 个 byte,如果有效数据部分不到 31 自己,剩下的就用 0 补全,这部分的数据是无效的。

第一个字节:AD Len

第二个字节:AD type

第三个字节:AD Data

AD type 和 AD Data的对应关系:

1、AD type 为 0x01(标识设备LE物理连接功能)

AD data:

  • bit 0: LE 有限发现模式
  • bit 1: LE 普通发现模式
  • bit 2: 不支持 BR/EDR
  • bit 3: 对 Same Device Capable(Controller) 同时支持 BLE 和 BR/EDR
  • bit 4: 对 Same Device Capable(Host) 同时支持 BLE 和 BR/EDR
  • bit 5..7: 预留

   2、AD type :
  • 非完整的 16 bit UUID 列表: TYPE = 0x02;
  • 完整的 16 bit UUID 列表: TYPE = 0x03;
  • 非完整的 32 bit UUID 列表: TYPE = 0x04;
  • 完整的 32 bit UUID 列表: TYPE = 0x05;
  • 非完整的 128 bit UUID 列表: TYPE = 0x06;
  • 完整的 128 bit UUID 列表: TYPE = 0x07;
此时不需要AD data;


3、AD type:

  • 设备全名: TYPE = 0x08
  • 设备简称: TYPE = 0x09
AD data:自定义的设备名字(字符串)


4、AD type 为 0x0A(TX PowerLevel)

AD data部分是一个字节,表示 -127 到 + 127 dBm。


5、AD type 为 0x11(TX PowerLevel)

AD data也是 Flag,每个 bit 表示一个功能:

  • bit 0: OOB Flag,0 表示没有 OOB 数据,1 表示有
  • bit 1: 支持 LE
  • bit 2: 对 Same Device Capable(Host) 同时支持 BLE 和 BR/EDR
  • bit 3: 地址类型,0 表示公开地址,1 表示随机地址

6、AD type 为0x12(外设(Slave)连接间隔范围)

AD data中定义了 Slave 最大和最小连接间隔,数据包含 4 个字节:

      • 前 2 字节:定义最小连接间隔,取值范围:0x0006 ~ 0x0C80,而 0xFFFF 表示未定义;
      • 后 2 字节:定义最大连接间隔,同上,不过需要保证最大连接间隔大于或者等于最小连接间隔。

 还有其他的AD type和对应的AD data,具体情况见:Core Specification Supplement v6.0中Data Type Specifcation的具体说明。

举个例子:

const u8tbl_advData[] = {0x05, 0x09, 'z', 'z', 'x', 'h',}

第一个字节是数据长度,第二个字节0x09表示设备简称,后面的就是设备名





原创粉丝点击