EDA課設出租車計費器_第1頁
EDA課設出租車計費器_第2頁
EDA課設出租車計費器_第3頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1引言12 Quartus II 介紹13出租車計價器設計 23.1出租車計價器的設計原理 23.2各模塊功能模塊設計 3321分頻模塊3計量模塊3控制模塊3計費模塊4譯碼顯示模塊4頂層模塊43.3硬件仿真44總結5參考文獻6附錄61引言本設計是一個簡易的出租車計費系統,實現計價功能,計費標準為按行程里程收費,起步價為6.00元,當里程小于3公里時,按照起價計費,車行超過 3公里后 在按1.2元/公里收費,等待累積時間超過 2min,按照每分鐘1.5元計費。能模擬汽 車的啟動,停止,暫停等狀態(tài)。并用LED數碼管實時顯示車費和汽車行駛里程,用兩位數字顯示汽車行駛里程,顯示方式為“XX',

2、單位為km。計程范圍為099km, 計程分辨率為1km ;用五位數字顯示總費用,顯示方式為“XXX.X',單價為元。計價范圍為0999.9元,計價分辨率為0.1元。此計費器要設有一個由司機控制的整 體復位控制。本設計采用VHDL硬件描述語言作為設計手段,采用自頂向下的設計思路,得 到一種出租車計價系統的軟件結構,通過QuartusH軟件下進行仿真,證明所設計的電路系統完成了出租車計價的功能,各項指標符合設計要求。本次課程設計可以熟練掌握了課本上的一些理論知識,課程設計也是一個學習新知識、鞏固加深所 學課本理論知識的過程,它培養(yǎng)了我們綜合運用知識的能力,獨立思考和解決問題 的能力。加深我

3、們對VHDL數字電路設計教程的理解。2 Quartus II 介紹Quartus II是Altera公司的綜合性 PLD開發(fā)軟件,支持原理圖、 VHDL、 VerilogHDL 以及 AHDL (Altera Hardware Description Language)等多種設計輸入形 式,內嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用 Tcl腳本完成設 計流程外,提供了完善的用戶圖形界面設計方式。具有運行速度快,界面統一,功 能集中,易學易用等特點。Quartus II支持Altera的

4、IP核,包含了 LPM/MegaFunction宏功能模塊庫,使 用戶可以充分利用成熟的模塊,簡化了設計的復雜性、加快了設計速度。對第三方 EDA工具的良好支持也使用戶可以在設計流程的各個階段使用熟悉的第三方EDA工具。此外,Quartus II通過和DSP Builder工具和 Matlab/Simulink相結合,可以方 便地實現各種DSP使用系統;支持Altera的片上可編程系統(SOPC)開發(fā),集系 統級設計、嵌入式軟件開發(fā)、可編程邏輯設計于一體,是一種綜合性的開發(fā)平臺。 Altera Quartus II作為一種可編程邏輯的設計環(huán)境,由于其強大的設計能力和直觀 易用的接口,越來越受到

5、數字系統設計者的歡迎。Altera的Quartus II可編程邏輯軟件屬于第四代 PLD開發(fā)平臺。該平臺支持一個 工作組環(huán)境下的設計要求,其中包括支持基于 In ternet的協作設計。Quartus平臺和 Cade nee ExemplarLogic、Men torGraphics、Syn opsys 和 Syn plicity 等 EDA 供應商 的開發(fā)工具相兼容。改進了軟件的 LogicLock模塊設計功能,增添 了 FastFit編譯 選項,推進了網絡編輯性能,而且提升了調試能力。支持 MAX7000/MAX3000等 乘積項器件3出租車計價器設計本設計是一種采用FPGA芯片進行出租車

6、計費器,主要分為分頻模塊、計量模 塊、計費模塊、控制模塊等模塊,利用FPGA的可編程性,簡潔又多變的設計方法, 縮短了研發(fā)周期。主要采用了 FPGA芯片,使用VHDL語言進行編程,使其具有了 更強的移植性,更加利于產品的升級。3.1出租車計價器的設計原理根據設計要求,系統的輸入信號 clk,計價開始信號Start,等待信號Stop,里 程脈沖信號fin。系統得輸出信號有:總費用數 cha0 cha3,行駛距離km0 km1, 等待時間min0 min1等。系統有兩個脈沖輸入信號 clk_120、fin,其中clk_120將 根據設計要求分頻成12Hz、15Hz和1Hz分別作為公里計費和超時計費

7、的脈沖。兩 個控制輸入開關start、stop;控制過程為:start作為計費開始開關,當start為高電 平時,系統開始根據輸入的情況計費。當有乘客上車并開始行駛時,fin脈沖到來,進行行駛計費,此時的stop需要置為0;如需停車等待,就把stop變?yōu)楦唠娖?,?去除fin輸入脈沖,進行等待計費;當乘客下車且不等待時,將stop和fin同時置為0,來讀取最終的行駛路程數、等待時間和最后的總費用,直接將start置為0,系統停止工作;價格開始歸為起步價 6.00元。整個設計由分頻模塊、計量模塊、計費模塊、控制模塊等四個部分組成。其中計量模塊是整個系統實現里程計數和時間計數的重要部分;控制模塊是

8、實現不同計費方式的選擇部分,根據所設計的使能端選擇是根據里程計費還是根據等 待時間計費;同時設計通過分頻模塊產生不同頻率的脈沖信號來實現系統的計費。 計量模塊采用1Hz的驅動信號,計費模塊采用12Hz、15Hz的驅動信號;計量模塊 每計數一次,計費模塊就實現12次或者15次計數,即為實現計時的1.5元/min、 計程時的1.2元/km的收費。組成框圖如圖2-1所示:圖3-1系統結構框圖3.2各模塊功能模塊設計321分頻模塊en1322計量模塊由于試驗箱上沒有12Hz和15Hz的整數倍時鐘信號,因此我們采用頻率較大的 750khz進行分頻,以近似得到12Hz、15Hz和1Hz的時鐘頻率。本設計中

9、通過以上 三種不同頻率的脈沖信號實現在計程車在行駛、等待兩種情況下的不同計費。分頻 模塊元件如圖2-2所示:計時部分:計算乘 使能信號變?yōu)?;當c 滿量程后自動歸零。計程部分:計算乘客所行駛的公里數,當行駛里程大于 3km時,本模塊中enO 使能信號變?yōu)?;當clk1每來一個上升沿,計程器就自增1,計程器的量程為99km, 滿量程后自動歸零。Start置1程序始終處于計費狀態(tài),當fin脈沖到來時kO和k1進入計程狀態(tài), 且k0每次滿9就向k1進位,超過3km時enO就變?yōu)楦唠娖?;同理,?stop由0 置為1時開始由計程進入等待狀態(tài),fin脈沖歸為0里程計數停止,等待時間開始計 時,mO每次滿

10、9就向m1進位,超過2min時en1就變?yōu)楦唠娖???刂颇K本模塊主要是通過計量模塊產生的兩個不同的輸入使能信號en0 enl,對兩個分頻模塊輸出的12Hz、15Hz的脈沖進行選擇輸出的過程;本模塊實現了雙脈沖的二選一;最終目的為了計費模塊中對行駛過程中不同的時段進行計價324計費模塊當計費信號Start 一直處于高電平即計費狀態(tài)時,本模塊根據控制模塊選擇出的 信號從而對不同單價的時段進行計費。即行程在3km內,而且等待累積時間小于2min則為起步價6元;3km以外每公里按1.2元計費,等待時間超過2min,貝U按每 分鐘1.5元計費。cO、cl、c2、c3分別表示費用的顯示。由圖可知當處于計費

11、狀態(tài) 時,隨著clk2的高電平的到來,計費起步價為 6元。cO滿9向cl進位,cl滿9向 c2產生進位,依次逐級進位從而完成計費功能。譯碼顯示模塊譯碼顯示模塊完成計價、計時和計程數據顯示。計費數據送入譯碼顯示模塊進 行譯碼,最后送至以百元、十元、元、角為單位對應的數碼管上顯示。計時數據送 入譯碼顯示模塊進行譯碼,最后送至以分為單位對應的數碼管上顯示。計程數據送 入譯碼顯示模塊進行譯碼,最后送至以km為單位的數碼管上顯示。由于本次課程設計所用實驗箱上自帶數碼管譯碼顯示電路,因此不需再寫譯碼程序,選定模式直 接管腳鎖定在對用的數碼管上即可實現。頂層模塊本模塊用圖形輸入法實現出租車的計費器系統設計,

12、將各個模塊組合在一起。程序最終功能實現仿真波形如圖2-11所示(J qTHL 1 - DicWw-ih#(.H!q.1,=-uxuch#1H#-qi - rhw-uFwiiSiir:. - |firru c i- 尊 tin 訳養(yǎng)rqvrl &iiK;rmirta 小円 £odi Uindev 審pZ且尹事曾舟& 畔噸右t.辱山®| 辱I 07| 辱 JhJWIaa 11 砂d WUbJvh W | HoJl btF耐口 riffle"公里,則再按每里二時間超過.Lb_i!UI ng fU d為高電stop為電平時所有數OKIP3W駛里程為'

13、;rmmjLrLnjinnrjmnjmjVLrvmjmnjmnjvjLnnrLrLruvuvLrmrLTuvumjvLnw"1 = C-MfLLh EMEIridj5結果 u 曰u 相同IBSTEIT所以仿真結果正確。mamm3.3Ax j *. a & v >實驗中采用3TPar kl# p pr»M. Tl在QuartusII軟件中仿真成功,現在下載到試驗箱上以驗證其功能。萬用模式模式五,程序中各個端口鎖定到試驗箱上對應的管腳下載驗證。最后得數 碼管顯示計時、計程和計費數據如圖 2-13所示:* SOPC/DSPZEDA實驗葉發(fā)系統 10 dO B E)

14、I 0 3圖3-4硬件仿真結果由上可知等待時間為4分鐘,行駛公里數為4公里。根據設計要求計算所得費 用為:6 元 + (4km-3km)*1.2 元/km+(4min-2min)*1.5 元/min=6+1.2+3=10.2 元,和 試驗箱上所得結果相同,仿真下載成功。4總結通過為期1周的課程設計,出租車計價器系統的設計已基本完成,能按預期的 效果模擬汽車啟動、等待、停止、復位等功能,并顯示車費數目等待時間及行駛路 程。出租車計費系統的設計中體現了 VHDL覆蓋面廣,描述能力強,是一個多層次 的硬件描述語言及CPLD器件速度快,使用方便,便于修改等特點,本設計在實用 方面具有一定的價值。通過不

15、斷的編寫和嘗試,遇到問題,討論問題,解決問題,使我對VHDL數字電路設計教程這門學科有了更系統的認識。在這次課程設計中我熟練地掌握了 VHDL語言中的并行語句和順序語句的使用、區(qū)別和聯系;從根本上了解了信號和 變量之間的區(qū)別;熟練掌握并使用了有限狀態(tài)機和元件例化的方法;鍛煉了我的獨 立思考能力,培養(yǎng)了我敢于創(chuàng)新的思想:讓我學會了團結同學、互幫互助、在討論 中提煉真知。在本次設計中還存在很多不足,可以改進的地方目前有以下幾點:一、該設計雖然實現了基本的計費和計程,但是很多問題并沒有解決,如本設 計只實了一種車速的計費。若要實現出租車的不同檔位下的計程計費,還需要進一 步討論。二、該設計智能化水平

16、較低,啟動、等待、復位等信號需要人為輸入,若在實 際中出現操作偏差,會導致計費不準確。通過此次課程設計,我們更進一步的深入了解了 VHDL設計語言,并在使用過 程中對它有了更深的體會。對編程過程中可能遇到的問題有了一定的了解和解決方 法,在理論學習和編程練習以及硬件測試方面都獲得了較大的收獲,對于今后進行 程序設計有很大的幫助。最后在此再次向帶領我們這次課程設計的老師說聲:謝謝!參考文獻1 .Voknei A.Pedroni. VHDL 數字電路設計教程 .電子工業(yè)出版社, 2008.52 . 潘松,黃繼業(yè) . EDA 技術實用教程 (第二版) .科學出版社, 2005.23 孟慶海 ,張洲

17、.VHDL 基礎及經典實例開發(fā) .西安:西安交通大學出版社, 2008.44 劉江海 .EDA 技術課程設計 .華中科技大學出版社, 2009.55 蔣小燕,余偉鈞,張立臣 . EDA 技術及 VHDL .2008.12.6 焦素敏 .EDA 使用技術 .清華大學出版社, 2002.4附錄LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity taxi is-出租車計費器整體設計模塊-系統時鐘port ( clk_120:in std

18、_logic;end taxi;clk_12:buffer std_logic;clk_15:buffer std_logic;clk_1:buffer std_logic;start:in std_logic;fin:in std_logic;stop:in std_logic;en1,en0:buffer std_logic;-12 分頻-15 分頻-1 分頻-計費開始信號k1,k0:buffer std_logic_vector(3 downto 0);-里程脈沖信號-行駛中,中途等待信號-計費單價使能信號-行駛公里計數m1,m0:buffer std_logic_vector(3 do

19、wnto 0);clk_out:buffer std_logic;c0,c1,c2,c3:buffer std_logic_vector(3 downto 0);architecture taxi of taxi issignal q_12:integer range 0 to 9;signal q_15:integer range 0 to 7;signal q_1:integer range 0 to 119;signal w:integer range 0 to 59;beginprocess(clk_120)begin-等待時間計數-計程和等待時間選擇輸出信號-輸出顯示出租車總費用-定

20、義中間信號- 計時范圍 059if (clk_120'event and clk_120='1' )thenif (q_12=4) then q_12<=0;clk_12<=not clk_12; else q_12<=q_12+1;end if;if (q_15=3) then q_15<=0;clk_15<=not clk_15; else q_15<=q_15+1;end if;if (q_1=59) then q_1<=0;clk_1<=not clk_1; else q_1<=q_1+1;end if;en

21、d if;end process;process(clk_1) beginif (clk_1'event and clk_1='1') thenif (start='0') then-分頻模塊;-得 12hz 頻率信號-得 15hz 頻率信號-得 1hz 頻率信號-計量模塊w<=0;en1<='0'en0<='0'm1<="0000"m0<="0000"k1<="0000"k0<="0000"elsif

22、 stop='1' then- 計時開始信號if (w=59) then w<=0;- 計時范圍為 0-59 分; ;else w<=w+1;end if;if (m0="1001") then m0<="0000" if (m1="0101") then m1<="0000" else m1<=m1+1;end if;else m0<=m0+1;end if;if stop='1' then en0<='0'if m1&am

23、p;m0>"00000010"then en1<='1'else en1<='0'end if;end if;elsif fin='1' thenif (k0="1001") then k0<="0000"if (k1="1001") then k1<="0000"-車停止行駛開始記等待時間;- 若等待時間大于 2min 則 en1 置 1;-里程計數開始;- 計程范圍 099;else k1<=k1+1; end if;else k0<=k0+1; end if;if (stop='0') then en1<='0'if (k1&k0>"00000011") then en0<='1' else en0<='0'end if; end if; end if; end if;if (stop='0' and fin='0')then en0<='0'en1<='0'end

溫馨提示

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

評論

0/150

提交評論