?

淺談OTA技術在家用變頻空調中的應用

2024-01-11 08:31李超王波
制冷 2023年4期
關鍵詞:室外機固件運轉

李超,王波

(小米科技(武漢)有限公司,武漢,430073)

近幾年物聯網發展迅速,它賦予空調很多新穎的功能,如遠程操控、智能聯動、智能診斷、OTA升級等[1-2]。其中OTA升級是非常重要的功能,它解決了空調安裝后的軟件bug修復、功能迭代、用戶定制等傳統空調的痛點問題[7-8]。目前空調行業內,受到室內外機通信速率低導致升級時間長、芯片空間小導致OTA成本高等因素的影響,一般都只是對空調室內機的程序進行了OTA升級,未升級室外機的程序。

空調室外機的程序主要包含壓縮機、外風機、PFC的驅動算法,以及一些空調制冷、制熱的系統控制算法,這一部分程序影響空調運行的可靠性、舒適性等,其OTA需求也是十分強烈。

本文就空調室外機的程序OTA進行論述,主要對提高室外機程序OTA的速度、降低OTA成本等瓶頸問題進行討論。

1 空調OTA功能框架及控制流程

空調控制系統一般由Wi-Fi模塊、室內機主板和室外機主板組成,其中室內機主板和Wi-Fi模塊之間通過串口TTL通信,室內機主板和室外機主板之間通過強電電流環通信,如圖1。

圖1 空調控制系統通信框圖

在室外機也具備OTA能力的控制系統中,為了使每次升級的室內機固件和室外機固件都一一對應,不出現交叉配套的現象,需要將室內機固件和室外機固件合并到同一固件包內上傳到云端。

OTA過程一般為Wi-Fi模組從云端獲取最新的固件包,存儲到模組的Code flash中,然后再傳輸給室內機,室內機收到固件包之后,按照既定的流程對室外機固件和室內機固件進行拆包傳輸升級。常規流程如圖2。

圖2 空調控制器程序OTA流程圖

上述OTA流程中,有以下幾點可以提高整個OTA過程的穩定性及可靠性:

(1)在室內機固件包和室外機固件包的開始部分,增加固件碼頭信息,明確當前固件包的合法性校驗數據以及固件版本,如圖3。OTA時,空調先收到固件碼頭信息,對固件的合法性進行檢查,如果不適配本機型或者錯誤的固件,不允許進行OTA升級;另外模組中的固件版本比當前室內機或者室外機的固件版本還低,也不允許進行OTA升級。只有合法且需要升級的固件,才會進行OTA。

圖3 程序固件包組成示意圖

(2)上傳云端的固件包,包含室外機固件包和室內機固件包,且將室外機固件包置于室內機固件包前面,如圖3。此方法可以在升級時,室內機在正常運行區對室外機固件進行傳輸,保證室內機bootloader區域的空間最小化和功能最簡化,提高bootloader區的運行可靠性。

(3)室內機在上電時,從內外機MCU中獲取當前室內外機的固件版本,并從模組獲取需要升級的室內外機目標版本,通過對版本對比,確定OTA的執行流程,如室外機無需進行OTA,則會直接跳過室外機的OTA,減少OTA時長。

(4)室內外機的數據傳輸,采用Xmodem協議。眾所周知,Xmodem協議是高可靠性的文件傳輸通信方式。室內外機在正常運轉時,采用常規的串口通信;在需要更新室外機固件時,內外機切換到Xmodem通信模式進行文件傳輸,提高室外機OTA的效率以及穩定性。

2 雙模式通訊波特率

因弱電通信受傳輸距離不夠長、受強電干擾嚴重、成本高等原因,家用變頻空調內外機通信電路普遍采用強電電流環通信[3]。但強電通信在變頻壓縮機運行期間,容易受到PFC驅動和壓縮機驅動的IGBT開關信號干擾,所以為了通信的穩定性和可靠性,一般室內外機通信的波特率都在1,200 bps以下,導致OTA室外機固件時,耗時非常長。

為避免空調運行的干擾導致OTA數據異常,在OTA期間,空調室內外機一般會先執行關機動作?;诖嗽?,在OTA室外機固件時,將室內外機通信的波特率提高,由原來的1,200 bps提高至4,800 bps,可以將OTA時長大幅縮短。

3 程序參數分區OTA

在空調產品上市銷售后,如果不是軟件bug和新增控制功能,一般升級都是根據售后反饋的問題進行參數的優化,使空調運行更穩定,效果更好。所以對于相對穩定的空調產品來說,升級參數的概率遠大于升級程序的概率。然而參數所占空間一般只有1~2Kbytes,而程序升級則高達數百Kbytes,所以在只需要升級參數的時候,只對參數進行OTA,可以極大程度的縮短OTA時間[6]。其具體做法是:

(1)將固件包分為室內機程序、室內機參數、室外機程序、室外機參數4個部分,在合并這4部分到同一個固件包的同時,給每一個部分增加一條固件包信息,包括版本號、校驗碼等信息,如圖4(a)。

圖4 程序參數分區OTA示意圖

(2)在室內機收到Wi-Fi模組傳輸的固件包信息后,先與空調器室內外機當前的室內外機程序版本號、參數版本號進行對比,判斷出哪一部分需要進行升級。如果是需要升級的部分,則進行OTA升級,如果不需要升級的部分,則跳過該部分的升級,流程如圖4(b)。

4 部分程序OTA

一般情況下,程序編寫完成,在編譯的時候,編譯地址、內存占用等都會根據編譯的規則進行調整,所以程序中任何小的改動,都有可能影響整個編譯結果[4]。這種情況下,只要程序升級,那么一定是對整個芯片的flash進行刷寫,是否能有方法做到只升級程序變動的地方呢?這里提出一種方案,如下:

在上一節所述基礎上,我們在編寫空調控制程序的時候,將程序中各個功能按照模塊來劃分,如將室內機程序劃分為:通信控制模塊、傳感器采樣模塊、擺葉控制模塊、內風機控制模塊等;將室外機程序劃分為:壓縮機驅動模塊、室外風機驅動模塊、PFC模塊、頻率控制模塊、膨脹閥控制模塊等。

各個模塊之間,通過變量映射、參數傳遞函數等方式進行消息互通,并解掉所有的耦合關系,這樣一來每個模塊都被獨立封裝了起來。最后在編譯程序的時候,指定每個功能模塊的編譯地址和占用空間,這樣各個功能就成了獨立的模塊。編譯后,由于各模塊之間完全解耦,程序沒有變化的模塊,其占用的MCU存儲區間的內容也不會產生變化,如圖5。

圖5 程序模塊解耦編譯示意圖

在生成OTA固件包時,我們也是先給每個功能模塊打上碼頭信息標簽,按照類似圖3的方式進行升級控制。

這種部分程序OTA的方法,可以有效減短程序功能迭代時候的OTA時長。但此方法也有明顯的缺點:程序模塊解耦,工作量非常大;每個模塊占用的空間都需要為升級程序提前做好預留,對MCU存儲空間要求較高。

5 不對等分區的OTA

上述第3、4節描述了縮短OTA耗時的方法,本節則描述一種如何減小OTA所需芯片容量空間的方法,以降低OTA成本。

具備OTA功能的空調器,一般會將芯片的Flash空間劃分為3部分:Bootloader區、App區、備份區。其中Bootloader區為啟動引導區,用作校驗分區固件、切換啟動分區等;App區和備份區一般是相同大小的兩個空間,用作互相備份程序,避免在OTA期間,因掉電、通信故障等情況導致空調無程序,無法運行[5]。

眾所周知,芯片的價格與其Flash空間息息相關,空間越大,芯片價格越高。傳統的芯片分區方案,使得備份區的利用率低,方案成本高。

這里提出一種方法,將芯片的Flash空間也劃分為3部分:Bootloader區、App區、應急運轉區。其中App區與傳統的分區功能一致,但應急運轉區將空調的控制功能簡化,僅做空調運轉必需的最小控制系統,舍去復雜的控制功能。

在OTA期間,如果App區因各種原因升級失敗,無法在App區運轉,此時程序將跳轉到應急運轉區運行,為用戶繼續提供制冷、制熱等服務,并持續的獲取新的App區的固件,在App區固件升級成功后,再跳轉到App區,運行功能齊全的控制。

因應急運轉區的功能最小系統,其代碼量遠小于App區,所以此時可按照App區空間大,應急運轉區空間小的方案來劃分芯片Flash空間。

如圖6所示,程序包大小同為80 Kbytes,傳統分區方式的App區和備份區會各占124 Kbytes,芯片總容量需選型為256 Kbytes;而以不對等分區方式的App區滿足大于80 Kbytes,并將應急運轉區簡化到30 Kbytes以內,這樣芯片容量僅需128 Kbytes即可滿足需求。

圖6 不對等分區OTA方案示意圖

以上,可以得出,使用不對等的分區方案,將備份區縮小,并用作為應急運轉區,可以在滿足設備不“變磚”的情況下,還能大幅縮小芯片容量需求,降低了芯片的成本。

6 總結

空調器在售出安裝后,出現軟件bug、功能迭代、用戶定制等需求時,如果沒有OTA功能,就需要售后工程師上門服務,對空調企業來說,這是一筆非常大的支出。而OTA功能完美的解決了這個問題,既節省了空調企業的開支,也以最快的速度響應了用戶的需求。

靈活的改良空調器的OTA方案,在安全可靠的前提下使得OTA耗時長、OTA成本高等痛點問題得到良好的解決,本文論述的4種方法可廣泛用于空調器及其他電器的OTA場景,具有一定的實用價值。

猜你喜歡
室外機固件運轉
某超高層公寓變制冷劑流量空調室外機周圍熱環境數值模擬研究
基于CFD模擬分析的深圳某超高層公寓多聯機室外機布置研究
復舊運轉
《獅來運轉》萌翻石獅
橫百葉不同開度對室外機周圍熱環境的影響模擬
時來運轉
基于固件的遠程身份認證
空調室外機用環保遮陽擋
提取ROM固件中的APP
一種通過USB接口的可靠固件升級技術
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合