以下內容為本人的學習筆記,如需要轉載,請宣告原文連結 微信公眾號「englyf」https://mp.weixin.qq.com/s/M660Sc4ey1SxCpRT6vcM9g
不知有多少朋友玩過或者接觸過新能源車,雖然新能源囊括的範圍很廣,不過這裡指的新能源車特指電動汽車,比如特斯拉等車企生產的電動車。
特斯拉車主應該對車載軟體的自動更新功能很熟悉了,特斯拉會不定期通過wifi或者蜂窩網路(比如4G、5G訊號網),向車主推播最新的車載軟體升級包,裡邊既可能包含有新功能的新增,也可能包括有對現有功能的完善修補程式,這裡所用的技術就是OTA。
OTA, 英文全稱Over-the-air,直譯成中文就是無線升級的意思。OTA執行過程,是不需要裝置生產廠家或者專業人士攜帶專用工具對目標產品執行軟體更新的。需要的條件是,讓裝置接入網路,自動接收軟體更新包後,在裝置所有者的同意下執行升級操作。
好了,這就是所謂的OTA。
以往的電子產品,從設計階段就會把整個產品的功能安排得明明白白,雖然也會預留OTA的升級功能,不過,僅是為了修補已有軟體漏洞。
但是埃隆·馬斯克就把網際網路的產品思維引入汽車行業,不斷開發迭代新軟體功能,比如特斯拉一再宣稱領先於同行的自動駕駛導航演演算法就不斷地推出升級版本,甚至還有車載遊戲推出,然後通過OTA的方式推播給特斯拉的客戶。
以前的汽車,消費者更願意把它當作出行工具,可能一買就是十年八載的事了。而現在的智慧汽車除了不失出行的功能,更像是一件不斷迭代變化的電子玩物工作站,隨著新功能的不斷推播,於是消費者更願意提高消費頻率為新功能埋單。
馬斯克的造車思維開啟了現代智慧汽車時代,也對特斯拉的成就功不可沒。這裡邊用到的OTA的技術就是必要的橋樑了。
好了,上面都是在費口水,下面把電動車換成掃地機,就以掃地機器人為例,讓我們來探討一下怎麼玩OTA升級。
裝置維護廠家負責跟蹤對外已銷售的產品質量反饋,及時收集客戶的訴求,然後組織專案團隊評估可行性和細節,再給研發團隊制定目標並及時輸出軟體更新包,最後廠家還要負責把更新包釋出到雲端,並指定更新策略。
假設掃地機器人已經和雲端繫結上,雲端查詢後臺推播開關已開啟則通過網路通知APP--裝置有軟體更新包可用,然後APP提示客戶是否需要此次更新。一旦同意,APP則請求雲端把更新包的下載連結傳送給裝置,接著裝置進入下載軟體更新包的流程,下載完成後再執行升級的具體操作。
機器人從雲端接收完軟體更新包後,更新包暫存在記憶體中。為了避免升級過程中出現電量供應不足而中途關機的尷尬,升級開始之前,需要對機器的電量狀態或者是否正在充電中進行自檢,根據自檢狀態判斷機器當前是否適合開始執行升級動作。
自檢通過後,先對更新包檔案做校驗,以確保檔案沒有損壞或者被插入惡意檔案資訊,然後備份更新包檔案(備份包的用處稍後解釋),解壓更新包提取裡邊的各個軟體資源,逐一執行升級,同時每完成一步操作需要向雲端報告進度,直到最後所有解壓所得的資源都被升級利用完畢。
如果其中任何一步出錯需要中止升級流程,機器人都需要向雲端報告狀態,由雲端提示APP結束OTA升級流程。升級完成後,所有軟體都需重啟,所有重啟完成後需向雲端報告軟體當前的新版本號,APP再根據新版本號判斷升級目標是否達成。無論升級是否成功,機器人都需要在最後把已備份的更新包從機器內部清理掉,以清除未升級結束的標誌。
如果升級過程中途斷電了,那麼重啟後,可以依據備份的更新包檔案是否存在來判斷是否需要重新進入升級流程。
最近主流的掃地機都已經進化到配備有清洗基站了,何為清洗基站?
這個基站的工作目標是為了給掃地機器人自動清理塵盒和拖布等汙損元件,儘量做到避免購買掃地機的消費者介入掃地機的清掃工作過程中,減輕消費者的不必要負擔,進一步滿足消費者的舒適需求。
以往的掃地機給普通消費者的體驗就是,工作過程中,需要人工不斷介入,幫助清理機器的汙損元件,否則機器就不能好好連續工作。為了解決這些痛點,基站的誕生和功能迭代就勢不可擋了。
鑑於主機已經帶有wifi模組可以和雲端直接通訊,而且與雲端正常通訊之前必須經過繫結的過程,為了簡化功能設計,基站其實可以通過主機和雲端通訊,所以沒有必要在基站也設定wifi模組了。
那麼,主機(掃地機器人主體)怎麼和基站協同工作呢?它們之間靠什麼來互通有無呢?
目前行業內的基站通訊方案絕大部分都採用433的無線通訊協定與掃地機主機通訊,但是433的通訊丟包率實際上是很高的,導致在OTA升級這種高要求的使用場景下,通訊環節要格外關注通訊質量的問題,因此應用層通訊協定必須包含容錯的重發機制。