華為云計算 云知識 玩轉物聯(lián)網(wǎng)設備固件升級
玩轉物聯(lián)網(wǎng)設備固件升級

華為云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小時)

4~5. 物聯(lián)網(wǎng)平臺向設備下發(fā)查詢設備固件版本的命令,查詢成功后,物聯(lián)網(wǎng)平臺根據(jù)升級的目標版本判斷設備是否需要升級。(第4步等待設備上報固件版本,超時時間為3分鐘)
  • 如果返回的固件版本信息與升級的目標版本信息相同,則升級流程結束,不做升級處理。
  • 如果返回的固件版本信息與升級的目標版本信息不同,則繼續(xù)進行下一步的升級處理。
6~7. 物聯(lián)網(wǎng)平臺查詢終端設備所在的無線信號覆蓋情況,獲取小區(qū)ID、RSRP(Reference Signal Received Power,參考信號接收功率)和SINR(Signal to Interference Plus Noise Ratio,信號干擾噪聲比)信息。(等待上報無線覆蓋等級和小區(qū)ID,超時時間為3分鐘左右)
  • 查詢成功:則根據(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進行處理。
8. 物聯(lián)網(wǎng)平臺繼續(xù)下發(fā)查詢小區(qū)ID信息的命令,獲取終端設備所在的小區(qū)ID信息。
  • 如果查詢成功:物聯(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)通知,并向控制臺應用服務器通知升級的結果。

說明:在下載包中斷的情況下,平臺支持斷點續(xù)傳功能。

MQTT協(xié)議固件升級流程

MQTT協(xié)議FOTA升級流程的詳細說明:

1~2. 用戶在設備接入服務的控制臺上傳固件包,并在控制臺或者應用服務器上創(chuàng)建固件升級任務。

3. 平臺感知設備是否在線,當設備在線時立即觸發(fā)升級協(xié)商流程。當設備不在線時,等待設備上線訂閱升級Topic,平臺感知設備上線,觸發(fā)升級協(xié)商流程。(等待設備上線時間25小時以內(nèi))

4~5. 平臺向設備下發(fā)查詢設備固件版本號的命令,查詢成功后,物聯(lián)網(wǎng)平臺根據(jù)升級的目標版本判斷設備是否需要升級 。(第5步超時時間3分鐘)
  • 如果返回的固件版本信息與升級的目標版本信息相同,則升級流程結束,不做升級處理,升級任務置為成功。
  • 如果返回的固件版本信息與升級的目標版本信息不同,且該版本號支持升級,則繼續(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)平臺向控制臺/應用服務器通知升級的結果。

說明:下載包中斷的情況下,平臺支持斷點續(xù)傳功能。

上傳固件包

設備接入服務的控制臺,提供固件包的管理能力,您可以將需要升級的固件包統(tǒng)一上傳到“固件列表”界面上進行管理。

  1. 訪問設備接入服務,單擊“管理控制臺 ”進入設備接入控制臺。
  2. 選擇設備 > 軟固件升級。
  3. 選擇“固件列表”頁簽,單擊“上傳固件”。
  4. 在彈出的頁面中,按照如下信息填寫參數(shù)后,單擊“確認”上傳固件包。

在上傳固件包時,需要填寫如下信息:

參數(shù)名稱

說明

固件文件

添加固件包,固件包名不能帶中文字符。

固件版本

固件包的版本。(設備升級完成后需要上報升級版本號,平臺檢查設備上報的版本號是否與此參數(shù)一致,一致為升級成功。)

選擇產(chǎn)品

選擇對應設備的產(chǎn)品模型

支持設備源版本

手動輸入,如需輸入多個,可以在輸入完一個版本后,單擊“回車”按鍵,再輸入下一個。

說明:目前平臺仍然支持上傳已簽名的固件包,但無法修改公鑰。如果您上傳的是簽過名的固件包,平臺會使用之前上傳的公鑰對簽名進行校驗。如果您之前沒有上傳過公鑰或者簽名的私鑰發(fā)生變化,簽名會校驗失敗從而導致固件包上傳失敗。

后續(xù)平臺將下線上傳簽名固件包功能,為了保障您能夠正常使用固件升級功能,請直接上傳需要下發(fā)給設備的文件。

批量設備固件升級

用戶對批量設備進行固件升級有兩種方式:

  1. 應用服務器通過調(diào)用的“創(chuàng)建固件升級任務”API接口,創(chuàng)建批量設備的升級任務,詳情請參考創(chuàng)建批量任務
  2. 通過控制臺,創(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í)行詳情”界面查看每個設備的升級結果。

說明:如果升級任務正在執(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

固件更新失敗

請檢查設備側。