











關鍵詞:智能座艙;域控制器;Hypervisor ;視頻輸入輸出
0 引言
由于車規級系統芯片(SoC 芯片)的算力不斷增加,域控制器也成為汽車車輛電子領域的重要研究對象[1]。與傳統的汽車電子控制單元(ECU)相比,域控制器具備的計算能力強、外設資源充足以及功能更加多樣化等優點被原廠配套(OEM)廠商廣泛認可。域控制器的概念,使整車電子電氣結構由過去的傳統分布式結構變為了集中式結構,克服了傳統分布式結構中,各種信號之間的重復傳輸、ECU 內部時間同步和多級ECU 的硬件成本昂貴等困難問題。
在中國汽車行業當前電動化、網聯化、智能化以及共享化等新四化科技發展的大背景下,對于汽車電子電氣架構和域控制器提出了更高的要求[2]。隨著汽車用戶對智能座艙的舒適性、娛樂性等要求越來越高[3],這就要求智能座艙系統具備高速計算性能、低延遲性、更有效的跨域通信以及軟件的不斷OTA 升級與更新。汽車電子電氣結構也由傳統的分布式結構形態過渡到集中式的結構形態[4],如圖1 所示。
座艙域控制器是一個整合在同一塊芯片的控制器[5],軟件與硬件的高度整合,采用硬件冗余的方法實現了后續的OTA 系統更新迭代。座艙域控制器的SoC 芯片能力也非常強勁,高通的SA8155P 芯片CPU 算力高達105K DMIPS。可以利用軟件與硬件的高度解耦,實現底層軟件與上層軟件之間的不斷整合創新。
汽車域控制器大致可分成5 個區域,包括車體域、底盤域、發動機域、智能座艙區域和自動駕駛區域。不同域間功能分配的差異也使得相應區域所用的處理器芯片是完全不同的。例如由于車身區域對安全性和實時性需求最高,所以使用的數據處理器芯片主要為英飛凌TC397、TC399 等系列;智能座艙域對娛樂系統體驗、視覺與聽覺交互要求較高,采用的芯片主要有高通的處理器SA8155P、瑞薩和芯馳等;自動駕駛域則對傳感器采集與融合以及輔助駕駛算法的集成要求較高,采用的芯片主要有英偉達ORIN 系列、TI TDA4 系列等。本文研究的是智能座艙領域,所以選用高通的SA8155P 芯片為主芯片。
1 系統總體方案設計
座艙域控制器功能需求如表1 所示。
通過對上述主要功能需求進行分析,本文給出了系統總體設計方案(圖2)。
該座艙域控制器SoC 芯片采用SA8155P 來實現。SA8155P的CPU 算力高達105K DMIPS,可以同時處理4 塊顯示屏輸出內容和8 個攝像頭輸入圖像。視頻輸出包含DP 和DSI 的視頻串行器模塊,將DP 接口和DSI 接口輸出的視頻流數據進行編碼處理后傳輸到顯示屏端。視頻輸入3 個CSI 接口的視頻解串器模塊,將攝像頭傳輸過來的視頻流數據解碼成1lane ~ 4lane 的CSI 格式數據,再由 SA8155P CPU處理器進行處理。
2 功能模塊硬件架構設計
根據座艙域控制器的需求分析,本文主要對以下模塊進行了詳細設計。
2.1 視頻輸出設計
視頻輸出是智能座艙域控制器中最重要的功能之一,主要場景有中控顯示屏IVI、儀表顯示屏Cluster、副駕駛娛樂顯示屏和HUD 顯示屏等。SA8155P 支持1 個DP 接口和2 個DSI 接口,可以滿足8K 分辨率的顯示屏輸出。本文設計的顯示屏輸出可以支持4 塊顯示屏,最大可以支持6 塊顯示屏。視頻輸出的硬件框圖如圖3 所示,其中儀表Cluster 和抬頭顯示HUD 的顯示屏通過QNX 操作系統驅動,實現快速顯示和功能安全的功能。中控IVI和副駕娛樂顯示屏的顯示通過Android 操作系統驅動,實現信息娛樂的功能。
由于座艙域控制器和顯示屏之間距離較遠,需要采用分離屏的方案,所以必須先對視頻流信號進行串行編碼,以便于實現視頻信號遠距離傳輸。串行編碼后的信號通過差分線束傳輸到顯示屏端,顯示屏端的解串器再對串行的視頻信號進行解碼后,生成雙路或者單路的LVDS 信號,從而驅動顯示屏進行顯示。DP 接口的串行器采用TI DS90UB983,可以支持3K 以上分辨率;DSI 接口的串行器采用DS90UB981,可以支持2K 以上分辨率。DS90UB983 將DP 視頻流信號串行為FPD-LINK 信號,DS90UB981 將DSI 視頻流信號串行為FPD-LINK 信號。串行器實現驅動2 塊不同分辨率的屏幕是該設計的一個難點。
視頻輸出的硬件設計如圖4 所示,DSI 視頻信號DSI0 ~ DSI3 通過4 對差分線輸出視頻信號,差分走線采用100 Ω 終端電阻匹配。編碼后輸出通過兩組差分信號DOUT±連接到HSD 連接器,由于編碼后傳輸速率很高,在輸出端連接100.0 nF 的AC 電容耦合。
2.2 視頻分屏輸出
一個視頻輸出口驅動多塊顯示屏是技術上的一個難點,為了解決該技術難點,本研究設計了由SA8115P 的2 個視頻通道(pipeline)實現一個超級幀的視頻輸出。
為了實現幀的非對稱分離,可對生成的輸出圖像進行裁剪。輸入視頻要求與對稱分離的要求相同,超級幀必須包含2 個相同大小的圖像。這些圖像的水平和垂直尺寸都會被裁剪以生成更小的圖像。這里時鐘頻率會保持在超級幀頻率的一半。
此外,水平和垂直消隱間隔會隨著裁剪幅度的增加而增加。圖5 所示為DSI0(也可以是 DSI1)上的一個超級幀流輸入,它被分離成了2 個不同的視頻分辨率。當接收到超級幀時,該超級幀會重新格式化為交替像素3D 格式,然后再分離成2 個圖像。可以輸出不同分辨率的2 塊視頻,比如一塊輸出1 080P 分辨率,另一塊輸出720P 分辨率。接下來會對生成圖像中的1 個或2 個圖像執行裁剪功能以獲得所需的分辨率,然后會將圖像轉發到兼容的解串器和所連接的顯示屏。
2.3 視頻輸出能力分析
視頻輸出是否帶動2 塊顯示屏,還必須對串行器、連接器、線束和解串器逐一進行傳輸能力的分析。在這里Line rate 是FPD-LINK 串行總線上的高速信號的速率,單位為bps(bit/s)。每個PCLK 會把24 bit RGB888 數據、控制信號(包括GPIO、I2C 等)以及時鐘信號編碼成為35 bit 的數據傳輸。line rate 和PCLK 之間存在固定的35 倍關系,串行總線上的一個UI 為line rate 的倒數,即Line rate= fPCLK×35。因此PCLK 速度越高,line rate 越高,1UI 對應的時間越短。UI 參數可以用于眼圖與時鐘Jitter 的評估。由于FPD-LINK III 采用NRZ 編碼方式,在串行線纜上,高速信號的等效信號頻率為line rate 的一半。信號頻率參數可以用于指導線纜、連接器的選型。
視頻輸出需要的數據帶寬如表2 所示。為了驅動多塊顯示屏進行顯示,需要選擇對應的串行器、解串器、連接器以及線束,以確保顯示鏈路不存在傳輸瓶頸。
通過對DP 和DSI 的視頻信號進行串行化和解串化處理,可以大幅減少外部傳輸信號線的數量。同時可以有效延長傳輸距離,整車對于顯示屏的布置也更加方便。
2.4 視頻輸入設計
智能座艙域控制器中的視頻輸入功能也非常重要,主要應用有后視攝像頭RVC、環視攝像頭AVM、乘客監控攝像頭OMS、行車記錄儀攝像頭DVR、駕駛員識別和監控攝像頭DMS 等。SA8155P 具有4 路MIPI CSI 接口,每路可以支持200 ~ 400 MP的攝像頭輸入。視頻輸入系統框如圖6 所示。
為了讓攝像頭可以更好地實現解碼和顯示功能,本研究對攝像頭數據格式、分辨率和供電等進行了歸一化處理(表3)。歸一化處理后優化了SoC 內部ISP 處理過程,可以最多同時對8 路攝像頭進行處理后輸出。
攝像頭采集到4 通道的YUV422 前端數據后會編碼成長數據包。長數據包由3 個元素組成,分別為:32 位的數據包報頭(PH),特定于應用程序的數據有效載荷(具有可變數量的8 位數據字),以及16 位的數據包頁腳(PF)。數據包報頭進一步由3 個元素組成:1 個8 位的數據標識符,一個16 位的字計數字段,和一個8位的ECC。包頁腳只有1 個元素,即1 個16 位的校驗和(圖7)。
4 顆攝像頭經過解串器解碼后,會解碼成MIPI CSI 的格式。CSI-2 定義的引腳包含1 對時鐘線以及1 ~ 4 對差分數據線(datalane),其數據都是以byte 為單位,在每個lane 上分布。以4 對data lane數據分布情況為例(圖8),byte 0~byte n從lane 0~lane3 依次分布。具體byte 0 ~ byte n-1 的內容就是CSI-2 協議定義的數據包,主要分為兩大類。一類是短包(short packet),主要用來傳遞行場同步信號,由固定的32 bit(4 byte)數據組成。還有一類是長包(long packet),主要用來傳遞圖像數據。每一行圖像會被打包成一個長包,長度不固定,取決于每一行圖像的像素個數以及每個像素的顏色深度。
攝像頭的數據會通過虛擬ID 分配號對應虛擬通道地址VC ID,用來識別圖像數據來源于哪顆攝像頭。
3 軟件架構設計
3.1 Hypervisor 架構
座艙域控制器的軟件相較于傳統的ECU 要復雜得多,其軟件架構也與傳統ECU 之間存在很大差別。本研究設計的座艙域控制器軟件架構采用QNX Hypervisor 技術[6],在一個控制器上實現2 個客戶端(圖9)。其中,娛樂系統運行的是Android 客戶機,主要完成中控娛樂和副駕駛娛樂的功能;儀表系統運行的是具有實時性和功能安全的QNX 操作系統,主要完成與功能安全相關的儀表和HUD 功能。在硬件的基礎上,該架構采用Hypervisor 技術對Android 和QNX 系統進行實時監控,構建出HAL、Framework 實現軟硬件解耦,APP 層再通過接口對中間層和底層進行調用。
3.2 多屏互動架構
QNX 和Android 之間的進程間通訊主要包含系統間的控制命令/ 數據通訊,通過FDBus 來實現。系統間的大數據量數據通訊(比如圖像/ 音頻)可以通過共享內存的方式實現數據通訊(圖10)。
屏幕的輸出使用WFD 框架,屏幕的輸出接口控制在QNX 端。Android 端使用代理與QNX 端通訊,可以實現中控屏、儀表屏、其他顯示屏之間的互動。
4 結束語
座艙域控制器的研發及使用已經成為趨勢。本文根據智能座艙域的場景特征,構建設計了一款基于SA8155P 芯片的智能座艙域控制器并對各個主要模塊進行了詳細設計。在智能座艙領域中,中控顯示屏IVI、儀表顯示屏Cluster、副駕駛娛樂顯示屏、HUD顯示屏、后視攝像頭RVC 以及環視攝像頭AVM 等應用是最為重要且基本的,因此必須對視頻輸出輸入的系統解決方案做出合理的設計,才能滿足用戶良好的使用體驗。區別于傳統的ECU,座艙域控制器硬件冗余設計也保證了在底層軟件和上層軟件設計得更為復雜,尤其是對于QNX Hypervisor 的軟件,能夠讓座艙域控制器更好地發揮其優越性能。