1. 程式人生 > 其它 >車載測試系列:藍芽協議棧

車載測試系列:藍芽協議棧

藍芽協議棧由主機 + HCI(可選) + 控制器三大塊組成,其中對於單晶片方案是沒用HCI的。

  • 主機(Host) :主機部分由核心協議層(L2CAP、SDP、SMP、ATT)和核心規範(GAP、GATT)構成;
  • 控制器(Controller):此部分拆分為低功耗藍芽(Vol 6: Low Energy Controller)和經典藍芽(Vol 2: BR/EDR Controller)兩個章節說明
  • HCI:此部分定義了主機和控制器之間通訊的介面標準(Vol 4: Host Controller Interface),可以是UART、USB等通訊方式。

 

上圖中紅色部分是BR/EDR經典藍芽的必選項,綠色部分是LE低功耗藍芽必選項,藍色部分是公共部分;當然經典藍芽也可以具備綠色部分特性。HCI介面根據晶片架構有關,是可選項。兩者在物理層的差異性圖中沒有體現,不涉及晶片設計。

1、GAP規範(通用接入規範):定義了所有藍芽裝置的基礎功能,裝置間發現、連線、配對繫結的流程;藍芽裝置中四種角色;廣播和掃描響應報文的格式;還有一些通用藍芽引數定義,比如裝置地址、名稱、配對祕鑰和裝置的外觀特徵值,用於區分是什麼裝置,手機還是電腦;明確了作為一個低功耗藍芽裝置的基本需求,包含哪些層級以及如何協同工作的。

1)定義了藍芽裝置中的四種角色,廣播者、觀察者、外設角色、中心角色。

2)規範了一些通用的藍芽引數:藍芽裝置地址、裝置名稱、配對祕鑰、外觀特徵值(用於區分裝置是手機還是電腦)。

2、ATT(屬性協議):定義了訪問對端裝置上資料的一組規則,是GATT規範的基礎,也是低功耗藍芽的基石。定義了Host端屬性報文格式和報文型別。

1)Requests:請求報文,客戶端發給服務端,且需要服務端的一個應答Responses;(C->S,帶ACK的請求報文)

2)Responses :響應報文,和Requests成對出現,服務端對客戶端Requests的Responses;

3)Commands :命令報文,客戶端發給服務端,不需要應答;

4)Notifications :通知報文,服務端主動發給客戶端的通知;

5)Indications :通知報文,相比Notifications,客戶端要應答確認Confirmations ,是否收到通知了;

6)Confirmations :和Indications 成對出現;

3、GATT(通用屬性規範):位於ATT之上,定義了屬性的型別及其使用方法。 GATT用來規範attribute中的資料內容,並運用group(分組)的概念對attribute進行分類管理。沒有GATT,BLE協議棧也能跑,但互聯互通就會出問題。

4、L2CAP層(鏈路控制和適配協議):遮蔽了控制器傳輸協議中的許多特性,方便高層協議的開發;報文分片和重組(SAR);流控、重傳、報文完整性校驗等。

 

5、SMP(安全管理協議):定義了藍芽裝置配對、認證、解密等行為的安全操作。

6、LLCP/LL (鏈路層控制):低功耗藍芽參考 《Core_v4.2.pdf》中Part B: Link Layer Specification章節部分。

7、PHY(物理層):低功耗藍芽採用40個通道,分為資料通道和廣播通道;廣播通道佔用3個,用於發現裝置、建立連線、廣播資料;資料通道佔用37個,用於已建立連線裝置間的資料通訊。建立連線的兩個裝置,必須同一時間處於同一通道上才能通訊。