第三部分 主機(jī)(Host)
第9章 邏輯鏈路控制和適配協(xié)議(L2CAP)
邏輯鏈路控制和適配協(xié)議(Logical Link Control and Adaptation Protocol,L2CAP)是個復(fù)用層,可以讓低功耗藍(lán)牙復(fù)用三條不同的信道柔吼。它也支持?jǐn)?shù)據(jù)的分割和重組功能毒费,使得較大的報文可以在底層無線電中傳輸。
9.1背景
9.2信道
低功耗藍(lán)牙只支持固定信道愈魏。固定信道是指兩個設(shè)備一建立連接就存在的觅玻、沒有任何配置參數(shù)的信道艇棕。
低功耗藍(lán)牙一共使用3條信道:
0x0004:屬性協(xié)議(詳見第10章)
0x0005:低功耗信令信道
0x0006:安全管理協(xié)議
9.3L2CAP數(shù)據(jù)包結(jié)構(gòu)
每個L2CAP數(shù)據(jù)包的凈荷前端都包含一個32bit的報頭。假設(shè)使用分割和重組串塑,數(shù)據(jù)包的長度信息必須包含在報頭中沼琉,以便判斷數(shù)據(jù)包的結(jié)束。使用分割和重組機(jī)制需要為每一個通過HCI接口的數(shù)據(jù)包打上標(biāo)記(詳見第8章)桩匪,分為開始數(shù)據(jù)包和延續(xù)數(shù)據(jù)包打瘪。但是,這里沒有定義怎樣標(biāo)記當(dāng)前數(shù)據(jù)包的最后一個片段傻昙,所以闺骚,判斷當(dāng)前數(shù)據(jù)包是否結(jié)束的唯一方法就是發(fā)送一個新的數(shù)據(jù)包(假設(shè)這個數(shù)據(jù)包正準(zhǔn)備發(fā)送),或者將數(shù)據(jù)包的長度信息放在開始數(shù)據(jù)包中妆档。
如圖9-1所示僻爽,報頭包括2個字節(jié)的長度字段和2個字節(jié)的信道標(biāo)識符。長度字段表示報頭后的信息載荷字節(jié)數(shù)贾惦。
在所有的藍(lán)牙信道上胸梆,信息載荷均始于23字節(jié)的最大傳輸單元(Maximum Transmission Unit,MTU)须板。MTU表示在一個L2CAP信道中信息載荷的最大字節(jié)數(shù)碰镜。這意味著,在所有的低功耗藍(lán)牙中必須支持在空間傳輸27字節(jié)數(shù)據(jù)包——23字節(jié)載荷习瑰,4字節(jié)報頭绪颖。(BLE4.0,BLE5.0?)
9.4低功耗信令信道
低功耗信令信道用于主機(jī)層級的信令甜奄。每個低功耗信令信道的數(shù)據(jù)均包含有一操作碼柠横,隨后為各種參數(shù)。低功耗信令信道支持的命令操作碼如下:
命令拒絕(Command Reject)
連接參數(shù)更新請求(Connection Parameter Update Request)
連接參數(shù)更新響應(yīng)(Connection Parameter Update Response)
無論什么時候發(fā)送信令命令课兄,其信息載荷總是包含一個字節(jié)的標(biāo)識符牍氛,用于匹配請求和響應(yīng)。