掃盲篇之手機如何加入藍牙Mesh網絡

概述

與Zigbee、Thread等其他MESH組網技術相比,藍牙Mesh能夠在不需要額外硬件成本的前提下實現手機與藍牙Mesh節點的通信,無疑是一個巨大的優勢,因此本文將着重講解手機是如何與藍牙Mesh設備通信的,希望給讀者以清晰的理解。

手機軟硬件

手機軟硬件的設計問題決定了藍牙Mesh節點與手機通訊的方式,這是問題的出發點,因此本文將從手機的軟硬件講起,一步步洞悉其全貌。

  • 硬件
    現在的智能手機,不管是蘋果或其他衆多安卓廠家,藍牙無疑都是手機標配,在筆者書寫本文時,藍牙已經演變到5·2版本,當然受限於整個供應鏈的問題,手機上攜帶的藍牙版本目前還沒有到最新版本,目前市場上藍牙版本的分佈以4-2和5-0爲主,而藍牙Mesh所要求的是藍牙版本在4-0及其以上即可,因此,讀者不必擔心手機的硬件約束問題。另外,需要科普的是,從藍牙4-0開始,藍牙實際開始走兩條路線:傳統路線(Classic BT)也就是所謂的經典藍牙,這種藍牙通常注重於數據的高速傳輸,例如:藍牙耳機,藍牙音響等,第二條路線(Low Energy)低功耗藍牙,該類型的藍牙注重於功耗的低耗,例如:智能手環,智能鎖等。相對於手機來說,一般都是集成這兩類,我們稱之爲雙模藍牙。對於藍牙音響一般都是單純的經典藍牙以及智能手環一般都是單純的低功耗藍牙,我們將這些分類爲單模藍牙。這也就是爲什麼手機既能實現與藍牙耳機連接又具備與手環連接的原因。
  • 軟件
    說起軟件,就不得不講操作系統的設計與實現,目前主流的移動操作系統分爲IOS和Android兩種。不管哪種操作系統都必須提供軟件實現對硬件的封裝,我們將這類軟件稱爲驅動程序(一般有芯片原廠提供),這類程序提供了硬件功能的方方面面。但是僅有這些程序依然不能直接被開發者使用,操作系統需要從各方面整合考慮,提供中間層Framework進一步封裝衆多驅動程序,使得驅動程序能夠在一個系統下協調運行。這種結構無疑與解耦硬件,提供了對應用開發一致的編程接口。但同時也約束了應用開發對於硬件的功能使用問題,這也就造成一些時間要求比較嚴的功能無法在應用層實現,這就解釋了手機與藍牙Mesh通訊方式的問題,必須通過連接機制而無法通過廣播。

掃描與連接

智能手機想要與藍牙Mesh節點建立連接,必須掃描來自周圍節點的可連接廣播包,藍牙Mesh規範將這種可連接的廣播包分爲:

  1. Network ID
  2. Node ID

智能手機掃描到上述廣播包並通過共有的網路層密鑰進過解密後,即可發起連接,與對端節點建立通信,對端節點我們稱之爲代理(Proxy)節點,在最新的藍牙Mesh規範中,規定支持代理功能的節點必鬚髮送Network ID類型的廣播包,但只有代理功能使能的節點則可以通過廣播轉發來自智能手機的消息,未使能代理功能的節點依然可以與智能手機連接,但只處理來自智能手機發送給自身節點的消息,其他消息只會丟棄而不是通過廣播轉發。

消息的傳遞

智能手機通過上述步驟建立與代理節點的連接後,便認爲此時手機已經屬於網絡中的一在線節點,如果手機想要發送消息,必須通過連接把消息給代理節點,而代理節點則通過廣播機制將這些消息傳遞下去。同樣,代理節點也可以將來自其他節點發送的消息通過連接傳遞給智能手機。相對於網關而言,代理節點同樣也是網絡中的一員,而網絡中的任何一個節點都可以成爲代理節點,前提這些節點具備該功能。

藍牙技術中文社區

藍牙交流社區成立啦,不定期有技術乾貨出爐,歡迎各位一起討論展望未來物聯網的新格局。感興趣的可掃我二維碼加我好友,審覈後將拉進社區。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章