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