自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Tieto公司某藍(lán)牙大牛寫給《程序員》投稿文章

移動(dòng)開發(fā) Android
藍(lán)牙一詞源于公元十世紀(jì)丹麥國(guó)王HaraldBlatand名字中的Blatand。Blatand的英文之意就是Blue tooth。這是因?yàn)檫@位讓丹麥人引以為傲的國(guó)王酷愛吃藍(lán)莓以至于牙齦都被染成藍(lán)色。

Android 4.2藍(lán)牙介紹

藍(lán)牙一詞源于公元十世紀(jì)丹麥國(guó)王HaraldBlatand名字中的Blatand。Blatand的英文之意就是Blue tooth。這是因?yàn)檫@位讓丹麥人引以為傲的國(guó)王酷愛吃藍(lán)莓以至于牙齦都被染成藍(lán)色。由于Blatand統(tǒng)一了丹麥和挪威,所以,作為無(wú)線通信技術(shù)的一種,藍(lán)牙技術(shù)之所以取名Bluetooth可謂志向遠(yuǎn)大。不過(guò),在以Android為代表的智能機(jī)出現(xiàn)以前,藍(lán)牙在早期智能機(jī)甚至功能機(jī)中一直扮演著“雞肋”的角色。那么,隨著無(wú)線通信技術(shù)的快速發(fā)展以及Android的普及,藍(lán)牙能給我們帶來(lái)哪些新的變化呢?

本文將從藍(lán)牙核心規(guī)范的發(fā)展歷史、最具應(yīng)用前景的幾個(gè)藍(lán)牙Profile以及Android 4.2中藍(lán)牙實(shí)現(xiàn)情況等幾個(gè)方面向讀者介紹藍(lán)牙技術(shù)。
一 藍(lán)牙規(guī)范介紹

作為一種通用的無(wú)線通信技術(shù),規(guī)范自然是藍(lán)牙技術(shù)的核心。藍(lán)牙規(guī)范可分為兩個(gè)層次,如圖1所示:

由圖1可知藍(lán)牙規(guī)范包括:

Core Specification(核心規(guī)范),用于規(guī)定藍(lán)牙設(shè)備必須實(shí)現(xiàn)的通用功能和協(xié)議層次。它由軟件和硬件模塊組成,兩個(gè)模塊之間的信息和數(shù)據(jù)通過(guò)主機(jī)控制接口(HCI)的解釋才能進(jìn)行傳遞。

Profiles(藍(lán)牙應(yīng)用規(guī)范),它從應(yīng)用場(chǎng)景的角度為藍(lán)牙技術(shù)的使用制定了不同的規(guī)范。這也是和大眾日常生活接觸最多的一部分。藍(lán)牙支持很多Profiles,下文將介紹幾種使用最廣泛的藍(lán)牙應(yīng)用規(guī)范。

 

1.1  藍(lán)牙核心規(guī)范介紹

核心規(guī)范是藍(lán)牙協(xié)議家族的基礎(chǔ),自藍(lán)牙技術(shù)聯(lián)盟(Bluetooth SIGSpecial Interest Group)在1999年頒布藍(lán)牙核心規(guī)范1.0版本以來(lái),到目前為止藍(lán)牙SIG一共發(fā)布了七個(gè)重要版本。每一個(gè)版本都促使藍(lán)牙技術(shù)朝著更快、更安全、更省電的方向發(fā)展。表1所示為藍(lán)牙核心規(guī)]發(fā)展歷史。

 藍(lán)牙核心規(guī)范發(fā)展介紹


版本

規(guī)范發(fā)布日期

增強(qiáng)功能

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日

第一個(gè)正式版本

1.0 B

2000年10月1日

安全性,廠商設(shè)備之間連接兼容性

1.1

2001年2月22日

IEEE 802.15.1

1.2

2003年11月5日

快速連接、自適應(yīng)跳頻、錯(cuò)誤檢測(cè)和流程控制、同步能力

2.0 + EDR

2004年11月9日

EDR傳輸率提升至2-3Mbps

2.1 + EDR

2007年7月26日

擴(kuò)展查詢響應(yīng)、簡(jiǎn)易安全配對(duì)、暫停與繼續(xù)加密、Sniff省電

3.0 + HS

2009年4月21日

交替射頻技術(shù)、802.11協(xié)議適配層、電源管理、取消了UMB的應(yīng)用

4.0 +BLE

2010年6月30日

低功耗物理層和鏈路層、AES加密、Attribute Protocol(ATT)、Generic Attribute Profile(GATT)、Security Manager(SM)

1中,

EDR:全稱為Enhanced Data Rate。通過(guò)提高多任務(wù)處理和多種藍(lán)牙設(shè)備同時(shí)運(yùn)行的能力,EDR使得藍(lán)牙設(shè)備的傳輸速度可達(dá)3Mbps。

HS: 全稱為High Speed。HS使得Bluetooth能利用WiFi作為傳輸方式進(jìn)行數(shù)據(jù)傳輸,其支持的傳輸速度最高可達(dá)24Mbps。其核心是在802.11的基礎(chǔ) 上,通過(guò)集成802.11協(xié)議適配層,使得藍(lán)牙協(xié)議??梢愿鶕?jù)任務(wù)和設(shè)備的不同,選擇正確的射頻。

BLE:全稱為Bluetooth Low Energy。藍(lán)牙規(guī)范4.0最重要的一個(gè)特性就是低功耗。BLE使得藍(lán)牙設(shè)備可通過(guò)一粒紐扣電池供電以維持續(xù)工作數(shù)年之久。很明顯,BLE使得藍(lán)牙設(shè)備在鐘表、遠(yuǎn)程控制、醫(yī)療保健及運(yùn)動(dòng)感應(yīng)器等市場(chǎng)具有極光明的應(yīng)用場(chǎng)景。

雖然藍(lán)牙4.0規(guī)范3年就發(fā)布,但目前使用最廣泛的藍(lán)牙核心規(guī)范版本還是3.0。智能手機(jī)中只有Iphone 4S,Iphone5,三星GallaxyS3、S4、Note2等少數(shù)設(shè)備支持藍(lán)牙4.0。不過(guò),Google已經(jīng)在Android 4.3中添加了對(duì)4.0的支持。很明顯,隨著Android的持續(xù)推進(jìn)和眾多廠商的齊力支持,筆者估計(jì)在未來(lái)較短的一段時(shí)間內(nèi),藍(lán)牙核心規(guī)范4.0將得到迅速普及。表2是經(jīng)典藍(lán)牙與低功耗藍(lán)牙的一些區(qū)別:

經(jīng)典藍(lán)牙與低功耗藍(lán)牙的區(qū)別

技術(shù)規(guī)范

經(jīng)典藍(lán)牙(2.1 &3.0)

低功耗藍(lán)牙(4.0)

無(wú)線電頻率

2.4GHz

2.4GHz

距離

10米/100米

30米

數(shù)據(jù)速率

1-3Mbps

1Mbps

應(yīng)用吞吐量

0.7-2.1Mbps

0.2Mbps

發(fā)送數(shù)據(jù)的總時(shí)間

100ms

<6ms

耗電量

1

0.01至0.5

最大操作電流

<30mA

<15mA(最高運(yùn)行時(shí)為15 mA)

主要用途

手機(jī),游戲機(jī)耳機(jī),立體聲音頻流,汽車PC

手機(jī),游戲機(jī),PC,體育健身,醫(yī)療保健,汽車,家用電子自動(dòng)化工業(yè)

那么,藍(lán)牙核心規(guī)范4.0有什么特別之處呢?藍(lán)牙核心規(guī)范4.0的模塊如圖2所示:

由圖2可知,藍(lán)牙核心規(guī)范4.0的模塊增加了以下幾個(gè)藍(lán)牙低功耗組件。

GATT表示服務(wù)器屬性和客戶端屬性,描述了屬性服務(wù)器中使用的服務(wù)層次,特點(diǎn)和屬性。BLE設(shè)備使用它作為藍(lán)牙低功耗應(yīng)用規(guī)范的服務(wù)發(fā)現(xiàn)。

ATT實(shí)現(xiàn)了屬性客戶端和服務(wù)器之間的點(diǎn)對(duì)點(diǎn)協(xié)議。ATT客戶端給ATT服務(wù)器發(fā)送請(qǐng)命令。ATT服務(wù)器向ATT客戶端發(fā)送回復(fù)和通知。

SMP用于生成對(duì)等協(xié)議的加密密鑰和身份密鑰。SMP管理加密密鑰和身份密鑰的存儲(chǔ),它通過(guò)生成和解析設(shè)備的地址來(lái)識(shí)別藍(lán)牙設(shè)備。

1.2 藍(lán)牙應(yīng)用規(guī)范[②]

藍(lán)牙SIG根據(jù)不同的應(yīng)用場(chǎng)景定義了不同的藍(lán)牙應(yīng)用規(guī)范,截止到現(xiàn)在,發(fā)布了40個(gè)藍(lán)牙應(yīng)用規(guī)范。本節(jié)介紹最常用的五個(gè)的藍(lán)牙應(yīng)用規(guī)范。
1.2.1 Advanced Audio Distribution Profile

Advanced Audio Distribution Profile 簡(jiǎn)稱為A2DP(高質(zhì)量音頻分發(fā)規(guī)范)定義了如何將立體聲質(zhì)量的音頻通過(guò)流媒體的方式從媒體源傳輸?shù)浇邮掌魃稀2DP使用Asynchronous Connectionless Link(ACL,藍(lán)牙異步傳輸)信道傳輸高質(zhì)量音頻內(nèi)容,它依賴于Generic Audio/Video Distribution Profile(GAVDP,通用音頻/視頻分發(fā)規(guī)范)。A2DP必須支持低復(fù)雜度及Sub-bandCodec(SBC,低帶寬編解碼),可選支持MPEG1,2音頻,MPEG2、4AAC。A2DP的應(yīng)用場(chǎng)景如圖4[1]所示:A2DP的應(yīng)用場(chǎng)景

由圖3可知,A2DP有兩種應(yīng)用場(chǎng)景分別是播放和錄音。

播放場(chǎng)景是具有藍(lán)牙功能的播放器通過(guò)A2DP向藍(lán)牙耳機(jī)或藍(lán)牙立體聲揚(yáng)聲器傳送高質(zhì)量音頻。

錄音場(chǎng)景是具有藍(lán)牙功能的麥克風(fēng)通過(guò)A2DP向藍(lán)牙錄音器傳送高質(zhì)量音頻。

A2DP相關(guān)的規(guī)范有Video Distribution ProfileVDP,視頻分發(fā)規(guī)范),Audio/Video Remote Control ProfileAVRCP,音頻/視頻運(yùn)程控制規(guī)范)。

 

1.2.2  Object Push Profile

OPP(對(duì)象推送規(guī)范)定義了推送服務(wù)器和客戶端之間基于Generic Object Exchange ProfileGOEP,通用對(duì)象交換規(guī)范)進(jìn)行對(duì)象交換的規(guī)范。OPP的應(yīng)用場(chǎng)景如圖4所示:

由圖4可知,OPP主要用于手機(jī)與手機(jī)或者手機(jī)與電腦之間通過(guò)藍(lán)牙進(jìn)行文件操作??山粨Q的文件類型有電話本,備忘錄,日程表等文本文件,還有視頻,聲音,圖片,音樂等多媒體文件。

Wi-Fi Direct(WiFi直連)[③]和藍(lán)牙OPP有相同的功能。WiFi直連是WiFi設(shè)備之間不需要無(wú)線路由器,直接進(jìn)行對(duì)象交換。它的優(yōu)點(diǎn)是傳輸距離長(zhǎng)、速度快,缺點(diǎn)是功耗高。
1.2.3 Hands-Free Profile

HFP(HFP,免提規(guī)范)定義了藍(lán)牙音頻網(wǎng)關(guān)設(shè)備如何通過(guò)藍(lán)牙免提設(shè)備撥打和接聽電話。HFP的應(yīng)用場(chǎng)景如圖5所示:

由圖5可知,HFP包括兩個(gè)角色:

Audio Gateway(AG,音頻網(wǎng)關(guān))和Hands-Free Unit(HF,免提設(shè)備)。AG是音頻輸入和輸出的設(shè)備,典型的AG設(shè)備是手機(jī)。HF是執(zhí)行音頻網(wǎng)關(guān)的遠(yuǎn)程音頻輸入輸出設(shè)備。

HFP常見的場(chǎng)景是汽車上的車載套件,當(dāng)車載套件和耳機(jī)通過(guò)藍(lán)牙方式連接到手機(jī)時(shí),通過(guò)無(wú)線藍(lán)牙耳機(jī)撥打和接聽電話。

和HFP相關(guān)的規(guī)范有Headset Profile(HSP,耳機(jī)規(guī)范),Phonebook Access Profile(PBAP,電話簿訪問(wèn)規(guī)范。
1.2.4 Heart Rate Profile

HRP(心率規(guī)范)定位與和醫(yī)療/健康相關(guān)的應(yīng)用場(chǎng)景中,它使得藍(lán)牙設(shè)備能與心率傳感器交互。相關(guān)場(chǎng)景如圖6所示:

由圖6可知:

左圖是HRP定義的角色關(guān)系。HRP中有兩個(gè)角色:心率感應(yīng)器和收集器。心率感應(yīng)器是GATT服務(wù)器,是測(cè)量心率的設(shè)備,它包含心率服務(wù)和設(shè)備信息服務(wù),心率服務(wù)導(dǎo)出心率測(cè)量數(shù)據(jù);收集器是GATT客戶端,是從心率感應(yīng)器接收心率測(cè)量數(shù)據(jù)和其它數(shù)據(jù)的設(shè)備。

右圖是HRP的應(yīng)用場(chǎng)景。心率規(guī)范用于讓設(shè)備獲得心率傳感器的心率測(cè)量和其它數(shù)據(jù)。例如,護(hù)士或醫(yī)生可以用心率傳感器測(cè)量病人的心率,并把心率數(shù)據(jù)傳到筆記本或手持設(shè)備上。

隨著人口老齡化,醫(yī)療設(shè)備和醫(yī)護(hù)人員資源不足,可以運(yùn)用藍(lán)牙健康規(guī)范實(shí)現(xiàn)遠(yuǎn)程醫(yī)療。筆者所在的Tieto公司在Android平臺(tái)上運(yùn)用心率規(guī)范開發(fā)了心率測(cè)量的原型程序,詳細(xì)介紹請(qǐng)看視頻http://www.youtube.com/watch?v=r_t-hstRgDs&feature=youtu.be。

和HRP相關(guān)的健康規(guī)范有Glucose Profile(GLP,血糖規(guī)范),Blood Pressure Profile(BLP,血壓規(guī)范BLP),Health Thermometer Profile(HTP,健康體溫計(jì)規(guī)范)。
1.2.5 Cycling Speed and Cadence Profile

CSCP(自行車速度和步調(diào)規(guī)范)讓人們?cè)隍T自行車鍛煉時(shí)跟蹤速度和節(jié)奏。CSCP也基于GATT的規(guī)范。自行車速度和步調(diào)規(guī)范的角色關(guān)系和應(yīng)用場(chǎng)景如圖7所示:

 

左 圖是CSCP的角色關(guān)系。CSCP定義了兩個(gè)角色:自行車速度和步調(diào)感應(yīng)器和收集器。CSC感應(yīng)器是GATT服務(wù)器,向收集器報(bào)告車輪轉(zhuǎn)速數(shù)據(jù)或軸轉(zhuǎn)速數(shù) 據(jù)。CSC感應(yīng)器包含CSC服務(wù)和設(shè)備信息服務(wù);收集器是GATT客戶端,從CSC感應(yīng)器接收自行車的速度和步調(diào)數(shù)據(jù)。

右圖是CSCP的應(yīng)用場(chǎng)景。傳感器測(cè)量被廣泛應(yīng)用于運(yùn)動(dòng)和健身,通過(guò)傳感器來(lái)監(jiān)視和控制訓(xùn)練強(qiáng)調(diào),以及在多個(gè)訓(xùn)練中衡量進(jìn)展情況。自行車速度傳感器和自行車踏頻傳感器是用戶測(cè)量車輪速度或蹬踏節(jié)奏的設(shè)備。任何設(shè)備實(shí)現(xiàn)CSC規(guī)范可以與CSC傳感器連接并接收數(shù)據(jù)。

和CSCP相關(guān)的規(guī)范有Running Speed and Cadence Profile(RSCS,跑步速度和步調(diào)規(guī)范)。
二 Android中的Bluetooth

Android 4.2之前,Google一直使用的是Linux官方藍(lán)牙協(xié)議棧,即知名老牌開源項(xiàng)目BlueZ。BlueZ實(shí)際上是由高通公司在2001年5月基于GPL協(xié)議發(fā)布的一個(gè)開源項(xiàng)目,該項(xiàng)目?jī)H發(fā)布一個(gè)月后就被Linux之父Linux Torvalds納入了Linux內(nèi)核,并做為L(zhǎng)inux 2.4.6內(nèi)核的官方藍(lán)牙協(xié)議棧。隨著Android設(shè)備的流行,BlueZ也得到了極大的完善和擴(kuò)展。例如Android 4.1中BlueZ的版本升級(jí)為4.93,它支持藍(lán)牙核心規(guī)范4.0,并實(shí)現(xiàn)了絕大部分的Profiles。

BlueZ現(xiàn)在正處于其巔峰時(shí)期,但好景不長(zhǎng)。從Android 4.2即Jelly Bean開始,Google便在Android源碼中推出了它和博通公司一起開發(fā)的BlueDroid以替代BlueZ。雖然因?yàn)闀r(shí)間及成熟度的原因,大部分手機(jī)廠商在Android 4.2中仍繼續(xù)使用BlueZ。但據(jù)筆者了解,BlueZ的創(chuàng)始者,高通公司也將在基于其芯片的Android參考設(shè)計(jì)中去除BlueZ,并僅支持BlueDroid。

BlueZ的未來(lái)如何筆者姑且不論。不過(guò),能讓高通改弦易轍,BlueDroid自有其合理之處。相比BlueZ,BlueDroid最值得稱道的地方就是其框架結(jié)構(gòu)變得更為簡(jiǎn)潔和清晰。另外,借助HAL(Hardware Abstraction Layer,硬件抽象層),BlueDroid終于不再和dbus有任何瓜葛。圖8所示為Android 4.2中BlueDroid的框架結(jié)構(gòu)圖[④]:

由圖8可知,Android4.2中BlueDroid框架包括以下幾個(gè)部分:

應(yīng)用程序通過(guò)android.bluetooth package下的API來(lái)調(diào)用系統(tǒng)的Bluetooth功能。

應(yīng)用層空間增加了一個(gè)名為Bluetooth的App。它做為系統(tǒng)的bluetooth核心進(jìn)程而存在。其內(nèi)部將通過(guò)JNI來(lái)調(diào)用Bluetooth HAL層以完成各種藍(lán)牙請(qǐng)求。

Bluetooth HAL也屬于Android 4.2新增模塊,它由藍(lán)牙核心規(guī)范硬件抽象層和藍(lán)牙應(yīng)用規(guī)范硬件抽象層組成。由于HAL層的隔離作用,上層代碼可輕松移植到不同芯片平臺(tái)。

作 為整個(gè)藍(lán)牙服務(wù)的核心,Bluetooth Stack模塊則由Bluetooth Application Layer(縮寫為BTA)和Bluetooth Embedded System(縮寫為BTE)兩大部分組成。BTA實(shí)現(xiàn)了藍(lán)牙設(shè)備管理、狀態(tài)管理及一些應(yīng)用規(guī)范。而BTE則通過(guò)HCI與廠商藍(lán)牙芯片交互以實(shí)現(xiàn)了藍(lán)牙協(xié) 議棧的通用功能和相關(guān)協(xié)議。另外,BTE還包括一個(gè)統(tǒng)一內(nèi)核接口(GKI),藍(lán)牙芯片廠商可借助GKI快速輕松得移植藍(lán)牙協(xié)議棧到其他操作系統(tǒng)或手機(jī)平臺(tái) 上。

Vendor Extentions(廠商擴(kuò)展):開發(fā)者可以添加自定義擴(kuò)展以實(shí)現(xiàn)廠商特定的模塊和組件。

除了BlueDroid外,在今年的Google I/O大會(huì),谷歌公司還宣布將于與蘋果、微軟和黑莓等公司共同支持Bluetooth Smart Ready(BSR,藍(lán)牙智能就緒)和Bluetooth Smart(BS,藍(lán)牙智能)技術(shù)。這項(xiàng)技術(shù)使藍(lán)牙設(shè)備或應(yīng)用可以非常容易地連接全球成千上萬(wàn)的藍(lán)牙設(shè)備,藍(lán)牙使用者的生活也因此變得更加簡(jiǎn)單。BSR和BS都是建立在藍(lán)牙核心規(guī)范4.0和GATT應(yīng)用規(guī)范。即將發(fā)布的Android 4.3(MR2)支持BSR技術(shù),使得BS的開發(fā)者可以輕易地將其設(shè)備和應(yīng)用與Android BSR設(shè)備進(jìn)行連接和發(fā)布。藍(lán)牙使用者運(yùn)用BS的智能應(yīng)用配件(如健康監(jiān)控或醫(yī)療設(shè)備)收集數(shù)據(jù),再傳送到支持BSR設(shè)備(如智能手機(jī)或平板)上。

另外,藍(lán)牙SIG也正在研發(fā)工具Bluetooth Application Accelerator(藍(lán)牙應(yīng)用加速器)。據(jù)可靠消息,該工具將隨Android 4.3發(fā)布,并將幫助開發(fā)者在Android 4.3上快速開發(fā)藍(lán)牙應(yīng)用,從而加快相關(guān)產(chǎn)品的研發(fā)時(shí)間。
三 總結(jié)

本文對(duì)藍(lán)牙核心規(guī)范、藍(lán)牙應(yīng)用規(guī)范以及Android 4.2中的藍(lán)牙協(xié)議棧BlueDroid進(jìn)行了一些簡(jiǎn)單介紹。

從筆者了解的情況來(lái)看,BlueDroid雖然對(duì)BlueZ大有取而代之的趨勢(shì),但現(xiàn)在它對(duì)藍(lán)牙應(yīng)用規(guī)范的支持還不夠完善。例如BlueDroid僅支持AVRCP 1.0,而非最新的AVRCP 1.5。所以,國(guó)內(nèi)某些芯片或手機(jī)廠商若能及早完成BlueZ相關(guān)模塊到BlueDroid的移植工作,相信能幫助它們?cè)诟?jìng)爭(zhēng)日趨白日化的移動(dòng)世界中拔得先機(jī)。

另外,作為一種成熟、低功耗無(wú)線通信技術(shù)的先鋒,藍(lán)牙未來(lái)在可穿戴設(shè)備領(lǐng)域中也將扮演越來(lái)越重要的作用。那時(shí),藍(lán)牙或許就會(huì)真正像“牙齒”一樣成為各種設(shè)備中不可或缺的一部分了。

本文鏈接:http://my.oschina.net/u/994235/blog/300402

責(zé)任編輯:chenqingxiang 來(lái)源: oschina
相關(guān)推薦

2018-06-14 09:59:48

程序員代碼大公司

2022-08-08 15:45:44

JavaPromise前端

2019-01-04 12:46:03

程序員技能溝通

2010-12-30 10:04:49

Linux入門

2020-06-15 09:32:59

程序員大公司小公司

2016-01-05 10:30:59

后端程序員緩存原理

2015-12-22 15:49:28

程序員互動(dòng)訪談

2019-12-19 16:22:38

程序員征文

2015-08-14 09:14:29

2015-08-14 09:15:34

轉(zhuǎn)行變成前途

2015-08-14 13:51:22

程序員

2013-04-24 09:39:47

程序員

2019-10-09 09:32:58

程序員數(shù)據(jù)分庫(kù)分表

2014-11-03 14:43:38

程序員

2020-07-13 08:08:05

程序員軟考原理

2015-06-11 13:12:56

2015-10-08 15:24:44

程序員面試貼士

2021-09-23 14:44:24

程序員計(jì)算機(jī)開發(fā)

2013-08-20 09:33:59

程序員

2012-03-06 09:22:46

程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)