基于FPGA的出租車計(jì)費(fèi)系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于FPGA的出租車計(jì)費(fèi)系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于FPGA的出租車計(jì)費(fèi)系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于FPGA的出租車計(jì)費(fèi)系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于FPGA的出租車計(jì)費(fèi)系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、天津理工大學(xué)2012屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)基于FPGA的出租車計(jì)費(fèi)系統(tǒng)設(shè)計(jì) 摘要隨著EDA技術(shù)的高速發(fā)展,電子系統(tǒng)的設(shè)計(jì)技術(shù)和工具發(fā)生了深刻的變化,大規(guī)??删幊踢壿嬈骷﨏PLD/FPGA的出現(xiàn),給設(shè)計(jì)人員帶來(lái)了諸多方便。利用它進(jìn)行產(chǎn)品開(kāi)發(fā),不僅成本低、周期短、可靠性高,而且具有完全的知識(shí)產(chǎn)權(quán)。本文介紹了一種基于FPGA出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)方法,主要闡述如何使用新興的EDA器件取代傳統(tǒng)的電子設(shè)計(jì)方法,利用FPGA的可編程性,簡(jiǎn)潔而又多變的設(shè)計(jì)方法,縮短了研發(fā)周期,同時(shí)使出租車計(jì)費(fèi)器的體積更小功能更強(qiáng)大。本設(shè)計(jì)不僅實(shí)現(xiàn)了出租車計(jì)費(fèi)器所需的一些基本功能,同時(shí)考慮到出租車行業(yè)的一些特殊性,更注重了把一些

2、新的思路加入到設(shè)計(jì)中。主要包括采用了FPGA芯片,使用VHDL語(yǔ)言進(jìn)行編程,使其具有了更強(qiáng)的移植性,更加利于產(chǎn)品升級(jí)。關(guān)鍵字:出租車計(jì)費(fèi)器,F(xiàn)PGA,Quartus II,VHDL語(yǔ)言Based on FPGA taxi billing system designABSTRACT With the rapid development of EDA technology, electronic system design techniques and tools have been profound changes in large-scale programmable logic device

3、 CPLD / FPGA emergence of designers to bring a lot of convenience. Use it for product development, not only low cost, short cycle, high reliability and full intellectual property rights.This article presents a method of how to use FPGA to design a taxi meter,and how to replace traditional electrical

4、 design with burgeoning EDA parts.The develop period can be short because of the programmable FPGA and the design method which is simple and variable.It can also make the taxi count meter smaller and more functional.Besides the basic functions of taxi count meter,some new ideas are added concerning

5、about the particularity of this calling.It becomes more transplantable and easier to upgrade by using of the FPGA and programming with VHDL language. Key Words:Taxi meter,F(xiàn)PGA,Quartus II,VHDL目 錄第一章 引言51.1 課題研究背景及目的51.2 國(guó)內(nèi)外研究狀況51.3 課題主要安排及研究?jī)?nèi)容6第二章 系統(tǒng)的設(shè)計(jì)方案72.1方案論證72.1.1傳統(tǒng)出租車計(jì)費(fèi)器缺陷72.1.2解決方案72.2 FPGA簡(jiǎn)介7

6、2.3硬件描述語(yǔ)言VHDL簡(jiǎn)介82.4設(shè)計(jì)原理92.4.1系統(tǒng)的計(jì)費(fèi)方式92.4.2總體框架設(shè)計(jì)102.5本章小結(jié)11第三章 系統(tǒng)功能模塊及電路設(shè)計(jì)113.1 各個(gè)功能模塊設(shè)計(jì)113.1.1車型調(diào)換模塊113.1.2速度模塊113.1.3 計(jì)時(shí)模塊133.1.4 計(jì)程模塊143.1.5計(jì)費(fèi)模塊143.1.6顯示模塊153.1.7 去除按鍵抖動(dòng)模塊163.2整體電路設(shè)計(jì)173.2.1 出租車計(jì)費(fèi)器的內(nèi)部電路173.2 .2電源電路173.2.3啟動(dòng)/停止按鍵電路173.2.4 自動(dòng)清零部分183.3本章小結(jié)18第四章 系統(tǒng)仿真及驗(yàn)證194.1 Quartus II簡(jiǎn)介194.2車型調(diào)換模塊仿真2

7、04.3 速度模塊仿真214.4 計(jì)時(shí)模塊仿真224.5 計(jì)程模塊仿真234.6 計(jì)費(fèi)模塊仿真244.7 顯示模塊仿真254.7.1矢量到BCD碼的轉(zhuǎn)換模塊254.7.2 BCD碼到7段顯示譯碼模塊264.8 頂層模塊仿真274.9本章小結(jié)28第五章 總結(jié)及展望29參考文獻(xiàn)30附 錄31致 謝44第一章 引言1.1 課題研究背景及目的隨著中國(guó)城市化進(jìn)程的快速發(fā)展,人們出行選擇的交通工具也越來(lái)越多樣化,出租車作為一種重要的交通工具,也越來(lái)越多的被人們所選用。雖然在一些大城市出租車已相當(dāng)普及,但是在一些小城市,出租車行業(yè)也因?yàn)槌鞘谢M(jìn)程的加快而快速發(fā)展。出租車行業(yè)在我國(guó)是八十年興起的一項(xiàng)新興行業(yè),

8、目前,出租車已成為城市公共交通的重要組成部分。由于電子技術(shù)的不斷發(fā)展與進(jìn)步,集成電路的設(shè)計(jì)方法也在不斷地更新。時(shí)至今日,傳統(tǒng)的手工設(shè)計(jì)過(guò)程已經(jīng)被先進(jìn)的電子設(shè)計(jì)自動(dòng)化(EDA)工具所代替。以硬件描述語(yǔ)言和邏輯綜合為基礎(chǔ)的自頂向下的電路設(shè)計(jì)方法能滿足日趨復(fù)雜的集成電路系統(tǒng)設(shè)計(jì)需求。在這種情形下,傳統(tǒng)的出租車計(jì)費(fèi)器設(shè)計(jì)方法已不能跟上現(xiàn)在的節(jié)奏,以往的出租車計(jì)費(fèi)器在功能上也遠(yuǎn)不能滿足現(xiàn)實(shí)的需要。以往的出租車計(jì)費(fèi)器的不穩(wěn)定性,功能少等缺點(diǎn)使得大家開(kāi)始尋找更新的,功能更強(qiáng)大,性能更穩(wěn)定,價(jià)錢更低廉的新型出租車計(jì)費(fèi)器。而大規(guī)模可編程邏輯器件的出現(xiàn),VHDL硬件描述語(yǔ)言的出現(xiàn),使得這一切成為可能。本設(shè)計(jì)擬在Q

9、uartusII軟件中結(jié)合VHDL硬件描述語(yǔ)言的方案設(shè)計(jì)一套出租車計(jì)費(fèi)系統(tǒng),使之實(shí)現(xiàn)基本計(jì)費(fèi)功能、預(yù)制功能、模擬功能、顯示功能等其他附加功能。通過(guò)硬件描述語(yǔ)言VHDL設(shè)計(jì)出租車計(jì)費(fèi)系統(tǒng),會(huì)加強(qiáng)學(xué)生對(duì)電子設(shè)計(jì)自動(dòng)化(EDA)工具、FPGA、電子技術(shù)等相關(guān)課程專業(yè)知識(shí)綜合能力的應(yīng)用,為以后的開(kāi)發(fā)及科研工作打下基礎(chǔ)。FPGA是電子設(shè)計(jì)領(lǐng)域中最具活力和發(fā)展前途的一項(xiàng)技術(shù),未來(lái)必定會(huì)取代部分落伍的數(shù)字器件。本設(shè)計(jì)的研究目標(biāo)和意義也就是要使用價(jià)錢低廉、性能穩(wěn)定的大規(guī)模邏輯器件,用VHDL硬件描述語(yǔ)言進(jìn)行編程,設(shè)計(jì)出一款功能強(qiáng)大、性能穩(wěn)定、價(jià)錢低廉、可擴(kuò)展性強(qiáng)、適應(yīng)目前出租車市場(chǎng)需求的出租車計(jì)費(fèi)器,以解決目

10、前出租車計(jì)費(fèi)器存在的一系列問(wèn)題。1.2 國(guó)內(nèi)外研究狀況從國(guó)內(nèi)外的各種研究方法來(lái)看,實(shí)現(xiàn)出租車計(jì)費(fèi)系統(tǒng)總共有三種方案。利用大規(guī)模的數(shù)字邏輯器件來(lái)實(shí)現(xiàn),利用 89C51 實(shí)現(xiàn),利用 CPLD/FPGA 來(lái)實(shí)現(xiàn)。二十世紀(jì)后半期, 數(shù)字系統(tǒng)得到了飛速發(fā)展,同時(shí)為了提高系統(tǒng)的可靠性與通用性,微處理器和專業(yè)集成 電路逐漸取代了通用全硬件電路。目前,業(yè)界大量可編程邏輯器件,尤其是現(xiàn)場(chǎng)可編程 器件被大量地應(yīng)用在集成電路的制作當(dāng)中。理想的可編程邏輯開(kāi)發(fā)系統(tǒng)能符合大量的設(shè)計(jì)要求:它能支持不同結(jié)構(gòu)的器件。在多種平臺(tái)運(yùn)行,提供易于使用的界面,并且有廣泛的特征。可編程器件的邏輯功能描述 一般分為原理圖描述和硬件語(yǔ)言描述

11、,原理圖描述是一種直觀簡(jiǎn)便的方法,它可以講現(xiàn)有的小規(guī)模集成電路實(shí)現(xiàn)的功能直接用可編程器件來(lái)實(shí)現(xiàn),而不必去將現(xiàn)有的電路用語(yǔ)言來(lái)描述,但電路圖描述方法無(wú)法做到簡(jiǎn)練。而語(yǔ)言描述可以精確和簡(jiǎn)練地表示電路的邏輯功能,現(xiàn)在可編程器件的設(shè)計(jì)過(guò)程中廣泛使用。常用的硬件描述語(yǔ)言有 ABEL、VHDL 語(yǔ)言等,其中 VHDL 語(yǔ)言是一種行為描述語(yǔ)言,其編程結(jié)構(gòu)類似于計(jì)算機(jī)中的 C 語(yǔ)言,在描述復(fù)雜邏輯設(shè)計(jì)時(shí),非常簡(jiǎn)潔,具有很強(qiáng)的邏輯描述和仿真能力,是未來(lái)硬件設(shè)計(jì)語(yǔ)言的主流。1.3 課題主要安排及研究?jī)?nèi)容1.設(shè)計(jì)內(nèi)容用VHDL語(yǔ)言設(shè)計(jì)一個(gè)出租車計(jì)費(fèi)系統(tǒng),使之可以實(shí)現(xiàn)對(duì)出租車進(jìn)行計(jì)費(fèi)的功能。2.要求運(yùn)用FPGA技術(shù),

12、在QuartusII軟件中結(jié)合VHDL硬件描述語(yǔ)言的方案設(shè)計(jì)一套出租車計(jì)費(fèi)系統(tǒng),使之實(shí)現(xiàn)基本計(jì)費(fèi)功能、預(yù)制功能、模擬功能、顯示功能等其他附加功能。3.任務(wù) (1)熟悉設(shè)計(jì)的題目以及學(xué)習(xí)應(yīng)用軟件程序。 (2)獨(dú)立設(shè)計(jì)完成系統(tǒng)各個(gè)模塊的編程。 (3)能夠通過(guò)軟件完成自己所編制的程序的仿真。4.內(nèi)容結(jié)構(gòu)安排本設(shè)計(jì)從出租車計(jì)費(fèi)系統(tǒng)的發(fā)展背景、國(guó)內(nèi)外現(xiàn)狀、研究的目標(biāo)和意義、研究的思想和主要工作開(kāi)始進(jìn)行了全局的研究設(shè)計(jì),第二章接著介紹了設(shè)計(jì)出租車計(jì)費(fèi)系統(tǒng)所用到的可編程邏輯器件FPGA和VHDL硬件描述語(yǔ)言做了簡(jiǎn)介,還有介紹了系統(tǒng)的方案論證及其設(shè)計(jì)原理。第三章對(duì)出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)用到的各個(gè)功能模塊及其電路

13、的設(shè)計(jì)進(jìn)行了詳細(xì)的介紹。第四章對(duì)所編寫(xiě)的各個(gè)模塊的程序進(jìn)行仿真,并驗(yàn)證仿真結(jié)果。最后對(duì)本設(shè)計(jì)進(jìn)行總結(jié)與展望。第二章 系統(tǒng)的設(shè)計(jì)方案2.1方案論證2.1.1傳統(tǒng)出租車計(jì)費(fèi)器缺陷傳統(tǒng)計(jì)費(fèi)器不足可以體現(xiàn)在以下幾個(gè)方面:1.產(chǎn)品更新周期長(zhǎng)。傳統(tǒng)出租車計(jì)費(fèi)器利用89C51單片機(jī)作為MCU來(lái)實(shí)現(xiàn)。但由于不同的芯片有不同的指令集,單片機(jī)程序往往是不通用的,因此設(shè)計(jì)研發(fā)周期長(zhǎng),靈活度不夠,不易實(shí)現(xiàn)功能復(fù)雜設(shè)計(jì)。2.計(jì)價(jià)方式不靈活。每次計(jì)價(jià)標(biāo)準(zhǔn)修改都需要將芯片重新燒錄,費(fèi)時(shí)費(fèi)力。3.顯示方式不靈活。由于傳統(tǒng)計(jì)費(fèi)器采用LED顯示,看似簡(jiǎn)單、方便,但是這種方式要求計(jì)費(fèi)器外形設(shè)計(jì)固定化,如果需要改變顯示內(nèi)容,甚至需要

14、整個(gè)設(shè)備的更換,不利于產(chǎn)品的理想升級(jí)。這些都體現(xiàn)了目前對(duì)出租車計(jì)費(fèi)器市場(chǎng)更新?lián)Q代的需求。2.1.2解決方案 考慮到目前出租車行業(yè)迅猛發(fā)展的趨勢(shì)以及對(duì)計(jì)費(fèi)器更高的靈活性要求,本設(shè)計(jì)希望嘗試一些新的方法來(lái)予以解決。 1.利用FPGA取代MCU。 利用FPGA設(shè)計(jì)出租車計(jì)費(fèi)器,可行性高,電路簡(jiǎn)單,靈活度高,通用性強(qiáng)。 2.增加計(jì)價(jià)標(biāo)準(zhǔn)設(shè)定功能。 通過(guò)設(shè)計(jì)此功能模塊可以使得計(jì)價(jià)標(biāo)準(zhǔn)設(shè)計(jì)更加靈活,體現(xiàn)目前出租車行業(yè)發(fā)展的需要,使運(yùn)價(jià)、油價(jià)聯(lián)動(dòng)成為可能。 3.利用LCD取代LED。 由于液晶的顯示內(nèi)容的可編程性,使其具有LED不可替代的靈活性和完善的升級(jí)能力,出租車計(jì)費(fèi)器在需要改變顯示方式和內(nèi)容時(shí)不需過(guò)多

15、考慮外形設(shè)計(jì),只需在FPGA程序中改動(dòng)即可。同時(shí)液晶價(jià)格的持續(xù)走低,都使LCD取代LED成為可能。2.2 FPGA簡(jiǎn)介FPGA是英文Field Programmable Gate Array的縮寫(xiě),即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。 FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IO

16、B(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。FPGA的基本特點(diǎn)主要有: (1)采用FPGA設(shè)計(jì)ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。 (2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。 (3)FPGA內(nèi)部有豐富的觸發(fā)器和IO引腳。 (4)FPGA是ASIC電路中設(shè)計(jì)周期最短、開(kāi)發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。 (5)FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。 可以說(shuō),F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。 目前FPGA的品種很多,有XILINX的XC系列、TI公司的TP

17、C系列、ALTERA公司的FIEX系列等。 FPGA是由存放在片內(nèi)RAM中的程序來(lái)設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。 加電時(shí),F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程無(wú)須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。 FPGA有多

18、種配置模式:并行主模式為一片F(xiàn)PGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片F(xiàn)PGA;串行模式可以采用串行PROM編程FPGA;外設(shè)模式可以將FPGA作為微處理器的外設(shè),由微處理器對(duì)其編程。2.3硬件描述語(yǔ)言VHDL簡(jiǎn)介VHDL全名是Very-High-Speed Integrated Circuit Hardware Description Language(超高速集成電路硬件描述語(yǔ)言),誕生于1982年。1987年底,VHDL被IEEE和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語(yǔ)言。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本,IEEE-1076(簡(jiǎn)稱87版)之后,各EDA公司相繼推出了自己

19、的VHDL設(shè)計(jì)環(huán)境,或宣布自己的設(shè)計(jì)工具可以和VHDL接口。此后VHDL在電子設(shè)計(jì)領(lǐng)域得到了廣泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)的硬件描述語(yǔ)言。1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本,(簡(jiǎn)稱93版)?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語(yǔ)言。有專家認(rèn)為,在新的世紀(jì)中,VHDL于Verilog語(yǔ)言將承擔(dān)起大部分的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口

20、。除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開(kāi)發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)5。利用VHDL語(yǔ)言設(shè)計(jì)數(shù)字邏輯硬件系統(tǒng)具有多方面的優(yōu)點(diǎn)。1 VHDL可以用來(lái)描述邏輯設(shè)計(jì)的結(jié)構(gòu),比如邏輯設(shè)計(jì)中有多少個(gè)子邏輯,而這些子邏輯是如何連接的。2 V

21、HDL并不十分關(guān)心一個(gè)具體邏輯是靠何種電路實(shí)現(xiàn)的,設(shè)計(jì)者主要把精力集中電路所能實(shí)現(xiàn)的功能上。3 VHDL采用類似于高級(jí)語(yǔ)言的語(yǔ)句格式完成對(duì)硬件行為的描述,所以我們稱VHDL為行為描述語(yǔ)言。4 VHDL所給出的邏輯的模擬與調(diào)試為設(shè)計(jì)者提供了最大的空間,用戶甚至不必編寫(xiě)任何測(cè)試向量便可進(jìn)行源代碼級(jí)的調(diào)試。5 設(shè)計(jì)者可以非常方便地比較各種方案的可行性和優(yōu)劣,大大降低了設(shè)計(jì)的難度。并且設(shè)計(jì)者的原始描述是非常簡(jiǎn)練的硬件描述,經(jīng)過(guò)EDA工具處理最終生成付諸生產(chǎn)的電路描述或版圖參數(shù)描述的工藝文件。6 VHDL語(yǔ)言具有良好的可讀性,VHDL語(yǔ)言中的設(shè)計(jì)尸體(Design Entity)、程序包(Package

22、)、設(shè)計(jì)庫(kù)(Library)為設(shè)計(jì)人員重復(fù)利用別人的設(shè)計(jì)成果提供了技術(shù)手段。 2.4設(shè)計(jì)原理2.4.1系統(tǒng)的計(jì)費(fèi)方式某城市的出租車計(jì)費(fèi)標(biāo)準(zhǔn)如下所述:出租車白天的起步價(jià)為2km范圍內(nèi)6元,晚上(22時(shí)至次日5時(shí))的起步價(jià)為2km范圍7元。白天2km以上續(xù)程單價(jià)每公里為1.8元,按化零為整的等價(jià)計(jì)費(fèi)方式跳表,即每計(jì)滿1元跳表一次。當(dāng)所計(jì)費(fèi)用等于或超過(guò)50元時(shí),不管白天或晚上,超出部分按每公里2.5元計(jì)費(fèi)。出租車在行駛過(guò)程中,當(dāng)遇到紅燈或乘客需要暫停行駛時(shí),則按時(shí)間計(jì)費(fèi),累計(jì)每滿1min計(jì)費(fèi)1元。當(dāng)按下復(fù)位鍵時(shí),出租車計(jì)費(fèi)器恢復(fù)為初始狀態(tài),若為白天則顯示的費(fèi)用為6元,晚上顯示的費(fèi)用為7元,同時(shí)其他計(jì)

23、數(shù)器,寄存器全部清零。當(dāng)按下開(kāi)始鍵時(shí),出租車將按上述收費(fèi)標(biāo)準(zhǔn)進(jìn)行計(jì)費(fèi)。出租車計(jì)費(fèi)器能夠顯示車費(fèi)與行駛里程。2.4.2總體框架設(shè)計(jì)根據(jù)出租車計(jì)費(fèi)系統(tǒng)的要求可知,整個(gè)出租車計(jì)費(fèi)系統(tǒng)可由車型調(diào)換模塊,速度模塊、計(jì)程模塊、計(jì)時(shí)模塊、計(jì)費(fèi)模塊和顯示模塊等部分電路構(gòu)成,采用Quartus設(shè)計(jì)各個(gè)功能模塊,使用文本輸入VHDL設(shè)計(jì)各個(gè)功能模塊,然后在頂層設(shè)計(jì)出組件,從而實(shí)現(xiàn)一個(gè)完整的出租車計(jì)費(fèi)系統(tǒng)。如圖2.1所示。圖2.1 出租車計(jì)費(fèi)器結(jié)構(gòu)框圖Fig.2.1 taxi the message accounting device structure diagram系統(tǒng)接收到reset信號(hào)后,總費(fèi)用變?yōu)?元,同

24、時(shí)其他計(jì)數(shù)器、寄存器等全部清零。系統(tǒng)接收到start信號(hào)后,首先把部分寄存器賦值,總費(fèi)用不變,單價(jià)price寄存器通過(guò)對(duì)總費(fèi)用的判斷后賦為1.8元。其他寄存器和計(jì)數(shù)器等繼續(xù)保持為0。速度模塊:通過(guò)對(duì)速度信號(hào)sp的判斷,決定變量kinside的值。Kinside即是行進(jìn)100m所需要的時(shí)鐘周期數(shù),然后每行進(jìn)100m,則產(chǎn)生一個(gè)脈沖clkout。計(jì)程模塊:由于一個(gè)clkout信號(hào)代表行進(jìn)100m,故通過(guò)對(duì)clkout計(jì)數(shù),可以獲得共行進(jìn)的距離kmcount。計(jì)時(shí)模塊:在汽車啟動(dòng)后,當(dāng)遇到顧客等人或紅燈時(shí),出租車采用計(jì)時(shí)收費(fèi)的方式。通過(guò)對(duì)速度信號(hào)sp的判斷決定是否開(kāi)始記錄時(shí)間。當(dāng)sp=0時(shí),開(kāi)始記錄

25、時(shí)間。當(dāng)時(shí)間達(dá)到足夠長(zhǎng)時(shí)產(chǎn)生timecount脈沖,并重新計(jì)時(shí)。一個(gè)timecount脈沖相當(dāng)于等待的時(shí)間達(dá)到了時(shí)間計(jì)費(fèi)的長(zhǎng)度。計(jì)費(fèi)模塊由兩個(gè)進(jìn)程組成。其中,一個(gè)進(jìn)程根據(jù)條件對(duì)enable和price賦值:當(dāng)記錄的距離達(dá)到3公里后enable變?yōu)?,開(kāi)始進(jìn)行每公里收費(fèi),當(dāng)總費(fèi)用大于50元后,則單價(jià)price由原來(lái)的2元每公里編程2.5元每公里;第二個(gè)進(jìn)程在每個(gè)時(shí)鐘周期判斷timeout和clkout的值。當(dāng)其為1時(shí),則在總費(fèi)用上加上相應(yīng)的費(fèi)用。2.5本章小結(jié)本章主要介紹了出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)方案,首先對(duì)方案論證,通過(guò)說(shuō)明傳統(tǒng)出租車計(jì)費(fèi)器的缺陷,然后提出解決方案;其次對(duì)FPGA和硬件描述語(yǔ)言VH

26、DL進(jìn)行簡(jiǎn)介;最后介紹了系統(tǒng)的設(shè)計(jì)原理,包括系統(tǒng)計(jì)費(fèi)方式和總體框架設(shè)計(jì)。通過(guò)簡(jiǎn)單的介紹讓大家了解我的設(shè)計(jì)思路和方法,為下面的總體設(shè)計(jì)做鋪墊。第三章 系統(tǒng)功能模塊及電路設(shè)計(jì)3.1 各個(gè)功能模塊設(shè)計(jì)3.1.1車型調(diào)換模塊出租車車型并不是單一的,各個(gè)車型的輪胎直徑也是不同的。據(jù)調(diào)查統(tǒng)計(jì),現(xiàn)行的出租車輪胎直徑大致有4種,直徑分別為520mm,540mm,560mm和580mm。若要使不同車型的出租車每行駛100m均送出一個(gè)脈沖,可以通過(guò)設(shè)置“可預(yù)置分頻器”的系數(shù)來(lái)完成。根據(jù)上述車輪直徑計(jì)算分頻系數(shù)如下:100/(0.52*3.14)=61.244487996100/(0.54*3.14)=58.976

27、173626100/(0.56*3.14)=56.869881711100/(0.58*3.14)=54.908851307分別取整得到車輪直徑520mm,540mm,560mm和580mm的出租車的分頻系數(shù)為61,59,57,55。用車型設(shè)置開(kāi)關(guān)來(lái)控制預(yù)置數(shù)據(jù),兩位開(kāi)關(guān)狀態(tài)與車輪直徑對(duì)應(yīng)關(guān)系如表3.1所示。表3.1 開(kāi)關(guān)狀態(tài)與車輪直徑對(duì)應(yīng)表Table 3.1 switch state and wheel diameter mapping table車輪直徑/mm520540560580開(kāi)關(guān)(2位)00011011計(jì)數(shù)器分頻系數(shù)615957553.1.2速度模塊 速度模塊是通過(guò)對(duì)速度信號(hào)SP的

28、判斷以決定出租車每行駛100m需要的時(shí)間值,然后判斷出租車行駛的時(shí)間是否等于所設(shè)定的時(shí)間值,若二者相等,則產(chǎn)生一個(gè)100m的CLKOUT信號(hào),程序流程如圖3.2所示。 編寫(xiě)程序時(shí),可使用兩個(gè)進(jìn)程(U1和U2)來(lái)描述程序功能。在U1中用CASE語(yǔ)句描述SP檔位選擇,以確定每行駛100m需要的時(shí)間值。在U2中先用IF語(yǔ)句判斷RESET信號(hào)是否有效,若有效,將狀態(tài)復(fù)位為S0,否則每來(lái)一個(gè)CLK上升沿時(shí),根據(jù)當(dāng)前狀態(tài)進(jìn)行相應(yīng)操作。圖3.1 速度模塊的程序流程圖Fig.3.1 speed module program flow chart3.1.3 計(jì)時(shí)模塊 計(jì)時(shí)模塊主要用于計(jì)時(shí)收費(fèi),記錄出租車在啟動(dòng)后

29、,由于紅燈或乘客要求出租車暫停(SP為“000”)等待的時(shí)間。若記錄的時(shí)間等于1min時(shí),將輸出1個(gè)計(jì)費(fèi)脈沖。程序流程如圖3.2所示。圖3.2計(jì)時(shí)模塊的程序流程圖Fig.3.2 timer modules of the program flow chart3.1.4 計(jì)程模塊 計(jì)程模塊主要用于記錄出租車行駛的距離。通過(guò)對(duì)CLKOUT信號(hào)的計(jì)數(shù),可以計(jì)算行駛的距離。1個(gè)CLKOUT脈沖相當(dāng)于行進(jìn)100m,因此只要記錄CLKOUT的脈沖數(shù)就確定出租車所行駛的距離。 編寫(xiě)程序時(shí),在實(shí)體中定義KM_CNT0KM_CNT3為里程輸出。在結(jié)構(gòu)體的功能說(shuō)明語(yǔ)句中,定義CNT0CNT3信號(hào)用于計(jì)數(shù)過(guò)程暫存里程

30、數(shù)。 在結(jié)構(gòu)體的功能描述語(yǔ)句中,先判斷系統(tǒng)復(fù)位信號(hào)RESET是否有效。若RESET有效,將CNT0CNT3清零,否則對(duì)CLKOUT脈沖進(jìn)行加1計(jì)數(shù)。3.1.5計(jì)費(fèi)模塊 計(jì)費(fèi)模塊主要用于記錄出租車啟動(dòng)后所產(chǎn)生總的費(fèi)用。在編寫(xiě)程序時(shí),可使用兩個(gè)進(jìn)程(U1和U2)來(lái)完成該功能的描述。U1主要是用來(lái)產(chǎn)生ENABLE和PRICE信號(hào),U2用于判斷TIMECOUNT和CLKOUT的值,進(jìn)行費(fèi)用的統(tǒng)計(jì)。程序流程如圖3.3所示。圖3.3 計(jì)費(fèi)模塊的程序流程圖Fig. 3.3 pricing module program flow chart3.1.6顯示模塊譯碼顯示輸出模塊是建立在內(nèi)部系統(tǒng)和觀測(cè)人之間的橋梁,

31、通過(guò)顯示模塊,人們才能得到重要的信息,可見(jiàn)該模塊是系統(tǒng)中必不缺少的。該模塊首先要將計(jì)程模塊和計(jì)費(fèi)模塊輸出的費(fèi)用和里程轉(zhuǎn)換成BCD碼。然后再進(jìn)行7段譯碼。用4個(gè)共陰極LED七段數(shù)碼管輸出顯示,兩位顯示路程,兩位顯示費(fèi)用。因此,顯示模塊包含兩部分:change和DECL7S。3.1.7 去除按鍵抖動(dòng)模塊圖3.4 去除按鍵抖動(dòng)模塊Fig. 3.4 remove buttons dither module去除按鍵抖動(dòng)辦法很多,本設(shè)計(jì)采用的是數(shù)字去抖動(dòng)方法,即對(duì)按鍵進(jìn)行掃描,去除抖動(dòng)不確定狀態(tài),提高按鍵的可靠性。圖3.5 去除按鍵抖動(dòng)原理圖Fig.3.5 remove buttons dither pr

32、inciple diagram3.2整體電路設(shè)計(jì)3.2.1 出租車計(jì)費(fèi)器的內(nèi)部電路clk為時(shí)鐘周期信號(hào),由試驗(yàn)箱產(chǎn)生,start/stop是啟動(dòng)停止按鍵電路,reset為自動(dòng)清零電路。電源又AD-DC開(kāi)關(guān)電源供電。圖3.6 出租車電路內(nèi)部構(gòu)成Fig.3.6 taxi circuit internal components3.2 .2電源電路電源采用了是比較流行的開(kāi)關(guān)電源,AD-DC開(kāi)關(guān)電源,輸入115VAC到230VAC,輸出+5V(4A)。使用開(kāi)關(guān)電源的好處就是比較節(jié)省能源,它的轉(zhuǎn)換效率很高,可達(dá)85%以上,穩(wěn)壓范圍寬,除此之外,還具有穩(wěn)壓精度高、不使用電源變壓器等特點(diǎn)。3.2.3啟動(dòng)/停止

33、按鍵電路如圖3.7所示,采用雙刀雙路開(kāi)關(guān),一路開(kāi)關(guān)用于清零部分,由于顯示部分特殊要求,即計(jì)費(fèi)停止后屏幕上荏苒要保持計(jì)費(fèi)的所有信息,只有當(dāng)下次計(jì)費(fèi)啟動(dòng)時(shí)才清零從新開(kāi)始計(jì)費(fèi)。另外兩路開(kāi)關(guān),其中一路用于啟動(dòng)指示和啟動(dòng)/停止輸出信號(hào)給FPGA芯片的I/O口。當(dāng)按下鍵后,清零部分和啟動(dòng)計(jì)費(fèi)部分同時(shí)進(jìn)行,但清零只是瞬間的,計(jì)費(fèi)指示燈兩起。再次按下鍵后,開(kāi)關(guān)換到另外的兩路,空車指示燈亮起。圖3.7啟動(dòng)/停止按鍵電路Fig.3.7 start/stop button circuit3.2.4 自動(dòng)清零部分由于顯示部分的特殊要求,即計(jì)費(fèi)停止后屏幕上仍然要保持計(jì)費(fèi)的所有信息,只有當(dāng)下次計(jì)費(fèi)啟動(dòng)時(shí)才清零從新開(kāi)始計(jì)費(fèi)

34、。VHDL語(yǔ)言的特殊性,不能在一個(gè)結(jié)構(gòu)中用兩個(gè)不同的動(dòng)作使其賦值。所以必須要有一個(gè)瞬間清零的信號(hào),當(dāng)FPGA的清零I/O端口為“1”時(shí)就自動(dòng)清零。使用電容的充放電功能來(lái)實(shí)現(xiàn),按鍵斷開(kāi)時(shí)清零輸出端為接地,按鍵閉合時(shí)電容充電清零端為高電平,充完電后清零端輸出又為低電平,當(dāng)按鍵斷開(kāi)后,通過(guò)一個(gè)2k歐姆的電阻放電,為下次充電做好準(zhǔn)備。如圖3.8所示。圖3.8 自動(dòng)清零電路Fig. 3.8 to be automatic reset circuit3.3本章小結(jié)本章主要研究了出租車計(jì)費(fèi)系統(tǒng)各個(gè)功能模塊設(shè)計(jì)及其電路設(shè)計(jì)。包括對(duì)車型轉(zhuǎn)換模塊,速度模塊,計(jì)時(shí)模塊,計(jì)費(fèi)模塊,顯示模塊的設(shè)計(jì),還說(shuō)明了出租車內(nèi)部電

35、路結(jié)構(gòu)和外部電源設(shè)計(jì)等。第四章 系統(tǒng)仿真及驗(yàn)證4.1 Quartus II簡(jiǎn)介Quartus是Altera公司提供的EDA設(shè)計(jì)工具。作為當(dāng)今最優(yōu)秀的EDA設(shè)計(jì)工具之一,該工具軟件為Altera公司的器件能達(dá)到最高性能和集成度提供了保證。Quartus系統(tǒng)提供了一種與結(jié)構(gòu)無(wú)關(guān)的設(shè)計(jì)環(huán)境,它使得Altera通用可編程邏輯器件的設(shè)計(jì)者更能方便的進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。Quartus具有開(kāi)放式的界面,可以方便的與其他標(biāo)準(zhǔn)的EDA設(shè)計(jì)輸入、綜合及校驗(yàn)工具連接,設(shè)計(jì)者無(wú)需精通器件內(nèi)部的復(fù)雜結(jié)構(gòu),即可用自己熟悉的標(biāo)準(zhǔn)的設(shè)計(jì)描述方式進(jìn)行設(shè)計(jì),Quartus把這些設(shè)計(jì)轉(zhuǎn)換成最終結(jié)構(gòu)所需的格式。由于有關(guān)

36、結(jié)構(gòu)的詳細(xì)知識(shí)已裝入開(kāi)發(fā)工具,因此設(shè)計(jì)者不需手工優(yōu)化自己的設(shè)計(jì)。同時(shí)Quartus提供了豐富的邏輯功能庫(kù)供設(shè)計(jì)人員調(diào)用,其中包括74系列全部器件的等效宏功能庫(kù)和多種特殊的宏功能模塊以及參數(shù)化的宏功能模塊,這樣,設(shè)計(jì)人員可充分利用已有的設(shè)計(jì),大大減少了設(shè)計(jì)的工作量,成倍縮短開(kāi)發(fā)周期,因此設(shè)計(jì)效率非常高。Altera的Quartus設(shè)計(jì)軟件繼承了MAX + plus的所有優(yōu)點(diǎn),是更加完善的PLD設(shè)計(jì)工具。它提供了完整的多平臺(tái)設(shè)計(jì)環(huán)境,能夠直接滿足特定設(shè)計(jì)需求,為可編程芯片系統(tǒng)提供全面的設(shè)計(jì)環(huán)境,并為Altera的DSP模塊進(jìn)行系統(tǒng)模型設(shè)計(jì)提供了集成綜合環(huán)境。Quartus內(nèi)部嵌有VHDL、Veri

37、log邏輯綜合器。完全支持VHDL、VerilogHDL的設(shè)計(jì)流程。Quartus也可以利用第三方的綜合工具和仿真工具。在利用VHDL完成電路設(shè)計(jì)后,還必須借助于EDA工具中的綜合器、適配器、時(shí)序仿真器和編程器等工具進(jìn)行相應(yīng)的處理,才能使此項(xiàng)設(shè)計(jì)在FPGA上完成硬件實(shí)現(xiàn)并得到測(cè)試。在EDA工具的設(shè)計(jì)環(huán)境中,有很多途徑來(lái)完成目標(biāo)系統(tǒng)的表達(dá)和輸入方式,如VHDL的文本輸入方式是最基本,最直接的。Altera Quartus作為一種可編程邏輯的設(shè)計(jì)環(huán)境,由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,越來(lái)越受到設(shè)計(jì)者的歡迎。Altera Quartus設(shè)計(jì)軟件是企業(yè)界唯一提供FPGA和固定功能HardCopy

38、器件統(tǒng)一設(shè)計(jì)流程的設(shè)計(jì)工具。工程師使用同樣的低價(jià)位工具對(duì)Stratix FPGA進(jìn)行功能驗(yàn)證和原型設(shè)計(jì),又可以設(shè)計(jì)HardCopy Stratix器件的性能和功耗,相應(yīng)地進(jìn)行最大吞吐量設(shè)計(jì)。Altera的Quartus 可編程邏輯軟件屬于第四代PLD開(kāi)發(fā)平臺(tái)。該平臺(tái)支持一個(gè)工作環(huán)境下的設(shè)計(jì)要求,其中包括支持基于Internet的協(xié)作設(shè)計(jì)。Quartus設(shè)計(jì)軟件改進(jìn)性能、提升了功能性、解決了潛在的設(shè)計(jì)延誤等,在工業(yè)領(lǐng)域率先提供FPGA與mask-programmable devices開(kāi)發(fā)的統(tǒng)一工作流程。Quartus II設(shè)計(jì)流程:   (1) 設(shè)計(jì)輸入:完成期間

39、的硬件描述,包括文本編輯器、塊與符號(hào)編輯器、MegaWizard插件管理器、約束編輯器和布局編輯器等工具;  (2)綜合:包括分析和綜合器以、輔助工具和RTL查看器等工具;  (3)布局連線:將設(shè)計(jì)綜合后的網(wǎng)表文件映射到實(shí)體器件的過(guò)程,包括Fitter工具、約束編輯器、布局圖編輯器、芯片編輯器和增量布局連線工具;(4)仿真:Quartus II提供了功能仿真和時(shí)序仿真兩種工具;  (5)器件編程與配置:包括四種編程模式,即被動(dòng)串行模式、JTAG模式、主動(dòng)串行模式和插座內(nèi)編程模式。使用New Project Wizard新建一個(gè)工程的過(guò)

40、程:  (1)制定工程的文件存放目錄、工程名以及最頂層的設(shè)計(jì)實(shí)體名,在默認(rèn)情況下,工程名與最頂層的設(shè)計(jì)實(shí)體名是相同的。  (2)添加文件,包括最頂層設(shè)計(jì)實(shí)體文件以及一些額外的電路模塊描述文件或定制的功能庫(kù)。  (3)選擇目標(biāo)芯片,具體芯片最好讓編譯器根據(jù)工程設(shè)計(jì)的實(shí)際情況自動(dòng)選擇。  (4)第三方EDA工具設(shè)定,包括設(shè)計(jì)輸入與綜合工具、仿真工具、時(shí)序分析工具等,默認(rèn)為Quartus II自帶仿真器、綜合器以及時(shí)序分析器。  (5)最后一步系統(tǒng)將整體工程的各項(xiàng)參數(shù)和設(shè)置總結(jié)并顯示出來(lái),這時(shí)即可完成

41、工程的創(chuàng)建。4.2車型調(diào)換模塊仿真 圖4.1 車型調(diào)換模塊元器件圖Fig. 4.1 models exchange module components figure圖4.2 車型調(diào)換模塊仿真波形圖Fig. 4.2 models exchange module simulation waveform figure表4.1 開(kāi)關(guān)狀態(tài)與車輪直徑對(duì)應(yīng)表Table 3.1 switch state and wheel diameter mapping table車輪直徑/mm520540560580開(kāi)關(guān)(2位)00011011計(jì)數(shù)器分頻系數(shù)61595755從表4.1中可以看到,開(kāi)關(guān)狀態(tài)為00時(shí),選擇車輪

42、直徑為520mm車型,分頻系數(shù)為61從仿真圖可以看到,cartype狀態(tài)設(shè)置為00,即開(kāi)關(guān)狀態(tài)為00,temp在60時(shí)oclk輸出一個(gè)脈沖(從0計(jì)數(shù)到60,計(jì)數(shù)周期為61)。即開(kāi)關(guān)狀態(tài)為00時(shí),選的是車輪直徑520mm,在第61個(gè)時(shí)鐘周期到來(lái)時(shí)送出一百米脈沖,所以此仿真是正確的。4.3 速度模塊仿真圖4.3 速度模塊元器件圖Fig. 4.3 speed module components figure圖4.4 速度模塊仿真波形圖Fig. 4.4 speed module simulation waveform figure首先根據(jù)start信號(hào)判斷是否開(kāi)始計(jì)費(fèi),然后根據(jù)輸入的速度檔位sp2.0

43、的判斷,確定行駛100m所需要的時(shí)鐘數(shù),每前進(jìn)100m,輸出一個(gè)clkout信號(hào)。同時(shí)由cnt對(duì)clk進(jìn)行計(jì)數(shù),當(dāng)cnt等于kinside時(shí),把clkout信號(hào)置1,cnt清0。從仿真圖看到該模塊根據(jù)出租車所處的運(yùn)行狀態(tài)和不同的形式速度,對(duì)相應(yīng)數(shù)目的時(shí)鐘周期進(jìn)行計(jì)數(shù),車每行駛100m時(shí)輸出信號(hào)clkout輸出高電平。4.4 計(jì)時(shí)模塊仿真圖4.5 計(jì)時(shí)模塊元器件圖Fig. 4.5 timing module components figure圖4.6計(jì)時(shí)模塊仿真波形圖Fig. 4.6 timer modules simulation waveform figure計(jì)時(shí)模塊主要用于計(jì)時(shí)收費(fèi),記錄出

44、租車在啟動(dòng)后,由于紅燈或乘客要求出租車暫停(SP為“000”)等待的時(shí)間。從仿真圖得出,若記錄的時(shí)間等于1min(即達(dá)到30000個(gè)clk時(shí)),將輸出1個(gè)計(jì)費(fèi)脈沖,并重新計(jì)時(shí)。4.5 計(jì)程模塊仿真圖4.7 計(jì)程模塊元器件圖Fig. 4.7 taxi module components figure圖4.8計(jì)程模塊仿真波形圖Fig. 4.8 taxi module simulation waveform figure計(jì)程模塊的仿真波形圖中,當(dāng)reset信號(hào)有效時(shí),系統(tǒng)復(fù)位清零;否則,對(duì)輸入信號(hào)clkout進(jìn)行十進(jìn)制計(jì)數(shù)。km_cnt0為十分位,km_cnt1為個(gè)位,km_cnt2為十位,km_c

45、nt3為百位,分別為十進(jìn)制數(shù)。4.6 計(jì)費(fèi)模塊仿真圖4.9 計(jì)費(fèi)模塊元器件圖Fig. 4.9 pricing module components figure圖4.10計(jì)費(fèi)模塊仿真波形圖Fig.4.10 pricing module simulation waveform figure如仿真圖所示,choose為0,則為晚上起步,price定為7元,每來(lái)1次計(jì)時(shí)脈沖計(jì)費(fèi)加1,變?yōu)?元,最終輸出為總費(fèi)用。4.7 顯示模塊仿真4.7.1矢量到BCD碼的轉(zhuǎn)換模塊圖4.11 矢量到BCD碼的轉(zhuǎn)換模塊元器件圖Fig. 4.11 vector to BCD conversion module compon

46、ents figure圖4.12矢量到BCD碼的轉(zhuǎn)換模塊仿真波形圖Fig. 4.12 vector BCD to the conversion module simulation waveform figure4.7.2 BCD碼到7段顯示譯碼模塊圖4.13 BCD碼到7段顯示譯碼模塊元器件圖Fig. 4.13 BCD to 7 section shows decoding module components figure圖4.14 BCD碼進(jìn)行7段顯示譯碼模塊仿真波形圖Fig. 4.14 BCD seven segment display decoding module simulation

47、 waveform figure4.8 頂層模塊仿真圖4.15 頂層模塊元器件圖Fig.4.15 top-level module components figure圖4.16 頂層模塊仿真波形圖Fig. 4.16 top-level module simulation waveform figure當(dāng)復(fù)位信號(hào)reset為高電平時(shí),系統(tǒng)所有寄存器、計(jì)數(shù)器都清零;當(dāng)開(kāi)始計(jì)費(fèi)信號(hào)start信號(hào)有效時(shí),計(jì)費(fèi)器開(kāi)始計(jì)費(fèi),根據(jù)出租車行駛的速度sp2.0的取值計(jì)算所用花費(fèi)和行駛里程;當(dāng)停止計(jì)費(fèi)信號(hào)有效時(shí),計(jì)費(fèi)器停止工作。 在仿真圖中,SP為“011”,即第三檔,行駛100m需要22個(gè)時(shí)間周期。綜上所述,本

48、設(shè)計(jì)的出租車計(jì)費(fèi)器完全符合系統(tǒng)設(shè)計(jì)的要求,實(shí)現(xiàn)了出租車計(jì)費(fèi)器所需的各項(xiàng)基本功能。4.9本章小結(jié)本章主要介紹仿真軟件QuartusII和對(duì)出租車計(jì)費(fèi)系統(tǒng)各個(gè)模塊進(jìn)行仿真驗(yàn)證。第五章 總結(jié)及展望本文論述了基于FPGA的出租車計(jì)費(fèi)系統(tǒng)設(shè)計(jì),分別介紹了整個(gè)系統(tǒng)和各個(gè)模塊的 設(shè)計(jì),使用FPGA芯片、VHDL硬件描述語(yǔ)言作為設(shè)計(jì)手段,利用自頂向下的模塊化設(shè)計(jì)思路,通過(guò)在Quartus軟件下進(jìn)行的模擬仿真,證明所設(shè)計(jì)的系統(tǒng)完成了出租車計(jì)費(fèi)系統(tǒng)的功能,各項(xiàng)技術(shù)指標(biāo)符合預(yù)定標(biāo)準(zhǔn),具有一定實(shí)用性。由于本人在經(jīng)驗(yàn)水平上的欠缺,設(shè)計(jì)中可能存在很多不足,請(qǐng)各位老師予以指證!近年來(lái),F(xiàn)PGA在通信、控制、數(shù)據(jù)計(jì)算等領(lǐng)域得

49、到了廣泛的應(yīng)用,利用FPGA來(lái)設(shè)計(jì)電子產(chǎn)品可減少電子系統(tǒng)開(kāi)發(fā)風(fēng)險(xiǎn)和開(kāi)發(fā)成本;縮短了上市的時(shí)間;通過(guò)在系統(tǒng)編程、遠(yuǎn)程在線重構(gòu)等技術(shù)降低維護(hù)升級(jí)成本。并且,F(xiàn)PGA器件的成本越來(lái)越低,Actel公司發(fā)布第三代的基于Flash的可編程邏輯方案,這些新的FPGA芯片最低價(jià)將達(dá)到1.5美元,代表全球最低成本的FPGA。這些都說(shuō)明可編程器件已成為現(xiàn)在及未來(lái)很長(zhǎng)一段時(shí)間的主流,用它來(lái)實(shí)現(xiàn)出租車計(jì)費(fèi)器省去很多外圍電路,穩(wěn)定,簡(jiǎn)單有效,將來(lái)必然可以設(shè)計(jì)出更多更強(qiáng)大的功能,提高產(chǎn)品競(jìng)爭(zhēng)力。未來(lái)基于FPGA平臺(tái)的出租車計(jì)費(fèi)器將會(huì)有更低的成本、更小的體積、更安全、更精確和更多功能。參考文獻(xiàn)1 潘松.黃繼業(yè).EDA技術(shù)

50、與VHDL(第2版). 北京:清華大學(xué)出版社,20072 高書(shū)莉.羅朝霞.可編程邏輯設(shè)計(jì)技術(shù)及應(yīng)用. 北京:人民郵電出版社,20043 包明. EDA技術(shù)與可編程器件的應(yīng)用M.北京北京航空航天大學(xué)出版社, 20074 楊亞讓. QuartusII在數(shù)字電路中的應(yīng)用J. 長(zhǎng)江大學(xué)學(xué)報(bào),20095 臧春華. 數(shù)字系統(tǒng)設(shè)計(jì)與PLD應(yīng)用M. 北京: 電子工業(yè)出版社, 20096 吳海清. 一種基于VHDL語(yǔ)言的出租車計(jì)費(fèi)器的研究 電子技術(shù)應(yīng)用 20067 杜鋼. 16 位單片機(jī)原理及應(yīng)用. 北京:中國(guó)電力出版社,2007. 8 侯媛彬. 凌陽(yáng)單片機(jī)原理及其畢業(yè)設(shè)計(jì)精選.北京:科學(xué)出版社,2006.9

51、章彬宏. EDA應(yīng)用技術(shù)M. 北京: 北京理工大學(xué)出版社,2007.10趙亮.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與產(chǎn)品開(kāi)發(fā)M.北京:人民郵電出版社,2004.11吳海清. 一種基于VHDL語(yǔ)言的出租車計(jì)費(fèi)器的研究 電子技術(shù)應(yīng)用 200612王開(kāi)軍. 面向CPLD/FPGA的VHDL設(shè)計(jì) 北京 機(jī)械工業(yè)出版社 200713張昌凡,等.可編程邏輯器件及VHDL設(shè)計(jì)技術(shù)M.廣州:華南理工大學(xué)出版社,200114曾繁泰,陳美金.VHDL程序設(shè)計(jì)M.北京:清華大學(xué)出版社,200115潘松,等.VHDL實(shí)用教程M.成都:電子科技大學(xué)出版社,200016孫流芳. 牛新國(guó),舒瑩. 可編程控制器選用手冊(cè). 北京:機(jī)械工業(yè)出版社

52、,2002.7 17胡振華.VHDL與FPGA設(shè)計(jì)M.北京:中國(guó)鐵道出版社,2003:127-15418候伯亨,顧新.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì).修訂版電子工程師必備知識(shí).西安:西安電子科技大學(xué)出版社,1999.附 錄1.車型調(diào)換模塊程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.NUMERIC_STD.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FP ISPORT( CLK: IN STD_LOGIC; START: IN S

53、TD_LOGIC; CARTYPE: IN STD_LOGIC_VECTOR(1 DOWNTO 0); OCLK: OUT STD_LOGIC );END FP;ARCHITECTURE RTL OF FP IS SIGNAL TYPECOUNTER: STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNAL TEMP : STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINTYPECOUNTER <= "111101" WHEN CARTYPE = "00" -520mm/61 分頻 ELSE "11101

54、1" WHEN CARTYPE = "01" -540mm/59 分頻 ELSE "111001" WHEN CARTYPE = "10" -560mm/57 分頻 ELSE "110111" WHEN CARTYPE = "11" -580mm/55 分頻 ELSE "000000"PROCESS (CLK,TEMP,TYPECOUNTER) BEGINIF START='1'THEN IF RISING_EDGE(CLK) THEN TEMP&l

55、t;=TEMP+ '1' END IF;IF TEMP =( TYPECOUNTER) THEN TEMP<=(OTHERS=>'0'); END IF;END IF;END PROCESS;OCLK<='1' WHEN (TEMP=TYPECOUNTER-'1') ELSE '0' ;END RTL;2.速度模塊程序LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;ENTITY speed ISPOR

56、T( CLK:IN STD_LOGIC; RESET:IN STD_LOGIC; START:IN STD_LOGIC; STOP:IN STD_LOGIC; sp:in std_logic_vector(2 downto 0); clkout:out std_logic );END speed;ARCHITECTURE one OF speed IStype states is(s0,s1);signal state:states;signal cnt:integer range 0 to 30;signal stall_value:integer range 0 to 30;begin U

57、1:process(sp)begincase sp iswhen "000"=>stall_value<=0;when "001"=>stall_value<=30;when "010"=>stall_value<=26;when "011"=>stall_value<=22;when "100"=>stall_value<=18;when "101"=>stall_value<=14;when "110"=>stall_value<=10;when others=>null;end case;end process U1;U2:process(clk,reset,start,stop,stall_value)beginif reset='1'thenstate<=s0;elsif clk'event and clk='1' thencase st

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論