上次我們淺談基於BLE架構下的網狀通訊協議BT Mesh通訊,本篇主要介紹BT Mesh 裝置開通流程與BT Mesh Node相關定義,並於最後使用QCA402x BT Mesh Lights與 BT Mesh Switch進行實際應用。
- BT Mesh裝置開通流程:
BT Mesh 裝置在未進行Provisioning(開通配置)前BT Mesh Device稱為unprovisioned Device,經由Provisioner進行Provisioning後稱之為BT Mesh Node,首先我們必須先了解PB-ADV與PB-GATT兩種承載層,以下將逐一介紹。
PB-GATT: PB-GATT(Provision Bear-GATT)為利用BLE裝置進行Provisioning所用,使用的承載層為BLE GATT並啟用Provisioning Service,如此一來即可使用手機、智慧手錶…等BLE裝置進行Provisioning,達到向下相容的目的。
PB-ADV: PB-ADV(Provision Bear-ADV)為BT Mesh Provisioner裝置進行Provisioning所用,使用的承載層為BLE ADV,其可直接使用裝置進行開通配置,使BT Mesh於沒有手機或手錶的情況下依然能開通新裝置。
BT Mesh Device開通流程:
BT Mesh開通流程主要分為以下五大步驟:Beaconing、Invitation、Exchange public keys、Authentication與Distribution of provisioning data。
Beaconing: 尚未入網之BT Mesh Device需要向Provisioner發送ADV資料,供Provisioner掃描,以進行後續入網動作。
Invitation: 當Provisioner接收到Device所發之Beacon後,會進行邀請Device入網,並交換必要的設備訊息,必要資訊中包含該Device所擁有之Element數量、支援的加密演算法、使用公鑰或私鑰進行加密與OOB(Out of Band)認證相關資訊。
Exchange public keys:交換公鑰時,會讀取Invitation步驟所取得的資訊,來確定Device是否支援OOB公鑰交換,再使用公鑰與自身的私鑰經由(ECHD)橢圓曲線產生出對稱金鑰。
Authentication:
目前BT Mesh所支援OOB加密方式為Output OOB、Input OOB、Static OOB以及不使用OOB認證之No OOB。
Output OOB為Device產生隨機數,並於Provisioner上輸入該數值,進行認證,例如未開通的裝置為燈泡時,可使用隨機閃爍次數,當作Provisioner上輸入之依據,即可完成Output OOB認證。
Input OOB則與Output OOB相反,此時為Provisioner產生隨機數,並於Device上輸入該數值進行認證,即可完成Input OOB認證。
當Device不支援Input/Output OOB時,可採用Static OOB或No OOB,Static OOB為某一固定值,進行OOB認證,當此固定值為0,代表所使用OOB為 No OOB。
Distribution of provisioning data:
完成認證確保Provisioner與BT Mesh Device之間的承載層安全後,即可傳送Provisioning data,其中包含Network key、Device Key、Net Index、Key Flag、IV Index、Unicast Address,此時BT Mesh Device完成開通配置,並成為BT Mesh Node。
BT Mesh相關應用資訊:
首先BT Mesh包含BT Mesh Element、Models、Subscribe與Publish五大項必須了解之資訊,下圖為BT Mesh Node主要架構以下我們逐一進行解析。
BT Mesh Element:
BT Mesh每一Node中必須擁有一個Element或多個Element,每一Element皆有獨立地址,且每一Element包含一個或多個Model。
BT Mesh Model為決定某一節點其基本功能,每一Model擁有不同的State,一個Element可包含多個Model。
BT Mesh利用Subscribe功能訂閱Group Address以利於BT Mesh裝置進行一對多控制,一個Model可以訂閱多組Group,例如:廚房燈可以同時訂閱廚房與全家燈泡兩個Group。
Publish:
BT Mesh利用Publish將Client狀態發布至Group Address,藉此控制Group內裝置,Group可接受多個Node Publish,例如:花園開關與全屋開關可同時發布至花園Group。
BT Mesh實際應用:
以下我們將利用QCA402x進行BT Mesh實際應用,主要使用QCA4020作為BT Mesh Switch、QCA4024作為BT Mesh Lights,並使用手機進行開通動作。
BT Mesh Switch:
首先BT Mesh Switch使用Generic OnOff Client發送指令至Lights Group來控制BT Mesh Lights,另外Configuration為BT Mesh設定必要Model,下圖為QCA4020 BT Mesh Switch所建立之Node列表。
首先BT Mesh Lights使用Generic OnOff Server、Lightness Server與HSL Server,另外Configuration為BT Mesh設定必要Model,下圖為QCA4024 BT Mesh Lights所建立之Node列表。
評論