《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于QNX硬加速的軟控車載全虛擬儀表平臺
基于QNX硬加速的軟控車載全虛擬儀表平臺
來源:電子技術(shù)應(yīng)用2012年第10期
李 英
河南商丘師范學(xué)院 計算機(jī)與信息技術(shù)學(xué)院, 河南 商丘576100
摘要: 提出基于QNX硬加速的軟控車載全虛擬儀表平臺方案,引入快速HMI原型設(shè)計和邏輯仿真測試技術(shù),以縮短人機(jī)交互界面開發(fā)周期;設(shè)計軟控模式下圖形元素實時分層渲染模型,實現(xiàn)龐大信息的動態(tài)顯示;采用基于OpenGLES2.0的GPU硬加速技術(shù)提高圖形渲染幀率。實驗表明:該方案不僅能實時處理車輛內(nèi)部模塊的大量信息,而且能平滑逼真地動態(tài)顯示瞬時車況信息。
中圖分類號: TP391
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2012)10-0129-04
Software control auto fully virtual instrument cluster platform based on QNX hardware acceleration
Li Ying
Computer and information Department, Shangqiu Normal University, Shangqiu 576100, China
Abstract: An auto fully virtual instrument cluster program was proposed based on QNX hardware acceleration and software control. In order to shorten the HMI development cycle, the technology based on fast HMI prototyping and logic simulation was introduced. The module of real-time layer rendering was designed under the software control, so as to display the huge info dynamically. The GPU hardware acceleration technology based on OpenGLES2.0 was used to improve the frame rate. Experiments show that , this program can not only process a huger info, comes from inner modules of the vehicle,but also can dynamically display the instantaneous vehicle info more smooth and realistic.
Key words : driver assistant system; fully virtual instrument cluster; software control module; GPU hardware acceleration; instantaneous vehicle information

    隨著整車控制單元電氣化、集成化和信息化的快速發(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ā)展和嵌入式實時系統(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)崩潰,可謂在提升效率的同時犧牲了系統(tǒng)的可靠性。2012年王潤民等提出了Linux+QT+ARM虛擬儀表組合平臺[4],基本實現(xiàn)了儀表的圖形界面顯示,但由于內(nèi)核構(gòu)架上的問題,其實時性很難滿足高性能虛擬儀表的要求。可見,上述方案的共同缺點(diǎn)是:穩(wěn)定性、實時性、安全性受系統(tǒng)本身架構(gòu)制約,很難滿足苛刻的車規(guī)測試要求和客戶對于高性能的需求。
    針對傳統(tǒng)機(jī)械組合式儀表的缺陷和當(dāng)前虛擬儀表平臺的問題,本文提出一種新型的高性能車載全數(shù)字虛擬儀表方案,采用ARM處理器imx53為核心硬件平臺,嵌入式硬實時操作系統(tǒng)QNX為核心軟件平臺,并在此基礎(chǔ)上引入Altia快速原型界面設(shè)計和仿真測試工具,提出軟控分層顯示的邏輯界面控制方法,采用GPU硬加速圖形渲染技術(shù),開發(fā)全虛擬儀表終端應(yīng)用程序。
1 全虛擬儀表平臺系統(tǒng)介紹
    虛擬儀表作為輔助駕駛系統(tǒng)的核心組成部分,對系統(tǒng)的實時性、穩(wěn)定性和安全性均提出了極高的要求。而QNX作為微內(nèi)核硬實時多任務(wù)的嵌入式操作系統(tǒng),已成功應(yīng)用于軍工領(lǐng)域和汽車領(lǐng)域,是嵌入式系統(tǒng)市場上第一款達(dá)到穩(wěn)定和安全雙重認(rèn)證的實時操作系統(tǒng)。
    系統(tǒng)實時性主要取決于中斷處理和任務(wù)調(diào)度。中斷處理中影響實時性的因素主要是中斷延遲和調(diào)度延遲,QNX的這兩種延遲指標(biāo)如表1所示。

     由表1和表2可見,QNX對于影響系統(tǒng)實時性的兩個關(guān)鍵指標(biāo)都在微秒級, 是目前實時性最強(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)對每個任務(wù)進(jìn)行全面地址保護(hù),使每個任務(wù)(進(jìn)程)獨(dú)立運(yùn)行于自己的虛擬地址空間,在任務(wù)中又可以創(chuàng)建無地址保護(hù)的任務(wù)(線程)。這樣做的優(yōu)點(diǎn)是當(dāng)一個進(jìn)程崩潰時不會影響到另一進(jìn)程的存儲空間[6]。
    綜上,QNX不僅以微秒級的延遲提高了系統(tǒng)的實時性,而且充分采用新型技術(shù)來保證其穩(wěn)定性和安全性。因此,以QNX為系統(tǒng)平臺開發(fā)全數(shù)字虛擬儀表,其性能足以滿足儀表輔助駕駛平臺對系統(tǒng)實時性和可靠性的苛刻要求。
2 全虛擬儀表HMI界面邏輯設(shè)計
    為縮短全數(shù)字虛擬儀表圖形用戶界面開發(fā)周期,加快其產(chǎn)品化進(jìn)程,引入快速HMI原型設(shè)計和邏輯仿真測試工具Altia。
2.1 Altia開發(fā)流程
    Altia 作為全數(shù)字虛擬儀表專業(yè)開發(fā)工具,主要包括3個模塊:圖形界面編輯器(Altia Design)、連接仿真接口(Altia Connection)和代碼生成工具(DeepScreen)。整個開發(fā)流程見圖1,其中包括以下關(guān)鍵步驟[7]:

    (1) 圖形界面原型開發(fā):將美工處理后的靜態(tài)圖片通過圖層切換轉(zhuǎn)變?yōu)榭刹僮鞯目丶?,用于實現(xiàn)逼真的動態(tài)效果。圖形界面的設(shè)計結(jié)果保存為計算機(jī)中的文件,可直接用于后續(xù)的仿真驗證和代碼實現(xiàn)、集成階段。
    (2) 效果仿真驗證:在控制邏輯開發(fā)環(huán)境中(如C/C++、Simulink/Stateflow、Rhapsody)集成圖形界面原型,在項目開發(fā)初期和中期就能由仿真測試來驗證開發(fā)的圖形界面的合理性。
    (3) 代碼實現(xiàn):通過自動代碼生成工具將圖形界面原型和控制邏輯直接轉(zhuǎn)變?yōu)檫m合于嵌入式目標(biāo)平臺的程序,快速驗證嵌入式HMI的圖形效果及性能;判斷現(xiàn)有硬件資源是否足以支撐HMI設(shè)計;在最短時間內(nèi)找到圖形界面顯示效果與硬件資源的最佳平衡。
    可見,Altia圖形界面開發(fā)流程真正做到了所見即所得,可迅速將產(chǎn)品概念原型化,模擬真實工作場景,讓用戶能夠通過仿真驗證手段,在設(shè)計早期就充分論證設(shè)計方案的可行性,為快速開發(fā)高性能全數(shù)字虛擬儀表提供了先進(jìn)的開發(fā)理念和有力的技術(shù)保障。
2.2 設(shè)計軟控分層渲染模型
    全數(shù)字虛擬儀表往往需要動態(tài)模擬顯示大量的車況信息,并實時響應(yīng)外界的觸控指令。如何在有限區(qū)域內(nèi)實時顯示駕駛員所關(guān)注的信息,成為制約車載虛擬儀表發(fā)展的最大瓶頸。為此,在前人的工作基礎(chǔ)上,設(shè)計了基于軟控模式下的圖形元素實時分層渲染模型,以緩解圖形界面顯示的壓力。
    軟控圖層組織結(jié)構(gòu)的設(shè)計核心思想為:利用多線程模式對圖形元素信息進(jìn)行硬件圖層分層控制顯示,并根據(jù)駕駛員在不同時段的關(guān)注目標(biāo),動態(tài)綁定相關(guān)信息所在圖層ID。其整體架構(gòu)設(shè)計如圖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ù)客戶不同時間段的關(guān)注,動態(tài)調(diào)整軟控區(qū)域相關(guān)信息綁定的圖層ID,進(jìn)行動態(tài)實時模擬顯示。
    以上設(shè)計思想的偽代碼實現(xiàn)如下:
     VIC_Init();                    //對Altia圖形系統(tǒng)和相關(guān)
                                 車輛信息進(jìn)行初始化
    Thread1_Creat();    //分類接收各類車輛信息,做過濾解
                      碼處理后更新數(shù)據(jù)庫列表;
     Thread2_Creat();    //檢測數(shù)據(jù)庫列表更新信息,并實時
                    將更新數(shù)據(jù)發(fā)送到HMI界面;
     Thread3_Creat();       //控制圖層綁定信息,根據(jù)客戶設(shè)
                      定,實時調(diào)整關(guān)切信息并綁定到相
                      關(guān)圖層;
    AtiaMainloop()                 //實時處理觸控消息;
  AltiaDisconnect()         //異常退出Altia進(jìn)程并自動重
                          啟Reset進(jìn)程;
    從軟控架構(gòu)模型可見,該設(shè)計理念對龐大車況信息進(jìn)行動態(tài)分類、分層顯示處理。靜態(tài)必顯信息處于虛擬儀表界面最底層,通常包括儀表盤背景、儀表logo及情景模式等靜態(tài)圖形元素;動態(tài)必顯信息處于虛擬儀表界面的最高層,通常包括儀表盤虛擬指針;可選顯示信息處于中間圖層,主要包括各類報警圖標(biāo)、車輛狀態(tài)模擬圖標(biāo)、遠(yuǎn)程服務(wù)信息狀態(tài)及影音娛樂狀態(tài)等。
    綜述,該設(shè)計模型在有限的顯示區(qū)域?qū)Σ煌愋偷男畔⑦M(jìn)行動態(tài)分塊顯示,并對可選信息進(jìn)行動態(tài)實時綁定硬件圖層,有效解決了龐大信息動態(tài)實時顯示的瓶頸。
3 引入GPU圖形硬加速機(jī)制
    隨著硬件圖形加速處理能力的不斷發(fā)展,完全靠CPU進(jìn)行圖形處理的時代將逐漸消逝。車載全數(shù)字虛擬儀表作為一個圖形界面高度集成、可實時顯示龐大信息,且3D動畫動態(tài)渲染的復(fù)雜系統(tǒng),僅靠CPU完成其復(fù)雜圖形處理過程顯然很難滿足實時性要求。因此,引入基于OpenGLES2.0的GPU硬加速機(jī)制。
    另外,由于該設(shè)計方案硬件上采用imx53處理器,提供了對OpenGLES2.0、OpenVG的2D、3D圖形硬加速功能的支持。同時,QNX也提供了針對imx5X系列處理器的GPU硬加速驅(qū)動模塊,使得軟硬件平臺圖形加速功能得到了很好的兼容。QNX加載GPU的模塊驅(qū)動配置如下:    
    (1)開啟QNX圖形驅(qū)動
  display_msg Starting Graphics driver...
     io-display -dvid=0,did=0
      waitfor /dev/io-display 10
    (2)將相關(guān)GLES和GPU的動態(tài)庫文件拷貝到目標(biāo)系
統(tǒng)路徑下,默認(rèn)路徑。
    /usr/lib/graphics/iMX5X
    (3)設(shè)置環(huán)境變量,開啟GPU驅(qū)動
     display_msg Starting GPU driver...
     GRAPHICS_ROOT=/usr/lib/graphics/iMX5X
     io-gpumgr &    
  GPU硬加速處理的主要流程如圖3所示。在加入GPU圖形硬加速處理機(jī)制后,不僅能增強(qiáng)圖形界面的顯示效果,有效降低CPU的使用率,而且能夠更好地處理大量的車況信息。

4 實驗結(jié)果及評價

 


    全數(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ā)的硬實時操作系統(tǒng)QNX,并引入美國Altia公司HMI快速原型設(shè)計和仿真測試工具套件。
    采用奇瑞某車型的CAN網(wǎng)絡(luò)系統(tǒng)和全數(shù)字虛擬儀表系統(tǒng)搭建整車測試平臺。將全數(shù)字虛擬儀表系統(tǒng)作為汽車CAN總線上的一個節(jié)點(diǎn),通過CAN控制器和收發(fā)器采集車況信息,經(jīng)imx536處理器過濾、解碼和組包等處理后,送到軟控分層渲染模型中進(jìn)行動態(tài)實時模擬顯示,以此完成基于整車系統(tǒng)的全數(shù)字虛擬儀表單元測試[8]。測試的車況信息主要包括:發(fā)動機(jī)轉(zhuǎn)速、車速、車燈轉(zhuǎn)向、車門狀態(tài)、遠(yuǎn)程監(jiān)控狀態(tài)及車內(nèi)溫度等,其界面顯示效果如圖4所示。

    針對GPU對圖形渲染的貢獻(xiàn)度進(jìn)行單元測試,其實驗結(jié)果如表3所示。當(dāng)圖形界面復(fù)雜度相同,GPU模塊開啟時,整個圖形界面的渲染幀率迅速提高約2倍,而CPU消耗率只有微小的提高。當(dāng)其他測試環(huán)境相同,只改變圖形界面的復(fù)雜度時,圖形渲染的幀率會隨著圖形復(fù)雜度的增加呈比例提高。因此,GPU模塊的開啟與否、圖形界面的復(fù)雜度高低是影響圖形實時渲染幀率的兩個關(guān)鍵因素。而本文方案不僅有效解決了鋸齒和閃爍等影響圖形界面穩(wěn)定性的問題,而且增強(qiáng)了圖像顯示的平滑度和復(fù)雜度,并支持3D圖形和特效動畫的顯示,為HMI動態(tài)實時模擬車況信息和人性化界面設(shè)計提供了強(qiáng)有力的平臺支持。

    以汽車輔助駕駛系統(tǒng)快速向數(shù)字化,集成化及智能化轉(zhuǎn)型為背景,以探索虛擬儀表輔助駕駛系統(tǒng)的實時性、可靠性和人性化界面設(shè)計為研究目標(biāo),設(shè)計了一套高性能的全數(shù)字虛擬儀表系統(tǒng)。采用以實時性、穩(wěn)定性和安全性著稱的QNX為軟件運(yùn)行系統(tǒng)平臺,引入的快速圖形界面原型設(shè)計和仿真測試Altia技術(shù)開發(fā)HMI,提出一種基于軟控模式分層顯示的圖形界面邏輯控制方法,最后引入了基于OpenGLES2.0的GPU硬加速技術(shù)。最終有效解決了在有限資源下實時處理和大量信息的瓶頸,研究成果已用于國內(nèi)某型號概念車,成為國內(nèi)車載全數(shù)字虛擬儀表前裝領(lǐng)域的先行者。進(jìn)一步的工作將提高界面創(chuàng)意設(shè)計,融入GPS、OnStar等信息模塊。
參考文獻(xiàn)
[1] 劉鵬.汽車虛擬儀表平臺的設(shè)計和研究[D].大連:大連理工大學(xué), 2010.
[2] 黃光亮,秦樹人,王見,等.基于車載診斷系統(tǒng)的汽車虛擬儀表[J].中國測試, 2009,35(5):81-84.
[3] 蔡 黎,代妮娜,鄧明.基于OBD協(xié)議的Android平臺汽車虛擬儀表設(shè)計[J].電子技術(shù)應(yīng)用, 2011,37(12):83-85.
[4] 王潤民,趙祥模,惠飛,等.基于嵌入式Linux與QT的汽車虛擬儀表設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(6):2-4.
[5] 王斑.基于QNX實時系統(tǒng)的測試系統(tǒng)的開發(fā)[D]. 西安:西北工業(yè)大學(xué), 2006.
[6] 趙偉慶,周群彪,游志勝,等.基于QNX的實時嵌入式計算機(jī)系統(tǒng)設(shè)計與實現(xiàn)[J].中國民航飛行學(xué)院學(xué)報,2003,14(2):46-48.
[7] 張建偉,王永康,南立軍,等. 基于Altia軟件的車輛電子信息系統(tǒng)顯示界面的仿真[J]. 車輛與動力技術(shù), 2009
(3):49-52.
[8] 孟磊.基于CAN總線技術(shù)的汽車數(shù)字儀表的研究[D].西安:西安電子科技大學(xué),2011.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。