日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

基于ARM 和Qt/E的車(chē)載HMI終端的設(shè)計(jì)方案

出處:劉遠(yuǎn)進(jìn) 發(fā)布于:2012-04-26 09:55:47

  摘要:車(chē)載HMI是人與車(chē)輛之間的關(guān)鍵設(shè)備,使人能夠?qū)?chē)輛的運(yùn)行實(shí)現(xiàn)控制;設(shè)計(jì)了一種觸摸控制與數(shù)字顯示合理結(jié)合的車(chē)載HMI終端,采用ARM 作為處理器,通過(guò)移植Qt/E對(duì)系統(tǒng)加以實(shí)現(xiàn);該終端通過(guò)在Polo車(chē)CAN總線試驗(yàn)臺(tái)測(cè)試,實(shí)現(xiàn)了對(duì)基本設(shè)備的觸摸控制和車(chē)輛狀態(tài)信息的實(shí)時(shí)顯示,表明所設(shè)計(jì)的終端能夠滿(mǎn)足車(chē)載HMI的基本要求。

  0 引言

  改善HMI (Human Machine Interface)終端性能可降低車(chē)輛控制系統(tǒng)操作的復(fù)雜性,也可提高駕駛員對(duì)自己車(chē)輛的控制力。車(chē)載HMI通過(guò)單一結(jié)構(gòu)中控臺(tái),可以減少零部件數(shù)量,提高性?xún)r(jià)比。傳統(tǒng)機(jī)械式的控制終端正在逐步向直觀、便捷的HMI終端發(fā)展。2009年6月29日,美國(guó)汽車(chē)多媒體與通信研究服務(wù)公司Strategy Analytics發(fā)布研究,認(rèn)為"車(chē)載人機(jī)界面市場(chǎng)者保持強(qiáng)勢(shì)地位".預(yù)測(cè),2015年,車(chē)載語(yǔ)音和觸摸屏市場(chǎng)規(guī)模將達(dá)到29 億美元。目前,HMI設(shè)備,尤其是語(yǔ)音、觸覺(jué)控制和觸摸屏,在汽車(chē)市場(chǎng)上被大量應(yīng)用。

  本文了一種基于觸摸控制與數(shù)字顯示理念的車(chē)載HMI終端,通過(guò)在ARM 上移植Qt/E接TFT-LCD觸摸面板加以實(shí)現(xiàn)。

  1 系統(tǒng)結(jié)構(gòu)介紹

  基于ARM 和Qt/E的車(chē)載HMI終端主要由兩個(gè)模塊組成,分別是ARM 處理器與觸摸顯示屏組成的HMI觸控平臺(tái)和CAN/RS232協(xié)議轉(zhuǎn)換器模塊。該終端可接入車(chē)載CAN網(wǎng)絡(luò)中實(shí)現(xiàn)車(chē)載設(shè)備的觸摸控制與狀態(tài)信息顯示。其結(jié)構(gòu)框圖如圖1所示。

圖1 車(chē)載HMI終端結(jié)構(gòu)

圖1 車(chē)載HMI終端結(jié)構(gòu)

  HMI觸控平臺(tái)主要是將Qt/E交叉編譯后移植到ARM 平臺(tái),調(diào)用GUI在觸摸面板顯示。通過(guò)點(diǎn)擊觸控界面發(fā)送控制字,經(jīng)CAN/RS232網(wǎng)關(guān)發(fā)送到CAN網(wǎng)絡(luò)中對(duì)各設(shè)備進(jìn)行控制,同時(shí)實(shí)時(shí)采集各設(shè)備運(yùn)行狀態(tài)參數(shù)并顯示,便于駕駛員及時(shí)了解車(chē)輛運(yùn)行狀態(tài)。該平臺(tái)還預(yù)留了UART和USB端口分別可外接GPS模塊,無(wú)線上網(wǎng)卡或U 盤(pán)設(shè)備,實(shí)現(xiàn)導(dǎo)航、無(wú)線上網(wǎng)和多媒體播放功能。

  CAN/RS232協(xié)議轉(zhuǎn)換模塊主要由MCU、CAN 接口與UART接口組成,其中CAN 接口采用CAN 控制器SJA1000和CAN收發(fā)器PCA82C250設(shè)計(jì),RS232接口采用MAX232設(shè)計(jì),以此實(shí)現(xiàn)兩種不同總線協(xié)議數(shù)據(jù)幀的透明轉(zhuǎn)換,是HMI終端與CAN網(wǎng)絡(luò)中各設(shè)備交互的紐帶。

  車(chē)載CAN網(wǎng)絡(luò)模塊主要以Polo車(chē)CAN 試驗(yàn)臺(tái)為平臺(tái),試驗(yàn)臺(tái)集成了車(chē)燈、電動(dòng)車(chē)窗、雨刷和后視鏡CAN 節(jié)點(diǎn)模塊。

  2 Qt/E在ARM 上的移植

  Qt/E是Trolltech公司專(zhuān)為嵌入式Linux系統(tǒng)開(kāi)發(fā)的圖像用戶(hù)界面(GUI)工具包。提供了窗口操作系統(tǒng)、開(kāi)發(fā)環(huán)境、工作輔助應(yīng)用程序和個(gè)性選項(xiàng)等,是基于C++ 可跨平臺(tái)的GUI應(yīng)用程序框架;還提供給開(kāi)發(fā)者建立藝術(shù)級(jí)GUI所需的功能,開(kāi)發(fā)者可根據(jù)需求定制整個(gè)軟件解決方案。目前,眾多手機(jī)、PDA、機(jī)頂盒都采用Qt作為圖形引擎。因此,選擇了Qt/E作為HMI終端的開(kāi)發(fā)工具。

  2.1 交叉編譯環(huán)境的搭建

  采用宿主機(jī)Fedora9.0作為開(kāi)發(fā)平臺(tái),移植ARM 版Qt/E4.7進(jìn)行設(shè)計(jì)。因編譯Linux內(nèi)核和Qt/E都需要交叉編譯工具鏈,交叉編譯器版本過(guò)高過(guò)低都會(huì)與Qt/E4.7不兼容,終導(dǎo)致安裝失敗,所以一定要根據(jù)Qt的版本來(lái)選擇對(duì)應(yīng)的編譯器。本系統(tǒng)采用arm-linux-gcc-4.5.1.安裝過(guò)程如下:

  首先,解壓arm-linux-gcc-4.5.1安裝包,運(yùn)行#tarxvzf arm-linux-gcc-4.5.1.tgz命令;然后將編譯器所在路徑加入系統(tǒng)環(huán)境變量,運(yùn)行#gedit/root/.bashrc編輯該文件,修改一行為export PATH=PATH:/usrt/local/arm/4.5.1/binPATH,此時(shí)交叉編譯器已經(jīng)安裝好;執(zhí)行#arm-linux-gcc-v顯示編譯器版本信息,驗(yàn)證是否安裝成功。

  2.2 Qt/E4.7的編譯與移植

  減壓ARM 版Qt/E安裝包到指定目錄,然后進(jìn)入該目錄執(zhí)行編譯配置源碼命令#echo yes | ./configure -opensource-embedded arm –xplatform qws/linux-arm-g++-no-webkit-qt-libtiff-qt-libmng-qt-mouse-tslib-qt-mouse-pc-no-mouse-linuxtp-no-neon.其中編譯ARM 平臺(tái)的embedded版本配置參數(shù)為embedded arm,使用arm-linux交叉編譯器進(jìn)行編譯為xplatform qws/linuxarm-g++,qt-mouse-tslib是使用tslib來(lái)驅(qū)動(dòng)觸摸屏。然后執(zhí)行make命令進(jìn)行編譯,當(dāng)編譯完成之后執(zhí)行安裝命令make install.把安裝文件打包#tar cvzf qt4.7.tgz,到ARM 開(kāi)發(fā)板,并解壓到指定目錄。至此Qt/E在ARM 開(kāi)發(fā)板上移植完成。

  安裝Linux環(huán)境下X86版Qt SDK軟件-Qt Creator2.0進(jìn)行Qt程序開(kāi)發(fā),設(shè)置為支持Qt4.7ARM 的交叉編譯。將設(shè)計(jì)好的程序通過(guò)編譯,生產(chǎn)二進(jìn)制文件到ARM 開(kāi)發(fā)板運(yùn)行,以此實(shí)現(xiàn)HMI界面顯示功能。

  3 車(chē)載HMI終端的硬件設(shè)計(jì)

  3.1 CAN/RS232協(xié)議轉(zhuǎn)換器的硬件設(shè)計(jì)

  CAN/RS232協(xié)議轉(zhuǎn)換器主要有主控制器、CAN接口模塊與RS232接口模塊組成,其中主控制器采用STC89C52單片機(jī)負(fù)責(zé)處理CAN總線與RS232總線的數(shù)據(jù)接收與發(fā)送,實(shí)現(xiàn)兩種不同協(xié)議數(shù)據(jù)幀的透明轉(zhuǎn)換與傳輸。

  CAN接口模塊采用Philips公司的CAN 控制器SJA1000和CAN收發(fā)器PCA82C250芯片組成,主要實(shí)現(xiàn)CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能。其中CAN控制器完成數(shù)據(jù)鏈路層功能,實(shí)現(xiàn)與主控制器的信息讀寫(xiě)操作,物理層通過(guò)CAN收發(fā)器實(shí)現(xiàn)電平轉(zhuǎn)換和傳輸。SJA1000的AD0~AD7與單片機(jī)P0口連接,實(shí)現(xiàn)地址/數(shù)據(jù)復(fù)用;片選/CS與P2.7相連,則基地址為0x7F00;/RD、/WD、ALE引腳依次與單片機(jī)各引腳相連;中斷/INT接單片機(jī)/INT0,因此可通過(guò)中斷方式對(duì)SJA1000進(jìn)行實(shí)時(shí)訪問(wèn)。SJA1000的MODE 引腳用于選擇CAN控制器在Intel模式還是在Motorola模式工作。由于STC89C52屬于Intel系列微控制器,故MODE引腳接+5V高電平設(shè)置為Intel模式,以滿(mǎn)足89C52的讀寫(xiě)時(shí)序要求。為了增強(qiáng)節(jié)點(diǎn)的抗干擾能力,以及避免當(dāng)CAN收發(fā)器失效時(shí)出現(xiàn)過(guò)流導(dǎo)致CAN控制器擊穿,SJA1000的TX0和RX0引腳通過(guò)光耦N6137后與PCA82C250的TXD和RXD連接,以此實(shí)現(xiàn)總線上節(jié)點(diǎn)間電器隔離;收發(fā)器CAN_H 和CAN_L引腳通過(guò)5Ω電阻與CAN總線端口連接起到限流作用;同時(shí)兩端接120Ω終端匹配電阻。

  RS232接口電路采用MAX232芯片,實(shí)現(xiàn)單片機(jī)串口TTL電平與RS232電平相互轉(zhuǎn)換,完成HMI終端UART口的信息傳輸。STC89C52串口端(P3.0和P3.1)與MAX232的T1IN和R1OUT連接,T1OUT與R1IN接九針串口,然后通過(guò)交叉線與HMI終端連接實(shí)現(xiàn)數(shù)據(jù)通信。

  3.2 車(chē)載HMI觸控平臺(tái)的設(shè)計(jì)

  HMI觸控平臺(tái)以ARM 為處理器,接7.0寸LCD觸摸屏來(lái)實(shí)現(xiàn),可取代傳統(tǒng)的(如圖2A)機(jī)械按鍵與表盤(pán)顯示的中控平臺(tái)。HMI觸控平臺(tái)如圖2B所示,由車(chē)燈、車(chē)窗、后視鏡、多媒體、空調(diào)、導(dǎo)航以及狀態(tài)參數(shù)顯示菜單組成。將該終端嵌入到方向盤(pán),駕駛員可點(diǎn)擊觸控菜單進(jìn)入車(chē)燈、車(chē)窗等控制界面(如圖2C和D)實(shí)現(xiàn)車(chē)燈、車(chē)窗等設(shè)備的觸摸控制,也可實(shí)時(shí)采集與顯示設(shè)備狀態(tài)參數(shù)如:車(chē)速、故障碼等。其中,觸控與顯示數(shù)據(jù)需調(diào)用ARM 底層串口驅(qū)動(dòng)來(lái)實(shí)現(xiàn)讀寫(xiě)操作,觸控界面通過(guò)Button控件的信號(hào)與槽機(jī)制來(lái)實(shí)現(xiàn)數(shù)據(jù)的發(fā)送,狀態(tài)參數(shù)的采集與顯示通過(guò)事件驅(qū)動(dòng)方式實(shí)現(xiàn)。終端可外接GPS模塊實(shí)現(xiàn)導(dǎo)航功能,設(shè)計(jì)了Qt媒體媒體播放器實(shí)現(xiàn)娛樂(lè)功能,也可接入無(wú)線網(wǎng)卡來(lái)實(shí)現(xiàn)無(wú)線上網(wǎng)功能。

圖2 車(chē)載HMI終端

圖2 車(chē)載HMI終端

  4 車(chē)載HMI終端的軟件設(shè)計(jì)

  4.1 CAN/RS232網(wǎng)關(guān)軟件設(shè)計(jì)

  主程序中首先要完成初始化操作, 包括單片機(jī)、SJA1000、RS232通信以及中斷源的初始化。其中SJA1000的初始化是整個(gè)設(shè)計(jì)重要的部分,也是保證CAN 通信的前提??紤]車(chē)輛內(nèi)部網(wǎng)絡(luò)的兼容性,SJA1000配置為Peli模式,支持CAN2.0A和B規(guī)范,實(shí)現(xiàn)標(biāo)準(zhǔn)幀和擴(kuò)展幀兩種報(bào)文傳輸。SJA1000初始化寄存器配置流程如圖3所示。

圖3 SJA1000初始化寄存器配置流程

圖3 SJA1000初始化寄存器配置流程

  為保證數(shù)據(jù)實(shí)時(shí)傳輸,采用中斷方式進(jìn)行數(shù)據(jù)收發(fā)。

  當(dāng)CAN總線有數(shù)據(jù)接收時(shí)SJA1000會(huì)跳入接收中斷函數(shù)將數(shù)據(jù)接收并存儲(chǔ)到接收緩存,根據(jù)數(shù)據(jù)幀頭來(lái)判別數(shù)據(jù)類(lèi)型和所帶數(shù)據(jù)長(zhǎng)度,提取CAN 數(shù)據(jù)拆分為單字節(jié)通過(guò)串口發(fā)送,并在HMI終端顯示;當(dāng)HMI終端有控制字發(fā)送,串口接收中斷函數(shù)將所發(fā)送的控制字依次接收存入接收緩存,并根據(jù)首字節(jié)來(lái)判別所發(fā)數(shù)據(jù)類(lèi)型和長(zhǎng)度,組裝成CAN數(shù)據(jù)幀格式發(fā)送到網(wǎng)絡(luò)中去,以此實(shí)現(xiàn)各節(jié)點(diǎn)的控制。具體流程如圖4所示。

圖4 數(shù)據(jù)接收與發(fā)送流程圖

圖4 數(shù)據(jù)接收與發(fā)送流程圖

  4.2 車(chē)載HMI界面的設(shè)計(jì)

  HMI界面采用Qt Creator2.0來(lái)設(shè)計(jì),因?yàn)镠MI終端是通過(guò)UART接口接入CAN網(wǎng)絡(luò)中,所以通信時(shí)需接上面所介紹的CAN/RS232協(xié)議轉(zhuǎn)換器來(lái)實(shí)現(xiàn)。同時(shí),還需在Linux下編寫(xiě)Qt串口通信程序。

  首先,在Linux下利用open函數(shù)打開(kāi)串口設(shè)備,用tcsetattr函數(shù)來(lái)設(shè)置串口屬性。打開(kāi)驅(qū)動(dòng)設(shè)備UART0進(jìn)行讀寫(xiě)操作:const char*devName= " /dev/ttySAC0";fd = ::

  open (devName,O_RDWR|O_NONBLOCK);設(shè)置波特率等參數(shù):serialAttr.c_cflag= B115200| HUPCL| CS8|CREAD|CLOCAL;serialAttr.c_cc[VMIN]=1;其中串口設(shè)備可使用Linux下I/O函數(shù)進(jìn)行Read和Write操作。但是,在數(shù)據(jù)接收時(shí)當(dāng)數(shù)據(jù)量過(guò)大會(huì)導(dǎo)致界面被阻塞(造成界面假死),于是創(chuàng)建了一個(gè)線程通過(guò)事件驅(qū)動(dòng)實(shí)現(xiàn)數(shù)據(jù)接收。

  Qt中可采用QSocketNotifier類(lèi)來(lái)實(shí)現(xiàn)設(shè)備事件驅(qū)動(dòng)的設(shè)計(jì)要求。QSocketNotifier類(lèi)關(guān)聯(lián)Signal/Slot機(jī)制,當(dāng)有數(shù)據(jù)可讀時(shí)會(huì)觸發(fā)Ativated信號(hào),LCD Number控件Slot會(huì)被調(diào)用來(lái)連接到該信號(hào)并顯示,從而實(shí)現(xiàn)數(shù)據(jù)采集與顯示功能。在數(shù)據(jù)發(fā)送時(shí),可通過(guò)Button控件Signal/Slot調(diào)用QObject對(duì)象的connect()函數(shù)來(lái)實(shí)現(xiàn)[3].當(dāng)按鍵被按下時(shí)觸發(fā)Signal信號(hào),Slot會(huì)調(diào)用pressed ()函數(shù)將定義好的數(shù)據(jù)通過(guò)串口Write函數(shù)發(fā)送到總線上。函數(shù)實(shí)現(xiàn)如下:

  void Glass::on_lu_pressed(){char msg[]= {160,34,16,0};//定義所發(fā)送數(shù)據(jù)myserial->myCom->write(msg,4);//寫(xiě)發(fā)送數(shù)據(jù)}

  通過(guò)QPainter類(lèi)進(jìn)行對(duì)窗體界面和按鍵圖像界面進(jìn)行設(shè)計(jì),達(dá)到美觀的人機(jī)界面。將設(shè)計(jì)好的程序通過(guò)交叉編譯,生產(chǎn)二進(jìn)制文件移植到ARM 中,然后在文件系統(tǒng)中調(diào)用執(zhí)行,終在LCD觸摸屏上顯示,如圖2所示。

  5 系統(tǒng)集成與測(cè)試

  首先將設(shè)計(jì)好的HMI終端通過(guò)交叉串口線與PC機(jī)連接,進(jìn)行相互通信,測(cè)試是否能夠進(jìn)行數(shù)據(jù)收發(fā),測(cè)試成功后通過(guò)CAN/RS232網(wǎng)關(guān)接入Polo車(chē)CAN試驗(yàn)臺(tái)進(jìn)行綜合測(cè)試。試驗(yàn)臺(tái)設(shè)備節(jié)點(diǎn)可通過(guò)觸摸方式控制,同時(shí)可實(shí)時(shí)采集與顯示運(yùn)行狀態(tài)信息,經(jīng)過(guò)多次實(shí)驗(yàn)測(cè)試,運(yùn)行穩(wěn)定可靠,達(dá)到了設(shè)計(jì)要求。

  6 結(jié)束語(yǔ)

  本文所設(shè)計(jì)的車(chē)載HMI終端集車(chē)身控制、儀表顯示、導(dǎo)航、多媒體和無(wú)線上網(wǎng)為一體,簡(jiǎn)化了車(chē)載中控平臺(tái),降低了車(chē)輛控制系統(tǒng)操作的復(fù)雜性。經(jīng)實(shí)驗(yàn)測(cè)試實(shí)現(xiàn)了車(chē)身設(shè)備的觸摸控制,能夠?qū)Ω髟O(shè)備運(yùn)行狀態(tài)信息進(jìn)行采集與顯示。為車(chē)載HMI開(kāi)發(fā)提供了一種可行的設(shè)計(jì)思路與性?xún)r(jià)比更合理的解決方案。

參考文獻(xiàn):

[1]. SJA1000 datasheet http://www.hbjingang.com/datasheet/SJA1000_609075.html.
[2]. PCA82C250 datasheet http://www.hbjingang.com/datasheet/PCA82C250_542618.html.
[3]. MAX232 datasheet http://www.hbjingang.com/datasheet/MAX232_1074207.html.
[4]. TTL datasheet http://www.hbjingang.com/datasheet/TTL_1174409.html.
[5]. CS8 datasheet http://www.hbjingang.com/datasheet/CS8_2332280.html.

關(guān)鍵詞:基于ARM 和Qt/E的車(chē)載HMI終端的設(shè)計(jì)方案

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買(mǎi)家服務(wù):
賣(mài)家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見(jiàn),您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見(jiàn)一經(jīng)采納,將有感恩紅包奉上哦!