桑田 武繼榮 周澤
1.合肥一六八中學(xué) 安徽合肥 230000;2.美的集團(tuán)電冰箱事業(yè)部 安徽合肥 230000
隨著移動互聯(lián)網(wǎng)時代的到來,芯片和軟件都在不斷發(fā)展。組成互聯(lián)網(wǎng)的已經(jīng)不只是電腦和手機(jī),比如電視、冰箱、音箱、汽車、門禁都可以接入網(wǎng)絡(luò)。越來越多的廠商開發(fā)出智能家電并接入網(wǎng)絡(luò)。
通過家電互聯(lián)、數(shù)據(jù)共享,給人們的生活帶來了便利。但與此同時,廠商也在不斷探索,如何通過聯(lián)網(wǎng),使家電獲得更高的品質(zhì)、更佳的可擴(kuò)展性,或者在廠商內(nèi)部取得價值鏈?zhǔn)找?,而不是僅僅作為一個賣點(diǎn)噱頭;用戶也期望得到更好的使用體驗(yàn)。
OTA(Over-The-Air)顧名思義空中升級。是一種基于聯(lián)網(wǎng)的遠(yuǎn)程升級技術(shù)。在手機(jī)固件、APP中應(yīng)用較多,近年在汽車電子中快速發(fā)展。在用戶需求多變、開發(fā)周期收緊、可靠性要求提高的大環(huán)境下,OTA技術(shù)被視為智能產(chǎn)品開發(fā)的有效支撐。
本文旨在討論OTA技術(shù)在家電產(chǎn)品中的應(yīng)用,并提出有效的解決方案,提高可靠性、可擴(kuò)展性、用戶體驗(yàn)。為廠商、用戶帶來正向收益。暫以冰箱應(yīng)用為實(shí)例進(jìn)行說明。
案例:某系列智能冰箱產(chǎn)品,由于功能配置接近,其電控板的硬件設(shè)計已經(jīng)通用化,但因?yàn)椴煌脑O(shè)定溫度范圍及規(guī)則需要,軟件并不兼容。隨著產(chǎn)品量產(chǎn),給工廠防呆帶來較大困擾,電控板的外觀十分相似,裝配錯誤時有發(fā)生,等到通電檢測才能發(fā)現(xiàn),返修耗費(fèi)了大量時間,影響工廠作業(yè)效率。在上市之后,其衍生產(chǎn)品開發(fā)出了更優(yōu)的控制規(guī)則,使得保鮮效果更好,雖然之后的產(chǎn)品已經(jīng)應(yīng)用,但已經(jīng)上市的產(chǎn)品無法體現(xiàn),銷售端也未能宣傳,影響市場表現(xiàn)。
將OTA技術(shù)作為主要方案。實(shí)現(xiàn)以下目標(biāo):市場端軟件版本后臺受控;工廠PBA在裝配端通用;新技術(shù)、新功能智能推送,用戶自主選擇。
以上技術(shù)方案的基礎(chǔ),在于電控軟件的遠(yuǎn)程升級,方案中,采用云端服務(wù)器存儲電控固件版本,使用公司內(nèi)部的軟件編碼(唯一)作為區(qū)分,在聯(lián)網(wǎng)后,冰箱通過Wi-Fi模塊或者其他媒介查詢本地電控固件版本與云端固件版本,如果云端有更新版本,就運(yùn)行版本校驗(yàn)和白名單校驗(yàn)規(guī)則。對于符合校驗(yàn)規(guī)則的冰箱,Wi-Fi模塊從云端下載固件,校驗(yàn)正確后,通知電控板下載,電控板下載完成并校驗(yàn)正確后,電控軟件進(jìn)入待切換狀態(tài),在確認(rèn)當(dāng)前工作場景后進(jìn)行切換。如圖1所示。
在應(yīng)用中,開發(fā)者上傳固件包時,云服務(wù)器端核對編碼并進(jìn)行MD5校驗(yàn),將結(jié)果補(bǔ)充在固件數(shù)據(jù)之后,待Wi-Fi模塊下載完成時進(jìn)行校驗(yàn)??紤]到冰箱MCU的運(yùn)算能力,在冰箱下載完成之后進(jìn)行CRC16校驗(yàn)。
在電控軟件設(shè)計時,因?yàn)镸CU的RAM資源有限,同時沒有其他輔助存儲區(qū)域用于存儲固件包,故實(shí)例中使用分區(qū)的方案。將電控MCU的FLASH切分為BOOT區(qū)域、APP區(qū)域、BACKUP區(qū)域,其中BOOT區(qū)域用于存在引導(dǎo)相關(guān)代碼,APP區(qū)域?yàn)楫?dāng)前運(yùn)行固件代碼,BACKUP區(qū)域?yàn)閭溆霉碳鎯^(qū)域。為了減少RAM資源和運(yùn)行時間的占用,電控下載固件包時分幀下載,如每幀下載128個字節(jié),單幀校驗(yàn)使用CRC8,下載全部完成用CRC16進(jìn)行固件包的完整性校驗(yàn),如圖2所示。
在實(shí)例中,電控MCU使用瑞薩電子(Renesas)的R5F100MGA,其有效FALSH 128kB,其中BOOT區(qū)分配8kB,APP和BACKUP區(qū)域均為59kB,OCDROM作為仿真使用,預(yù)留2kB,其中BOOT區(qū)功能按照圖3所示步驟設(shè)計。
思蓉和思遠(yuǎn)走后,楚墨重新扎進(jìn)廚房。這次他要為念蓉榨一杯西瓜汁,他說天太熱,喝杯西瓜汁去暑。念蓉不理他,去浴室洗好澡,出來,楚墨已經(jīng)將兩杯西瓜汁榨好。
BOOT區(qū)域代碼設(shè)計時不使用定時器、UART等硬件資源,在初始化時也僅設(shè)定看門狗運(yùn)行、時鐘選擇等基本資源。盡量小的占用系統(tǒng)資源和ROM大小。
APP區(qū)域中需要設(shè)計UART分幀接收固件包,并利用自編程寫入BACKUP區(qū)對應(yīng)地址。其功能按照圖4所示設(shè)計。
在下載之前,首先需要確認(rèn)BACKUP區(qū)域?yàn)槿?,否則先進(jìn)行擦除,下載中按照順序?qū)懭?,在完成后進(jìn)行完整性校驗(yàn),校驗(yàn)合法之后根據(jù)使用場景,如用戶沒有打開冰箱門等,在合適的場景下完成切換。
在本實(shí)例中,APP區(qū)域/BACKUP區(qū)域大小為59kB,使用8M的振蕩器時鐘,經(jīng)過測試,BOOT區(qū)引導(dǎo)完成切換的時間為640mS左右,配合切換場景的選擇,可以達(dá)成對用戶體驗(yàn)無影響。分幀下載的長度,需要綜合RAM的可用資源和下載速度綜合選擇。如圖5所示。
實(shí)例中兼容框架通訊協(xié)議,如每次下載64Byte,實(shí)際通訊字節(jié)86Byte。在9600bps的速率下,通訊接收耗時約87ms,接受完成后需要進(jìn)行校驗(yàn)、解析、FALSH寫入和讀取校驗(yàn),綜合約每222ms完成一幀固件數(shù)據(jù)的下載。59kB的數(shù)據(jù)包總計需要:
圖1 冰箱OTA的功能流程圖
圖3 BOOT區(qū)功能狀態(tài)機(jī)圖
圖4 APP區(qū)域OTA分幀下載功能的狀態(tài)機(jī)圖
圖5 分幀下載中的UART接收波形圖
圖6 OTA下載時,冰箱功能時基有輕微的累計誤差
222mS×(59×1024/64)= 209.6秒
在下載過程中,還需要冰箱電控功能正常運(yùn)行,考慮系統(tǒng)負(fù)載率和電控功能的時鐘準(zhǔn)確性。本實(shí)例中最終使用每次下載128Byte,固件包下載總耗時122秒。同時因?yàn)榇谡加弥袛噘Y源,在相同中斷優(yōu)先級的情況下,電控功能的定時器時基,響應(yīng)中斷時間可能滯后(本實(shí)例中冰箱功能運(yùn)行的時基為1ms)。在實(shí)際使用時,設(shè)計者應(yīng)當(dāng)綜合考慮,協(xié)調(diào)下載速率、RAM資源占用、系統(tǒng)負(fù)載率、電控基本功能的協(xié)調(diào)性,以保證用戶體驗(yàn)不受影響,如圖6所示。
通過方案的設(shè)計,實(shí)現(xiàn)了市場端電控軟件版本的受控和后臺管理。為了進(jìn)一步給價值鏈和用戶體驗(yàn)帶來價值,實(shí)施了兩個拓展應(yīng)用:
對于實(shí)例中的系列產(chǎn)品,設(shè)計了機(jī)型碼和Wi-Fi模塊關(guān)聯(lián)單元,并統(tǒng)一使用公共版的電控板,在制造基地搭建了本地服務(wù)器。公共版電控板設(shè)計了基于系列電控板硬件的檢測軟件,用于完成電控板的制造中硬件檢測(如自檢和FCT檢測),同時寫入了機(jī)型碼和軟件編碼的對應(yīng)關(guān)系;為了不影響冰箱在產(chǎn)線的檢測效率,公共版軟件在運(yùn)行的前4分鐘內(nèi)開啟壓縮機(jī)。關(guān)聯(lián)單元用于產(chǎn)線綁定機(jī)型和Wi-Fi模塊MAC碼的對應(yīng)關(guān)系。本地服務(wù)器用于固件包的本地存儲,并定時與云端服務(wù)器的固件包數(shù)據(jù)進(jìn)行同步,由于本地連接,只需要本地硬件平臺(如供電)不失效,即可以保證高可靠性,滿足實(shí)際生產(chǎn)需要。系統(tǒng)主要架構(gòu)圖如圖7所示,產(chǎn)線工序設(shè)計如圖8所示。
在生產(chǎn)中,員工1安裝電控板和Wi-Fi模塊,并通過關(guān)聯(lián)模塊掃碼冰箱機(jī)型碼和Wi-Fi模塊MAC碼,獲得對應(yīng)關(guān)系并通過本地網(wǎng)絡(luò)上傳本地服務(wù)器。在此工位,電控板和Wi-Fi模塊都是通用物料,不需要區(qū)分型號。
員工2接通冰箱電源并開始測試,此時Wi-Fi模塊向電控板請求機(jī)型型號,得到通用型號的回復(fù)后,Wi-Fi模塊通過AP向本地服務(wù)器請求與自身MAC關(guān)聯(lián)的機(jī)型號,并發(fā)送給電控板。電控板記錄機(jī)型號并回傳對應(yīng)的軟件編碼信息,后續(xù)同市場端OTA流程。電控板將在幾分鐘內(nèi)完成與整機(jī)機(jī)型對應(yīng)的電控軟件固件下載。因?yàn)楣舶骐娍剀浖谇皫追昼妰?nèi)也會打開壓縮機(jī),從冰箱制造的實(shí)際場景看,對于產(chǎn)線檢測的效率沒有影響。
通過這項(xiàng)應(yīng)用,工廠端可以實(shí)現(xiàn)電控板安裝的徹底防呆,員工不再需要在安裝電控板之前確認(rèn)型號;同時從實(shí)際生產(chǎn)場景考慮,每當(dāng)電控軟件需要升級迭代時,庫存的電控板不需要再額外安排軟件更新。在新的固件包上傳到云服務(wù)器后,實(shí)例中本地服務(wù)器每1分鐘進(jìn)行一次同步,可以保證新版本快速應(yīng)用在制造端。
本應(yīng)用中,云服務(wù)器與市場端OTA公用,對于制造端,僅需要新增本地服務(wù)器和關(guān)聯(lián)模塊,投入有限,卻大大提升了制造的通用性金額效率,上下游的電控板制造工廠也減小了庫存呆滯的壓力。
每當(dāng)廠商研發(fā)出新的技術(shù),可以通過移動端APP向用戶推送,在獲得同意后軟件升級為最新版本,或者獲得新的功能應(yīng)用拓展。推送版本軟件在到達(dá)預(yù)設(shè)的時間后,可以再次向用戶推送是否需要更改回當(dāng)前量產(chǎn)版本。本應(yīng)用僅需要確認(rèn)有更新版本后向用戶推送是否升級的確認(rèn)頁面即可。這樣,通過OTA功能的拓展應(yīng)用,用戶可以持續(xù)使用到最新的保鮮控制技術(shù);對于廠商,也可以大大增加智能產(chǎn)品的用戶黏性,并使得已銷售產(chǎn)品擁有持續(xù)獲得收益的可能性,其工作框架如圖9所示。
互聯(lián)網(wǎng)、物聯(lián)網(wǎng)逐步改變了人們的生活方式和使用習(xí)慣,也給家電產(chǎn)品注入新的活力。隨著芯片和軟件技術(shù)的發(fā)展,家電產(chǎn)品也終將變得智能、靈活起來。
本文討論了基于聯(lián)網(wǎng)技術(shù)下,通過OTA技術(shù)的原理研究、在家電領(lǐng)域方案設(shè)計和實(shí)施應(yīng)用,使得廠商、用戶等價值鏈各環(huán)節(jié)都獲得了新的工作方式;從新的視角,解決了困擾多年的問題,使得家電的控制固件不再是出廠一次性設(shè)定,而是可以促進(jìn)廠商、用戶的多次交互,共同定義家電最終的功能組成。
圖7 制造端使用公共版通用生產(chǎn)的功能組成簡圖
圖8 制造端使用公共版通用生產(chǎn)的線體工序簡圖
圖9 新功能通過OTA向用戶推送的功能簡圖