Tieto公司某藍牙大牛寫得《程序員》投稿文章 php
藍牙一詞源於公元十世紀丹麥國王HaraldBlatand名字中的Blatand。Blatand的英文之意就是Blue tooth。這是由於這位讓丹麥人引覺得傲的國王酷愛吃藍莓以致於牙齦都被染成藍色。因爲Blatand統一了丹麥和挪威,因此,做爲無線通訊技術的一種,藍牙技術之因此取名Bluetooth可謂志向遠大。不過,在以Android爲表明的智能機出現之前,藍牙在早期智能機甚至功能機中一直扮演着「雞肋」的角色。那麼,隨着無線通訊技術的快速發展以及Android的普及,藍牙能給咱們帶來哪些新的變化呢? html
本文將從藍牙核心規範的發展歷史、最具應用前景的幾個藍牙Profile以及Android 4.2中藍牙實現狀況等幾個方面向讀者介紹藍牙技術。 android
做爲一種通用的無線通訊技術,規範天然是藍牙技術的核心。藍牙規範可分爲兩個層次,如圖1所示: 程序員
圖1 藍牙規範的層次結構 安全
由圖1可知藍牙規範包括: 服務器
核心規範是藍牙協議家族的基礎,自藍牙技術聯盟(Bluetooth SIG,Special Interest Group)在1999年頒佈藍牙核心規範1.0版本以來,到目前爲止藍牙SIG一共發佈了七個重要版本。每個版本都促使藍牙技術朝着更快、更安全、更省電的方向發展。表1所示爲藍牙核心規範[①]發展歷史。 框架
表1 藍牙核心規範發展介紹 less
版本 異步 |
規範發佈日期 ide |
加強功能 |
0.7 |
1998年10月19日 |
Baseband、LMP |
0.8 |
1999年1月21日 |
HCI、L2CAP、RFCOMM |
0.9 |
1999年4月30日 |
OBEX與IrDA的互通性 |
1.0 Draft |
1999年7月5日 |
SDP、TCS |
1.0 A |
1999年7月26日 |
|
1.0 B |
2000年10月1日 |
安全性,廠商設備之間鏈接兼容性 |
1.1 |
2001年2月22日 |
IEEE 802.15.1 |
1.2 |
2003年11月5日 |
快速鏈接、自適應跳頻、錯誤檢測和流程控制、同步能力 |
2.0 + EDR |
2004年11月9日 |
EDR傳輸率提高至2-3Mbps |
2.1 + EDR |
2007年7月26日 |
擴展查詢響應、簡易安全配對、暫停與繼續加密、Sniff省電 |
3.0 + HS |
2009年4月21日 |
交替射頻技術、802.11協議適配層、電源管理、取消了UMB的應用 |
4.0 +BLE |
2010年6月30日 |
低功耗物理層和鏈路層、AES加密、Attribute Protocol(ATT)、Generic Attribute Profile(GATT)、Security Manager(SM) |
表1中,
雖然藍牙4.0規範3年就發佈,但目前使用最普遍的藍牙核心規範版本仍是3.0。智能手機中只有Iphone 4S,Iphone5,三星GallaxyS3、S4、Note2等少數設備支持藍牙4.0。不過,Google已經在Android 4.3中添加了對4.0的支持。很明顯,隨着Android的持續推動和衆多廠商的齊力支持,筆者估計在將來較短的一段時間內,藍牙核心規範4.0將獲得迅速普及。表2是經典藍牙與低功耗藍牙的一些區別:
表2 經典藍牙與低功耗藍牙的區別
技術規範 |
經典藍牙(2.1 &3.0) |
低功耗藍牙(4.0) |
無線電頻率 |
2.4GHz |
2.4GHz |
距離 |
10米/100米 |
30米 |
數據速率 |
1-3Mbps |
1Mbps |
應用吞吐量 |
0.7-2.1Mbps |
0.2Mbps |
發送數據的總時間 |
100ms |
<6ms |
耗電量 |
1 |
0.01至0.5 |
最大操做電流 |
<30mA |
<15mA(最高運行時爲15 mA) |
主要用途 |
那麼,藍牙核心規範4.0有什麼特別之處呢?藍牙核心規範4.0的模塊如圖2所示:
圖2 藍牙核心規範4.0的模塊
由圖2可知,藍牙核心規範4.0的模塊增長了如下幾個藍牙低功耗組件。
藍牙SIG根據不一樣的應用場景定義了不一樣的藍牙應用規範,截止到如今,發佈了40個藍牙應用規範。本節介紹最經常使用的五個的藍牙應用規範。
Advanced Audio Distribution Profile 簡稱爲A2DP(高質量音頻分發規範)定義瞭如何將立體聲質量的音頻經過流媒體的方式從媒體源傳輸到接收器上。A2DP使用Asynchronous Connectionless Link(ACL,藍牙異步傳輸)信道傳輸高質量音頻內容,它依賴於Generic Audio/Video Distribution Profile(GAVDP,通用音頻/視頻分發規範)。A2DP必須支持低複雜度及Sub-bandCodec(SBC,低帶寬編解碼),可選支持MPEG1,2音頻,MPEG2、4AAC。A2DP的應用場景如圖4[1]所示:A2DP的應用場景如圖3所示:
圖3 A2DP的應用場景
由圖3可知,A2DP有兩種應用場景分別是播放和錄音。
和A2DP相關的規範有Video Distribution Profile(VDP,視頻分發規範),Audio/Video Remote Control Profile(AVRCP,音頻/視頻運程控制規範)。
OPP(對象推送規範)定義了推送服務器和客戶端之間基於Generic Object Exchange Profile(GOEP,通用對象交換規範)進行對象交換的規範。OPP的應用場景如圖4所示:
圖4 OPP的應用場景
由圖4可知,OPP主要用於手機與手機或者手機與電腦之間經過藍牙進行文件操做。可交換的文件類型有電話本,備忘錄,日程表等文本文件,還有視頻,聲音,圖片,音樂等多媒體文件。
Wi-Fi Direct(WiFi直連)[③]和藍牙OPP有相同的功能。WiFi直連是WiFi設備之間不須要無線路由器,直接進行對象交換。它的優勢是傳輸距離長、速度快,缺點是功耗高。
HFP(HFP,免提規範)定義了藍牙音頻網關設備如何經過藍牙免提設備撥打和接聽電話。HFP的應用場景如圖5所示:
圖5 HFP的應用場景
由圖5可知,HFP包括兩個角色:
和HFP相關的規範有Headset Profile(HSP,耳機規範),Phonebook Access Profile(PBAP,電話簿訪問規範。
HRP(心率規範)定位與和醫療/健康相關的應用場景中,它使得藍牙設備能與心率傳感器交互。相關場景如圖6所示:
圖6 HRP的角色關係和應用場景
由圖6可知:
隨着人口老齡化,醫療設備和醫護人員資源不足,能夠運用藍牙健康規範實現遠程醫療。筆者所在的Tieto公司在Android平臺上運用心率規範開發了心率測量的原型程序,詳細介紹請看視頻http://www.youtube.com/watch?v=r_t-hstRgDs&feature=youtu.be。
和HRP相關的健康規範有Glucose Profile(GLP,血糖規範),Blood Pressure Profile(BLP,血壓規範BLP),Health Thermometer Profile(HTP,健康體溫計規範)。
CSCP(自行車速度和步調規範)讓人們在騎自行車鍛鍊時跟蹤速度和節奏。CSCP也基於GATT的規範。自行車速度和步調規範的角色關係和應用場景如圖7所示:
圖7 CSCP的角色關係和應用場景
由圖7可知:
和CSCP相關的規範有Running Speed and Cadence Profile(RSCS,跑步速度和步調規範)。
Android 4.2以前,Google一直使用的是Linux官方藍牙協議棧,即知名老牌開源項目BlueZ。BlueZ其實是由高通公司在2001年5月基於GPL協議發佈的一個開源項目,該項目僅發佈一個月後就被Linux之父Linux Torvalds歸入了Linux內核,並作爲Linux 2.4.6內核的官方藍牙協議棧。隨着Android設備的流行,BlueZ也獲得了極大的完善和擴展。例如Android 4.1中BlueZ的版本升級爲4.93,它支持藍牙核心規範4.0,並實現了絕大部分的Profiles。
BlueZ如今正處於其巔峯時期,但好景不長。從Android 4.2即Jelly Bean開始,Google便在Android源碼中推出了它和博通公司一塊兒開發的BlueDroid以替代BlueZ。雖然由於時間及成熟度的緣由,大部分手機廠商在Android 4.2中仍繼續使用BlueZ。但據筆者瞭解,BlueZ的創始者,高通公司也將在基於其芯片的Android參考設計中去除BlueZ,並僅支持BlueDroid。
BlueZ的將來如何筆者姑且不論。不過,能讓高通改弦易轍,BlueDroid自有其合理之處。相比BlueZ,BlueDroid最值得稱道的地方就是其框架結構變得更爲簡潔和清晰。另外,藉助HAL(Hardware Abstraction Layer,硬件抽象層),BlueDroid終於再也不和dbus有任何瓜葛。圖8所示爲Android 4.2中BlueDroid的框架結構圖[④]:
圖8 Android 4.2BlueDroid框架結構圖
由圖8可知,Android4.2中BlueDroid框架包括如下幾個部分:
除了BlueDroid外,在今年的Google I/O大會,谷歌公司還宣佈將於與蘋果、微軟和黑莓等公司共同支持Bluetooth Smart Ready(BSR,藍牙智能就緒)和Bluetooth Smart(BS,藍牙智能)技術。這項技術使藍牙設備或應用能夠很是容易地鏈接全球成千上萬的藍牙設備,藍牙使用者的生活也所以變得更加簡單。BSR和BS都是創建在藍牙核心規範4.0和GATT應用規範。即將發佈的Android 4.3(MR2)支持BSR技術,使得BS的開發者能夠輕易地將其設備和應用與Android BSR設備進行鏈接和發佈。藍牙使用者運用BS的智能應用配件(如健康監控或醫療設備)收集數據,再傳送到支持BSR設備(如智能手機或平板)上。
另外,藍牙SIG也正在研發工具Bluetooth Application Accelerator(藍牙應用加速器)。據可靠消息,該工具將隨Android 4.3發佈,並將幫助開發者在Android 4.3上快速開發藍牙應用,從而加快相關產品的研發時間。
本文對藍牙核心規範、藍牙應用規範以及Android 4.2中的藍牙協議棧BlueDroid進行了一些簡單介紹。
從筆者瞭解的狀況來看,BlueDroid雖然對BlueZ大有取而代之的趨勢,但如今它對藍牙應用規範的支持還不夠完善。例如BlueDroid僅支持AVRCP 1.0,而非最新的AVRCP 1.5。因此,國內某些芯片或手機廠商若能及早完成BlueZ相關模塊到BlueDroid的移植工做,相信能幫助它們在競爭日趨白日化的移動世界中拔得先機。
另外,做爲一種成熟、低功耗無線通訊技術的先鋒,藍牙將來在可穿戴設備領域中也將扮演愈來愈重要的做用。那時,藍牙或許就會真正像「牙齒」同樣成爲各類設備中不可或缺的一部分了。