物聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì),聊聊設(shè)備OTA的升級(jí)

14 評(píng)論 30056 瀏覽 180 收藏 10 分鐘

物聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì)部分的OTA設(shè)備固件是一個(gè)非常重要的部分,能夠?qū)崿F(xiàn)升級(jí)用戶服務(wù)、保障系統(tǒng)安全等功能。

在迅速變化和發(fā)展的物聯(lián)網(wǎng)市場(chǎng),新的產(chǎn)品需求不斷涌現(xiàn),因此對(duì)于智能硬件設(shè)備的更新需求就變得空前高漲,設(shè)備不再像傳統(tǒng)設(shè)備一樣一經(jīng)出售就不再變更。

隨著物聯(lián)網(wǎng)技術(shù)發(fā)展,一個(gè)技術(shù)變得極為重要,即OTA空中下載技術(shù)。物聯(lián)網(wǎng)平臺(tái)支持通過(guò)OTA方式進(jìn)行設(shè)備固件升級(jí),是智能設(shè)備修復(fù)系統(tǒng)漏洞、實(shí)現(xiàn)系統(tǒng)升級(jí)的手段,通過(guò)固件升級(jí)用戶提供更好的服務(wù)。OTA固件升級(jí)功能不僅能夠更新固件,而且還能重新配置片上硬件資源。同時(shí),設(shè)備固件可通過(guò)OTA固件升級(jí)流程獲得更新的補(bǔ)丁和更多安全算法防范病毒攻擊。

一、OTA固件升級(jí)對(duì)設(shè)備的重要性

物聯(lián)網(wǎng)領(lǐng)域具有多樣性,應(yīng)用和最終解決方案需求也是如此。面對(duì)和傳統(tǒng)設(shè)備的需求差異,OTA升級(jí)顯得尤其重要,主要體現(xiàn)在以下幾方面:

1. 市場(chǎng)端的快速上線需求

天下武功唯快不破,物聯(lián)網(wǎng)設(shè)備產(chǎn)品往往留給設(shè)計(jì)者的時(shí)間不長(zhǎng),并且市場(chǎng)需要持續(xù)不斷地創(chuàng)新和更新功能。在設(shè)備設(shè)計(jì)時(shí),往往會(huì)預(yù)留一些后加載的需求,先期快速實(shí)現(xiàn)一些功能即開始上線,上線后可以通過(guò)OTA升級(jí)的方式更新更多功能,實(shí)現(xiàn)漸進(jìn)式部署,有那么一點(diǎn)類似于互聯(lián)網(wǎng)的敏捷研發(fā)了。只要在架構(gòu)設(shè)計(jì)階段,在硬件層面考慮到了未來(lái)的足夠需求,就不可以源源不斷地優(yōu)化完善設(shè)備功能。

2. 設(shè)備部署需求的多樣性

在物聯(lián)網(wǎng)產(chǎn)品應(yīng)用過(guò)程中,有個(gè)很有意思的事情,設(shè)備需要確定推送信息的云主機(jī)。那么問(wèn)題就來(lái)了,有可能是一個(gè)通用的云主機(jī),也有可能因?yàn)椴渴鹦枰中枰峦扑偷脑浦鳈C(jī),這個(gè)時(shí)候如果設(shè)備已經(jīng)生產(chǎn)出來(lái)了,已經(jīng)在渠道或者客戶手中,那么OTA固件升級(jí)就顯得很重要了。

還有一個(gè)比較常見的現(xiàn)象,一些設(shè)備在安裝以后,對(duì)于輸入輸出部件的控制模式需要變更,那么可能需要對(duì)部分設(shè)備進(jìn)行固件升級(jí)。比如,一開始在一個(gè)城市部署了相同智能路燈的設(shè)備,但是某些區(qū)域的設(shè)備關(guān)于燈光強(qiáng)度或者時(shí)間性需要做變更,那么OTA固件升級(jí)也可以幫助解決燈光控制方式的變更。

備注:如果預(yù)留了遠(yuǎn)程下行控制指令,且已經(jīng)支持的,也可以不用升級(jí)固件。

3. 設(shè)備安全性及完善性

任何物聯(lián)網(wǎng)設(shè)備不外乎都是兩部分組成的:硬件+固件程序。在基于SoC的應(yīng)用中,OTA固件升級(jí)功能不僅能夠更新固件,而且還能重新配置片上硬件資源。

有了OTA固件升級(jí)的備案,那么產(chǎn)品不一定等到完全沒(méi)有缺陷再上市,只要在不存在較為致命的缺陷下,就可以提前上市,解決問(wèn)題后在遠(yuǎn)程完成升級(jí)修補(bǔ)缺陷。同時(shí)基于日益嚴(yán)峻的安全形勢(shì)威脅,備固件可通過(guò)OTA固件升級(jí)流程獲得最新補(bǔ)丁和更多安全算法,做到不斷加固的。

二、OTA固件升級(jí)流程

1. 升級(jí)步驟

step1:云控制平臺(tái)添加估計(jì)升級(jí)需求。

step2:設(shè)備在喚醒后上報(bào)自己的固件版本。

step3:云端判斷是否需要升級(jí)后,下發(fā)升級(jí)固件包URL。

step4:設(shè)備下載固件后進(jìn)行升級(jí),下載成功后上報(bào)結(jié)果。

step5:設(shè)備升級(jí)成功后,上報(bào)升級(jí)結(jié)果及最新版本,云端更新為升級(jí)成功。

2. 注意事項(xiàng)及設(shè)計(jì)要點(diǎn)

1. 設(shè)備固件版本信息不需要單獨(dú)設(shè)置周期性上報(bào)事件,在設(shè)備重新啟動(dòng)或者心跳時(shí)上報(bào)即可。

2. 物聯(lián)網(wǎng)平臺(tái)添加新的固件版本啟動(dòng)升級(jí)需求后,一直為待升級(jí),直到設(shè)備上報(bào)升級(jí)進(jìn)度。

3. 升級(jí)成功唯一判斷標(biāo)準(zhǔn)是上報(bào)的版本號(hào)。

4. 設(shè)備離線狀態(tài)下不能進(jìn)行升級(jí),需要等到設(shè)備上線后上報(bào)數(shù)據(jù)。

5. 設(shè)備下載固件后對(duì)于升級(jí)結(jié)果需要上報(bào)。

三、云端控制系統(tǒng)設(shè)計(jì)

1. 固件新增

固件新增主要面向產(chǎn)品進(jìn)行設(shè)計(jì),按照單個(gè)產(chǎn)品為單位進(jìn)行添加,添加固件時(shí)不用考慮設(shè)備升級(jí)的范圍,僅僅作為產(chǎn)品的一個(gè)固件包。但是,尤其要主要固件版本的管理,不能低于當(dāng)前所有該產(chǎn)品運(yùn)行的設(shè)備版本號(hào),并且命名的版本號(hào)要與新增填寫時(shí)的相同。

新增固件的字段:名稱、版本號(hào)、所屬產(chǎn)品、備注。

2. 驗(yàn)證固件

固件新增加成功后,就可以進(jìn)行驗(yàn)證固件操作了。驗(yàn)證固件是指在系統(tǒng)內(nèi)小范圍查找一兩個(gè)設(shè)備進(jìn)行升級(jí)測(cè)試,驗(yàn)證通過(guò)后再考慮批量進(jìn)行操作處理。驗(yàn)證固件的操作就是在現(xiàn)存該產(chǎn)品的不同版本號(hào)的產(chǎn)品中分別選擇最低一個(gè)產(chǎn)品進(jìn)行升級(jí)。

驗(yàn)證固件字段:版本號(hào)(采用下來(lái)篩選,僅篩選現(xiàn)有產(chǎn)品存在的版本號(hào))、產(chǎn)品編號(hào)(通過(guò)產(chǎn)品唯一識(shí)別號(hào)進(jìn)行查找添加)。

備注:選擇產(chǎn)品編號(hào)前需要先確定版本號(hào)。

3. 選擇設(shè)備批量升級(jí)

固件驗(yàn)證通過(guò)后就可以進(jìn)行批量處理了,批量處理就是在現(xiàn)有的設(shè)備范圍內(nèi)選擇需要升級(jí)的設(shè)備,同時(shí)設(shè)置升級(jí)策略,比如升級(jí)時(shí)間、重復(fù)次數(shù)等。

批量升級(jí)可以采用頁(yè)面方式按照特定條件進(jìn)行篩選后處理,也需要能夠采用excel文件導(dǎo)入形式進(jìn)行處理,excel導(dǎo)入形式主要是為了定向?qū)δ骋恍┰O(shè)備升級(jí),升級(jí)設(shè)備沒(méi)有一定的共性,或者系統(tǒng)內(nèi)暫時(shí)無(wú)法通過(guò)篩選方式查找出共性。

主要涉及的字段:升級(jí)范圍、升級(jí)時(shí)間、升級(jí)策略(失敗后再次間隔時(shí)間、重復(fù)次數(shù)、定時(shí)升級(jí)等)

4. 查看升級(jí)結(jié)果

批量執(zhí)行升級(jí)后,回到管理固件的列表,就可以實(shí)時(shí)查看升級(jí)結(jié)果,獲取升級(jí)情況!

5. 統(tǒng)計(jì)數(shù)據(jù)

在設(shè)計(jì)固件管理時(shí),還可以對(duì)產(chǎn)品的固件分布、升級(jí)設(shè)備的狀態(tài)分布占比等進(jìn)行一些數(shù)據(jù)可視化設(shè)計(jì),幫助管理員更好的查看和分析。

四、安全性考慮

以上部分其實(shí)我們都在說(shuō)為什么需要OTA固件升級(jí)、固件升級(jí)的原理是什么、流程是什么、云端控制系統(tǒng)如何設(shè)計(jì),但是我們沒(méi)有強(qiáng)調(diào)其中的一個(gè)重要事情“安全性”!安全性希望引起產(chǎn)品和技術(shù)人員的足夠重視!

1. 對(duì)設(shè)備固件進(jìn)行OTA升級(jí)時(shí),通過(guò)在空中傳輸,容易遭受攻擊。因此,必需確保主機(jī)設(shè)備只與相關(guān)目標(biāo)設(shè)備通信。

2. 應(yīng)對(duì)空中傳輸?shù)臄?shù)據(jù)進(jìn)行加密,以便讓其它監(jiān)聽方無(wú)法解碼這些數(shù)據(jù)。

3. OTA服務(wù)是智能設(shè)備修復(fù)系統(tǒng)漏洞、實(shí)現(xiàn)系統(tǒng)升級(jí)的手段,擁有非常高的權(quán)限,掌握著系統(tǒng)更新的安全命脈。如果OTA升級(jí)出現(xiàn)安全問(wèn)題,可能導(dǎo)致用戶隱私泄露,甚至給用戶帶來(lái)生命危險(xiǎn)。

五、總結(jié)

至此呢,我們就將物聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì)部分的OTA設(shè)備固件講完了,希望對(duì)其他童鞋有所幫助,也歡迎各路大神指點(diǎn)完善。

ps:最近我們正在籌備成都物聯(lián)網(wǎng)&智能硬件產(chǎn)品經(jīng)驗(yàn)交流組,組內(nèi)互幫互助,共同成長(zhǎng),經(jīng)驗(yàn)交流歡迎加我個(gè)人微信號(hào):liu58liu

 

作者:Kent,微信公眾號(hào):Liuke2019

本文由 @Kent 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來(lái)自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 還有沒(méi)???怎么不發(fā)了

    來(lái)自浙江 回復(fù)
  2. 非常nice!希望答主再寫一篇統(tǒng)計(jì)升級(jí)結(jié)果的帖子!?。?!

    來(lái)自廣東 回復(fù)
  3. 感謝分享!有一點(diǎn)疑惑,對(duì)于一次升級(jí)任務(wù)來(lái)說(shuō),如何判斷升級(jí)任務(wù)完成,設(shè)置升級(jí)時(shí)限,還是根據(jù)設(shè)備上報(bào)的狀態(tài)?

    來(lái)自英國(guó) 回復(fù)
    1. 文中有敘述,根據(jù)該設(shè)備下一次上傳的版本號(hào)。但需要考慮的是,設(shè)備在升級(jí)中盡量需要不影響設(shè)備正常使用或超過(guò)某一時(shí)間閾值,自行斷開升級(jí)狀態(tài),回滾之前狀態(tài)。

      來(lái)自廣東 回復(fù)
  4. 做過(guò)一些物聯(lián)網(wǎng)硬件對(duì)接工作,這塊寫的沒(méi)毛病

    回復(fù)
  5. 好棒呀,最近剛好要設(shè)計(jì)OTA的功能~感謝~

    來(lái)自浙江 回復(fù)
    1. 有啟發(fā)就好 ??

      來(lái)自四川 回復(fù)
  6. 要是補(bǔ)充點(diǎn)原型就好了

    來(lái)自四川 回復(fù)
    1. 我們主要總結(jié)思路,原型給出來(lái)干什么呢

      來(lái)自四川 回復(fù)
    2. 估計(jì)你會(huì)這樣回復(fù)我這個(gè)小菜鳥 ??

      來(lái)自四川 回復(fù)
    3. 說(shuō)思路就可以了,原型也需要…

      回復(fù)
  7. 寫的很好,很詳盡啊 ??

    來(lái)自四川 回復(fù)
  8. 前兩天剛上網(wǎng)查了一遍。。。想問(wèn)一下,固件升級(jí)在終端是怎樣的形式?是強(qiáng)制升級(jí)嗎?是靜默升級(jí)嗎?不知道我問(wèn)清楚了沒(méi) ??

    來(lái)自北京 回復(fù)
    1. 終端通常都是根據(jù)云端需求了,通常強(qiáng)制升級(jí)!因?yàn)橛行┰O(shè)備你跟本無(wú)法操作,有些升級(jí)必須強(qiáng)制!當(dāng)然這個(gè)主要看你產(chǎn)品屬性和升級(jí)需求啊,你也可以設(shè)計(jì)成可以需要終端確認(rèn)的方式,或者兩者方式兼容!終端和云端協(xié)調(diào)設(shè)置好就ok

      來(lái)自四川 回復(fù)