蓝牙4 ibeacon协议共13页Word格式文档下载.docx
- 文档编号:15163391
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:10
- 大小:2.64MB
蓝牙4 ibeacon协议共13页Word格式文档下载.docx
《蓝牙4 ibeacon协议共13页Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《蓝牙4 ibeacon协议共13页Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
1.6从设备(Slave):
作为从设备连接到其他设备。
2.蓝牙的五种工作状态
2.1准备(standby)
2.2广播(advertising),Ibeacon使用该状态
1)ConnectableUndirectedEventType(可连接无定向广播)
2)ConnectableDirectedEventType(可连接定向广播)
3)ScannableUndirectedEventType(可扫描无定向广播)
4)Non-connectableUndirectedEventType(不可连接无定向广播)
2.3监听扫描(Scanning)
2.4发起连接(Initiating)
2.5已连接(liá
njiē)(Connected)
3.蓝牙(lá
)的Profile
3.1Characteristic:
Characteristic特征值,主从(zhǔcó
ng)机的通讯全是通过Characteristic来实现的,可以理解为一个标签,通过这个标签可以获取或者写入想要的内容;
3.2UUID:
统一识别码我们刚才提到的Service和Characteristic,都需要一个唯一的UUID来标识。
3.3与广播相关可设置的参数有:
1)Advertising_Interval_Min
2)Advertising_Interval_Max,
3)Advertising_Type,
4)Own_Address_Type,
5)Direct_Address_Type,
6)Direct_Address,
7)Advertising_Channel_Map,
8)Advertising_Filter_Policy
9)AdvertisingData
10)ScanReponseData
Advertisinginterval
首先介绍一下Advertisinginterval(广播时间间隔):
在所有的非定向广播事件中,两个相邻的广播事件的时间间隔(T_advEvent)为:
T_AdvEvent=advInterval+advDelay
advInterval必须是0.625ms的整数倍,并且范围在20ms-10.24s之间,对于“可扫描非定向广播”和“不可连接非定向广播”这两种类型,该值应不小于100ms(即至少要160个0.625ms),对于“可连接的非定向广播”该值可设置的范围为20ms-10.24s。
advDelay是LinkLayer(链接层)分配的一个(yīɡè
)伪随机数,它的范围为0-10ms
参数(cānshù
)Advertising_Interval_Min和Advertising_Interval_Max就是(jiù
shì
)用于调整advertisinginterval的,它们通常是以0.625ms为单位的,这里设置一个上限值和下限值,目的是希望让控制器根据其工作情况来动态调整合适的广播包发送频率。
Advertising_Interval_Min非定向广播包的最小广播间隔。
范围:
0x0020-0x4000
默认值:
N=0x0800(1.28秒)Time=N*0.625ms时间范围:
20ms-10.24sAdvertising_Interval_Max
4.蓝牙连接过程
四种设备类型:
Cnetral主机(常作为client端):
如手机,PC
Peripheral从机(常作为Service端):
如心率计,血糖计
BroadCaster广播者:
广告发送者,不是可连接的设备
Observer观察者:
扫描广告,不能够启动连接
连接过程:
Peripheral从机开启广播;
Central扫描从机(Peripheral)广播;
Peripheral接收到Central的扫描请求
Peripheral向Central发送扫描回应数据;
Central向Peripheral发起(fāqǐ)连接;
开始(kāishǐ)通信。
广播(guǎngbō)交互过程:
蓝牙设备状态切换图:
5.蓝牙(lá
)设备(shè
i)包结构(jié
gò
u)
蓝牙设备(BLE)有5种工作状态,其中一种是Advertising,IBeacon设备就工作在这种状态。
发射BLEPacket时,除了CRC以外的其它部分均从小端开始传输,而CRC则从大端开始传输。
设备地址是BLEPacket中的一个重要部分,协议规定了设备地址的长度为48bit,地址规范不再赘述。
BLE将40个物理信道中的3个作为Advertising信道,分别是0,12,39,其对应索引号为37,38,39。
5.1蓝牙(lá
)数据包格式(gé
shi)
5.2包的说明(shuōmí
ng)
BLEMAC层的包格式如上图所示,其中Preamble用于同步发射机和接收机的载波频率和时钟,长度为8bit。
在Advertising模式中,Preamble取值为10101010b。
Advertising模式下的AccessAddress域的取值为0x8E89BED6。
PDU域即BLEPacket的协议数据单元,其基本格式为16bitHeader加上0~37byte的Payload。
Header中包含了Length域用于指示Payload的长度,Type域则用于指示PDU的类别。
对于IBeacon使用的ADV_INDPDU而言,Payload中的前6个byte是发射机的设备地址,其后则是上层协议的数据。
CRC域由PDU计算得到。
5.3数据处理流程
AdvertisingPacketPDU的比特流处理流程主要包括两步,
第一步是计算PDU的CRC;
第二部是做DataWhitening,即进行扰码操作(scramble),通过将PDU的数据比特与伪随机序列进行模二和消除代调制序列中的长0或长1序列,这些序列会造成接收机的直流偏执,影响信号接收。
IBeacon协议(xié
yì
)
支持(zhīchí
)IBeacon的硬件(yì
nɡjià
n)设备持续发送AdvertisingPacket,为附近的移动应用提供环境信息。
IBeacon发送的数据主要包括三个主要字段,分别是:
UUID:
是一个128bit的序列。
Major:
16位无符号整数,取值为0~65535,描述不同层级下的IBeacon设备。
Minor:
RSSI:
一个用于参考的RSSI值,是距IBeacon设备1m处测得的IBeacon发射信号的信号强度;
。
一般而言,接收设备可以测得接收信号的信号强度,根据距IBeacon1m处和接收处的信号强度值以及信号强度——距离模型,我们可以估算出接收设备距IBeacon的距离,从而获得一个相对粗粒度的环境信息。
IBeaconPacket结构
PDU域即BLEPacket的协议数据单元,其基本格式为(16bitHeader)+(Payload(2-37))
ADV_INDPDU的Payload包括两部分,第一部分AdvA是发射机的MAC地址,第二部分AdvData则是上层数据。
协议(xié
)规定,AdvData是由多个(duōɡè
)AdvertisingDataStructure构成(gò
uché
ng)的,在每个ADStructure中:
第1个字节用于声明该ADStructure剩余部分的长度;
第2个字节用于声明该ADStructure的类型;
剩余字节则是根据与类型相关的数据;
IBeacon的AdvData包含了两个ADStructure:
第一个Structure为02011A,02,剩余长度,其中01指示该Structure的类型为FlagStructure,而1A则为具体的Flag集合的值。
第二个Structure为1aff4c000215...,其中ff指示该Structure的类型为制造商声明数据,即其格式应有IBeacon协议声明,004c则是苹果公司标识,BLE协议规定这两字节应为制造商标识。
之后的0215...即是上层的IBeacon协议声明的数据了,包含了上面提到的UUID,Major,Minor以及RSSI。
如图中抓包所示:
1.AccessAddress均为0x8E89BED6。
2.PDUBLE协议(xié
)规定PDU的长度(chá
ngdù
)为2~39字节,其中(qí
zhōng)前两个字节是PDU的Header,剩余字节为PDU的Payload。
2.1.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个字节。
2.2Payload,
IBeacon的Mac地址,即AdvA,其长度为6byte;
IBeacon的数据域AdvData,其长度为30byte;
3.CRC,CRC根据PDU的内容计算得到
4.AdvData部分的结构
IBeacon的第二个ADStructure结构如下:
1.第一个字节1A表示了其剩余部分的长度,
2.第二个字节(zì
jié
)FF表示(biǎoshì
)了该Structure的类型(lè
ixí
ng)为ManufacturerSpecificData,即由制造商规定的数据,BLE协议规定该类型的Structure的开始两个byte为制造商标识。
3.剩余的部分则是由IBeacon协议定义的数据。
5.IBeacon协议定义的业务数据结构
1.0215是IBeaconHeader,02是flags,15是payload的长度。
2.Beacon的Payload(21字节):
2.1.16byte是UUID,
2.2.2byte(0001)是Major
2.3.2byte(0002)是Minor;
2.4.1byte(C5)是RSSI,RSSI是用补码表示的,这里的值是-59。
数据包总体结构描述
BLU:
PREAMBLE
(1)
ACESSADDRESS(4)
PDU(2-39)
CRC(3)
PREAMBLE:
用于同步发射机和接收机的载波频率和时钟,长度为8bit;
ACESSADDRESS:
针对Advertising包的是:
0x8e89bed6.(固定的,数字信道。
通过地址就知道这是adv包,同一频道区分不同
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 蓝牙4 ibeacon协议共13页 蓝牙 ibeacon 协议 13