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