0、小知識彙總
1、產品簡介
E104-BT10 藍牙 mesh 自組網模塊支持 sig mesh V1.0 標準,單網絡理論最大可容納 10922 個節點設備。設備入網後自動記憶網絡信息,入網時間 1 秒內完成。手機 APP 可任意節點代理入網,實現 mesh 網絡遠程控制。可方便實現網內廣播或任意定點數據透傳,透傳數據單包最大支持 80 字節。支持 sig標準 HSL(H: Hue , S: Saturation ,L:lightness)模型,一鍵實現燈控應用場景。非常適合物聯網信息採集,大規模組網通訊場景,智能家居等應用。
2、產品特點
- PCB 板載天線,空曠最大通訊距離 50 米
- 發射功率多級可調最大+8dbm
- 串口波特率動態可配
- 無線通訊信道 37、38、39
- 網絡無中心節點(gateway)
- 記憶組網信息,上電自動入網
- 上電入網 1 秒完成
- 支持手機 APP 入網
- 組網最大節點數 10922
- 支持 SIG MESH Generic 模型
- 支持 SIG MESH HSL 燈控模型
- 支持自定義串口數據透傳模型
- 支持自定義低功耗(非標準低功耗)
- 支持串口喚醒
3、MESH網絡介紹
這個模塊最大的優勢在於可中繼網絡內的任意數據,任意模塊都是中繼,中繼的同時也都可收到數據,模塊數據信號覆蓋範圍 50 米左右,下圖中繼爲功能示意圖,用戶可參考。
解讀上圖模擬應用場景:模塊 A 到模塊 C 的距離爲 70 米,超出了我們模塊的 50 米的傳輸距離,所以 A 模塊無法直接將數據發給 C 模塊,若在 A模塊和 C 模塊之間放置一個 B 模塊,那麼 數據就會被 B 中繼然後 C 收到。模塊 A 需要發送數據給整個網絡,模塊 B,C,D,E 需要收到 A 的數據,那麼 A 模塊就以廣播地址(0XFFFF)發數據就可以瞭如果 A 模塊需要指定數據發送給 E 模塊,就只需 在數據格式中地址處填寫 E 模塊的地址就行(詳情見指令格式介紹),但是 E 模塊離 A 模塊 140 米,無法將數據直接傳達,但是隻要這幾個模塊是屬於同一個網絡,數據就會以下面這個鏈路傳達到模塊 E,A 發出數據傳遞給 B ,B 再到 C,C 到 D, D 傳給 E。
4、一些基本概念
4.1、網絡密匙(Net Key)
全稱 network keys,網絡密鑰,用來保護網絡層通信的密鑰。是使用符合核心規範要求的隨機數生成器生成的密鑰。(詳見 Mesh Profile3.86)
4.2、會話密匙(App Key)
全稱 application keys,應用程序密鑰,用來保護上層傳輸層的密鑰。是使用與之兼容的隨機數生成器生成的,應用程序密鑰標識符(AID)用於標識應用程序密鑰。(詳見 Mesh Profile3.86)
4.3、設備角色
在 SIG MESH 協議中 擁有種角色分別爲 node、low power node、relay node、friend node、proxy node。相關功能介紹如下:
- Node:整個 mesh 網絡中的邊緣節點,具有接收與發送數據的能力,但是不具備中繼(relay)功能
- Low power node:低功耗節點,由於 friend node 的存在,低功耗節點不需要一直在廣播信道發送或者監聽數據包,只需要查詢 friend node 上有沒有數據達到就行。(暫不支持)
- Relay node:中繼節點,是網絡層擴展網絡覆蓋範圍的核心節點,在接收到其他節點發送的數據包後,根據網絡協議的判定條件判斷是否需要轉發。
- Friend node: low power node 可以與 friend node 建立友好連接,作爲 low powernode 的代理節點,當 lowpowernode節點的數據達到時,可以在 Friendnode 緩存,等待 lowpowernode 查詢並且獲取。
- Proxy node:代理節點,代理節點可通過承載層(廣播承載層或 GATT 承載層)接受信息,並通過另一個廣播承載層或GATT 承載層重新發送消息。在非 mesh 低功耗藍牙設備成爲藍牙 mesh 網絡成員過程中起關鍵作用,代理節點的根本目的是執行承載層轉換。它能夠實現從廣播承載層到 GATT 承載層的轉換,反之亦然。因此,不支持廣播承載層的設備可通過 GATT 連接來收發各類藍牙 mesh 消息。E104-BT10N 支持代理節點功能,配合手機端 APP 可實現 mesh 網絡控制(資料壓縮包中包含 APP相關 SDK 供客戶自行開發)。
通常單個設備只支持一種角色,在 EBYTE 的方案中,模塊支持兩種角色,provision 節點和 mesh 節點,provision 節點即負責組網的設備,mesh 節點是收發數據和轉發數據的設備即 relay node。
SIG MESH 有四種連接方式:
- 1、 ADV(Not Relayed):即不具備轉播能力的連接。這種情況適用於兩個節點之間互相收發消息,但不具備中繼能力不能進行數據包的轉發工作。
- 2、 ADV(Lower power):即低功耗廣播連接。用於 low power node 和 friend node 之間收發數據包,在這個連接上low power node 會主動發起請求建立與 friendship 的連接,以及從 friend node 上查詢是否有自己的數據包。
- 3、 ADV Bearer:廣播轉發連接。兩個節點之間可以基於廣播轉發收發廣播消息,並且可以作爲中繼轉發。(該產品就在此連接上工作)
- 4、 GATT Bearer:用於沒有 ADVbearer 能力的結點也能參與 MESH 網絡,通過代理協議與其他的結點在 GATT 連接上收發代理 PDU。
該產品支持的設備類型有 provision 和 mesh。
- Provision 節點: 是特殊的 node 節點,是整個網絡的發起者。也被稱作 gateway。它將未組網的設備加入到 mesh 網絡中。Provision 節點向未配網設備提供 provision 數據,其中包括 netkey、appkey,還有設備每一個 element 對應的 unicast地址。
- Mesh 節點:該產品的mesh 節點是集 node、relay node 、friend node、proxy node 四種角色爲一體,在使用過程中方便快捷。
4.4、模型(Moule)
在 SIG MESH 有很多模型,我們的 E104-BT10 模塊一共有三個元素地址, 每一個元素地址下面可以綁定多個模型,在下表中每一行就是一個模型,其中 HSL 的模型比較特殊綁定了三個地址,這是因爲在 HSL 模型中需要控制三個東西 亮度、飽和度、色溫,所以它有三個地址。
4.5、地址(unicast)和元素(element)
Address 地址,一個地址對應一個元素,從上面 model 介紹中可以看出我們有三個元素,我們可以稱之爲元素地址,它是在 provision(組網)過程中由 provision 設備分配給 node 節點的唯一地址,在同一個 mesh 網絡中每一個 node 設備可能會有多個地址 但是,每個設備裏的一個 model 只能有一個地址,但不同 model 可綁定在一個地址上,在後續的 mesh 網絡通信過程中設備就是依靠此地址尋找其他設備。E104-BT10G 的角色是 Provision 設備,E104-BT10N 的角色是 Node 設備。
5、使用介紹
5.1、組網介紹
E104-BT10 這個 mesh 組網模塊, 分爲了 E104-BT10G, E104-BT10N,兩種型號,E104-BT10G(就是 provisioner),E104-BT10N(就是 node 節點),E104-BT10G 這是整個網絡的發起者,整個網絡有且只有一個 E104-BT10G我們所說的組網 就是用 E104-BT10G 把 E104-BT10N 加入到 E104-BT10G 的網絡中。所以要實現 mesh 組網至少需要兩個模塊,一個 E104-BT10G,一個 E104-BT10N。
軟件設置: E104-BT10G 需要設置 netkey,APPkey(詳見指令 4.3.1.1)這兩個值用戶必須自己設置(我們有默認值,但不推薦使用),不同網絡之間這兩個值不能相同,因爲在組網的時候 E104-BT10G 會給 E104-BT10N 分配 netkey,以及綁定 APPkey。
整個網絡的組建完全自動,用戶只需串口給出“添加節點入網”指令就好,組網過程最長耗時 30 秒,但是一般是 10 秒到 20秒就能成功。