低功耗蓝牙BLE学习记录_第1页
低功耗蓝牙BLE学习记录_第2页
低功耗蓝牙BLE学习记录_第3页
低功耗蓝牙BLE学习记录_第4页
低功耗蓝牙BLE学习记录_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

RWBLECORE记录传输信道BLE的传输信道在2.4G频段有40个channel。包括2种物理信道:广播信道和数据信道。数据帧中设置AccessAddress用于标识该信道,防止信道碰撞。ChannelMAP如下:RF0RFCttfltttF即1・口”2402MHiCh^rtritlTypwAdvtrriisiiigchannelChaniwlInchiMAdvaiFlifiinQChann«llnd«X3712404MHzData.ch^nir)el02240€MHzDutuehikMkd1—D^tachaurftel'S---11□■atacharw^l1012Advertjsng-cteiTinel脏ia2420MH?Daiiachannel11142430MHzCkvkichannel12Da.iachannels382478MHrDadagh^rwl363自Adw&rbsirvgchanrw&l胸数据帧通信蓝牙帧结构如下:LSBMSBPreamhipAccewAWtfg勺PDUCRC。ociet)(4ocieis)(2悟阍fKtetS)居octets)F用陞21L“(L弗切pjctef修rmjtfPreamble:根据AccessAddress而定,假如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蓝牙广播帧帧结构LSBMSBHeader(1Cibite)号perttieLer^tfifleidintheHeader|其中Header的帧格式如下:LSBMSBFLXJlypfRFUIxAddRxAddLengthRFU(4brts)(2brfe)(1lbit)(1bit)<6bits)<2txts)其中,a、广播帧类型(PDUType)分为以下几类:PDOTypeSgm心q尸3倒UweMDClMH岫□Q01ADVDIRECTIND00-1(]ADY时QMCUMN9011SCAN.REQChMSCANwRaP0W1<X*iNECT_R£Qcm。MrySCAMMODill-1111Reserved?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格式如下:AdvA(6oc1ats>AdvDats(0-31octets)在广播帧帧头中的TxAdd位是广播地址的标示位:TxAdd==0:AdvA地址为公用地址;TxAdd==1:AdvA地址为随机地址。AdvData则是广播HOST的广播数据。2、ADV_DIRECT_IND这种帧用于直接接入的广播事件。ADV_DIRECT_IND勺payload帧格式如下:AdM(6InitA博actetjj其中AdvA的意义与ADV_IND相同。InitA为广播发起者地址:RxAdd==O:发起者地址是公用地址;RxAdd==1:发起者地址是随机地址。注意:该帧不包含任何HOST数据。3、ADV_NONCONN_INDPa^lOiadM收(6MWtj(031ocietM用于不可接入不直达(non-connectableundirected)的网络。其payload意义与ADV_IND类似。4、ADV_SCAN_INDPiaylQadAdVAAdvDataQ31g9tx用于可扫描不直达网络。Payload意义与ADV_IND类似。、ScaningPDUsSCAN_REQ这是扫描请求帧,处于广播状态的接收设备接收这种帧。PayloadScanA隹DC归国)AdvA6octetst此处,ScanA为扫描者的地址,其地址由TxAdd控制是公共地址还是随机地址。AdvA为该扫描帧的目的地址。由RxAdd控制意义。SCAN_RSPPayloadAdvAi6octets)ScanRspData{D-31octetsi扫描确认。处于广播状态的设备在收到扫描请求后,需要回复扫描确认帧。AdvA地址意义由TxAdd确定。ScanRspData为广播端的附带数据。三、InitiatingPDU该部分为连接发起协议。发起的帧格式仅一种:CONNECT_REQ由发起方发送该帧,广播方接收该帧。1)CONNECT_REQCONNECT_RECM格式如下:inhA■6octets)AdvA16octets:1LLData(22octetsiTxAdd确认InitA地址为公共地址还是随机地址;RxAdd确认AdvA地址为公共地址还是随机地址。LLData的数据格式如下:LLDataAACRCInrtWinSizeWinOffsetIntervalLatencyTrneoutChUHopSCA(4OCtGtS)(3octets)(1octet)(2octets)[2octets)(2octets)(2octets)(5OCtOlS}(5bits)(3tits)AA:AccessAddressCRCInit:CRC校验的初始值,它应该是LinkLayer产生的一个随机值。WinSize:发送窗长度参数。transmitWindowSize=WinSize*1.25ms。WinOffset:发送窗起始偏移量。TransmitWindowOffset=WinOffset*1.25ms。上述两个window意义如下:CONMECT

REQI」F5,Adkthenr^lTfcramriWindow1CONMECT

REQI」F5,Adkthenr^lTfcramriWindow1二5rrbgq-t-trmer优,GO节wBOfl用闾砧ixn-ihH-筮dgg而审*3eriftechainedselecriLnalyiMm何*iprevifflja_e,¥i6nt_shanr!*1*t)Ad、k恬用

closecF母/94A2Mastas痴♦onLLconnection)如如*MH?"小冶"履WWcfcwQffeefsettozeroInterval:确定connectinterval的时间长度。conninterval=Interval*1.25ms。Latency:connSlaveLatency=Latency。TimeOut:connSupervisionTimeout=Timeout*10ms(100ms〜32s之间),当两帧数据之间的时间间隔超过6*conninterval或者connSupervisionTimeout时,则认为连接丢失。ChM:即ChannelMAP,一共0〜36个信道。LSB代表channelO,哪一个是1,则哪一个信道有效。Channel37-39保留。Hop:5〜16之间的随机值,用于设置Hopincremento用于计算不使用的信道编号。unmappedChannel=(lastUnmappedChannel+hopincrement)mod37如果计算结果是属于保留信道,则通过下式计算:remappingindex=unmappedChannelmodnumUsedChannelsSCA设置Master睡眠时钟精确度的最大值。对应表如下:5CAmastersCA0251ppmto60appm1151ppm怕250ppm2101ppmto150ppm3?6ppmto100ppm451ppmto7^5ppm531ppmto50ppm€21ppmto30ppm7QDpmto20ppm

四、DataChannelPDU数据信道的帧格式如下:L5BMSB(16bks)-rPayload|MIC1(32E幡}其中包括16bitHeader,长度可变的Payload,和一个信号完整性确认字段(MIC)。1、关于Header和MICHeader的数据格式如下:LLIDNE3NSNMDRFULengtnRFU(2bits)11训口喇(1&it)(3bits)(5bils.(3每个字段的意义如下:FnldnameLUD口sactipEi白件gLU口inaicaiMpaa*阵mLLPDUoranIXCotePDUooe■01bsLLDfftaPOLLCcnElTuatiocifragmentufanme&s&ae,OranEE1慎・LLDvHPOUSiaddtn«18PHmL2CAPeawg*小的2TrtgmtF阳i8.nti■ILLCflrWtiJPDUNESNMillExp*dBdtunttorSNS*quine«NumbfrMDg.Pa总LenigUiiTM5时MdihtliM柏ocWt,卓MP*y1o«daMMICfincMlM.MIC字段使用的时候,有两个条件:1、不能使用于非加密的数据帧;2、数据帧payload长度不能为0。字长为4byte。2、关于PayloadPayload分为两类,LLDataPDU和LLControlPDU(LLID==11b)。LLDataPDU里面又分为两类,一类是完整数据帧或帧碎片起始帧(LLID==10b),另一类是帧碎片(LLID==01b)。其中,帧碎片帧的帧长度可以为0,而完整(起始)帧的长度不可以为0。下面具体介绍LLControlPDU:LLControlPDU的帧格式如下:其帧长度不能为0,其中包含两个字段:Opcode和CtrData。

Opcode用于确定控制帧类型:OpcodeControlPDUNam*OkOOLL_C0NNECT10N_UPDATE^raEQOmOILljCHANN£L_MAP_R£QOmO?LILTERMINATEINO0⑼3LL_EMC_RFQOjiMILL_tNC._RSPILLSTART,ENCREOQkWLL_START_EWC_RSP0x(17LL_UNKNOWN_RSPILLFEATUREREQIL_FEATJRE_RSPOKHALL_PAJSL_LNU_RfcUQxOBLLpaajseencrspOfcOCLl_VERStON_INDOmODUL_REJECT_WOmOF-OmFFReservedforFilhjreIJ5e假如收到的LLCPDLa式不支持或者是无用帧,则回复LL_UNKNOWN_RSPPDU此时的Type字段需设置成收到的无用的opcode。LL_CONNECTION_UPDATA_REQ该帧的帧格式如下:QtrDataWinSizeWiiiOFfeelIlnitCTvalLatencyTimeoutInstant(1octet)(2octets(2octels)(2octets)Qoctets](2octeb)这些信息的意义在下一章的四中有详述。LL_CHANNEL_MAP_REQCtrl31atiChM(5octete)Insiant(2octets!LL_TERMINATE_IND:CtrOataErrorCode(1octet)这个ErrorCode在蓝牙协议中有具体制定意义。[Vol2PartD]LL_ENC_REQ:CtiDulaRandEDIVSKDmIVm(Boctets)(2ociets)(6octets)(4octets)和加密相关的请求帧LL_ENC_RSP:CtrDmWSKDsIVs(ftocl«tsi(4和加密相关的回复帧LL_START_ENC_REQ:没有CtrData字段LL_START_ENC_RSP:没有CtrData字段LL_UNKNOWN_RSP:CtrDataUiikncwnType

(1octel)LL_FEATURE_REQ:CllOdld(8cicters)LL_FEATURE_RSP:CtrDaiaFeature(8(kS1”LL_PAUSE_ENC_REQ:没有CtrData字段LL_PAUSE_ENC_RSP:没有CtrData字段LL_VERSION_IND:ClrOataVersNi(1octet)Carnpld(2octets!Sub'/ersNr(2OCtetSl关于蓝牙通信协议的理解一、时钟要求Active状态下小于土50ppm。SleepMode下小于土500ppm。二、设备过滤除了仅支持不可连接的广播系统(non-connectableadvertising),其他模式均需支持设备过滤。广播、扫描、连接发起均具有各自独立的过滤机制。如果芯片不支持这几种模式的话,那就可以不支持设备过滤。设备过滤是为了尽量减少不必要的数据通信。设备过滤时需要具备一个白名单,白名单内容包括不过滤设备的地址和地址类型(公共或随机)。白名单内容由HOST设置。以下对各种过滤模式作一个介绍:1、广播过滤支持过滤方式如下,一次仅支持一种方式:广播设备仅处理来自白名单的设备的扫描、连接请求。广播设备处理一切设备的扫描、连接请求。(复位值)广播设备处理所有设备的扫描请求,仅处理白名单的连接请求。广播设备处理所有设备的连接请求,仅处理白名单的扫描请求。2、扫描过滤支持过滤方式如下:扫描设备仅处理来自白名单设备的广播帧。扫描设备处理一切设备的广播帧。假如广播方已经过滤该扫描设备的话,通信不能成功。3、发起过滤支持过滤方式如下:被发起设备处理来自白名单内所有设备的连接发起请求。被发起设备忽略白名单,仅处理host给出设备的连接发起请求。

三、非连接状态简述1、standbyStandby是复位后的芯片初始状态,由它可以进入广播、扫描和连接状态。2、advertisingadvertisingevent将advertisingevent将«aconnectableundirected白.电ntagnnectabldirectedeventanon-connectableundirectede^entascannableundirectedevent第一帧广播帧应该在channelindex中的最低的广播信道发送。广播事件是否有回复帧由广播帧类型决定,具体如下表:AdvdrtisinQEvftniTyp»PDUUE«dinth泳aetvertifing*vtmttyp»Allowablerespcn&ePDUsforSCAMNEGCUNNtCT_RtCCcnnectableuncli-rftcTAdADV_IMDYESYESConnectableDirectadItvenlADV_DIR£CTJNDNOYES*Won-canriBCIfltoleUr>direcie<JEvenrADV_NONCOJN_INDNONOSeamaNeUndi-n&CfedEventADV_5CANJNDYESNO当收到错误的返回帧时,广播端会在下一个广播信道发送广播帧,或直接停止广播事件。广播事件间隔必须是625us的倍数,范围在20ms~10.24s,其设置方式如下:T_advEvent=advInterval+advDelayscannableundirected和non-connectableundirected事件,advInterval长度必须大于100ms;connectableundirected事件,advInterval长度必须大于等于20ms。advDelay是0~10ms的伪随机数。连续广播帧发送示意图如下:AdmrEig

SlatsFtCftae41白小毛村足"剪曰/历施加由甘力24,疗所疗已打效也e曲DelayConnectableUndirectedEventTypeINDADV_INDADV_IND4他Advids=INDADV_INDADV_IND4他Advids=38£IQ-37Aam^Hi&inq

e*erw

cosedmiijdGCANFEQR5P11m*Aam^Hi&inq

e*erw

cosedmiijdGCANFEQR5P11m*,g3Adundx=1W<■SjTJI由二,鼻口产rtimng

0V9rt

a^irteaFwe42温加*收曲gty皿注隔EPD(J5wart

rtownMjRTKngwart

rtown尾呻尸4R门nnited.Thf?.jrid'j^rterievpr/mffiSf;4M_RFC与词&RANJFWPPTlt太htfie(™由旧otan口依旧g”金时。«VgIpn烟」HDAA出«VgIpn烟」HDAA出2ngngMwlisr^

evrn:

denedFjyure44,CtxwpecVdWec/加力代fed甘上日加♦四*t*Ew加WCAf$_REQuridSCANRSPpudcefsdttheendof加atfucrfwrisfcrcntHgurs45Comecfc心teundirectedaWe欣geventduringiWwchaCONNLCl_Rk(JPDL/后ADWJMDJO/JNDMf.tdxXZ2I.一AcNr.iia=tewnrsTEaHeJt如vcrtoFewwdcaedrecerved如图4.5接收到CONNECT_RE0后,广播方便退出广播状态,进入Slave状态。ConnectableDirectedEventType3CIRECT

JNDADVDREC1

JNO心DfiEGT

」ND5CIRECT

JUD375rrs%£VEfthi咋

CwN!Fque4&CtxmecfaWed/zecft?d球相ntfypeShoniyotf/ErtranflFVUsNote:ConnectabedirectedadvertisingIsdesignedforcasesinwEchfastiLink网眼3CIRECT

JNDADVDREC1

JNO心DfiEGT

」ND5CIRECT

JUD375rrs%£VEfthi咋

CwN!Fque4&CtxmecfaWed/zecft?d球相ntfypeShoniyotf/ErtranflFVUsNote:ConnectabedirectedadvertisingIsdesignedforcasesinwEchfastiLink网眼30g肌理皿电®第则祝就BONG网3ItIsapo'^andb日ndwidihintensiveadvertisngschem©thatshouldonlybeused“henfmskcgnn应[:tiun&宜tupisrequired.c)ScannableUndirectedEventTypeAOV

SCAN

州口SCANINDADV

SCANINDM10msi10msAdvide-37AiAfclM38耻!、电拿ing

ev®nlAdj/ortisingtk»wiFrjfrp47-8加幅#f/nrfr^nfprf介川由我ngew^\twrihorVyRDI/sAW=

5CA<

■OAW.5cAM『1=^,!DffvAcv>ok■»■37|LafHnK.Hp鸟iwnt

MiiMEFkjtrre4,9:Srannati/ew>d/它cfed0raeyenfMffiSCANREGandSCANRSPPDLfsn加日myddfeof丽xhfertising已飞川3三知及INCAd*.idl=-27三l:gMti_出=/*一中》用Jcned机,SCAN,冏Ue«nr:

ttriAdF<gnrc49iJcannciXew。reefed的e双犯jevenf'/rtT?SCA/J_f?£Gand€GAN_RSPPOUsatftieeixJH皿advw^sr'Q丑史值d)Non-connectableUndirectedEventType1、scanning检测状态是用来监听广播帧的,其状态由HOST控制,分为主动扫描和被动扫描。扫描状态下有两个参数scanWindow、scanInterval用于设置一次扫描的时间。扫描时间不能长与10.24s,scanWindow<scanInterval。被动扫描(PassiveScanning:只接收帧,不发送帧。主动扫描(ActiveScanning):监听广播帧,根据广播帧格式,回复相应帧。ADV_IND/ADV_SCAN_IND->SCAN_REQADV_DIRECT_INDPDU/ADV_NONCONN_IND不回复SCAN_REQ扫描需进行退避操作。具体看文档吧,就不贴进来了。2、initiatinginitiating没有channelindex的限制。当收到一个在过滤白名单内的ADV_IND或ADV_DIRECT_IND,发起者将会发送一个CONNECT_REQ给广播方。发送完CONNECT_REQ后退出发起状态,进入连接状态。四、连接状态简述:当发起者发送CONNECT_PDlM者广播方收至ijCONNECT_REQ贝U认为连接被创建,但此时并非认为已经建立连接。只有当正式开始数据通信后,才认为连接已经被建立。连接建立后,连接中有两个角色:Master和SlaveMaster主控connectionevent的时序。每次connectionevent便是Master和Slave的一次同步结点。1、连接事件(ConnectionEvents一次连接时间,使用同一个channelindex。每次连接至少进行一次数据传输。Slave端在接收到来自Master的数据帧后,无论CRC是否正确,均需要回复数据,除非多次连续CRC不正确。Master也是不管Slave发过来的帧是否正确,均需回复数据,没有除非。无论CRC是否正确,我们都认为Header是对的。Master收不到来自Slave的数据,则关闭connectionevent。Master和Slave都能关闭此次connectiono连接事件持续时间长度由conninterval和connSlaveLatency决定。每次连接事件的起始点称作anchorpoint。在anchorpoint,Master开始发送数据,Slave开始接收数据。conninterval便是本次连接的持续时间。Master必须确保本次连接时间在下次anchorpoint之前间隔T_IFS的时间关闭。conninterval长度必须是1.25ms的倍数,长度在7.5ms〜4.0s不等。conninterval由发起者通过CONNNECT_REQ传送给广播方。connSlaveLatency是Slave端允许的监听延时时间,其长度范围如下:0〜((connSupervisionTimeout/conninterval)-1)且必须小于500。也而是说,假如connSlaveLatency=0,贝USlave需要在每个anchorpoint时刻监听。没收至U设置connSlaveLatency的帧时,亦如是。Master和Slave均有一个I6bit的计数器connEventCounter每有一次connectionevent,计数器就加一,假如溢出则循环。它是用于LinkLayer作同步时用。Slave在等待connSlaveLatency时,该计数器亦计数。2、连接超时(SupervisionTimeout)蓝牙系统为了检测连接丢失,便设置了一个SupervisionTimeout计数器TLLconnSupervision。每次接收到数据帧,则计数器清零。SupervisionTime超过以下几个范围则认为超时:•大于6*conninterval,大于connSupervisionTimeoutconnSupervisionTimeout为10ms的倍数,范围是100ms〜32s,并且小于(1+connSlaveLatency)*conninterval。Timeout以后,设备停止发送,进入Standby状态,并且上报中断。3、发送窗(TransmitWindow)TransmitWindow的信息包含在CONNECT_REQh传送给发起者。发送窗起始是在收到CONNECT_RE0后transmitWindowOffset+1.25ms,transmitWindowSize定义发送窗的宽度。transmitWindowOffset范围1.25ms的倍数,0ms〜conninterval。transmitWindowSize范围1.25ms的倍数,1.25ms〜10ms|conninterval-1.25ms。4、主设备(MasterRole)建立连接后,发起的一方成为Master。连接状态建立以后,Master重新设置TLLconnSupervision,LinkLayer确认连接已经建立。随后Master在transmitwindow时间内开始发送第一个数据帧,Master的第一帧长度可以超过

transmitwindow。Master决定第一个anchorpoint,下一个anchorpoint=conninterval+firstanchorpoint。以下是一个例子:Fkjutf4.12:/Jeter'swei/vcoLLconnectionsetupsettozero5、从设备(SaveRole)建立连接后,广播的一方成为SlaveSlave一方也相同,重新设置TLLconnSupervision,LinkLayer确认连接已经建立。连接建立后的第一帧,无论CRC!否收对,都把它作为第一次连接事件的anchorevent。假如第一个transmitwindow没有收到数据帧,则准备在下一个transmitwindow下接收数据,而此时事件同步计数器connEventCount亦加一。Figure413:磁足dosingLLconnectionsetupinthesecondLLconnectionevent6、关闭连接事件(ClosingConnectionEventsHeader中的MD位标识是否该次事件之后还有数据发送。假如MD置位,则Master接着发,Slave接着收。任何一方收不到对方的帧了,均关闭连接事件。连续两次收到数据CRC^对,也关闭连接事件。总结如下:MD=0MD=1Slav4MD^OMuster缙wllnu<uwidjrimlmrpacketekningiht?eoniwc-(ioneventSlawdoesnotneedtohslen曲Efsendingit$pnckfllMasl^riridryconTiriueUh。conriec-t记mcm酿密心gslwxildl1招lerialterendingitspacketMD-1Mastermaycontinuellheconnectionevent.SlaveshouldlislenaftersendingitspacketMasterrruycontinueCheconhec-tfOiieventSlaveshouldllistenaftersendingrtspacket.7、发送窗拓宽(WindowWidening)由于发送端接收端都存在晶振频偏,所以可能会导致Slave端anchorpoint不同步,因此Slave每次接收完一个数据帧,均需同步一次anchorpoint。接收端需要根据发送端的频偏MasterSCA和接收端频偏SlaveSCA来计算接收端的接收窗拓宽参数,以保证数据成功接收。计算方式如下:windcwWid^ng-((rra^terSCA+ff/akeSC(A)■11000000)'f^eS/ncetas-tAnchcr其值应小于((conninterval/2)-T_IFSus)。假如到达这个值,则认为连接丢失。8、信道列表选择(DataChannelIndexSelectionMaster端需要给此次连接的信道分类:使用信道和不使用信道。使用信道最少为两个。信道分类由HOST产生。而Slave的ChannelMap通过CONNECT_RE㉚接收到本地。连续的connectionevent每次需要获取两个参数unmappedChannel和lastUnmappedChannel。前者是此次连接没有使用过的信道列表,后者是前一次连接未用过的信道编号。未用信道编号计算方法如下:unmappedChannel=(lastUnmappedChannel+hopincrement)mod37假如unmappedChannel为usedChannel的话,则此次的ChannelIndex贝肝艮据这个unmappedChannel彳导至U该次connection所使用的Channelo假如unmappedChannel为unusedChannel,则根据下面公式计算得到一个remappingindex。remappingindex=unmappedChannelmodnumUsedChannels总结如下图:

9、确认机制和数据流控制(AcknowledgementandFlowContro|数据的确认依靠transmitSeqNum(SN)和nextExpectedSeqNum(NESN来控制。NESN用于确认前一帧是否接收正确,是否需要重发。刚刚进入连接状态,SN和NESN均需设置成0。控制方式如下图:NESN在一种情况下不会被更新,就是接收BUFFE杯够的情况。这会使发送端重传该帧,如此实现数据流控制。五、LinkLayer控制描述LLCP(LinkLayerControlProtocol)是用来控制两个LinkLayer之间的控制和协商的。其中包括连接控制,加密控制等等。1、LinkLaye睢接更新和ChannelMap更新每次进入连接状态后,设备均需更新conninterval,connSlaveLatency和connSupervisionTimeout。Master通过发送LL_CONNECTION_UPDATE_REQ帧来实现参数更新,Slave不能发送这种格式的帧,它通台使用L2CAP言必回复更新旅来确认参数更新。参数更新之前使用老的参数,更新之后使用新参数。Slav渊收至ULL_CONNECTION_UPDATE_REQ之后,假如connEventCountmod65535小于32767,并且不等于本地的connEventCount,此时它需监听所有的ConnectionEvent,直到确认Master收到自己的REQACKSlave在确认两边connEventCount相等之前的ConnectionEvent均需要监听。假如connEventCountmod65535大于32767,贝USlave认为MMaster丢失连接,回至UStandby状态,并上报主机。Master这边,需要在第一个TransmitWindow内发送数据,它发送的这帧数据作为此次Connection的anchorpoint。Master在这个anchorpoint以后更新它的conninterval,并清零TLLconnSupervision计数。假如使用自动发送LL_CONNECTION_UPDATE_REQ,则Timeout参数不跟新,与前次LL_CONNECTION_UPDATE_REQ或者CONNECT_REQ设置时相同。其他参数亦如是。自动更新机制用于Master由于其他需求,需要更改anchorpoint时间。ChannelMap的更新由LL_CHANNEL_MAP_REQ完成,2、加密加密参数设置通过LL_ENC_REQ和LL_ENC_RSP开始加密:LL_START_ENC_REQ和LL_START_ENC_RSP结束加密:LL_PAUSE_ENC_REQorLL_TERMINATE_INDPDUsEmptyPDUsorLL_PAUSE_ENC_RSPorLL_TERMINATE_IND3、FeatureSetExchange进入连接状态以后,蓝牙设备之间需要交换各自所支持的功能参数。该过程通过LLFEATUREREQPDULLFEATURERSPPM信息。数据帧交换时间关系如下:具体的Feature对应位如下图所示:

SilpoaitionLink5厘F«etanValklfroinControllertoHostValidfromlloMtoControllerValidfromControllertoControlk>r0LEEncryptionYYY1—2RFU4、VersionExchangeLL_VERSION_INDB交换信息。其LL_VERSION_INDB交换信息。其VersNr:所支持的蓝牙协议CompId:认证信息SubVersNr:Controller的实现版本号。5、TerminationProcedure终止通信,通过LL_TERMINATE_INDB交换信息。IP架构Figure2-1showst'hetop4^vdblockdiagramofHi通Figure2-1showst'hetop4^vdblockdiagramofHi通RW-BLtCore,alongwiththemainsurroundingblocksithintegratedlintoan以下是几个理解上的难点:、关于ExchangeTab的ControlstructureExchangeMemory是一个动态的存储器件,其中包括了ExchangeTabekControlstructure、T/RxDescriptor、T/RxBuffer,它们之间的连接都是由指针完成。关系大概如下:STA-TJBaLit1U1.MO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论