




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于VHDL 的出租車計(jì)費(fèi)器的設(shè)計(jì) 目前以硬件描述語言(Verilog 或 VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來實(shí)現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flipflop)或者其他更加完整的記憶塊。系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來,就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠后的成品FPGA的邏輯塊和連接可以按照
2、設(shè)計(jì)者而改變,所以FPGA可以完成所需要的邏輯功能。 本設(shè)計(jì)是一種采用FPGA芯片進(jìn)行出租車計(jì)費(fèi)器,主要分為分頻模塊、計(jì)量模塊、計(jì)費(fèi)模塊、控制模塊等模塊,利用FPGA的可編程性,簡潔又多變的設(shè)計(jì)方法,縮短了研發(fā)周期。主要采用了FPGA芯片,使用VHDL語言進(jìn)行編程,使其具有了更強(qiáng)的移植性,更加利于產(chǎn)品的升級(jí)。 一、設(shè)計(jì)任務(wù)與要求(1)、能夠?qū)崿F(xiàn)計(jì)費(fèi)功能費(fèi)用的計(jì)算是按行駛里程收費(fèi),設(shè)出租車的起步價(jià)是5.00元,當(dāng)里程小于3km里時(shí),按起步價(jià)收費(fèi);當(dāng)里程大于3km時(shí)每公里按1.3元計(jì)費(fèi)。等待累計(jì)時(shí)間超過2min,按每分鐘1.5元計(jì)費(fèi)。所以總費(fèi)用按下式計(jì)算:總費(fèi)用=起步價(jià)+(里程-3km)*里程單價(jià)
3、+等候時(shí)間*等候單價(jià)(2)、能夠?qū)崿F(xiàn)顯示功能l 顯示汽車行駛里程:用四位數(shù)字顯示,顯示方式為“XXXX”,單價(jià)為km。計(jì)程范圍為099km,計(jì)程分辨率為1km。l 顯示等候時(shí)間:用兩位數(shù)字顯示分鐘,顯示方式為“XX”。計(jì)時(shí)范圍為059min,計(jì)時(shí)分辨率為1min。l 顯示總費(fèi)用:用四位數(shù)字顯示,顯示方式為“XXX.X”,單位為元。計(jì)價(jià)范圍為999.9元,計(jì)價(jià)分辨率為0.1元。二、設(shè)計(jì)原理根據(jù)設(shè)計(jì)要求,系統(tǒng)的輸入信號(hào)clk,計(jì)價(jià)開始信號(hào)Start,等待信號(hào)Stop,里程脈沖信號(hào)fin。系統(tǒng)得輸出信號(hào)有:總費(fèi)用數(shù)cha0 cha3,行駛距離km0 km1,等待時(shí)間min0 min1 等。系統(tǒng)有兩個(gè)
4、脈沖輸入信號(hào)clk_750k、fin,其中clk_750k將根據(jù)設(shè)計(jì)要求分頻成13hz、15hz和1hz分別作為公里計(jì)費(fèi)和超時(shí)計(jì)費(fèi)的脈沖。兩個(gè)控制輸入開關(guān)start、stop;控制過程為:start作為計(jì)費(fèi)開始開關(guān),當(dāng)start為高電平時(shí),系統(tǒng)開始根據(jù)輸入的情況計(jì)費(fèi)。當(dāng)有乘客上車并開始行駛時(shí),fin脈沖到來,進(jìn)行行駛計(jì)費(fèi),此時(shí)的stop需要置為0;如需停車等待,就把stop變?yōu)楦唠娖剑⑷コ齠in輸入脈沖,進(jìn)行等待計(jì)費(fèi);當(dāng)乘客下車且不等待時(shí),直接將start置為0,系統(tǒng)停止工作;價(jià)格開始?xì)w為起步價(jià)5.00元。整個(gè)設(shè)計(jì)由分頻模塊、計(jì)量模塊、計(jì)費(fèi)模塊、控制模塊等四個(gè)部分組成。其中計(jì)量模塊是整個(gè)系統(tǒng)
5、實(shí)現(xiàn)里程計(jì)數(shù)和時(shí)間計(jì)數(shù)的重要部分;控制模塊是實(shí)現(xiàn)不同計(jì)費(fèi)方式的選擇部分,根據(jù)所設(shè)計(jì)的使能端選擇是根據(jù)里程計(jì)費(fèi)還是根據(jù)等待時(shí)間計(jì)費(fèi);同時(shí)設(shè)計(jì)通過分頻模塊產(chǎn)生不同頻率的脈沖信號(hào)來實(shí)現(xiàn)系統(tǒng)的計(jì)費(fèi)。計(jì)量模塊采用1HZ的驅(qū)動(dòng)信號(hào),計(jì)費(fèi)模塊采用13HZ、15HZ的驅(qū)動(dòng)信號(hào);計(jì)量模塊每計(jì)數(shù)一次,計(jì)費(fèi)模塊就實(shí)現(xiàn)13次或者15次計(jì)數(shù),即為實(shí)現(xiàn)計(jì)時(shí)時(shí)的1.5 元/min、計(jì)程時(shí)的1.3元/km的收費(fèi)。組成框圖如下所示:三、各個(gè)模塊設(shè)計(jì)分析(2)分頻模塊由于試驗(yàn)箱上沒有13hz和15hz的整數(shù)倍時(shí)鐘信號(hào),因此我們采用頻率較大的750khz進(jìn)行分頻,以近似得到13HZ、15HZ和1HZ的時(shí)鐘頻率。本設(shè)計(jì)中通過以上三種
6、不同頻率的脈沖信號(hào)實(shí)現(xiàn)在計(jì)程車在行駛、等待兩種情況下的不同計(jì)費(fèi)。模塊元件如下:(2)計(jì)量模塊計(jì)量模塊主要完成計(jì)時(shí)和計(jì)程功能。計(jì)時(shí)部分:計(jì)算乘客的等待累積時(shí)間,當(dāng)?shù)却龝r(shí)間大于2min時(shí),本模塊中en1使能信號(hào)變?yōu)?;當(dāng)clk1每來一個(gè)上升沿,計(jì)時(shí)器就自增1,計(jì)時(shí)器的量程為59min,滿量程后自動(dòng)歸零。計(jì)程部分:計(jì)算乘客所行駛的公里數(shù),當(dāng)行駛里程大于3km時(shí),本模塊中en0使能信號(hào)變?yōu)?;當(dāng)clk1每來一個(gè)上升沿,計(jì)程器就自增1,計(jì)程器的量程為99km,滿量程后自動(dòng)歸零。元件框圖為:計(jì)量模塊仿真波形為:由波形可知,Start置1程序始終處于計(jì)費(fèi)狀態(tài),當(dāng)fin脈沖到來時(shí)k0和k1進(jìn)入計(jì)程狀態(tài),且k0
7、每次滿9就向k1進(jìn)位,超過3km時(shí)en0就變?yōu)楦唠娖?;同理,?dāng)stop由0置為1時(shí)開始由計(jì)程進(jìn)入等待狀態(tài),fin脈沖歸為0里程計(jì)數(shù)停止,等待時(shí)間開始計(jì)時(shí),m0每次滿9就向m1進(jìn)位,超過2min時(shí)en1就變?yōu)楦唠娖?。?)控制模塊本模塊主要是通過計(jì)量模塊產(chǎn)生的兩個(gè)不同的輸入使能信號(hào)en0、en1,對(duì)兩個(gè)分頻模塊輸出的13HZ、15HZ的脈沖進(jìn)行選擇輸出的過程;本模塊實(shí)現(xiàn)了雙脈沖的二選一;最終目的為了計(jì)費(fèi)模塊中對(duì)行駛過程中不同的時(shí)段進(jìn)行計(jì)價(jià)。模塊元件如下:控制模塊仿真波形如下:(4)計(jì)費(fèi)模塊 當(dāng)計(jì)費(fèi)信號(hào)Start一直處于高電平即計(jì)費(fèi)狀態(tài)時(shí),本模塊根據(jù)控制模塊選擇出的信號(hào)從而對(duì)不同單價(jià)的時(shí)段進(jìn)行計(jì)費(fèi)
8、。即行程在3km內(nèi),而且等待累積時(shí)間小于2min則為起步價(jià)5元;3km外以每公里按1.3遠(yuǎn)計(jì)費(fèi),等待累積時(shí)間超過2min則按每分鐘1.5元計(jì)費(fèi)。c0、c1、c2、c3分別表示費(fèi)用的顯示。模塊元件為:計(jì)費(fèi)模塊仿真波形:由圖可知當(dāng)處于計(jì)費(fèi)狀態(tài)時(shí),隨著clk2的高電平的到來,計(jì)費(fèi)起步價(jià)為5元。c0滿9向c1進(jìn)位,c1滿9向c2產(chǎn)生進(jìn)位,依次逐級(jí)進(jìn)位,從而完成計(jì)費(fèi)功能。(5)譯碼顯示模塊譯碼顯示模塊完成計(jì)價(jià)、計(jì)時(shí)和計(jì)程數(shù)據(jù)顯示。計(jì)費(fèi)數(shù)據(jù)送入譯碼顯示模塊進(jìn)行譯碼,最后送至以百元、十元、元、角為單位對(duì)應(yīng)的數(shù)碼管上顯示。計(jì)時(shí)數(shù)據(jù)送入譯碼顯示模塊進(jìn)行譯碼,最后送至以分為單位對(duì)應(yīng)的數(shù)碼管上顯示。計(jì)程數(shù)據(jù)送入譯碼
9、顯示模塊進(jìn)行譯碼,最后送至以km為單位的數(shù)碼管上顯示。由于本次課程設(shè)計(jì)所用實(shí)驗(yàn)箱上自帶數(shù)碼管譯碼顯示電路,因此不需再寫譯碼程序,選定模式直接管腳鎖定在對(duì)用的數(shù)碼管上即可實(shí)現(xiàn)。(6)頂層模塊,元件例化語句本模塊用圖形輸入法實(shí)現(xiàn)出租車的計(jì)費(fèi)器系統(tǒng)設(shè)計(jì),將各個(gè)模塊組合在一起。模塊元件如下: 圖形如下所示:程序最終功能實(shí)現(xiàn)仿真波形: 由圖中可以看出,當(dāng)fin脈沖信號(hào)到來時(shí),實(shí)現(xiàn)了行駛計(jì)費(fèi),當(dāng)行駛里程超過三公里,則再按每公里1.3元計(jì)費(fèi);當(dāng)stop為高電平,即進(jìn)入等待計(jì)時(shí)收費(fèi);當(dāng)?shù)却龝r(shí)間超過2min時(shí),每過一分鐘加1.5元,即為實(shí)現(xiàn)每等一分鐘收費(fèi)1.5元。但本次仿真中等待時(shí)間為1分鐘,沒有超過2分鐘,因
10、此沒有等待時(shí)間的計(jì)費(fèi)。結(jié)果驗(yàn)證:出租車的起步價(jià)是5元,當(dāng)行駛了33km的時(shí)候,收費(fèi)為5+(33 3)*1.3=44元。四、硬件實(shí)現(xiàn) 在QuartusII軟件中仿真成功,現(xiàn)在下載到試驗(yàn)箱上以驗(yàn)證其功能。實(shí)驗(yàn)中采用萬用模式模式五,程序中各個(gè)端口鎖定到試驗(yàn)箱上對(duì)應(yīng)的管腳下載驗(yàn)證。最后得數(shù)碼管顯示計(jì)時(shí)、計(jì)程和計(jì)費(fèi)數(shù)據(jù)如下: 以上可知等待時(shí)間為10分鐘,行駛公里數(shù)為23公里。根據(jù)設(shè)計(jì)要求計(jì)算所得費(fèi)用為:5+(23km-3km)*1.3元/km+(10min-2min)*1.5元/min=5+26+12=43元,與試驗(yàn)箱上所得結(jié)果相同,仿真下載成功。五、結(jié)束語課程設(shè)計(jì)是我們專業(yè)課程知識(shí)綜合應(yīng)用的實(shí)踐訓(xùn)練,
11、著是我們邁向社會(huì),從事職業(yè)工作前一個(gè)必不少的過程”千里之行始于足下”,通過這次課程設(shè)計(jì),我深深體會(huì)到這句千古名言的真正含義我今天認(rèn)真的進(jìn)行課程設(shè)計(jì),學(xué)會(huì)腳踏實(shí)地邁開這一步,就是為明天能穩(wěn)健地在社會(huì)大潮中奔跑打下堅(jiān)實(shí)的基礎(chǔ)。六、參考文獻(xiàn)曹昕燕、周鳳臣、聶春燕,EDA技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì)【M】,清華大學(xué)出版社劉欲曉、方強(qiáng)、黃宛寧,EDA技術(shù)與VHDL電路開發(fā)應(yīng)用實(shí)踐【M】,電子工業(yè)出版社。潘松、黃繼業(yè)。EDA技術(shù)實(shí)用教程(第三版)【M】,科學(xué)出版社附錄:源程序:分頻源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARIT
12、H.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity fenpin2 isport ( clk_750k :in std_logic; -系統(tǒng)時(shí)鐘 clk_13: buffer std_logic; -13分頻 clk_15: buffer std_logic; -15分頻 clk_1: buffer std_logic); -1分頻end fenpin2;architecture rt1 of fenpin2 is signal q_13:integer range 0 to 28845; - 定義中間信號(hào)量 signal q_15:integer ran
13、ge 0 to 24999; signal q_1:integer range 0 to 374999; begin process(clk_750k) beginif (clk_750k'event and clk_750k='1' )then if q_13=28845 then q_13<=0;clk_13<=not clk_13; else q_13<=q_13+1; end if; -得13hz頻率信號(hào)if q_15=24999 then q_15<=0;clk_15<=not clk_15; else q_15<=q_15
14、+1; end if; -得15hz頻率信號(hào)if q_1=374999 then q_1<=0;clk_1<=not clk_15; else q_1<=q_1+1;end if; -得1hz頻率信號(hào) end if; end process;end rt1;計(jì)量源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity jiliang isport( start: in std_logic; -計(jì)費(fèi)開始信號(hào) fi
15、n: in std_logic; -里程脈沖信號(hào) stop: in std_logic; -行駛中,中途等待信號(hào) clk1: in std_logic; -驅(qū)動(dòng)脈沖 en1,en0:buffer std_logic; -計(jì)費(fèi)單價(jià)使能信號(hào) k1,k0: buffer std_logic_vector(3 downto 0); -行駛公里計(jì)數(shù) m1,m0: buffer std_logic_vector(3 downto 0); -等待時(shí)間計(jì)數(shù)end jiliang;architecture rt2 of jiliang issignal w:integer range 0 to 59; -計(jì)時(shí)范
16、圍059 beginprocess(clk1)begin if clk1'event and clk1='1' then if start='0' then w<=0;en1<='0'en0<='0'm1<="0000"m0<="0000"k1<="0000"k0<="0000" elsif stop='1' then -計(jì)時(shí)開始信號(hào) if w=59 then w<=0; else
17、 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&m0>"00000010"then en1<='1' -若等待時(shí)間大于2min則en1置1
18、 else en1<='0' end if; end if; elsif fin='1' then -里程計(jì)數(shù)開始 if k0="1001" then k0<="0000" if k1="1001" then k1<="0000" -計(jì)程范圍099 else k1<=k1+1; end if; else k0<=k0+1; end if; if stop='0' then en1<='0' if k1&k0&
19、gt;"00000011" then en0<='1' -若行駛里程大于3km則en0置1 else en0<='0' end if; end if; end if; end if;end process;end rt2;控制模塊源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity kongzhi isport(en0,en1:in std_logic; -使能
20、選擇信號(hào) clk_in1:in std_logic; -13分頻輸入信號(hào) clk_in2:in std_logic; -15分頻輸入信號(hào) clk_out:out std_logic); -輸出信號(hào) end kongzhi;architecture rt3 of kongzhi isbeginprocess(ent0,ent1)begin if en0='1' then -實(shí)現(xiàn)二選一功能 clk_out<=clk_in1; elsif en1='1' then clk_out<=clk_in2; end if; end process;end rt3;計(jì)費(fèi)模塊源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity jifei isport(clk2:in std_logic; -計(jì)費(fèi)驅(qū)動(dòng)信號(hào) start: i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共交通標(biāo)線施工與維護(hù)服務(wù)合同
- 汽車抵押貸款合同范本:全程貸款跟蹤
- 財(cái)務(wù)合同信息化安全評(píng)估與整改合同
- 基礎(chǔ)工程三校合編教學(xué)課件
- 課件的制作與應(yīng)用
- 為女病人導(dǎo)尿試題及答案
- 小學(xué)生學(xué)習(xí)方法指導(dǎo)課件
- 小學(xué)生學(xué)習(xí)委員競選課件
- 九上語文詩歌試題及答案
- 診所勞動(dòng)合同協(xié)議書
- 贛州城投招聘試題及答案
- 2024北京海淀區(qū)四年級(jí)(下)期末語文試題及答案
- 2025屆海南中考地理高頻考點(diǎn)模擬檢測試題(一模)含解析
- 輸血流程培訓(xùn)試題
- 企業(yè)安全生產(chǎn)知識(shí)題庫
- 2025-2030方塊地毯行業(yè)市場現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 鋼筋混凝土蓄水池施工方案
- 四川省樂山市市中區(qū)嘉州學(xué)校2024-2025學(xué)年數(shù)學(xué)五年級(jí)第二學(xué)期期末監(jiān)測模擬試題含答案
- 管廊安全培訓(xùn)課件圖片
- 《新能源材料概論》 課件 第4章 力電轉(zhuǎn)換新能源材料
- 精力管理與時(shí)間管理
評(píng)論
0/150
提交評(píng)論