基于FPGA技術出租車計費器的設計(EDA技術)_第1頁
基于FPGA技術出租車計費器的設計(EDA技術)_第2頁
基于FPGA技術出租車計費器的設計(EDA技術)_第3頁
基于FPGA技術出租車計費器的設計(EDA技術)_第4頁
基于FPGA技術出租車計費器的設計(EDA技術)_第5頁
免費預覽已結束,剩余19頁可下載查看

下載本文檔

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

文檔簡介

1、EDA課程設計日期:2013 年12月20日題目基于FPGA勺出租車計費器的設計學院:通信與電子工程學院班級:電子101班學號:2010131019姓名:何經國指導老師:周喜權EDA課程設計(論文)用紙本文以Altera公司的DE2開發板為中心,Quartus n軟件作為開發平臺,使 用Verilog HDL語言編程,設計了一個出租車計費的計費器模型。在程序描述的 過程中,用了行為描述方式和結構描述方式二種描述方式對計費器進行描述。該計費器能動態掃描電路,將車費和路顯示出來,各有兩位小數。整個自動控制系 統由三個主要電路構成:里程和車費計算、譯碼和動態顯示。最后給出了仿真的 波形,并硬件實現。

2、關鍵詞:出租車計費 Verilog HDL Quartus n3目錄摘要第1章概述1.1設計目的1.2設計背景1.3設計意義 第2章工作原理. 第3章設計過程.3.1設計方案3.1.1.3.4.4.3.1.23.1.3計算里程和車費模塊七段顯示譯碼器模塊動態顯示模塊設計出租車計費器電路4.5.3.1.43.2硬件實現3.2.1引腳鎖定3.2.2 編程下載第4章仿真過程建立工程建立Verilog HDL文件建立波形文件仿真結果4.14.24.34.4 結論.' 參考文獻.8.10101112121314141.71.8EDA課程設計(論文)用紙第1章概述1.1設計目的通過基于EDA技術出

3、租車計費器的設計,理解可編程邏輯器件的設計原理及 工作流程,學習EDA軟件Quartus n功能與使用方法,了解 Verilog HDL語言 邏輯編程設計基本過程。1.2設計背景隨著我國經濟社會的全面發展,各大中小城市的出租車營運事業發展迅速, 出租車已經成為人們日常出行選擇較為普通的交通工具。出租車計價器是出租車營運收費的專用智能化儀表,是使出租車市場規范化、標準化的重要設備。一種 功能完備,簡單易用,計量準確的出租車計價器是加強出租車行業管理,提高服務質量的必需品。本設計采用 VHDL硬件描述語言作為設計手段,采用自頂向下 的設計思路,得到一種出租車計價系統的軟件結構,通過Quartus

4、n軟件下進行仿真,證明所設計的電路系統完成了出租車計價的功能, 各項指標符合設計要求。 該設計雖然功能簡單,智能化水平比較低,但仍具有一定的實用性。該設計是在VHDL的基礎上對出租車計價器進行設計來實現其基本功能的, 與以往的基于單片機的數模混合電路相比,FPGA具有穩定性好,抗干擾能力強 等優點,且非常適合做為出租車計價器的控制核心,所以選擇用VHDL來對計價器進行設計來實現其功能。1.3設計意義汽車計價器是乘客與司機雙方的交易準則,它是出租車行業發展的重要標 志,是出租車中最重要的工具。它關系著交易雙方的利益。具有良好性能的計價 器無論是對廣大出租車司機朋友還是乘客來說都是很必要的。因此,

5、汽車計價器的研究也是具有一定意義的。隨著生活水平的提高,人們已不再滿足于衣食住的享受,出行的舒適已受 到越來越多人的關注。于是,出租車行業以低價高質的服務給人們帶來了出行的 享受。但是總存在著買賣糾紛困擾著行業的發展。 而在出租車行業中解決這一矛 盾的最好方法就是改良計價器。用更加精良的計價器來為乘客提供更加方便快捷的服務。多年來國內普遍使用的計價器只具備單一的脊梁功能。 最早的計價器全部使 用機械齒輪結構,只能簡單的計程功能,可以說,早期的計價器就是個里程表。 隨著科學技的發展,產生了第二代計價器。它采用手搖計算機與機械結構相結合 的方式實現了半機械半電子化。此時它在計程的同時還完成計價的工

6、作。 大規模 集成電路的發展又產生了第三代計價器, 也就是全電子化的計價器。它的功能也 在不斷完善。出租車計價器是一種專用的計量儀器, 它安裝在出租車上,能夠連 續累加,并只是出行中任意時刻乘客應付費用。 隨著電子技術的發展以及對計價 器的不斷改進和完善,便產生了能夠自主計費,以及現在的能夠打一發票和語音 提示、按時間自主變動單價等功能。11第2章工作原理本文設計了一個出租車計費器的模型,其接口信號如圖2-1所示。圖2-1出租車計費器模型方框圖車的狀態由傳感器傳回來當作控制信號,用控制信號來控制計算里程和車費 模塊,然后分別將里程和車費送到譯碼模塊譯碼, 輸出的數據一起送到動態掃描 模塊,由片

7、選信號控制哪部分譯碼模塊輸出的數據用數碼管顯示。當車啟動后,計算里程和車費模塊就開始計數,起步價為7.00元,并在車行3Km后按2.20元/Km計費,當計費器達到或超過 20元時,每公里回收50% 的車費,車停止和暫停時不計費;然后將里程和車費送到譯碼模塊譯碼和動態顯 示模塊動態顯示,最后顯示在七段數碼管上,動態顯示的時間間隔為5秒鐘。第3章設計過程3.1設計方案7.00元,并在3.1.1計算里程和車費模塊本模塊主要是計算里程和車費。按行駛里程計費,起步價為車行3Km后按2.20元/Km計費,當計費器達到或超過20元時,每公里回收50% 的車費,車停止和暫停時不計費。在本模塊中,一個脈沖代表是

8、里程要加100米。計算里程和車費的模塊的功能結構框圖如圖 3-1所示。taxico untsto pchef ei15.0startluche ng15.Oclkp auseinst圖3-1計算里程和車費模塊的功能結構框圖 根據模塊實現的功能設計Verilog HDL源代碼如下: module taxico un t(sto p,start,clk, pause,chefei,luche ng); input stop ,start,clk ,p ause;out put reg19:0 chefei,luche ng;reg3:0 qijia,da njia;reg12:0 ygl;reg

9、yglflag;always (p osedge clk)begi nif(st op = 0)beg indan jia=0;qijia=0;ygl=0;luche ng=0;endelse if(start = 0) beg in chefei=700; luche ng=0;endelse if(start&p ause )beginluche ng=luche ng+100; ygl=ygl+1OO;endif(ygl<1000) yglflag=0;elsebeg in yglflag=1; ygl=0;endif(luche ng>3000)beg inif(c

10、hefei<2000)beginif(yglflag) chefei=chefei+220; endelse if(chefei>2000)begin if(yglflag) chefei=chefei+330;endendenden dmodule3.1.2七段顯示譯碼器模塊本模塊主要是將4位二進制數轉換為十六進制表示。七段顯示譯碼器模塊的 功能結構框圖如圖3-3所示:y mq8421a3.0hex6.0inst圖3-3七段顯示譯碼器的功能結構框圖根據模塊實現的功能設計Verilog HDL源代碼如下: module ymq8421(a,hex);inpu t3:0 a;out

11、put reg6:0 hex;always (a)beginhex='b1000000;case(a)0hex='b1111001;hex='b0100100;hex='b0110000;hex='b0011001;hex='b0010010;hex='b0000010;hex='b1111000;hex='b0000000;hex='b0010000;10 : hex='b0001000;11 : hex='b0000011;12 : hex='b1000110;13 : hex='

12、;b0100001;14 : hex='b0000110;15 : hex='b0001110; default :hex='b1111111;endcaseenden dmodule3.1.3動態顯示模塊本模塊為動態顯示,時間間隔為5秒。動態顯示模塊的功能結構框圖如圖3-5所示。dis playclkHEX06.0disO6.OHEX16.0dis16.OHEX26.0一dis26.0HEX36.0一dis36.0dis46.0dis56.0dis66.0dis76.0inst圖3-5動態顯示模塊的功能結構圖 根據模塊實現的功能設計Verilog HDL源代碼如下:

13、moduledis play(clk,dis0,dis1,dis2,dis3,dis4,dis5,dis6,dis7,HEX0,HEX1,HEX2,HEX3); input clk;inp ut6:0 dis0,dis1,dis2,dis3,dis4,dis5,dis6,dis7;out put reg6:0 HEX0,HEX1,HEX2,HEX3;reg2:0CNT,COUNT;always (p osedge clk)case(COUNT)0: beginif(clk)CNT=CNT+1;if(CNT<5)begi nHEX0=dis0;HEX1=dis1;HEX2=dis2;HEX

14、3=dis3;endelsebeginCNT=0;COUNT=5;endend5:beg inif(clk) CNT=CNT+1;if(CNT<5)beginHEX0=dis4;HEX仁dis5;HEX2=dis6;HEX3=dis7; endelsebegi nCNT=0;COUNT=0; endendendcaseen dmodule3.1.4設計出租車計費器電路Verilog HDL具有行為描述和結構描述功能。行為描述是對設計電路的邏輯功 能的描述,并不用關心設計電路使用哪些元件及這些元件之間的連接關系。而結構描述是對設計電路的結構進行描述,即描述設計電路使用的元件及這些元件之 間

15、的連接關系。本文用行為描述和結構描述分別實現電路系統。(一)用行為描述實現出租車計費器電路系統設計用行為描述實現出租車計費器電路系統設計的源程序如下:module tcout(st op ,start,clk, pause,HEX0,HEX1,HEX2,HEX3); input stop ,start,clk ,p ause;out put reg6:0 HEX0,HEX1,HEX2,HEX3;wire 15:0 chefei,luche ng;wire 6:0 dis0,dis1,dis2,dis3,dis4,dis5,dis6,dis7; taxico unt U1(st op ,star

16、t,clk ,p ause,chefei,luche ng);ymq8421ymq8421ymq8421ymq8421U2(chefei3:0,dis0);U3(chefei7:4,dis1);U4(chefei11:8,dis2);U5(chefei15:12,dis3);ymq8421 U6(luche ng3:0,dis4);ymq8421 U7(luche ng7:4,dis5);ymq8421 U8(luche ng11:8,dis6);ymq8421 U9(luche ng15:12,dis7);dis play U10(clk,dis0,dis1,dis2,dis3,dis4,d

17、is5,dis6,dis7,HEX0,HEX1,HEX2,HEX3); en dmodule(二)用結構描述實現出租車計費器電路系統設計生成的taxicou nt、ymq8421和dis play元件圖形符號只是分別代表分立的電 路設計結果,并沒有形成系統。頂層設計文件就是調用taxicount、ymq8421和display三個功能元件,將它們組裝起來,成為一個完整的設計。taxi.bdf是本例的頂層文件,實現的功能是將里程和路程動態顯示出來, 時間間隔是5秒,如圖 3-8所示。舸jn""皿呂PX I j k'PCo i IIIII:rnqiWflchemJi.J

18、n如:Lie二刪2門1 rcxe.JiiP.fl mp :lJjm卿1III-JSJ Ihrimp pgH 曰cie. n敷I?則NWP也ncf.叫昭平嗎冊|l施4 mirf耳1irf.叫aiFlf 亡S HEip.kl IS:-血丘mP.UI RhhSi! i-nF31 J圖3-8 taxi頂層設計圖在Altera公司的軟件工具 后得到的波形如圖3-9示:Quartus n (Windows XP環境下)中編譯和波形仿真3.2硬件實現3.2.1引腳鎖定表3-1出租車計費器與 DE2中的目標芯片引腳連接關系表對出租車計費器進行實驗驗證時,需要確定用DE2開發板的哪些輸入/輸出端口( PIO)來

19、表示設計電路的輸入輸出。根據 DE2開發板提供的實驗模式,可 選擇電平開關SW2SW0乍為出租車計費器的控制信號;選擇HEX4HEX作為里 程和車費的輸出顯示。出租車計費器與DE2中的目標芯片引腳連接的全部關系見表3-10端口名稱PIO名稱芯片引腳端口名稱PIO名稱芯片引腳Sto PDP DT_SW0PIN _N25hex21HEX21P IN_V22startDP DT_SW1PIN _N26hex22HEX22PIN _AC25p auseDP DT_SW2PIN_P25hex23HEX23PIN _AC26cinOSC_50PIN _N2hex24HEX24PIN _AB26ci nOO

20、SC_50PIN _N2hex2 5HEX25PIN _AB25hex00HEX00PIN _AF10hex2 6HEX26P IN_Y24hex01HEX01PIN _AB12hex30HEX30P IN_Y23hex02HEX02PIN AC12hex31HEX31P IN AA25hex03HEX03P IN_AD11hex32HEX32P IN_AA26hex04HEX04P IN AE11hex33HEX33P IN Y26hex 05HEX05P IN_V14hex34HEX34P IN_Y25hex06HEX06P IN_V13hex3 5HEX35PIN _U22hex10HE

21、X10P IN_V20hex3 6HEX36P IN_W24hex11HEX11PIN _V21hex40HEX40PIN _U9hex12HEX12P IN_W21hex41HEX41PIN _U1hex13HEX13P IN_Y22hex42HEX42PIN _U2hex14HEX14P IN_AA24hex43HEX43P IN_T4hex1 5HEX15P IN_AA23hex44HEX44PIN _R7hex16HEX16PIN _AB24hex 45HEX45PIN _R6hex20HEX20PIN _AB23hex 46HEX46P IN_T3322編程下載將程序下載到DE2開發

22、板上,扳動SW0SW2組成控制信號,從七段數碼 管HEX4HEX0h觀察里程和車費。EDA課程設計(論文)用紙第4章仿真過程4.1建立工程(1) 點擊filef new project wizard,新建工程目錄和工程文件 czjf,得如圖4-1所示。圖4-4 輸入源程序13rFdnT P-町k1 曲g d:N dEr,«. rrl t >1 ily |fUr 1 占F 5jSh ifethAriPi¥- =rf 諱日門 gl加Al Apli|pfv IK I flOrArPThbM C制 Tf 曲 nd A pg |ht 叭世 fsa 詁WbF 賊 hrDFkii0

23、n$rhrot(BullUm >Fwsli圖4-1新建工程和工程文件(2) Next后進入工程文件選擇,輸入新文件czjf,必須注意該文件名必須與將要編輯的程序模塊名相同,如圖4-2所示。5>=*Ht TP-iPilj-i It: ,p7j-B<luihEUir * He Muccl. LhX AdJ AJIki-aJJdlI* UeEiCiKfi 山叔沖 iio tl * gg N(r*.典u w d 呃七 止 d«-4gn 傭$ 力 iFi* 皿綽 muIOr iZh ILUI-ll.打MAI IIIllUtg< Ml Ma5b*c6 lh«-&

24、gt; KPrJiKMUl IblAkKf:t A I Fiai diEDA課程設計(論文)用紙(3) 然后Next設置器件信息,接下來一直 Next直到結束工程建立。4.2 建立 Verilog HDL文件(1)單擊file new,進入下面選擇界面,選擇 Verilog HDLFile OK。如圖4-3所示。hleuCMitus I P-qccip-SQFC 3utder 引:ilem-Cellar FiHe:-禺-LiLI趨Sleek Oiggran/SchmdliD Fici ! ECI F Fid:-StEWachre l-rie- EyfbeMeqbg NDL Fib! To Su

25、pt Fl亡- Vl-LlLIlfe自 Herior/Rlfls.HrtndcLiriial Pi ild-Futirrt) File'Ntiiiuij) Irilidkdkin Fit Vniriccn/D«bi ggnjFds In Syit4TSoJioa: nd abos Fib 崗 IrAdiFace Fiti- SicTiaiopll Lo» Anal!>» Fie; Vpf'iri Wflvpfflrm Filp3 Otboi Fib>i- Al-DUncudcFfc; RIrrt FiArivtri Dprriptim

26、FilpI £ynop5ys 3*9:ign Con*卜anh FieOK圖4-3 建立Verilog HDL 文件(2)在編輯窗口輸入源程序,保存,編譯,如圖所示。 +E1255iQi7呂34%亮fianodiuLe xaxicourz(scopystare,cik,rsuserctitrei,luchtnaijL-cpijt :旳Gterei,lucrenj reg 5iCqijldrri/!ialKfli j-zf S (EC 3 c dec 匚1上19 :>3cxnj-f (5 二二匸-糾begin.占unj i_uOj qijia=oj 網1-0; iGctierff

27、-o;erd豊 13* i n start = T>begincaierei=03;ljuheng=0;alHG z± (ataztauae JS l>=qi:i1: ai""h arrr= 1 irrh 戶 njT fiC :EDA課程設計(論文)用紙4.3建立波形文件(1)單擊file 7new,進入下面選擇界面,選擇 Vector Waveform File 如圖4-5所示。0K。New!- SDPCBuidet 5膵ItmB- Design Filesj -AHDL FiteB lock Diagram/Sch*emetic Filei :-E

28、DIF Filei -i- State Machine FieI i SisteirWrilog H D L FileI T cl Script Filei :-Verilog HDL File'-VHDLFteIB Memofv Fles!,Hevadeciml fl niehFoimat Hie!- Memexv I nihal臣a lion Fie白 Verilication/Detiuggirg FilesIn System Source? .nd Probes Fie Logic 必畑ef Interface File S ignalTap II Logic Analver

29、Fiten.L;ir-n圖4-5 建立波形文件(2)設置相關端口信號,設置之后保存波形文件,重新進行編譯。4.4仿真結果各模塊模擬仿真結果如下:(1)計算里程和車費模塊taxicount模塊定義輸入輸出端口如下: elk:全局時鐘信號,這里為1Hz的時鐘。stoP:當stop=0時,車停止;stop=1時,車沒停止。start:當start= 0時,車起動,但沒有走;Pause: 當 Pause =0時,車暫停;chefei:表示車費。luehe ng:表示里程。start= 1時,車開動了。pause =1時,車不暫停。19在Altera公司的軟件工具Quartus仿真后得到的波形如圖3-2

30、所示:n( Windows XP環境下)中編譯和波形EDA課程設計(論文)用紙5GO.O nn400.0 N420 0 皿440.0 Z4S0.Cacliefeit &clkU 1aU 1pUivTJStartU 1SlOQuTOO圖3-2計算里程和車費模塊的仿真波形(2)七段顯示譯碼器模塊ymq8421程序定義輸入輸出端口如下:a:輸入的4位二進制數。hex:輸出的1位十六進制數。在Altera公司的軟件工具Quartus n (Windows XP環境下)中編譯和波形仿真后得到的波形如圖3-4所示:7a>aV al T pJE10 P nsM 9 r?30 9 ns40 ny

31、12. Ei lx呂品0Q aijF1.0y1X2S3>450 h5Xti luui1.lUUJULILi1!lliiJUl* uiuuluuYUllLUUU圖3-4七顯示譯碼器的仿真波形(3)動態顯示模塊dis play模塊定義輸入輸出端口如下: Clk全局時鐘信號,這里為1Hz的時鐘。dis0,dis1,dis2,dis3,dis4,dis5,dis6,dis7 譯碼模塊輸出的數據。HEX0,HEX1,HEX2,HEX3fc段數碼管顯示的數據。在Altera公司的軟件工具Quartus n (Windows XP環境下)中編譯和波形仿真 后得到的波形如圖3-6所示:Vinta打in砂

32、國ailE :<EI2岳IIE J4I13a>J2:LkS30 11 sO皿+LS ILCItS7lil心B iL14Mr 'E 1155譯茹1E勺L自lnqS iLcTt lini t WlOiI WU t iconr iiu t UUUl1 IMJ£ 1001 £ 0301 i 03 i f OOHE Don狀piqnpip jCTiioDSO *1卩叩也;ifjingnn 來頁而Q】iQ】LO 炸imiii 3Cmqllo X558i】i 口TToilo *g)iii 崑頁帀OOLOLDD X5)111C:Q 壬 DJI HOP ; 0011町<QQIHDQ -麗?fTOi頑'莫 isotMtrk ooowoo * iG切Ml)croi: icocooi 燈仙 POO jlTi麗561工 nnnnnnnrmumnnmuinvmnnnwjmnnnjvmmtitooco ujaill UDllVX PS?Ji:Co£ Ditbiio DDlOQl sioiafl圖3-6動態顯示的仿真波形U10 nzEDA課程設計(論文)用紙(4)出租車計費器電路程序定義輸入輸出端口如下:elk:全局時鐘信號,這里為1Hz的時鐘。stoP:當stop=0時,車停止;stop=1時,車沒停止。start:當start= 0時,車

溫馨提示

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

評論

0/150

提交評論