低功耗藍牙協議棧包含兩部分共8層:主機(Host)和控制器(Controller)。
控制器部分包括:
物理層(Physical Layer)
鏈路層(Link Layer)
主機控制接口層(Host Controller Interface)
主機部分包括:
L2CAP 邏輯鏈路控制及自適應協議層(Logical Link Control and Adaptation Protocol)
安全管理層(Security Manager)
ATT 屬性協議層(Attribute Protocol)
GAP 通用訪問配置文件層(Generic Access Profile)
GATT 通用屬性配置文件層(Generic Attribute Profile)
從應用層到物理層一共包含8層,如下圖所示。對于開發者而言,不需要對每一層的具體實現都有深入的了解。只需要掌握與應用緊密相關的 GAP/GATT 層即可滿足大部分開發的需求,通過 SoftDevice(即協議棧,這種方式使得協議棧和用戶應用可以單獨編譯和鏈接)的 API 軟件接口(以 sd_ 開頭)調用來實現。
從應用層到物理層一共包含8層
1、物理層(Physical Layer)
對于低功耗藍牙,其物理層工作于 2.4GHz 全球通用的免許可證頻段(2400MHz~2483.5MHz),共使用 40 個頻道,頻道間隔為 2MHz,而經典藍牙使用 79 個頻道,1MHz 間隔。低功耗藍牙有兩種頻道類型:廣播頻道 3 個,數據頻道 37 個,共 40 個頻道。
低功耗藍牙廣播頻道為 2402 MHz(37),2426 MHz(38),2480 MHz(39),你沒看錯!就是2402 MHz(37),2426 MHz(38),2480 MHz(39)。3 個廣播頻道剛好與 WiFi 無線局域網的信道錯開,用于設備發現和建立連接。相比之下,經典藍牙技術需要使用 32 個廣播頻道來完成相同的任務。正因如此,低功耗藍牙可以大幅減少在空中的使用時間,從而降低功耗。
由于使用 3 個廣播頻道,低功耗藍牙只需 0.6 到 1.2ms 的“開啟”時間來掃描其他設備。而經典藍牙需要 22.5ms 掃描其 32 個頻道。低功耗藍牙的這個機制對降低功耗有顯著效果(比經典藍牙減少 10 到 20 倍的功耗)。
由于藍牙和 WiFi 都工作在 2.4GHz 頻段,在同一使用環境下可能產生相互的影響,為此低功耗藍牙做了系統共容性的考慮。低功耗藍牙頻道表設計時盡量避開 WiFi 的工作頻道,低功耗藍牙的所有 3 個廣播頻道均在 WiFi 頻道表之外,除了重疊的數據頻道部分,仍有 9 個數據頻道在 WiFi 頻道之外,確保了低功耗藍牙系統的可靠性及與 WiFi 系統的共容性,增強了應用時的抗干擾能力。
低功耗藍牙規范中所定義的最大發射功率為 +10 dBm(10mW),最小發射功率為 -20 dBm(0.01mW)。接收機靈敏度要求優于 -70 dBm(當誤碼率 BER 為 0.1% 時)。
顯而易見,藍牙的通信距離與發射功率和接收靈敏度有關。
當發射功率為 0 dBm,接收機靈敏度為 -70 dBm,通信距離約為 30米。
當發射功率為 +10 dBm,接收機靈敏度為 -90 dBm,通信距離約為 100米。
此外,通信距離往往還與天線、方向以及周圍環境等諸多因素有關。
2、鏈路層(Link Layer)
鏈路層用于控制射頻設備的工作狀態,包括 5 種可能的工作狀態:待機、廣播、掃描、啟動和連接。
當掃描者監聽廣播者時,廣播者發送數據而不需要建立連接。
如果一個設備以一個連接請求來響應一個廣播者,該設備稱為發起者。
如果廣播者接受該請求,則廣播者和發起者將進入連接狀態。
當一個設備位于連接狀態時,它將連接到兩個角色之一(主機或者從機)。發起連接的設備成為主機,接受連接請求的設備成為從機。
3、主機控制接口(Host Controller Interface)
HCI 層為主機和控制器之間的通信提供了一種標準化的接口,其主要完成兩個任務:① 發送命令給控制器和接收來自控制器的事件;② 發送和接收來自對端設備的數據。
4、L2CAP 邏輯鏈路控制及自適應協議層
L2CAP 邏輯鏈路控制及自適應協議層(Logical Link Control and Adaptation Protocol)為更高層提供數據封裝服務,允許邏輯的端到端數據通信。
5、安全管理層(Security Manager)
SM 層定義了配對和密鑰分發的方法,并為其他堆棧層的安全連接以及與另一個設備交換數據提供功能。
6、ATT 屬性協議層(Attribute Protocol)
ATT 屬性協議用于所有低功耗藍牙的數據傳輸,具有快速、簡單的特點,其采用了客戶端(Client)/ 服務器(Server)架構。
7、GAP 通用訪問配置文件層(Generic Access Profile)
低功耗藍牙協議棧的 GAP 層與應用 / Profile 直接連接,負責處理設備的接入方式和過程,包括設備發現、鏈路建立、鏈路終止、啟動安全功能以及設備配置。
8、GATT 通用屬性配置文件層(Generic Attribute Profile)
GATT 層是一個服務框架,定義使用 ATT 的子過程。GATT 規定了配置文件 Profile 的結構。在低功耗藍牙中,所有的數據塊由一個 Profile 或服務所使用的數據庫稱為特性(characteristic)。