1 / 21
文档名称:

2020年低功耗蓝牙(BLE)学习记录资料.doc

格式:doc   大小:1,060KB   页数:21页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2020年低功耗蓝牙(BLE)学习记录资料.doc

上传人:读书百遍 2020/2/19 文件大小:1.04 MB

下载得到文件列表

2020年低功耗蓝牙(BLE)学习记录资料.doc

相关文档

文档介绍

文档介绍:RW_BLE_CORE记录传输信道 。包括2种物理信道:广播信道和数据信道。essAddress用于标识该信道,防止信道碰撞。ChannelMAP如下:数据帧通信蓝牙帧结构如下:Preamble:essAddress而定,假如AA的LSB(最右bit)bit为1,则前导便是10101010b,反之则为01010101b。AccessAddress:广播帧的AA为:0x8E89BED6。其它情况能够是一个32bit的随机数。AA需满足以下条件·不超过连续6个1或者0。·与广播帧的AA不同bit超过1个。·不能4byte相同。·01跳变不能超过24次·MSB6bit01跳变超过2次。以下逐个介绍PDU。一、AdvertisingChannelPDU蓝牙广播帧帧结构其中Header的帧格式如下:其中,a、广播帧类型(PDUType)分为以下几类:•ADV_IND:connectableundirectedadvertisingevent•ADV_DIRECT_IND:connectabledirectedadvertisingevent•ADV_NONCONN_IND:non-connectableundirectedadvertisingevent•ADV_SCAN_IND:scannableundirectedadvertisingeventb、Length:3~37bytes 广播帧分为很多种,其区别就是payload所代表的意义不同,以下分别对几种广播帧作分别阐释:1、ADV_INDADV_IND的payload格式如下:在广播帧帧头中的TxAdd位是广播地址的标示位:TxAdd==0:AdvA地址为公用地址;TxAdd==1:AdvA地址为随机地址。 AdvData则是广播HOST的广播数据。2、ADV_DIRECT_IND这种帧用于直接接入的广播事件。ADV_DIRECT_IND的payload帧格式如下:其中AdvA的意义与ADV_IND相同。InitA为广播发起者地址:RxAdd==0:发起者地址是公用地址;RxAdd==1:发起者地址是随机地址。注意:该帧不包含任何HOST数据。3、ADV_NONCONN_IND 用于不可接入不直达(non-connectableundirected)的网络。其payload意义与ADV_IND类似。4、ADV_SCAN_IND 用于可扫描不直达网络。Payload意义与ADV_IND类似。二、ScaningPDUsSCAN_REQ:这是扫描请求帧,处于广播状态的接收设备接收这种帧。此处,ScanA为扫描者的地址,其地址由TxAdd控制是公共地址还是随机地址。AdvA为该扫描帧的目的地址。由RxAdd控制意义。SCAN_RSP 扫描确认。处于广播状态的设备在收到扫描请求后,需要回复扫描确认帧。AdvA地址意义由TxAdd确定。ScanRspData为广播端的附带数据。三、InitiatingPDU该部分为连接发起协议。发起的帧格式仅一种:CONNECT_REQ。由发起方发送该帧,广播方接收该帧。CONNECT_REQCONNECT_REQ帧格式如下:TxAdd确认InitA地址为公共地址还是随机地址;RxAdd确认AdvA地址为公共地址还是随机地址。LLData的数据格式如下:AA:AccessAddressCRCInit:CRC校验的初始值,它应该是LinkLayer产生的一个随机值。WinSize:发送窗长度参数。transmitWindowSize=WinSize*。WinOffset:发送窗起始偏移量。TransmitWindowOffset=WinOffset*。上述两个window意义如下:Interval:确定connectinterval的时间长度。connInterval=Interval*ms。Latency:connSlaveLatency=Latency。TimeOut:connSupervisionTimeout=Timeout*10ms(100ms~32s之间),当两帧数据之间的时间间隔超过6*connInterval或者connSupervisionTimeout时,则认为连接丢失。ChM:即ChannelMAP,一共0~36个信道。LSB代表channel0,哪一个是1,则哪一个信道有效。Channel37~39保留。Hop:5~16之间的随机值,用于设置HopIncrement。用于计算不使用的信道编号。unmappedChannel=(lastUnmappedChannel+hopIncrement)mod37如果计算结果是属于保留信道,则通过下式计算:remappingIndex=unmappedChannelmodnumUsedChannel