低功耗藍牙的體繫結構比較簡單,從下到上分別為控制器、主機和應用層。 控制器主要包含物理層、直接測試模式、鏈路層和主機控制介面(HCI)的下半部分,能夠收發無線電信號,並將這些無線電信號翻譯成帶信息的數據包。 主機通常為協議棧,管理設備間如何通信以及如何提供服務。包含主機控制機介面的上半部分、邏輯鏈路 ...
低功耗藍牙的體繫結構比較簡單,從下到上分別為控制器、主機和應用層。
控制器主要包含物理層、直接測試模式、鏈路層和主機控制介面(HCI)的下半部分,能夠收發無線電信號,並將這些無線電信號翻譯成帶信息的數據包。
主機通常為協議棧,管理設備間如何通信以及如何提供服務。包含主機控制機介面的上半部分、邏輯鏈路控制和適配協議、屬性協議、安全管理器、通用屬性規範和通用訪問規範。
應用層就是我們嵌入式開發人員所做的各種應用。
下麵概述下各個模塊的功能,在以後的章節中會詳細介紹各個模塊的具體功能和實現。
物理層
物理層採用2,4GH在無線電,完成接收和傳輸的工作。無線電傳輸信息主要是通過調製和解調來實現的,通過將0和1調製成不同的波形,發送出去,在接收端收到無線電信號後解調,就完成了信息的傳輸。當然,物理層還會包含濾波、放大等一系列的操作,但對於嵌入式軟體工程師來說,可以將這一部分當做一個黑盒子,只要知道物理層是用來收發數據的就可以。
低功耗藍牙技術中,將2.4GHz劃分為40個RF通道,每個通道的寬度為2MHz。物理層每微妙傳輸1bit的數據。
直接測試模式
直接測試模式是一種測試物理層的新方法。它允許測試者控制物理層發送和接收一系列的數據包,而後測試者分析接收到的數據包,可以判斷出物理層是否遵循RF規範。
鏈路層
鏈路層是低功耗藍牙體系中最複雜的部分。它負責廣播、掃描、連接的建立和保持。確保數據按正確的方式組織,正確的計算校驗值和加密序列等。鏈路層有兩種通道和兩種報文。
通道分為廣播通道和數據通道,報文分為廣播包和數據包。
廣播通道有3個,設備利用該通道進行廣播,並且掃描和發起連接。數據通道有37個,由一個自適用調頻引擎控制以實現魯棒性。
無論廣播包還是數據包,都是小包,這有助於降低功耗。廣播包和數據包的基本格式均相同。
可以發送的最短的報文是空報文,總共80bit,時長為80us。
主機/控制器介面
主機/控制器介面提供了主機和控制器之間通信的標準介面。它允許主機將命令和數據發送給控制器,也允許控制器將事件和數據發送給主機。
主機/控制器介面實際上分為物理介面和邏輯介面。邏輯介面主要定義事件和名利以及相關的行為,而物理介面指的就是USB、UART、SDIO的介面。
另外,主機/控制器介面會將數據分割和重組。
邏輯鏈路控制和適配協議
L2CAP是低功耗藍牙的復用層,它定義里兩個基本的概念:L2CAP通道和L2CAP信令。
低功耗藍牙中只使用固定通道:一個用於信令通道,一個用於屬性協議,一個用於安全管理器。
安全管理器協議
定義了配對和密匙分發協議。配對完成後,雙方就保存了密匙,當兩台設備下次重連時,可以迅速的認證彼此的身份。
屬性協議
定義了訪問對端設備數據的一組規則。所有的數據都存儲在屬性伺服器的屬性里,供客戶端執行讀寫操作。
屬性是被編址並被打上標簽的一小塊數據。每個屬性包含一個唯一的句柄、一個表示存儲數據的類型以及一個值。
屬性協議定義了6中類型的信息:
客戶端到伺服器的請求;
伺服器對客戶端請求的應答;
客戶定對伺服器的命令;
伺服器到客戶端的通知;
伺服器到客戶端的指示;
客戶端對伺服器指示的應答;
通用屬性規範
GATT位於屬性協議之上,定義了屬性的類型和使用方法。通用屬性規範引入了一些概念,包括“特性”、“服務”、服務之間的包含關係、特性描述符等。它還定義了一些規程,用來發現服務、特性、服務之間的關係,以及用來讀取和寫入特性值。
服務之間的關係是的低功耗藍牙體系具有巨大的靈活性和活力。
通用訪問規範
GAP定義了設備如何發現、連接。它還定義設備之間如何建立長久的聯繫——綁定。規範定義了設備如何實現可發現、可連接和可綁定。