eda課程設計報告--出租車計價器_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設 計</p><p>  課程設計名稱: 出租車計價器 </p><p>  專 業(yè) 班 級 </p><p>  學 生 姓 名 : </p><p>  學 號 :

2、 </p><p>  指 導 教 師 : </p><p>  課程設計時間: </p><p><b>  1 設計任務及要求</b></p><p>  出租車計價器根據(jù)乘客乘坐汽車行駛距離

3、和等候時間的多少進行計價,并在行程中同步顯示車費值。從起步開始,行程3公里內(nèi),且等待累計時間2分鐘內(nèi),起步費10元;3公里以外以每公里1.6元計費,等待累計時間2分鐘外以每分鐘1.5元計費。并能顯示行駛公里數(shù)、等待累計時間、總費用。設計的主要技術指標:(1)計價范圍:0—999.9元 計價分辨率:0.1元(2)計程范圍:0—99公里 計程分辨率:1公里(3)計時范圍:0—59分 計時分辨率:1分 本次設

4、計中假設出租車的速度傳感器具有出租車每行駛1Km提供1000個脈沖信號的特性。當行駛速度小于等于6KM/h時為等待。本設計的最終任務是顯示出租車的等待時間和行駛里程,并計算出所需費用。根據(jù)要求需要進行如下分工,首先要有一個分頻模塊(FPQ)產(chǎn)生系統(tǒng)工作用的基準信號1HZ,供系統(tǒng)中的有關模塊計時用。其次要有一個判斷等待與否的模塊(DDPB),再者就是要有計時和計程模塊(DDSJ和LCJS),最后要有計費模塊和顯示譯碼模塊(JFZ和YIMA

5、)。</p><p>  2設計原理及總體框圖</p><p><b>  (1)設計總體框圖</b></p><p><b>  圖1 總設計框圖</b></p><p><b> ?。?)設計總原理圖</b></p><p>  圖2 設計總原理

6、圖</p><p>  設計總原理:測控FPGA芯片通過采集速度傳感器脈沖信號WCLK進行行駛里程計算,利用外部脈沖信號CLK1產(chǎn)生標準時鐘信號,用來計算等待時間,最后根據(jù)行駛里程、等待時間來計算計價值。并用譯碼電路顯示行駛里程、等待時間和計價值。</p><p><b>  3 程序設計</b></p><p>  1.VHDL語言簡單介紹&

7、lt;/p><p>  VHDL語言(VHSIC Hardware Description Language,甚高速集成電路硬件描述語言)是一種設計、仿真、綜合的標準硬件描述語言,是對可編程邏輯器件進行開發(fā)與設計的重要工具,其優(yōu)點是:支持自上而下和基于庫的設計,支持范圍廣,具有多層次描述系統(tǒng)硬件功能的能力。VHDL語言已成為IEEE的一種工業(yè)標準,是實現(xiàn)信息系統(tǒng)硬件開發(fā)所必備的知識和技能。VHDL程序結構的顯著特點是

8、,任何一個工程設計或稱設計實體(可以是一個門電路、一個芯片、一塊電路板乃至整個系統(tǒng))都可以分成內(nèi)外兩個部分,外面的部分稱為可視部分,用實體來說明端口特性;里面的部分稱為不可視部分,用結構體來說明其內(nèi)部功能和算法,由實際的功能描述語句組成。</p><p>  2、模塊程序及相應說明</p><p><b> ?。?)分頻器模塊</b></p><p

9、><b>  --FPQ.VHD</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_AR

10、ITH.ALL;</p><p>  ENTITY FPQ IS</p><p>  PORT(CLK: IN STD_LOGIC; --CLK=100HZ</p><p>  CLK1HZ: OUT STD_LOGIC); --CLK1HZ=1HZ</p><p>  END ENTITY FPQ;</p>

11、<p>  ARCHITECTURE ART OF FPQ IS</p><p>  SIGNAL CNT50: INTEGER RANGE 0 TO 49;</p><p>  SIGNAL CLK1: STD_LOGIC;</p><p><b>  BEGIN</b></p><p>  PROCESS(

12、CLK)</p><p><b>  BEGIN</b></p><p>  IF CLK'EVENT AND CLK='1' THEN</p><p>  IF CNT50=49 THEN</p><p><b>  CNT50<=0;</b></p>

13、<p>  CLK1<= NOT CLK1; --進行100分頻</p><p><b>  ELSE</b></p><p>  CNT50<=CNT50+1;</p><p><b>  END IF;</b></p><p><b>  END IF;

14、</b></p><p>  CLK1HZ<=CLK1;</p><p>  END PROCESS;</p><p><b>  END ART;</b></p><p>  由于現(xiàn)實我們只有某些頻率的信號,而可能沒有我們需要的頻率的信號,因此我們需要用到分頻器來用已有頻率的時鐘信號來產(chǎn)生我們需要的頻

15、率的時鐘信號。本實驗是將100HZ的信號分頻后產(chǎn)生1HZ的基準時鐘信號。</p><p><b> ?。?)等待判別模塊</b></p><p>  --等待判別模塊DDPB.VHD</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p&

16、gt;<p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  ENTITY DDPB IS</p><p>  PORT(START,WCLK,CLK1HZ: IN STD_LOGIC;</p><p>  

17、DDBZ: OUT STD_LOGIC);</p><p><b>  END DDPB;</b></p><p>  ARCHITECTURE ART OF DDPB IS</p><p>  SIGNAL T1min :STD_LOGIC;</p><p>  SIGNAL WCLK1: STD_LOGIC_VECT

18、OR(7 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(START,CLK1HZ) --產(chǎn)生1分鐘的周期性信號</p><p>  VARIABLE CNT60: STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p><b>

19、  BEGIN</b></p><p>  IF START='1' THEN</p><p>  CNT60:="00000000";</p><p>  T1min<='0';</p><p>  ELSIF CLK1HZ'EVENT AND CLK1HZ=&#

20、39;1' THEN</p><p>  IF CNT60="00111100" THEN --CNT60=60</p><p>  T1min<='1';</p><p>  CNT60:="00000000";</p><p><b>  ELSE</

21、b></p><p>  CNT60:=CNT60+'1';</p><p>  T1min<='0';</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  E

22、ND PROCESS;</p><p>  PROCESS(START,WCLK,T1min) --對WCLK進行一分鐘內(nèi)上升沿的計算</p><p><b>  BEGIN</b></p><p>  IF START='1' THEN</p><p>  WCLK1<="000000

23、00";</p><p>  ELSIF WCLK'EVENT AND WCLK='1' THEN</p><p>  IF T1min='1' THEN</p><p>  WCLK1<="00000000";</p><p><b>  ELSE<

24、/b></p><p>  WCLK1<=WCLK1 +'1';</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  PROCES

25、S(WCLK1,T1min) --當速度等于零時等待</p><p><b>  BEGIN</b></p><p>  IF T1min'EVENT AND T1min='1' THEN</p><p>  IF WCLK1<="00000010”</p><p>  DDB

26、Z<='1';</p><p><b>  ELSE</b></p><p>  DDBZ<='0';</p><p><b>  END IF ;</b></p><p><b>  END IF;</b></p>&

27、lt;p>  END PROCESS;</p><p><b>  END ART;</b></p><p>  汽車啟動開始計價后,等待時間和行駛時間的價格不一樣,因此要產(chǎn)生等待時間的標志,本設計根據(jù)WCLK脈沖和時間信號CLK1HZ,來判斷汽車行駛的速度是否小于等于6KM,如果是,則產(chǎn)生等待標志。</p><p>  (3)等待時間計

28、算模塊</p><p><b>  --等待計時模塊</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  US

29、E IEEE.STD_LOGIC_ARITH.ALL;</p><p>  ENTITY DDJS IS</p><p>  PORT(START,CLK1HZ,DDBZ: IN STD_LOGIC;</p><p>  DDSJ:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  SJBZ: OUT ST

30、D_LOGIC);</p><p><b>  END DDJS;</b></p><p>  ARCHITECTURE ART OF DDJS IS</p><p>  SIGNAL T1min :STD_LOGIC;</p><p>  SIGNAL FS,FG: STD_LOGIC_VECTOR(3 DOWNTO

31、0);</p><p><b>  BEGIN</b></p><p>  PROCESS(START,CLK1HZ) --產(chǎn)生1分鐘的周期性信號</p><p>  VARIABLE CNT60: STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p><b>  BEGIN</

32、b></p><p>  IF START='1' THEN</p><p>  CNT60:="00000000";</p><p>  T1min<='0';</p><p>  ELSIF CLK1HZ'EVENT AND CLK1HZ='1' TH

33、EN</p><p>  IF CNT60="00111100" THEN</p><p>  T1min<='1';</p><p>  CNT60:="00000000";</p><p><b>  ELSE</b></p><p&g

34、t;  CNT60:=CNT60+'1';</p><p>  T1min<='0';</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p>&

35、lt;p>  PROCESS(START,DDBZ,T1min)</p><p><b>  BEGIN</b></p><p>  IF START='1' THEN</p><p>  FS<="0000"; FG<="0000";</p><p&

36、gt;  ELSIF T1min'EVENT AND T1min='1' THEN --一分為單位計算等待時間</p><p>  IF DDBZ='1' THEN --有等待標志信號產(chǎn)生時開始等待時間的計算</p><p>  IF FG=9 THEN FG<="0000";</p><p>  

37、IF FS=5 THEN FS<="0000";--當時間為59分鐘時清零</p><p><b>  ELSE</b></p><p>  FS<=FS+'1';</p><p><b>  END IF;</b></p><p><b>

38、  ELSE</b></p><p>  FG<=FG+'1';</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p>

39、<p>  END PROCESS;</p><p>  DDSJ(7 DOWNTO 4)<= FS;</p><p>  DDSJ(3 DOWNTO 0)<= FG;</p><p><b>  END ART;</b></p><p>  根據(jù)產(chǎn)生的等待標志進行計時計算,當?shù)却龢酥綝DBZ=‘1

40、’時,利用產(chǎn)生的分脈沖進行以分為單位的等待時間計算。</p><p><b> ?。?)里程計算模塊</b></p><p><b>  --里程計算模塊</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p

41、><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  ENTITY LCJS IS</p><p>  PORT(START,WCLK,DDBZ: IN STD_LOGIC;</p><p>  L

42、CZ:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  LCBZ: OUT STD_LOGIC);</p><p><b>  END LCJS;</b></p><p>  ARCHITECTURE ART OF LCJS IS</p><p>  SIGNAL QMZ :STD_

43、LOGIC_VECTOR(7 DOWNTO 0);</p><p>  SIGNAL FS,FG: STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(START,WCLK)</p><p>  VARIABLE MZ: STD_

44、LOGIC_VECTOR(11 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  MZ:=“000000000000”;</p><p>  QMZ:= “00000000”;</p><p>  IF WCLK’EVENT AND WCLK=’1’THEN </p>

45、<p>  MZ:=MZ+’1’;</p><p>  IF MZ:= “001111101000”</p><p>  QMZ<=QMZ+'1';</p><p>  MZ:=“000000000000”;</p><p>  IF QMZ>=3 THEN</p><p>  

46、LCBZ<='1'; --當行駛里程大于3Km時產(chǎn)生標志信號</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PRO

47、CESS;</p><p><b>  LCZ<=QMZ;</b></p><p><b>  END ART;</b></p><p>  當DDBZ=‘0’時,汽車處于行駛過程中,根據(jù)WCLK脈沖(汽車行駛1M產(chǎn)生一個脈沖)計算行駛里程。由于行駛里程分辨率為1公里,因此需要先以米為單位計算到1KM時行駛里程再加1

48、。</p><p><b> ?。?)計費值模塊</b></p><p><b>  --計費模塊</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.ST

49、D_LOGIC_UNSIGNED.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  ENTITY JFZ IS</p><p>  PORT(START: IN STD_LOGIC;</p><p>  LCZ:IN STD_LOGIC_VECTOR(7 DOWNTO 0);<

50、/p><p>  DDSJ:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  JJZ:OUT INTEGER RANGE 0 TO 9999);</p><p>  END ENTITY JFZ;</p><p>  ARCHITECTURE ART OF JFZ IS</p><p>

51、  SIGNAL JFZ1 : INTEGER RANGE 0 TO 9999;</p><p>  SIGNAL LCZ1,DDSJ1,DDSJ2,DDSJ3 : INTEGER RANGE 0 TO 199;</p><p><b>  BEGIN</b></p><p>  LCZ1<=CONV_INTEGER(LCZ); --里

52、程值</p><p>  DDSJ2<=CONV_INTEGER(DDSJ(7 DOWNTO 4));DDSJ3<=CONV_INTEGER(DDSJ(3 DOWNTO 0));</p><p>  DDSJ1<=DDSJ2*10+DDSJ3; --等待時間計算</p><p>  PROCESS(START,LCZ,DDSJ) </p&

53、gt;<p><b>  BEGIN</b></p><p>  IF START='1' THEN --車啟動顯示起步價</p><p><b>  JFZ1<=30;</b></p><p>  ELSIF LCZ1<=3 THEN --車行駛中的費用計算</p&g

54、t;<p><b>  JFZ1<=30;</b></p><p>  ELSIF LCZ1<=3 THEN</p><p>  JFZ1<=30+DDSJ1*0.5;</p><p>  ELSIF LCZ1>3 THEN</p><p>  JFZ1<=30+(LCZ

55、1-3)*10+DDSJ1*0.5;</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p

56、><p>  END PROCESS;</p><p>  JJZ<=JFZ1;</p><p><b>  END ART;</b></p><p>  由行駛里程和等待時間,再根據(jù)計費標準進行計價值JJZ的計算。</p><p><b> ?。?)譯碼顯示模塊</b>&

57、lt;/p><p><b>  --譯碼模塊</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

58、.STD_LOGIC_ARITH.ALL;</p><p>  ENTITY YIMA1 IS</p><p>  PORT(LCZ:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  JJZ:IN INTEGER RANGE 0 TO 9999;</p><p>  DDSJ:IN STD_LOGIC_

59、VECTOR(7 DOWNTO 0);</p><p>  LCZSX,LCZGX,DDSJSX,DDSJGX,JJZBX,JJZSX,JJZGX:</p><p>  OUT STD_LOGIC_VECTOR(3 DOWNTO 0); </p><p>  END YI

60、MA1;</p><p>  ARCHITECTURE ART OF YIMA1 IS</p><p>  SIGNAL LCZ1 : INTEGER RANGE 0 TO 99 ;</p><p>  SIGNAL LCZS,LCZG,JJZB,JJZS,JJZG: INTEGER RANGE 0 TO 9 ;</p><p><b&

61、gt;  BEGIN</b></p><p>  DDSJSX<=DDSJ(7 DOWNTO 4); DDSJGX<=DDSJ(3 DOWNTO 0); --等待時間譯碼顯示</p><p>  LCZ1<=CONV_INTEGER(LCZ);</p><p><b>  END;</b></p>

62、<p>  將等待時間DDSJ、里程值LCZ和計價值JJZ的百位十位個位轉換成BCD碼,通過譯碼器在七段數(shù)碼管中顯示出來。</p><p><b>  4 編譯及仿真</b></p><p> ?。ǎ保┓抡孳浖uartus II的簡單介紹和說明</p><p>  隨著技術的發(fā)展,用戶對開發(fā)工具的要求越來越高,Altera 公司適時

63、推出了新的開發(fā)工具Quartus II 軟件。Quartus II 集成環(huán)境包括以下內(nèi)容:系統(tǒng)級設計、嵌入式軟件開發(fā)、可編程邏輯器件(PLD)設計、綜合,布局和布線、驗證和仿真。</p><p>  Quartus II 集成環(huán)境除支持MAX 系列、FLEX 系列、ACEX1K 系列器件外,還支持Altera 公司的APEX20K 系列、Stratix 系列、Cyclone 系列和MAX II 系列等新型CPLD

64、/FPGA 器件。</p><p>  Quartus II 設計軟件根據(jù)設計者的需要提供了一個完整的多平臺開發(fā)環(huán)境,它包含整個FPGA 和CPLD設計階段的解決方案。Quartus II 軟件的開發(fā)流程如下圖所示。</p><p>  圖3 QuartusII 軟件的開發(fā)流程</p><p><b> ?。ǎ玻┓抡娌ㄐ螆D</b></p&

65、gt;<p>  圖4  等待判別模塊波形圖</p><p>  圖5 里程值計算模塊波形</p><p>  圖6 等待時間計算模塊波形圖</p><p>  圖7 計價值模塊波形圖</p><p>  圖8 譯碼模塊波形圖</p><p>  圖9  頂層文件波形圖</p><p&

66、gt;  5 硬件調(diào)試與結果分析</p><p>  通過對設計電路的分析,該實驗可選擇NO.0號電路進行硬件驗證,鍵3對應于START輸入信號,WCLK對應于CLK2,CLK1對應于CLK0,八個數(shù)碼管作為等待時間、里程值和計價值的顯示用。選定電路圖之后,再選擇ACEX1K/EP1K30TC144-3器件,輸出信號進行引腳鎖定。下載完成后便可進行硬件驗證和調(diào)試。由于本次課程設計我用的是Quartus Ⅱ軟件,下

67、載出現(xiàn)問題,不能下載。就遺憾的沒有進行硬件驗證。下面是仿真時序圖:</p><p>  圖10 仿真時序圖</p><p>  譯碼過程由于有時間延遲和中間信號替換,導致仿真時序圖出現(xiàn)一些混亂值,但持續(xù)時間很短,不影響譯碼顯示。</p><p><b>  6 參考文獻</b></p><p>  (1)黃智偉. FP

68、GA系統(tǒng)設計與實踐 電子工業(yè)出版社 2005.1</p><p>  (2)焦素敏. EDA課程設計指導書 河南工業(yè)大學 2008.2</p><p>  (3)焦素敏. EDA技術基礎 清華大學出版社 2009.8</p><p> ?。?)譚會生.EDA技術綜合應用實例與分析 西安電子科技大學出版社 2004.11</p><p>

溫馨提示

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

評論

0/150

提交評論