舉報
×
侵犯我的權益
×
侵犯了我企業的權益
×
抄襲了我的內容
×
原文鏈接或出處
誹謗我
×
對根叔知了社區有害的內容
×
不規範轉載
×
舉報說明
文/霍曉宇 王品
——網絡老爬蟲(無線新技術專題)
隨著時代的改變,互聯網行業的高速發展,無線WiFi也成為了人們生活中必不可少的一部分,正處於互聯網時代的人們對於WiFi的要求也不再滿足於簡單的接入,人們需要更加優質的使用體驗,以及更加豐富功能體驗。為了豐富業務功能,WiFi集成藍牙技術日益成熟;不管業務如何多樣化,場景多麼複雜,我們始終有解決的辦法。
低功耗藍牙並非要優化經典藍牙或者取代WiFi等無線技術,相反,它針對的是極具目的性的細分市場。這些細分市場要求設備低成本,低功耗,間歇性的發送數據,時間從幾秒到幾天,每次發送的數據包含若幹個字節。通常是用來執行監測或控製類的應用,比如開啟關閉智能電器,監測門窗的打開關閉等。
盡可能的減少工作和執行時間是低功耗藍牙設計的一個基本概念。因為一旦開始工作就不可避免的消耗能量,哪怕僅僅隻是檢查接收或者發送的狀態。許多可能增加耗能的措施必須進行優化,包括魯棒地發現設備、連接設備和發送數據以及采用很短的數據報文等。
非對稱設計是低功耗藍牙的另一個設計概念,幾乎在所有層都采用了非對稱設計。將負擔從從設備移到主設備,從廣播者移到掃描者,從服務器移到客戶端。這樣降低了資源受限的設備的功耗,將成本轉嫁到具有豐富資源的設備上。
無連接是低功耗藍牙係統的另一個特點。因為任何連接都會消耗大量能量反複確認,重傳等。而低功耗藍牙的基本理念就是連接是瞬態的。無連接模式定義的是設備的狀態,而不是連接的狀態,通過無狀態的協議公開狀態,允許在任意時刻斷開連接,並在重新連接時直接從對端設備獲得當前狀態。

圖1 低功耗藍牙體係結構圖
低功耗藍牙的體係結構本質上非常簡單。如圖1所示,它分成三個基本部分:控製器、主機和應用程序。控製器通常是一個能夠發送和接收無線信號的物理設備,懂得如何將信號翻譯成攜帶信息的數據包。主機通常是一個軟件棧,管理兩台或多台設備間如何通信以及如何利用無線電同時提供幾種不同的服務。應用程序則使用軟件棧,進而使控製器來實現用戶實例。
物理層:低功耗藍牙和經典藍牙一樣,物理層采用2.4GHz無線電、完成傳輸和接收工作的部分。與經典藍牙不同的是,低功耗藍牙的濾波器不像經典藍牙的濾波器那麼嚴格,這樣低功耗無線電信號比經典藍牙的要分散一點。適當拓寬無線電信號的好處在於低功耗藍牙遵循擴頻的約束,而經典藍牙無線電則受跳頻的約束。傳輸時,擴頻無線電比跳頻使用的頻率更少;而如果沒有更寬鬆的濾波器波形,低功耗藍牙將不能隻在三個信道上廣播,而不得不使用更多的信道,從而導致係統的能耗升高。2.4GHz頻段被劃分為40個RF信道,各信道的寬度為2MHz。物理層每微秒傳輸1比特應用數據。
鏈路層:鏈路層是低功耗藍牙體係裏最複雜的一部分。它負責廣播、掃描、建立、和維護鏈接,以及確保數據包按照正確的方式組織、正確地計算校驗值以及加密序列等。鏈路層主要定義了三個基本概念:信道、報文和過程。
信道分為兩種,廣播信道和數據信道,連接建立前的設備使用廣播信道發送數據,廣播信道共三個,這一數字是在低功耗和魯棒性之間折中決定的。連接建立後采用數據信道傳輸數據。數據信道共有37個,由一個自適應跳頻引擎控製實現魯棒性。
在任意信道上發送的數據均為小數據包。廣播和數據信道基本的數據包格式相同。如圖2。

圖2 數據包格式
8比特前導碼優化數據包的魯棒性,32比特接入碼在廣播信道數據包中是固定值,PDU的範圍最小是16比特,最大是312比特;最後是24比特的循環冗餘校驗(CRC)值,確保接收的報文沒有錯誤比特。
主機包含複用層、協議和用來實現的過程。主機構建於主機控製器接口的上層部分,其上為邏輯鏈路控製和適配協議(L2CAP),這是一個複用層。在它上麵是係統的兩個基本模塊:安全管理器和屬性協議。屬性協議之上為通用屬性規範。
安全管理器協議:定義了一個簡單的配對和密鑰分發協議。配對是一個獲取對方設備信任的過程,通常采取認證的方式實現。配對之後,接著是鏈路加密和密鑰分發過程。在密鑰分發過程中從設備把密鑰共享給主設備,當這兩台設備在之後重連時,可用先前分發的共享密鑰進行加密,從而迅速認證彼此的身份。
屬性協議:屬性協議定義了訪問對端設備上的數據的一組規則。數據存儲在屬性服務器的“屬性”裏,供屬性客戶端執行讀寫操作。客戶端將請求發送至服務器,後者回複響應消息。客戶端可以使用這些請求在服務器上找到所有的屬性並且讀寫這些屬性。
通用屬性規範:通用屬性規範位於屬性協議之上,定義了屬性的類型及其使用方法。
發射功率:2.4GHz ISM頻段對無需授權的設備有最大發射功率的限製。對於低功耗藍牙,規範規定最大發射功率為+10dBm。同時規範也規定了最小發射功率不應低於-20dBm。
通信距離:假設天線和匹配電路的差別不大,鏈路預算的主要來源是路徑損耗。路徑損耗是指從發射機天線到接收機天線的能量消耗,可參考以下公式:
Path Loss= 40 + 25log(D)
下表給出了一些具體數值。
路徑損耗(Path Loss) | 距離(D) |
50dB | 2.5m |
60dB | 6.3m |
70dB | 16m |
80dB | 40m |
90dB | 100m |
100dB | 250m |
110dB | 630m |
低功耗藍牙規定接收機的靈敏度要高於-70dbm。換句話說,如果發射功率為-20dBm,接收機靈敏度為-70dBm,則允許的路徑損耗為50dB,對應於2.5m的通信距離。這也是低功耗藍牙以最低功率發射,並在接收機靈敏度最低的情況下所達到的通信距離。
如果發射功率為0dBm,接收機靈敏度為-80dBm,則允許的路徑損耗為80dB,對應於40m的通信距離。這是低功耗藍牙在常見的發射功率和接收機靈敏度情況下所達到的通信距離。
如果發射功率為10dBm,接收機靈敏度為-90dBm,則允許的路徑損耗為100dB,對應於250m的通信距離。這是低功耗藍牙以最高功率發射,並在接收機靈敏度非常好的情況下所達到的通信距離。

圖3 掃描發現交互圖
掃描是低功耗藍牙廣播的重要組成部分。掃描用於接收廣播事件。掃描時間取決於有多少時間用於掃描以及需要多快發現其他設備。如圖3,對於廣播報文針對不同需求分如下幾種:通用廣播指示,定向連接指示,可掃描指示,主動掃描請求,主動掃描響應,連接請求。
如圖4所示,設備首先廣播可連接廣播事件,其他設備收到之後,即可發起連接。需要強調的是連接請求一旦收到或者發出,設備即建立了連接,數據交換隨之開始。

圖4 連接建立交互圖

圖5 低功耗藍牙狀態機
鏈路層狀態機清晰解釋了低功耗藍牙的設計策略:將廣播、發現和連接過程與連接中的數據傳輸分離開來,能實現廣播設備的超低功耗。主要有以下特點
1、 鏈路層狀態機隻有連接態時會使用到數據信道,其他各個狀態均使用廣播信道。連接態的設備隻能通過斷開連接轉換為就緒態,而不能進入其他狀態。
2、 連接態分主從兩個子狀態。主連接態隻能從發起態進入,首先向對端設備發起連接後成為主設備。從連接態隻能從廣播態進入。為了成為從設備,必須先廣播,在收到連接請求後進入從連接態成為從設備。
3、 一個設備不能同時成為主從設備。因此從設備不能發起連接,因為這會使其成為主設備。一個設備也不可以同時成為兩個主設備的從設備。事實上,同時作為兩個主設備的從設備,是比同時成為主設備和從設備更複雜的情況。對於經典藍牙,這被稱為分散式網絡(Scatternet),而低功耗藍牙不支持這種網絡。
iBeacon作為新興的藍牙設備,能夠利用BLE技術實現室內定位,能夠讓手機知道是否處於一個Beacon的範圍內。使用這種技術能夠產生多種多樣的應用:微信搖一搖推送,電子書包,停車場尋車或者超市優惠券推送等等。
iBeacon為了保證低功耗,隻支持不可連接的Advertising模式和可被連接的Connectable模式。由於BLE的特性,iBeacon會在這兩種模式切換。Advertising模式時不接受任何連接請求,但是會向外通告自身的所有信息。通告發送完畢後設備應切換至可連接模式,等待處於連接模式的設備連接。
那麼iBeacon提供了哪些數據呢,如圖6:

圖6 iBeacon廣告數據包攜帶的數據圖
以上數據已經將廣告數據包的報頭、修正地址、PDU數據包的報頭和其中的MAC地址部分去掉了。該部分數據隻包含了實際信息數據。整理後如下:
02 01 06 1A FF 4C 00 02 15:iBeacon prefix
E2 C5 6D B5 DF FB 48 D2 B0 60 D0 F5 A7 10 96 E0:proximity UUID
00 01:major
00 01:minor
C6:TX power

圖7 攜帶數據包格式圖
報文包括了iBeacon的Proximity UUID,Major和Minor 編號以及TX-power。
Proximity UUID:是iBeacon獨有的身份標識,是將iBeacon與他人區分開來的id。實際應用中采用相同UUID的iBeacon能夠被後台的應用程序使用這個UUID掃描到。
Major /Minor:Major和Minor通常會組合使用,用來標識特定的iBeacon。比如商場內不同的商鋪采用不同Major,特定的Major能夠告訴用戶所處的商店。而Minor則可以在該商店標識具體的位置。
iBeacon提供的參數中TX power用於確定你和Beacon之間距離有多近。通過這個值可以獲取到精確到米的距離,也就是藍牙定位的基礎。
TX power是距離設備1米處測的信號強度值。假如接收到的信號強度弱於該值,則證明距離應該大於1米,反之則近於一米。因此隻要知道1米處的RSSI,以及當前的RSSI(均可從接收信號中獲取),那麼就計算出和iBeacon的距離。
通過計算和三個iBeacon的距離,能夠通過三角算法定位手機或者其他有定位需求的藍牙終端的位置。

圖8 iBeacon定位終端
由於iBeacon屬於無源設備,我們可以把藍牙和WiFi結合起來,通過AP管理iBeacon,也可以讓AP的BLE模塊發送通告協助定位

圖9 iBeacon和WiFi組合定位
同樣的iBeacon能夠提供Proximity UUID,Major和Minor編號。利用這些數據,我們可以有更多可選的業務組合。
比較典型的應用就是微信搖一搖功能。在騰訊上可以把iBeacon的UUID,Major,Minor這三個參數和指定網站綁定,這樣打開微信和藍牙功能時,當通過搖一搖功能掃描都周圍iBeacon的參數,APP能夠上報並查找到相應的網站推送給用戶。
低功耗藍牙的低成本,低能耗,易部署和多樣化的應用為未來大互聯時代的無線部署方案填上了一塊重要的拚圖。然而低功耗藍牙也存在著一定的局限,因為能耗和信號強度本身是相互矛盾的,而且低功耗藍牙目前盡管可以加入分散網(Scatternet)或完整的網狀網(Mesh)支持,但是這會大量增加內存和提高能量消耗來維護網絡,所以低功耗藍牙目前並沒有涉及學術界廣泛研究的網絡拓撲學。
由於低功耗藍牙這樣的網絡特性,管理低功耗藍牙的AP就應運而生,相應的,低功耗藍牙也作為WiFi的補充滿足了特定細分場景的無線部署。通過藍牙AP管理iBeacon等低功耗藍牙設備,彌補了低功耗藍牙設備間相互之間的連接限製,並能夠將相應的信息上傳給服務器,為更複雜的業務提供了可能。
(0)
親~登錄後才可以操作哦!
確定你的郵箱還未認證,請認證郵箱或綁定手機後進行當前操作