《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > 基于QNX硬加速的软控车载全虚拟仪表平台
基于QNX硬加速的软控车载全虚拟仪表平台
来源:电子技术应用2012年第10期
李 英
河南商丘师范学院 计算机与信息技术学院, 河南 商丘576100
摘要: 提出基于QNX硬加速的软控车载全虚拟仪表平台方案,引入快速HMI原型设计和逻辑仿真测试技术,以缩短人机交互界面开发周期;设计软控模式下图形元素实时分层渲染模型,实现庞大信息的动态显示;采用基于OpenGLES2.0的GPU硬加速技术提高图形渲染帧率。实验表明:该方案不仅能实时处理车辆内部模块的大量信息,而且能平滑逼真地动态显示瞬时车况信息。
中圖分類號: TP391
文獻標識碼: 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ā)展,大量遠程服務信息、車輛診斷信息、駕駛輔助信息、影音娛樂信息等都需要通過儀表平臺與駕駛員進行人機交互。通過該平臺,駕駛員不僅能輕易獲取所關注的車況信息,而且能設置相關參數,控制車輛運行模式,是車輛必不可少的輔助駕駛單元。目前車載儀表平臺主要有三種模式:(1)純機械式,完全采用傳統機械指針式組合儀表;(2)半機械式,傳統機械指針式和車載電腦組合;(3)全數字虛擬式,完全采用虛擬數字圖形(2D、3D)模擬傳統機械模式[1]。

    傳統車載儀表通常以機械式為主,由于線路集成度太低、電磁干擾較大、顯示精度不高及顯示內容有限等因素,嚴重制約了儀表輔助駕駛系統的發(fā)展。半機械式儀表在傳統儀表盤之間嵌入一塊小型LCD,即車載電腦,雖增加了儀表平臺顯示的信息量,但整體沒有擺脫機械模式的缺陷,而且對儀表平臺整體布局也有一定影響[2]。隨著近年來圖形硬件技術的飛速發(fā)展和嵌入式實時系統的廣泛應用,車輛研究者提出了各種虛擬儀表組合平臺以解決上述問題。2011年,隨著Android系統風靡全球手機市場,蔡黎等提出了基于OBD協議的Android虛擬儀表組合平臺[3],炫麗的圖形界面效果給消費者帶來了巨大的視覺沖擊感,但由于系統本身要接收第三方廠商提供的代碼,一旦出現問題很容易導致系統崩潰,可謂在提升效率的同時犧牲了系統的可靠性。2012年王潤民等提出了Linux+QT+ARM虛擬儀表組合平臺[4],基本實現了儀表的圖形界面顯示,但由于內核構架上的問題,其實時性很難滿足高性能虛擬儀表的要求??梢?,上述方案的共同缺點是:穩(wěn)定性、實時性、安全性受系統本身架構制約,很難滿足苛刻的車規(guī)測試要求和客戶對于高性能的需求。
    針對傳統機械組合式儀表的缺陷和當前虛擬儀表平臺的問題,本文提出一種新型的高性能車載全數字虛擬儀表方案,采用ARM處理器imx53為核心硬件平臺,嵌入式硬實時操作系統QNX為核心軟件平臺,并在此基礎上引入Altia快速原型界面設計和仿真測試工具,提出軟控分層顯示的邏輯界面控制方法,采用GPU硬加速圖形渲染技術,開發(fā)全虛擬儀表終端應用程序。
1 全虛擬儀表平臺系統介紹
    虛擬儀表作為輔助駕駛系統的核心組成部分,對系統的實時性、穩(wěn)定性和安全性均提出了極高的要求。而QNX作為微內核硬實時多任務的嵌入式操作系統,已成功應用于軍工領域和汽車領域,是嵌入式系統市場上第一款達到穩(wěn)定和安全雙重認證的實時操作系統。
    系統實時性主要取決于中斷處理和任務調度。中斷處理中影響實時性的因素主要是中斷延遲和調度延遲,QNX的這兩種延遲指標如表1所示。

     由表1和表2可見,QNX對于影響系統實時性的兩個關鍵指標都在微秒級, 是目前實時性最強的系統之一[5]。另外,系統的穩(wěn)定性和安全性主要取決于內核架構, QNX采用模塊化的微內核系統架構,應用程序、設備驅動程序、文件系統和網絡協議棧都獨立運行在受內存保護的空間中,采用的安全技術主要包括:
    (1) 內存保護的安全內核:內核不能被繞過,強制執(zhí)行存取權限;
    (2) 安全協議:包括IPSec、IKE、SSL、NAT等;
    (3) 硬件加速:網絡協議棧下加密和認證算法,包括DES、3DES、AES等;
    (4) 自適應分區(qū):防止惡意代碼和拒絕服務攻擊獨占CPU。
    QNX系統對每個任務進行全面地址保護,使每個任務(進程)獨立運行于自己的虛擬地址空間,在任務中又可以創(chuàng)建無地址保護的任務(線程)。這樣做的優(yōu)點是當一個進程崩潰時不會影響到另一進程的存儲空間[6]。
    綜上,QNX不僅以微秒級的延遲提高了系統的實時性,而且充分采用新型技術來保證其穩(wěn)定性和安全性。因此,以QNX為系統平臺開發(fā)全數字虛擬儀表,其性能足以滿足儀表輔助駕駛平臺對系統實時性和可靠性的苛刻要求。
2 全虛擬儀表HMI界面邏輯設計
    為縮短全數字虛擬儀表圖形用戶界面開發(fā)周期,加快其產品化進程,引入快速HMI原型設計和邏輯仿真測試工具Altia。
2.1 Altia開發(fā)流程
    Altia 作為全數字虛擬儀表專業(yè)開發(fā)工具,主要包括3個模塊:圖形界面編輯器(Altia Design)、連接仿真接口(Altia Connection)和代碼生成工具(DeepScreen)。整個開發(fā)流程見圖1,其中包括以下關鍵步驟[7]:

    (1) 圖形界面原型開發(fā):將美工處理后的靜態(tài)圖片通過圖層切換轉變?yōu)榭刹僮鞯目丶?,用于實現逼真的動態(tài)效果。圖形界面的設計結果保存為計算機中的文件,可直接用于后續(xù)的仿真驗證和代碼實現、集成階段。
    (2) 效果仿真驗證:在控制邏輯開發(fā)環(huán)境中(如C/C++、Simulink/Stateflow、Rhapsody)集成圖形界面原型,在項目開發(fā)初期和中期就能由仿真測試來驗證開發(fā)的圖形界面的合理性。
    (3) 代碼實現:通過自動代碼生成工具將圖形界面原型和控制邏輯直接轉變?yōu)檫m合于嵌入式目標平臺的程序,快速驗證嵌入式HMI的圖形效果及性能;判斷現有硬件資源是否足以支撐HMI設計;在最短時間內找到圖形界面顯示效果與硬件資源的最佳平衡。
    可見,Altia圖形界面開發(fā)流程真正做到了所見即所得,可迅速將產品概念原型化,模擬真實工作場景,讓用戶能夠通過仿真驗證手段,在設計早期就充分論證設計方案的可行性,為快速開發(fā)高性能全數字虛擬儀表提供了先進的開發(fā)理念和有力的技術保障。
2.2 設計軟控分層渲染模型
    全數字虛擬儀表往往需要動態(tài)模擬顯示大量的車況信息,并實時響應外界的觸控指令。如何在有限區(qū)域內實時顯示駕駛員所關注的信息,成為制約車載虛擬儀表發(fā)展的最大瓶頸。為此,在前人的工作基礎上,設計了基于軟控模式下的圖形元素實時分層渲染模型,以緩解圖形界面顯示的壓力。
    軟控圖層組織結構的設計核心思想為:利用多線程模式對圖形元素信息進行硬件圖層分層控制顯示,并根據駕駛員在不同時段的關注目標,動態(tài)綁定相關信息所在圖層ID。其整體架構設計如圖2所示。

    (1)硬件支持顯示的圖層有限(≤3 layer),對虛擬儀表所有顯示信息進行動態(tài)分類,根據信息的迫切度分為靜態(tài)必顯信息、可選顯示信息及動態(tài)必顯信息。
    (2)對不同迫切度的信息進行相應圖層和顯示區(qū)域的綁定,原則上動態(tài)必顯信息的優(yōu)先級最高,靜態(tài)必顯信息的優(yōu)先級最低,可選顯示信息的優(yōu)先級處于中間,屬于駕駛員可控信息。信息所綁定的圖層ID越大,則被顯示的優(yōu)先級也越高,高優(yōu)先級的圖層可以覆蓋掉低優(yōu)先級的圖層。
    (3)根據客戶不同時間段的關注,動態(tài)調整軟控區(qū)域相關信息綁定的圖層ID,進行動態(tài)實時模擬顯示。
    以上設計思想的偽代碼實現如下:
     VIC_Init();                    //對Altia圖形系統和相關
                                 車輛信息進行初始化
    Thread1_Creat();    //分類接收各類車輛信息,做過濾解
                      碼處理后更新數據庫列表;
     Thread2_Creat();    //檢測數據庫列表更新信息,并實時
                    將更新數據發(fā)送到HMI界面;
     Thread3_Creat();       //控制圖層綁定信息,根據客戶設
                      定,實時調整關切信息并綁定到相
                      關圖層;
    AtiaMainloop()                 //實時處理觸控消息;
  AltiaDisconnect()         //異常退出Altia進程并自動重
                          啟Reset進程;
    從軟控架構模型可見,該設計理念對龐大車況信息進行動態(tài)分類、分層顯示處理。靜態(tài)必顯信息處于虛擬儀表界面最底層,通常包括儀表盤背景、儀表logo及情景模式等靜態(tài)圖形元素;動態(tài)必顯信息處于虛擬儀表界面的最高層,通常包括儀表盤虛擬指針;可選顯示信息處于中間圖層,主要包括各類報警圖標、車輛狀態(tài)模擬圖標、遠程服務信息狀態(tài)及影音娛樂狀態(tài)等。
    綜述,該設計模型在有限的顯示區(qū)域對不同類型的信息進行動態(tài)分塊顯示,并對可選信息進行動態(tài)實時綁定硬件圖層,有效解決了龐大信息動態(tài)實時顯示的瓶頸。
3 引入GPU圖形硬加速機制
    隨著硬件圖形加速處理能力的不斷發(fā)展,完全靠CPU進行圖形處理的時代將逐漸消逝。車載全數字虛擬儀表作為一個圖形界面高度集成、可實時顯示龐大信息,且3D動畫動態(tài)渲染的復雜系統,僅靠CPU完成其復雜圖形處理過程顯然很難滿足實時性要求。因此,引入基于OpenGLES2.0的GPU硬加速機制。
    另外,由于該設計方案硬件上采用imx53處理器,提供了對OpenGLES2.0、OpenVG的2D、3D圖形硬加速功能的支持。同時,QNX也提供了針對imx5X系列處理器的GPU硬加速驅動模塊,使得軟硬件平臺圖形加速功能得到了很好的兼容。QNX加載GPU的模塊驅動配置如下:    
    (1)開啟QNX圖形驅動
  display_msg Starting Graphics driver...
     io-display -dvid=0,did=0
      waitfor /dev/io-display 10
    (2)將相關GLES和GPU的動態(tài)庫文件拷貝到目標系
統路徑下,默認路徑。
    /usr/lib/graphics/iMX5X
    (3)設置環(huán)境變量,開啟GPU驅動
     display_msg Starting GPU driver...
     GRAPHICS_ROOT=/usr/lib/graphics/iMX5X
     io-gpumgr &    
  GPU硬加速處理的主要流程如圖3所示。在加入GPU圖形硬加速處理機制后,不僅能增強圖形界面的顯示效果,有效降低CPU的使用率,而且能夠更好地處理大量的車況信息。

4 實驗結果及評價

 


    全數字虛擬儀表硬件平臺選用飛思卡爾提供的車規(guī)標準處理器imx536,其主要技術指標:1 GHz CPU主頻,1 GB×32 DDR3(400 MHz),32 MB 16 bit并行NOR Flash,可擴充的NAND Flash接口,LVDS數字圖形輸出接口,并集成了基于OpenGL ES2.0和OpenVG1.1的GPU圖形硬加速處理單元。軟件平臺采用加拿大哈曼公司開發(fā)的硬實時操作系統QNX,并引入美國Altia公司HMI快速原型設計和仿真測試工具套件。
    采用奇瑞某車型的CAN網絡系統和全數字虛擬儀表系統搭建整車測試平臺。將全數字虛擬儀表系統作為汽車CAN總線上的一個節(jié)點,通過CAN控制器和收發(fā)器采集車況信息,經imx536處理器過濾、解碼和組包等處理后,送到軟控分層渲染模型中進行動態(tài)實時模擬顯示,以此完成基于整車系統的全數字虛擬儀表單元測試[8]。測試的車況信息主要包括:發(fā)動機轉速、車速、車燈轉向、車門狀態(tài)、遠程監(jiān)控狀態(tài)及車內溫度等,其界面顯示效果如圖4所示。

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

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。