華為云IoT 物聯(lián)網(wǎng)平臺 :固件(Firmware)一般是指設備硬件的底層“驅動程序”,承擔著一個系統(tǒng)最基礎最底層工作的軟件,比如計算機主板上的基本輸入/輸出系統(tǒng)BIOS(Basic Input/output System)。
固件升級又稱為FOTA(Firmware Over The Air),是指用戶可以通過OTA的方式對支持LwM2M協(xié)議和MQTT協(xié)議的設備進行固件升級。
LwM2M協(xié)議設備固件升級流程

LwM2M協(xié)議FOTA升級流程的詳細說明:
1~2. 用戶在 設備接入服務 的控制臺上傳固件包,并在控制臺或者應用服務器上創(chuàng)建固件升級任務。
3. LwM2M設備上報數(shù)據(jù),平臺感知設備上線,觸發(fā)升級協(xié)商流程。(超時時間為24小時)
- 如果返回的固件版本信息與升級的目標版本信息相同,則升級流程結束,不做升級處理。
- 如果返回的固件版本信息與升級的目標版本信息不同,則繼續(xù)進行下一步的升級處理。
- 查詢成功:則根據(jù)如下方式計算可同時升級的并發(fā)數(shù)計算,并按照步驟9進行處理。
- 如下圖所示,如果設備的RSRP強度和SINR強度均落在等級“0”中,則同時可以對該小區(qū)的50個相同信號覆蓋區(qū)間的設備進行同時升級。
- 如果設備的RSRP強度和SINR強度分別落在等級“0”和“1”中,則以信號較弱的等級“1”為準,則只能同時對該小區(qū)的10個設備進行升級。
-
如果設備的RSRP強度和SINR強度分別落在等級“1”和“2”中,則以信號較弱的等級“2”為準,則只能同時對該小區(qū)的1個設備進行升級。
-
如果設備的RSRP強度和SINR強度不在該3個等級范圍內(nèi),且均可以查詢到,則按照信號最弱覆蓋等級“2”處理,則只能同時對1個設備進行升級。
說明:如果用戶在固件升級中發(fā)現(xiàn)同時進行升級的設備數(shù)較少,則可以聯(lián)系當?shù)剡\營商檢查和優(yōu)化設備所在小區(qū)的無線覆蓋情況。
- 查詢失?。簞t按照流程步驟8進行處理。
- 如果查詢成功:物聯(lián)網(wǎng)平臺支持同時對該小區(qū)的10個相同情況的設備進行固件升級。
- 如果查詢失敗:則升級失敗。
9. 物聯(lián)網(wǎng)平臺向設備訂閱固件升級的狀態(tài)。
10~11. 物聯(lián)網(wǎng)平臺向設備下發(fā)下載固件包的URL地址,通知設備下載固件包。終端設備根據(jù)該URL地址下載固件包,固件包的下載支持分片下載,下載完成后,設備知會物聯(lián)網(wǎng)平臺固件包已下載完畢。(第11步超時時間為60分鐘)
12~13. 物聯(lián)網(wǎng)平臺向設備下發(fā)升級的命令,終端設備進行升級操作,升級完成后終端設備向物聯(lián)網(wǎng)平臺反饋升級結束。(等待設備上報升級結果和升級狀態(tài),超時時間為30分鐘)
14~16. 物聯(lián)網(wǎng)平臺下發(fā)命令查詢固件升級的結果,獲取升級結果后,向終端設備取消訂閱升級狀態(tài)通知,并向控制臺應用服務器通知升級的結果。
MQTT協(xié)議固件升級流程

MQTT協(xié)議FOTA升級流程的詳細說明:
1~2. 用戶在設備接入服務的控制臺上傳固件包,并在控制臺或者應用服務器上創(chuàng)建固件升級任務。
3. 平臺感知設備是否在線,當設備在線時立即觸發(fā)升級協(xié)商流程。當設備不在線時,等待設備上線訂閱升級Topic,平臺感知設備上線,觸發(fā)升級協(xié)商流程。(等待設備上線時間25小時以內(nèi))
- 如果返回的固件版本信息與升級的目標版本信息相同,則升級流程結束,不做升級處理,升級任務置為成功。
- 如果返回的固件版本信息與升級的目標版本信息不同,且該版本號支持升級,則繼續(xù)進行下一步的升級處理。
6~7. 物聯(lián)網(wǎng)平臺下發(fā)設備側升級包下載指導、token及包的相關信息,用戶根據(jù)下載包URL和token通過HTTPS協(xié)議來下載軟件包,24小時后token無效。(下載包和升級狀態(tài)上報超時時間為24小時)
8. 終端設備進行下載包升級操作,升級完成后終端設備向物聯(lián)網(wǎng)平臺反饋升級的結果。(設備升級完成后返回的版本號和設置的版本一致為成功)
9. 物聯(lián)網(wǎng)平臺向控制臺/應用服務器通知升級的結果。
上傳固件包
設備接入服務的控制臺,提供固件包的管理能力,您可以將需要升級的固件包統(tǒng)一上傳到“固件列表”界面上進行管理。
- 訪問設備接入服務,單擊“管理控制臺 ”進入設備接入控制臺。
- 選擇。
- 選擇“固件列表”頁簽,單擊“上傳固件”。
- 在彈出的頁面中,按照如下信息填寫參數(shù)后,單擊“確認”上傳固件包。

在上傳固件包時,需要填寫如下信息:
|
參數(shù)名稱 |
說明 |
|---|---|
|
固件文件 |
添加固件包,固件包名不能帶中文字符。 |
|
固件版本 |
固件包的版本。(設備升級完成后需要上報升級版本號,平臺檢查設備上報的版本號是否與此參數(shù)一致,一致為升級成功。) |
|
選擇產(chǎn)品 |
選擇對應設備的產(chǎn)品模型。 |
|
支持設備源版本 |
手動輸入,如需輸入多個,可以在輸入完一個版本后,單擊“回車”按鍵,再輸入下一個。 |
后續(xù)平臺將下線上傳簽名固件包功能,為了保障您能夠正常使用固件升級功能,請直接上傳需要下發(fā)給設備的文件。
批量設備固件升級
用戶對批量設備進行固件升級有兩種方式:
- 應用服務器通過調(diào)用的“創(chuàng)建固件升級任務”API接口,創(chuàng)建批量設備的升級任務,詳情請參考創(chuàng)建批量任務。
- 通過控制臺,創(chuàng)建批量設備的固件升級任務。
下面將重點介紹通過控制臺創(chuàng)建批量設備的固件升級任務。
1.訪問設備接入服務,單擊“管理控制臺 ”進入設備接入控制臺。
2. 在左側導航欄選擇"設備 > 軟固件升級",單擊“升級任務”。
3. 在“固件升級”頁簽,單擊“新建任務”按鈕,進入新建固件任務頁面。

4. 設置“任務信息”,填寫任務名稱、執(zhí)行時機、啟用重試。
啟用重試后,可以設置重啟次數(shù)和重啟間隔。重啟次數(shù)建議設置為2次,重啟間隔設置為5分鐘(最大重啟次數(shù)為5次,最大重啟間隔為1440分鐘),即設備升級失敗后,隔5分鐘后會進行升級重試。

5. 選擇需要升級的固件包。

6. 選擇需要升級的設備群組,然后單擊“提交”。
設備群組可以參考群組與標簽創(chuàng)建需要升級的設備群組,并綁定對應的設備。

7. 創(chuàng)建完批量升級任務后,可以在固件升級任務列表中查看批量任務的執(zhí)行結果。單擊對應任務"查看"按鈕,可以在“執(zhí)行詳情”界面查看每個設備的升級結果。
固件升級失敗原因
物聯(lián)網(wǎng)平臺上報的失敗原因:
|
失敗原因 |
原因解釋 |
處理建議 |
|---|---|---|
|
Device Abnormal is not online |
設備異常未在線 |
請檢查設備側。 |
|
Task Conflict |
任務沖突 |
請檢查當前設備是否有軟件升級、固件升級、日志收集或設備重啟的任務正在進行。 |
|
Waiting for the device online timeout |
等待設備上線超時 |
請檢查設備側。 |
|
Wait for the device to report upgrade result timeout |
等待設備上報升級結果超時 |
請檢查設備側。 |
|
Waiting for report device firmware version timeout |
等待上報設備固件版本超時 |
請檢查設備側。 |
|
Waiting for report cellId timeout |
等待上報cellId超時 |
請檢查設備側。 |
|
Updating timeout and query device version for check timeout |
等待升級結果超時,且等待設備版本信息超時 |
請檢查設備側。 |
|
Waiting for device downloaded package timeout |
等待設備完成下載固件包超時 |
請檢查設備側。 |
|
Waiting for device start to update timeout |
等待設備啟動更新超時 |
請檢查設備側。 |
|
Waiting for device start download package timeout |
等到設備開始下載固件包超時 |
請檢查設備側。 |
設備上報的失敗原因:
|
失敗原因 |
原因解釋 |
處理建議 |
|---|---|---|
|
Not enough storage for the new firmware package |
下載的固件包存儲空間不足 |
請檢查設備存儲。 |
|
Out of memory during downloading process |
下載過程中內(nèi)存不足 |
請檢查設備內(nèi)存。 |
|
Connection lost during downloading process |
下載過程中連接斷開 |
請檢查設備連接狀態(tài)。 |
|
Integrity check failure for new downloaded package |
下載的固件包完整性校驗失敗 |
請檢查設備下載的固件包是否完整。 |
|
Unsupported package type |
固件包類型不支持 |
請檢查設備狀態(tài)和廠商提供的固件包是否正確。 |
|
Invalid URI |
URI不可用 |
檢查設備側的固件包下載地址是否正確。 |
|
Firmware update failed |
固件更新失敗 |
請檢查設備側。 |