文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)10-0129-04
隨著整車(chē)控制單元電氣化、集成化和信息化的快速發(fā)展,大量遠(yuǎn)程服務(wù)信息、車(chē)輛診斷信息、駕駛輔助信息、影音娛樂(lè)信息等都需要通過(guò)儀表平臺(tái)與駕駛員進(jìn)行人機(jī)交互。通過(guò)該平臺(tái),駕駛員不僅能輕易獲取所關(guān)注的車(chē)況信息,而且能設(shè)置相關(guān)參數(shù),控制車(chē)輛運(yùn)行模式,是車(chē)輛必不可少的輔助駕駛單元。目前車(chē)載儀表平臺(tái)主要有三種模式:(1)純機(jī)械式,完全采用傳統(tǒng)機(jī)械指針式組合儀表;(2)半機(jī)械式,傳統(tǒng)機(jī)械指針式和車(chē)載電腦組合;(3)全數(shù)字虛擬式,完全采用虛擬數(shù)字圖形(2D、3D)模擬傳統(tǒng)機(jī)械模式[1]。
傳統(tǒng)車(chē)載儀表通常以機(jī)械式為主,由于線路集成度太低、電磁干擾較大、顯示精度不高及顯示內(nèi)容有限等因素,嚴(yán)重制約了儀表輔助駕駛系統(tǒng)的發(fā)展。半機(jī)械式儀表在傳統(tǒng)儀表盤(pán)之間嵌入一塊小型LCD,即車(chē)載電腦,雖增加了儀表平臺(tái)顯示的信息量,但整體沒(méi)有擺脫機(jī)械模式的缺陷,而且對(duì)儀表平臺(tái)整體布局也有一定影響[2]。隨著近年來(lái)圖形硬件技術(shù)的飛速發(fā)展和嵌入式實(shí)時(shí)系統(tǒng)的廣泛應(yīng)用,車(chē)輛研究者提出了各種虛擬儀表組合平臺(tái)以解決上述問(wèn)題。2011年,隨著Android系統(tǒng)風(fēng)靡全球手機(jī)市場(chǎng),蔡黎等提出了基于OBD協(xié)議的Android虛擬儀表組合平臺(tái)[3],炫麗的圖形界面效果給消費(fèi)者帶來(lái)了巨大的視覺(jué)沖擊感,但由于系統(tǒng)本身要接收第三方廠商提供的代碼,一旦出現(xiàn)問(wèn)題很容易導(dǎo)致系統(tǒng)崩潰,可謂在提升效率的同時(shí)犧牲了系統(tǒng)的可靠性。2012年王潤(rùn)民等提出了Linux+QT+ARM虛擬儀表組合平臺(tái)[4],基本實(shí)現(xiàn)了儀表的圖形界面顯示,但由于內(nèi)核構(gòu)架上的問(wèn)題,其實(shí)時(shí)性很難滿(mǎn)足高性能虛擬儀表的要求??梢?jiàn),上述方案的共同缺點(diǎn)是:穩(wěn)定性、實(shí)時(shí)性、安全性受系統(tǒng)本身架構(gòu)制約,很難滿(mǎn)足苛刻的車(chē)規(guī)測(cè)試要求和客戶(hù)對(duì)于高性能的需求。
針對(duì)傳統(tǒng)機(jī)械組合式儀表的缺陷和當(dāng)前虛擬儀表平臺(tái)的問(wèn)題,本文提出一種新型的高性能車(chē)載全數(shù)字虛擬儀表方案,采用ARM處理器imx53為核心硬件平臺(tái),嵌入式硬實(shí)時(shí)操作系統(tǒng)QNX為核心軟件平臺(tái),并在此基礎(chǔ)上引入Altia快速原型界面設(shè)計(jì)和仿真測(cè)試工具,提出軟控分層顯示的邏輯界面控制方法,采用GPU硬加速圖形渲染技術(shù),開(kāi)發(fā)全虛擬儀表終端應(yīng)用程序。
1 全虛擬儀表平臺(tái)系統(tǒng)介紹
虛擬儀表作為輔助駕駛系統(tǒng)的核心組成部分,對(duì)系統(tǒng)的實(shí)時(shí)性、穩(wěn)定性和安全性均提出了極高的要求。而QNX作為微內(nèi)核硬實(shí)時(shí)多任務(wù)的嵌入式操作系統(tǒng),已成功應(yīng)用于軍工領(lǐng)域和汽車(chē)領(lǐng)域,是嵌入式系統(tǒng)市場(chǎng)上第一款達(dá)到穩(wěn)定和安全雙重認(rèn)證的實(shí)時(shí)操作系統(tǒng)。
系統(tǒng)實(shí)時(shí)性主要取決于中斷處理和任務(wù)調(diào)度。中斷處理中影響實(shí)時(shí)性的因素主要是中斷延遲和調(diào)度延遲,QNX的這兩種延遲指標(biāo)如表1所示。
由表1和表2可見(jiàn),QNX對(duì)于影響系統(tǒng)實(shí)時(shí)性的兩個(gè)關(guān)鍵指標(biāo)都在微秒級(jí), 是目前實(shí)時(shí)性最強(qiáng)的系統(tǒng)之一[5]。另外,系統(tǒng)的穩(wěn)定性和安全性主要取決于內(nèi)核架構(gòu), QNX采用模塊化的微內(nèi)核系統(tǒng)架構(gòu),應(yīng)用程序、設(shè)備驅(qū)動(dòng)程序、文件系統(tǒng)和網(wǎng)絡(luò)協(xié)議棧都獨(dú)立運(yùn)行在受內(nèi)存保護(hù)的空間中,采用的安全技術(shù)主要包括:
(1) 內(nèi)存保護(hù)的安全內(nèi)核:內(nèi)核不能被繞過(guò),強(qiáng)制執(zhí)行存取權(quán)限;
(2) 安全協(xié)議:包括IPSec、IKE、SSL、NAT等;
(3) 硬件加速:網(wǎng)絡(luò)協(xié)議棧下加密和認(rèn)證算法,包括DES、3DES、AES等;
(4) 自適應(yīng)分區(qū):防止惡意代碼和拒絕服務(wù)攻擊獨(dú)占CPU。
QNX系統(tǒng)對(duì)每個(gè)任務(wù)進(jìn)行全面地址保護(hù),使每個(gè)任務(wù)(進(jìn)程)獨(dú)立運(yùn)行于自己的虛擬地址空間,在任務(wù)中又可以創(chuàng)建無(wú)地址保護(hù)的任務(wù)(線程)。這樣做的優(yōu)點(diǎn)是當(dāng)一個(gè)進(jìn)程崩潰時(shí)不會(huì)影響到另一進(jìn)程的存儲(chǔ)空間[6]。
綜上,QNX不僅以微秒級(jí)的延遲提高了系統(tǒng)的實(shí)時(shí)性,而且充分采用新型技術(shù)來(lái)保證其穩(wěn)定性和安全性。因此,以QNX為系統(tǒng)平臺(tái)開(kāi)發(fā)全數(shù)字虛擬儀表,其性能足以滿(mǎn)足儀表輔助駕駛平臺(tái)對(duì)系統(tǒng)實(shí)時(shí)性和可靠性的苛刻要求。
2 全虛擬儀表HMI界面邏輯設(shè)計(jì)
為縮短全數(shù)字虛擬儀表圖形用戶(hù)界面開(kāi)發(fā)周期,加快其產(chǎn)品化進(jìn)程,引入快速HMI原型設(shè)計(jì)和邏輯仿真測(cè)試工具Altia。
2.1 Altia開(kāi)發(fā)流程
Altia 作為全數(shù)字虛擬儀表專(zhuān)業(yè)開(kāi)發(fā)工具,主要包括3個(gè)模塊:圖形界面編輯器(Altia Design)、連接仿真接口(Altia Connection)和代碼生成工具(DeepScreen)。整個(gè)開(kāi)發(fā)流程見(jiàn)圖1,其中包括以下關(guān)鍵步驟[7]:
(1) 圖形界面原型開(kāi)發(fā):將美工處理后的靜態(tài)圖片通過(guò)圖層切換轉(zhuǎn)變?yōu)榭刹僮鞯目丶?,用于?shí)現(xiàn)逼真的動(dòng)態(tài)效果。圖形界面的設(shè)計(jì)結(jié)果保存為計(jì)算機(jī)中的文件,可直接用于后續(xù)的仿真驗(yàn)證和代碼實(shí)現(xiàn)、集成階段。
(2) 效果仿真驗(yàn)證:在控制邏輯開(kāi)發(fā)環(huán)境中(如C/C++、Simulink/Stateflow、Rhapsody)集成圖形界面原型,在項(xiàng)目開(kāi)發(fā)初期和中期就能由仿真測(cè)試來(lái)驗(yàn)證開(kāi)發(fā)的圖形界面的合理性。
(3) 代碼實(shí)現(xiàn):通過(guò)自動(dòng)代碼生成工具將圖形界面原型和控制邏輯直接轉(zhuǎn)變?yōu)檫m合于嵌入式目標(biāo)平臺(tái)的程序,快速驗(yàn)證嵌入式HMI的圖形效果及性能;判斷現(xiàn)有硬件資源是否足以支撐HMI設(shè)計(jì);在最短時(shí)間內(nèi)找到圖形界面顯示效果與硬件資源的最佳平衡。
可見(jiàn),Altia圖形界面開(kāi)發(fā)流程真正做到了所見(jiàn)即所得,可迅速將產(chǎn)品概念原型化,模擬真實(shí)工作場(chǎng)景,讓用戶(hù)能夠通過(guò)仿真驗(yàn)證手段,在設(shè)計(jì)早期就充分論證設(shè)計(jì)方案的可行性,為快速開(kāi)發(fā)高性能全數(shù)字虛擬儀表提供了先進(jìn)的開(kāi)發(fā)理念和有力的技術(shù)保障。
2.2 設(shè)計(jì)軟控分層渲染模型
全數(shù)字虛擬儀表往往需要?jiǎng)討B(tài)模擬顯示大量的車(chē)況信息,并實(shí)時(shí)響應(yīng)外界的觸控指令。如何在有限區(qū)域內(nèi)實(shí)時(shí)顯示駕駛員所關(guān)注的信息,成為制約車(chē)載虛擬儀表發(fā)展的最大瓶頸。為此,在前人的工作基礎(chǔ)上,設(shè)計(jì)了基于軟控模式下的圖形元素實(shí)時(shí)分層渲染模型,以緩解圖形界面顯示的壓力。
軟控圖層組織結(jié)構(gòu)的設(shè)計(jì)核心思想為:利用多線程模式對(duì)圖形元素信息進(jìn)行硬件圖層分層控制顯示,并根據(jù)駕駛員在不同時(shí)段的關(guān)注目標(biāo),動(dòng)態(tài)綁定相關(guān)信息所在圖層ID。其整體架構(gòu)設(shè)計(jì)如圖2所示。
(1)硬件支持顯示的圖層有限(≤3 layer),對(duì)虛擬儀表所有顯示信息進(jìn)行動(dòng)態(tài)分類(lèi),根據(jù)信息的迫切度分為靜態(tài)必顯信息、可選顯示信息及動(dòng)態(tài)必顯信息。
(2)對(duì)不同迫切度的信息進(jìn)行相應(yīng)圖層和顯示區(qū)域的綁定,原則上動(dòng)態(tài)必顯信息的優(yōu)先級(jí)最高,靜態(tài)必顯信息的優(yōu)先級(jí)最低,可選顯示信息的優(yōu)先級(jí)處于中間,屬于駕駛員可控信息。信息所綁定的圖層ID越大,則被顯示的優(yōu)先級(jí)也越高,高優(yōu)先級(jí)的圖層可以覆蓋掉低優(yōu)先級(jí)的圖層。
(3)根據(jù)客戶(hù)不同時(shí)間段的關(guān)注,動(dòng)態(tài)調(diào)整軟控區(qū)域相關(guān)信息綁定的圖層ID,進(jìn)行動(dòng)態(tài)實(shí)時(shí)模擬顯示。
以上設(shè)計(jì)思想的偽代碼實(shí)現(xiàn)如下:
VIC_Init(); //對(duì)Altia圖形系統(tǒng)和相關(guān)
車(chē)輛信息進(jìn)行初始化
Thread1_Creat(); //分類(lèi)接收各類(lèi)車(chē)輛信息,做過(guò)濾解
碼處理后更新數(shù)據(jù)庫(kù)列表;
Thread2_Creat(); //檢測(cè)數(shù)據(jù)庫(kù)列表更新信息,并實(shí)時(shí)
將更新數(shù)據(jù)發(fā)送到HMI界面;
Thread3_Creat(); //控制圖層綁定信息,根據(jù)客戶(hù)設(shè)
定,實(shí)時(shí)調(diào)整關(guān)切信息并綁定到相
關(guān)圖層;
AtiaMainloop() //實(shí)時(shí)處理觸控消息;
AltiaDisconnect() //異常退出Altia進(jìn)程并自動(dòng)重
啟Reset進(jìn)程;
從軟控架構(gòu)模型可見(jiàn),該設(shè)計(jì)理念對(duì)龐大車(chē)況信息進(jìn)行動(dòng)態(tài)分類(lèi)、分層顯示處理。靜態(tài)必顯信息處于虛擬儀表界面最底層,通常包括儀表盤(pán)背景、儀表logo及情景模式等靜態(tài)圖形元素;動(dòng)態(tài)必顯信息處于虛擬儀表界面的最高層,通常包括儀表盤(pán)虛擬指針;可選顯示信息處于中間圖層,主要包括各類(lèi)報(bào)警圖標(biāo)、車(chē)輛狀態(tài)模擬圖標(biāo)、遠(yuǎn)程服務(wù)信息狀態(tài)及影音娛樂(lè)狀態(tài)等。
綜述,該設(shè)計(jì)模型在有限的顯示區(qū)域?qū)Σ煌?lèi)型的信息進(jìn)行動(dòng)態(tài)分塊顯示,并對(duì)可選信息進(jìn)行動(dòng)態(tài)實(shí)時(shí)綁定硬件圖層,有效解決了龐大信息動(dòng)態(tài)實(shí)時(shí)顯示的瓶頸。
3 引入GPU圖形硬加速機(jī)制
隨著硬件圖形加速處理能力的不斷發(fā)展,完全靠CPU進(jìn)行圖形處理的時(shí)代將逐漸消逝。車(chē)載全數(shù)字虛擬儀表作為一個(gè)圖形界面高度集成、可實(shí)時(shí)顯示龐大信息,且3D動(dòng)畫(huà)動(dòng)態(tài)渲染的復(fù)雜系統(tǒng),僅靠CPU完成其復(fù)雜圖形處理過(guò)程顯然很難滿(mǎn)足實(shí)時(shí)性要求。因此,引入基于OpenGLES2.0的GPU硬加速機(jī)制。
另外,由于該設(shè)計(jì)方案硬件上采用imx53處理器,提供了對(duì)OpenGLES2.0、OpenVG的2D、3D圖形硬加速功能的支持。同時(shí),QNX也提供了針對(duì)imx5X系列處理器的GPU硬加速驅(qū)動(dòng)模塊,使得軟硬件平臺(tái)圖形加速功能得到了很好的兼容。QNX加載GPU的模塊驅(qū)動(dòng)配置如下:
(1)開(kāi)啟QNX圖形驅(qū)動(dòng)
display_msg Starting Graphics driver...
io-display -dvid=0,did=0
waitfor /dev/io-display 10
(2)將相關(guān)GLES和GPU的動(dòng)態(tài)庫(kù)文件拷貝到目標(biāo)系
統(tǒng)路徑下,默認(rèn)路徑。
/usr/lib/graphics/iMX5X
(3)設(shè)置環(huán)境變量,開(kāi)啟GPU驅(qū)動(dòng)
display_msg Starting GPU driver...
GRAPHICS_ROOT=/usr/lib/graphics/iMX5X
io-gpumgr &
GPU硬加速處理的主要流程如圖3所示。在加入GPU圖形硬加速處理機(jī)制后,不僅能增強(qiáng)圖形界面的顯示效果,有效降低CPU的使用率,而且能夠更好地處理大量的車(chē)況信息。
4 實(shí)驗(yàn)結(jié)果及評(píng)價(jià)
全數(shù)字虛擬儀表硬件平臺(tái)選用飛思卡爾提供的車(chē)規(guī)標(biāo)準(zhǔn)處理器imx536,其主要技術(shù)指標(biāo):1 GHz CPU主頻,1 GB×32 DDR3(400 MHz),32 MB 16 bit并行NOR Flash,可擴(kuò)充的NAND Flash接口,LVDS數(shù)字圖形輸出接口,并集成了基于OpenGL ES2.0和OpenVG1.1的GPU圖形硬加速處理單元。軟件平臺(tái)采用加拿大哈曼公司開(kāi)發(fā)的硬實(shí)時(shí)操作系統(tǒng)QNX,并引入美國(guó)Altia公司HMI快速原型設(shè)計(jì)和仿真測(cè)試工具套件。
采用奇瑞某車(chē)型的CAN網(wǎng)絡(luò)系統(tǒng)和全數(shù)字虛擬儀表系統(tǒng)搭建整車(chē)測(cè)試平臺(tái)。將全數(shù)字虛擬儀表系統(tǒng)作為汽車(chē)CAN總線上的一個(gè)節(jié)點(diǎn),通過(guò)CAN控制器和收發(fā)器采集車(chē)況信息,經(jīng)imx536處理器過(guò)濾、解碼和組包等處理后,送到軟控分層渲染模型中進(jìn)行動(dòng)態(tài)實(shí)時(shí)模擬顯示,以此完成基于整車(chē)系統(tǒng)的全數(shù)字虛擬儀表單元測(cè)試[8]。測(cè)試的車(chē)況信息主要包括:發(fā)動(dòng)機(jī)轉(zhuǎn)速、車(chē)速、車(chē)燈轉(zhuǎn)向、車(chē)門(mén)狀態(tài)、遠(yuǎn)程監(jiān)控狀態(tài)及車(chē)內(nèi)溫度等,其界面顯示效果如圖4所示。
針對(duì)GPU對(duì)圖形渲染的貢獻(xiàn)度進(jìn)行單元測(cè)試,其實(shí)驗(yàn)結(jié)果如表3所示。當(dāng)圖形界面復(fù)雜度相同,GPU模塊開(kāi)啟時(shí),整個(gè)圖形界面的渲染幀率迅速提高約2倍,而CPU消耗率只有微小的提高。當(dāng)其他測(cè)試環(huán)境相同,只改變圖形界面的復(fù)雜度時(shí),圖形渲染的幀率會(huì)隨著圖形復(fù)雜度的增加呈比例提高。因此,GPU模塊的開(kāi)啟與否、圖形界面的復(fù)雜度高低是影響圖形實(shí)時(shí)渲染幀率的兩個(gè)關(guān)鍵因素。而本文方案不僅有效解決了鋸齒和閃爍等影響圖形界面穩(wěn)定性的問(wèn)題,而且增強(qiáng)了圖像顯示的平滑度和復(fù)雜度,并支持3D圖形和特效動(dòng)畫(huà)的顯示,為HMI動(dòng)態(tài)實(shí)時(shí)模擬車(chē)況信息和人性化界面設(shè)計(jì)提供了強(qiáng)有力的平臺(tái)支持。
以汽車(chē)輔助駕駛系統(tǒng)快速向數(shù)字化,集成化及智能化轉(zhuǎn)型為背景,以探索虛擬儀表輔助駕駛系統(tǒng)的實(shí)時(shí)性、可靠性和人性化界面設(shè)計(jì)為研究目標(biāo),設(shè)計(jì)了一套高性能的全數(shù)字虛擬儀表系統(tǒng)。采用以實(shí)時(shí)性、穩(wěn)定性和安全性著稱(chēng)的QNX為軟件運(yùn)行系統(tǒng)平臺(tái),引入的快速圖形界面原型設(shè)計(jì)和仿真測(cè)試Altia技術(shù)開(kāi)發(fā)HMI,提出一種基于軟控模式分層顯示的圖形界面邏輯控制方法,最后引入了基于OpenGLES2.0的GPU硬加速技術(shù)。最終有效解決了在有限資源下實(shí)時(shí)處理和大量信息的瓶頸,研究成果已用于國(guó)內(nèi)某型號(hào)概念車(chē),成為國(guó)內(nèi)車(chē)載全數(shù)字虛擬儀表前裝領(lǐng)域的先行者。進(jìn)一步的工作將提高界面創(chuàng)意設(shè)計(jì),融入GPS、OnStar等信息模塊。
參考文獻(xiàn)
[1] 劉鵬.汽車(chē)虛擬儀表平臺(tái)的設(shè)計(jì)和研究[D].大連:大連理工大學(xué), 2010.
[2] 黃光亮,秦樹(shù)人,王見(jiàn),等.基于車(chē)載診斷系統(tǒng)的汽車(chē)虛擬儀表[J].中國(guó)測(cè)試, 2009,35(5):81-84.
[3] 蔡 黎,代妮娜,鄧明.基于OBD協(xié)議的Android平臺(tái)汽車(chē)虛擬儀表設(shè)計(jì)[J].電子技術(shù)應(yīng)用, 2011,37(12):83-85.
[4] 王潤(rùn)民,趙祥模,惠飛,等.基于嵌入式Linux與QT的汽車(chē)虛擬儀表設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(6):2-4.
[5] 王斑.基于QNX實(shí)時(shí)系統(tǒng)的測(cè)試系統(tǒng)的開(kāi)發(fā)[D]. 西安:西北工業(yè)大學(xué), 2006.
[6] 趙偉慶,周群彪,游志勝,等.基于QNX的實(shí)時(shí)嵌入式計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)民航飛行學(xué)院學(xué)報(bào),2003,14(2):46-48.
[7] 張建偉,王永康,南立軍,等. 基于Altia軟件的車(chē)輛電子信息系統(tǒng)顯示界面的仿真[J]. 車(chē)輛與動(dòng)力技術(shù), 2009
(3):49-52.
[8] 孟磊.基于CAN總線技術(shù)的汽車(chē)數(shù)字儀表的研究[D].西安:西安電子科技大學(xué),2011.