藍牙Mesh 協議規范1.1引入了一組新的功能,稱為設備固件更新(Device Firmware Update)(DFU),使得用戶可以通過更新mesh網絡設備上運行的固件。固件需要保持最新,并且制造商經常會發布固件更新。新的固件可能修復問題,添加新功能,改善安全性,提供更好的性能或提供其他一些好處。無論是設備固件、應用軟件還是操作系統更新,保持軟件最新是通常被接受的良好做法。軟件更新的方式取決于軟件類型和所在平臺。在現代智能手機和桌面操作系統中,自動化軟件更新幾乎不需要用戶參與,已成為常態。
藍牙Mesh 1.0沒有自動或標準化的機制來檢測設備的新固件是否可用,獲取固件或安裝固件。這些任務必須手動執行,并且使用為此目的提供的專有接口直接將固件更新安裝到設備上。在由多個供應商設備組成的mesh網絡中,此過程可能涉及多個專有工具,并變得非常復雜。
藍牙Mesh DFU功能規范了設備固件更新的實現方式,并實現了給射頻一跳連接距離以外的網絡節點同時進行固件更新,并且支持靜默更新模式。目前,泰凌微電子的TLSR825x和TLSR921x系列芯片已經全面支持包括DFU在內的藍牙Mesh規范1.1的所有新功能。本文共2篇,以下是第一篇,將介紹DFU的常用功能和概念,以及測試方法。
1
藍牙Mesh DFU功能介紹
1.1
藍牙Mesh DFU模式和參考速率介紹
主要支持以下幾種模式:
支持通過Mesh ADV Relay的方式同時對多節點更新固件。一個160kB大小的固件升級時間預計在60分鐘左右,如果啟用泰凌SDK中支持的擴展廣播包模式,則升級時間將大幅縮減到 6 分鐘左右。
通過Friend節點給LPN進行固件更新的模式:該模式實現了LPN在進行固件更新的同時,還保持處于低功耗模式。一個130kB大小的固件升級時間預計為70分鐘左右。
單個節點(包含LPN節點)的GATT直連更新模式:App會斷開當前連接,去連接被升級節點,然后執行藍牙Mesh DFU,收發流程和對多節點升級的流程一樣,只是收發包交互更快,固件更新時間在1分鐘左右,和泰凌Bluetooth LE SDK中OTA固件更新所需要的時間基本一樣。需要注意的是,該模式要求被更新節點在手機的GATT連接范圍內。
1.2
藍牙Mesh DFU固件分發方式
手機同時作為Initiator(發起者)和Distributor(分發者):在分發固件給多個需要升級的Target(目標)節點的過程中,手機需要和直連節點一直保持GATT連接,不能斷開,該過程需要持續幾十分鐘。若使用Gateway(網關),則不需要和任何節點保持GATT連接,直接采用上位機加Gateway Dongle作為Initiator和Distributor。
手機作為Initiator,GATT直連節點作為Distributor:該模式,只需要手機在前面階段,通過GATT把新固件先下載到直連節點,然后由直連節點作為Distributor,管理和執行后面的工作:分發新固件給其它待升級節點。
1.3
藍牙Mesh DFU靜默升級模式
藍牙Mesh DFU允許根據應用要求,控Target設備上的新固件安裝生效的時機。在成功收到并驗證固件后,待升級的Target節點并不會立刻安裝新固件。只有在收到Apply Firmware Update 命令后,Target節點才會安裝新固件。App或者上位機在把固件傳完給被升級節點后,可以選擇一個合適的時間再發送Apply Firmware Update命令,實現靜默升級模式。
2
使用App測試藍牙Mesh DFU
接下來,我們將介紹使用泰凌提供的開發工具,通過手機實現DFU的兩種固件分發方式,并完成安裝生效的操作步驟。
2.1
測試條件
1、SDK開發包
訪問Telink Wiki下載最新的藍牙Mesh SDK:
https://wiki.telink-semi.cn/tools_and_sdk/BLE_Mesh/SIG_Mesh/sig_mesh_sdk.zip
2、硬件
本文以TLSR825x芯片作為測試樣例。需要TLSR8258 Dongle若干(>=2)作為mesh節點設備,可以通過在線購買獲取:
https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-24776555937.13.5c531ab2zURieL&id=680419633378
Android App在以上SDK開發包中獲取: elink_sig_mesh_sdkappandroidTelinkBleMeshTelinkBleMeshDemo-V4.1.0.0-20231113.apk
iOS App可以在App Store通過搜索telinksigmesh獲取。
2.2
SDK代碼配置
SDK里面藍牙Mesh DFU默認關閉,需要打開節點MD_MESH_OTA_EN的宏,否則將不支持DFU,無法勾選該設備作為執行DFU的Target節點。
打開方法,mesh_config.h文件里面:
打開MD_MESH_OTA_EN
如果需要測試直連節點作為Distributor模式,還需要打開DISTRIBUTOR_UPDATE_SERVER_EN。
如果需要使用泰凌提供的擴展廣播包模式加快固件更新時間,則還需要打開 EXTENDED_ADV_ENABLE。
2.3
App參數設定
如果需要使用泰凌提供的擴展廣播包模式加快固件更新時間,則需要設置:
App首頁點擊右下角Setting——Settings——Extend Bearer Mode里面勾選 “Extend GATT & ADV”,否則不需要設置。
2.4
測試步驟
1、App作為Distributor模式
Distributor選擇Phone方式升級,將會通過手機直接分發固件數據給Target設備,具體操作步驟:
App首頁點擊右下方的Network——Mesh OTA,進入到以下頁面,然后按圖示的1到6步驟進行操作:
升級完成的界面如下圖:
2、直連節點作為Distributor模式
選擇GATT直連節點作為Distributor模式的方式如下,App首頁點擊右下方的Network——Mesh OTA,進入到以下頁面,然后按圖示的1到6步驟進行操作:
其中, Apply Policy選擇Verify And Apply,表示直連節點作為Distributor分發完新固件給Target節點后,自動發起Apply Firmware Update,不需要等待App發送Apply Firmware Update。
如果選擇Verify Only,表示直連節點作為Distributor分發完新固件給被升級節點后,不發送Apply Firmware Update,而是等待App給Distributor直連節點發送Apply指令,然后直連節點才發送Apply Firmware Update給Target節點。
升級完成的界面如下圖:
審核編輯:劉清
-
OTA
+關注
關注
7文章
583瀏覽量
35304 -
上位機
+關注
關注
27文章
944瀏覽量
54913 -
藍牙mesh
+關注
關注
10文章
62瀏覽量
15600 -
泰凌微
+關注
關注
7文章
152瀏覽量
10816
原文標題:【技術專欄】泰凌微電子藍牙Mesh 設備固件更新功能和測試說明(一)
文章出處:【微信號:telink-semi,微信公眾號:泰凌微電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論