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