賈麗云++林曉煥
摘 要:作為藍牙4.0技術的核心規(guī)范,藍牙低功耗(BLE)無線技術給移動應用程序開發(fā)人員提供了訪問外部硬件通道,也使硬件工程師方便可靠地從每一個主流移動操作系統(tǒng)訪問BLE( Bluetooth Low Energy )設備。研究了藍牙低功耗技術協(xié)議原理及架構,介紹了藍牙無線通信的幾種模式。以iOS為平臺提出了一種由BLE氣象數(shù)據(jù)采集模塊、iPhone手機以及手機上的專用APP構成的動態(tài)氣象監(jiān)測系統(tǒng)方案。
關鍵詞關鍵詞:iOS;iPhone;BLE;氣象監(jiān)測
DOIDOI:10.11907/rjdk.161944
中圖分類號:TP319
文獻標識碼:A 文章編號文章編號:16727800(2016)011010303
0 引言
越來越多的手機及可穿戴設備使用藍牙4.0技術。該技術優(yōu)點:①低功耗:在靜態(tài)狀態(tài),一節(jié)鈕扣電池可支持數(shù)年之久;②低成本:藍牙技術逐步成為智能手機標配;③開放性:以2.4GHz頻段全球開放。藍牙4.0技術使可穿戴設備炙手可熱,小米手環(huán)、蘋果公司的iBeacon等產(chǎn)品受到大眾歡迎,加速了物聯(lián)網(wǎng)革命的發(fā)展進程[1]。
1 BLE協(xié)議架構
氣象數(shù)據(jù)監(jiān)測系統(tǒng)采集模塊使用Nordic自主研發(fā)的nRF51822藍牙低功耗2.4GHz片上系統(tǒng)。nRF51822采用優(yōu)化的32位ARM Cortex-M0處理器,使BLE模式達到-92.5dBm 敏感度,最高達+4dBm的輸出功率,支持256KB片上閃存和16KB RAM,成為行業(yè)領先者。
藍牙低功耗(BLE)協(xié)議棧分為應用程序、主機和控制器3個部分,如圖1所示[2]。應用程序負責與實際用例相關的邏輯、用戶界面和數(shù)據(jù)處理,實現(xiàn)產(chǎn)品特定功能;主機包含GAP、GATT、SMP、ATT、L2CAP以及HCI層,可管理兩個或多個BLE設備相互間的通信;控制器主要用于收發(fā)編碼過的無線信號,并通過解碼這些信號獲取內部信息包[3]。
(1)物理層(PHY)。包含模擬通信電路,負責調制解調,將模擬信號轉換成數(shù)字信號[4]。
(2)鏈路層(LL)。負責管理設備協(xié)議棧狀態(tài),此層定義4個角色:①廣告者(Advertiser):發(fā)送廣告包的設備;②掃描儀(Scanner):掃描廣告包設備;③主人(Master):啟動連接并對連接進行管理的設備;④奴隸(Slave):接受連接請求并與控制者時間同步[5]。
(3)主機控制接口(HCI)是一個標準協(xié)議。允許主機和控制器在串行接口進行通信[6]。
(4)邏輯鏈路控制和自適應協(xié)議(L2CAP)。是一個協(xié)議多路復用器,負責將上層的多個協(xié)議封裝成標準的BLE數(shù)據(jù)包格式,它支持分段和重組。
(5)安全管理協(xié)議(SMP)。既是一個協(xié)議也是一系列安全算法,負責為藍牙協(xié)議棧提供生成和交換安全密鑰能力,讓各節(jié)點通過加密鏈接安全交流,信任遠程設備身份[7]。
(6)屬性協(xié)議(ATT)。是一個簡單的客戶端/服務器無狀態(tài)協(xié)議,在BLE中,每個設備是一個客戶端或一個服務器,或者兩者兼有。
(7)通用訪問配置(GAP)。允許BLE設備相互操作。它提供一個框架,任何BLE實現(xiàn)必須允許設備發(fā)現(xiàn)彼此、廣播數(shù)據(jù)、建立安全連接以及執(zhí)行其它基本操作標準。
(8)通用屬性協(xié)議(GATT)。它是基于屬性協(xié)議(ATT),添加了一個層結構和數(shù)據(jù)抽象模型,定義數(shù)據(jù)如何在應用程序之間組織和交換 [8]。
2 藍牙無線通信原理
對BLE網(wǎng)絡中的角色、藍牙通信過程中廣告包類型及通信模式介紹如下。
2.1 BLE網(wǎng)絡中的角色
通用訪問配置(GAP)定義了BLE網(wǎng)絡中4個角色,每個特定設備可同時扮演一個或多個角色。
(1)廣播角色(Broadcaster):定期發(fā)送廣告包數(shù)據(jù),不建立連接,使用鏈路層(LL)廣告角色。
(2)觀察角色(Observer):優(yōu)化了廣播設備收集數(shù)據(jù)的應用程序,觀察者角色偵聽從廣播端嵌入在廣告包中的數(shù)據(jù),使用鏈路層(LL)掃描儀角色。
(3)中心角色(Central):相當于鏈路層(LL)主人角色,能夠建立多個連接設備,是連接的發(fā)起者。中心角色通常由智能手機或平板電腦扮演。
(4)外圍角色(Peripheral):相當于鏈路層(LL)奴隸角色,這個角色通過廣告包使中心角色找到它,隨后建立連接[9]。
2.2 廣告包分類
藍牙通訊廣告包分3種類型:①是否可連接。掃描儀在接收廣告包時是否可開啟連接,如果不能,則這個包只用來廣播;②是否可掃描。在收到廣告包時掃描儀是否可發(fā)起掃描請求;③是否定向。定向的廣告包只包含廣告者和目標掃描儀的藍牙地址,不允許負載用戶數(shù)據(jù),所有的定向廣告包都可連接,不定向廣告包不針對任何特定掃描儀,可包含用戶數(shù)據(jù)[10] 。
3 系統(tǒng)搭建
軟件整體設計基于MVC(Model-View-Controller),即模型-視圖-控制器,簡稱MVC。模型提供應用程序所需數(shù)據(jù)資源。視圖是用戶可以看到并與之交互的界面??刂破黜憫晥D傳遞的用戶事件,調用模型和視圖資源滿足用戶需求。MVC模式分工明確,降低了模塊之間的耦合性,是一種非常流行的設計模式[11]。
3.1 系統(tǒng)框架設計
系統(tǒng)通過藍牙4.0傳輸協(xié)議接收氣象數(shù)據(jù)采集模塊發(fā)送的數(shù)據(jù),在iPhone上進行氣象數(shù)據(jù)處理分析及顯示,系統(tǒng)框架如圖2所示。
3.2 模型處理
本系統(tǒng)主要對溫度、濕度、氣壓數(shù)據(jù)進行實時監(jiān)測,并繪制相應的變化趨勢圖,提供氣象預測功能。通常,氣壓隨時間增加預示晴天,氣壓不斷減小則更接近陰天或下雨,模型如表1所示。采用滑動均值濾波算法,采樣間隔為30分鐘。
3.3 數(shù)據(jù)庫設計
數(shù)據(jù)庫采用蘋果自帶的Core Data框架,它提供了對象-關系映射(ORM)功能,能夠將OC對象轉化成數(shù)據(jù),保存在SQLite數(shù)據(jù)庫文件中,也能夠將數(shù)據(jù)還原成OC對象。本方案創(chuàng)建了兩個實體對象:WeatherFob(氣象設備對象)和WeatherReading(數(shù)據(jù)對象),是一對多關系,如圖3所示。
3.4 藍牙模塊設計
BLE氣象設備信號采集與處理采用CoreBluetooth框架,與第三方藍牙4.0設備交互。為了減少數(shù)據(jù)傳輸開銷,方案采用不可連接的藍牙通信模式,將用戶數(shù)據(jù)封裝在廣告包中進行廣播,過程如圖4所示。本方案創(chuàng)建了一個ConnectionManager對象,繼承自NSObject類,遵守CBCentralManagerDelegate協(xié)議,實現(xiàn)協(xié)議中兩個方法:
4 系統(tǒng)測試
方案將原始廣告包打印在Xcode中的控制臺,如圖5所示,外圍設備名稱是WS,其中氣象設備發(fā)送的數(shù)據(jù)包含在KCBAdvDataManufactureData對應關鍵字中,KCBAdvDataIsConnectable = 0代表該氣象設備不可連接。系統(tǒng)將原始數(shù)據(jù)進行拆分解析顯示在iPhone手機上,如圖6所示。
5 結語
本方案充分利用了iOS設備強大的計算能力、靈活的
可編程性、足夠的存儲空間、網(wǎng)絡連接功能、便攜性等特點,使用藍牙4.0技術很好地解決了設備能耗問題,使本方案成本更低、速度更快、距離更遠,在花費較少的情況下,實現(xiàn)了便攜氣象監(jiān)測系統(tǒng)功能。
參考文獻:
[1] GENTILI M, SANNINO R, PETRACCA M. Bluevoice: voice communications over Bluetooth Low Energy in the internet of things scenario[J]. Computer Communications, 2016(1):116119.
[2] SEO J, CHO K, CHO W, et al. A discovery scheme based on carrier sensing in selforganizing Bluetooth Low Energy networks[J]. Journal of Network and Computer Applications, 2016(65): 7283.
[3] 徐金茍. 低能耗藍牙 4.0 協(xié)議原理與實現(xiàn)方法[J]. 微型電腦應用, 2012, 28(10): 1619.
[4] 陳子龍, 張紅雨, 李俊斌. 藍牙 4.0 無線傳感網(wǎng)數(shù)據(jù)采集及以太網(wǎng)傳輸設計[J]. 電聲技術, 2013 (10): 7477.
[5] 范晨燦. 基于藍牙 4.0 傳輸?shù)?Android 手機心電監(jiān)護系統(tǒng) [D]. 杭州: 浙江大學, 2013.
[6] DEORDICA B, ALEXANDRU M. Advertisement using Bluetooth Low Energy[J]. Review of the Air Force Academy, 2014 (2): 6566.
[7] GALININA O, MIKHAYLOV K, ANDREEV S, et al. Smart home gateway system over Bluetooth low energy with wireless energy transfer capability[J]. EURASIP Journal on Wireless Communications and Networking, 2015(1): 118.
[8] ROSEVALL J, RUSU C, TALAVERA G, et al. A wireless sensor insole for collecting gait data[J]. Stud. Health Technol. Inform, 2014(200): 176178.
[9] PHAN R C W, MINGARD P. Analyzing the secure simple pairing in Bluetooth v4.0[J]. Wireless Personal Communications, 2012, 64(4): 719737.
[10] LIN Z M, CHANG C H, CHOU N K, et al. Bluetooth Low Energy (BLE) based blood pressure monitoring system[C].Intelligent Green Building and Smart Grid (IGBSG), 2014 International Conference on. IEEE, 2014: 14.
[11] 郭昊. 基于 ASP .NET MVC3 和jQuery的網(wǎng)站應用開發(fā)[D]. 武漢: 華中師范大學, 2013.
(責任編輯:杜能鋼)