汽車駕駛模擬器單片機系統(tǒng)設(shè)計
引言
本文引用地址:http://butianyuan.cn/article/173897.htm汽車駕駛模擬器是一種能正確模擬汽車的駕駛操縱動作,獲得實車駕駛感覺的仿真系統(tǒng)。目前的汽車駕駛模擬器集合了傳感器、計算機三維實時動畫、計算機接口、人工智能、數(shù)據(jù)通信、網(wǎng)絡(luò)、多媒體等多種先進(jìn)技術(shù),主要用于駕駛員的培訓(xùn),也可以對微觀交通進(jìn)行仿真,對汽車的控制特性進(jìn)行研究[1]。汽車駕駛模擬器具有安全性高、再現(xiàn)性好的特點。利用駕駛模擬器來進(jìn)行研究和訓(xùn)練,可方便地模擬各種道路環(huán)境、天氣狀況,分析汽車的技術(shù)性能指標(biāo),從而可以節(jié)省大量的自然資源,具有很高的經(jīng)濟價值[2]。
在汽車駕駛模擬器中,傳感控制系統(tǒng)的性能直接影響到整個汽車駕駛模擬系統(tǒng)的交互性和實時性,是衡量汽車駕駛模擬器實用性能的重要指標(biāo)。傳感控制系統(tǒng)主要由各種傳感器、數(shù)據(jù)采集和處理系統(tǒng)、以及接口電路等組成。其中,數(shù)據(jù)采集和處理系統(tǒng)是整個傳感控制系統(tǒng)的核心。目前,很多汽車駕駛模擬器采用數(shù)據(jù)采集卡實現(xiàn)操縱數(shù)據(jù)的采集,這種基于數(shù)據(jù)采集卡的數(shù)據(jù)采集和處理系統(tǒng)成本相對較高,采集模擬量時不是很穩(wěn)定,必須在仿真程序中采用專門的算法對模擬量進(jìn)行處理,同時接口的數(shù)量也很有限,這為后續(xù)的開發(fā)帶來了一些困難。而基于單片機的數(shù)據(jù)采集系統(tǒng)雖然開發(fā)周期較長,但成本相對較低,接口的可擴展性好,同時,模擬量和開關(guān)量的預(yù)處理工作也可以由單片機來完成,完全可以滿足模擬器系統(tǒng)的交互性和實時性要求。下面介紹汽車駕駛模擬器單片機系統(tǒng)的設(shè)計思路。
1系統(tǒng)的工作原理
在模擬汽車運動時,傳感器采集駕駛員的操縱數(shù)據(jù),通過接口電路對這些信號進(jìn)行放大和濾波,并對其中的模擬信號進(jìn)行A/D轉(zhuǎn)換,最后單片機系統(tǒng)將控制信號通過RS-232接口傳送給主控計算機。在仿真程序中,計算機根據(jù)控制信號、汽車的運動狀態(tài)、駕駛操作規(guī)則等來控制視景系統(tǒng)、音響系統(tǒng)、儀表系統(tǒng)、評價系統(tǒng)。利用單片機系統(tǒng)驅(qū)動程序中相應(yīng)的功能函數(shù),可以將單片機系統(tǒng)采集的信號轉(zhuǎn)換為控制汽車運動狀態(tài)和位置的參數(shù)。當(dāng)駕駛員進(jìn)行模擬駕駛時,單片機系統(tǒng)采集的數(shù)據(jù)會根據(jù)駕駛員的駕駛操作實時地發(fā)生變化,從而實現(xiàn)對駕駛模擬器視景系統(tǒng)中汽車運動狀態(tài)和位置的控制,控制系統(tǒng)的精度由仿真程序內(nèi)部的算法保證。
圖1 系統(tǒng)的工作流程
汽車駕駛過程的基本操縱部件是方向盤、油門、離合器、剎車和檔位,另外還有點火開關(guān)、轉(zhuǎn)向指示燈等輔助性操縱部件。與實車駕駛相同,這些操縱部件的協(xié)同工作可以對虛擬視景中的汽車模型進(jìn)行控制,駕駛訓(xùn)練者與視景的變化是實時的、交互的。駕駛訓(xùn)練者對操縱部件的操作通過傳感器被系統(tǒng)感知后,系統(tǒng)經(jīng)過處理和運算得到汽車模型的控制參數(shù),最后根據(jù)這些參數(shù)控制視景系統(tǒng)的渲染輸出,駕駛訓(xùn)練者就在虛擬視景中實時地觀察到所駕駛車輛的運行情況。系統(tǒng)的工作流程如圖1所示。
2 單片機系統(tǒng)的設(shè)計
2.1 傳感器的選擇
汽車駕駛模擬器主要的控制信號如表1所示。
汽車駕駛模擬器主要有方向盤、離合器、制動器、油門、6個擋位、手剎等信號需要采集,使用的傳感器包括開關(guān)傳感器、位移傳感器、角位移傳感器三類[3]。方向盤采用角位移傳感器;離合器、剎車、油門采用位移傳感器;點火、手剎、換檔等采用開關(guān)傳感器。
經(jīng)過綜合考察與比較后,選用TWZ型直流位移傳感器、QXJ-BZ-V型角位移傳感器、ITR8102型對射式光電開關(guān)分別作為線位移量、角位移量以及開關(guān)量傳感器。其中,TWZ型直流位移傳感器的分辨率為10μm,QXJ-BZ-V型角位移傳感器的分辨率為0.01o,ITR8102型對射式光電開關(guān)的響應(yīng)時間為20μs。實踐證明,所選的傳感器完全滿足了汽車駕駛模擬器的控制要求,取得了較好的效果。
2.2硬件電路的設(shè)計
汽車駕駛模擬器傳感控制系統(tǒng)需要完成開關(guān)量和模擬量的采集與處理,指示燈與儀表的顯示控制,以及與主控計算機之間進(jìn)行數(shù)據(jù)傳輸?shù)裙δ堋8鶕?jù)以上要求,主控芯片選用Atmel公司生產(chǎn)的AT89C52, AT89C52是一種低電壓,高性能的CMOS 8位單片機,與標(biāo)準(zhǔn)MCS-51產(chǎn)品的引腳和指令系統(tǒng)完全兼容[4]。
AT89C52片內(nèi)含8K的閃爍可編程可擦除只讀存儲器(FPEROM),256 B的內(nèi)部隨機數(shù)據(jù)存儲器(RAM),已經(jīng)可以滿足本系統(tǒng)程序設(shè)計的需要,因此不需要進(jìn)行外部程序存儲器和數(shù)據(jù)存儲器的擴展。
由于本系統(tǒng)中需要處理的開關(guān)量和模擬量較多,因此選用8255對輸入輸出接口進(jìn)行了擴展。將AT89C52的P1口作為A/D、D/A轉(zhuǎn)換接口,用于模擬量的輸入和輸出,A/D、D/A轉(zhuǎn)換芯片分別選用ADC0809和DAC0832,片選信號由高位地址線P2口提供。8255的擴展接口用作開關(guān)量的輸入和輸出,8255的端口選擇和片選信號由經(jīng)74LS373鎖存后的低位地址線提供。
另外,AT89C52還提供了一個具有多級 通訊功能的全雙工串行接口,可以用作與主控計算機之間進(jìn)行通訊。由于RS-232串行通信端口是PC機的標(biāo)準(zhǔn)接口,而且RS-232用作雙向數(shù)據(jù)通信時接線十分簡潔,因此選用RS-232作為通訊接口[4]。但是,RS-232的輸出信號不但有正電壓,還有負(fù)電壓,所以選用半導(dǎo)體公司的RS-232接口芯片MAX232實現(xiàn)信號轉(zhuǎn)換。圖2為汽車駕駛模擬器單片機系統(tǒng)硬件電路簡圖。
圖2 系統(tǒng)硬件電路簡圖
2.3軟件系統(tǒng)的設(shè)計
汽車駕駛模擬器單片機軟件系統(tǒng)需要完成模擬量和開關(guān)量的采集和處理、串行數(shù)據(jù)的發(fā)送與接收、控制信號的輸出與顯示、故障的監(jiān)控與保護等功能。軟件采用模塊化設(shè)計思想,通過匯編語言編制而成,主要由主程序、定時器中斷服務(wù)程序、串行口中斷服務(wù)程序、數(shù)據(jù)采集和處理程序、信號的輸出與顯示程序等幾部分構(gòu)成。
圖3 軟件系統(tǒng)程序流程圖
主程序主要完成系統(tǒng)的初始化工作;定時器中斷服務(wù)程序主要完成看門狗功能,在單片機發(fā)生異常情況時,能使程序及時復(fù)位,保證單片機系統(tǒng)能夠正常工作;串行口中斷服務(wù)程序主要實現(xiàn)單片機與主控計算機之間的通訊;數(shù)據(jù)采集和處理程序主要完成模擬量和開關(guān)量的采集,獲取駕駛員的操控數(shù)據(jù);信號的輸出與顯示程序?qū)⒅骺赜嬎銠C的控制信息傳送給單片機,用于控制指示燈和儀表的顯示輸出。圖3為汽車駕駛模擬器單片機軟件系統(tǒng)的程序流程圖。
3結(jié)論
基于單片機的數(shù)據(jù)采集系統(tǒng)成本相對較低,接口的可擴展性好,同時,模擬量和開關(guān)量的預(yù)處理工作也可以由單片機來完成。系統(tǒng)完全可以滿足汽車駕駛模擬器的交互性和實時性要求,已在所開發(fā)的汽車駕駛模擬器中得到了應(yīng)用,取得了較好的效果。
評論