近年來,隨著物聯(lián)網(wǎng)應(yīng)用在各行各業(yè)規(guī)?;涞兀锫?lián)網(wǎng)終端數(shù)量也在與日俱增。和其他網(wǎng)絡(luò)終端設(shè)備一樣,物聯(lián)網(wǎng)終端同樣存在軟件漏洞、安全升級或功能更新等問題,需要對終端進行現(xiàn)場維護和升級。而這項工作隨著落地終端數(shù)量的增長,現(xiàn)場維護所需的人工操作升級成本也越來越高。因此,F(xiàn)UOTA技術(shù)應(yīng)運而生。
什么是FUOTA?
FUOTA全稱為 Firmware update over the air,是一種可無線進行固件更新的技術(shù)。而作為最重要的LPWAN技術(shù)之一的 LoRa?,也在其LoRaWAN?協(xié)議棧上支持 FUOTA升級。
LoRaWAN??協(xié)議 FUOTA?架構(gòu)LoRaWAN?中的 FUOTA是利用組播技術(shù)將固件更新推送到一個或多個設(shè)備,從而實現(xiàn)固件更新。需要注意的是,F(xiàn)UOTA不是LoRaWAN?MAC層的一部分,它運行在應(yīng)用層,因此,F(xiàn)UOTA中的所有進程都與LoRaWAN?協(xié)議版本無關(guān)。
LoRaWAN?FUOTA名詞解釋:
FUS | Firmware Update Server(固件更新服務(wù)器)。一個服務(wù)器,其任務(wù)是生成要在終端設(shè)備上使用的固件更新鏡像,和要更新的終端設(shè)備列表。 |
FUA | Firmware Update Agent(固件更新代理),是 FUS在終端設(shè)備的對應(yīng)部分。 |
FDS | File Distribution Server(文件發(fā)布服務(wù)器),專門負責向終端設(shè)備交付固件更新鏡像的應(yīng)用程序服務(wù)器。該服務(wù)器在一組特定的端口上在應(yīng)用程序?qū)樱ㄅcAS 并行或在AS 之上)運行。 |
FDC | File Distribution Client(文件發(fā)布客戶端),是FDS在終端設(shè)備的對應(yīng)部分。 |
NS | Network Server(網(wǎng)絡(luò)服務(wù)器)。 |
Dev | End-device(終端設(shè)備)。 |
LoRaWAN?FUOTA流程簡述:
1.獲取要升級的設(shè)備 ID,如果是單播或者組播已經(jīng)包含算了要升級的設(shè)備,該步驟可以省略。組播組里包含的設(shè)備可能多于要升級的設(shè)備,如果是增量升級,所有運行的設(shè)備當前固件必須一樣;
2.創(chuàng)建壓縮固件或者增量固件,選擇分片參數(shù)(分片數(shù)量,容錯率 RC,冗余編碼);
3.固件包含一個固件頭(至少包含目標設(shè)備硬件版本,當前固件版本,固件 CRC,固件的壓縮機制等);
4.和 NS 協(xié)商 Class C 分發(fā)窗口。參數(shù)包含設(shè)備列表,要發(fā)送的分片文件大小,臨界時間和編碼冗余等;
5.使用應(yīng)用程序單播下行鏈路為所有要更新的終端設(shè)備配置多播組(要使用的多播地址、密鑰等);
6.Service 使用單播下行鏈路為所有要更新的終端設(shè)備配置 C 類。在后臺,終端設(shè)備必須將其時鐘與網(wǎng)絡(luò)時鐘同步;
7.為所有要更新的終端設(shè)備設(shè)置碎片會話;
8.將碎片文件發(fā)送到 NS,NS 將片段文件廣播(或單播)到要更新的終端設(shè)備;
9.一旦終端設(shè)備收到足夠的碎片,就會重建二進制鏡像;
10.終端設(shè)備重組并檢查鏡像的完整性;
11.終端設(shè)備的將新固件映像標記為“就緒”。這意味著映像將在下次重置時由引導(dǎo)加載程序切換至新固件;
12.設(shè)備重啟,并在入網(wǎng)成功后并發(fā)送一包上行數(shù)據(jù),其中可包含當前新固件的版本號等信息。
想要瀏覽完整流程,可查看 LoRa?聯(lián)盟FUOTA Process Summary Technical Recommendation文檔。
有關(guān)使用組播和 FUOTA的初學(xué)者指南,也可查看視頻。
RUI3LoRaWAN?FUOTA的實現(xiàn)方式
LoRa?聯(lián)盟利用LoRaWAN?協(xié)議之上的應(yīng)用層協(xié)議對FUOTA流程進行了標準化,例如時鐘同步消息協(xié)議、遠程多播設(shè)置協(xié)議、以及分片數(shù)據(jù)塊傳輸協(xié)議。這些協(xié)議可以實現(xiàn)在應(yīng)用服務(wù)器指定的時間向多個設(shè)備下發(fā)固件鏡像。
下圖顯示了 LoRaWAN?網(wǎng)絡(luò)架構(gòu)中的 FUOTA概覽。應(yīng)用服務(wù)器請求LoRaWAN?網(wǎng)絡(luò)服務(wù)器將固件鏡像連同交付時間一起,交付給一個終端設(shè)備或一組終端設(shè)備。LoRaWAN?網(wǎng)絡(luò)服務(wù)器根據(jù)請求通過 LoRaWAN?無線網(wǎng)絡(luò)將固件鏡像傳送到終端設(shè)備。
LoRaWAN? 網(wǎng)絡(luò)架構(gòu)中的??FUOTA? 概覽應(yīng)用層協(xié)議用于從LoRaWAN?網(wǎng)絡(luò)服務(wù)器到終端設(shè)備的傳輸。分片數(shù)據(jù)塊傳輸協(xié)議提供了將固件鏡像分割為小于LoRaWAN?網(wǎng)絡(luò)中可以傳輸?shù)淖畲笾担⑵渲貥?gòu)為固件鏡像的功能。遠程組播協(xié)議可以提供將分段的固件鏡像同時傳送到一組終端設(shè)備的功能。時鐘同步協(xié)議提供了將終端設(shè)備的時鐘與LoRaWAN?網(wǎng)絡(luò)的GPS時鐘同步的功能,以便終端設(shè)備可以準備交付并接收分段的固件鏡像。
下圖顯示了LoRaWAN?網(wǎng)絡(luò)服務(wù)器和終端設(shè)備之間的消息交換。首先,使用應(yīng)用層協(xié)議將交付所需的參數(shù)設(shè)置到終端設(shè)備。之后,固件鏡像將通過分片數(shù)據(jù)塊傳輸協(xié)議分片傳遞給終端設(shè)備。終端設(shè)備將碎片數(shù)據(jù)重建到固件鏡像中,使用固件鏡像更新內(nèi)部固件并重新啟動。
服務(wù)器與終端的消息交換RAK低代碼開發(fā)平臺 RUI3的LoRaWAN?FUOTA升級預(yù)計將在 10月底的 RAK秋季發(fā)布會上正式發(fā)布,屆時將使用 RAK4631終端和 RAK7268網(wǎng)關(guān)進行演示,后續(xù)將支持更多的第三方網(wǎng)關(guān)和終端,敬請期待!
-
lorawan
+關(guān)注
關(guān)注
3文章
307瀏覽量
23758 -
RAK
+關(guān)注
關(guān)注
0文章
48瀏覽量
2045
發(fā)布評論請先 登錄
相關(guān)推薦
評論