BLE广播帧和BLE信标帧有区别吗

Is there a difference between a BLE broadcast frame and BLE beacon frame

我正在从 HCI 套接字接收 EVT_LE_ADVERTISING_REPORT。我想区分 BLE 信标和普通 BLE 设备(解析设备名称等)我有点困惑是所有 BLE 设备都发出信标还是不同。如果不同,那么它们的数据包格式如何?

BLE 信标帧只是 BLE 广告帧内的专用负载。寻找 BLE 信标的设备只需扫描 BLE 广告,查看每个广告,然后查看如果它们中的任何一个包含已知 BLE 信标格式的字节模式,如 iBeacon、AltBeacon 或 Eddystone。

很多 BLE 设备类型都会发出广告,通常是为了宣传 GATT 服务。但除非设备专门设计为 BLE 信标,否则大多数 BLE 设备不会发出 BLE 信标帧。信标是一种特殊类型的 BLE 设备,尽管它非常简单。

常见的 BLE 信标格式使用 BLE 服务广告(广告数据类型 0x16)或 BLE 制造商广告(广告数据类型 0xff)。然后,它们在这些数据包中包含一个字节序列,向接收者指示它们是一种特定格式。在该字节模式之后,它们有几个字节专用于唯一标识符以及数据和发射器功率校准字段。

使用制造商广告的常见信标格式包括 iBeacon 和 AltBeacon。

Eddystone 是一种使用服务广告的常见信标格式。

非信标 BLE 设备也会发出类似于 Eddystone 格式的 GATT 服务广告,但具有不同的服务 UUID,指示它们提供的特定服务。 (例如心跳监视器或智能手表配置服务。)但是,这些非信标 GATT 广告通常仅用于宣传它们的存在,而不是在广告本身内部发送数据,因此智能手机和计算机可以连接到它们并使用设备托管的更复杂的 GATT 服务交换数据。