国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于硬件加速的多核三維汽車儀表系統(tǒng)設(shè)計

2018-03-03 19:48:43楊二闖張衛(wèi)東楊輝華高春陽
現(xiàn)代電子技術(shù) 2018年5期

楊二闖+張衛(wèi)東+楊輝華+高春陽

摘 要: 為滿足工業(yè)中儀表盤的應(yīng)用和顯示要求,提出基于多核Cortex?A9硬件加速的三維汽車儀表系統(tǒng)設(shè)計方案。為了提升三維儀表的視覺效果,采用基于OpenGLES2.0的GPU硬件加速技術(shù)來提高儀表圖形的渲染幀率。同時,對Linux內(nèi)核做了優(yōu)化,保證了圖形運(yùn)行時的流暢性。實(shí)驗(yàn)結(jié)果表明,該設(shè)計方案不僅能實(shí)時處理系統(tǒng)模塊的信息,大幅降低CPU的使用率,且使三維汽車儀表更具真實(shí)感,達(dá)到了實(shí)際的測試要求。

關(guān)鍵詞: 三維全液晶儀表; GPU硬件加速; 嵌入式Linux; Cortex?A9; 汽車儀表系統(tǒng); 渲染幀率

中圖分類號: TN99?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2018)05?0124?05

Abstract: A design scheme of 3D automotive instrument system based on multi?core Cortex?A9 hardware acceleration is proposed to satisfy the application and display requirements of dashboard. In order to enhance the visual effect of 3D instrument, the GPU hardware acceleration technology based on OpenGLES2.0 is adopted to improve the rendering frame rate of instrument graphics. The Linux kernel is optimized to guarantee the fluency while graphics operating. The experimental results show that the scheme can not only process the information of system modules in real time, but also reduce the CPU usage greatly, and makes the 3D automotive instrument more realistic. The instrument satisfies the requirement of actual test.

Keywords: 3D full?LCD instrument; GPU hardware acceleration; embedded Linux; Cortex?A9; automotive instrument system; rendering frame rate

0 引 言

隨著“智慧汽車戰(zhàn)略”的提出,汽車趨于信息化、智能化方向發(fā)展。汽車儀表盤作為車內(nèi)儀表的主要組成部分,是汽車內(nèi)部信息傳遞的重要工具。此外,人們對汽車HMI(Human Machine Interface)的交互能力提出了更高的要求,全液晶儀表以其出色的顯示能力和多樣的顯示方式逐漸替代了傳統(tǒng)的指針式儀表[1]。目前,隨著新能源汽車的不斷發(fā)展,純電動汽車將是未來汽車行業(yè)發(fā)展的一個主要方向[2],與傳統(tǒng)的燃油類汽車相比,其需要顯示的內(nèi)容也有很大差別;在信息展示方面,純電動汽車對全液晶儀表有更多的需求。在未來汽車儀表顯示系統(tǒng)中,全液晶儀表以其全面的信息展示方式、多樣化的顯示模式和良好的HMI交互能力等優(yōu)勢將在行業(yè)里占領(lǐng)主導(dǎo)地位。

目前,國內(nèi)電動汽車行業(yè)飛速發(fā)展,嵌入式芯片綜合性能不斷提高,人們對汽車儀表的顯示性能和駕駛視覺體驗(yàn)的要求也隨之提高。因此,車載儀表的研究者為了擺脫儀表顯示加載速度慢、處理器性能差、圖形渲染效果差等問題,提出各種全液晶儀表組合平臺的解決方案用以解決這些問題。2011年,Android系統(tǒng)占領(lǐng)了移動電子領(lǐng)域,文獻(xiàn)[3]設(shè)計了基于OBD協(xié)議的Android平臺的二維虛擬儀表平臺,給消費(fèi)者帶來了很好的視覺體驗(yàn),但是由于系統(tǒng)本身特性以及啟動時間過長等因素,在儀表盤領(lǐng)域很難得到推廣;文獻(xiàn)[4]設(shè)計了一款基于emWin圖形庫并采用Cortex?M3為主控芯片的二維電動汽車液晶儀表,且有良好的顯示效果,但是處理器性能很難滿足現(xiàn)今汽車復(fù)雜網(wǎng)絡(luò)和全方位信息展示上的設(shè)計要求;文獻(xiàn)[5]設(shè)計了雙總線電動汽車數(shù)字儀表系統(tǒng),優(yōu)化了數(shù)據(jù)傳輸實(shí)時性差的問題,但其使用的工業(yè)串口屏注定了在界面顯示上的劣勢,類似地,文獻(xiàn)[6?8]的方案同樣出現(xiàn)了上述問題??梢姡陨蠋追N解決方案的不足之處集中在處理器性能、系統(tǒng)穩(wěn)定性、數(shù)據(jù)實(shí)時性和圖形處理等方面,很難滿足汽車行業(yè)軟件測試要求和用戶對炫麗界面的要求。

目前國內(nèi)還沒有完整的文獻(xiàn)提出關(guān)于三維汽車全液晶儀表的解決方案。本文為某汽車公司設(shè)計了一款三維汽車全液晶儀表盤,提出基于GPU硬件加速的三維全液晶儀表整體設(shè)計方案。該方案以ARM處理器i.MX6Q為硬件平臺,嵌入式Linux操作系統(tǒng)為軟件平臺。采用高分辨率、高對比度的最新薄膜晶體管(TFT)技術(shù)和GPU硬件加速技術(shù)[9],實(shí)現(xiàn)了三維視像的關(guān)鍵駕駛信息展示,包括速度、檔位和駕駛輔助等重要信息,比傳統(tǒng)的二維液晶儀表顯示更加出色,更富有創(chuàng)新性和逼真的空間表現(xiàn)。

1 三維全液晶儀表平臺介紹

汽車全液晶儀表包含傳統(tǒng)儀表的所有功能,以TFT?LCD液晶屏為顯示終端,將全面的、復(fù)雜的信息以圖形和文字方式顯示在TFT?LCD上,可以準(zhǔn)確清晰地顯示速度、轉(zhuǎn)速、里程、動力電池電量、指示類和報警類等信息。

三維全液晶儀表硬件結(jié)構(gòu)圖如圖1所示。本文處理器采用汽車級ARM Cortex?A9四核i.MX6 Quad系列處理器。其最高運(yùn)行頻率高達(dá)533 MHz,同時內(nèi)部集成了三個硬件加速圖形處理單元(GPU),支持3D硬件加速、2D圖形渲染和矢量加速,是先進(jìn)的消費(fèi)電子、汽車和工業(yè)多媒體應(yīng)用的理想平臺;外接1 GB DDR3和8 GB EMMC;外接高速Flex CAN構(gòu)成車輛內(nèi)部控制網(wǎng)絡(luò),接收汽車各種狀態(tài)信號,并將采集到的數(shù)據(jù)傳輸?shù)教幚砥?;外接TFT?LCD液晶顯示屏,為三維全液晶儀表提供顯示平臺;外接語音芯片,為用戶提供必要的報警信號。endprint

1.1 18/24 bit LVDS液晶接口

本文液晶模塊采用Hannstar?XGA 7寸TFT?LCD,分辨率為1 024×600,40pin LVDS接口。i.MX6 Quad內(nèi)置的LCD控制器包括用于傳輸圖像的數(shù)據(jù)總線VD[23:0]和LCD_DCLK,LCD_ENAB_M,LCD_FP,LCD_LE,LCD_LP等必要的控制信號。i.MX6 Quad LCD接口自帶DMA控制器,不依賴CPU和其他系統(tǒng)功能而獨(dú)立工作。

1.2 FlexCAN總線接口

FlexCAN是一種擴(kuò)展CAN總線功能的嵌入式網(wǎng)絡(luò)架構(gòu)。本文的CAN通信模塊采用新型CAN總線收發(fā)器TJA1040和獨(dú)立控制器,能發(fā)送和接收標(biāo)準(zhǔn)的和擴(kuò)展的信息幀,并采用抗干擾措施確保CAN通信的穩(wěn)定,最高支持1 Mb/s速度傳輸。

2 基于硬件加速軟件系統(tǒng)設(shè)計

2.1 嵌入式系統(tǒng)架構(gòu)

從汽車實(shí)際應(yīng)用的角度出發(fā)考慮三維全液晶儀表盤系統(tǒng)架構(gòu)設(shè)計,將硬件開銷和CPU計算能力作為主要參考指標(biāo)。其內(nèi)部網(wǎng)絡(luò)設(shè)計考慮各個子系統(tǒng)的功能需求,靈活選擇各子系統(tǒng)數(shù)據(jù)的傳輸方式,從而組建經(jīng)濟(jì)、高效、可靠的汽車內(nèi)部網(wǎng)絡(luò)。

本系統(tǒng)基于Linux操作系統(tǒng),系統(tǒng)架構(gòu)分四層,如圖2所示,分別為系統(tǒng)微內(nèi)核層、系統(tǒng)驅(qū)動層、數(shù)據(jù)接口層和人機(jī)交互層。其中,系統(tǒng)微內(nèi)核層的主要工作是對Linux內(nèi)核的優(yōu)化和處理,裁剪不必要的啟動項(xiàng),保證系統(tǒng)能夠快速啟動;系統(tǒng)驅(qū)動層提供系統(tǒng)完整運(yùn)轉(zhuǎn)所需的各類lib庫和各種設(shè)備驅(qū)動;數(shù)據(jù)接口層主要是接收CAN總線傳輸進(jìn)來的數(shù)據(jù)和車輛的相關(guān)信號,包含大量算法處理,如動力電池的電量計算、汽車時速計算、發(fā)動機(jī)轉(zhuǎn)速計算等,并將處理好的數(shù)據(jù)傳遞到人機(jī)交互層;人機(jī)交互層由Qt/E集成開發(fā)環(huán)境設(shè)計,融合了OpenGL ES三維渲染、QML與CPP交互設(shè)計的HMI,最后通過TFT?LCD展示給用戶,同時用戶也可以對儀表盤進(jìn)行操作,選擇合適的駕駛模式。

2.2 配置開發(fā)環(huán)境

軟件設(shè)計基于內(nèi)核Linux 3.0.35和Qt/E 5.5.0開發(fā),采用Yocto Project軟件系統(tǒng)。Yocto Project架構(gòu)中的用戶自定義層由用戶按需求定制,包括定制層、BSP層、特性層和核心數(shù)據(jù)層,并將應(yīng)用軟件通過Poky生成系統(tǒng)交叉編譯鏈。本文選擇最新1.8版本編譯器交叉編譯調(diào)試。在內(nèi)核管理上,使用Eclipse集成編譯器,并配置交叉編譯環(huán)境,完成對內(nèi)核的優(yōu)化工作[10]。

三維汽車全液晶儀表采用模塊化程序設(shè)計方案,具有良好的移植性和安全性。儀表軟件流程如圖3所示。系統(tǒng)軟件主要由CAN通信、上電自檢、三維顯示、數(shù)據(jù)存儲和故障診斷等功能模塊組成。系統(tǒng)上電后首先完成初始化工作,從存儲器中讀取公共數(shù)據(jù)完成初始化后,開始進(jìn)行儀表自檢,從而保證系統(tǒng)正常工作。儀表上電自檢通過后,系統(tǒng)開始創(chuàng)建并運(yùn)行任務(wù),具體任務(wù)有數(shù)據(jù)存儲、采樣汽車信號、CAN總線收發(fā)和三維顯示。系統(tǒng)根據(jù)不同的優(yōu)先級順序進(jìn)行任務(wù)調(diào)度,保證高優(yōu)先級的任務(wù)被優(yōu)先執(zhí)行。

2.3 內(nèi)核快速啟動優(yōu)化

針對系統(tǒng)的可靠性和圖形界面運(yùn)行的流暢性,內(nèi)核的優(yōu)化顯得十分重要。一個完整的Linux系統(tǒng)啟動過程常常需要幾十秒的時間,這在汽車領(lǐng)域會降低客戶的體驗(yàn)感,故對內(nèi)核的優(yōu)化用以保證系統(tǒng)的快速啟動是接受Linux系統(tǒng)的首要條件。

本文從以下三個方面減少內(nèi)核的啟動時間:

1) 性能優(yōu)化

使能MMU和L2_Cache、memset和memcpy;啟用SDMA,加快從NOR FLASH中讀取數(shù)據(jù);采用uSDHC的ADMA提高SD卡的讀取性能;優(yōu)化內(nèi)核arch/arm/kernel/io.c中的_memcpy_fromio函數(shù)。

2) 系統(tǒng)啟動時移除不必要模塊

在U?BOOT階段,禁止UART向kernel傳遞參數(shù)和向u?boot進(jìn)程輸出信息;刪除u?boot開機(jī)的延時時間;在u?boot中禁用I2C、NET等無關(guān)項(xiàng)。

3) 內(nèi)核啟動后立即開始主程序

通常在系統(tǒng)正常開機(jī)后會優(yōu)先處理sysinit腳本,為用戶進(jìn)程做初始化準(zhǔn)備,時間一般是1~5 s。如果在進(jìn)入系統(tǒng)時直接選擇進(jìn)入主應(yīng)用程序,必要的進(jìn)程則在主應(yīng)用程序內(nèi)部初始化,將會節(jié)省很多時間,減少不必要的等待時間。具體文件在/etc/rc.d/rcS中做修改。

2.4 圖形硬件加速機(jī)制

隨著嵌入式芯片圖形硬件加速性能的不斷提高,以往完全靠CPU處理圖形的方法逐漸被擁有優(yōu)越性能的GPU代替[11]。三維汽車全液晶儀表平臺是一個高集成度、3D動態(tài)渲染和實(shí)時性較強(qiáng)的復(fù)雜系統(tǒng),僅依靠CPU完成這一復(fù)雜的顯示任務(wù)和運(yùn)算任務(wù)就顯得顧此失彼了。因此,采用基于OpenGL ES 2.0的圖形硬件加速機(jī)制就顯得游刃有余。

該三維實(shí)現(xiàn)方案設(shè)計采用i.MX6Q處理器,支持3D硬件加速、2D圖形渲染和矢量加速。同時,嵌入式Linux系統(tǒng)也對i.MX6Q處理器添加了GPU硬件加速驅(qū)動支持,使圖形硬件加速達(dá)到更優(yōu)越的性能。嵌入式Linux系統(tǒng)加載GPU模塊驅(qū)動配置如下:

1) 使能Linux圖形驅(qū)動

操作流程(eclipse環(huán)境):

1.編譯內(nèi)核,修改環(huán)境變量

$ ARCH arm CROSS_COMPILE arm?poky?linux?gnueabi?

$ PATH ~/fsl?release?bsp/build?x11/tmp/sysroots/x86_64?linux/usr/bin/arm?poky?linux?gnueabi

$ Build Project

2.選項(xiàng)Graphics supportendprint

$ Enable Direct Rendering Manager

2) 生成動態(tài)鏈接庫

使用圖形硬件加速必須要有相關(guān)的庫文件,這些庫文件從Yocto Project架構(gòu)中編譯內(nèi)核獲取,編譯后生成用于支持OpenGL ES的動態(tài)庫文件libEGL.so.1.0,libEGL.so.1,libEGL.so,vivante_drv.so,并把庫文件(/usr/lib路徑下)拷貝到應(yīng)用所在路徑下,完成路徑索引。

3) 修改環(huán)境變量,使能GPU驅(qū)動

$ export PATH= yocto\lib\modules\iMX6Q

4) 測試GPU驅(qū)動是否安裝成功

$ startx &

5) 測試三維全液晶儀表應(yīng)用

$ export DISPLAY=:0

$ chmod +x 3DInstrument

$ ./3DInstrument?platform eglfs

如果顯示“OpenGL renderer string: GC2000 Graphics Engine或“EGL_VENDOR = Vivante Corporation”,表明GPU硬件加速已經(jīng)開啟。運(yùn)用GPU硬件加速機(jī)制,不僅優(yōu)化了圖形界面的顯示,更極大地節(jié)約了CPU的使用率,而且提高了系統(tǒng)信息的處理能力。

3 測試結(jié)果及評價

本文采用上述系統(tǒng)硬件平臺架構(gòu)、數(shù)據(jù)處理的結(jié)構(gòu),為某汽車公司設(shè)計了一套三維汽車全液晶儀表系統(tǒng)。系統(tǒng)數(shù)據(jù)信息均通過FlexCAN節(jié)點(diǎn)獲取,經(jīng)過多核Cortex?A9處理器i.MX6進(jìn)行數(shù)據(jù)的處理和圖形的渲染,軟件部分采用Linux操作系統(tǒng)和Qt/E集成開發(fā)環(huán)境,融合QML和OpenGL ES出色界面渲染設(shè)計方案,并使用高分辨率TFT?LCD實(shí)時顯示HMI界面。

全液晶儀表盤顯示的元素過多,介于篇幅不再一一列出。本文實(shí)現(xiàn)的三維實(shí)時(Real?time)渲染是基于三角形組成的三維模型,并把紋理(Texture)映射到三角形上的結(jié)果,可以通過分割三角形定義模型的細(xì)節(jié)來保證渲染質(zhì)量,測試也是根據(jù)其渲染的三角形個數(shù)來呈現(xiàn)渲染的復(fù)雜度,最后通過圖形渲染幀率、CPU使用率和虛擬內(nèi)存使用率反應(yīng)圖形硬件加速結(jié)果,測試結(jié)果均值見表1。

由表1可知,硬件加速運(yùn)算時,CPU的使用率均值不超過15%;在軟件加速時,CPU占有率升至30%。實(shí)驗(yàn)結(jié)果表明,在硬件加速條件下,VSZ(虛擬內(nèi)存)使用率顯著降低,且圖形繪制時占用的CPU比例較小,這是因?yàn)閳D形硬件加速運(yùn)算時,使用GPU進(jìn)行圖形繪制??梢?,硬件圖形加速能夠有效地緩解CPU的壓力,節(jié)約系統(tǒng)虛擬內(nèi)存,提高其運(yùn)算效率,得到了很好的加速比,并使圖形顯示能力成倍的提高。

在嵌入式平臺上進(jìn)行測試時,基于完全加載三維模型的情況,儀表盤的穩(wěn)定刷新頻率達(dá)到50 f/s,得到較為理想的顯示效果。三維儀表測試局部效果圖如圖4所示,三維儀表在嵌入式平臺下整機(jī)測試,實(shí)際運(yùn)行測試分辨率為1 024×384,測試的車輛信息有發(fā)動機(jī)轉(zhuǎn)速、車速、電池電量、車門狀態(tài)等,顯示效果如圖5所示。

4 結(jié) 語

本文設(shè)計了硬件加速的多核三維汽車儀表,滿足工業(yè)中儀表盤的應(yīng)用和顯示要求。通過軟硬件加速的結(jié)合,保證了三維全液晶儀表的實(shí)時性、快速流暢性的顯示效果。隨著嵌入式設(shè)備和液晶技術(shù)的不斷發(fā)展,全液晶儀表將會達(dá)到更好的顯示效果和視覺交互體驗(yàn)。

參考文獻(xiàn)

[1] FU Zhigang, DING Xiaodong. Research on development trend of automobile electronic technology [J]. International journal of technology management, 2013(2): 20?22.

[2] 張文亮,武斌,李武峰,等.我國純電動汽車的發(fā)展方向及能源供給模式的探討[J].電網(wǎng)技術(shù),2009,33(4):1?5.

ZHANG Wenliang, WU Bin, LI Wufeng, et al. Discussion on development trend of battery electric vehicles in china and its energy supply mode [J]. Power system technology, 2009, 33(4): 1?5.

[3] 蔡黎,代妮娜,鄧明.基于OBD協(xié)議的Android平臺汽車虛擬儀表設(shè)計[J].電子技術(shù)應(yīng)用,2011(12):83?86.

CAI Li, DAI Nina, DENG Ming. Design of car virtual instrument based on OBD for Android [J]. Application of electronic technique, 2011(12): 83?86.

[4] 陳新,蒲慶文.基于emWin圖形庫的電動汽車液晶儀表設(shè)計[J].儀表技術(shù)與傳感器,2013(7):105?107.

CHEN Xin, PU Qingwen. Electric vehicles LCD instrumentation design based on emWin [J]. Instrument technique & sensor, 2013(7): 105?107.

[5] 江學(xué)煥,張金亮,樊紅莉,等.基于CAN/LIN雙總線電動汽車數(shù)字儀表系統(tǒng)的設(shè)計[J].計算機(jī)工程與科學(xué),2015,37(11):2182?2187.endprint

JIANG Xuehuan, ZHANG Jinliang, FAN Hongli, et al. A design of electric vehicle digital instrument system based on CAN/LIN dual bus [J]. Computer engineering and science, 2015, 37(11): 2182?2187.

[6] 安亞君,皮國瑞,楊玉逢,等.基于IV+SEP4020微處理器的汽車虛擬儀表的研究[J].儀表技術(shù)與傳感器,2011(1):33?35.

AN Yajun, PI Guorui, YANG Yufeng, et al. Research of virtual instrument based on IV+SEP4020 microprocessor [J]. Instrument technique & sensor, 2011(1): 33?35.

[7] 吳森,張恒平,毛雅風(fēng).混合動力公交車儀表系統(tǒng)的開發(fā)[J].武漢理工大學(xué)學(xué)報(信息與管理工程版),2012,34(3):293?296.

WU Sen, ZHANG Hengping, MAO Yafeng. Development on instrument system for the hybrid bus [J]. Journal of Wuhan University of Technology, 2012, 34(3): 293?296..

[8] 李英.基于QNX硬加速的軟控車載全虛擬儀表平臺[J].電子技術(shù)應(yīng)用,2012(10):129?132.

LI Ying. Software control auto fully virtual instrument cluster platform based on QNX hardware acceleration [J]. Application of electronic technique, 2012(10): 129?132.

[9] 王海清.嵌入式GPU硬件加速渲染的紋理傳輸優(yōu)化及預(yù)取策略研究[D].長沙:湖南大學(xué),2013.

WANG Haiqing. Embedded GPU hardware accelerated rende?ring textures transport optimization and prefetching strategy research [D]. Changsha: Hunan University, 2013.

[10] 田丹,李運(yùn)喜,胡寧,等.基于Eclipse的嵌入式軟件交叉調(diào)試[J].現(xiàn)代電子技術(shù),2015,38(6):86?89.

TIAN Dan, LI Yunxi, HU Ning, et al. Cross?debugging of Eclipse?based embedded software [J]. Modern electronics technique, 2015, 38(6): 86?89.

[11] 郭云,康濤.基于嵌入式GPU虛擬儀表圖形軟件的實(shí)現(xiàn)[J].計算機(jī)系統(tǒng)應(yīng)用,2012(10):47?52.

GUO Yun, KANG Tao. Virtual instrument software system of cross platform based on GPU [J]. Computer systems & applications, 2012(10): 47?52.endprint

平南县| 保亭| 常熟市| 台北县| 青龙| 安龙县| 理塘县| 百色市| 塔河县| 茂名市| 萨嘎县| 宁安市| 托里县| 百色市| 万盛区| 阿图什市| 山东| 扬州市| 神农架林区| 洛浦县| 黄大仙区| 通河县| 翁源县| 桐乡市| 白河县| 平潭县| 霍林郭勒市| 观塘区| 黎平县| 呼伦贝尔市| 文山县| 南汇区| 普宁市| 久治县| 海阳市| 余庆县| 云林县| 宁晋县| 大兴区| 繁峙县| 麻阳|