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