Android 4.2藍牙介紹

Tieto公司某藍牙大牛寫得《程序員》投稿文章 php

Android 4.2藍牙介紹

藍牙一詞源於公元十世紀丹麥國王HaraldBlatand名字中的BlatandBlatand的英文之意就是Blue tooth。這是由於這位讓丹麥人引覺得傲的國王酷愛吃藍莓以致於牙齦都被染成藍色。因爲Blatand統一了丹麥和挪威,因此,做爲無線通訊技術的一種,藍牙技術之因此取名Bluetooth可謂志向遠大。不過,在以Android爲表明的智能機出現之前,藍牙在早期智能機甚至功能機中一直扮演着雞肋的角色。那麼,隨着無線通訊技術的快速發展以及Android的普及,藍牙能給咱們帶來哪些新的變化呢? html

本文將從藍牙核心規範的發展歷史、最具應用前景的幾個藍牙Profile以及Android 4.2中藍牙實現狀況等幾個方面向讀者介紹藍牙技術。 android

  藍牙規範介紹

做爲一種通用的無線通訊技術,規範天然是藍牙技術的核心。藍牙規範可分爲兩個層次,如圖1所示: 程序員

1  藍牙規範的層次結構 安全

由圖1可知藍牙規範包括: 服務器

  • Core Specification(核心規範),用於規定藍牙設備必須實現的通用功能和協議層次。它由軟件和硬件模塊組成,兩個模塊之間的信息和數據經過主機控制接口(HCI)的解釋才能進行傳遞。
  • Profiles(藍牙應用規範),它從應用場景的角度爲藍牙技術的使用制定了不一樣的規範。這也是和大衆平常生活接觸最多的一部分。藍牙支持不少Profiles,下文將介紹幾種使用最普遍的藍牙應用規範。

 

1.1  藍牙核心規範介紹

核心規範是藍牙協議家族的基礎,自藍牙技術聯盟(Bluetooth SIGSpecial 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中,

  • EDR:全稱爲Enhanced Data Rate。經過提升多任務處理和多種藍牙設備同時運行的能力,EDR使得藍牙設備的傳輸速度可達3Mbps。
  • HS:全稱爲High Speed。HS使得Bluetooth能利用WiFi做爲傳輸方式進行數據傳輸,其支持的傳輸速度最高可達24Mbps。其核心是在802.11的基礎上,經過集成802.11協議適配層,使得藍牙協議棧能夠根據任務和設備的不一樣,選擇正確的射頻。
  • BLE:全稱爲Bluetooth Low Energy。藍牙規範4.0最重要的一個特性就是低功耗。BLE使得藍牙設備可經過一粒鈕釦電池供電以維持續工做數年之久。很明顯,BLE使得藍牙設備在鐘錶、遠程控制、醫療保健及運動感應器等市場具備極光明的應用場景。

雖然藍牙4.0規範3年就發佈,但目前使用最普遍的藍牙核心規範版本仍是3.0。智能手機中只有Iphone 4SIphone5,三星GallaxyS3S4Note2等少數設備支持藍牙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)

主要用途

手機遊戲機耳機,立體聲音頻流,汽車PC

手機,遊戲機,PC體育健身醫療保健,汽車,家用電子自動化工業

那麼,藍牙核心規範4.0有什麼特別之處呢?藍牙核心規範4.0的模塊如圖2所示:

2  藍牙核心規範4.0的模塊

由圖2可知,藍牙核心規範4.0的模塊增長了如下幾個藍牙低功耗組件。

  • GATT表示服務器屬性和客戶端屬性,描述了屬性服務器中使用的服務層次,特色和屬性。BLE設備使用它做爲藍牙低功耗應用規範的服務發現。
  • ATT實現了屬性客戶端和服務器之間的點對點協議。ATT客戶端給ATT服務器發送請命令。ATT服務器向ATT客戶端發送回覆和通知。
  • SMP用於生成對等協議的加密密鑰和身份密鑰。SMP管理加密密鑰和身份密鑰的存儲,它經過生成和解析設備的地址來識別藍牙設備。

1.2  藍牙應用規範[②]

藍牙SIG根據不一樣的應用場景定義了不一樣的藍牙應用規範,截止到如今,發佈了40個藍牙應用規範。本節介紹最經常使用的五個的藍牙應用規範。

1.2.1  Advanced Audio Distribution Profile

Advanced Audio Distribution Profile 簡稱爲A2DP(高質量音頻分發規範)定義瞭如何將立體聲質量的音頻經過流媒體的方式從媒體源傳輸到接收器上。A2DP使用Asynchronous Connectionless LinkACL,藍牙異步傳輸)信道傳輸高質量音頻內容,它依賴於Generic Audio/Video Distribution ProfileGAVDP,通用音頻/視頻分發規範)。A2DP必須支持低複雜度及Sub-bandCodecSBC,低帶寬編解碼),可選支持MPEG12音頻,MPEG24AACA2DP的應用場景如圖4[1]所示:A2DP的應用場景如圖3所示:

3  A2DP的應用場景

由圖3可知,A2DP有兩種應用場景分別是播放和錄音。

  • 播放場景是具備藍牙功能的播放器經過A2DP向藍牙耳機或藍牙立體聲揚聲器傳送高質量音頻。
  • 錄音場景是具備藍牙功能的麥克風經過A2DP向藍牙錄音器傳送高質量音頻。

A2DP相關的規範有Video Distribution ProfileVDP,視頻分發規範),Audio/Video Remote Control ProfileAVRCP,音頻/視頻運程控制規範)。

1.2.2  Object Push Profile

OPP(對象推送規範)定義了推送服務器和客戶端之間基於Generic Object Exchange ProfileGOEP,通用對象交換規範)進行對象交換的規範。OPP的應用場景如圖4所示:

4  OPP的應用場景

由圖4可知,OPP主要用於手機與手機或者手機與電腦之間經過藍牙進行文件操做。可交換的文件類型有電話本,備忘錄,日程表等文本文件,還有視頻,聲音,圖片,音樂等多媒體文件。

Wi-Fi DirectWiFi直連)[③]和藍牙OPP有相同的功能。WiFi直連是WiFi設備之間不須要無線路由器,直接進行對象交換。它的優勢是傳輸距離長、速度快,缺點是功耗高。

1.2.3  Hands-Free Profile

HFPHFP,免提規範)定義了藍牙音頻網關設備如何經過藍牙免提設備撥打和接聽電話。HFP的應用場景如圖5所示:

5  HFP的應用場景

由圖5可知,HFP包括兩個角色:

  • Audio Gateway(AG,音頻網關)和Hands-Free Unit(HF,免提設備)。AG是音頻輸入和輸出的設備,典型的AG設備是手機。HF是執行音頻網關的遠程音頻輸入輸出設備。
  • HFP常見的場景是汽車上的車載套件,當車載套件和耳機經過藍牙方式鏈接到手機時,經過無線藍牙耳機撥打和接聽電話。

HFP相關的規範有Headset ProfileHSP,耳機規範),Phonebook Access ProfilePBAP,電話簿訪問規範。

1.2.4  Heart Rate Profile

HRP(心率規範)定位與和醫療/健康相關的應用場景中,它使得藍牙設備能與心率傳感器交互。相關場景如圖6所示:

6  HRP的角色關係和應用場景

由圖6可知:

  • 左圖是HRP定義的角色關係。HRP中有兩個角色:心率感應器和收集器。心率感應器是GATT服務器,是測量心率的設備,它包含心率服務和設備信息服務,心率服務導出心率測量數據;收集器是GATT客戶端,是從心率感應器接收心率測量數據和其它數據的設備。
  • 右圖是HRP的應用場景。心率規範用於讓設備得到心率傳感器的心率測量和其它數據。例如,護士或醫生能夠用心率傳感器測量病人的心率,並把心率數據傳到筆記本或手持設備上。

隨着人口老齡化,醫療設備和醫護人員資源不足,能夠運用藍牙健康規範實現遠程醫療。筆者所在的Tieto公司在Android平臺上運用心率規範開發了心率測量的原型程序,詳細介紹請看視頻http://www.youtube.com/watch?v=r_t-hstRgDs&feature=youtu.be

HRP相關的健康規範有Glucose ProfileGLP,血糖規範),Blood Pressure ProfileBLP,血壓規範BLP),Health Thermometer ProfileHTP,健康體溫計規範)。

1.2.5  Cycling Speed and Cadence Profile

CSCP(自行車速度和步調規範)讓人們在騎自行車鍛鍊時跟蹤速度和節奏。CSCP也基於GATT的規範。自行車速度和步調規範的角色關係和應用場景如圖7所示:

7  CSCP的角色關係和應用場景

由圖7可知:

  • 左圖是CSCP的角色關係。CSCP定義了兩個角色:自行車速度和步調感應器和收集器。CSC感應器是GATT服務器,向收集器報告車輪轉速數據或軸轉速數據。CSC感應器包含CSC服務和設備信息服務;收集器是GATT客戶端,從CSC感應器接收自行車的速度和步調數據。
  • 右圖是CSCP的應用場景。傳感器測量被普遍應用於運動和健身,經過傳感器來監視和控制訓練強調,以及在多個訓練中衡量進展狀況。自行車速度傳感器和自行車踏頻傳感器是用戶測量車輪速度或蹬踏節奏的設備。任何設備實現CSC規範能夠與CSC傳感器鏈接並接收數據。

CSCP相關的規範有Running Speed and Cadence ProfileRSCS,跑步速度和步調規範

  Android中的Bluetooth

Android 4.2以前,Google一直使用的是Linux官方藍牙協議棧,即知名老牌開源項目BlueZBlueZ其實是由高通公司在20015月基於GPL協議發佈的一個開源項目,該項目僅發佈一個月後就被Linux之父Linux Torvalds歸入了Linux內核,並作爲Linux 2.4.6內核的官方藍牙協議棧。隨着Android設備的流行,BlueZ也獲得了極大的完善和擴展。例如Android 4.1BlueZ的版本升級爲4.93,它支持藍牙核心規範4.0,並實現了絕大部分的Profiles

BlueZ如今正處於其巔峯時期,但好景不長。從Android 4.2Jelly Bean開始,Google便在Android源碼中推出了它和博通公司一塊兒開發的BlueDroid以替代BlueZ。雖然由於時間及成熟度的緣由,大部分手機廠商在Android 4.2中仍繼續使用BlueZ。但據筆者瞭解,BlueZ的創始者,高通公司也將在基於其芯片的Android參考設計中去除BlueZ,並僅支持BlueDroid

BlueZ的將來如何筆者姑且不論。不過,能讓高通改弦易轍,BlueDroid自有其合理之處。相比BlueZBlueDroid最值得稱道的地方就是其框架結構變得更爲簡潔和清晰。另外,藉助HALHardware Abstraction Layer,硬件抽象層),BlueDroid終於再也不和dbus有任何瓜葛。圖8所示爲Android 4.2BlueDroid的框架結構圖[④]

8  Android 4.2BlueDroid框架結構圖

由圖8可知,Android4.2BlueDroid框架包括如下幾個部分:

  • 應用程序經過android.bluetooth package下的API來調用系統的Bluetooth功能。
  • 應用層空間增長了一個名爲Bluetooth的App。它作爲系統的bluetooth核心進程而存在。其內部將經過JNI來調用Bluetooth HAL層以完成各類藍牙請求。
  • Bluetooth HAL也屬於Android 4.2新增模塊,它由藍牙核心規範硬件抽象層和藍牙應用規範硬件抽象層組成。因爲HAL層的隔離做用,上層代碼可輕鬆移植到不一樣芯片平臺。
  • 做爲整個藍牙服務的核心,Bluetooth Stack模塊則由Bluetooth Application Layer(縮寫爲BTA)和Bluetooth Embedded System(縮寫爲BTE)兩大部分組成。BTA實現了藍牙設備管理、狀態管理及一些應用規範。而BTE則經過HCI與廠商藍牙芯片交互以實現了藍牙協議棧的通用功能和相關協議。另外,BTE還包括一個統一內核接口(GKI),藍牙芯片廠商可藉助GKI快速輕鬆得移植藍牙協議棧到其餘操做系統或手機平臺上。
  • Vendor Extentions(廠商擴展):開發者能夠添加自定義擴展以實現廠商特定的模塊和組件。

除了BlueDroid外,在今年的Google I/O大會,谷歌公司還宣佈將於與蘋果、微軟和黑莓等公司共同支持Bluetooth Smart ReadyBSR,藍牙智能就緒)和Bluetooth SmartBS,藍牙智能)技術。這項技術使藍牙設備或應用能夠很是容易地鏈接全球成千上萬的藍牙設備,藍牙使用者的生活也所以變得更加簡單。BSRBS都是創建在藍牙核心規範4.0GATT應用規範。即將發佈的Android 4.3MR2)支持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的移植工做,相信能幫助它們在競爭日趨白日化的移動世界中拔得先機。

另外,做爲一種成熟、低功耗無線通訊技術的先鋒,藍牙將來在可穿戴設備領域中也將扮演愈來愈重要的做用。那時,藍牙或許就會真正像「牙齒」同樣成爲各類設備中不可或缺的一部分了。

[①]http://zh.wikipedia.org/wiki/Bluetooth

[②]詳情可參考http://developer.bluetooth.org/TechnologyOverview/Pages/Profiles.aspx

[③]關於WFD,讀者可參考http://blog.csdn.net/innost/article/details/8474683

[④]http://source.android.com/devices/bluetooth.html

 轉自:http://my.oschina.net/innost/blog/140871

相關文章
相關標籤/搜索