藍芽mesh組網實踐(配網篇)
本測試基於CH582m微控制器,嘗試進行簡單的組網。
沁恆官方EVT中提供了兩種配網方式——配網器配網和自配網。
①配網器配網:用一個裝置(一塊582開發板)作為配網器,也就是沁恆藍芽mesh軟體開發參考手冊中的“中心節點”。配網器可以管理網路,進行配網、設定訂閱地址、刪除節點等操作。
②自配網:不用配網器分配網路資訊,裝置使用使用者在程式中寫好的配網資訊,自己給自己配網。
配網器配網方式的優點:支援自動配網。配網器收到未配網裝置傳送的配網信標廣播,會自動儲存相關資訊到配網資訊結構體陣列中,配網完成後自動繫結App_Key、模型、訂閱地址等資訊。
自配網方式的優點:支援網路中節點的數量相對更多。
配網器配網方式的使用注意點:
1.對配網器RAM容量有要求。目前例程中預設支援的節點為40個,實際上只要RAM夠用,就可以支援更多節點。程式中其他變數佔用RAM較少的情況下,582作配網器,適合節點數量少於200個的藍芽mesh網路;573的RAM更小,用它作為配網器,支援的節點數量少於100個。
2.需要未配網節點與配網器相靠近,配網器能直接收到配網信標後才能進入配網流程。配網完成後可以將節點拿走佈置到網路範圍內相應的地點。
3.配網器可以選擇給哪些未配網裝置配網,但裝置無法指定被哪個配網器配網。
自配網方式的使用注意點:
1.需要使用者對藍芽mesh的配網資訊有所瞭解,比如說一個網路中需要共用同一個Net_Key;自配網可以支援多個裝置使用同一個網路地址,但會失去應答功能,且對裝置的區分需要在更高層去處理。
2.自配網不可連外設的例程中,裝置自動根據程式中使用者設定的配網資訊進行自配網,萬一資訊有錯,需要重新燒錄程式,維護起來比較麻煩。自配網可連手機的例程中預設沒有使用本地資料自配網,需要根據手機發來的資料進行自配網。
小貼士:①預設例程中是開啟FLASH儲存功能的,配網資訊會儲存在FLASH中,掉電也會儲存。裝置上電覆位時會檢查FLASH中是否已經儲存了配網資訊。比如說節點檢測到FLASH中已有配網資訊,就不會再廣播配網信標,也就無法進入配網流程。若要除錯配網過程,可以在app_mesh_cfg.h中修改相關的巨集定義關閉FLASH儲存功能。
②配網信標廣播包中包含16個位元組的UUID,例程中只使用了前6個位元組——將晶片MAC地址的前6位複製過去,以區分裝置。使用者可以自定義其他位元組來包含一些裝置資訊。比如說使用者自定義將節點的類別和編號設定在UUID[6]這個位元組中。MAC地址可以由使用者指定,需要將巨集定義中的BLE_MAC置1。官方EVT包中大量使用了公用檔案,建議通過新增工程的Properties中的Symbol來只對本工程生效。
③當網路支援的節點足夠多時,一個網路中同一時刻不能共存超過十個資料包,否則容易丟包;預計網路中同一時刻共存的資料包越多,重發次數需要設定越大。預設例程中的TTL值為255,資料包最多可以走254跳,在TTL值為1時不再轉發,若最後一個收包的節點不是目標節點,直接丟棄資料。若對網路節點很熟悉,可以自定義最優TTL值來減小承載層壓力。除了低功耗節點外,例程中的轉發功能是開啟的,將邊緣節點的轉發功能關閉,也可減輕一定的承載層壓力。
---------------------------------------------------------更多圖文介紹待更新---------------------------------------------------------