出租車計費器的FPGA實現含VHDL代碼_第1頁
出租車計費器的FPGA實現含VHDL代碼_第2頁
出租車計費器的FPGA實現含VHDL代碼_第3頁
出租車計費器的FPGA實現含VHDL代碼_第4頁
出租車計費器的FPGA實現含VHDL代碼_第5頁
免費預覽已結束,剩余20頁可下載查看

下載本文檔

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

文檔簡介

1、單由蕾子大冬可編程邏輯器件電路設計課程設計報告出租車計費器的 FPGA 實現華南農業大學工程學院摘要出租車計費系統利用 VHD 印言,以 MAX+PLUS 軟件作為開發平臺而設計。系統包括五大模塊一一主控模塊、分頻模塊、里程模塊、計費模塊和顯示模塊;預置和模擬汽車啟動、停止、計費、暫停等功能,并動態掃描顯示車費與里程。關鍵詞:出租車計費系統 VHDL 語言 MAX+PLUSHFPGA 數字系統1 方案比較與選擇(須詳細闡述創新點或新見解)12 底層文件仿真與分析 42.1 底層文件仿真 42.2 底層文件分析 43 頂層文件仿真與分析 7頂層文件仿真 7頂層文件分析 74 硬件驗證分析 85

2、課程設計心得 9Abstract10參考文獻 11附錄(源代碼)1.方案比較與選擇方案一數碼管顯示圖 1 圖 2 出租車計費器方案一原理框圖-Numbered_0175a590-6d21-4f18-841e-c83d0a120369-Numbe出租車計費器方案一原理基于 CPLD/FPG 的出租車的組成如圖 1 所示。各部分主要的功能如下:A 計數器對車輪的傳感器送來的脈沖信號進行計數(每轉一圈送一個脈沖)。不同車型的車輪可能不一樣, 通過“設置 1”對車型做出選擇, 以實現對不同車型直徑的車進行調整。B 計數器對百米脈沖進行累加,并輸出實際的公里數的 BCD 碼給出譯碼動態掃描模塊。每計,滿

3、 500 送出一個脈沖給出 C 計數器。“設置 2”實現起步公里數預制。C 計數器實現步長可變(即單價可調)的累加計數,每 500 米計費一次。”設置 3”用來完成超價加費,起步價預制等。譯碼/動態掃描見路程與費用的數字譯碼后動態掃描的方式驅動數碼管。(5)數碼管顯示將公里數和計費金額平均用四位數碼管顯示(三位整數,1 為小數)-Numbered_0175a590-6d21-4f18-841e-c83d0a120369-Numbe出租車計費器方案一優點根據車型的車輪直徑來進行脈沖調整,因為實際車輪大小并非完全一致,需要根據實際大小而重新設置;起步價調整。起步價調整解決了由于地域的同步而導致起步

4、價的不同,從而是出租車計費系統有更廣和廣闊的市場,同時也解決了由于起步價調整而更換計費系統的問題。-Numbered_0175a590-6d21-4f18-841e-c83d0a120369-Numbe出租車計費器方案一缺點計費系統的精度不高,里程計費精度太低,在設計過程中設置車輪的直徑過于復雜,不利于系統的完成。方案二圖 2 出租車計費器方案二原理框圖-Numbered_0175a590-6d21-4f18-841e-c83d0a120369-Numbe出租車計費器方案二原理基于 FPG 破計的出租車計費器系統如圖 2 所示,各模塊功能如下:(1)分頻模塊:分頻模塊主要采用的是加法分頻電路,

5、該分頻器為十分頻電路,并且分頻器帶有“開始”/”“清零”端(ENABLE 的高電平是開始),將分頻得 CLK2 用于里程計費模塊的脈沖。(2)車態模塊:車態模塊主要利用狀態機原理。將出租車計費系統設置成四個狀態,STATE=00”實現的是清零操作;STATE=01”是顯示在行駛 3km 以內,只收起步價 7.00 元狀態;STATE=10”是車行駛超過 3km 后, 按每公里 2.2 元計費; STATE=11”行駛路程達到或超過 9km后(車費達到 20 元),每公里加收 50%勺車費,車費變成按每公里 3.3 元開始計費。并把每一狀態傳輸給計費模塊。(3)控制模塊:控制模塊屬于整個出租車系

6、統的頂層文件,負責這個系統,T_CLR是清零鍵, 即歸零顯示; T_STO 是暫停信號; T_ENABLE 是使能信號, 是啟動鍵,T_ENABLE=0時啟動計費器。(4)里程模塊:里程模塊的一個基準時鐘,實現加 0.1 公里,并將十進制數轉化成四位 BCM,傳輸給顯示電路顯示。(5)計費模塊:計費模塊接收來自車態模塊的狀態信號和分頻電路的十分頻脈沖作基準時鐘。計費模塊設置了四個狀態,第一個狀態保持屬于清零狀態,第二狀態保持顯示“007.0,第三個狀態實現一個脈沖加 2.2,第四個狀態是一個脈沖加 3.3。將十進制的計費轉化成 BCD(專輸給顯示模塊。(6)顯示模塊: 顯示模塊是由七段 LED

7、 數碼譯碼和動態掃描兩部分組成。 采用的是共陰極數碼管,根據十六進制數和七段顯示段碼表的對應關系,其中要求路程和車費毒藥用一位小數點來表示,所以須要設置一個控制小數點的變量,即程序中的 DR 這段程序所示的是在數碼管的第二、六個數碼管后面白顯示小數點,實現了路程和車費都用 1 位小數點表示的功能,要主要的是選擇的掃描頻率不合適,可能會出現小數點閃動的情況。但只要掃描頻率不少于 24H 乙人眼就感覺不到數碼管的閃爍。 數碼管控制及譯碼顯示模塊將 BCD 信號的輸入用七段數碼管顯示,由七段發光二極管組成數碼顯示,利用字段的不同組合,可表示 0-9十個數字。-Numbered_0175a590-6d

8、21-4f18-841e-c83d0a120369-Numbe出租車計費器方案二優點方案二繼承了方案一優點,并有效的解決了方案一的精度低的缺點,并且在原件設計上容易實現。-Numbered_0175a590-6d21-4f18-841e-c83d0a120369-Numbe出租車計費器方案二缺點系統的模塊過多,不利于頂層文件的實現。-Numbered_0175a590-6d21-4f18-841e-c83d0a120369-Numbe出租車計費器方案二可行性系統各個模塊的設計相對于方案一容易,特別是分頻模塊和車態模塊。2.底層文件仿真與分析出租車計費器系統電路圖 4 分頻模塊仿真圖車態模塊分析

9、及仿真當車處于暫停時,車費保持值不變,定義此時 ST 的狀態值為 00;當車程小于 3 公里2.1.1 分頻模塊分析及仿真圖圖 3 出租車計費器系統電路分頻電路實現的功能是:將里程模塊的基準時鐘進行十分頻,即 CLK0 每來四個脈沖,該模塊即將一個脈沖發出,作為計費模塊的基準時鐘,如圖4 所示。仿真圖實現每 10個脈沖跳變IDOns1.1監mmEK回WFM前加眥恤q|用T添:酶時,定義此時 ST 的狀態值為 01;車程大于 3 公里小于 9 公里時,定義此時 ST 的狀態值為 10;車程大于 9 公里時,定義此時 ST 的狀態值為 11,如圖 5 所示。圖 5 車態模塊仿真圖計費模塊仿真當車程

10、在 3 公里內時車費保持 7 元不變;當車程大于 3 公里小于 9 公里時,每來一個驅動脈沖相當于車前進了 1 公里,即車費要加 2.2 元;當車程大于 9 公里每來一個脈沖車費要加 3.3元,如圖 6 所示。里程模塊是每一個脈沖到來,相當于車向前走了 0.1 公里,所以車程自加一公里,如圖 7 所示。電H1E-STO命ENABLEn-C宙tf-CLK哥STMW狀態從 0 跳變到 1,1到 2,跳變時間過短,未能顯示 0、1R肝|蜥,加|而1-ime:|毗,9詆hi怕鬧:肉7輸Value.口junuori110D2500.0ns600Dns狀態從 o 跳變到1,跳變時間過短,未能顯示 0IER

11、af網.7嚙*卜|Tmr涮1昨Inll網廨密口9C8jEWHEI圖 7 里程模塊仿真圖顯示模塊仿真采用 8 位動態掃描顯示車費和車程,其中 DI1-DI4 是計費輸入,DI5DI6 是里程輸入,WE是接入 74LS138#碼器,SG數碼管的七段顯示接口。當 DI1-DI8 輸入“41753452,WEI=0時,第一個數碼管應該顯示 4,對應數碼管譯碼為“1100110;當 WEI=1時, 第二個數碼管應該顯示 1,對應數碼管譯碼”0000110”,轉為十進制是6,如圖 8 所示。NHEE:ACLK21(X1jflDCDO由Dt5*DE婚SG安ET2005僭 to355.0nsName:itf-

12、8rtf-CLK_CLK05臉皿I100.0ns2000ns300.0ns400.0ns50D811110,tauwwwwwmwvwwwwwuwWv麗呼就iDODDDODODDDODODDDE3D32D5D5Indenal:|1.口us圖 8 顯示模塊仿真圖頂層文件仿真與分析頂層文件為出租車計費器控制模塊,有五個輸入端口,分別是 T_CLR 青零信號,低電平清零;T_ENABL 時使能信號,當使能信號為高電平時,開始計費,里程;T_ST 劭暫停信號,高電平有效; T_WEI 是控制 74LS138 譯碼器的控制端, 進行數碼管的位選擇,T_SG 是控制數碼管的段,實現數碼管顯示內容;T_DO

13、現第二位與第六位的小數點段,如圖 9、圖 10 所示。Ret頤|叩Tims|*2電|Interval:|262usKame:50d.DnsI.Ous1L-EMAHLET_wei 使數碼管逐位輸出ILTSTOLT_CLK0sTJ改4T_SG0ooo網XOH例noXJuX眥如X0如X則:而)0111111MinMill”; ;oni10 是所指部分放大圖圖 9 頂層文件仿真圖Starr|131訂3ug|EM13切4u5|inrengi:近|NsniSVJIBIIR13.133Bus13.1435us0巾?rf-T_CLR1eLENABLE113.1532usD11B001B1001111eT_CL

14、K0T_CLK2痂MT_的T_SG31JX) )T.硬件驗證分析程序代碼在 MAXPLUSI 成功編寫和仿真完畢,然后拷入 FPGA 硬件驗證步驟及遇到的問題:(1)裝 FPGAS 驗箱驅動。由于實驗前沒有裝驅動,結果當 configure 時,電腦顯programinghardwareisbusy。(2)在配置的時候,應該注意3.sof 文件用于利用編程電纜 ByteBlaster 進行配置.而.pof 用于配置 EPROM.(EPROW 能寫入一次),所以在設計的時候,線可用編程電纜調試無誤后,在寫入 EPROW.(3)代碼下載成功后,發現數碼管不能顯示。原因是:把數碼管的引腳在顯示模塊設

15、置,而真正下載到實驗箱的代碼是頂層模塊,導致數碼管毫無顯示。正確是將端口設置全部設置在頂層模塊中。(4)在動態掃描中,小數點設置成了動態掃描的障礙。解決方法是,將 DP 獨立設置一位,不需要動態掃描。因為小數點是不變的。計費與里程的時鐘不同步,導致計費和里程顯示不同步。出現,里程顯示不變化,而計費開始。(5)當使能信號開始時,并非顯示 000.0007.0,有亂碼出現的情況,解決方法是設置初始化代碼。總體看來,這次硬件調試是很成功的,雖然中間遇到困難,都被一一解決,收獲很大。.課程設計心得這次課程設計中,我們主要是運用 VHD 印言設計了一個出租車計費器,并且用層次化的設計方法來實現這個電路。

16、在程序編寫結束后,我們還對該程序進行了調試,能按預期的效果進行模擬汽車啟動、停止、暫停等功能,基本完成課程設計的要求。通過此次課程設計,我們更進一步的深入了解了 VHD 段計語言,并通過使用對它有了更深的體會。對于編程過程中可能遇到的問題有了一定的了解,也明白了其中的一些注意事項,對于下次進行編程設計有很大的幫助和提高。這次課程設計的最大收獲在于我們學會了如何在軟件仿真成功的基礎上在實驗箱上調試出我們所要的結果。總之,這次實驗不僅僅加強了我的動手編程能力,也大大加強了團隊合作以及設計能力,使我在理論學習和編程練習方面都獲得了較大的收獲AbstractTaxibillingsystemusing

17、VHDLlanguage,inordertoMAX+PLUSHsoftwareisdesignedasadevelopmentplatform.Systemconsistsoffivemodules-maincontrolmodule,sub-frequencymodule,mileagemodule,billingmoduleanddisplaymodule;presetsandanalogautostart,stop,billing,andpausefunctions,anddynamicallyscanshowsfareandmileage.Keywords:Taxibillingsys

18、temVHDLlanguageMAXPLUSHFPGAdigitalsystem參考文獻.潘松,黃繼業.EDA 技術實用教程.科學出版社.2005.2:145156.候伯亨,顧新.VHDL 硬件描述語言與數字邏輯電路設計.西安電子科技大學.2004.11:4548.附錄(源代碼)一、10 分頻模塊源代碼LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYfenpinIS-10 分頻模塊PORT(CLK0:INSTD_LOGIC;FOUT:OUTSTD_LOGIC;ENABLE3:INSTD_LO

19、GIC);ENDfenpin;ARCHITECTUREONEOFfenpinISBEGINPROCESS(CLK0,ENABLE3)VARIABLECNT:STD_LOGIC_VECTOR(3DOWNTO0)量 cntVARIABLEFULL:STD_LOGIC;BEGINIFENABLE3=0THENCNT 尸1001;ELSIFCLK0EVENTANDCLK0=1THEN-一個基準時鐘為 0.1 公里IFCNT=1001THENCNT:=0000;FULLk1;ELSECNT:=CNT+1;FULL:=0;ENDIF;ENDIF;FOUT0);ELSIFCLKEVENTANDCLK=1TH

20、ENIFSTO=1THENSTATEk00;CQI:=CQI;-暫停ELSIFENABLE=1THENCQI:=CQI+1;IFCQI30ANDCQI=90THENSTATEk10;-大于 3 公里小于 9公里ELSESTATEk11;-大于 9 公里ENDIF;ENDIF;ENDIF;STQ1:=Q1;Q2:=Q2;Q3:=Q3;Q4:=Q4;-停止狀態時,車費保持不變WHEN01=Q1:=0000;Q2:=0111;Q3:=0000;Q4:=0000;-小于 3 公里時顯示 007.0 元WHEN10=IFQ11000THEN-大于 3 公里小于 9 公里時車費各位顯示Q1:=Q1+2;-

21、每來一個脈沖,相當于前進 1 公里,車費加 2.2 元IFQ21000THENQ2:=Q2+2;ELSEQ2:=Q2-8;IFQ31001THENQ3:=Q3+1;ELSEQ3:=0000;IFQ41001THENQ4:=Q4+1;ELSEQ4:=0000;ENDIF;ENDIF;ENDIF;ELSEQ1:=0000;IFQ20111THENQ2:=Q2+3;ELSEQ2:=Q2-7;IFQ31001THENQ3:=Q3+1;ELSEQ3:=0000;IFQ4IFQ10111THEN-車程大于 9 公里時車費各位顯示,每來一個脈沖,車費加 3.3 元Q1:=Q1+3;IFQ20111THENQ

22、2:=Q2+3;ELSEQ2:=Q2-7;IFQ31001THENQ3:=Q3+1;ELSEQ3:=0000;IFQ41001THENQ4:=Q4+1;ELSEQ4:=0000;ENDIF;ENDIF;ENDIF;ELSEQ1:=Q1-7;IFQ20101THENQ2:=Q2+4;ELSEQ2:=Q2-6;IFQ31001THENQ3:=Q3+1;ELSEQ3:=0000;IFQ4NULL;ENDCASE;ENDIF;ENDIF;C1=Q1;C2=Q2;C3=Q3;C4=Q4;ENDPROCESS;ENDONE;四、計程模塊源代碼USEIEEE.STD_LOGIC_1164.ALL;USEIE

23、EE.STD_LOGIC_UNSIGNED.ALL;ENTITYjichenIS-計算路程的模塊PORT(CLK_CLK:INSTD_LOGIC;-一個脈沖來相當于走了 0.1 公里CLR2:INSTD_LOGIC;-清零信號ST1:INSTD_LOGIC;ENABLE1:INSTD_LOGIC;C5:OUTSTD_LOGIC_VECTOR(3DOWNTO0);C6:OUTSTD_LOGIC_VECTOR(3DOWNTO0);C7:OUTSTD_LOGIC_VECTOR(3DOWNTO0);C8:OUTSTD_LOGIC_VECTOR(3DOWNTO0 以上 4 位為路程的四位顯示位ENDji

24、chen;ARCHITECTUREONEOFjichenISBEGINPROCESS(CLK_CLK,CLR2,ST1,ENABLE1)VARIABLEQ5:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEQ6:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEQ7:STD_LOGIC_VECTOR(3DOWNTO0);VARIABLEQ8:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFCLR2=0THENQ5:=0000;Q6:=0000;Q7:=0000;Q8:=0000;ELSIFCLK_CLKEVENTANDCLK_CLK

25、=1THENIFST1=1THENQ5:=Q5;Q6:=Q6;Q7:=Q7;Q8:=Q8;-如果停止, 保持原來路程ELSIFENABLE1=1THEN-計費使能信號IFQ51001THENQ5:=Q5+1;-來一個時鐘,路程加 0,1 公里ELSEQ5:=0000;IFQ61001THENQ6:=Q6+1;ELSEQ6:=0000;IFQ71001THENQ7:=Q7+1;ELSEQ7:=0000;IFQ81001THENQ8:=Q8+1;ENDIF;ENDIF;ENDIF;ENDIF;ENDIF;ENDIF;C5=Q5;C6=Q6;C7=Q7;C8=Q8;ENDPROCESS;ENDONE;五、顯示模塊源代碼LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdisplayIS-8 位數碼管動態顯示模塊PORT(DI1:INSTD_LOGIC_VECTOR(3DOWNTO0);DI2:INSTD_LOGIC_VECTOR(3DOWNTO0

溫馨提示

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

評論

0/150

提交評論