劉碧波,程長春
(東風汽車技術中心&觀致汽車研究院,湖北 武漢 430056)
隨著國內外OEM對智慧車輛逐漸達成共識,賦予汽車新的使命,也豐富了車輛的應用場景,用戶與車輛的直接對話越來越多,使用場景的增加給車載信息娛樂系統的正常運行帶來越來越多的挑戰。通過對系統關鍵元器件負荷分析,引導工程師對核心元器件進行選型,并通過軟件策略的優化來提升系統的流暢性,符合市場用戶需求。
參考某OEM的一款中控車機硬件架構簡圖 (圖1)。中控影音娛樂系統的架構主要包含主CPU、觸摸屏、MCU、DSP、功放、WIFI模塊、BT藍牙模塊、GPS天線模塊、收音機AM/FM模塊、CAN收發器、USB接口等,各獨立功能芯片主要參與信號收發、解析及優化,對系統的流暢性影響較小,主要由核心處理器對用戶及外界輸入信號進行綜合處理,主處理器的性能對系統運行速率影響較大。通過測試主處理器的負載及各應用的內存占用狀態選取合適的元器件,減少設計漏洞,同時避免資源浪費,有效控制成本。
圖2為應用工作原理。Linux系統在啟動時,從ROM中加載系統基本信息,通過引導程序啟動系統主程序,在應用被喚醒時,從L1/L2緩存數據中尋找應用數據,發現所需數據,則快速啟動應用;反之,則通過運行內存從存儲內存中調用并運行應用數據。
圖1 硬件框圖
圖2 應用工作原理
由于緩存模塊封裝在主處理器內部,通常一個應用從喚醒到運行的整個過程中,主要參與的硬件模塊有:功能模塊芯片、CPU、運行內存、儲存內存。功能模塊芯片接收原始信號后轉換成A/D信號輸入給CPU,由CPU底層軟件驅動顯示屏進行顯示及功放發聲,鑒于功能模塊較多,本篇不作深入研究,主要從CPU、運行內存、存儲內存3個維度來探討系統的優化方案。
同一個應用在不同的場景,CPU的負載也不一致,全功能樣機上輸入指令:adb shell top-m 10-s cpu,測得每個應用最大CPU負載的數據及對應場景如圖3所示。
圖3 CPU負載
根據以上數據統計,綜合用戶使用習慣,以下兩種常見使用場景中,會出現CPU負載過高現象。
1)收音機+導航+語音助理+雙屏互動,負載79%。
2)導航+日歷+語音助理+雙屏互動,負載86%。
通常系統底層軟件運行監控也會占用少量資源 (<2%),在負載過高時,調用其他應用,例如點擊多媒體按鍵板、高清媒體源播放、藍牙來電等,都會造成CPU資源不足,系統不流暢。
在項目策劃階段,需要對車載應用進行統計,根據試驗測得應用的最大CPU負荷、成本及后期OTA升級需求來對CPU進行選型,CPU優化通常從以下兩點進行考慮。
1)當CPU處于一個較高的負載工況時 (CPU占用90%),若一個20%CPU占用的應用被激活,正常情況下,該應用從喚醒到啟動需1s,則會因為CPU資源不足,導致應用程序調用時間增倍為2s,實際體驗就能感受到延遲,后繼雖然可通過代碼架構適當優化,但不能從根本上解決系統不流暢的問題。因此,在進行硬件選型時,需估算CPU的最大負載,選擇處理器。
2)目前業內普遍CPU的負載設計不超過70%,在確定CPU型號后,需保證CPU平穩工作。生產工藝、硬件電路、結構散熱等都會對CPU工作造成影響,長時間工作會使主機內部局部溫度偏高,造成CPU降頻,運算能力下降,可通過合理的機械結構及硬件電路布局優化CPU散熱,保證CPU良好運行。
同CPU負載類似,在全功能樣機上調用adb指令直接看每個模塊的內存占用,輸入指令:adb shell dumpsys meminfo,模擬測得每個應用的內存占用如圖4所示。
圖4 運行內存負載
某系統設計運行內存為2G(2048M),用adb指令運行模擬應用啟動時占用的實際內存為931M,選用1G(1024M)內存即可滿足系統需求,但內存預留不足,后繼程序升級時容易出現內存容量不夠,系統運行卡頓的情況,因此需綜合成本及當前內存占用狀態來選取合適的內存大小。
當前市面上車載DDR3內存大小與價格參考如下:1G內存96元,2G內存130元。
綜上所述,考慮到后期OTA升級,應用更新優化,結合當前內存的市場報價,選取2G運行內存既滿足當前設計方案,又可支持后期迭代升級,為最優性價比方案。
應用數據通常保存在eMMC(Embedded Multi Media Card)存儲器中,在車機系統中通常保存系統應用數據、高德離線地圖數據、科大訊飛/百度語音包數據、常規系統應用數據及測試LOG文件等,某車載主機存儲內存參考見圖5。
在硬件架構設計時,一般會將存儲器劃分為系統區及用戶區,系統區一般預留部分空間用于系統更新優化及系統數據臨時緩存,某項目系統應用實際數據大小為3.18G,預留4G;用戶區高德離線地圖占用7.19G,科大訊飛離線語音包占用0.48G,系統常規應用一般占用較小,主要由酷我音樂等第三方APP及調試LOG數據占用。
圖5 存儲內存負載
在系統硬件方案確定前,地圖數據及語音數據雖占用較大,但是一般浮動較小,而系統常規應用數據占用很小,因此在設計優化時需注意LOG接口數據及第三方下載數據,避免系統存儲空間不足,影響系統運行。
對于功能模塊LOG接口數據,可從軟件架構上對打印權限進行限制,當某個功能模塊需要開發調試時,需申請權限,同時主程序對內存狀態進行監控,通過浮動窗口實時顯示內存狀態,在內存使用超出閾值時通過彈窗進行報警。
第三方應用目前在車載多媒體中應用越來越多,大部分都沒有對用戶下載進行限制,采取的優化方式有兩種:①參照手機,當下載數據超過內存閾值時,系統彈窗提醒清理內存,并顯示每個應用下載占用狀態;②第三方軟件自優化,以酷我APP為例,當用戶下載的曲目數量達到設定量 (100首)或內存使用超過閾值時,再次下載時默認滾動覆蓋最早下載的曲目。
影響中控多媒體系統的因素有很多,文章選取CPU、運行內存、存儲內存3個點展開分析,結合某OEM在開發車載多媒體系統時的試驗數據,提出信息娛樂系統優化的一些可行方案,提升了產品用戶體驗,也為后繼工程師在產品開發時提供參考。