出租車系統(tǒng)設計_第1頁
出租車系統(tǒng)設計_第2頁
出租車系統(tǒng)設計_第3頁
出租車系統(tǒng)設計_第4頁
出租車系統(tǒng)設計_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、【精品文檔】如有侵權,請聯系網站刪除,僅供學習與交流出租車系統(tǒng)設計.精品文檔.出租車計費系統(tǒng)設計功能分析本設計主要介紹了出租車計費系統(tǒng)的設計思路和過程,并給出了所涉及的相關知識的詳細介紹。EDA技術應用,單片機的功能及應用,傳感器檢測技術,VHDL編程語言及匯編語言程序,顯示系統(tǒng)設計及按鍵控制,目前,普遍的出租車計費器僅僅具有時鐘,起步價,里程計費,等待計費及顯示幾個功能。其發(fā)展前景是可觀的,將來的產品除具有這些功能外,另外還可增加如下功能:防作弊功能,IC卡付費:顧客能在制定點購買一定額度的顧客IC卡,乘車后可用IC卡付帳,付帳是否成功有相應的提示。車主可定期將總營業(yè)額寫入車主IC卡中,并據

2、此IC卡向所屬公司領取報酬。車票資料打?。侯櫩透顿M后可打印發(fā)票,打印內容包括車主信息和車費信息等。可打印車主總營業(yè)額信息。語音播報:當乘客上車時,可自動問候乘客,當到達目的地,自動播報乘車費用并禮貌再見,表達希望下次乘坐的意思。增加的這些功能將會更好地為乘客服務。計費及顯示 里程,即汽車行程里程,用四位數字顯示,顯示方式為XXX.X,單位為,精確到0.1。 單價,即里程單價,用三位數字顯示,顯示方式為X.XX,單價為元/,根據每天不同的時間段有兩種情況:當時間段為06:0023:00時單價為1.4元/,其他時間段內單價為1.80元/。 等候時間,用四位數字顯示分鐘和秒,顯示方式為XX:XX,等

3、候的定義是:當汽車行駛速度小于或等于12/h時為等候。在等候時間大于1小時的情況下,可以不顯示等候時間,但必須對等候時間進行統(tǒng)計計算。 等候單價,等候單價有兩種情況:在等候時間小于1小時的情況下,等候單價為1元每5分鐘;在等候時間大于1小時的情況下,等候單價為20元每小時。 費用的計算,出租車的起價為5.00元,當里程小于2時,按起價計算費用;當里程大于2時按下式計算費用:費用=里程*里程單價+等候時間*等候單價。 費用的顯示,用五位數字顯示,顯示方式為XXX.XX,單價為元。時鐘及顯示 當出租車在通常運行狀態(tài)下,應能顯示當前的時間,在汽車熄火的情況下,時鐘必須正常運行,但是可以不顯示時鐘.計

4、費開始提示 當出租車載上乘客并起步后,將空車指示牌扳倒時,空車指示牌里的指示燈熄滅,并有語音或燈光提示信號。功能模塊設計 根據系統(tǒng)的設計要求,將整個測控FPGA系統(tǒng)CZJFXT分為七個模塊,它們分別是:分頻器模塊FPQ,等待判別模塊DDPB,里程計算模塊LCJS,里程計費模塊LCJF,等待計時模塊DDJS,等待計費模塊DDJF,輸出數據選擇模塊SCXZ。分頻器模塊FPQ:將外部時鐘信號SCLK(設計時假設為1024HZ)經過適當分頻后,產生1HZ的系統(tǒng)工作用基準時鐘信號CLK1HZ,供給系統(tǒng)中的有關模塊計時用。等待判別模塊DDPB:根據速度傳感器脈沖信號WCLK和分頻器產生的基準時鐘信號CLK

5、1HZ,計算單位時間里WCLK的脈沖個數(每產生1000個脈沖信號,即每米產生1個脈沖信號),亦即出租車行駛速度,從而判別出租車是否處于等待狀態(tài),發(fā)出等待標志信號DDBZ。當速度大于12/H,即速度大于200M/MIN時,出租車處于運行狀態(tài),這時等待標志DDBZ=0;當速度小于等于12/H,即速度小于等于200M/MIN時,出租車處于等待狀態(tài),這時等待標志DDBZ=1。該模塊的VHDL程序設計可分為三個進程:60S周期性跳變信號產生進程,每分鐘行駛距離計算進程,等待標志判別進程。等待標志判別進程就是比較每分鐘WCLK脈沖個數與等待狀態(tài)WCLK脈沖臨界個數200的大小,從而確定DDBZ的賦值。里

6、程計算模塊LCJS:根據速度傳感器脈沖信號WCLK和等待標志DDBZ,對出租車行駛的里程數XSLC進行計算,同時發(fā)出里程標志信號LCBZ和里程計費標志信號JFBZ。如果LCBZ=1,說明行駛距離超過2,里程計費啟動;如果LCBZ=0,說明沒超過2,按起價計費,每行駛1應計費1次,并且計費的啟動信號應是某一時刻,因此每行駛1,計費標志信號JFBZ應跳變1次。該模塊的VHDL程序設計可分為兩個進程:里程計算及標志產生進程,產生計費信號進程。產生計費信號進程就是每行駛10百米(即1)JFBZ由低電平0變?yōu)?,經過一個系統(tǒng)時鐘周期后JFBZ又回復到低電平0,里程計費模塊LCJF就是在JFBZ脈沖信號的

7、上升沿到來時進行計費的加法操作。里程計費模塊LCJF:在計費標志信號JFBZ,等待標志信號DDBZ,里程標志信號LCBZ和時段標志信號SDBZ等信號的控制下,計算行駛里程超過2以上里程的費用LCFY。該模塊的VHDL程序是通過由多個條件控制的加法進程來完成里程計費的,里程計費的條件是在DDBZ=0,并且在JFBZ的上升沿根據SDBZ分別進行加法計費操作。當SDBZ=1時,表示在06:0023:00時段,其單價SD1為1.4元/;當SDBZ=0時,表示其他時段,其單價SD2為1.8元/。如果LCBZ=1,說明行駛距離超過2,里程計費啟動;如果LCBZ=0,說明沒超過2,按起價計費。等待計時模塊D

8、DJS:在等待標志信號DDBZ和基準時鐘信號CLK1HZ的控制下,進行等待時間DDSJ的計算,其中DDSJ的低8位表示等待時間的秒數,DDSJ的高8位表示等待時間的分鐘數,同時根據等待時間的長短發(fā)出一個熄燈標志信號XDBZ。當等待時間小于等于1小時,XDBZ=0,等待時間顯示燈亮;當等待時間大于1小時,XDBZ=1,等待時間顯示不亮。該模塊的VHDL程序是通過一個多層嵌套的加法進程來完成等待計時的。等待計費模塊DDJF:在等待標志信號DDBZ和熄燈標志信號XDBZ控制下,進行等待費用DDFY的計費操作。該模塊的VHDL程序包括兩個進程:60S周期性跳變信號產生進程,等待費用計算進程。等待費用計

9、算的條件是在DDBZ=1并且在60S周期性跳變信號T60S的上升沿,根據XDBZ分別進行加法計費操作。當DDBZ=1且XDBZ=0時,按1元/5分鐘,即20分/分鐘計費;當DDBZ=0且XDBZ=1時,按20元/小時,即33分/分鐘計費。輸出數據選擇模塊SCXZ:根據單片機發(fā)出的數據傳輸選擇控制信號SEL,選擇有關計算處理結果傳輸給單片機。硬件電路設計1.1 系統(tǒng)組成以CPLD/FPGA為主體,設計并制作一臺出租車計費系統(tǒng),系統(tǒng)的方框圖如圖14.1所示。圖1.1 出租車計費系統(tǒng)方框圖1.1.1計費及顯示 (1) 里程,即汽車行駛里程,用四位數字顯示,顯示方式為“XXX.X”,單位為km,精確到

10、0.1 km。 (2) 單價,即里程單價,用三位數字顯示,顯示方式為“X.XX”,單價為元/km,根據每天不同的時間段有兩種情況:當時間段為06:0023:00時單價為1.40元/km,其他時間段內單價為1.80元/km。 (3) 等候時間,用四位數字顯示分鐘和秒,顯示方式為“XX:XX”,等候的定義是:當汽車行駛速度小于或等于12 km/h時為“等候”。 (4) 等候單價,等候單價有兩種情況:在等候時間小于1小時的情況下,等候單價為1元每5分鐘;在等候時間大于1小時的情況下,等候單價為20元每小時。(5) 費用的計算,出租車的起價為5.00元,當里程小于2 km時,按起價計算費用;當里程大于

11、2 km時按下式計算費用: 費用=里程里程單價+等候時間等候單價 (6) 費用的顯示,用五位數字顯示,顯示方式為“XXX.XX”,單價為元。1.1.2 時鐘及顯示 當出租車在常運狀態(tài)下,應能顯示當前的時間。在汽車熄火的情況下,時鐘必須正常運行,但是可以不顯示時鐘。1.1.3 計費開始提示 當出租車載上乘客并起步后,將空車指示牌扳倒時,空車指示牌里的指示燈熄滅,并有語音或燈光提示信號。1.2 系統(tǒng)設計方案 1.2.1 系統(tǒng)總體設計方案 本系統(tǒng)擬采用單片機和FPGA的結合進行系統(tǒng)的主體設計,系統(tǒng)原理框圖如圖1.2所示。圖1.2 出租車計費系統(tǒng)總體原理框圖1.2.2 測控FPGA的VHDL程序設計

12、根據系統(tǒng)的設計要求,我們可將整個測控FPGA系統(tǒng)CZJFXT分為七個模塊,它們分別是:分頻器模塊FPQ,等待判別模塊DDPB,里程計算模塊LCJS,里程計費模塊LCJF,等待計時模塊DDJS,等待計費模塊DDJF,輸出數據選擇模塊SCXZ。其內部組成原理圖如圖1.3所示。 分頻器模塊FPQ:將外部時鐘信號SCLK(設計時假設為200 Hz)經過適當分頻后,產生1 Hz的系統(tǒng)工作用基準時鐘信號CLK1HZ,供系統(tǒng)中的有關模塊計時用。等待判別模塊DDPB:根據速度傳感器脈沖信號WCLK和分頻器產生的基準時鐘信號CLK1HZ,計算單位時間里WCLK的脈沖個數(每km產生1000個脈沖信號,即每米產生

13、1個脈沖信號),亦即出租車行駛速度,從而判別出租車是否處于等待狀態(tài),發(fā)出等待標志信號DDBZ。 里程計算模塊LCJS:根據速度傳感器脈沖信號WCLK和等待標志DDBZ,對出租車行駛的里程數XSLC進行計算,同時發(fā)出里程標志信號LCBZ和里程計費標志信號JFBZ。里程計費模塊LCJF:在計費標志信號JFBZ、等待標志信號DDBZ、里程標志信號LCBZ和時段標志信號XDBZ等信號的控制下,計算行駛里程超過2 km以上里程的費用LCFY。 等待計時模塊DDJS:在等待標志信號DDBZ和基準時鐘信號CLK1HZ的控制下,進行等待時間DDSJ的計算,其中DDSJ的低8位表示等待時間的秒數,DDSJ的高8

14、位表示等待時間的分鐘數,同時根據等待時間的長短發(fā)出一個熄燈標志信號XDBZ。等待計費模塊DDJF:在等待標志信號DDBZ和熄燈標志信號XDBZ控制下,進行等待費用DDFY的計費操作。 輸出數據選擇模塊SCXZ :根據單片機發(fā)出的數據傳輸選擇控制信號SEL,選擇有關計算處理結果傳輸給單片機。SEL與被傳送數據的具體關系如表1.1所示。表1.1 SEL與被傳送數據的關系列表1.2.3 單片機控制程序設計 單片機模塊包括單片機AT89C51及其控制的顯示和鍵盤系統(tǒng),控制口如圖1.3(略 )所示。 AT89C51對FPGA的數據進行運算,計算出用車總費用并送顯示系統(tǒng)顯示,同時它接收鍵盤信息并處理顯示切

15、換。系統(tǒng)采用6+1顯示,6個數碼管作常規(guī)顯示,一個數碼管作狀態(tài)顯示。按鍵共有5個,分別是功能切換鍵、確定鍵、修改鍵、啟動模擬鍵和空車牌壓下模擬鍵。涉及的主要流程圖如圖1.41.8所示。 圖1.4 主程序流程圖圖1.5 鍵處理流程圖圖1.6 經典顯示子程序流程圖 圖1.7 里程顯示子程序流程圖圖1.8 乘車費用顯示子程序流程圖程序清單1.3 主 要 源 程 序 14.3.1 主要VHDL源程序 1分頻器模塊FPQ的VHDL源程序 -FPQ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;

16、 USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY FPQ IS PORT(SCLK: IN STD_LOGIC; -SCLK=200 Hz CLK1HZ: OUT STD_LOGIC); -CLK1HZ=1 Hz END ENTITY FPQ; ARCHITECTURE ART OF FPQ IS SIGNAL CNT100: INTEGER RANGE 0 TO 99; SIGNAL CLK1: STD_LOGIC; BEGIN PROCESS(SCLK)BEGIN IF SCLKEVENT AND SCLK=1 THEN IF CNT100=99 THEN CNT

17、100=0; CLK1=NOT CLK1; ELSE CNT100=CNT100+1; END IF; ELSE CLK1=CLK1; END IF; CLK1HZ=CLK1; END PROCESS; END ARCHITECTURE ART;2等待判別模塊DDPB的VHDL源程序 -DDPB.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY DDPB IS PORT(START,WCLK:IN STD_LOG

18、IC; CLK1HZ:IN STD_LOGIC; DDBZ:OUT STD_LOGIC); END ENTITY DDPB; ARCHITECTURE ART OF DDPB IS SIGNAL T60S:STD_LOGIC; SIGNAL WCLKCOU:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN -產生60 s周期性跳變信號進程 PROCESS(START, CLK1HZ) IS VARIABLE CNT60: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF START=1 THEN CNT60:=00000000; T60S=0;

19、 ELSIF CLK1HZEVENT AND CLK1HZ=1 THEN IF CNT60=00111100 THEN -CNT60=60 T60S=1; CNT60:=00000000; ELSE CNT60: =CNT60+1; T60S=0; END IF; END IF; END PROCESS ; -每分鐘行駛距離計算進程PROCESS(START, WCLK, T60S) IS BEGIN IF START=1 THEN WCLKCOU=00000000; ELSIF WCLKEVENT AND WCLK=1 THEN IF T60S=1 THEN WCLKCOU=00000000

20、; ELSE WCLKCOU=WCLKCOU+1; -距離計算,單位為m END IF; END IF; END PROCESS ; -等待標志判別進程 PROCESS(WCLKCOU,T60S) IS BEGIN IF T60SEVENT AND T60S=1 THEN IF WCLKCOU=11001000 THEN -WCLKCOU=200 DDBZ=1; -等待 ELSE DDBZ=0; -行駛 END IF; END IF; END PROCESS ;END ARCHITECTURE ART;3里程計算模塊LCJS的VHDL源程序 -LCJS.VHD LIBRARY IEEE; US

21、E IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY LCJS IS PORT(START, DDBZ, WCLK: IN STD_LOGIC; XSLC: OUT STD_LOGIC_VECTOR(15 DOWNTO 0); LCBZ,JFBZ:OUT STD_LOGIC); END ENTITY LCJS; ARCHITECTURE ART OF LCJS IS SIGNAL BMS:STD_LOGIC_VECTOR(15 DOWNTO 0); SIG

22、NAL BMS1: INTEGER RANGE 0 TO 99999; SIGNAL JFBZ1: STD_LOGIC; BEGIN -里程計算及標志產生進程PROCESS(START,WCLK)運行結果說明 系統(tǒng)聯合調試成功后,可將單片機程序通過編程器固化到單片機中,并插入到EDA實驗開發(fā)系統(tǒng)中的單片機插座上,將VHDL設計經過綜合適配后的網表對CPLD/FPGA進行編程下載,輸入相關的信號,并進行有關性能指標的測試,直到滿足系統(tǒng)的設計要求為止。 本系統(tǒng)的顯示系統(tǒng)共設置了7各數碼管,其中6個作為常規(guī)顯示,另一個是狀態(tài)顯示,顯示情形如下:當狀態(tài)顯示為A時,是當前時間顯示,顯示方式為“XX.XX.XX”;當狀態(tài)顯示為D時,是里程單價顯示,顯示方式為“X.XX”,單位為元、km;當狀態(tài)顯示為L時,是全程里程顯示,顯示方式為“XXX.X”,單位為km;當狀態(tài)顯示為F時,是用車費用顯示,顯示方式為“XXX.XX”,單位為元;當狀態(tài)顯示為H時,是等候時間顯示,顯示方式為“XX.XX”,即分和秒;總 結經過這半個學期的努力,在老師和同學的幫助下做

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論