久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

藍(lán)牙技術(shù)了解

 印度阿三17 2018-11-27

1,、概念

1)無(wú)線通信

無(wú)線通信是利用電波信號(hào)可以在自由空間那種傳播的特性進(jìn)行信息交換的一種通信方式。在移動(dòng)中實(shí)現(xiàn)的無(wú)線通信又通稱為移動(dòng)通信,,人們把二者合稱為無(wú)線移動(dòng)通信,。簡(jiǎn)單講,無(wú)線通信是僅利用電磁波而不通過(guò)線纜進(jìn)行的通信方式,。電子信號(hào)從發(fā)射器到達(dá)天線,,然后天線將信號(hào)作為一系列電磁波發(fā)射到空氣中,信號(hào)通過(guò)空氣傳播,,直到它到達(dá)目標(biāo)位置為止,。在目標(biāo)位置,另一個(gè)天線接收信號(hào),,一個(gè)接收器將它轉(zhuǎn)換回電流信號(hào)。

2)藍(lán)牙(Bluetooth)

藍(lán)牙:一種短距離無(wú)線通信技術(shù)標(biāo)準(zhǔn),,可實(shí)現(xiàn)固定設(shè)備,、移動(dòng)設(shè)備和個(gè)人域網(wǎng)之間的短距離數(shù)據(jù)交換(使用2.4-2.485GHz的ISM波段的UHF無(wú)線電波)。(一般10m內(nèi))如今藍(lán)牙由藍(lán)牙技術(shù)聯(lián)盟(Bluetooth Special Interest Group,,簡(jiǎn)稱SIG)管理,。

藍(lán)牙采用分散式網(wǎng)路結(jié)構(gòu)以及快調(diào)頻和短包技術(shù),支持點(diǎn)對(duì)點(diǎn)以及點(diǎn)對(duì)多點(diǎn)通信,,工作在全球通用的2.4GHZ的ISM頻段,。其數(shù)據(jù)速率為1Mbps。采用時(shí)分雙工傳輸方案實(shí)現(xiàn)全雙工傳輸,。

3)藍(lán)牙系統(tǒng)構(gòu)成

1,、無(wú)線射頻單元(Radio):負(fù)責(zé)射頻信號(hào)的發(fā)送和接收,特點(diǎn)是短距離,、低功耗,。藍(lán)牙天線一般體積小,,重量輕,屬于微帶天線,。

2,、基帶或鏈路控制單元(Link Controller):進(jìn)行射頻信號(hào)與數(shù)字或語(yǔ)音信號(hào)的相互轉(zhuǎn)化,實(shí)現(xiàn)基帶協(xié)議和其他的底層連接規(guī)程,。

3,、鏈路管理單元(Link Manager):負(fù)責(zé)管理藍(lán)牙設(shè)備之間的通信,實(shí)現(xiàn)鏈路的建立,、驗(yàn)證,、鏈路配置等操作。

4,、藍(lán)牙軟件協(xié)議實(shí)現(xiàn):如上圖紫色部分

低耗電藍(lán)牙相關(guān)規(guī)范

?

2,、藍(lán)牙協(xié)議

2.1藍(lán)牙協(xié)議架構(gòu)

藍(lán)牙協(xié)議棧

藍(lán)牙協(xié)議體系中的協(xié)議按SIG的關(guān)注程度分為四層:

1、核心協(xié)議:BaseBand,、LMP,、L2CAP、SDP,;

2,、電纜替代協(xié)議:RFCOMM

3、電話傳送控制協(xié)議:TCS-Binary,、AT命令集

4,、選用協(xié)議:PPP、UDP/TCP/IP,、OBEX,、vCard、vCal,、IrMC,、WAE

除上述協(xié)議層之外,規(guī)范還定義了主機(jī)控制接口(HCI),,它為基帶控制器,、連接管理器、硬件狀態(tài)和控制寄存器提供了命令接口,。圖中,,HCI位于L2CAP的下層,但HCI也可位于L2CAP的上層,。

?

藍(lán)牙核心協(xié)議由SIG指定的藍(lán)牙專用協(xié)議組成,。絕大部分藍(lán)牙設(shè)備都需要核心協(xié)議(加上無(wú)線部分),而其他協(xié)議則根據(jù)應(yīng)用的需要而定??傊?,電纜替代協(xié)議、電話控制協(xié)議和被采用的協(xié)議在核心協(xié)議基礎(chǔ)上構(gòu)成了面向應(yīng)用的協(xié)議,。

藍(lán)牙協(xié)議棧允許采用多種方法,,包括RFCOMM和Object Exchange(OBEX),在設(shè)備之間發(fā)送和接收文件,。如果想發(fā)送和接收流數(shù)據(jù)(而且想采用傳統(tǒng)的串口應(yīng)用程序,,并給它加上藍(lán)牙支持),那么 RFCOMM 更好,。反過(guò)來(lái),,如果想發(fā)送對(duì)象數(shù)據(jù)以及關(guān)于負(fù)載的上下文和元數(shù)據(jù),則 OBEX 最好,。

藍(lán)牙應(yīng)用程序活動(dòng)圖如下:

2.1.1串口仿真RFCOMM介紹

藍(lán)牙—RFCOMM協(xié)議

找到服務(wù),,RFCOMM通過(guò)不同的頻道(channel)來(lái)提供不同的profile的,所以需要找到要用的服務(wù)在設(shè)備上的哪個(gè)頻道上,,這是通過(guò)一個(gè)軟件包里的sdptool來(lái)完成的,,就是SDP,服務(wù)發(fā)現(xiàn)協(xié)議,。

2.2藍(lán)牙profile

2.2.1藍(lán)牙profile概述

從3.0版本開(kāi)始(據(jù)說(shuō)2.1也是支持的,。)藍(lán)牙才開(kāi)始支持BluetoothProfile。Bluetoothprofile是藍(lán)牙設(shè)備間數(shù)據(jù)通信的無(wú)線接口規(guī)范,。想要使用藍(lán)牙無(wú)線技術(shù),,設(shè)備必須能夠翻譯特定藍(lán)牙配置文件,配置文件定義了可能的應(yīng)用,。

藍(lán)牙配置文件表達(dá)了一般行為,,藍(lán)牙設(shè)備可以通過(guò)這些行為與其他設(shè)備進(jìn)行通訊

藍(lán)牙技術(shù)定義了廣泛的配置文件,描述了不同類型的使用安全,。按藍(lán)牙規(guī)格中提供的指導(dǎo),,開(kāi)發(fā)商可創(chuàng)建應(yīng)用程序,用來(lái)與其他符合藍(lán)牙規(guī)格的設(shè)備協(xié)同工作,,在最低限度下,個(gè)配置文件規(guī)格應(yīng)包含下列主題的相關(guān)信息,。

①與其他配置文件的相關(guān)性

②建議的用戶界面格式

③配置文件使用的藍(lán)牙協(xié)議堆棧 的特定部分

為執(zhí)行其任務(wù),,每個(gè)配置文件都使用堆棧各層上的特定選項(xiàng)和參數(shù)。若需要,,也可包括必須的服務(wù)記錄該概要,。

profile API層分別對(duì)AUDIO、data、control等提供了不同的模塊,。目前已規(guī)范有四大類,、十三種協(xié)議規(guī)格。

Bluetooth的一個(gè)很重要的特性,,就是所有的Bluetooth產(chǎn)品都無(wú)須實(shí)現(xiàn)全部的Bluetooth規(guī)范,,為了更容易的保持Bluetooth設(shè)備之間的兼容,Bluetooth規(guī)范中定義了profile,。profile定義設(shè)備如何實(shí)現(xiàn)一種連接或者應(yīng)用,,你可以吧profile理解為連接層或者 應(yīng)用層協(xié)議。

?

常用的profile介紹請(qǐng)參考“藍(lán)牙profile的概念和常見(jiàn)種類”,,幾種最基本的配置文件為:

1,、通用訪問(wèn)配置文件(Generic Access Profile,GAP)

GAP是所有其他配置文件的基礎(chǔ),,它定義了在藍(lán)牙設(shè)備間建立基帶鏈路的通用方法,。除此之外,GAP還定義了下列內(nèi)容:

1)必須在所有藍(lán)牙設(shè)備中實(shí)施的功能

2)發(fā)現(xiàn)和鏈接設(shè)備的通用步驟

3)基本用戶界面術(shù)語(yǔ)

GAP確保了應(yīng)用程序和設(shè)備間的高度互操作性,,還允許開(kāi)發(fā)人員利用現(xiàn)有的定義更加容易地定義新的配置文件,。GAP處理未連接的兩個(gè)設(shè)備間的發(fā)現(xiàn)和建立連接過(guò)程。此配置文件定義了一些通用的操作,,這些操作可供引用GAP的配置文件,,以及實(shí)施多個(gè)配置文件的設(shè)備使用。GAP確保了兩個(gè)藍(lán)牙設(shè)備可通過(guò)藍(lán)牙技術(shù)交換信息,,以發(fā)現(xiàn)彼此支持的應(yīng)用程序,,不符合任何其他藍(lán)牙配置文件的藍(lán)牙設(shè)備必須與GAP符合以確保基本的互操作性和共存,。

2,、服務(wù)發(fā)現(xiàn)應(yīng)用配置文件(Service Discovery Application Profile,SDAP)

SDAP描述了應(yīng)用程序如何使用SDP發(fā)現(xiàn)遠(yuǎn)程設(shè)備上的服務(wù),。由于GAP 的要求,,任何藍(lán)牙設(shè)備都應(yīng)能夠連接至其他藍(lán)牙設(shè)備?;诖?,SDAP要求任何應(yīng)用程序都應(yīng)當(dāng)能夠發(fā)現(xiàn)它要連接的其他藍(lán)牙設(shè)備上的可用服務(wù)。此配置文件,,可承擔(dān)搜索已知和特定服務(wù)以及一般的任務(wù),。SDAP涉及了稱為“服務(wù)發(fā)現(xiàn)用戶應(yīng)用程序”的一個(gè)應(yīng)用程序,這是藍(lán)牙設(shè)備查找服務(wù)所必需的,。此應(yīng)用程序可與向/從其他藍(lán)牙設(shè)備發(fā)送/接收服務(wù)查詢的SDP相接,。SDAP依賴于GAP,并可以重新使用部分GAP

3、串行端口配置文件(Serial Port Profile,,SPP)

SPP定義了如何設(shè)置虛擬串行端口以及連接兩個(gè)藍(lán)牙設(shè)備,。SPP基于ETSI TS 0.10規(guī)格,使用RFCOMM協(xié)議提供串行商品仿真,。SPP提供了以無(wú)線方式替代現(xiàn)有的RS-232串行通信應(yīng)用程序和控制信號(hào)的方法,。SSP為DUN,FAX,HSP和LAN配置文件提供了基礎(chǔ)。此配置文件可以支持最高128kb/s的數(shù)據(jù)率,。SSP依賴于GAP,。

4、通用對(duì)象交換配置文件(Generic Object Exchange Profile,,GOEP)

GOEP可用于將對(duì)象從一個(gè)設(shè)備傳輸?shù)搅硪粋€(gè)設(shè)備,。對(duì)象可以使任意的。如圖片,,文檔,,名片等。此配置文件定義了兩個(gè)角色:提供拉提或者推送對(duì)象位置的服務(wù)器以及啟動(dòng)操作的客戶端,。使用GOEP的應(yīng)用程序假定鏈路和信道已按GAP的定義建立,。GOEP依賴于串行口端口配置文件。

GOEP可用于為使用OBEX協(xié)議的其他配置文件提供了通用藍(lán)圖,,并為設(shè)備定義了客戶端和服務(wù)器角色,。對(duì)于所有的OBEX事務(wù),GOEP規(guī)定應(yīng)由客戶端啟動(dòng)所有事務(wù),。但是此配置文件并沒(méi)有描述應(yīng)用程序就如何定義要交換的對(duì)象或如何實(shí)施交換,。這些細(xì)節(jié)留給屬于GOEP的配置文件,即OPP,,F(xiàn)TP和SYNC 去完成,。通常使用此配置文件的藍(lán)牙設(shè)備為電腦,PDA ,,手機(jī)以及智能電話,。

?

注意:藍(lán)牙1.1版本規(guī)范所有藍(lán)牙設(shè)備的最小實(shí)現(xiàn)必須支持通用訪問(wèn)配置文件,服務(wù)發(fā)現(xiàn)應(yīng)用配置文件和串行口端口配置文件,。

在兩臺(tái)電腦或者Labtop 之間就可以建立這種連接,,如下圖所示:

SPP是基于RFCOMM的,SPP協(xié)議處于RFCOMM的上層,,SPP的應(yīng)用需走RFCOMM層,。如果你使用RFCOMM能夠?qū)崿F(xiàn),那么也就不需要使用SPP,,而且速度還會(huì)比SPP來(lái)做快,因?yàn)槭÷粤瞬捎胮rofile的一些數(shù)據(jù)包頭等。不過(guò),,還是推薦采用SPP來(lái)做,,兼容性有保證,這也是為什么藍(lán)牙本質(zhì)上數(shù)據(jù)和語(yǔ)音的傳送卻出現(xiàn)HFP,HSP,SPP,OPP等諸多具體應(yīng)用profile的原因,。

2.2.2藍(lán)牙profile框架

每個(gè)attribute屬性被UUID(通用唯一標(biāo)識(shí)符)唯一標(biāo)識(shí),,UUID是標(biāo)準(zhǔn)128-bit格式的ID用來(lái)唯一標(biāo)識(shí)信息。attribute被ATT格式化 characteristics 和 services 形式進(jìn)行傳送,。

特征(characteristics?):一個(gè)characteristics 包含一個(gè)單獨(dú)的value值和0-n個(gè)用來(lái)描述characteristics 值(value)的descriptors,。一個(gè)characteristics 可以被認(rèn)定是一種類型的,類似與一個(gè)類,。

描述符(descriptor):descriptor 是被定義的attributes ,,用來(lái)描述一個(gè)characteristics 的值。例如,,一個(gè)descriptor可以指定一個(gè)人類可讀的描述中,,在可接受范圍里characteristics值,或者是測(cè)量單位,,用來(lái)明確characteristics的值,。

服務(wù)(service):service 是characteristics 的集合。例如,,你可以有一個(gè)所謂的“Heart RateMonitor”service,,其中包括characteristic,如“heart rate measurement”,。你可以在bluetooth.org找到關(guān)于一系列基于GATT的profile和service,。

如上圖所示:藍(lán)牙設(shè)備可以包括多個(gè)profile,一個(gè)profile中有多個(gè)service,,一個(gè)service中有多個(gè)characteristics,,一個(gè)characteristics中包括一個(gè)value和多個(gè)descriptor。

?

2.3藍(lán)牙4.0和4.1

藍(lán)牙4.0實(shí)際是一個(gè)三位一體的藍(lán)牙技術(shù),,它將傳統(tǒng)藍(lán)牙,、低功耗藍(lán)牙和高速藍(lán)牙技術(shù)融合在一起,這三個(gè)規(guī)格可以組合或者單獨(dú)使用,。也就是說(shuō) BLE是藍(lán)牙4.0增加的,,之前沒(méi)有

藍(lán)牙4.0專門面向?qū)Τ杀竞凸亩加休^高要求的無(wú)線方案,其主打特性就是省電,、省電,、省電。極低的運(yùn)行和待機(jī)功耗,,使得一粒紐扣電池甚至可連續(xù)工作一年之久,。它有低功耗,、經(jīng)典、高速三種協(xié)議模式,。其中:高速藍(lán)牙主攻數(shù)據(jù)交換與傳輸,;經(jīng)典藍(lán)牙則以信息溝通、設(shè)備連接為重點(diǎn),;低功耗藍(lán)牙以不需要占用太多帶寬的設(shè)備連接為主,。這三種協(xié)議規(guī)范能夠互相組合搭配,從而適應(yīng)更廣泛的應(yīng)用模式,。正因?yàn)橛辛巳N可以互相組合搭配的協(xié)議,,藍(lán)牙4.0因此可以成為唯一一個(gè)綜合協(xié)議規(guī)范。它有著極低的運(yùn)行和待機(jī)功耗,。此外,,低成本和跨廠商互操作性,3毫秒低延遲,、AES-128加密等諸多特色,,可以用于計(jì)步器、心率監(jiān)視器,、智能儀表,、傳感器物聯(lián)網(wǎng)等眾多領(lǐng)域,大大擴(kuò)展藍(lán)牙技術(shù)的應(yīng)用范圍,。

藍(lán)牙4.1主打IOT(Internet of Things),,最新的藍(lán)牙4.1標(biāo)準(zhǔn)是個(gè)很有前途的技術(shù),其智能,、低功耗,、高傳輸速度、連接簡(jiǎn)單的特性將適用在許多新興設(shè)備上,。

藍(lán)牙4.1設(shè)備可以同時(shí)作為發(fā)送方和接受方,,并且可以連接到多個(gè)設(shè)備上。舉個(gè)例子,,智能手表可以作為發(fā)射方向手機(jī)手機(jī)發(fā)送身體健康指數(shù),,同時(shí)作為接受方連接到藍(lán)牙耳機(jī)、手環(huán)或其他設(shè)備上,。藍(lán)牙4.1使得批量數(shù)據(jù)可以以更高的速率傳輸,,當(dāng)然這并不 意味著可以用藍(lán)牙告訴傳輸流媒體視頻,這一改進(jìn)的主要針對(duì)的還是剛剛興起的可穿戴設(shè)備,。

例如已經(jīng)比較常見(jiàn)的健康手環(huán),,其發(fā)送出的數(shù)據(jù)流并不大,通過(guò)藍(lán)牙4.1能夠更快速地將跑步,、游泳,、汽車過(guò)程中收到,。因?yàn)樾聵?biāo)準(zhǔn)加入了對(duì)IPV6專用通道聯(lián)機(jī)的支持,通過(guò)IPV6連接到網(wǎng)絡(luò),,實(shí)現(xiàn)與WIFI相同的功能,,解決可穿戴設(shè)備上網(wǎng)不易的問(wèn)題。

?

藍(lán)牙4.0與藍(lán)牙4.1的比較

?

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

?1)低功耗藍(lán)牙Bluetooth Low Energy(BLE)是藍(lán)牙4.9增加的,。蘋果系列都支持藍(lán)牙4.0

2)Android4.3(API級(jí)別18)引入內(nèi)置支持BLE的central角色,同時(shí)提供API和app應(yīng)用程序用來(lái)發(fā)現(xiàn)設(shè)備,,查詢服務(wù),,和讀/寫characteristics。與傳統(tǒng)藍(lán)牙(Classic Bluetooth)不同,,藍(lán)牙低功耗(BLE)的目的是提供更加顯著的低功耗,。這使得Android應(yīng)用程序可以和具有低功耗要求的BLE設(shè)備,如接近傳感器,,心臟速率監(jiān)視器,,健身設(shè)備等進(jìn)行通信。

3)BLE低功耗藍(lán)牙軟件有2個(gè)主要組成:OSAL操作系統(tǒng)抽象層和HAL硬件抽象層,,多個(gè)Task任務(wù)和事件在OSAL管理下工作,,而每個(gè)任務(wù)和事件又包括3個(gè)組成:BLE協(xié)議棧,Profiles和應(yīng)用程序,。

BLE藍(lán)牙協(xié)議棧結(jié)構(gòu)

分為兩部分:控制器和主機(jī),。對(duì)于4.0以前的藍(lán)牙,這兩部分是分開(kāi)的,。所有profile(姑且稱為劇本吧,,用來(lái)定義設(shè)備或組件的角色)和應(yīng)用都建構(gòu)在GAP或GATT之上。下面由底層組件開(kāi)始介紹,。

BEL低功耗藍(lán)牙系統(tǒng)架構(gòu)圖,,圖中的Task用附圖BLE藍(lán)牙協(xié)議棧結(jié)構(gòu)圖來(lái)描述

通用屬性規(guī)范(GATT)—GATTProfile是一個(gè)通用規(guī)范用于在BLE鏈路發(fā)送和接收被稱為“屬性(attribute)”的數(shù)據(jù)片。目前所有的低功耗應(yīng)用profile都是基于GATT,。

藍(lán)牙SIG定義了許多profile用于低功耗設(shè)備,。profile(配置文件)是一個(gè)規(guī)劃,規(guī)劃了設(shè)備如何工作在一個(gè)特定的應(yīng)用場(chǎng)景,。注意:一個(gè)設(shè)備可以實(shí)現(xiàn)多個(gè)profile,。例如,,一個(gè)設(shè)備可以包含一個(gè)心臟檢測(cè)儀和電池電平檢測(cè)器,。

主從機(jī)連接建立過(guò)程:

?

2.3.2藍(lán)牙4.0(BLE)主從通信透?jìng)髂K

低功耗藍(lán)牙模塊主透穿協(xié)議是針對(duì)低功耗藍(lán)牙模塊從透?jìng)鲄f(xié)議設(shè)計(jì)的,通過(guò)本協(xié)議模塊可替代手機(jī)設(shè)備從透?jìng)鲄f(xié)議模塊連接,,實(shí)現(xiàn)透?jìng)鞴δ芑蛑彬?qū)控制功能。

此協(xié)議模塊可用作透?jìng)鲄f(xié)議模塊開(kāi)發(fā)過(guò)程中的輔助工具,。

BLE主透?jìng)鲄f(xié)議模塊(以下簡(jiǎn)稱MTTM)可以工作在透?jìng)髂J剑═TM)或指令模式(CM)。

MTTM上電啟動(dòng)后,,處于待機(jī)模式(SBM),此時(shí)處于空閑狀態(tài),,無(wú)睡眠,,需要用戶通過(guò)AT指令控制模塊連接設(shè)備。在成功與從設(shè)備建立連接后,,MTTM會(huì)自動(dòng)查找設(shè)備的透?jìng)魍ǖ?,如果從設(shè)備屬于BLE從透?jìng)鲄f(xié)議模塊(STTM),MTTM默認(rèn)進(jìn)入透?jìng)髂J?,否則默認(rèn)進(jìn)入指令模式。

透?jìng)髂J较?,用戶CPU可以通過(guò)模塊的通用串口與STM進(jìn)行雙向通訊,。從MTTM串口輸入的數(shù)據(jù)將轉(zhuǎn)發(fā)到STTM,,并從STTM的串口輸入,;從STTM輸入的數(shù)據(jù)將轉(zhuǎn)發(fā)到MTTM,并從MTTM的串口輸出,,從而實(shí)現(xiàn)透明傳輸功能,用戶數(shù)據(jù)的具體含義由上層應(yīng)用程序自行定義。

透?jìng)鳎赐该鱾鬏敚╬ass-through),,指的是在通訊中不管傳輸?shù)臉I(yè)務(wù)內(nèi)容如何,,只負(fù)責(zé)將傳輸?shù)膬?nèi)容由源地址傳輸?shù)侥康牡刂罚粚?duì)業(yè)務(wù)內(nèi)容做任何改變,。

透?jìng)髦袛?shù)據(jù)的格式也是profile,,或藍(lán)牙標(biāo)準(zhǔn)profile或自定義simple profile?;窘Y(jié)構(gòu)依然是:

1)profile

  profile可以理解為一種規(guī)范,,一個(gè)標(biāo)準(zhǔn)的通信協(xié)議,它存在于從機(jī)中,。藍(lán)牙組織規(guī)定了一些標(biāo)準(zhǔn)的profile,例如HID OVER GATT,防丟器,,心率計(jì)等,。每個(gè)profile中會(huì)包含多個(gè)service,,每個(gè)service代表從機(jī)的一種能力,。

2)service

  service可以理解為一個(gè)服務(wù),,在BLE從機(jī)中,通過(guò)多個(gè)服務(wù),,例如電量服務(wù)、信息系統(tǒng)服務(wù)等,每個(gè)service中又包含多個(gè)characteristic特征值,。每個(gè)具體的characteristics特征值才是BLE通信的主題,。比如當(dāng)前的電量是80%,,所以會(huì)通過(guò)電量的characteristic特征值存在從機(jī)的profile里,,這樣主機(jī)就可以通過(guò)這個(gè)characteristic來(lái)讀取80%這個(gè)數(shù)據(jù)

3)characteristic

characteristic特征值,,BLE主從機(jī)通信均是通過(guò)characteristic來(lái)實(shí)現(xiàn),,可以理解為一個(gè)標(biāo)簽,,通過(guò)這個(gè)標(biāo)簽可以獲取或者寫入想要的內(nèi)容

4)UUID

  UUID,,統(tǒng)一識(shí)別碼,我們剛才提到的service和characteristic,,都需要一個(gè)唯一的UUID來(lái)標(biāo)識(shí)

每一個(gè)從機(jī)都會(huì)有 一個(gè)叫做profile的東西存在,,不管是上面的自定義的simple profile 還是標(biāo)準(zhǔn)的防丟器profile,他們都是由一系列service,,然后每個(gè)service 又包含多個(gè)characteristic值,,主從機(jī)之間的通信,均是通過(guò)characteristic來(lái)實(shí)現(xiàn),。

實(shí)際產(chǎn)品中,,每個(gè)藍(lán)牙4.0的設(shè)備都是通過(guò)服務(wù)和特征(service和characteristic)來(lái)展示自己的,,service和characteristic都是用UUID來(lái)唯一標(biāo)識(shí)的,。一個(gè)設(shè)備必然包含一個(gè)或多個(gè)服務(wù),每個(gè)服務(wù)下面又包含若干個(gè)特征,。特征(characteristic)是與外界交互的最小單位,。藍(lán)牙設(shè)備硬件廠商通常都會(huì)提供他們?cè)O(shè)備里的各個(gè)service和characteristic的功能,,比如說(shuō)哪些是用來(lái)交互(讀寫),哪些可獲取模塊信息(只讀),。比如說(shuō),,一臺(tái)藍(lán)牙4.0設(shè)備,用特征A來(lái)描述自己的出廠信息,,用特征B來(lái)收發(fā)數(shù)據(jù)等,。

服務(wù)和特征都是用UUID來(lái)唯一標(biāo)識(shí)的,UUID的概念如果不清楚請(qǐng)自行g(shù)oogle,,SIG為一些典型的設(shè)備(比如測(cè)量心跳和血壓的設(shè)備)規(guī)定了標(biāo)準(zhǔn)的service UUID (特征的UUID比較多),,這里就不列舉了。

3.Android Bluetooth 架構(gòu)

1)面向庫(kù)的架構(gòu)視圖

?

2)面向進(jìn)程的架構(gòu)視圖

IOS有兩個(gè)框架支持藍(lán)牙與外設(shè)連接

一個(gè)是ExternalAccessory,。從IOS3.0就開(kāi)始支持,,也是在iphone出來(lái)之前用的比較多的一種模式,但是它有個(gè)不好的地方,,External Accessory 需要拿到蘋果公司的MFT認(rèn)證,。

另一個(gè)框架則是本文要介紹的CoreBluetooth,在藍(lán)牙4.0出來(lái)之后(注意,,硬件上要4s以上,,系統(tǒng)要IOS6以上才支持4.0),蘋果開(kāi)放了BLE通道,,專門用于與BLE設(shè)備通訊(因?yàn)樗腁PI都是基于BLE的),。這個(gè)不需要MFI,并且現(xiàn)在很多藍(lán)牙設(shè)備都支持4.0,,所以也是在IOS比較推薦的一種開(kāi)發(fā)方法?,F(xiàn)CoreBluetooth在的開(kāi)發(fā)幾乎全部基于該框架,本節(jié)只介紹CoreBluetooth,。

1)CoreBluetooth介紹

CoreBluetooth框架的核心其實(shí)是兩個(gè)東西,,peripheral 和 central,可以理解成外設(shè)和中心,。對(duì)應(yīng)他們分別有一組相關(guān)的API和類,,如下圖所示:

如果你要編程的設(shè)備是手機(jī)的central,那么你大部分用到peripheral API,。反之亦然,,設(shè)備是peripheral,iphone手機(jī)是central,,所以大部分使用central API,。使用peripheral編程的例子也有很多,比如像用一個(gè)ipad和一個(gè)iphone通信,,ipad可以認(rèn)為是central,,iphone端是peripheral,,這種情況下在iphone端就要使用上圖右邊部分的類來(lái)開(kāi)發(fā)了。

作為一個(gè)中心(central)要實(shí)現(xiàn)完整的通訊,,一般要經(jīng)過(guò)這樣幾個(gè)步驟:

1)建立中心角色

2)掃描外設(shè)(discover)(通過(guò)接收從設(shè)備廣播來(lái)掃描,、發(fā)現(xiàn)設(shè)備,獲得peripheral ID)—

  a,、如果數(shù)據(jù)中已經(jīng)和某些藍(lán)牙設(shè)備綁定,,可以使用BluetoothAdapter.getBondedDevices();方法獲得已經(jīng)綁定的藍(lán)牙設(shè)備列表,。通過(guò)指定特定的peripheral的UUID,,central只會(huì)discover這個(gè)特定的設(shè)備。

  b,、搜索周圍的藍(lán)牙設(shè)備受用BluetoothAdapter.startDiscovery()方法

  c,、搜索到的藍(lán)牙設(shè)備都是通過(guò)廣播返回,so,,需要注冊(cè)廣播接收器來(lái)獲得已經(jīng)搜索到的藍(lán)牙設(shè)備

3)連接外設(shè)(connect)(根據(jù)peripheral ID連接指定的外設(shè))—

4)掃描外設(shè)中的服務(wù)和特征(discover)(一個(gè)設(shè)備里的服務(wù)和特征往往比較多,,一般會(huì)在發(fā)現(xiàn)服務(wù)和特征的回調(diào)里通過(guò)service、characteristic,、UUID去匹配我們關(guān)心的那些)

5)與外設(shè)做數(shù)據(jù)交互

6)斷開(kāi)連接(disconnect)

?

2,、設(shè)備ID描述DID

  每個(gè)與蘋果設(shè)備兼容的藍(lán)牙接入都必須:

支持藍(lán)牙設(shè)備ID描述,1.3版本或者更高,;

使用藍(lán)牙SIG分配的Assigned Numbers 文檔中的公司標(biāo)識(shí)作為他的Vendor ID值,,也就是VID,如果生產(chǎn)商沒(méi)有藍(lán)牙藍(lán)牙SIG公司標(biāo)識(shí),,那么藍(lán)牙HID描述接入可能會(huì)使用USB Implementers Forum分配的VID,;使用他的VID來(lái)標(biāo)識(shí)最終的產(chǎn)品生產(chǎn)商;使用版本值來(lái)唯一標(biāo)識(shí)軟件的版本,;使用Product ID值唯一標(biāo)識(shí)產(chǎn)品,。Device ID描述使得蘋果產(chǎn)品能夠識(shí)別遠(yuǎn)程的藍(lán)牙接入,該信息可以用來(lái)與遠(yuǎn)程接入交互的時(shí)候連接藍(lán)牙描述間的交替互操作,。因此Device ID中的信息記錄非常重要,。

理想情況下,這兩個(gè)設(shè)備應(yīng)該有不同的產(chǎn)品ID,。但是,,當(dāng)他們擁有完全相同的硬件、軟件和特性的時(shí)候擁有相同的ProductID也是可以允許的,。如果他們有任何的不同,,就都應(yīng)該有不同的Product ID。

?

3、IOS的藍(lán)牙低功耗

  藍(lán)牙4.0標(biāo)準(zhǔn)引入了藍(lán)牙低功耗,,一種針對(duì)有限電池資源的藍(lán)牙接入的無(wú)線技術(shù)。如果支持藍(lán)牙低功耗的話,,接入點(diǎn)需要支持下面的這些特性,。(這里更多的是藍(lán)牙芯片商要做的事情)

?

  角色:藍(lán)牙接入需要實(shí)現(xiàn)藍(lán)牙4.0標(biāo)準(zhǔn)中定義的外圍角色

  廣告通道:藍(lán)牙接入需要在所有三個(gè)廣告中針對(duì)每個(gè)廣告事件進(jìn)行廣告

  廣告PDU:藍(lán)牙接入需要使用如下廣告PDU中的一個(gè):ADV_IND;ADV_NOCONN_IND;ADV_SCAN_IND.

其中ADV_DIRECT_IND不推薦使用。

  廣告數(shù)據(jù):由藍(lán)牙接入發(fā)送的廣告信息至少應(yīng)該包含藍(lán)牙4.0標(biāo)準(zhǔn)中包含的如下信息:Flags,;TX Power Level,;Local Name;Services,。如果需要降低電量消耗或者并不是所有的廣告數(shù)據(jù)都適合放入到廣告PDU中的時(shí)候,,接入點(diǎn)可能將Local Name 和TX Power Level 數(shù)據(jù)方知道SCAN_RSP PDU中。需要注意的是根據(jù)它的狀態(tài),,蘋果產(chǎn)品可能不會(huì)總是執(zhí)行激活掃描,。主要的服務(wù)應(yīng)該總是放在廣告PDU中進(jìn)行廣告。次要的服務(wù)不應(yīng)該進(jìn)行廣告,。對(duì)于接入點(diǎn)不重要的服務(wù)信息可能會(huì)因?yàn)閺V告PDU中的空間不足而被忽略,。廣告數(shù)據(jù)和SCAN_PDU中的掃描響應(yīng)數(shù)據(jù)應(yīng)該遵循藍(lán)牙4.0標(biāo)準(zhǔn)中的格式。

  廣告間隔:藍(lán)牙接入的廣告間隔應(yīng)該慎重考慮,,因?yàn)樗麜?huì)影響到發(fā)現(xiàn)和鏈接的性能,。對(duì)于低功耗的接入,電池資源也應(yīng)該被考慮在內(nèi),。為了能夠被蘋果產(chǎn)品發(fā)現(xiàn),,藍(lán)牙接入應(yīng)該首先使用推薦的廣告間隔20ms,并持續(xù)至少30s,。如果這30s內(nèi)沒(méi)有被發(fā)現(xiàn),,那么接入點(diǎn)可能會(huì)選擇節(jié)省電池電量然后增加廣告間隔,蘋果推薦使用如下依次延長(zhǎng)的事件間隔來(lái)發(fā)現(xiàn)藍(lán)牙接入點(diǎn):645ms,;768ms,;961ms;1065ms,;1294ms,;

  連接參數(shù):藍(lán)牙接入負(fù)責(zé)用來(lái)LE連接的連接參數(shù)。接入點(diǎn)需要請(qǐng)求合適的鏈接參數(shù)來(lái)在合適的時(shí)候發(fā)送一個(gè)L2AP連接參數(shù)跟新請(qǐng)求,。如果他沒(méi)有符合如下規(guī)則,,那么連接參數(shù)請(qǐng)求可能會(huì)被拒絕:Interval Max *(Slave Latency 1)<=2seconds;Interval Min>=20ms;Interval Min 20ms <=Interval Max;Slave Latency<=4;connSupervisionTimeout<=6 s 以及Interval Max* (Slave Latency 1)*3<connSupervisionTimeout。蘋果設(shè)備不會(huì)讀取或者使用Peripheral preferred Connection Parameters特性中的參數(shù),。

  隱私:藍(lán)牙接入應(yīng)該在任何情況下都能夠滿足Resolve Private Address,。因?yàn)殡[私方面的考慮,蘋果設(shè)備將會(huì)使用藍(lán)牙4.0標(biāo)準(zhǔn)中定義的隨機(jī)設(shè)備地址,。

  配對(duì):藍(lán)牙接入不應(yīng)該請(qǐng)求配對(duì),。如果處于安全考慮,,接入點(diǎn)需要與中心建立綁定關(guān)系,外圍可以使用Insufficient Authentication錯(cuò)誤碼在必要的時(shí)候拒絕ATT請(qǐng)求,。因此蘋果設(shè)備可能會(huì)需要按照既定的流程來(lái)執(zhí)行過(guò)程,。配對(duì)節(jié)能需要機(jī)遇蘋果產(chǎn)品的MFI用戶認(rèn)證。

  服務(wù):

  通用接入描述服務(wù):藍(lán)牙接入應(yīng)該實(shí)現(xiàn)按照藍(lán)牙標(biāo)準(zhǔn)4.0中的Device Name特性,。

  通用屬性描述服務(wù):只有當(dāng)接入有能力在生命周期內(nèi)更改他的服務(wù)的時(shí)候,,該接入點(diǎn)才需要實(shí)現(xiàn)Service change 特性。蘋果產(chǎn)品可以使用Service Change服務(wù)特性來(lái)決定它是否可以使用之前讀取的或者緩存的來(lái)自設(shè)備的信息,。

  設(shè)備信息服務(wù):藍(lán)牙接入應(yīng)該實(shí)現(xiàn)設(shè)備信息服務(wù),,服務(wù)的UUID不應(yīng)該包含在廣告數(shù)據(jù)中。如下的特性需要被支持:manufacture Name String,;Model Number String,;Firmware Revision String;Software Revision String,。

?

4,,IOS APP開(kāi)發(fā)的藍(lán)牙操縱API

  手機(jī)APP要想獲得藍(lán)牙設(shè)備的一些額外的信息如電量或者操縱藍(lán)牙設(shè)備,必須通過(guò)IOS API,。那么IOS底層必然有某種方式來(lái)與藍(lán)牙設(shè)備交互,。那么電量通過(guò)什么來(lái)讀寫呢?定義 service characteristic,?

任何免提的藍(lán)牙耳機(jī)都可以在IOS設(shè)備的狀態(tài)欄中顯示一個(gè)用來(lái)標(biāo)識(shí)它電池電量的圖標(biāo),。這個(gè)特性被所有的IOS設(shè)備所支持,包括iPhone,,iPod,,iPad。耳機(jī)的藍(lán)牙只是通過(guò)兩個(gè)IOS藍(lán)牙HFP AT:HFP Command AT XAPL

?

HFP命令A(yù)T XAPL

1)描述:允許通過(guò)耳機(jī)自定義AT命令

2)發(fā)起者:耳機(jī)

3)格式:AT XAPL=[vendorID]-[productID]-[version],[features]

4)參數(shù):

  a,、vendorID:標(biāo)識(shí)生產(chǎn)商的vendorID的十六進(jìn)制表示,,但是沒(méi)有0x前綴

  b、productID:表示生產(chǎn)生的product ID的十六進(jìn)制表示,,但是沒(méi)有0x前綴

  c,、version:軟件的版本

  d、features:用十進(jìn)制標(biāo)識(shí)的位標(biāo)識(shí):

    1=耳機(jī)支持電池電量報(bào)告

    2=耳機(jī)暫?;蛘诔潆?/p>

    其他值保留

  例子:AT XAPL=ABCD-1234-0100,,3

  響應(yīng): XAPL=iPhone,[features]

HFP命令A(yù)T IPHONEACCEV

1)描述:報(bào)告耳機(jī)的狀態(tài)變更

2)發(fā)起者:耳機(jī)

3)格式:AT IPHONEACCEV=[Number of key/value pairs ],[key1 ],[value1 ],[key2 ],[value2 ],,。,。。

4)參數(shù):

  a、Number of key/value pairs:接下來(lái)參數(shù)的數(shù)量

  b,、key:被報(bào)告狀態(tài)變化的類型

      1=電量等級(jí)

      2=暫停狀態(tài)

  c,、val:更改的值

      Battery events:0-9之間數(shù)字的字符串 A string value between '0'-'9'.

      Dock state:0 = undocked,1=docked,。

(五)硬件接口

一般藍(lán)牙芯片通過(guò)UART,、USB、SDIO,、I2S、PcCard和主控芯片通信,。如下圖所示,,通過(guò)UART和主控芯片通信。

來(lái)源:http://www./content-4-85751.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多