低功耗藍(lán)牙(BLE)學(xué)習(xí)記錄文本_第1頁(yè)
低功耗藍(lán)牙(BLE)學(xué)習(xí)記錄文本_第2頁(yè)
低功耗藍(lán)牙(BLE)學(xué)習(xí)記錄文本_第3頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、RW BLE COF記錄傳輸信道BLE的傳輸信道在2.4G頻段有40個(gè)channel。包括2種物理信道:播送信道和數(shù)據(jù)信 道。數(shù)據(jù)幀中設(shè)置 Access Address用于標(biāo)識(shí)該信道,防止信道碰撞。Channel MAP如下:RF ChannelRF Center FrtqirtncyChatml TypeDjts Channel IndexAdvairti&irioCh-3 nnel lnd«x02402 MHzAdvertising channell3712404 MM2Du til dmmrD22+D6 MHzDaU charnel1 Datu cbanneifi111

2、2424 MHzDala channel101224?B MHzAdveiiisinq channel3G用g MHzDjU dvwiwJ11u240 MHzDate channel12Ckito channHs3U24/EJ MHzDaia channel36392480 MHzAdverUsing chcinnel38TMe 1 ?'of Rf Channel fo Ctwef (nrfex -vurf 切曲粘呵腫耐上疋數(shù)據(jù)幀通信藍(lán)牙幀結(jié)構(gòu)如下:LSBMSBFr&annfaltAccew AddressPDUCRC(1 ociet)(4 octets)(2 to 3&

3、; odels(3 octets hyure 2.1. jL/nfc packet fonratPreamble :根據(jù) Access Address而定,假設(shè) AA的LSB最右bitbit為1,那么前導(dǎo) 便是10101010b,反之那么為 01010101b。Access Address :播送幀的 AA為:0x8E89BED6其他情況可以是一個(gè) 32bit的隨機(jī)數(shù)。 AA需滿足以下條件不超過(guò)連續(xù)6個(gè)1或者0。與播送幀的 AA不同bit超過(guò)1個(gè)。不能4byte 一樣。 0 1跳變不能超過(guò)24次 MSB 6bit 0 1 跳變超過(guò) 2次。以下逐個(gè)介紹PDUAdvertising Channel

4、 PDU藍(lán)牙播送幀幀結(jié)構(gòu)LSBMSBflGbds)(as per tie Length ield in the Header)其中Header的幀格式如下:LSBMSBFDU TypeRFUTxAcMRxAddLenothRFU(4 bns)(SbPtsi(1 bit)(1f6bns)其中,a、播送幀類型PDU Type分為以下幾類:PWJ rypfi 2俺屁DCODADV NDK®1心 DIRECT 1HOQO1BASV NQbCOHN INDDC11D1DD01D1COWECTREaD1WSCM 賂IDgjiil-fill? ADV_IND: connectable undire

5、cted advertising event? ADV_DIRECT_IND: connectable directed advertising event? ADV_NONCONN_IND: non-connectable undirected advertising event? ADV_SCANND: scannable undirected advertising eventb、Length : 337bytes播送幀分為很多種, 分別闡釋:其區(qū)別就是payload所代表的意義不同,以下分別對(duì)幾種播送幀作1、ADV_INDADV_IND的 payload 格式如下:Payloadoct

6、ets)AdvA octets在播送幀幀頭中的 TxAdd位是播送地址的標(biāo)示位:TxAdd=0: AdvA地址為公用地址;TxAdd=1: AdvA地址為隨機(jī)地址。AdvData那么是播送HOS啲播送數(shù)據(jù)。2、ADV_DIRECT_IND這種幀用于直接接入的播送事件。ADV_DIRECT_IND勺 payload 幀格式如下:$ MtSlSInitA廟 octets;其中AdvA的意義與 ADV_IND樣。InitA為播送發(fā)起者地址:RxAdd=0:發(fā)起者地址是公用地址;RxAdd=1:發(fā)起者地址是隨機(jī)地址。注意:該幀不包含任何 HOST數(shù)據(jù)。3、ADV_NONCONN_INDA<hrA

7、6 ociets. 0*31 octeijj用于不可接入不直達(dá)non-connectable undirected的網(wǎng)絡(luò)。其 payload意義與ADV_IND類似。4、ADV_SCAN_IND用于可掃描不直達(dá)網(wǎng)絡(luò)。Payload意義與ADV_IND類似。PtaylDiad01 CK 問(wèn) |、Scaning PDUs1) SCAN_REQ這是掃描請(qǐng)求幀,處于播送狀態(tài)的接收設(shè)備接收這種幀。PayloadSwnA (6 octets iAdvA 6 曲(S)此處,Sca nA為掃描者的地址,其地址由TxAdd控制是公共地址還是隨機(jī)地址。AdvA為該掃描幀的目的地址。由RxAdd控制意義。2) SC

8、AN_RSPAdvA (6 octetsScanRspDaiaAdvA地址掃描確認(rèn)。處于播送狀態(tài)的設(shè)備在收到掃描請(qǐng)求后,需要回復(fù)掃描確認(rèn)幀。 意義由TxAdd確定。ScanRspData為播送端的附帶數(shù)據(jù)。三、Initiating PDU該局部為連接發(fā)起協(xié)議。發(fā)起的幀格式僅一種:CONNECT_REQh發(fā)起方發(fā)送該幀,廣播方接收該幀。1) CONNECT_REQ connect_rEQ格 式如下:-LData(22 octets*Pay Io adInitAMvA.(6 octets: 6 octetsTxAdd確認(rèn)InitA地址為公共地址還是隨機(jī)地址;RxAdd確認(rèn)AdvA地址為公共地址還是

9、隨機(jī)地址。LLData的數(shù)據(jù)格式如下:LLDataAA(4 octote)CRCInit (3 OCIOtS)WirtSizft (1 ociot)Win Offset (2 OCtOIS)Intfirvali(2 octo1 aiency (2 ocots)Tlmeoiit2 octo isChM(5 OCtOlS)Hop 5 bits)SCA (3 bits)AA AccessAddressCRCInit : CRC校驗(yàn)的初始值,它應(yīng)該是 LinkLayer產(chǎn)生的一個(gè)隨機(jī)值。Win Size :發(fā)送窗長(zhǎng)度參數(shù)。tran smitWi ndowSize=Wi nSize*1.25ms。Win

10、Offset :發(fā)送窗起始偏移量。TransmitWindowOffset=WinOffset*1.25ms 上述兩個(gè) window意義如下:胞辭 < ;* i ls Wow on LL connociior ootup tvj曲 a non zoro tranmmdowOffotInterval :確定 connect interval 的時(shí)間長(zhǎng)度。connlnterval = Interval * 1.25 ms Latency : connSlaveLatency =Latency 。TimeOut: connSupervisionTimeout= Timeout * 10 ms

11、i00ms32s之間,當(dāng)兩幀數(shù) 據(jù)之間的時(shí)間間隔超過(guò) 6*connlnterval 或者connSupervisionTimeout時(shí),那么認(rèn)為 連接喪失。ChM即ChannelMAP, 共036個(gè)信道。LSB代表channel0,哪一個(gè)是1,那么哪一個(gè)信道 有效。Channel 3739 保存。Hop: 516之間的隨機(jī)值,用于設(shè)置Hoplncrement。用于計(jì)算不使用的信道編號(hào)。unm appedCha nnel = ( lastU nm appedCha nnel + hop In creme nt) mod 37如果計(jì)算結(jié)果是屬于保存信道,那么通過(guò)下式計(jì)算:remapp ingln

12、dex = unm appedCha nnel mod nu mUsedCha nn elsSCA設(shè)置Master睡眠時(shí)鐘準(zhǔn)確度的最大值。對(duì)應(yīng)表如下:SCAmiasterSCjfli0251 ppm to 5QQ ppm1151 ppm to 250 ppm2101 ppm to 150 ppm376 ppm to 100 ppm461 ppm to 75 ppm531 ppm to &0 ppm621 ppm to M perm70 ppm to 2D ppm四、Data Channel PDU數(shù)據(jù)信道的幀格式如下:MSBMIC(32 brsLsaneaterPayload(16眄M

13、IC。其中包括16bit Header ,長(zhǎng)度可變的Payload,和一個(gè)信號(hào)完整性確認(rèn)字段1、關(guān)于 Header 和 MICHeader的數(shù)據(jù)格式如下:HeaderLLJDNESNSNMDRFULengthRFU(2 bit駅Mbit)(1 Wiwt(3 Mt*(5 bits時(shí) bllsr每個(gè)字段的意義如下:FivldH4m«DncripelonLLIDNESNTh* lLiQi jFHllwrtw >/twth#r IfwI» an LL Qflia PU or an LL 匚cntmPDU.DOb =良ewrz&dD1b»bL D«l

14、a PDU.茁肝崢I(yè)Ht M腫他毎 MH齬游.MMPDU.Wb-u p«1i PDU SMft or M 其岷 耐Qr aIL2CAP 時(shí)卅sag&no tnagmertaeiDn1ib = LLCcntnDlPDU啊車(chē)科Squtn* 制urr取<Sequincs NumberMDmsLenigflliTlwLwiglhUWnHdl&MtsitwsJw.InqcWi. offwPeyioedand MiUW inoudMi.MIC字段使用的時(shí)候,有兩個(gè)條件:1、不能使用于非加密的數(shù)據(jù)幀;2、數(shù)據(jù)幀payload長(zhǎng)度不能為0。字長(zhǎng)為4byte 。2、關(guān)于 Payl

15、oadPayload 分為兩類,LL Data PDU 和 LL Control PDU LLID=11b。LL Data PDU 里面 又分為兩類,一類是完整數(shù)據(jù)幀或幀碎片起始幀 LLID=10b,另一類是幀碎片LLID=01b。 其中,幀碎片幀的幀長(zhǎng)度可以為 0,而完整起始幀的長(zhǎng)度不可以為 0。下面具體介紹LL Con trol PDU :LL Co ntrol PDU 的幀格式如下:Payload1 octet0-22 octets >其幀長(zhǎng)度不能為 0,其中包含兩個(gè)字段:Opcode和CtrData 。Opcode用于確定控制幀類型:OpcodeControl PDU Nmth(

16、MX)LL_C0NNECT10N_UPDATE_REaCM01ll_chawnel_mapjreqLL_TERMINATENDLL_EMC_REQ0*04ll_enc_rspLL.START 上LLJ5 伽 r_ElMC_RSF007U. UNKNOWN RSPOxUHLL_FLATURE_RLQLL_FEATURE_F?SPLL_PAUSEElMC_RE<iOwflBLL_PAJUSE_EMC_«$POhdcLL_YERSICN_«ND(NODLl .REJECT IND| 0>OE-OiFFReserved for Fulire Lhe假設(shè)收到的LLC PD

17、U格式不支持或者是無(wú)用幀,那么回復(fù)LL_UNKNOWN_RSPU此時(shí)的Type 字段需設(shè)置成收到的無(wú)用的opcode。LL_CONNECTION_UPDATA_REQ該幀的幀格式如下:CtTDGtaWnSize (1 octet)Wri Offset2 octets)Interval (2 octete)Latency (2 odtete)Timeout(2 octete)liibtarrl (2 actEb)這些信息的意義在下一章的四中有詳述。LL_CHANNEL_MAP_REQCtrCfltiChM(5 ocrets)InMnnf (2 octets iLL_TERMINATE_IND:C

18、trDaitaError Code (1 Kiel)這個(gè)ErrorCode在藍(lán)牙協(xié)議中有具體制定意義。Vol2 Part DLL_ENC_REQ:CtrDdluRand(8 octets)EDIV(2 octets JSKDm(B octets)(Vm(4 oeteis)和加密相關(guān)的請(qǐng)求幀LL_ENC_RSP:CtrDataSKDs (9 oclsls)IVs (4和加密相關(guān)的回復(fù)幀LL_START_ENC_REQ: 沒(méi)有CtrData字段 LL_START_ENC_RSP: 沒(méi)有CtrData字段 LL_UNKNOWN_RSP:CtrDataUnknoMiType(1 udHi)LL_FEA

19、TURE_REQ:Cti Ddla (0 oci&ei)LL_FEATURE_RSP:CtrDaiFeatuireSei(S octe怎)LL_PAUSE_ENC_REQ: 沒(méi)有CtrData字段 LL_PAUSE_ENC_RSP: 沒(méi)有CtrData字段 LL_VERSION_IND:CtrDataVerNr (1Campkl (2 OCteB)SubVsrsNr (2 octets)LL_REJECT_IND:關(guān)于藍(lán)牙通信協(xié)議的理解、時(shí)鐘要求Active 狀態(tài)下小于± 50ppm。 Sleep Mode 下小于± 500ppm。二、設(shè)備過(guò)濾除了僅支持不可連接的播

20、送系統(tǒng) non-connectable advertising ,其他模式均需支持 設(shè)備過(guò)濾。 播送、掃描、連接發(fā)起均具有各自獨(dú)立的過(guò)濾機(jī)制。 如果芯片不支持這幾種模式 的話,那就可以不支持設(shè)備過(guò)濾。設(shè)備過(guò)濾是為了盡量減少不必要的數(shù)據(jù)通信。設(shè)備過(guò)濾時(shí)需要具備一個(gè)白,白容包括不過(guò)濾設(shè)備的地址和地址類型公共或隨機(jī)白容由HOST設(shè)置。以下對(duì)各種過(guò)濾模式作一個(gè)介紹:1、播送過(guò)濾支持過(guò)濾方式如下,一次僅支持一種方式:播送設(shè)備僅處理來(lái)自白的設(shè)備的掃描、連接請(qǐng)求。播送設(shè)備處理一切設(shè)備的掃描、連接請(qǐng)求。復(fù)位值播送設(shè)備處理所有設(shè)備的掃描請(qǐng)求,僅處理白的連接請(qǐng)求。播送設(shè)備處理所有設(shè)備的連接請(qǐng)求,僅處理白的掃描請(qǐng)求

21、。2、掃描過(guò)濾支持過(guò)濾方式如下:掃描設(shè)備僅處理來(lái)自白設(shè)備的播送幀。掃描設(shè)備處理一切設(shè)備的播送幀。假設(shè)播送方已經(jīng)過(guò)濾該掃描設(shè)備的話,通信不能成功。3、發(fā)起過(guò)濾支持過(guò)濾方式如下:被發(fā)起設(shè)備處理來(lái)自白所有設(shè)備的連接發(fā)起請(qǐng)求。被發(fā)起設(shè)備忽略白,僅處理host給出設(shè)備的連接發(fā)起請(qǐng)求。三、非連接狀態(tài)簡(jiǎn)述1、standbyStandby是復(fù)位后的芯片初始狀態(tài),由它可以進(jìn)入播送、掃描和連接狀態(tài)。2、advertisingadvertis ing event進(jìn)入播送狀態(tài)后,便開(kāi)始發(fā)送播送幀。在發(fā)送完一幀播送幀以后, 將被關(guān)閉,來(lái)適應(yīng)其他功能。播送事件有以下幾種類型:-a connectable undirect

22、ed* a conr»ctabl« directed avani* a non-connectable undirected event* a fiunriab ft undirected 6'.rant第一幀播送幀應(yīng)該在cha nnel in dex中的最低的播送信道發(fā)送。播送事件是否有回復(fù)幀由播送幀類型決定,具體如下表:Advertising Event TypaPDU u«cd inthis advcrtisirig event typ«Allowable rssponse POUtfor adverting eventSCAhl_REQC

23、ONNECT_REacometlable Undk ireded EventADV_INDYESYESConnectable Rirnc-tnd FwctADV_DIRECT_INDNOYES*Non-ronnectnb Ib Undirected EventADV_NOWCONN INL)NONOScanraNft I indi imeted FvnmtADV_SCAM_INnYESNO當(dāng)收到錯(cuò)誤的返回幀時(shí),播送端會(huì)在下一個(gè)播送信道發(fā)送播送幀,或直接停止播送事件。播送事件間隔必須是 625us的倍數(shù),圍在 20ms10.24s,其設(shè)置方式如下:T_advEve nt = adv In ter

24、val + advDelayscannable undirected 和 non-connectable undirected 事件,advIntervai 長(zhǎng)度必 須大于 100ms; connectable undirected 事件,advInterval 長(zhǎng)度必須大于等于 20ms。 advDelay是010ms的偽隨機(jī)數(shù)。連續(xù)播送幀發(fā)送示意圖如下:Adwflisng EventE'*w<-Mverrsing EvwiLT iidbtwriiy血Ei的1 Tyhgire 4 1 AvertisinQ ev曲的pe曲肋M(jìn) 祈f腫誠(chéng)唱妙陽(yáng)byaConn ectable Un

25、directed Event TypeADVJ®ADVJNDAOVJHD.卜口TJFa 10阿j亠Aa uh i: 37t=>'£Aflv da 土 捕1S4汎出iUiHrtKngia radsunwrlT4 3 CdEhctaW?adkiprftsin event unth SQAtJ_RFd anr, CAiti RP P匚Lis intiie mrddfc of an jd'fbstnq eventW_INDQ/_HD心KJWN.PEG3&WJ«Fsio屮*蘭334*活1t1JF1aortstartedAdMvbMCMP* se

26、isedRyu.if 4.4. G*也比3畑 L-ii'Jn-Jtrd 沁記血trigA'itH SCA.N REQ uni SCAf i_RSP p-jtreis jthe end of an dvertj&ng ewenF砂亡 4 d Gonneciab undjcted Mrerfrsin叮 eve/# dunnq wtrch o C0NNLC1 隆 <J POU 陽(yáng)DVJND ID msewrt< taring如圖4.5接收到CONNECT_REQ后,播送方便退出播送狀態(tài),進(jìn)入Slave狀態(tài)。bConnectable Directed Event T

27、ypeADV CIRECTJMD戶匚甘DREL i-iniAEV IFECTlew >d> Ifl*D¥ CIRECTImDQiWfaosM SiQnegAcveft min» cv«rtKiWMNote: Connectable directed advertising Is designed fcr cases n which fastink |凋3卻0敝W3J毎爵期1規(guī)仗4孔卿0険她 It'S a po'er and bandwidth intensive advertising scheme th戲 should only be

28、 usd whn 佰気 亡onn白亡tian 盂Etui: is required.cScann able Un directed Event TypeADT_X*NINDADVSCANINDA3V_9CANINC門(mén)托il(ig evertAdvising 9verr ClQ5ft1rgr 4 / ,'>annoW(? undtredcd<t(tvcftf3incj event 詢? ttrify ori/wf取ng POt/sFjtju.re 4. 3j Scannibje andircled adVErtisinq everir mt+? &CAN fxEQan

29、d SCAN RSP PDJs /ri tfie nw'dtffe of an ac/verfxsr'ngi 亡尼nfA£_ 5£噸 IkD£ 10 meM"也»羯38ArawiHirigE*rcdAJ'< - IF.ND*hg'dre 申 9: iscannai>Je undirected advertsrig eventarjtf SCAf 1 H由 PDUc a!忖ieetui of an advitisingdNon-conn ectable Un directed Event Type1、s

30、ca nning檢測(cè)狀態(tài)是用來(lái)監(jiān)聽(tīng)播送幀的,其狀態(tài)由HOST控制,分為主動(dòng)掃描和被動(dòng)掃描。掃描狀態(tài)下有兩個(gè)參數(shù) scanWindow scanlnterval 用于設(shè)置一次掃描的時(shí)間。掃描 時(shí)間不能長(zhǎng)與 10.24s,scanWindow<scanlnterval 。被動(dòng)掃描Passive Scanning :只接收幀,不發(fā)送幀。主動(dòng)掃描Active Scanning :監(jiān)聽(tīng)播送幀,根據(jù)播送幀格式,回復(fù)相應(yīng)幀。ADV_IND/ADV_SCAN_IND -> SCAN_REQADV_DIRECT_IND PDU/ADV_NONCON不回ND SCAN_REQ掃描需進(jìn)展退避操作。具體看

31、文檔吧,就不貼進(jìn)來(lái)了。2、in itiat ingin itiat ing沒(méi)有channel index 的限制。當(dāng)收到一個(gè)在過(guò)濾白的ADV_IND或ADV_DIRECT_IND發(fā)起者將會(huì)發(fā)送一個(gè) CONNECT_R給播送方。發(fā)送完 CONNECT_R后退出發(fā)起狀態(tài),進(jìn)入連接狀態(tài)。四、連接狀態(tài)簡(jiǎn)述:當(dāng)發(fā)起者發(fā)送CONNECT_PDU者播送方收到 CONNECT_RE那么認(rèn)為連接被創(chuàng)立,但此 時(shí)并非認(rèn)為已經(jīng)建立連接。只有當(dāng)正式開(kāi)始數(shù)據(jù)通信后,才認(rèn)為連接已經(jīng)被建立。連接建立后,連接中有兩個(gè)角色:Master和Slave。 Master主控conn ection eve nt的時(shí)序。每次 conn

32、ection event便是Master和Slave的一次同步結(jié)點(diǎn)。1、連接事件Connection Events 一次連接時(shí)間,使用同一個(gè)cha nnel in dex 。每次連接至少進(jìn)展一次數(shù)據(jù)傳輸。Slave端在接收到來(lái)自 Master的數(shù)據(jù)幀后,無(wú)論 CRC是否正確,均需要回復(fù)數(shù)據(jù),除非屢次連續(xù)CRC不正確。Master也是不管Slave發(fā)過(guò)來(lái)的幀是否正確, 均需回復(fù)數(shù)據(jù), 沒(méi)有除非。無(wú)論 CRC是否正確,我們都認(rèn)為 Header是對(duì)的。Master收不到來(lái)自Slave的數(shù)據(jù),那么關(guān)閉 connection event 。 Master 和 Slave 都能關(guān)閉此次 connectio

33、n 。連接事件持續(xù)時(shí)間長(zhǎng)度由 connInterval 和 connSlaveLatency 決定。 每次連接事件的起始點(diǎn)稱作 anchor point 。在 anchor point , Master 開(kāi)始發(fā)送數(shù)據(jù), Slave 開(kāi)始接收數(shù)據(jù)。 connInterval 便是本次連接的持續(xù)時(shí)間。 Master 必須確保本次連 接時(shí)間在下次 anchor point 之前間隔 T_IFS 的時(shí)間關(guān)閉。 connInterval 長(zhǎng)度必須是 1.25ms 的倍數(shù),長(zhǎng)度在 7.5ms4.0s 不等。 connInterval 由發(fā)起者通過(guò) CONNNECT_REQ 傳送給播送方。connSlave

34、Latency 是 Slave 端允許的監(jiān)聽(tīng)延時(shí)時(shí)間,其長(zhǎng)度圍如下: 0( connSupervisionTimeout / connInterval ) - 1) 且必須小于 500。 也就是說(shuō),假設(shè) connSlaveLatency =0,那么 Slave 需要在每個(gè) anchor point 時(shí)刻監(jiān)聽(tīng)。 沒(méi)收到設(shè)置 connSlaveLatency 的幀時(shí),亦如是。Master 和 Slave 均有一個(gè) I6bit 的計(jì)數(shù)器 conn Eve ntCou nter 每有一次 conn ection eve nt,計(jì)數(shù)器就加一,假設(shè)溢出那么循環(huán)。它是用于Lin kLayer作同步時(shí)用。Sl

35、ave在等待connSlaveLatency 時(shí),該計(jì)數(shù)器亦計(jì)數(shù)。2、連接超時(shí) Supervision Timeout 藍(lán)牙系統(tǒng)為了檢測(cè)連接喪失,便設(shè)置了一個(gè)Supervisi on Timeout 計(jì)數(shù)器 TLLconnSupervision 。每次接收到數(shù)據(jù)幀,那么計(jì)數(shù)器清零。 Supervision Time 超過(guò)以下幾 個(gè)圍那么認(rèn)為超時(shí):大于 6 * connlnterval大于 conn Supervisi on Timeoutconn Supervisi on Timeout 為 10ms的倍數(shù),圍是 iooms32s,并且小于(1 + connSlaveLatency ) * c

36、onnlnterval 。Timeout 以后,設(shè)備停止發(fā)送,進(jìn)入 Standby 狀態(tài),并且上報(bào)中斷。3、發(fā)送窗 Transmit Window Tran smit Win dow 的信息包含在CONNECT_REQ,傳送給發(fā)起者。發(fā)送窗起始是在收到 CONNECT_REQ后 transmitWindowOffset + 1.25ms , transmitWindowSize 定義發(fā)送窗的寬度。transmitWindowOffset 圍 1.25ms的倍數(shù),0 msconnlnterval 。transmitWindowSize 圍 1.25ms 的倍數(shù), 1.25ms10ms|connl

37、nterval - 1.25 ms 。4、主設(shè)備 Master Role 建立連接后,發(fā)起的一方成為 Master 。連接狀態(tài)建立以后, Master 重新設(shè)置 TLLconnSupervision , LinkLayer 確認(rèn)連接已經(jīng)建立。 隨后Master在transmit window 時(shí)間開(kāi)始發(fā)送第一個(gè)數(shù)據(jù)幀,Master的第一幀長(zhǎng)度可以超過(guò)transmit window 。Master 決定第一個(gè) anchor point,下一個(gè) anchor point=以下是一個(gè)例子:connln terval +first an chor poi nt。Figure 4 11 Mssfef a

38、,能料 or LL carrredkw) aetup kvtfi a2vro z仙就靦皿5、從設(shè)備Sl ave Role建立連接后,播送的一方成為Slave。Slave 一方也一樣,重新設(shè)置 TLLconnSupervision , LinkLayer確認(rèn)連接已經(jīng)建立。連接建立后的第一幀,無(wú)論 CR是否收對(duì),都把它作為第一次連接事件的an chor eve nt 。假設(shè)第一個(gè)transmit window沒(méi)有收到數(shù)據(jù)幀,那么準(zhǔn)備在下一個(gè)transmit window下接收數(shù)據(jù),而此時(shí)事件同步計(jì)數(shù)器conn Eve ntCou nt亦加一。Figure 4 丁3 5/ave dosng LL c

39、onnection setup in ff)e second LL connectton event6、關(guān)閉連接事件Clos ing Co nn ection Events Header中的MD位標(biāo)識(shí)是否該次事件之后還有數(shù)據(jù)發(fā)送。假設(shè)MD置位,那么Master接著發(fā),Slave接著收。任何一方收不到對(duì)方的幀了,均關(guān)閉連接事件。連續(xù)兩次收到數(shù)據(jù) CRC不對(duì),也關(guān)閉連接事件??偨Y(jié)如下:MatterMD = 0MD = 1Slav*袖DsQMjstcr sluN rvjtsx'nd .Nhur packet, t losing thetion eventSlav*ml need tooftr

40、r 'nclnr; Its pnei刃mjy <onlinue The connec (km evenlSlav should listsendingrls pack&lMaste-r may continue the 匚Qii- nectiom eventSlave stiould listen after SfEdung rts packet.Master may cOTtinde the conhet tm eventSlari/e should listen aifter sefiding rts packet殆加 4 2 "D bit申窗牡 fcr制血

41、聞cmnecfon芒回商7、發(fā)送窗拓寬Window Widening由于發(fā)送端接收端都存在晶振頻偏,所以可能會(huì)導(dǎo)致Slave端anchor point 不同步,因此Slave每次接收完一個(gè)數(shù)據(jù)幀,均需同步一次anchor point 。接收端需要根據(jù)發(fā)送端的頻偏MasterSCA和接收端頻偏SlaveSCA來(lái)計(jì)算接收端的接收窗拓寬參數(shù),以保證數(shù)據(jù)成功接收。計(jì)算方式如下:片祝MMTi能nirrg = fnasrerSCA + Sira:'e5CXi / 1000000' tAnc/ior其值應(yīng)小于(connlnterval /2) - T_IFS us)。假設(shè)到達(dá)這個(gè)值,那么認(rèn)為

42、連接丟 失。8、 信道列表選擇Data Cha nnel In dex Selectio nMaster端需要給此次連接的信道分類:使用信道和不使用信道。使用信道最少為兩個(gè)。 信道分類由 HOST產(chǎn)生。而 Slave的Channel Map通過(guò)CONNECT_R幀接收到本地。連續(xù)的 conn ection event 每次需要獲取兩個(gè)參數(shù) unm appedCha nnel和 lastUnmappedChannel。前者是此次連接沒(méi)有使用過(guò)的信道列表,后者是前一次連接未用過(guò)的信道編號(hào)。未用信道編號(hào)計(jì)算方法如下:unm appedCha nne= ( lastU nm appedCha nnel

43、 + hop In creme nt) mod 37 假設(shè)unmappedChannel為used Channel的話,那么此次的 Channel Index 那么根據(jù) 這個(gè) unmappedChanne得至U該次 connection 所使用的 Channel。假設(shè) unmappedChannel為 unused Channel,那么 根據(jù)下 面公式 計(jì)算得 到一個(gè) remappinglndex。remapp ingln dex = unm appedCha nnel mod nu mUsedCha nn els總結(jié)如以下圖:9、確認(rèn)機(jī)制和數(shù)據(jù)流控制Ackn owledgeme nt and

44、 Flow Co ntrol數(shù)據(jù)確實(shí)認(rèn)依靠 transmitSeqNumSN和 nextExpectedSeqNumNESN 來(lái)控制。NESN用于確認(rèn)前一幀是否接收正確,是否需要重發(fā)。剛剛進(jìn)入連接狀態(tài),SN和NESN均需設(shè)置成0??刂品绞饺缫韵聢D:NESN在一種情況下不會(huì)被更新,就是接收BUFFER不夠的情況。這會(huì)使發(fā)送端重傳該幀, 如此實(shí)現(xiàn)數(shù)據(jù)流控制。五、LinkLayer 控制描述LLCRLinkLayer Control Protocol是用來(lái)控制兩個(gè) LinkLayer 之間的控制和協(xié)商的。 其中包括連接控制,加密控制等等。1、LinkLayer 連接更新和 ChannelMap更新每

45、次進(jìn)入連接狀態(tài)后,設(shè)備均需更新connlnterval , connSlaveLatency 和connSupervisionTimeout。Master 通過(guò)發(fā)送 LL_CONNECTION_UPDATE幀RE實(shí)現(xiàn)參 數(shù)更新,Slave不能發(fā)送這種格式的幀,它通過(guò)使用L2CAP言道回復(fù)更新確認(rèn)來(lái)確認(rèn)參數(shù)更新。 參數(shù)更新之前使用老的參數(shù),更新之后使用新參數(shù)。Slave 端收至U LL_CONNECTION_UPDATE之REQ假設(shè)conn Eve ntCo unt mod 65535 小于 32767,并且不等于本地的 conn Eve ntCo unt,此時(shí)它需 監(jiān)聽(tīng)所有的Conn ecti

46、on Event ,直到確認(rèn) Master收到自己的REQ ACK Slave在確認(rèn)兩邊 conn Eve ntCou nt相等之前的Conn ection Eve nt均需要監(jiān)聽(tīng)。假設(shè)conn Eve ntCou nt mod 65535大于32767,那么Slave認(rèn)為與Master喪失連接,回到 Stan dby狀態(tài),并上報(bào)主機(jī)。Master這邊,需要在第一個(gè) Transmit Window發(fā)送數(shù)據(jù),它發(fā)送的這幀數(shù)據(jù)作為此次Conn ection 的 an chor poi nt 。 Master 在這個(gè) an chor poi nt 以后更新它的 connln terval,并 清零

47、TLLconnSupervision 計(jì)數(shù)。假設(shè)使用自動(dòng)發(fā)送 LL_CONNECTION_UPDATE_RE么Timeout參數(shù)不跟新,與前次LL_CONNECTION_UPDATENNECT_F設(shè)置時(shí)一樣。其他參數(shù)亦如是。自動(dòng)更新機(jī)制用于Master由于其他需求,需要更改anchor point時(shí)間。ChannelMap的更新由 LL_CHANNEL_MAP_REQ2、加密加密參數(shù)設(shè)置通過(guò)LL_ENC_REQLL_ENC_RSP開(kāi)始加密:LL_START_ENC_REQ ll_start_enc_rsp完畢加密:LL_PAUSE_ENC_REQ or LL_TERMINATE_IND PDU

48、sEmpty PDUs or LL_PAUSE_ENC_RSP orLL_TERMINATE_IND3、Feature Set Exchange進(jìn)入連接狀態(tài)以后,藍(lán)牙設(shè)備之間需要交換各自所支持的功能參數(shù)。該過(guò)程通過(guò)LL_FEATURE_REQ PDULL_FEATURE_RSP P交換信息。數(shù)據(jù)幀交換時(shí)間關(guān)系如下:apfiniTntefval覽cannlrrtaffvai具體的Feature對(duì)應(yīng)位如以下圖所示:Bit positionLink Layei rValid from Control er toHostVdliJ fiam Hv&l to Control hrValid fr

49、txm Control kr to Control l«r0LE EncryptionYY¥1 63RFU4、Version ExchangeLL_VERSIO NND來(lái)交換信息。其主從之間交換設(shè)備所支持的藍(lán)牙協(xié)議版本信息,通過(guò) 信息包括:VersNr :所支持的藍(lán)牙協(xié)議Compld:認(rèn)證信息SubVersNr: Controller的實(shí)現(xiàn)版本號(hào)。5、Termination Procedure終止通信,通過(guò) LL_TERMINATE_IN睞交換信息。IP架構(gòu)iFigure 2 1 "Jhows the top Jewel block diagram of the

50、RW BILE foi巴 along with the main urioundlug blocks when It h integerinto an ASIC以下是幾個(gè)理解上的難點(diǎn):、關(guān)于 ExchangeTable 禾口 ControlStructureExchangeMemory是一個(gè)動(dòng)態(tài)的存儲(chǔ)器件,其中包括了 ExchangeTabel、ControlStructure T/RxDescriptor 、T/RxBuffer,它們之間的連接都是由指針完成。關(guān)系大概如下:OUDQU1QUOI r CH»DCviTrzA*TF 3iT'g-.tng-l 5-Ht 4 Jb if rwl &尸'ESontrEd STjrare 衍 7ArTTEi JT'UCTirf* *Tr IS

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論