版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 摘要</b></p><p> 隨著我國經(jīng)濟社會的全面發(fā)展,各大中小城市的出租車營運事業(yè)發(fā)展迅速,出租車已經(jīng)成為人們?nèi)粘3鲂羞x擇較為普通的交通工具。出租車計價器是出租車營運收費的專用智能化儀表,是使出租車市場規(guī)范化、標準化的重要設(shè)備。一種功能完備,簡單易用,計量準確的出租車計價器是加強出租車行業(yè)管理,提高服務(wù)質(zhì)量的必需品。本設(shè)計采用VHDL硬件描述語言作為設(shè)計
2、手段,采用自頂向下的設(shè)計思路,得到一種出租車計價系統(tǒng)的軟件結(jié)構(gòu),通過QuartusⅡ軟件下進行仿真,證明所設(shè)計的電路系統(tǒng)完成了出租車計價的功能,各項指標符合設(shè)計要求。該設(shè)計雖然功能簡單,智能化水平比較低,但仍具有一定的實用性。</p><p> 該設(shè)計是在VHDL的基礎(chǔ)上對出租車計價器進行設(shè)計來實現(xiàn)其基本功能的,與以往的基于單片機的數(shù)?;旌想娐废啾龋現(xiàn)PGA具有穩(wěn)定性好,抗干擾能力強等優(yōu)點,且非常適合做為出租車
3、計價器的控制核心,所以選擇用VHDL來對計價器進行設(shè)計來實現(xiàn)其功能。</p><p> 關(guān)鍵詞 : 計價器 QuartusⅡ 數(shù)碼管</p><p><b> 一、設(shè)計目的和要求</b></p><p> 設(shè)計一個出租車計價器,該計價器計費系統(tǒng)技術(shù)參數(shù)和設(shè)計要求:</p><p> ?。?)實現(xiàn)計費功
4、能,計費標準為:起步均價6元,并在車行駛3公里后以每公里1.6元計費,當計費器達到或超過20元時,每公里加收50%的車費,車輛停止和暫停時不收費。計價范圍:0—999.9元,計價分辨率:0.01元;計程范圍:0—99公里,計程分辨率:0.01公里。</p><p> ?。?)數(shù)碼管動態(tài)顯示功能,能顯示行駛公里數(shù)、總費用。</p><p> ?。?)汽車具有啟動、停止、暫停和換擋等狀態(tài)。&l
5、t;/p><p><b> 二、設(shè)計原理</b></p><p><b> 1設(shè)計模塊</b></p><p> 本設(shè)計是對出租車計價器的四個模塊進行分析的,綜述如下:</p><p> 分頻模塊:分頻模塊是其它模塊的基礎(chǔ),輸入時鐘選為32Hz,分頻后的時鐘頻率為1Hz,為后續(xù)模塊提供基本時鐘。
6、</p><p> 路程模塊:該模塊是對車輛行駛路程進行計數(shù),以1Hz時鐘為基礎(chǔ),檢測行程脈沖,路程模塊中有內(nèi)部變量來判斷路程,當大于3公里、20公里時,分別有相應(yīng)的使能信號對此作出記錄,最大路程顯示為99公里。</p><p> 計費模塊:該模塊是基于等待時間模塊和路程模塊對費用進行控制的。通過內(nèi)部使能信號分別計算3公里以內(nèi)、3-20公里以及20公里以后的費用。</p>
7、<p> 譯碼顯示模塊:該模塊經(jīng)過8選1選擇器將計費數(shù)據(jù)(4位BCD碼)、計時數(shù)據(jù)(2位BCD碼)、計程數(shù)據(jù)(2位BCD碼)動態(tài)選擇輸出。</p><p> 本設(shè)計是基于VHDL進行編程,然后在QuartusⅡ進行波形仿真,實現(xiàn)出租車計價器的基本功能。</p><p><b> 2原理描述 </b></p><p>
8、根據(jù)層次化設(shè)計理論,該設(shè)計問題自頂向下可分為分頻模塊,控制模塊 計量模塊、譯碼和動態(tài)掃描顯示模塊,其系統(tǒng)框圖如圖6-63所示,各模塊功能如下:</p><p> 圖6-63出租車自動計費器系統(tǒng)框圖</p><p><b> 2.1分頻模塊</b></p><p> 分頻模塊對頻率為240Hz的輸入脈沖進行分頻,得到的頻率為16Hz,10H
9、z和1Hz的三種頻率。該模塊產(chǎn)生頻率信號用于計費,每個1HZ脈沖為0.1元計費控制,10HZ信號為1元的計費控制,16Hz信號為1.6元計費控制。</p><p> 2.2 路程和計費模塊</p><p> 計量控制模塊是出租車自動計費器系統(tǒng)的主體部分,該模塊主要完成等待計時功能、計價功能、計程功能,同時產(chǎn)生3分種的等待計時使能控制信號en1, 行程 3公里外的使能控制信號en0。其中
10、計價功能主要完成的任務(wù)是:行程 3公里內(nèi),且等待累計時間3分鐘內(nèi),起步費為8元;3公里外以每公里1.6元計費,等待累計時間3分鐘外以每分鐘1元計費;計時功能主要完成的任務(wù)是:計算乘客的等待累計時間,計時器的量程為59分,滿量程自動歸零;計程功能主要完成的任務(wù)是:計算乘客所行駛的公里數(shù)。計程器的量程為99公里,滿量程自動歸零。</p><p> 2.3 譯碼顯示模塊</p><p> 該
11、模塊經(jīng)過8選1選擇器將計費數(shù)據(jù)(4位BCD碼)、計時數(shù)據(jù)(2位BCD碼)、計程數(shù)據(jù)(2位BCD碼)動態(tài)選擇輸出。其中計費數(shù)據(jù)jifei4~ jifei1~送入顯示譯碼模塊進行譯碼,最后送至百元、十元、元、角為單位對應(yīng)的數(shù)碼管上顯示,最大顯示為999.9元;計時數(shù)據(jù)送入顯示譯碼模塊進行譯碼,最后送至分為單位對應(yīng)的數(shù)碼管上顯示,最大顯示為59秒;計程數(shù)據(jù)送入顯示譯碼模塊進行譯碼,最后送至以公里為單位的數(shù)碼管上顯示,最大顯示為99公里。<
12、;/p><p><b> 三、設(shè)計內(nèi)容</b></p><p><b> 1設(shè)計思路</b></p><p> 輸入2個時鐘信號,分別模擬時間和路程。對等待時間、路程計數(shù),進而統(tǒng)計費用。系統(tǒng)結(jié)構(gòu)框圖如圖2-1。</p><p> 圖2-1自動計價器的系統(tǒng)方框圖</p><p&
13、gt;<b> 2 設(shè)計流程圖</b></p><p> 乘客上車后,按下啟動按鈕,計價器開始工作,首先進入初始化狀態(tài),即計程從0開始,計費從6開始。再根據(jù)單程信號判斷是否為單程,進而確定計費方式。單程:里程計數(shù)器開始計數(shù),當路程超過3公里時,計費開始累加,按1.6元每公里計算,路程超過20公里時每公里2.4元。乘客下車后,按下復(fù)位鍵,則所有計數(shù)器進入初始狀態(tài)。</p>&
14、lt;p><b> 3總體設(shè)計封裝圖</b></p><p> 總體設(shè)計封裝圖如下圖所示。</p><p><b> 4模塊設(shè)計</b></p><p><b> 4.1分頻模塊</b></p><p> 秒分頻模塊對頻率為240Hz的輸入脈沖進行分頻,得到的頻
15、率為16Hz,15Hz和1Hz的三種頻率。該模塊產(chǎn)生頻率信號用于計費,每個1HZ脈沖為0.1元計費控制,15HZ信號為1.5元的計費控制,16Hz信號為1.6元計費控制。</p><p><b> 4.2計費模塊</b></p><p> 控制模塊是系統(tǒng)的核心部分,對計價器的狀態(tài)進行控制。</p><p> 行程3公里內(nèi),起步費為8元;3
16、公里外以每公里1元計費,等待累計時間1分鐘外以每分鐘1元計費。20公里外以每公里1.5元計費,等待累計時間1分鐘外以每分鐘1.5元計費。計費數(shù)據(jù)送入顯示譯碼模塊進行譯碼,最后送至以百元、十元、元、角為單位對應(yīng)的數(shù)碼管上顯示。</p><p><b> 4.3譯碼顯示模塊</b></p><p> 譯碼顯示模塊完成計價、計時、計程數(shù)據(jù)顯示。</p>&
17、lt;p> 該模塊經(jīng)過8選1選擇器將計費數(shù)據(jù)(4位BCD碼)、計時數(shù)據(jù)(2位BCD碼)、計程數(shù)據(jù)(2位BCD碼)動態(tài)選擇輸出。其中計費數(shù)據(jù)送入顯示譯碼模塊進行譯碼,最后送至百元、十元、元、角為單位對應(yīng)的數(shù)碼管上顯示,最大顯示為999.9元;計時數(shù)據(jù)送入顯示譯碼模塊進行譯碼,最后送至分為單位對應(yīng)的數(shù)碼管上顯示,最大顯示為99分鐘;計程數(shù)據(jù)送入顯示譯碼模塊進行譯碼,最后送至以公里為單位的數(shù)碼管上顯示,最大顯示為99公里。</p
18、><p> 5系統(tǒng)仿真結(jié)果及分析</p><p><b> 仿真波形圖分析</b></p><p><b> 各信號說明:</b></p><p> 輸入信號:clk:系統(tǒng)時鐘信號,頻率32Hz;</p><p> mile:車速時鐘,頻率8Hz;</p>
19、<p> start::啟動信號,當start=1時,出租車啟動,計數(shù)器開始計數(shù);否則計數(shù)器停止計數(shù);</p><p> rst:復(fù)位信號,當rst=1時,各計數(shù)器清0;當rst=0時,計數(shù)器可以開始計數(shù),start=1表示計數(shù)開始;</p><p> one_way:單程信號,單程時由司機輸入;</p><p> 輸出信號:km0,km1:里程
20、,單位為公里;</p><p> cost0,cost1,cost2,cost3:費用,單位為元,其中cost0表示小數(shù)位。</p><p> 啟動鍵、單程鍵有效,由圖可知,3公里之內(nèi)計費顯示為6元;3-20公里之間每公里1.6元累計;超過20公里每公里2.4元累計。</p><p> 啟動鍵、單程鍵有效,乘客下車時顯示費用25元,復(fù)位信號有效,計數(shù)器清零,當
21、啟動信號有效時重新計數(shù)。</p><p><b> 四、總結(jié)與致謝</b></p><p> 通過為期兩周的課程設(shè)計,出租車計價器系統(tǒng)的設(shè)計已基本完成,能按預(yù)期的效果模擬汽車啟動、等待、停止、復(fù)位等功能,并顯示車費數(shù)目等待時間及行駛路程。出租車計費系統(tǒng)的設(shè)計中體現(xiàn)了VHDL覆蓋面廣,描述能力強,是一個多層次的硬件描述語言及CPLD器件速度快,使用方便,便于修改等特
22、點,本設(shè)計在實用方面具有一定的價值。</p><p> 在本次設(shè)計中還存在很多不足,可以改進的地方目前有以下幾點:</p><p> 一、該設(shè)計雖然實現(xiàn)了基本的計費和計程,但是很多問題并沒有解決,如本設(shè)計只實了一種車速的計費。若要實現(xiàn)出租車的不同檔位下的計程計費,還需要進一步討論。</p><p> 二、該設(shè)計智能化水平較低,啟動、等待、復(fù)位等信號需要人為輸入
23、,若在實際中出現(xiàn)操作偏差,會導(dǎo)致計費不準確。</p><p> 同時,感謝課程設(shè)計過程中楊紅娟老師的耐心指導(dǎo),感謝同學們的相互糾正。</p><p><b> 五、參考文獻</b></p><p> [1] 黃仁欣.EDA技術(shù)實用教程.北京:清華大學出版社,2006</p><p> [2] 潘松,黃繼業(yè).EDA
24、技術(shù)與VHDL.北京:清華大學出版社,2009</p><p> [3] 江國強編著.EDA技術(shù)與應(yīng)用(第三版)..北京:電子工業(yè)出版社,2010</p><p> [4] 夏宇聞編著.Verilog HDL數(shù)字系統(tǒng)設(shè)計教程..北京:北京航空航天大學出版社,2008</p><p> [5] 周祖成,程曉軍,馬卓釗編著.數(shù)字電路與系統(tǒng)教學實驗教程.北京:科學出
25、版社,2010</p><p> [6] 周潤景,蘇良碧.基于Quartus II 的數(shù)字系統(tǒng)Verilog HDL設(shè)計實例詳解.北京:電子工業(yè)出版社,2010</p><p> [7] (美國)Sanir Palnitkar 譯者:夏宇聞 胡燕祥 刁嵐松.Verilog HDL數(shù)字設(shè)計與綜合(第2版).北京:電子工業(yè)出版社,2009</p><p> [8]
26、 云創(chuàng)工作室.Verilog HDL程序設(shè)計與實踐.北京:人民郵電出版社,2009</p><p> [9] 劉福奇,劉波.Verilog HDL應(yīng)用程序設(shè)計實例精講.北京:電子工業(yè)出版社,2009</p><p> [10] 張延偉,楊金巖,葛愛學.verilog hdl程序設(shè)計實例詳解.北京:人民郵電出版社,2008</p><p><b> 附
27、錄(程序源代碼)</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> use ieee.std_logic_arith.all;</p&g
28、t;<p> entity taxi is</p><p> port(clk:in std_logic;</p><p> start:in std_logic;</p><p> wait_signal:in std_logic;</p><p> mile:in std_logic;</p><
29、;p> one_way:in std_logic;</p><p> rst:in std_logic;</p><p> cost0,cost1,cost2,cost3:out std_logic_vector(3 downto 0);</p><p> min0,min1:out std_logic_vector(3 downto 0);</
30、p><p> km0,km1:out std_logic_vector(3 downto 0));</p><p><b> end;</b></p><p> architecture bhv of taxi is</p><p> signal mile_r1,mile_r2,mile_clk,start_r,c
31、lk1hz:std_logic;</p><p> signal count:integer range 0 to 29;</p><p> signal sec:integer range 0 to 59;</p><p> signal c0,c1,c2,c3:std_logic_vector(3 downto 0);</p><p&g
32、t; signal k0,k1,m0,m1:std_logic_vector(3 downto 0);</p><p> signal en0,en1:std_logic;</p><p> signal wait_clk,cost_clk:std_logic;</p><p><b> begin</b></p><
33、;p> U1:process( rst,clk)</p><p><b> begin</b></p><p> if rst='0' then</p><p> if clk'event and clk='1' then</p><p> if count=5 t
34、hen</p><p> count<=0;clk1hz<='1';</p><p><b> else</b></p><p> count<=count+1;clk1hz<='0';</p><p><b> end if;</b>
35、</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p> U2:process(rst,clk1hz,start,wait_signal)</p><p><
36、;b> begin</b></p><p> if rst='1' then</p><p> m0<="0000";m1<="0000";</p><p> elsif start='0'then</p><p> wait_cl
37、k<='0';</p><p> elsif clk1hz'event and clk1hz='1' then</p><p> if wait_signal='1'then</p><p> if sec=5 then</p><p> sec<=0;wait_cl
38、k<='1';</p><p> if m0="1001"then</p><p> m0<="0000";</p><p> if m1="0101"then</p><p> m1<="0000";</p>
39、<p><b> else</b></p><p> m1<=m1+'1';</p><p><b> end if;</b></p><p><b> else </b></p><p> m0<=m0+'1'
40、;;</p><p><b> end if;</b></p><p><b> else </b></p><p> wait_clk<='0';</p><p> sec<=sec+1;</p><p><b> end i
41、f;</b></p><p><b> else</b></p><p> wait_clk<='0';</p><p><b> end if;</b></p><p><b> end if;</b></p><
42、p> end process;</p><p> U3:process( rst,clk1hz,mile,start)</p><p><b> begin</b></p><p> if rst='0' then</p><p> if clk1hz'event and clk1
43、hz='1'then</p><p> mile_r2<=mile_r1;mile_r1<=mile;start_r<=start;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end
44、 process;</p><p> mile_clk<=mile_r1 and not(mile_r2);</p><p> cost_clk<= wait_clk when wait_signal='1'else</p><p> mile_clk when en0='1' or en1 ='1'
45、else</p><p><b> '0';</b></p><p> U4:process(rst,start,mile_clk)</p><p><b> begin</b></p><p> if rst='1' then</p><
46、p> k0<="0000"; k1<="0000";</p><p> elsif start='0' then</p><p> k0<="0000"; k1<="0000"; en0<='0';en1<='0';
47、</p><p> elsif mile_clk'event and mile_clk='1' then</p><p> if k1 & k0>="00100000" and one_way='1' then</p><p> en1<='1';en0<=&
48、#39;0';</p><p><b> end if; </b></p><p> if k1 & k0="00000011" then</p><p><b> en0<='1';</b></p><p><b> e
49、nd if; </b></p><p> if k0="1001" then</p><p> k0<="0000";</p><p> if k1="1001" then</p><p> k1<="0000";</p&g
50、t;<p><b> else </b></p><p> k1<=k1+'1';</p><p><b> end if;</b></p><p><b> else</b></p><p> k0<=k0+'1
51、39;;</p><p><b> end if;</b></p><p> end if; </p><p> end process;</p><p> U5:process( rst,start,cost_clk,start_r)</p><p><b> begi
52、n</b></p><p> if rst='1' then</p><p> c0<="0000";c1<="0000"; c2<="0000";c3<="0000"; </p><p> elsif start='1&
53、#39; and start_r='0' then</p><p> c0<="0000";c1<="1000";c2<="0000"; c3<="0000"; </p><p> elsif cost_clk'event and cost_clk=
54、9;1'then</p><p> if en1='0' and en0='1'then</p><p> if c1="1001"then</p><p> c1<="0000";</p><p> if c2="1001"th
55、en</p><p> c2<="0000";</p><p> if c3="1001"then</p><p> c3<="0000";</p><p><b> else</b></p><p> c3<
56、=c3+'1';</p><p><b> end if;</b></p><p><b> else</b></p><p> c2<=c2+'1';</p><p><b> end if;</b></p><
57、;p><b> else</b></p><p> c1<=c1+'1'; c0<="0000";</p><p><b> end if;</b></p><p><b> else</b></p><p> i
58、f (c0="0101" and c1="1000")or c1="1001"then</p><p> if c1="1001" and c0="0101" then</p><p> c0<="0000"; c1<="0001";&
59、lt;/p><p> elsif c1="1001" and c0="0000" then</p><p> c0<="0101";c1<="0000";</p><p> elsif c1="1000" and c0="0101"
60、then</p><p> c0<="0000";c1<="0000";</p><p><b> end if;</b></p><p> if c2="1001" then</p><p> c2<="0000"
61、;</p><p> if c3="1001"then</p><p> c3<="0000";</p><p><b> else</b></p><p> c3<=c3+'1';</p><p><b>
62、end if;</b></p><p><b> else</b></p><p> c2<=c2+'1';</p><p><b> end if;</b></p><p> elsif c0="0000"then</p>
63、<p> c0<="0101";c1<=c1+'1';</p><p><b> else</b></p><p> c0<="0000";c1<=c1+"0010";</p><p><b> end if;<
64、;/b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> min0<=m0;</b></p><p><b
65、> min1<=m1;</b></p><p><b> km0<=k0;</b></p><p><b> km1<=k1;</b></p><p> cost0<=c0;</p><p> cost1<=c1;</p>&l
66、t;p> cost2<=c2;</p><p> cost3<=c3;</p><p><b> end; </b></p><p><b> 摘要1</b></p><p> 一、設(shè)計目的和要求2</p><p><b> 二、
67、設(shè)計原理3</b></p><p><b> 1設(shè)計模塊3</b></p><p><b> 2原理描述3</b></p><p><b> 2.1分頻模塊3</b></p><p> 2.2 路程和計費模塊4</p><p&g
68、t; 2.3 譯碼顯示模塊4</p><p><b> 三、設(shè)計內(nèi)容5</b></p><p><b> 1設(shè)計思路5</b></p><p><b> 2 設(shè)計流程圖6</b></p><p> 3總體設(shè)計封裝圖6</p><p>
69、<b> 4模塊設(shè)計7</b></p><p><b> 4.1分頻模塊7</b></p><p><b> 4.2計費模塊7</b></p><p> 4.3譯碼顯示模塊7</p><p> 5系統(tǒng)仿真結(jié)果及分析8</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計--出租車計價器
- eda課程設(shè)計報告---出租車計價器
- eda課程設(shè)計報告--出租車計價器
- eda課程設(shè)計---出租車計價器的設(shè)計
- 出租車計價器課程設(shè)計
- 出租車計價器課程設(shè)計
- 出租車計價器課程設(shè)計
- 出租車計價器課程設(shè)計
- 課程設(shè)計---出租車計價器設(shè)計
- 課程設(shè)計--出租車計價器設(shè)計
- 出租車計價器設(shè)計課程設(shè)計
- 課程設(shè)計---出租車計價器設(shè)計
- 出租車計價器課程設(shè)計報告
- 出租車計價器課程設(shè)計論文
- 硬件課程設(shè)計----出租車計價器
- 接口課程設(shè)計---出租車計價器
- 課程設(shè)計---出租車計價器的設(shè)計
- 課程設(shè)計--出租車計價器的設(shè)計
- 硬件課程設(shè)計--出租車計價器系統(tǒng)
- arm出租車計價器系統(tǒng)課程設(shè)計
評論
0/150
提交評論