蓝牙Beacon格式详解

蓝牙Beacon格式详解

目录

蓝牙Beacon格式详解

广播帧格式:

广播帧数据字段格式:

各大公司自定义beacon帧格式:

各大公司向Bluetooth SIG申请的16bit UUID:


本文重点在结合Bluetooth官网spec和几个例子来使beacon帧格式更加容易被理解。

广播帧格式:

首先beacon是蓝牙BLE广播包的一种,蓝牙广播帧格式如下:

蓝牙Beacon格式详解_第1张图片

PS:其实BLE数据帧除了报头字段和数据字段定义与广播帧不同之外,前导/接入地址/长度/校验格式均相同。

广播帧数据字段格式:

数据字段最长为37字节:6字节的广播设备地址 + 31字节广播数据(AD Structure1 + AD Structure2 + ........ + AD Structure N)。

广播数据的格式如下:AD Structure1 + AD Structure2 + ........ + AD Structure N,最长31字节。

蓝牙Beacon格式详解_第2张图片

AD Structure的格式:Length(1字节)+ AD Type(1字节)+ AD Data(Length - 1)。

AD Type的类型定义:https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/

每个AD Type对应的AD Data的格式在《Core Specification Supplement》文档中有介绍,下载地址:https://www.bluetooth.com/specifications/bluetooth-core-specification/

其中有两种AD Type可以被用来自定义beacon帧,分别是一个是0xFF,另外一个是0x16。

0xFF «Manufacturer Specific Data» Bluetooth Core Specification:Vol. 3, Part C, section 8.1.4 (v2.1 + EDR, 3.0 + HS and 4.0)Vol. 3, Part C, sections 11.1.4 and 18.11 (v4.0)Core Specification Supplement, Part A, section 1.4
0x16 «Service Data - 16-bit UUID» Core Specification Supplement, Part A, section 1.11

各大公司自定义beacon帧格式:

使用AD Type为0xFF来定义beacon的公司:苹果公司的ibeacon,Radius Network的AltBeacon。

使用AD Type为0x16来定义beacon的公司:谷歌公司的Eddystone,小米公司的mibeacon。

苹果ibeacon的AD Structure:

蓝牙Beacon格式详解_第3张图片

小米mibeacon的AD Stucture:https://iot.mi.com/new/doc/embedded-development/ble/ble-mibeacon

   AD Length + Type(0x16)+ 16bit Service Data UUID(0xFE95,小米申请的UUID)+ Frame Control(2字节) + Product ID(2字节) + Frame Counter (1字节)+ ......

 

各大公司向Bluetooth SIG申请的16bit UUID:

https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit%20UUID%20Numbers%20Document.pdf

其中百度(0xFDC2,0xFDC3),小米(0xFDAB,0xFDAA,0xFE95),alibaba(0xFE3C),nordic(0xFE59,0xFE58

 

 

你可能感兴趣的:(蓝牙BLE,物联网,蓝牙,蓝牙,广播,ibeacon)