資源描述:
《出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)與分析 EDA課程設(shè)計(jì).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、第14章出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)與分析14.1系統(tǒng)設(shè)計(jì)要求14.2系統(tǒng)設(shè)計(jì)方案14.3主要源程序14.4系統(tǒng)仿真/硬件驗(yàn)證14.5設(shè)計(jì)技巧分析14.6系統(tǒng)擴(kuò)展思路14.1系統(tǒng)設(shè)計(jì)要求以CPLD/FPGA為主體,設(shè)計(jì)并制作一臺出租車計(jì)費(fèi)系統(tǒng),系統(tǒng)的方框圖如圖14.1所示。1.計(jì)費(fèi)及顯示(1)里程,即汽車行駛里程,用四位數(shù)字顯示,顯示方式為“XXX.X”,單位為km,精確到0.1km。(2)單價(jià),即里程單價(jià),用三位數(shù)字顯示,顯示方式為“X.XX”,單價(jià)為元/km,根據(jù)每天不同的時(shí)間段有兩種情況:當(dāng)時(shí)間段為06:00~23:00時(shí)單價(jià)為1.40元/km,其他時(shí)間段內(nèi)單價(jià)為1.80元/km。(3)等候時(shí)
2、間,用四位數(shù)字顯示分鐘和秒,顯示方式為“XX:XX”,等候的定義是:當(dāng)汽車行駛速度小于或等于12km/h時(shí)為“等候”。(4)等候單價(jià),等候單價(jià)有兩種情況:在等候時(shí)間小于1小時(shí)的情況下,等候單價(jià)為1元每5分鐘;在等候時(shí)間大于1小時(shí)的情況下,等候單價(jià)為20元每小時(shí)。(5)費(fèi)用的計(jì)算,出租車的起價(jià)為5.00元,當(dāng)里程小于2km時(shí),按起價(jià)計(jì)算費(fèi)用;當(dāng)里程大于2km時(shí)按下式計(jì)算費(fèi)用:費(fèi)用=里程╳里程單價(jià)+等候時(shí)間╳等候單價(jià)(6)費(fèi)用的顯示,用五位數(shù)字顯示,顯示方式為“XXX.XX”,單價(jià)為元。2.時(shí)鐘及顯示當(dāng)出租車在常運(yùn)狀態(tài)下,應(yīng)能顯示當(dāng)前的時(shí)間。在汽車熄火的情況下,時(shí)鐘必須正常運(yùn)行,但是可以不顯示時(shí)
3、鐘。3.計(jì)費(fèi)開始提示當(dāng)出租車載上乘客并起步后,將空車指示牌扳倒時(shí),空車指示牌里的指示燈熄滅,并有語音或燈光提示信號。14.2系統(tǒng)設(shè)計(jì)方案14.2.1系統(tǒng)總體設(shè)計(jì)方案本系統(tǒng)擬采用單片機(jī)和FPGA的結(jié)合進(jìn)行系統(tǒng)的主體設(shè)計(jì),系統(tǒng)原理框圖如圖14.2所示。14.2.2測控FPGA的VHDL程序設(shè)計(jì)?根據(jù)系統(tǒng)的設(shè)計(jì)要求,我們可將整個(gè)測控FPGA系統(tǒng)CZJFXT分為七個(gè)模塊,它們分別是:分頻器模塊FPQ,等待判別模塊DDPB,里程計(jì)算模塊LCJS,里程計(jì)費(fèi)模塊LCJF,等待計(jì)時(shí)模塊DDJS,等待計(jì)費(fèi)模塊DDJF,輸出數(shù)據(jù)選擇模塊SCXZ。其內(nèi)部組成原理圖如圖14.3所示。分頻器模塊FPQ:將外部時(shí)鐘信號
4、SCLK(設(shè)計(jì)時(shí)假設(shè)為200Hz)經(jīng)過適當(dāng)分頻后,產(chǎn)生1Hz的系統(tǒng)工作用基準(zhǔn)時(shí)鐘信號CLK1HZ,供系統(tǒng)中的有關(guān)模塊計(jì)時(shí)用。等待判別模塊DDPB:根據(jù)速度傳感器脈沖信號WCLK和分頻器產(chǎn)生的基準(zhǔn)時(shí)鐘信號CLK1HZ,計(jì)算單位時(shí)間里WCLK的脈沖個(gè)數(shù)(每km產(chǎn)生1000個(gè)脈沖信號,即每米產(chǎn)生1個(gè)脈沖信號),亦即出租車行駛速度,從而判別出租車是否處于等待狀態(tài),發(fā)出等待標(biāo)志信號DDBZ。里程計(jì)算模塊LCJS:根據(jù)速度傳感器脈沖信號WCLK和等待標(biāo)志DDBZ,對出租車行駛的里程數(shù)XSLC進(jìn)行計(jì)算,同時(shí)發(fā)出里程標(biāo)志信號LCBZ和里程計(jì)費(fèi)標(biāo)志信號JFBZ。里程計(jì)費(fèi)模塊LCJF:在計(jì)費(fèi)標(biāo)志信號JFBZ、等
5、待標(biāo)志信號DDBZ、里程標(biāo)志信號LCBZ和時(shí)段標(biāo)志信號XDBZ等信號的控制下,計(jì)算行駛里程超過2km以上里程的費(fèi)用LCFY。等待計(jì)時(shí)模塊DDJS:在等待標(biāo)志信號DDBZ和基準(zhǔn)時(shí)鐘信號CLK1HZ的控制下,進(jìn)行等待時(shí)間DDSJ的計(jì)算,其中DDSJ的低8位表示等待時(shí)間的秒數(shù),DDSJ的高8位表示等待時(shí)間的分鐘數(shù),同時(shí)根據(jù)等待時(shí)間的長短發(fā)出一個(gè)熄燈標(biāo)志信號XDBZ。等待計(jì)費(fèi)模塊DDJF:在等待標(biāo)志信號DDBZ和熄燈標(biāo)志信號XDBZ控制下,進(jìn)行等待費(fèi)用DDFY的計(jì)費(fèi)操作。輸出數(shù)據(jù)選擇模塊SCXZ:根據(jù)單片機(jī)發(fā)出的數(shù)據(jù)傳輸選擇控制信號SEL,選擇有關(guān)計(jì)算處理結(jié)果傳輸給單片機(jī)。SEL與被傳送數(shù)據(jù)的具體關(guān)
6、系如表14.1所示。14.2.3單片機(jī)控制程序設(shè)計(jì)?單片機(jī)模塊包括單片機(jī)AT89C51及其控制的顯示和鍵盤系統(tǒng),控制口如圖14.3(略)所示。AT89C51對FPGA的數(shù)據(jù)進(jìn)行運(yùn)算,計(jì)算出用車總費(fèi)用并送顯示系統(tǒng)顯示,同時(shí)它接收鍵盤信息并處理顯示切換。系統(tǒng)采用6+1顯示,6個(gè)數(shù)碼管作常規(guī)顯示,一個(gè)數(shù)碼管作狀態(tài)顯示。按鍵共有5個(gè),分別是功能切換鍵、確定鍵、修改鍵、啟動(dòng)模擬鍵和空車牌壓下模擬鍵。涉及的主要流程圖如圖14.4~14.8所示。14.3主要源程序14.3.1主要VHDL源程序1.分頻器模塊FPQ的VHDL源程序--FPQ.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_
7、1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYFPQISPORT(SCLK:INSTD_LOGIC;--SCLK=200HzCLK1HZ:OUTSTD_LOGIC);--CLK1HZ=1HzENDENTITYFPQ;ARCHITECTUREARTOFFPQISSIGNALCNT100:INTEGERRANGE