桑田 武繼榮 周澤
1.合肥一六八中學 安徽合肥 230000;2.美的集團電冰箱事業部 安徽合肥 230000
隨著移動互聯網時代的到來,芯片和軟件都在不斷發展。組成互聯網的已經不只是電腦和手機,比如電視、冰箱、音箱、汽車、門禁都可以接入網絡。越來越多的廠商開發出智能家電并接入網絡。
通過家電互聯、數據共享,給人們的生活帶來了便利。但與此同時,廠商也在不斷探索,如何通過聯網,使家電獲得更高的品質、更佳的可擴展性,或者在廠商內部取得價值鏈收益,而不是僅僅作為一個賣點噱頭;用戶也期望得到更好的使用體驗。
OTA(Over-The-Air)顧名思義空中升級。是一種基于聯網的遠程升級技術。在手機固件、APP中應用較多,近年在汽車電子中快速發展。在用戶需求多變、開發周期收緊、可靠性要求提高的大環境下,OTA技術被視為智能產品開發的有效支撐。
本文旨在討論OTA技術在家電產品中的應用,并提出有效的解決方案,提高可靠性、可擴展性、用戶體驗。為廠商、用戶帶來正向收益。暫以冰箱應用為實例進行說明。
案例:某系列智能冰箱產品,由于功能配置接近,其電控板的硬件設計已經通用化,但因為不同的設定溫度范圍及規則需要,軟件并不兼容。隨著產品量產,給工廠防呆帶來較大困擾,電控板的外觀十分相似,裝配錯誤時有發生,等到通電檢測才能發現,返修耗費了大量時間,影響工廠作業效率。在上市之后,其衍生產品開發出了更優的控制規則,使得保鮮效果更好,雖然之后的產品已經應用,但已經上市的產品無法體現,銷售端也未能宣傳,影響市場表現。
將OTA技術作為主要方案。實現以下目標:市場端軟件版本后臺受控;工廠PBA在裝配端通用;新技術、新功能智能推送,用戶自主選擇。
以上技術方案的基礎,在于電控軟件的遠程升級,方案中,采用云端服務器存儲電控固件版本,使用公司內部的軟件編碼(唯一)作為區分,在聯網后,冰箱通過Wi-Fi模塊或者其他媒介查詢本地電控固件版本與云端固件版本,如果云端有更新版本,就運行版本校驗和白名單校驗規則。對于符合校驗規則的冰箱,Wi-Fi模塊從云端下載固件,校驗正確后,通知電控板下載,電控板下載完成并校驗正確后,電控軟件進入待切換狀態,在確認當前工作場景后進行切換。如圖1所示。
在應用中,開發者上傳固件包時,云服務器端核對編碼并進行MD5校驗,將結果補充在固件數據之后,待Wi-Fi模塊下載完成時進行校驗。考慮到冰箱MCU的運算能力,在冰箱下載完成之后進行CRC16校驗。
在電控軟件設計時,因為MCU的RAM資源有限,同時沒有其他輔助存儲區域用于存儲固件包,故實例中使用分區的方案。將電控MCU的FLASH切分為BOOT區域、APP區域、BACKUP區域,其中BOOT區域用于存在引導相關代碼,APP區域為當前運行固件代碼,BACKUP區域為備用固件存儲區域。為了減少RAM資源和運行時間的占用,電控下載固件包時分幀下載,如每幀下載128個字節,單幀校驗使用CRC8,下載全部完成用CRC16進行固件包的完整性校驗,如圖2所示。
在實例中,電控MCU使用瑞薩電子(Renesas)的R5F100MGA,其有效FALSH 128kB,其中BOOT區分配8kB,APP和BACKUP區域均為59kB,OCDROM作為仿真使用,預留2kB,其中BOOT區功能按照圖3所示步驟設計。
思蓉和思遠走后,楚墨重新扎進廚房。這次他要為念蓉榨一杯西瓜汁,他說天太熱,喝杯西瓜汁去暑。念蓉不理他,去浴室洗好澡,出來,楚墨已經將兩杯西瓜汁榨好。
BOOT區域代碼設計時不使用定時器、UART等硬件資源,在初始化時也僅設定看門狗運行、時鐘選擇等基本資源。盡量小的占用系統資源和ROM大小。
APP區域中需要設計UART分幀接收固件包,并利用自編程寫入BACKUP區對應地址。其功能按照圖4所示設計。
在下載之前,首先需要確認BACKUP區域為全空,否則先進行擦除,下載中按照順序寫入,在完成后進行完整性校驗,校驗合法之后根據使用場景,如用戶沒有打開冰箱門等,在合適的場景下完成切換。
在本實例中,APP區域/BACKUP區域大小為59kB,使用8M的振蕩器時鐘,經過測試,BOOT區引導完成切換的時間為640mS左右,配合切換場景的選擇,可以達成對用戶體驗無影響。分幀下載的長度,需要綜合RAM的可用資源和下載速度綜合選擇。如圖5所示。
實例中兼容框架通訊協議,如每次下載64Byte,實際通訊字節86Byte。在9600bps的速率下,通訊接收耗時約87ms,接受完成后需要進行校驗、解析、FALSH寫入和讀取校驗,綜合約每222ms完成一幀固件數據的下載。59kB的數據包總計需要:

圖1 冰箱OTA的功能流程圖

圖3 BOOT區功能狀態機圖

圖4 APP區域OTA分幀下載功能的狀態機圖

圖5 分幀下載中的UART接收波形圖

圖6 OTA下載時,冰箱功能時基有輕微的累計誤差
222mS×(59×1024/64)= 209.6秒
在下載過程中,還需要冰箱電控功能正常運行,考慮系統負載率和電控功能的時鐘準確性。本實例中最終使用每次下載128Byte,固件包下載總耗時122秒。同時因為串口占用中斷資源,在相同中斷優先級的情況下,電控功能的定時器時基,響應中斷時間可能滯后(本實例中冰箱功能運行的時基為1ms)。在實際使用時,設計者應當綜合考慮,協調下載速率、RAM資源占用、系統負載率、電控基本功能的協調性,以保證用戶體驗不受影響,如圖6所示。
通過方案的設計,實現了市場端電控軟件版本的受控和后臺管理。為了進一步給價值鏈和用戶體驗帶來價值,實施了兩個拓展應用:
對于實例中的系列產品,設計了機型碼和Wi-Fi模塊關聯單元,并統一使用公共版的電控板,在制造基地搭建了本地服務器。公共版電控板設計了基于系列電控板硬件的檢測軟件,用于完成電控板的制造中硬件檢測(如自檢和FCT檢測),同時寫入了機型碼和軟件編碼的對應關系;為了不影響冰箱在產線的檢測效率,公共版軟件在運行的前4分鐘內開啟壓縮機。關聯單元用于產線綁定機型和Wi-Fi模塊MAC碼的對應關系。本地服務器用于固件包的本地存儲,并定時與云端服務器的固件包數據進行同步,由于本地連接,只需要本地硬件平臺(如供電)不失效,即可以保證高可靠性,滿足實際生產需要。系統主要架構圖如圖7所示,產線工序設計如圖8所示。
在生產中,員工1安裝電控板和Wi-Fi模塊,并通過關聯模塊掃碼冰箱機型碼和Wi-Fi模塊MAC碼,獲得對應關系并通過本地網絡上傳本地服務器。在此工位,電控板和Wi-Fi模塊都是通用物料,不需要區分型號。
員工2接通冰箱電源并開始測試,此時Wi-Fi模塊向電控板請求機型型號,得到通用型號的回復后,Wi-Fi模塊通過AP向本地服務器請求與自身MAC關聯的機型號,并發送給電控板。電控板記錄機型號并回傳對應的軟件編碼信息,后續同市場端OTA流程。電控板將在幾分鐘內完成與整機機型對應的電控軟件固件下載。因為公共版電控軟件在前幾分鐘內也會打開壓縮機,從冰箱制造的實際場景看,對于產線檢測的效率沒有影響。
通過這項應用,工廠端可以實現電控板安裝的徹底防呆,員工不再需要在安裝電控板之前確認型號;同時從實際生產場景考慮,每當電控軟件需要升級迭代時,庫存的電控板不需要再額外安排軟件更新。在新的固件包上傳到云服務器后,實例中本地服務器每1分鐘進行一次同步,可以保證新版本快速應用在制造端。
本應用中,云服務器與市場端OTA公用,對于制造端,僅需要新增本地服務器和關聯模塊,投入有限,卻大大提升了制造的通用性金額效率,上下游的電控板制造工廠也減小了庫存呆滯的壓力。
每當廠商研發出新的技術,可以通過移動端APP向用戶推送,在獲得同意后軟件升級為最新版本,或者獲得新的功能應用拓展。推送版本軟件在到達預設的時間后,可以再次向用戶推送是否需要更改回當前量產版本。本應用僅需要確認有更新版本后向用戶推送是否升級的確認頁面即可。這樣,通過OTA功能的拓展應用,用戶可以持續使用到最新的保鮮控制技術;對于廠商,也可以大大增加智能產品的用戶黏性,并使得已銷售產品擁有持續獲得收益的可能性,其工作框架如圖9所示。
互聯網、物聯網逐步改變了人們的生活方式和使用習慣,也給家電產品注入新的活力。隨著芯片和軟件技術的發展,家電產品也終將變得智能、靈活起來。
本文討論了基于聯網技術下,通過OTA技術的原理研究、在家電領域方案設計和實施應用,使得廠商、用戶等價值鏈各環節都獲得了新的工作方式;從新的視角,解決了困擾多年的問題,使得家電的控制固件不再是出廠一次性設定,而是可以促進廠商、用戶的多次交互,共同定義家電最終的功能組成。

圖7 制造端使用公共版通用生產的功能組成簡圖

圖8 制造端使用公共版通用生產的線體工序簡圖

圖9 新功能通過OTA向用戶推送的功能簡圖