基于ARM 和Qt/E的車載HMI終端的設(shè)計方案
摘要:車載HMI是人與車輛之間的關(guān)鍵設(shè)備,使人能夠?qū)囕v的運(yùn)行實現(xiàn)控制;設(shè)計了一種觸摸控制與數(shù)字顯示合理結(jié)合的車載HMI終端,采用ARM作為處理器,通過移植Qt/E對系統(tǒng)加以實現(xiàn);該終端通過在Polo車CAN總線試驗臺測試,實現(xiàn)了對基本設(shè)備的觸摸控制和車輛狀態(tài)信息的實時顯示,表明所設(shè)計的終端能夠滿足車載HMI的基本要求。
本文引用地址:http://cafeforensic.com/article/149173.htm0引言
改善HMI(HumanMachineInterface)終端性能可降低車輛控制系統(tǒng)操作的復(fù)雜性,也可提高駕駛員對自己車輛的控制力。車載HMI通過單一結(jié)構(gòu)中控臺,可以減少零部件數(shù)量,提高性價比。傳統(tǒng)機(jī)械式的控制終端正在逐步向直觀、便捷的HMI終端發(fā)展。2009年6月29日,美國汽車多媒體與通信研究服務(wù)公司StrategyAnalytics發(fā)布最新研究報告,認(rèn)為車載人機(jī)界面市場領(lǐng)先者保持強(qiáng)勢地位.報告預(yù)測,2015年,車載語音和觸摸屏市場規(guī)模將達(dá)到29億美元。目前,HMI設(shè)備,尤其是語音、觸覺控制和觸摸屏,在汽車市場上被大量應(yīng)用。
本文報告了一種基于觸摸控制與數(shù)字顯示理念的車載HMI終端,通過在ARM上移植Qt/E接TFT-LCD觸摸面板加以實現(xiàn)。
1系統(tǒng)結(jié)構(gòu)介紹
基于ARM和Qt/E的車載HMI終端主要由兩個模塊組成,分別是ARM處理器與觸摸顯示屏組成的HMI觸控平臺和CAN/RS232協(xié)議轉(zhuǎn)換器模塊。該終端可接入車載CAN網(wǎng)絡(luò)中實現(xiàn)車載設(shè)備的觸摸控制與狀態(tài)信息顯示。其結(jié)構(gòu)框圖如圖1所示。
圖1車載HMI終端結(jié)構(gòu)
HMI觸控平臺主要是將Qt/E交叉編譯后移植到ARM平臺,調(diào)用GUI在觸摸面板顯示。通過點擊觸控界面發(fā)送控制字,經(jīng)CAN/RS232網(wǎng)關(guān)發(fā)送到CAN網(wǎng)絡(luò)中對各設(shè)備進(jìn)行控制,同時實時采集各設(shè)備運(yùn)行狀態(tài)參數(shù)并顯示,便于駕駛員及時了解車輛運(yùn)行狀態(tài)。該平臺還預(yù)留了UART和USB端口分別可外接GPS模塊,無線上網(wǎng)卡或U盤設(shè)備,實現(xiàn)導(dǎo)航、無線上網(wǎng)和多媒體播放功能。
CAN/RS232協(xié)議轉(zhuǎn)換模塊主要由MCU、CAN接口與UART接口組成,其中CAN接口采用CAN控制器SJA1000和CAN收發(fā)器PCA82C250設(shè)計,RS232接口采用MAX232設(shè)計,以此實現(xiàn)兩種不同總線協(xié)議數(shù)據(jù)幀的透明轉(zhuǎn)換,是HMI終端與CAN網(wǎng)絡(luò)中各設(shè)備交互的紐帶。
車載CAN網(wǎng)絡(luò)模塊主要以Polo車CAN試驗臺為平臺,試驗臺集成了車燈、電動車窗、雨刷和后視鏡CAN節(jié)點模塊。
2Qt/E在ARM上的移植
Qt/E是Trolltech公司專為嵌入式Linux系統(tǒng)開發(fā)的圖像用戶界面(GUI)工具包。提供了窗口操作系統(tǒng)、開發(fā)環(huán)境、工作輔助應(yīng)用程序和個性選項等,是基于C++可跨平臺的GUI應(yīng)用程序框架;還提供給開發(fā)者建立藝術(shù)級GUI所需的功能,開發(fā)者可根據(jù)需求定制整個軟件解決方案。目前,眾多手機(jī)、PDA、機(jī)頂盒都采用Qt作為圖形引擎。因此,選擇了Qt/E作為HMI終端的開發(fā)工具。
2.1交叉編譯環(huán)境的搭建
采用宿主機(jī)Fedora9.0作為開發(fā)平臺,移植ARM版Qt/E4.7進(jìn)行設(shè)計。因編譯Linux內(nèi)核和Qt/E都需要交叉編譯工具鏈,交叉編譯器版本過高過低都會與Qt/E4.7不兼容,最終導(dǎo)致安裝失敗,所以一定要根據(jù)Qt的版本來選擇對應(yīng)的編譯器。本系統(tǒng)采用arm-linux-gcc-4.5.1.安裝過程如下:
首先,解壓arm-linux-gcc-4.5.1安裝包,運(yùn)行#tarxvzfarm-linux-gcc-4.5.1.tgz命令;然后將編譯器所在路徑加入系統(tǒng)環(huán)境變量,運(yùn)行#gedit/root/.bashrc編輯該文件,修改最后一行為exportPATH=PATH:/usrt/local/arm/4.5.1/binPATH,此時交叉編譯器已經(jīng)安裝好;最后執(zhí)行#arm-linux-gcc-v顯示編譯器版本信息,驗證是否安裝成功。
2.2Qt/E4.7的編譯與移植
減壓ARM版Qt/E安裝包到指定目錄,然后進(jìn)入該目錄執(zhí)行編譯配置源碼命令#echoyes|./configure-opensource-embeddedarm–xplatformqws/linux-arm-g++-no-webkit-qt-libtiff-qt-libmng-qt-mouse-tslib-qt-mouse-pc-no-mouse-linuxtp-no-neon.其中編譯ARM平臺的embedded版本配置參數(shù)為embeddedarm,使用arm-linux交叉編譯器進(jìn)行編譯為xplatformqws/linuxarm-g++,qt-mouse-tslib是使用tslib來驅(qū)動觸摸屏。然后執(zhí)行make命令進(jìn)行編譯,當(dāng)編譯完成之后執(zhí)行安裝命令makeinstall.最后把安裝文件打包#tarcvzfqt4.7.tgz,下載到ARM開發(fā)板,并解壓到指定目錄。至此Qt/E在ARM開發(fā)板上移植完成。
安裝Linux環(huán)境下X86版QtSDK軟件-QtCreator2.0進(jìn)行Qt程序開發(fā),設(shè)置為支持Qt4.7ARM的交叉編譯。最后將設(shè)計好的程序通過編譯,生產(chǎn)二進(jìn)制文件下載到ARM開發(fā)板運(yùn)行,以此實現(xiàn)HMI界面顯示功能。
3車載HMI終端的硬件設(shè)計
3.1CAN/RS232協(xié)議轉(zhuǎn)換器的硬件設(shè)計
CAN/RS232協(xié)議轉(zhuǎn)換器主要有主控制器、CAN接口模塊與RS232接口模塊組成,其中主控制器采用STC89C52單片機(jī)負(fù)責(zé)處理CAN總線與RS232總線的數(shù)據(jù)接收與發(fā)送,實現(xiàn)兩種不同協(xié)議數(shù)據(jù)幀的透明轉(zhuǎn)換與傳輸。
CAN接口模塊采用Philips公司的CAN控制器SJA1000和CAN收發(fā)器PCA82C250芯片組成,主要實現(xiàn)CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能。其中CAN控制器完成數(shù)據(jù)鏈路層功能,實現(xiàn)與主控制器的信息讀寫操作,物理層通過CAN收發(fā)器實現(xiàn)電平轉(zhuǎn)換和傳輸。SJA1000的AD0~AD7與單片機(jī)P0口連接,實現(xiàn)地址/數(shù)據(jù)復(fù)用;片選/CS與P2.7相連,則基地址為0x7F00;/RD、/WD、ALE引腳依次與單片機(jī)各引腳相連;中斷/INT接單片機(jī)/INT0,因此可通過中斷方式對SJA1000進(jìn)行實時訪問。SJA1000的MODE引腳用于選擇CAN控制器在Intel模式還是在Motorola模式工作。由于STC89C52屬于Intel系列微控制器,故MODE引腳接+5V高電平設(shè)置為Intel模式,以滿足89C52的讀寫時序要求。為了增強(qiáng)節(jié)點的抗干擾能力,以及避免當(dāng)CAN收發(fā)器失效時出現(xiàn)過流導(dǎo)致CAN控制器擊穿,SJA1000的TX0和RX0引腳通過光耦N6137后與PCA82C250的TXD和RXD連接,以此實現(xiàn)總線上節(jié)點間電器隔離;收發(fā)器CAN_H和CAN_L引腳通過5Ω電阻與CAN總線端口連接起到限流作用;同時兩端接120Ω終端匹配電阻。
RS232接口電路采用MAX232芯片,實現(xiàn)單片機(jī)串口TTL電平與RS232電平相互轉(zhuǎn)換,完成HMI終端UART口的信息傳輸。STC89C52串口端(P3.0和P3.1)與MAX232的T1IN和R1OUT連接,T1OUT與R1IN接九針串口,然后通過交叉線與HMI終端連接實現(xiàn)數(shù)據(jù)通信。
c++相關(guān)文章:c++教程
評論