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