淘寶官方店

低功耗藍牙BLE技術的基礎知識簡介

更新時間:2018-12-24
摘要:

 無線設備的世界正在迅速蔓延。自從無線電發明以來,不同的公司和研究中心就給他們的工程師和科學家們制定了相同的任務:創造市場上最高效,最成功,最暢銷的無線電模塊。偉大的無線電模塊不是那么容易定義,它通常取決于模塊必須解決的任務。

 

在某些情況下,我們需要通過無線網絡發送大量數據,在這種情況下,我們通常不會要求低能耗。在其他情況下,我們有小型便攜式設備通知我們某些事件,這些設備使用電池供電,因此無線電模塊必須盡可能節能。

當我們談論節能無線電模塊,意味著它能夠以非常便宜的能源成本發送適量的數據時,一種無線電技術產品脫穎而出:藍牙低功耗模塊(BLE)。

BLE實際上是由諾基亞發起的,這個項目曾被稱為“Wibree”,并于2006年推出。2010年,藍牙特別興趣小組將Wibree合并為藍牙標準,作為4.0核心規范的一部分。雖然它是同一規范的一部分,但BLE本身并不向后兼容藍牙,因此我們不能將其視為與藍牙相同的協議。

BLE如此特別的原因在于它可以與現在大量移動設備進行通信,運行 在 Android,OS X, Windows Phone, iOS和BlackBerry的手機上,甚至Linux和Windows 8 都支持BLE。這意味著您可以輕松集成項目以進行多平臺通信。其中一個原因是創建了BLE,以便任何需要發送數據的人都可以隨意使用它。而藍牙則不是這種情況,藍牙就是針對特殊用例而設計的。所以想象一下:一個無線電模塊,適合需要發送的任何數據,節能并可連接到市場上的所有主要平臺......很容易看出為什么BLE是大多數低功耗無線電通信的選擇。

在這篇文章了里,我們了解BLE的工作原理以及我們如何實現它。在第1部分,我們將介紹BLE中使用的主要內容,它的構成,以及如何傳輸數據。

數據吞吐量和范圍

藍牙低功耗無線電的調制速率由規范規定為恒定的1Mbps(兆比特每秒)。當然,這是理論上的上限。在實踐中,根據所使用設備的限制,您可以期望每秒5- 10kb。就距離而言,BLE專注于非常短的距離通信??梢詣摻ê团渲靡粋€BLE設備,該設備可以可靠地傳輸30米或30米以上的視線范圍內的數據,但典型的操作范圍可能更接近2到5米。當然,續航里程越高,電池消耗就越多,所以在調整你的設備以適應更高的續航里程時要小心。

概述:構建塊和網絡拓撲

藍牙BLE組成

BLE由三個主要構建模塊組成:應用程序、主機和控制器。顧名思義,應用程序塊是與藍牙協議棧交互的用戶應用程序。主機覆蓋藍牙協議棧的上層??刂破鞲采w下層。主機可以通過添加一個我們稱為HCI的東西與BLE模塊通信——主機控制器接口。顯然,HCI的目的是將控制器與主機接口,而這個接口使控制器與各種主機接口成為可能。在本例中,單片機運行應用程序,與連接設備進行通信,連接設備由主機和控制器組成。為此,我們使用SPI進行通信,但是也可以使用不同的接口。

網絡拓撲機構

BLE設備可以有兩種不同的設備,一種是中心設備,另一種是外圍設備。中央設備通常是移動電話或個人電腦,它們具有更高的CPU處理能力。而外圍設備通常是一些連接到中心設備的傳感器或低功耗設備。

BLE設備可以發送兩種類型的數據:廣告包和掃描響應數據。

廣告包是必要的,并且不斷地從外圍設備傳輸,以便被其他設備看到。當其他設備接收到這些數據時,它們可以從外圍設備請求額外的數據,然后外圍設備發送掃描響應數據。

BLE設備可以通過兩種方式與附近的設備通信:廣播和連接。

廣播是向所有收聽設備發送數據的行為。在談到廣播時,我們定義了兩個角色:廣播員和觀察者。廣播公司定期向任何愿意接收的人發送不可連接的廣告包。而觀察者則反復掃描該區域以接收數據包。然后,當觀察者收到廣告包時,它可以請求掃描響應數據。需要注意的是,廣播是設備一次向多個對等點傳輸數據的唯一方式。

連接是兩個設備之間永久的、周期性的數據包交換。主設備(中央設備)掃描可連接的廣告包的頻率,當合適時,啟動連接。一旦建立連接,中央設備就會管理時間并開始周期性的數據交換。從設備(外圍設備)定期發送可連接的廣告信息包,并接收傳入的連接,一旦建立連接,外圍設備遵循中央的定時,并定期與它交換數據。連接時,這兩個設備通常定義連接事件。連接事件是在特定時間點上的周期性數據交換。這是節省電能的關鍵好處之一——兩個設備可以通電、交換數據,然后進入休眠狀態,直到下一次連接事件。

BLE的不同的層次和他們的目的

BLE和許多其他無線技術一樣,由許多層組成。每一層都有其作用,對BLE器件的正常工作起著重要作用。所有的層和定義看起來都很復雜,但是我們將逐步使用它,并覆蓋使用BLE開發成功項目所需的所有必要領域。

讓我們再來看看BLE設備的3個構建模塊:應用程序、主機和控制器:

應用程序是最高級別的,它負責包含與應用程序實現的實際用例相關的所有邏輯、用戶界面和數據處理。應用程序的體系結構高度依賴于使用BLE開發的項目,所以我們將把這一部分留給第二部分,我們將使用BLE P Click構建項目。

主機包含以下層:

l 通用訪問配置文件(GAP)

l 通用屬性配置文件(GATT)

l 邏輯鏈路控制和適配協議(L2CAP)

l 屬性協議(ATT)

l 安全經理(SM)

l 主機控制器接口(HCI),主機端

控制器包括以下層:

l 主機控制器接口(HCI),控制器端

l 鏈路層(LL)

l 物理層(PHY)

物理層(PHY)

物理層包含用于調制和解調模擬信號并將其轉換為數字符號的模擬通信電路。BLE可以通過40個信道從2.4000 GHz到2.4835 GHz進行通信。這些信道中的37個用于連接數據,后三個信道(37,38和39)用作廣告信道以建立連接和發送廣播數據。BLE使用稱為跳頻擴頻的技術,其中無線電在每個連接事件上的信道之間跳躍。建立連接時傳遞跳的值,因此每個新建立的連接都不同。該技術最小化了任何無線電干擾的影響。

鏈接層

鏈路層是直接與物理層接口的部分,通常實現為自定義硬件和軟件的組合。鏈路層根據邏輯組為其設備定義以下角色:

廣告商

發送廣告包的設備,以及 掃描器 - 掃描廣告包的設備。

Master

一個啟動連接并在以后管理它 的設備,Slave - 一個接受連接請求并遵循主設備時序的設備。鏈路層還負責處理藍牙設備地址。一個48位數字,用于在對等體中唯一標識設備。 您可以將BDA視為與IP中的MAC地址類似的內容。

鏈路層還負責建立連接, 它根據藍牙地址或基于數據本身過濾掉廣告數據包。并且還管理 連接間隔 - 兩個連續連接事件開始之間的時間。 鏈路層還可以配置加密,這在許多設備存在于相同范圍內時是非常需要的。

主機控制器接口(HCI)

如前所述,HCI允許更強大的CPU通過串行接口(通常是UART或USB)控制BLE設備。此配置的典型示例包括大多數智能手機,平板電腦和個人計算機,其中主機(和應用程序)運行在主CPU,而控制器位于通過UART或USB連接的單獨硬件芯片中。由于我們沒有這種配置,我們不會再進一步討論HCI。

現在我們可以轉到BLE設備的主機部分。

邏輯鏈路控制和適配協議(L2CAP)

L2CAP負責兩項任務:1、它需要來自上層的多個協議,并將它們封裝成標準的BLE數據包格式(反之亦然)。2、分段和重組:它從上層獲取大量數據包并將其分解為適合發送端BLE數據包的27字節最大有效載荷大小的塊,反之亦然,它接收多個已經分段并重新組合的數據包將它們分成一個大的數據包然后發送到上層

L2CAP層負責或路由兩個主要協議:屬性協議(ATT)和安全管理器協議(SMP)。ATT構成了BLE應用程序中數據交換的基礎,而SMP提供了一個框架,用于在對等體之間生成和分發安全密鑰。我們將SMP排除在本教程之外,因為它現在對我們的項目并不重要。

屬性協議(ATT)

屬性協議(ATT)是基于設備呈現的屬性的簡單客戶端/服務器協議??蛻舳藦姆掌髡埱髷祿?,然后服務器將數據發送給它的客戶端。重要的是要記住,如果仍有待處理的請求,則在響應到達之前不能再發送任何請求。每個服務器都包含以屬性形式組織的數據,每個屬性都分配有16位屬性句柄,通用唯一標識符(UUID),一組權限和值。屬性句柄只是用于訪問屬性值的標識符,而UUID用于指定值中數據的類型和性質??蛻舳税l送適當的寫入或讀取請求,服務器根據它們進行響應。

當客戶端想要從服務器讀取或寫入屬性值時,它會使用句柄向服務器發送讀取或寫入請求。然后,服務器使用屬性值或確認響應進行響應。在讀取操作的情況下,客戶端必須解析該值并基于該屬性的UUID理解數據類型。另一方面,在寫入操作期間,期望客戶端提供與屬性類型相對應的數據,并且如果不是這種情況,則服務器可以自由拒絕操作。

通過ATT執行的操作集如下:錯誤處理,服務器配置,查找信息,讀取操作,寫入操作,排隊寫入,服務器啟動

通用屬性配置文件(GATT)

關貿總協定是ATT的基礎。它添加了數據模型和層次結構,它定義了數據在不同應用程序之間的組織和交換方式。

關貿總協定的數據在服務部門進行。 每個服務包含一個或多個 特征,每個特征是用戶數據與元數據(描述性信息)的聯合。與GAP一起,GATT構成了藍牙低功耗協議棧的主要接口。

GATT服務按我們稱為GATT配置文件的方式組織, 每個配置文件可以包含多個服務。使用16位UUID區分服務??梢栽贐luetooth Developer Portal 的“ 服務”頁面上找到已采用服務的完整列表 。

特征還包含UUID,它們通常表示數據端點。例如,如果我們測量溫度,則特征部分將包含一些元數據(例如,如果它是華氏溫度或攝氏溫度),然后是溫度值。

通用訪問配置文件(GAP)

GAP層控制廣告和連接,它指定設備如何執行控制過程,例如設備發現,連接,安全性建立等。

它的主要焦點是:

•角色和它們之間的相互作用

•跨越這些的操作模式和轉換

•實現一致且可互操作的通信的操作過程

•安全方面,包括安全模式和過程

•非協議數據的附加數據格式

如前所述,設備可以具有Broadcaster或Observer以及Central或Perihperal設備的角色。

我們已經介紹了BLE技術的基本部分,在下一篇文章中,繼續介紹。

手机淘宝怎样赚钱的 2019一码中奖免费公开资料 黑龙江36选7中几个号有奖 分彩app安卓版 我的股票账户查询 四川麻将如何算牌 西甲武磊最新消息 天津麻将抓牌和打牌顺序 股票行情在线分析 麻将连连看上海之旅 股票配资推荐安宁卓信宝配资精湛