藍牙知識詳解,這些常見詞匯你知道多少?
談及藍牙,我們會經常聽到BLE、Beacon、iBeacon、Eddytstone等詞匯,而它們之間有何聯系與區(qū)別呢?下面我們對藍牙常見詞匯及應用涉及的藍牙技術進行詳解。
一、藍牙常見詞匯解釋
BLE:全稱為Bluetooth Low Energy,藍牙低功耗技術。
Beacon:基于藍牙4.0協議的一種精確定位技術。
iBeacon:蘋果公司2013年推出的一套遵守Beacon技術協議的規(guī)范,需要遵守蘋果公司規(guī)定的數據格式。
Eddystone:谷歌公司2015年推出的一款跨平臺的開源Beacon格式藍牙協議。
我們日常生活中常說的藍牙,其實通常是指BLE,藍牙低功耗技術,如名字所示,現在的藍牙技術所消耗的功耗很低,并不像傳聞中,不使用藍牙需要關閉省電,手機上長期打開藍牙所消耗的電量可以忽略不計。
二、BLE的起源與分類
BLE,也就是低功耗藍牙技術,起源于2006年Nokia(諾基亞)的Wibree技術,該技術為稱為“小藍牙”,類似于藍牙技術,但是只消耗相當于藍牙技術一小部分的電池電量。后來該技術被整合進藍牙,并在SIG 2010年發(fā)布的藍牙4.0技術規(guī)范中成為其中一部分。
BLE的協議棧如下圖所示。BLE是一組與傳統藍牙不同的協議,并且對應設備也未實現向后兼容功能。因此BLE形成了三種設備類型:
Bluetooth設備,稱為藍牙BR/EDR:只支持傳統藍牙的設備,如一些老式設備,比如舊型手機等。經典藍牙采用SPP(串行端口配置文件)傳輸數據,SPP定義了在兩個對等設備之間使用RFCOMM設置模擬串行電纜連接所需的藍牙設備要求。
Bluetooth Smart Ready設備,稱為藍牙4.0雙模,同時支持傳統藍牙和LE模式的設備。iOS、Android系統等新型手機、筆記本、平板電腦支持。因為雙模控制器集成了BR/EDR控制器和LE控制器,因此它能夠支持兩種藍牙協議。
Bluetooth Smart設備,稱為BLE單模,采用LE controller,只支持LE模式的設備。Beacon設備只支持low energy protocols(LE低功耗協議),因此能靠一顆紐扣電池就能運行很長時間。
BLE(低功耗藍牙)和傳統藍牙使用的都是相同的波段(2.4GHz)。但是BLE協議的傳輸速率比較低,物理層的傳輸速率是1Mbps,相當于每秒125KB,BLE不適合用于傳達大量數據,一般用于發(fā)現設備和完成一些簡單通信。
BLE和傳統藍牙都能夠覆蓋到100米的范圍,但BLE的覆蓋范圍稍廣。BLE與傳統藍牙相比,最大的優(yōu)勢是功耗,BLE的功耗比傳統藍牙降低了90%,同時傳輸距離增大、安全和穩(wěn)定性提高,支持AES加密和CRC驗證,對連接設備進行通信的安全性提供了保障。
三、Beacon技術的特點
Beacon作為基于藍牙4.0協議的定位技術越來越受室內定位市場關注。隨著物聯網信息化發(fā)展,大數據采集處理需求的不斷積累,低功耗低成本的Beacon技術成為室內定位應用關注的焦點,憑借其特點推動物聯網室內定位系統快速落地。
1.無需配對。
在印象中我們日常使用藍牙設備都需要配對工作,比如打開藍牙無線耳機和手機進行連接時就需要匹配,智能手環(huán)綁定手機時也同樣需要匹配工作。而Beacon無需配對,因為它是采用藍牙的廣播信道傳送信號,手機等設備無需與Beacon設備建立連接即可正常工作。
2.后臺接收信息。
基于Beacon定位的信息推送需要App支持。但是我們使用室內定位功能接收Beacon信號無需打開App,只是需要展示Beacon信息推送服務時才需打開對應app。
3.Beacon不具備傳統意義上的數據傳輸功能。
Beacon設備基站只是以廣播數據的形式推送定位所需的信息,采用的是藍牙不可連接模式。
如果配套開發(fā)的app要運行,并傳輸數據與服務器通信實現客戶定制化功能,獲取特定數據,需要搭配開啟其他的數據通信方式,例如Wi-Fi、4G等。
另外,采用Beacon定位,可以不使用網絡,而這里的網絡是指不通過服務器,Beacon定位算法可以在本地實現,即設備本身完成定位而不通過線上服務器計算,前提是需定位的地圖數據提前初始化寫入本地設備。
四、基于Beacon技術的iBeacon與Eddystone有何區(qū)別?
1.iBeacon
iBeacon技術是蘋果公司在2013年WWDC上,推出的一項基于藍牙4.0(Bluetooth Smart)的精準微定位技術,底層技術使用的是BLE(Bluetooth Low Energy),該定位技術在iPhone 4S后支持。
當你的手持設備,例如智能手機靠近一個Beacon基站時,智能手機就能夠接收到Beacon信號,該信號接收范圍可以達到50米。
蘋果公司將iBeacon相關的接口放到了CoreLocation.framework。Google在Android 4.3及后續(xù)版本支持了該功能,開發(fā)者要使用iBeacon技術,只要滿足iBeacon技術標準即可,但不能對協議格式進行修改,有一定的局限性。
2.Eddystone
Eddystone是谷歌公司2015年7月15日推出的一款跨平臺的開源信標格式的藍牙LE信標,主要應用在公共場合向人們發(fā)送各種信息推送。
由于谷歌公司把它定位為開源項目,谷歌公司按照傳統,就是不用谷歌公司名稱命名那些開源項目,比如Android操作系統就沒有使用谷歌公司的名稱,公眾不需要知道Eddystone是哪家公司的,只要制作信標的OEM和對應app開發(fā)者知道。
相對于蘋果公司iBeacon的局限性,Eddystone是開源的,不僅能用在安卓系統上,iOS通過鏈接庫文件也可以使用。Eddystone在GitHub上存有源代碼。完全開放源代碼也是Eddystone最大的賣點,蘋果對iBeacon的使用權限保管地十分嚴密,之前Radius Networks公司曾想辦法在安卓系統上運行蘋果iBeacon,蘋果公司嚴肅處理此事并最終關閉了這項服務。
五、Beacon設備如何使用BLE
通過上面的內容,我們了解到BLE、Beacon、iBeacon、Eddytstone究竟是什么,那么對于beacon設備來說,是如何基于BLE技術實現功能的呢?
首先,我們先縱觀一下BLE完整的連接過程。
1.BLE的廣播掃描連接過程解析
(1) 廣播,又叫Advertising。
主機(Central)如果要連接從機(Peripheral)),從機必須進行廣播,供主機進行連接。從機會每間隔一定的時間發(fā)送一個廣播包(Advertisement Packet),間隔的時間在20ms到10.24s之間,該間隔時間被稱為廣播間隔。廣播間隔會影響之后啟動一次連接所花費的時間。
主機在發(fā)送連接請求(Connection Request)啟動與從機的連接之前,必須接收廣播包。而從機在發(fā)送完一個廣播包后的一段時間內,只監(jiān)聽主機的連接請求。一個廣播包能夠承載31個字節(jié)的數據。通常包含的內容有用戶名稱、設備信息、可連接標識等。廣播類型可分為四種:
1) Connectable Undirected Event Type(可連接非定向型)
2) Connectable Directed Event Type(可連接定向型)
3) Scannable Undirected Event Type(可掃描非定向型)
4) Non-connectable Undirected Event Type(不可連接非定向型)
當主機接收到一個廣播包時,它將發(fā)送掃描請求(Scan Request)來獲得更多的廣播數據,前提是掃描者(Active Scanner)已經進行了配置。然后從機通過發(fā)送掃描響應(Scan Response)來回應這個掃描請求,可以包含額外的31個字節(jié)數據。
廣播,掃描請求和響應,它們采用三個不同的2.4G頻率段以避開WLAN的干擾。
(2)掃描(Scanning)
掃描是主機用來監(jiān)聽廣播包和發(fā)送掃描請求的。有兩個時序參數需要注意:“掃描窗口”(Scan Window一次掃描所占的時間長度)和“掃描間隙”(Scan Interval一次掃描的總時間,包括掃描停止的時間和掃描進行的時間)。 對于每一次的掃描間隙,主機掃描的時間等于“掃描窗口”,意思是說,如果“掃描窗口”等于“掃描間距”,那就意味著主機在進行連續(xù)的掃描。所以說,主機掃描的占空比就是“掃描窗口”的時間除以“掃描間隙”的時間乘以百分之百。
(3)啟動連接(Initiating)
當主機想要進入連接時,它將經歷跟掃描廣播包時一樣的流程。當啟動連接時,主機接收到一個廣播包時,主機將發(fā)送一個連接請求(Connection Request)給從機。
(4)連接(Connection)
根據連接中第一次的數據交換來定義主機和從機的角色。當進行連接時,主機將根據從機定義的“間隙時間”(Interval)請求數據。這個間隙時間被稱為“連接間隙”(Connection interval)。它用于主機連接,不過從機可以發(fā)送更新連接參數請求(Connection Parameter Updata Requests)給主機。
根據Bluetooth Core Specification,這個時間間隙必須在7.5ms到4s之間。如果從機在時間幀內(time-frame)不響應這個來自于主機的包,這稱作連接監(jiān)管超時(Connection supervision timeout),此次連接被認為已丟失。在每次連接間隙中通過傳輸多個包來達到更多的數據吞吐量是可行的。每次的包最多可以發(fā)送20個字節(jié)。但是,如果當前的功耗需要控制的,從機沒有數據發(fā)送,就可以選擇忽略一定數量的間隙。被忽略的間隙被稱作“從機延遲”(slave latency)。在一次連接中,設備將通過所有通道在頻率帶中進行跳頻(hop)。
2 .Beacon的使用方法
Beacon設備只使用了廣播通信信道,因此無BLE后續(xù)連接相關步驟,也正是這樣,Beacon面向低功耗室內精確定位的應用領域。正如beacon(信標、燈塔)的字面意思,這種設備以一定的時間間隔發(fā)送數據包,并且發(fā)送的數據被可以被像手機這樣的主機設備獲取。
比如:一個小型溫控器可以開放一個service用于獲取當前的溫度或者濕度讀數,它是被可連接的,溫控器和操作設備之間可以相互通信;Beacon不進行連接,操作設備只接收到Beacon的廣播信號,操作設備根據接收到的廣播信號進行下一步動作。
六、iBeacon技術使用介紹
下面主要介紹iBeacon具體怎么使用:
(1)iBeacon的屬性
iBeacon從本質上來說是一個位置信息,所以蘋果公司把iBeacon功能集成在了Core Location里面,主要用三個屬性來標識一個iBeacon:proximityUUID、major和minor。
1.proximityUUID是一個NSUUID,用來標識公司的。每個公司、組織使用的iBeacon應該擁有同樣的proximityUUID,也被稱為UUID。
2.major用來識別一組相關聯的beacon,例如在連鎖超市的場景中,每個分店的beacon應該擁有同樣的major,major的作用類似于分組,為了更好地管理數量龐大的Beacon設備。
minor則用來區(qū)分某個特定的beacon,相當于是對同一組的Beacon設備進行編號管理,例如在連鎖超市中,區(qū)分某一個貨架上的不同商品。
這些屬性如果不進行指定,設備匹配的時候就會忽略這個屬性。例如只指定proximityUUID的CLBeaconRegion可以匹配某公司的所有beacon設備。
(2)iBeacon幀格式
iBeacon廣播包幀格式如下,我們可以看到幀格式由廣播長度、類型、公司ID、iBeacon類型、iBeacon長度、UUID、Major、Minor、發(fā)射功率這些參數組成。
其中Company ID稱為公司ID,顧名思義是為了展示公司標識,例如下面的公司向Bluetooth SIG申請的16bit UUID:百度(0xFDC2,0xFDC3),小米(0xFDAB,0xFDAA,0xFE95),alibaba(0xFE3C),nordic(0xFE59,0xFE58)。
Company ID帶有很強的標識信息,體現出該iBeacon數據服務提供商的綜合能力,但是很多使用者和公司都沒有這種ID。在實際的Beacon營銷推廣應用,例如在商場推送營銷信息中,展示自身的ID信息是非常重要的,而該參數的限制對營銷推廣使用有一定的局限性。
除此之外,我們可以看到整個iBeacon數據格式是單一的,每一段代碼都已經被嚴格限制,開發(fā)者或者使用者只能按照格式使用,不能額外修改或者自行開發(fā)。
七、Eddystone技術使用介紹
下面主要介紹Eddystone具體怎么使用:
(1)Eddystone的屬性
Eddystone除了開源這一大優(yōu)勢之外,還支持多框架。先前蘋果的iBeacon和谷歌的The Physical Web都只支持一種框架。
Eddystone兼容多種框架,你可以看到不同的信標銷售商銷售不同用途的信標。意味著無論是iOS手機還是Android手機都可以接收到谷歌公司的Eddystone Beacon信號。這對于需要推送店鋪信息的商家是個非常好的消息,意味著所有手機都可以接收到推送消息,而不是像iBeacon一樣被iOS系統所限制。
而Eddystone多種框架包含UID、URL、TLM、EID四種格式數據。
Eddystone的UID初衷就是用來兼容iBeacon UUID,為了打破只有iBeacon UUID的限制,UID可以自由地被商家設置,app可以選擇只接受來自該UID的消息,通過UID的唯一識別碼,商家app也可以判斷出用戶處于全球的哪一家分店,并推送相應的信息,如優(yōu)惠券、連接Wi-Fi等等。
URL鏈接顯然比UID應用更廣泛也更簡單,任何一個手機上都有瀏覽器,它們都可以打開URL。在這種一次性傳輸中,用戶不想專門下載app接收推送信息,URL無疑是最佳選擇。
TLM,這種遠程遙測框架對需要掌控大量信標的企業(yè)很有用。鑒于信標大多數使用電池供電,在一段時間后就需要更換電池或充電。遙測數據框架允許信標將自身的狀態(tài)和電量信息發(fā)送給周圍的工作人員,這樣員工們可以有針對性的進行維護和更換。
EID是一種安全框架,它是一種只允許被授權用戶讀取信息的信標。比如在公司中,大廳里安放了對全部顧客、訪客廣播的信標,然而公司也有只想對雇員廣播的信息,他們顯然不希望這些信息被顧客和訪客看到。
(2)Eddystone幀格式
Eddystone不使用制造商數據字段,而是在完整的16位服務UUID字段中置入0xFEAA值,并用關聯的服務數據字段來容納Beacon信息。完整細節(jié)可查看如下:
利用Eddystone技術的Beacon設備可以廣泛應用于商品的近距離推廣,例如顧客在超市,餐廳附近逛街。在機場,火車站,風景點,博物館獲取地點信息。對資產進行追蹤防丟。在商場室內進行導航。
基于BLE技術的Beacon應用案例在市場上已遍地開花,網上可以搜到各種有關Beacon的技術信息。無論國內還是國外,Beacon技術旺盛的應用需求已經吸引越來越多的廠商投入研發(fā),市面上已有相當成熟的Beacon系統方案,例如智慧博物館、智慧倉庫、智慧動物園、智慧冷鏈、智慧賣場、智慧商店、智慧體育館、智慧養(yǎng)老院、智慧醫(yī)院、智慧展覽中心等Beacon應用方案。信馳達科技作為物聯網業(yè)內領軍企業(yè)更是起到了先行者的作用,旗下推出的Beacon成品RF-B-AR1,憑借極低的使用門檻助力客戶縮短項目搭建周期,幫助客戶產品快速落地,在國內已有成熟的Beacon應用場景案例。
目前,國內Beacon應用越發(fā)趨于完善,整體室內定位產業(yè)鏈初具規(guī)模。憑借著低功耗,低成本的Beacon產品優(yōu)勢,信馳達科技在室內定位應用的廣闊前景已經打開。