今年CES展隨處可見CES is blue and thanks to you,生日快樂,藍牙。
新年伊始,在此祝大家新年快樂。
業精于勤荒于嬉,行成于思毀于隨...。把這句話分享給大家和自己,18年擼起袖子加油干,幸福都是奮斗出來的。
-------------------------------------------------------------------------------------------------------
前面談完了藍牙5大數據傳輸,遠距離傳輸,還剩最后也是很重要的一個特性,藍牙5大廣播包數據。
首先我們來科普一下何為藍牙的廣播包,以及它的用途。
藍牙廣播
藍牙從機設備正常工作時會以一定頻率發送廣播包,告知周圍設備可以來連接自己(connectable),或者單純發送廣播數據(non-connectable)給到周圍主設備。從機廣播中可能包含設備的相關信息,設備名稱,設備具有的服務uuid 等,SIG有明確規定。
廣播包類型
廣播包可以拆分為兩種,一種是從機設備的廣播的數據,一種是主機設備掃描到從機的廣播包后響應返回給沖擊設備的數據。
廣播包 (Advertising Data):設備端主動發送的周期數據。
響應包 (Scan Response):主機主動掃描的情況下, 發送掃描請求給從機, 從機返回掃描響應數據。
廣播數據包格
有效數據(significant)和無效數據(non-significant)兩部分。
有效數據部分包含若干個廣播數據單元,稱為 AD Structure 。如圖所示,AD Structure 的組成是:
長度 Len ,表示這個 AD Structure 的長度(除去 len本身 1)
類型 AD Type
標記這段廣播數據代表什么, 比如設備名, uuid 等。
數據 AD data
無效數據部分廣播包的長度必須是 31 個 byte,如果有效數據部分不到 31 自己,剩下的就用 0 補全。這部分的數據是無效的。
我們以一個例子說明廣播包和他的作用:
下圖為CC2540 BLE抓包工具抓包的截圖,右邊AdvData內的數據即為廣播數據,該廣播數據由工程師自己設計,最大支持的字節為31個直接,兩橫條之間Time的差值即為廣播間隔。
通常情況,廣播包的作用如下:
作為可連接設備時,廣播包內帶有產品信息,比如品牌logo,MAC地址等.
作為beacon設備時,可能攜帶傳感器數據上報給集中器,可以攜帶beacon編號信息,MAC地址,特殊編碼數據。
作為可連接設備的廣播,藍牙4.2和藍牙5.0并無太多差異。
但對應Beacon應用來說,廣播數據和可傳輸的數據長度就顯得尤為重要。beacon廣播結合Scan端集中器(Broadcaster and Observer)可以用于智能家具節點數據上報,工廠自動化設備數據上傳,人員管控,冷鏈物流監控,特殊區域布防等多種應用場景;beacon廣播結合地圖亦可以作為室內導航定位的輔助工具,為室內定位提供良好的解決方案(目前已經相繼出現好幾家機場,醫院,商城實現手機室內導航,其原理即依靠大量布置beacon點和手機地圖匹配,利用手機掃描周圍beacon廣播信息,實現定位與導航,但定位精度存在偏差,不如UWB精度高)。
BLE的低功耗紐扣電池供電特性,小體積,可以和手機互聯互通,使得beacon在上述應用呈爆發式增長。但其中會存在一個棘手的問題,31字節的廣播包太短,每次廣播能攜帶的有效數據太少,另外廣播通道太少,只有37,38,39三個通道廣播,可能存在多設備上報數據信道的干擾問題。
藍牙5擴展了廣播數據的有效載荷,提升了廣播通道數,為上述應用和新的應用提供了更多技術儲備。下面我們就來看看藍牙5的8x 大廣播包。
藍牙5特性三 【8X 大廣播包】
藍牙4.x協議規定藍牙廣播數據包每包數據最大只支持31字節數據傳輸,廣播信道限制在37,38,39三個信道。在原有的用于傳輸廣播數據的PDU(ADV_IND、ADV_DIRECT_IND、ADV_NONCONN_IND以及ADV_SCAN_IND,稱作legacy PDUs)的基礎上,藍牙5增加了擴展的PDU(ADV_EXT_IND、AUX_ADV_IND、AUX_SYNC_IND以及AUX_CHAIN_IND,稱作extended advertising PDUs),同時也允許藍牙在除開37,38,39三個通道之外的其他37個信道上發送長度介于0-255字節的數據。
藍牙5.0把廣播信道抽象為兩類,一種叫主廣播信道(primary advertisement channels),另一種叫次廣播信道,或者第二廣播信道(Secondary Advertising Packets)。
主廣播信道只工作在37,38,39三個信道,最大廣播字節為31字節,廣播的數據類型增加了一個ADV_EXT_IND指令,ADV_EXT_IND指令即為告知監聽設備,我要廣播大數據包廣播了。
ADV_EXT_IND指令包含要在第二類次廣播信道上發送的內容,第二廣播信道發送廣播數據的信道,物理PHY層,1M PHY,Coded PHY,2M PHY 等。
其示意如下圖所示,首先在主廣播信道廣播ADV_EXT_IND信息,然后利用次廣播信道(0-36 channel)廣播255byte 數據。
如果我們有大于255字節的數據需要發送,藍牙5.0廣播協議棧中已經定義了AUX_CHAIN_IND,用于在第二廣播信道上連續傳輸255字節數據,這樣我們可以利用它發送超過255字節的大數據包數據。
第二廣播信道(Secondary Advertising Packets)中的 AUX_ADV_IND、以及AUX_CHAIN_IND已經介紹,下面再看看AUX_SYNC_IND指令。
AUX_SYNC_IND指令用于大廣播包數據的周期發送,廣播者可隨時修改其廣播數據,但其他監聽者依然可以監聽到其周期性的廣播內容,AUX_SYNC_IND指令包含廣播間隔,調頻序列,廣播數據,廣播者MAC地址等信息。
結論:
藍牙4.2的廣播數據31字節,藍牙5.0的廣播數據255字節,提升了8倍之多,由于使用了更多的廣播信道,多個設備上報數據的抗信道干擾能力得到提升,另外由于多信道的使用,可以同步廣播多種不同制式的信息,比如同時廣播ibeacon和eddstone。結合藍牙5 long range mode遠距離傳輸模式,藍牙的遠距離beacon可以用在冷鏈物流,gps追蹤器,工業自動化等在之前距離和數據吞吐量受限的場合,藍牙5.0給我們更多創新的可能。
-
大數據
+關注
關注
64文章
8897瀏覽量
137542 -
Beacon技術
+關注
關注
0文章
6瀏覽量
6274
發布評論請先 登錄
相關推薦
評論