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