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