隨著物聯(lián)網(wǎng)的發(fā)展,業(yè)界對簡單的、不需要連接的多播或廣播通信的需求越來越迫切,藍牙協(xié)議是通信協(xié)議的一種,而低功耗藍牙憑借其低功耗、短距離、可互操作,工作在免許可的2.4GHz ISM射頻頻段的特性,使得BLE藍牙模塊在IOT領域取得廣泛應用。為加深對低功耗藍牙的認識,快來一起了解低功耗藍牙協(xié)議棧由哪幾部分組成的吧!
在深入BLE協(xié)議棧各個組成部分之前,我們先看一下BLE協(xié)議棧整體架構。
低功耗藍牙協(xié)議棧包含兩部分共8層:主機(Host)和控制器(Controller)。要實現(xiàn)一個BLE應用,首先需要一個支持BLE射頻的芯片,然后還需要提供一個與此芯片配套的BLE協(xié)議棧,最后在協(xié)議棧上開發(fā)自己的應用??梢钥闯?/span>BLE協(xié)議棧是連接芯片和應用的橋梁,是實現(xiàn)整個BLE應用的關鍵。那BLE協(xié)議棧具體包含哪些功能呢?簡單來說,BLE協(xié)議棧主要用來對你的應用數(shù)據(jù)進行層層封包,以生成一個滿足BLE協(xié)議的空中數(shù)據(jù)包,也就是說,把應用數(shù)據(jù)包裹在一系列的幀頭(header)和幀尾(tail)中。具體來說,BLE協(xié)議棧主要由如下幾部分組成:
PHY層(Physical layer物理層)。PHY層用來指定BLE所用的無線頻段,調(diào)制解調(diào)方式和方法等。PHY層做得好不好,直接決定整個BLE芯片的功耗,靈敏度以及selectivity等射頻指標。
LL層(Link Layer鏈路層)。LL層是整個BLE協(xié)議棧的核心,也是BLE協(xié)議棧的難點和重點。鏈路層用于控制射頻設備的工作狀態(tài),包括 5 種可能的工作狀態(tài):待機、廣播、掃描、啟動和連接。
HCI(Host controller interface)。HCI 層為主機和控制器之間的通信提供了一種標準化的接口,其主要完成兩個任務:① 發(fā)送命令給控制器和接收來自控制器的事件;② 發(fā)送和接收來自對端設備的數(shù)據(jù)。
L2CAP層(Logic link control and adaptation protocol)。L2CAP 邏輯鏈路控制及自適應協(xié)議層(Logical Link Control and Adaptation Protocol)為更高層提供數(shù)據(jù)封裝服務,允許邏輯的端到端數(shù)據(jù)通信。
SM(Secure manager)。SM 層定義了配對和密鑰分發(fā)的方法,并為其他堆棧層的安全連接以及與另一個設備交換數(shù)據(jù)提供功能。
ATT(Attribute protocol)。ATT 屬性協(xié)議用于所有低功耗藍牙的數(shù)據(jù)傳輸,具有快速、簡單的特點,其采用了客戶端(Client)/ 服務器(Server)架構。
GAP層(Generic access profile)。低功耗藍牙協(xié)議棧的 GAP 層與應用 / Profile 直接連接,負責處理設備的接入方式和過程,包括設備發(fā)現(xiàn)、鏈路建立、鏈路終止、啟動安全功能以及設備配置。
GATT(Generic attribute profile )。GATT 層是一個服務框架,定義使用 ATT 的子過程。GATT 規(guī)定了配置文件 Profile 的結構。在低功耗藍牙中,所有的數(shù)據(jù)塊由一個 Profile 或服務所使用的數(shù)據(jù)庫稱為特性(characteristic)。
對于開發(fā)者而言,不需要對每一層的具體實現(xiàn)都有深入的了解。只需要掌握與應用緊密相關的 GAP/GATT 層即可滿足大部分開發(fā)的需求,通過 SoftDevice(即協(xié)議棧,這種方式使得協(xié)議棧和用戶應用可以單獨編譯和鏈接)的 API 軟件接口(以 sd_ 開頭)調(diào)用來實現(xiàn)。
SKYLAB的低功耗藍牙模塊,基于Nordic芯片,支持主從一體,一主多從,更多關于低功耗藍牙模塊,請到“藍牙模塊”頁面!