柚子快報激活碼778899分享:網(wǎng)絡協(xié)議 BLE 簡介
介紹:BLE 的全稱叫做 Bluetooth Low Energy,也稱之為低功耗藍牙,屬于藍牙技術(shù)中的一種。與之對應的是 Classic Bluetooth,經(jīng)典藍牙,低功耗藍牙雖工作原理與經(jīng)典藍牙類似,但是有著獨特的架構(gòu)體系,所以LE獨立出來成為一種藍牙形態(tài)。不過LE和經(jīng)典藍牙使用相同的2.4G無線電頻率,可以共享同一個天線,組成雙模藍牙。
BLE頻段與信道:BLE和傳統(tǒng)藍牙不同,把傳統(tǒng)藍牙的79個信道分為40個,帶寬也有1MHz變?yōu)?MHz。其中37、38、39作為主廣播信道,其余的既可以作數(shù)據(jù)信道也可以作備用廣播信道。如下圖所示:
其中信道的頻率由下圖所示方法計算:
由圖可得最小頻率是2402MHz,最大頻率是 2480MHz。
BLE芯片的組成:由軟硬件共同構(gòu)成,軟件部分主要是協(xié)議棧,硬件部分包括藍牙基帶(Baseband)、調(diào)制解調(diào)部分(Modem)、無線接收部分(RF)。
BLE協(xié)議棧:
BLE的協(xié)議棧如下圖所示:
協(xié)議棧主要是三部分組成,Controller、Host和profiles。其中硬件部分像藍牙基帶、RF等都在Controller中實現(xiàn),軟件部分則主要通過Host來控制,軟硬件通過HCL來進行交互。我們設(shè)計BLE芯片的話,要設(shè)計它的Controller和Host,我們所有的設(shè)計都要遵循藍牙協(xié)議規(guī)范。
軟硬件以及軟硬件交互分明的協(xié)議棧的設(shè)計,可以大大的提高設(shè)計效率,我們可以同時進行軟件和硬件的設(shè)計,只要按照標準來設(shè)計,我們的設(shè)計就可以同步進行了。
下面首先來大致看一下每一部分的功能和作用:
物理層(Physical Layer,簡寫 PHY):PHY層用來指定BLE所用的無線頻段,調(diào)制解調(diào)方式和方法等。由于我們使用的頻段2.4G是大家都可以免費使用的,也就是說藍牙必定會面臨干擾,簡單來說物理層的作用正是要盡可能的屏蔽掉我們不需要的信號,排除干擾,使物理層上面的數(shù)據(jù)鏈路層可以正常運作。鏈路層(Link Layer,簡寫LL):可以說LL層是整個藍牙數(shù)據(jù)傳輸?shù)暮诵模龅氖虑榉浅6?,包括頻道的選擇,空中數(shù)據(jù)識別,數(shù)據(jù)的比特流處理等等。不過LL層只是對接收到的或者要發(fā)送的數(shù)據(jù)進行處理,對于數(shù)據(jù)的解析還是要看Host的軟件部分。鏈路層可以理解為一個狀態(tài)機,控制著各種狀態(tài),在藍牙協(xié)議4.0中,如下圖所示:
一共有以下五種狀態(tài):就緒態(tài)(Stanby)、掃描態(tài)(Scanning)、廣播態(tài)(Advertsing)、發(fā)起態(tài)(Initiating)、連接態(tài)(Connection)。 在藍牙5.x中,又增加了幾種狀態(tài),如下圖所示:
一共有以下七種狀態(tài):Standby State(待機)、Advertising State(廣播)、Scanning State(掃描)、Initiating State (初始發(fā)起)、Connection State(連接)、Synchronization State(同步)、Isochronous Broadcasting State(等待連接)。具體鏈路層細節(jié)會在后續(xù)文章繼續(xù)介紹。
主機控制接口層(Host Controller Interface,簡寫 HCI):它的作用就如名字所示,是一個主機和控制器的接口,主要用于主機通過向控制器發(fā)送命令數(shù)據(jù)包來執(zhí)行命令或者控制器反饋之前輸入的命令等等。HCI主要包括邏輯接口(數(shù)據(jù)包)和物理接口(UART、USB等等),HCI不是必須要有的,如果是雙芯片的BLE,通常用HCI來規(guī)范兩者之間的通信協(xié)議和通信命令等。屬性協(xié)議層(Attribute protocol,簡寫 ATT):ATT是GATT和GAP的基礎(chǔ)。簡單來說,ATT層用來定義用戶命令及命令操作的數(shù)據(jù),比如讀取某個數(shù)據(jù)或者寫某個數(shù)據(jù)。在ATT中主要用到的就是attribute概念,attribute本身可以簡單地理解為一條數(shù)據(jù),或者說一種操作,Attribute定義數(shù)據(jù),同時定義該數(shù)據(jù)可以使用的ATT命令。軟件開發(fā)者們最多接觸的就是ATT層面的設(shè)計與開發(fā)。通用訪問配置文件層(Generic access profile,簡寫GAP):GAP可以對LL層payload進行解析,主要用來控制設(shè)備連接和廣播, 使你的設(shè)備被其他設(shè)備可見,并決定了你的設(shè)備是否可以或者怎樣與交互設(shè)備進行通訊。GAP層有4種不同類型的廣播:通用的、定向的、不可連接的以及可發(fā)現(xiàn)的。設(shè)備每次廣播時,會在3個廣播信道上發(fā)送相同的報文。這些報文被稱為一個廣播事件,例如 Beacon 設(shè)備就只是向外廣播,不支持連接。通用屬性配置文件層(Generic Attribute profile,簡寫 GATT):GATT更像是一種SPEC和一種橋梁,用來規(guī)范attribute中的數(shù)據(jù)內(nèi)容,并運用對attribute進行分類管理。一旦兩個設(shè)備建立起了連接,GATT 就開始起作用了,也就是說要想經(jīng)過GATT,必須先符合GAP協(xié)議。邏輯鏈路控制及自適應協(xié)議層(Logical Link Control and Adaptation Protocol,簡寫 L2CAP):L2CAP在經(jīng)典藍牙中的作用更為強大,在BLE中主要負責協(xié)議復用的功能,無論是SM還是ATT等協(xié)議棧的數(shù)據(jù)都可以通過L2CAP連接HCL傳輸?shù)娇刂破骼锩?,并向上連接應用的接口。LL只關(guān)心傳輸?shù)臄?shù)據(jù)本身,L2CAP就要區(qū)分是加密通道還是普通通道,在BLE中不是主要模塊。安全管理層(Security Manager,簡寫 SM):此模塊用來保證數(shù)據(jù)安全的加密模塊,數(shù)據(jù)加密需要一個密鑰key,密鑰key的一系列處理就在SM中進行。
本文對于BLE藍牙的基本內(nèi)容進行了簡單的介紹,之后會對每一部分詳細的展開分析。
本文章僅供學習交流,如有引用請標注出處。
柚子快報激活碼778899分享:網(wǎng)絡協(xié)議 BLE 簡介
相關(guān)閱讀
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。