蓝牙ibeacon协议样本.docx
《蓝牙ibeacon协议样本.docx》由会员分享,可在线阅读,更多相关《蓝牙ibeacon协议样本.docx(6页珍藏版)》请在冰豆网上搜索。
蓝牙ibeacon协议样本
蓝牙ibeacon协议样本
蓝牙nibeacon协议本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
11.蓝牙的六种设备状态待机状态(standby):
:
设备没有传输和发送数据,并且没有连接到任何设备广播状态(Advertiser):
:
周期性广播状态扫描状态(Scanner):
:
主动寻找正在广播的设备发起链接状态(Initiator):
:
主动向扫描设备发起连接。
主设备(Master):
:
作为主设备连接到其它设备。
从设备(Slave):
:
作为从设备连接到其它设备。
22.蓝牙的五种工作状态准备(standby)广播(advertising)),IInbeacon使用该状态本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
1)ConnectableUndirectedEventType(可连接无定向广播)2)ConnectableDirectedEventType(可连接定向广播)3)ScannableUndirectedEventType(可扫描无定向广播)4)Non--connectableUndirectedEventType(不可连接无定向广播)监听扫描(Scanning)(Initiating)已连接(Connected)33.蓝牙的ProfilecCharacteristic:
Characteristic特征值,主从机的通讯全是通过cCharacteristic来实现的,能够理解为一个标签,通过这个标签能够获取或者写入想要的内容;UUID:
:
统一识别码我们刚才提到的Service和和Characteristic,都需要一个唯一的DUUID来标识。
本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
:
1)Advertising_Interval_Min2)Advertising_Interval_Max,3)Advertising_Type,4)Own_Address_Type,5)Direct_Address_Type,6)Direct_Address,7)Advertising_Channel_Map,8)Advertising_Filter_Policy9)AdvertisingData10)ScanReponseDataAdvertisinginterval下首先介绍一下Advertisinginterval(广播时间间隔):
:
在所有的非定向广播事件中,两个相邻的广播事件的时间间隔(T_advEvent)为:
T_AdvEvent=advInterval+advDelay,,对于“可扫描非定向广播”和“不可连接非定向广播”这两种类型,该值应不小于100ms(),对于“可连接的非定向广播”。
本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
yadvDelay是是LinkLayer(链接层)分配的一个伪随机数,它的范围为00--10ms参数Advertising_Interval_Min和Advertising_Interval_Max就是用于调整adlvertisinginterval的,,这里设置一个上限值和下限值,目的是希望让控制器根据其工作情况来动态调整合适的广播包发送频率。
Advertising_Interval_Min非定向广播包的最小广播间隔。
范围:
0x0020--0x4000默认值:
N=0x0800()Time=N*时间范围:
Advertising_Interval_Max44.蓝牙连接过程四种设备类型:
:
lCral主机(常作为tclient端):
:
如手机,PClPeripheral从机(常作为eService端):
:
如心率计,血糖计rBroadCaster广播者:
:
广告发送者,不是可连接的设备rObserver观察者:
:
扫描广告,不能够启动连接本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
连接过程:
:
Peripheral从机开启广播;lCentral扫描从机(Peripheral)广播;lPeripheral接收到lCentral的扫描请求lPeripheral向lCentral;发送扫描回应数据;lCentral向向lPeripheral发起连接;开始通信。
广播交互过程:
:
蓝牙设备状态切换图:
:
本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
55.蓝牙设备包结构蓝牙设备((BLE))有有5种工作状态,其中一种是Advertising,,IBeacon设备就工作在这种状态。
射发射BLEPacket时,除了CRC以外的其它部分均从小端开始而传输,而CRC则从大端开始传输是。
设备地址是BLEPacket中的一个重要部为分,协议规定了设备地址的长度为48bit,地址规范不再赘述。
BLE将将40个物理信道中的3个个为作为Advertising信道,分别是0,12,39,其对为应索引号为37,38,39。
本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
蓝牙数据包格式包的说明BLEMAC层的包格式如上图所示,其中Preamble用于同步发射机和接收机的载波频率为和时钟,长度为8bit。
在Advertising模式中,Preamble取值为10101010b。
Advertising模模的式下的AessAddress域的取值为0x8E89BED6。
PDU域即BLEPacket的协议数据单元,为其基本格式为16bitHeader加上0~37byte的的Payload。
Header中包含了Length域用于指示Payload的长度,Type域域示则用于指示PDU。
的类别。
对于于IBeacon使用的ADV_INDPDU,而言,Payload中的前6个byte是发射机的设备地址,其后则是上层协议的数据。
CRC域由PDU计算得到。
本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
数据处理流程AdvertisingPacketPDU的比特流处理流程主要包括两步,算第一步是计算PDU的的CRC;做第二部是做DataWhitening,即进行扰码操作(scramble),通过将PDU的数据比特与伪长随机序列进行模二和消除代调制序列中的长0长或长1序列,这些序列会造成接收机的直流偏执,影响信号接收。
IBeacon协议持支持IBeacon的硬件设备持续送发送AdvertisingPacket,为附近的移动应用提供环境信息。
IBeacon发送的数据主要包括三个主要字段,分别是:
UUID:
是一个128bit的序列。
Major:
16位无符号整数,,为取值为0~65535,,的描述不同层级下的IBeacon设备。
Minor:
16位无符号整数,,为取值为0~65535,,的描述不同层级下的IBeacon设备。
RSSI:
一个用于参考的RSSI值值,是距IBeacon设备1m处测得的IBeacon发射信号的信号强度;;。
一般而言,接收设备能够测距得接收信号的信号强度,根据距IBeacon1m处和接收处的信号强度值以及信号强度——本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
距离模型,我们能够估算出接收设备距IBeacon的距离,从而获得一个相对粗粒度的环境信息。
tIBeaconPacket结构PDU域即BLEPacket的协议数据单元,其基本格式为(16bitHeader)+(Payload(2-37))ADV_INDPDU的的Payload包括两部分,分第一部分AdvA是发射机的MAC地址,第二分部分AdvData则是上层数据。
,协议规定,AdvData是由多个AdvertisingDataStructure构成的,在每个ADStructure中:
第第1个字节用于声明该ADStructure剩余部分的长度;;第第2个字节用于声明该ADStructure的类型;;剩余字节则是根据与类型相关的数据;;本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
IBeacon的的AdvData个包含了两个ADStructure:
个第一个Structure为0xxA,02,剩余长度,中其中01该指示该Structure的类型为FlagStructure,而1A则为具体的Flag集合的值。
个第二个Structure为为1aff4c000215...,,中其中ff指示该Structure的类型为制造商声明数据有,即其格式应有IBeacon,协议声明,004c则是苹果公司标识,BLE协议规定这两字节应为制造商标识。
的之后的0215...即是上层的IBeacon协协的议声明的数据了,包含了上面提到的UUID,,Major,Minor以及RSSI。
本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
如图中抓包所示:
:
Address均为0x8E89BED6。
2.PDUBLE协议规定PDU的长度为2~39字节,其中前两个字节是PDU的的Header,剩余字节为PDU的的Payload。
.Header,IBeacon使用的AdvPDU的类型是固定的,即ADV_IND;Type:
域值为0;TxAdd:
IBeaconMacAddress,的类型,1表示RandomAddress,,0表示PublicAddress。
RxAdd与与TxAdd相似,指示了接收设备的地址类型,但是在IBeacon的的Payload中并没有接收端的地址数据,因此这一位是不用的,为根据协议应将其设为0,与其它RFU位相同。
PDU-Length域长6bit,指示了Payload,的字节数,IBeacon的的Payload有有36个字节。
Payload,IBeacon的的Mac地址,即AdvA,其长度为6byte;IBeacon的数据域AdvData,其长度为30byte;3.CRC,CRC根据PDU的内容计算得到4.AdvData部分的结构IBeacon的的个第二个ADStructure结构如下:
1.第一个字节1A表示了其剩余部分的长度,本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
2.第二个字节FF表示了该Structure的类型为ManufacturerSpecificData,即由制造商规定的数据,BLE协议规定该类型的Structure的开始两个byte为制造商标识。
3.剩余的部分则是由IBeacon协议定义的数据。
5.IBeacon协议定义的业务数据结构1.0215是是IBeaconHeader,02是是flags,15是是payload的长度。
2.Beacon的的Payload(21字节):
..16byte是是UUID,..2byte
(0001)是Major..2byte
(0002)是Minor;..1byte(C5)是RSSI,RSSI是用补码表示的,这里的值是-59。
数据包总体结构描述BLU:
PREAMBLE(
(1)ACESSADDRESS(
(4)PDU((2-39)CRC
(3))PREAMBLE:
用于同步发射机和接收机的载波为频率和时钟,长度为8bit;ACESSADDRESS:
针对Advertising包的是是:
0x8e89bed6.(固定的,数字信道。
通过地址是就知道这是adv包,同一频道区分不同通讯设备的);本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
PDU数据段:
HEADERPAYLOADPDU-HEADER:
Type
(6))TxAdd
(1))RxAdd
(1))PDU-Length
(8))Type数据报类型:
ADV_IND广播能够连接的设备。
说明自己是能够被连接的,广播中带有自己的地址ADV_DIRECT_IND:
用来向特定的设备建立连接。
ADV_NONCONN_IND:
个包用来广播信息SCAN_REQSCAN_RSPCONNECT_REQPAYLOAD:
地址(6字节)ADSTRUCTURE1ADSTRUCTURE2本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
ADSTRUCTURE1:
LengthTType(flag)TTypeVValue变长数据(ibeacon为为00)Length:
ADSTRUCTURE1包长度TType(flag):
:
类型TTypeVValue:
类型值ADSTRUCTURE2:
LengthTTeype(flag)(ff指明为制造商)TTypeVValueIBEACONLength:
ADSTRUCTURE2包长度TType(flag)f:
0xff为制造商标识TTypeVValue:
制造商值IBEACON:
本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
UUID(16字节)Major(2字字节)Minor(2字节)RSSI(1字节)UUID:
表示设备的唯一标识1RSSI:
1米距离的参考参考公式:
:
RSSIc=RSSI--10nlg(d);说明I:
RSSI为无线收发节点相聚11米时接收节点接收到的无限信号强度IRSSI值,,cRSSIc为接收点信号强度,nn为经验值。
名词:
IRSSI表示强度接收的信号强度指示,无线发送层的可选部分,用来判定链接质量,以及是否增大广播发送强度。
本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。
文档如有不当之处,请联系本人或网站删除。
NIBEACON业务流程。
内容仅供参考