




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、湖南人文科技學院課程設計報告課程名稱:ISP 課 程 設 計 設計題目: 出租車計費器 系 別: 通信與控制工程系 專 業: 電子信息工程 班 級: 05級電信本一班 學生姓名: 袁楚仁 鄒 榮 學 號: 05409117 05409133 起止日期: 2007.12.24 2008. 01. 04 指導教師: 田漢平 鐘明生 教研室主任: 田漢平 指導教師評語: 指導教師簽名: 年 月 日成績評定項 目權重成績1、設計過程中出勤、學習態度等方面0.22、課程設計質量與答辯0.53、設計報告書寫及圖紙規范程度0.3總 成 績 教研室審核意見:教研室主任簽字: 年 月 日教學院(系)審核意見:
2、主任簽字: 年 月 日前 言隨著我國市場經濟的發展,交通也越來越便利,特別是出租車,以快捷、方便的特點早已盛行各個城市,成為城市交通的重要工具。出租車市場從90年代初的起步階段到現在已經進入了高峰期。隨著城市化水平的提高和人民生活水平的改善,出租車的服務也就顯得越來越重要。因此出租車計費器也就應運而生了。本設計就是針對目前出租車計費器的問題設計的一種基于可編程邏輯器件FPGA的ASIC,并基于超高速硬件描述語言VHDL在Altera公司的quartus系列的EP1C6Q240C8芯片上編程實現了整個系統的控制部分,整個自動控制系統由四個模塊構成:信號輸入模塊、計量模塊、數制轉換模塊和譯碼顯示模
3、塊。并用超高速硬件描述語言VHDL編程實現的可同時顯示金額、乘車總路程的“多功能”計費器。有較好的實用價值和較高的可行性。 目 錄 一、整體方案設計11、設計要求12、設計方案比較13、基本設計思想34、系統總體結構3二、詳細設計31、信號輸入模塊的設計32、計量模塊設計33、數制轉換模塊的設計44、譯碼顯示模塊的設計55、原理圖的設計66、系統綜合、仿真、下載67、硬件調試78、設計中遇到的問題與解決辦法79、設計總結8三、心得體會8四、參考文獻9附錄一:計數器A的源程序10附錄二:計數器B的源程序11附錄三:里程數據查找表的VHDL程序12附錄四:車費數據查找表的VHDL程序14 出租車計
4、費器摘要:本設計是針對目前出租車計費器的問題設計的一種基于可編程邏輯器件FPGA的ASIC,并基于超高速硬件描述語言VHDL在Altera公司的quartus系列的EP1C6Q240C8芯片上編程實現了整個系統的控制部分,整個自動控制系統由四個模塊構成:信號輸入模塊、計量模塊、數制轉換模塊和譯碼顯示模塊。并用超高速硬件描述語言VHDL編程實現的可同時顯示金額、乘車總路程的“多功能”計費器。有較好的實用價值和較高的可行性。關鍵字:可編程邏輯器件 超高速硬件描述語言 計費 計程一、整體方案設計1、設計要求 (1)車起步開始計費。首先顯示起步價(本次設計起步費為3.00元),車在行駛1.5km以內,
5、只收起步價3.00元。 (2)車行駛超過1.5 km后,按每0.5公里1元計費(在3.00元基礎上每行駛0.5 km車費加1元),車費依次累加。 (3)車暫時停止(行駛中遇紅燈或中途暫時停車)不計費,車費保持不變。若停止則車費清零,等待下一次計費的開始。設計的主要技術指標如下:a、計價范圍:099元計價分辨率:1元b、計程范圍:099里計程分辨率:1里2、設計方案比較方案一:用單片機實現:通過軟件編程,仿真,調試,符合要求后將程序用編程器寫入到單片機芯片上。利用單片機的中斷響應乘客開車或者等待的請求,進行相應的處理。利用寄存器存放計價器系統運行狀態,從而可以根據整個行程的狀態進行計價。根據分析
6、可畫出如圖1所示的方框圖:16 單片機顯示模塊電源模塊時鐘及存儲器通信模塊圖1 方案一方框圖計數器B(記錄行走里程)計數器A(車輪轉300圈輸出脈沖信號)車費查找表里程查找表里程顯示車費顯示車輪轉速(每轉一圈輸出脈沖信號)圖2 方案二頂層框圖方案二:用FPGA(可編程門陣列)實現:利用硬件描述語言編程,仿真調試后下載到可編程邏輯器件(CPLD)上實現。可以對計程車整個過程進行判斷、處理,整個過程完全實現了自動化和智能化。根據分析可畫出如圖2所示的方框圖:比較而言,方案一的開發及制作成本較低,能較大程度地利用資源,但外圍電路較多,調試復雜,抗干擾能力差,特別對這種計程車的計價器需要長時間不間斷運
7、作的系統,由于主要是軟件運作,容易出錯,造成系統不穩定。方案二將所有器件集成在一塊芯片上,體積大大減小的同時還提高了穩定性,并且可應用EDA軟件仿真,調試,易于進行功能擴展,外圍電路較少,采用硬件邏輯電路實現,其最大的優點是穩定性好,抗干擾能力強,非常適合作為計程車的計價器系統的控制核心。基于對以上各個因素的考慮,我們覺得FPGA實現計程車的計價器的設計更設計的要求,提升設計的可行性。因此,決定選用以FPGA為核心,用VHDL編程來實現計價器的設計。3、基本設計思想(1)根據出租車計費要求,將出租車計程部分由2個計數器來完成分別為計數器A,計數器B。計數器A完成模擬實現車行駛500 m的功能并
8、在達到500米(0.5公里)時輸出高脈沖。計數器B完成路程的記錄,并將記錄的數據送入查找表的地址輸入端。(2)車費的顯示:由查找表來完成,定制兩個查找表,將十六進制的路程與車費數據轉換成十進制數據送入譯碼器,完成數據的輸入即動態數據的顯示。4、系統總體結構基于CPLD的出租車計費器的各部分主要功能包括:信號輸入模塊對車輪傳感器傳送的脈沖信號進行計數(每轉一圈送一個脈沖),并以高低脈沖模擬出租汽車啟動、暫停、停止,具有輸入信號作用;查找表模塊使公里數和計費金額從十六進制轉換成十進制;數碼管顯示模塊將公里數和計費金額均用2位LED數碼管顯示(2位整數)。二、詳細設計1、信號輸入模塊的設計該模塊主要
9、實現現場模擬功能:車輪每轉一圈傳送一個脈沖,并以高低脈沖模擬出租汽車啟動、停止、暫停按鈕,具有輸入信號的作用。在這里我們以時鐘頻率模擬出租車的轉速。由于考慮演示時間的因素,我們選用256hz的時鐘頻率,這樣人眼能夠清楚的看到變化,演示時間也不長。通過計算,我們以車輪轉300圈為0.5公里。2、計量模塊設計計量模塊主要由兩個計數器組成,計數器A完成出租車行走0.5公里時輸出脈沖信號的功能,它是一個300進制的計數器,當計數達到300時輸出脈沖信號; 圖3 計數器A的模塊圖計數器B完成記錄里程并輸出的功能,它是一個100進制的計數器,當計數達到100是重新從0開始計數。計數器A和計數器B的源程序,
10、模塊圖以及時序仿真圖一一如下:(1)計數器A的源程序見附錄一。(2)計數器A的模塊圖如圖3所示:(3)計數器A的時序仿真圖如圖4所示: 圖4 計數器A的時序仿真圖 圖5 計數器B的模塊圖(4)計數器B的源程序見附錄二。(5)計數器B的模塊圖如圖5所示:(6)計數器B的時序仿真圖如圖6所示: 圖6 計數器B的時序仿真圖 3、數制轉換模塊的設計由于數碼管顯示的數據都是以十六進制顯示的,但是我們人習慣的是用十進制來顯示,因此必須進行數制轉換。由于這次設計要求的數據不是很大,因此我們用查找表來進行十進制數據的顯示,我們定制了兩個查找表,一個是里程數據查找表,它負責將里程數據轉換成十進制的數據并輸出給譯
11、碼管,;一個是車費數據查找表,它是根據要求設計的與里程一一對應的,即里程每增加0.5公里車費增加一元,它同時也將十六進制的車費轉換成十進制的數據輸出給譯碼管。下面是設計圖7 里程數據查找表圖的兩個查找表及通過它們轉換成的VHDL程序、模塊圖:(1)里程數據查找表圖如圖7所示:(2)里程數據查找表的VHDL程序見附錄三。(3)里程數據查找表的模塊圖如圖8所示:(4)車費數據查找表圖如圖9所示:圖9 車費數據查找表圖圖圖8 里程數據查找表的模塊(5)車費數據查找表的VHDL程序見附錄四。(6)車費數據查找表的模塊圖如圖10所示: 圖10 車費數據查找表的模塊圖4、譯碼顯示模塊的設計譯碼顯示模塊是由
12、七段LED數碼管譯碼和顯示兩部分組成。采用的是共陽極七段數碼管,這里的譯碼顯示模塊包括四個譯碼器和四個七段顯示數碼管。用于顯示需要的信息。它將查找表輸出到該模塊中的里程和車費數據分別用兩個數碼管顯示出來。數碼管控制及譯碼顯示模塊將十進制的輸入信號用七段數碼管顯示,由七段發光二極管組成數碼顯示器,利用字段的不同組合。可分別顯示09十個數字。本設計中,要求輸出的段信號為高電平有效。5、原理圖的設計上面詳細介紹了各個模塊的設計及其功能,下面將各模塊按其功能和邏輯連接起來,得到如圖11所示的總的系統原理圖如下: 圖11 系統原理圖 6、系統綜合、仿真、下載在QuartusII軟件中以系統原理圖為頂層文
13、件建立工程,將各文件添加到工程中,選擇目標芯片EP1C6Q240C8,然后進行系統綜合編譯,編譯通過后就可以進行系統仿真了。仿真是EDA技術的重要組成部分,也是對設計的電路進行功能和性能測試的有效手段。EDA工具提供了強大且與電路實時行為相吻合的精確硬件系統測試工具。這里利用QuartusII軟件來進行仿真。在建立了波形文件、輸入信號節點、波形參數、加輸入信號激勵電平并存盤之后,選擇主菜單“TOOL”中的仿真器項“start Simulator”,完成之后就可以看到時序波形。圖12為總電路的時序仿真圖。圖12 總電路的時序仿真圖仿真通過后就可以進行硬件測試了,在進行硬件測試之前必須鎖定個模塊的
14、引腳,將各輸入輸出端口與硬件連接端一一對應起來,鎖定的引腳如圖13所示。引腳鎖定后再編譯一次,若無錯誤則可以進行硬件下載了。圖13 引腳鎖定圖 7、硬件調試7、硬件調試硬件下載成功后就可以進行硬件調試了,首先將時鐘短路冒接在256hz的頻率上,根據鎖定的引腳,鍵1控制啟動、停止,鍵2起清零的作用。本次設計的調試結果是當鍵1為高電平時數碼管顯示的值不斷按規律變化,當鍵1為低電平時數碼管保持低電平以前的值不變,變為高電平是重新按規律變化;當鍵2為高電平時數碼管顯示的值全部變為零。通過調試,本次設計達到了預期的結果,實現了預期功能。8、設計中遇到的問題與解決辦法本次設計總的來說是成功了,但操作過程中
15、也遇到了不少問題,比如設計過程中我們不知道在一個進程中只允許一個信號上升沿作為觸發條件,把兩個時鐘信號同時放在一個進程中,根本得不到想要的結果,檢查了很久也沒找到原因,后面問過其他同學終于把它改正過來。還有關于顯示的問題,由于要用十進制數顯示,而如果直接顯示的話數碼管顯示的是十六進制的數據,為了解決這個問題,我們首先想到的是用十進制的計數器來實現,但是由于車費是根據里程的變化而變化的,因此車費的記錄也需要一個計數器來完成,而里程可以直接從第一個計數器輸出,這樣就會產生里程和車費的變化不同步的結果,因此這種方法不可取,后面經過請教老師之后,我們采用查找表來進行數據轉換,從而得到了正確的結果。9、
16、設計總結通過對系統的測試結果分析符合預期結果,滿足題目要求。基于FPGA所設計的出租車計費器趨于簡單、開發時間短;整個控制系統的所需元器件少、集成度較高、所占的空間小且可靠性也很高。不僅僅實現了計程車計費的功能,它可以顯示出租車累計走的總路程。應用于實際當中,比較有實用價值,可行性也較高,是個不錯的創意。此外,如果實現軟、硬件的相互結合還可以實現很多功能比如可以集成計算機網絡、IC卡、語音報價、自動打印等新技術實現運營數據存儲管理和稅費計算控制。實現計價器的計費顯示、自動打印發票、語音報價等功能一體化,有待進一步擴展。VHDL硬件描述語言打破了硬件和軟件設計人員之間互不干涉的界限,可以使用語言
17、的形式來進行數字系統的硬件結構、行為的描述,直接設計數字電路硬件系統。從本文描述的出租車計費系統可以看出,通過編程、下載后,該芯片已經具備了原來需要使用復雜的數字電路實現的功能;這樣,使用語言描述的形式,大大縮短了開發周期,減少了開發難度,并使得系統更加靈活、穩健。三、心得體會 兩周的EDA課程設計終于接近尾聲,但是回想起設計過程中的點點滴滴,給我們的感受很深,開始一抽到出租車記費器這個課題的時候,我們不知道從何下手,便想不勞而獲,去網上查找現成的資料,但網上也沒有完整的資料,這個時候我們才像無頭瘡蠅一樣開始著急,接著一連幾天都沒什么進展,從網上下載下來的程序錯誤百出,好不容易把錯誤排除,但仿
18、真是又得不到理想的結果,不是結果錯誤就是沒反應,這個時候我們商量,與其看懂別人的程序還不如自己來編寫和設計,然后我們進行了討論,分析了出租車的原理,畫出系統方框圖,并把課本上基礎知識重新看了一遍,然后按照方框圖一個一個的編寫程序,進行時序仿真,等沒有錯誤并達到預期的結果后再進行另一個模塊的設計,這樣一步一步進行下去,終于功夫不負有心人,我們成功了。 經過這次課程設計,我們深刻的體會到了不自信的可怕,一開始我們就不自信,把問題想得太復雜了,自己首先把自己嚇倒了。我們相信這次課程設計過后,我們遇到問題會注意首先冷靜思考,弄清原理,不會再犯同樣的錯誤。四、參考文獻1潘松、黃繼業 編著 .EDA技術與
19、VHDL(第2版).清華大學出版社,2007.2康華光 主編.電子技術基礎數字部分(第五版).高等教育出版社,2006.附錄一:計數器A的源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 is port (clk,rst,en :in std_logic; cout1: out std_logic);end cnt10;architecture count of cnt10 isbegin process (en,clk,rst) variable dis: std_
20、logic_vector (8 downto 0); begin if rst ='1' then dis :=(others =>'0'); elsif clk'event and clk='1' then if en ='1' then if dis < 300 then dis:=dis + 1; else dis:="000000000" end if; end if; end if;if dis =300 then cout1<='1' ; else cout
21、1<='0' ; end if; end process;end count;附錄二:計數器B的源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt100 is port (rst :in std_logic; cout1: in std_logic; li:out std_logic_vector(6 downto 0) );end cnt100;architecture count of cnt100 isbegin process (cout1,r
22、st) variable lin: std_logic_vector (6 downto 0); begin if rst ='1' then lin:=(others =>'0'); elsif cout1'event and cout1='1' then if lin < 100 then lin:=lin + 1; else lin:="0000000" end if; end if; li <= lin;end process;end count;附錄三:里程數據查找表的VHDL程序LIBRA
23、RY ieee;USE ieee.std_logic_1164.all;LIBRARY altera_mf;USE altera_mf.altera_mf_components.all;NTITY data1 ISPORT( ddress : IN STD_LOGIC_VECTOR (6 DOWNTO 0);inclock: IN STD_LOGIC ;q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END data1;ARCHITECTURE SYN OF data1 ISSIGNAL sub_wire0: STD_LOGIC_VECTOR (7 DOWNTO 0
24、);COMPONENT altsyncramGENERIC (intended_device_family: STRING;width_a: NATURAL;widthad_a: NATURAL;numwords_a: NATURAL;operation_mode: STRING;outdata_reg_a: STRING;address_aclr_a: STRING;outdata_aclr_a: STRING;width_byteena_a: NATURAL;init_file: STRING;lpm_hint: STRING;lpm_type: STRING);PORT (clock0:
25、 IN STD_LOGIC ;address_a : IN STD_LOGIC_VECTOR (6 DOWNTO 0);q_a: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END COMPONENT;BEGINq <= sub_wire0(7 DOWNTO 0);altsyncram_component : altsyncramGENERIC MAP (intended_device_family => "Cyclone",width_a => 8,widthad_a => 7,numwords_a => 100,op
26、eration_mode => "ROM",outdata_reg_a => "UNREGISTERED",address_aclr_a => "NONE",outdata_aclr_a => "NONE",width_byteena_a => 1, init_file=>"E:/chuzuche/lucheng.mif",lpm_hint=>"ENABLE_RUNTIME_MOD=YES, INSTANCE_NAME=rom1",l
27、pm_type => "altsyncram")PORT MAP (clock0 => inclock,address_a => address,q_a => sub_wire0)END SYN;附錄四:車費數據查找表的VHDL程序LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY altera_mf;USE altera_mf.altera_mf_components.all;ENTITY data ISPORT(address: IN STD_LOGIC_VECTOR (6 DOWNTO 0);inclock: IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END data;ARCHITECTURE SYN OF data ISSIGNAL sub_wire0: STD_LOGIC_VECTOR (7 DOWNTO 0);COMPONENT altsyncramGENERIC (intended_device_family: STRING;width_a: NATURAL;widthad_a: NATUR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教師聘用合同是協議書
- 中國氮磷肥項目商業計劃書
- 智能養老商業策劃書3
- 中國淋浴房塑料配件項目投資計劃書
- 攝影工作室創業計劃書怎么做
- 金融科技行業的未來五年發展規劃
- 解除主播合同協議書
- 心碎烏托邦創業計劃書
- 豆制品項目工程管理實施計劃(模板)
- 呼吸系統的臨床檢查
- GB/T 28583-2025供電服務規范
- 阿爾茨海默病疾病修飾治療專家共識(2025版)解讀
- 設備故障應急維修預案
- (3篇)2025年春季形勢與政策大作業:怎樣正確理解全過程人民民主的歷史邏輯、實踐邏輯、理論邏輯?與專題測驗(1-5)附答案
- 湖北省華大新高考聯盟2025屆5月名校高考預測卷高三語文試卷 含解析
- 吉林2025年生態環境部松遼流域生態環境監督管理局生態環境監測與科學研究中心招聘筆試歷年參考題庫附帶答案詳解
- 四川西華師范大學招聘輔導員考試真題2024
- 貴州游船傾覆防災減災安全教育時事熱點
- 公務員法律考試題及答案
- 黑龍江省大慶市石油高級中學2024-2025學年高二上學期期末語文試題 含解析
- 四川省(科大訊飛大數據)2025屆高三第二次教學質量聯合測評物理試題及答案
評論
0/150
提交評論