• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于CGI Studio 的汽車液晶儀表顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

      2021-03-23 09:24:02郭健忠廖許葦劉小容
      電子器件 2021年1期
      關(guān)鍵詞:開發(fā)方式開發(fā)板二次開發(fā)

      郭健忠,廖許葦,謝 斌,閔 銳,耿 屹,劉小容

      (1.武漢科技大學(xué)汽車與交通工程學(xué)院,湖北 武漢430065;2.武漢保華顯示科技有限公司,湖北 武漢430082)

      近年來,中國(guó)汽車電子市場(chǎng)保持著較高增長(zhǎng)速度,相應(yīng)的汽車電子產(chǎn)品市場(chǎng)規(guī)模已經(jīng)超過萬億。激烈的競(jìng)爭(zhēng)對(duì)汽車的環(huán)保性、安全性、經(jīng)濟(jì)性以及智能化提出了很高的要求[1]。 特別伴隨著電動(dòng)汽車在市場(chǎng)的占比越來越重,所需要顯示的參數(shù)復(fù)雜,遠(yuǎn)遠(yuǎn)超出傳統(tǒng)燃油汽車儀表的顯示范圍[2-3]。 因此,汽車全液晶儀表已經(jīng)成為了汽車電子中極其重要的一部分。 伴隨著液晶儀表的發(fā)展,也帶來了一系列的問題。 例如可移植性較差、開發(fā)生產(chǎn)成本高、二次開發(fā)性較低等一系列缺點(diǎn),這些在一定程度上阻礙了其技術(shù)創(chuàng)新,阻礙了虛擬儀表的應(yīng)用推廣[4]。 汽車液晶儀表作為駕駛員直觀掌握汽車行駛狀態(tài)的平臺(tái),是汽車整個(gè)系統(tǒng)中十分重要的部分[5-6]。 近年來隨著純電汽車的發(fā)展使得儀表所需包含的信息量逐年增多和市場(chǎng)消費(fèi)者對(duì)乘用車儀表顯示效果的更高要求,傳統(tǒng)的液晶儀表開發(fā)方式已無法滿足當(dāng)前的開發(fā)需求,所以有必要設(shè)計(jì)一種提高液晶儀表開發(fā)效率的方式。

      1 傳統(tǒng)汽車液晶儀表的開發(fā)方法

      汽車液晶儀表的開發(fā)經(jīng)歷過幾個(gè)階段,從最初裸機(jī)開發(fā)(不搭載操作系統(tǒng)),到目前QT 嵌入式開發(fā),開發(fā)流程和難度越發(fā)簡(jiǎn)化,但是隨著當(dāng)前HMI(人機(jī)交互界面)所含信息密度的逐漸提高和ADAS(高級(jí)駕駛輔助系統(tǒng))的加入,造成產(chǎn)品開發(fā)難度的急劇上升和修改困難,故需要一種快速簡(jiǎn)單的工具簡(jiǎn)化流程,縮短開發(fā)成本和開發(fā)時(shí)間。

      1.1 裸機(jī)開發(fā)方法

      傳統(tǒng)的裸機(jī)開發(fā),內(nèi)部不搭載操作系統(tǒng),圖片的顯示過程是將圖形庫(kù)數(shù)據(jù)通過圖形管理單元的顯示接口在顯示屏上顯示[7]。 開發(fā)者先設(shè)計(jì)好需要顯示的圖像文件,并將該文件燒錄進(jìn)入開發(fā)板的FLASH 中。 當(dāng)需要顯示時(shí)通過圖形管理模塊調(diào)用對(duì)應(yīng)圖片進(jìn)行顯示。 該方法工作量巨大并且無法進(jìn)行復(fù)雜動(dòng)畫的顯示。 例如,如果開發(fā)者需要使表盤指針旋轉(zhuǎn),需要準(zhǔn)備多達(dá)100 個(gè)指針圖片,顯示時(shí)依次調(diào)用,大量占用了芯片內(nèi)存。

      1.2 QT 嵌入式開發(fā)

      QT 是基于C/C++語(yǔ)言的跨平臺(tái)GUI(圖形交互界面)應(yīng)用程序框架,由于其跨平臺(tái)的特性,開發(fā)者可以在傳統(tǒng)x86 平臺(tái)上通過可視化UI 設(shè)計(jì)工具QT Creator 完成應(yīng)用程序的開發(fā)后移植至目標(biāo)嵌入式平臺(tái),從而大幅提升應(yīng)用程序開發(fā)效率。 其應(yīng)用程序運(yùn)行依賴嵌入式Linux 操作系統(tǒng),因此對(duì)儀表硬件平臺(tái)提出了較高要求。 開發(fā)人員將事先準(zhǔn)備好的UI 圖片資源文件導(dǎo)入至QT Creator 中,通過可視化UI 設(shè)計(jì)軟件QT Designer 將所需資源文件移動(dòng)至設(shè)計(jì)界面,對(duì)每個(gè)界面元素構(gòu)建代碼以控制其縮放旋轉(zhuǎn)、顯示方式及運(yùn)動(dòng)軌跡。 但是由于QT 自帶動(dòng)畫引擎功能比較單一,如果界面中動(dòng)效元素過多或過于復(fù)雜,開發(fā)人員則需要?jiǎng)佑么罅看a來設(shè)計(jì)每個(gè)元素的動(dòng)效,對(duì)于矢量路徑動(dòng)畫這類復(fù)雜運(yùn)動(dòng)效果的開發(fā)非常困難,且不支持多層圖層的遮罩、模糊效果運(yùn)算,因此QT無法滿足現(xiàn)代全液晶汽車儀表中HMI 設(shè)計(jì)美觀、動(dòng)效豐富和界面層級(jí)多的設(shè)計(jì)需求。

      2 CGI Studio 的HMI 顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2.1 顯示系統(tǒng)的硬件設(shè)計(jì)

      傳統(tǒng)的汽車液晶儀表經(jīng)由一個(gè)高性能的芯片同時(shí)對(duì)圖形資源和數(shù)據(jù)信號(hào)進(jìn)行處理,但是由于液晶顯示所需要運(yùn)行的圖片資源極其龐大,單一的處理器無法很好地兼顧,造成了極大的內(nèi)存占用和浪費(fèi)。采用高性能芯片時(shí),為了規(guī)避EMC(電磁干擾)和EMI(電磁兼容)相關(guān)問題[8],電路板內(nèi)部布線極其復(fù)雜,開發(fā)板在印板時(shí)成本居高不下,再加上高性能芯片的高昂價(jià)格,造成生產(chǎn)成本無法達(dá)到預(yù)期效果。因此,本文采用底板和核心板分開處理的方式,不同模塊分工合作,根據(jù)分割的功能選擇低成本,性價(jià)比高的芯片。 同時(shí),開發(fā)者將芯片分開布置的方式可以使其更加從容地考慮開發(fā)板內(nèi)部走線的問題。 如圖1 所示,底板接受外部CAN 信號(hào)和數(shù)據(jù)IO 采集到的汽車實(shí)時(shí)信息,經(jīng)由底板MCU 進(jìn)行處理后,由I2C 傳輸給核心板,核心板通過傳輸來的數(shù)據(jù)解析后加載圖片資源控制汽車液晶儀表的正常顯示。

      圖1 硬件結(jié)構(gòu)框圖

      液晶顯示屏幕的正常顯示需要通過背光電路和顯示驅(qū)動(dòng)電路兩個(gè)方面的結(jié)合才能如期運(yùn)行。 液晶顯示屏幕本身不具備發(fā)光的特性,使用時(shí)必須借助背光源才能達(dá)到顯示效果[9]。 顯示驅(qū)動(dòng)電路通過控制液晶層像素來達(dá)到顯示效果。 傳統(tǒng)的單芯片儀表將背光電路和顯示驅(qū)動(dòng)電路集合電路板上,本文采取底板和核心板分離的方式,核心板只負(fù)責(zé)加載圖片資源控制液晶屏顯示,故相較于傳統(tǒng)設(shè)計(jì)方式,本文需要對(duì)硬件進(jìn)行重設(shè)計(jì)來控制儀表的正常顯示。 如圖2 所示,為設(shè)計(jì)的背光電路,背光電路位于底板上,選擇MP2481 背光芯片,輸入12V 電源使能該芯片,MCU 給予PWM 電平信號(hào),經(jīng)過背光芯片處理后,輸出PWM 波形經(jīng)過核心板控制屏幕亮滅。

      圖2 背光電路

      本文選用i.MX6Q 芯片作為圖形處理芯片,該芯片內(nèi)部集成了顯示驅(qū)動(dòng)電路,無需進(jìn)行額外的電路設(shè)計(jì),如圖3 所示。

      圖3 顯示驅(qū)動(dòng)電路

      2.2 顯示系統(tǒng)的軟件設(shè)計(jì)

      2.2.1 CGI Studio 技術(shù)簡(jiǎn)介

      本文采用的是CGI Studio 進(jìn)行設(shè)計(jì)開發(fā),CGI Studio 是富士通公司基于OpenGL ES 進(jìn)行一層封裝后提供的可進(jìn)行可視化設(shè)計(jì)的顯示圖形界面開發(fā)框架[10]。 OpenGL ES 是個(gè)定義了跨編程語(yǔ)言、跨平臺(tái)的業(yè)界標(biāo)準(zhǔn)應(yīng)用程序編程接口(API),引入了對(duì)可編程管線的支持,大大提高了不同消費(fèi)電子設(shè)備的3D 圖形渲染速度,在嵌入式系統(tǒng)上實(shí)現(xiàn)了全面可編程的3D 圖形[11-12]。 可通過可視化界面配置汽車液晶儀表的顯示界面,并通過自身攜帶的控件對(duì)顯示元素進(jìn)行相應(yīng)的動(dòng)畫配置,以實(shí)現(xiàn)簡(jiǎn)單到復(fù)雜的動(dòng)畫顯示效果。 對(duì)比傳統(tǒng)的開發(fā)方式和使用QT 進(jìn)行液晶儀表的開發(fā),CGI Studio 有著前者所不能比擬的優(yōu)點(diǎn)。 本文采用使用CGI Studio 分別在Windows平臺(tái)和Linux 平臺(tái)進(jìn)行開發(fā)和移植。

      2.2.2 平臺(tái)搭建和開發(fā)

      CGI Studio 作為可視化顯示圖形界面的開發(fā)框架,軟件內(nèi)包含了大量便捷的使用工具。 獲取顯示界面的原始圖像后,將其導(dǎo)入系統(tǒng)內(nèi)部的顯示界面中,可將圖片在顯示界面上隨意拖動(dòng)以達(dá)到設(shè)計(jì)過程中最完美的顯示效果。 CGI Studio 基于OpenGL ES 進(jìn)行的封裝會(huì)在顯示界面上定義坐標(biāo)原點(diǎn),導(dǎo)入的圖像會(huì)基于該坐標(biāo)原點(diǎn)定義出所處的位置從而生成相應(yīng)的代碼。 CGI Studio 的控件與圖片進(jìn)行綁定,賦予圖片各種各樣的屬性,可達(dá)到旋轉(zhuǎn)、平滑移動(dòng)等一系列動(dòng)畫效果。 圖片與控件綁定生成的各個(gè)部件需要對(duì)其進(jìn)行命名以方便在Linux 進(jìn)行綁定。在搭建過程中,動(dòng)畫編輯器可對(duì)獨(dú)立或者整體的顯示動(dòng)畫進(jìn)行編輯,動(dòng)畫在首尾由兩個(gè)關(guān)鍵幀構(gòu)成,中間由空白幀構(gòu)成,整個(gè)動(dòng)畫由無數(shù)的關(guān)鍵幀聯(lián)系在一起;動(dòng)畫編輯器可對(duì)其中任意一處的關(guān)鍵幀進(jìn)行修改、修飾和刪除。 相比傳統(tǒng)的開發(fā)方法可構(gòu)建出復(fù)雜和精美的顯示效果,并可以極大地節(jié)約人力物力。 具體開發(fā)流程如圖4 所示。

      圖4 Windows 平臺(tái)開發(fā)流程框圖

      對(duì)比傳統(tǒng)儀表開發(fā)方法,CGI Studio 開發(fā)HMI界面方便快捷,減少了開發(fā)者圖片資源的使用量和研發(fā)效率,極大地簡(jiǎn)化了開發(fā)流程。 本文使用CGI Studio 開發(fā)效果圖如圖5 所示。

      圖5 顯示效果圖

      Windows 平臺(tái)的開發(fā)完成后生成了相應(yīng)的BIN文件,將其上傳至開發(fā)板i.MX6 搭載的Linux 系統(tǒng)中。 在搭載的Linux 系統(tǒng)中建立接收數(shù)據(jù)的應(yīng)用程序,根據(jù)CGI Studio 中各個(gè)部件的命名來建立相同名字的變量,編譯后生成對(duì)應(yīng)的Taget 文件,將生成的Target 文件與CGI Studio 生成的BIN 文件通過交叉編譯來進(jìn)行綁定,達(dá)到點(diǎn)對(duì)點(diǎn)進(jìn)行傳輸?shù)墓δ堋x表根據(jù)各個(gè)變量的數(shù)據(jù)來決定儀表的顯示狀態(tài)。具體開發(fā)流程如圖6 所示。

      圖6 開發(fā)板實(shí)現(xiàn)流程

      3 系統(tǒng)二次開發(fā)和移植

      傳統(tǒng)的液晶儀表開發(fā)在修改HMI 界面過程中,需對(duì)原本的圖片資源進(jìn)行大量修改才能達(dá)到二次開發(fā)效果,例如對(duì)圖片顯示資源坐標(biāo)的平移,動(dòng)畫效果邏輯修改等;同時(shí),根據(jù)移植目標(biāo)板內(nèi)核的不同也會(huì)增加二次開發(fā)和移植的難度,開發(fā)者需要根據(jù)移植目標(biāo)板的內(nèi)核來對(duì)原程序進(jìn)行相應(yīng)的修改才能保證在新的架構(gòu)上的正常運(yùn)行。 在原產(chǎn)品上的維護(hù)和二次開發(fā)極為困難,傳統(tǒng)開發(fā)方式和QT 開發(fā)方式都需要極大的工作量和大量的代碼才能保證二次開發(fā)的順利進(jìn)行。

      本文采用的CGI Studio 開發(fā)過程中,HMI 顯示程序和顯示驅(qū)動(dòng)程序互相獨(dú)立,分別位于Windows平臺(tái)下和Linux 平臺(tái)下完成。 傳統(tǒng)的開發(fā)方式基于所設(shè)計(jì)的開發(fā)板,在系統(tǒng)級(jí)芯片內(nèi)完成,開發(fā)者的一切操作都脫離不開該芯片,芯片能力的強(qiáng)弱直接限制了開發(fā)者的能力。 CGI Studio 開發(fā)在Windows 平臺(tái)下,軟件內(nèi)部有官方提供的各種各樣便利的插件,資源極其豐富。 研發(fā)者在二次開發(fā)和移植過程中,HMI 顯示界面可直接在Windows 平臺(tái)下進(jìn)行修改,不受芯片環(huán)境的限制,同時(shí),便利的可視化操作和簡(jiǎn)易的動(dòng)畫制作過程在研發(fā)者修改過程中提供了極大的便利。 如圖7 所示,研發(fā)者在跨平臺(tái)移植過程中除了對(duì)適應(yīng)該系統(tǒng)架構(gòu)的修改外,只需在程序內(nèi)部搭載與外部顯示信號(hào)進(jìn)行數(shù)據(jù)通信的程序變量,再通過交叉編譯的方式與CGI Studio 生成的BIN 文件進(jìn)行變量綁定,即可直接移植進(jìn)開發(fā)板。

      圖7 CGI Studio 移植開發(fā)流程

      4 顯示系統(tǒng)測(cè)試與優(yōu)點(diǎn)分析

      根據(jù)通信協(xié)議制定測(cè)試數(shù)據(jù)庫(kù),將車速信號(hào)、報(bào)警信號(hào)等錄入BusMaster 數(shù)據(jù)庫(kù)中,通過CAN 總線不停循環(huán)發(fā)送模擬實(shí)車運(yùn)行環(huán)境。 儀表預(yù)留高低電平硬線接口,將12 V 高電平接入對(duì)應(yīng)接口可點(diǎn)亮儀表對(duì)應(yīng)信號(hào)顯示。 測(cè)試實(shí)物圖如圖8 所示。

      圖8 測(cè)試實(shí)物圖

      經(jīng)過24 h 的測(cè)試驗(yàn)證,本文基于CGI Studio 所設(shè)計(jì)的汽車儀表,在高頻率和低頻率CAN 報(bào)文循環(huán)發(fā)送下,能流暢顯示車速、里程、轉(zhuǎn)速、文字報(bào)警和圖標(biāo)報(bào)警等各種信息。 經(jīng)過模擬儀表死機(jī)也可觸發(fā)看門狗進(jìn)行儀表重啟。 測(cè)試結(jié)果表明,儀表運(yùn)行狀態(tài)良好,顯示流暢,不卡頓。

      通過設(shè)計(jì)開發(fā)板,在程序中搭載幀率計(jì)算模塊將每秒顯示圖片打印在儀表特定部位,同時(shí)將三種開發(fā)方式的HMI 資源文件分別燒錄進(jìn)入對(duì)應(yīng)儀表中以進(jìn)行性能測(cè)試。 儀表通過12 V 穩(wěn)壓電源供電,以錄制的CAN 報(bào)文在BusMaster 上進(jìn)行不間斷的報(bào)文回放,測(cè)試過程中不定時(shí)地向三臺(tái)測(cè)試儀表發(fā)送大量報(bào)文數(shù)據(jù)以驗(yàn)證儀表響應(yīng)速度等相關(guān)性能,同時(shí)觀察大量數(shù)據(jù)涌入情況下儀表穩(wěn)定性是否符合使用要求。 經(jīng)過4 h 不間斷測(cè)試,測(cè)試結(jié)果如表1 所示,裸機(jī)開發(fā)方式和QT 開發(fā)方式在儀表運(yùn)行過程中可達(dá)到預(yù)期顯示效果,但打印出的顯示幀率較低,遠(yuǎn)遠(yuǎn)低于CGI Studio 開發(fā)方式下的60 frame/s 顯示幀率,在跨度較大的動(dòng)畫顯示效果中可明顯看到卡頓;在數(shù)據(jù)大量涌入的情況下,裸機(jī)開發(fā)方式和QT開發(fā)方式下的圖片資源加載較慢,無法在較短時(shí)間內(nèi)將對(duì)應(yīng)圖標(biāo)顯示在儀表上方,CGI Studio 開發(fā)方式下顯示流暢,響應(yīng)速度快,不卡頓;在長(zhǎng)時(shí)間測(cè)試過程中,大量數(shù)據(jù)交互情況下,傳統(tǒng)開發(fā)方式下儀表死機(jī)重啟頻率較高,QT 開發(fā)方式和CGI Studio 開發(fā)方式下儀表死機(jī)頻率較低。 因此,CGI Studio 在運(yùn)行性能上優(yōu)于傳統(tǒng)開發(fā)方式和QT 開發(fā)方式。

      表1 不同開發(fā)方式運(yùn)行性能對(duì)比

      傳統(tǒng)開發(fā)方式在HMI 的界面繪制和驅(qū)動(dòng)程序的制作必須由一人來完成,否則會(huì)因?yàn)槌绦虻牟煌a(chǎn)生干涉,在開發(fā)過程中也因?yàn)閭鹘y(tǒng)的開發(fā)流程過于繁瑣復(fù)雜而需耗費(fèi)大量的時(shí)間。 傳統(tǒng)的開發(fā)方式需準(zhǔn)備大量的圖片資源來進(jìn)行顯示,對(duì)圖片資源的需求和CPU 的資源占用極大;高性能的芯片和開發(fā)板內(nèi)部的布線也使得開發(fā)板成本居高不下;因?yàn)樾酒軜?gòu)的不同和HMI 界面的修改使得移植和二次開發(fā)困難。

      使用CGI Studio 可將HMI 界面繪制和驅(qū)動(dòng)程序的制作分離開來,加快開發(fā)效率。 同時(shí)CGI Studio 的可視化界面繪制流程也讓界面布局制作和動(dòng)畫制作極其方便。 底板和核心板分離的方式讓芯片性能得到充足的利用。 HMI 顯示界面的開發(fā)也不會(huì)因?yàn)槟繕?biāo)芯片架構(gòu)的不同,影響二次開發(fā)和移植。 如表2 所示,相較于傳統(tǒng)開發(fā)方式和QT 開發(fā)方式,本方法在HMI 開發(fā)難度,開發(fā)流程,可移植性等方面相較于傳統(tǒng)開發(fā)方式有了極大改善。

      表2 CGI Studio 與傳統(tǒng)開發(fā)方式對(duì)比

      5 結(jié)語(yǔ)

      本文以CGI Studio 為核心設(shè)計(jì)了一款純電客車的汽車液晶儀表。 創(chuàng)新之處在于通過設(shè)計(jì)雙板結(jié)構(gòu)合理降低了開發(fā)成本;說明傳統(tǒng)的開發(fā)方式越發(fā)不適應(yīng)當(dāng)前環(huán)境下繁榮的汽車市場(chǎng),指出了使用CGI Studio 進(jìn)行開發(fā)的優(yōu)點(diǎn),提高了人機(jī)交互性能;通過跨平臺(tái)開發(fā)和交叉編譯綁定數(shù)據(jù)的方式增加了系統(tǒng)的可移植性;最后通過對(duì)成品儀表進(jìn)行測(cè)試驗(yàn)證,符合當(dāng)前液晶儀表應(yīng)用需求;該方案為當(dāng)下HMI 開發(fā)市場(chǎng)提出了一種便捷的方案。

      猜你喜歡
      開發(fā)方式開發(fā)板二次開發(fā)
      淺談基于Revit平臺(tái)的二次開發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      淺談Mastercam后處理器的二次開發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      西門子Easy Screen對(duì)倒棱機(jī)床界面二次開發(fā)
      Microchip最新推出兩款PIC32 Curiosity開發(fā)板
      數(shù)字海洋的開發(fā)方式選擇和研究
      祖國(guó)(2017年2期)2017-03-09 18:24:39
      淺析單片機(jī)開發(fā)板的設(shè)計(jì)與制作
      電子制作(2017年22期)2017-02-02 07:10:14
      車身開發(fā)中的尺寸工程技術(shù)之我見
      緬甸水資源開發(fā)方式及應(yīng)注意的問題
      Mouser為您呈上開發(fā)關(guān)鍵之STMicroelectronics Nucleo開發(fā)板
      Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
      修文县| 临邑县| 宜兴市| 罗田县| 开江县| 马边| 越西县| 房产| 镇远县| 贵阳市| 漳州市| 安达市| 康平县| 长顺县| 湖口县| 平湖市| 宁津县| 宁乡县| 左云县| 星子县| 承德县| 上饶县| 抚州市| 孟连| 平果县| 宽甸| 新河县| 武安市| 绵阳市| 伽师县| 北票市| 康乐县| 隆化县| 秦安县| 阿拉善左旗| 松桃| 建水县| 澎湖县| 布尔津县| 循化| 林芝县|