2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩51頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  論文題目:基于FPGA的出租車計(jì)價(jià)器的設(shè)計(jì)</p><p>  專 業(yè):微電子科學(xué)與工程</p><p>  本 科 生:沈 丹 (簽名)___________</p><p>  指導(dǎo)教師:岳改麗 (簽名)___________</p><p>&

2、lt;b>  摘 要</b></p><p>  出租車計(jì)價(jià)器是乘客與司機(jī)雙方的交易準(zhǔn)則。具有良好性能的計(jì)價(jià)器無論是對(duì)廣大出租車司機(jī)朋友還是乘客來說都是很必要的?,F(xiàn)在各大中城市出租車行業(yè)都已普及自動(dòng)計(jì)價(jià)器,而部分小城市尚未普及,但隨著城市建設(shè)日益加快,象征著城市面貌的出租車行業(yè)也將加速發(fā)展,所以計(jì)價(jià)器的普及也是毫無疑問的。 </p><p>  本論文闡述了EDA的發(fā)展及

3、其優(yōu)勢(shì)、FPGA的發(fā)展趨勢(shì)及結(jié)構(gòu)特點(diǎn)和VHDL語言的優(yōu)點(diǎn)及語法結(jié)構(gòu),并分析了出租車計(jì)價(jià)器各模塊的功能要求、基本原理以及實(shí)現(xiàn)方法。本論文的設(shè)計(jì)采用VHDL硬件描述語言進(jìn)行編程,基于Quartus II軟件平臺(tái)進(jìn)行編譯和仿真。論文介紹了采用FPGA芯片設(shè)計(jì)出租車計(jì)價(jià)器的方法,闡述了該計(jì)價(jià)器的主要組成單元:車輪大小選擇模塊、計(jì)程模塊、計(jì)時(shí)模塊及計(jì)費(fèi)模塊、數(shù)據(jù)分配模塊、分頻模塊、譯碼模塊的設(shè)計(jì)方法,同時(shí)給出了詳細(xì)的仿真波形,實(shí)現(xiàn)了出租車基本計(jì)費(fèi)

4、功能,還能模擬汽車啟動(dòng),停止,暫停等狀態(tài),同時(shí)提高了計(jì)費(fèi)系統(tǒng)的可靠性、通用性。本設(shè)計(jì)在FPGA試驗(yàn)箱上運(yùn)行良好,實(shí)現(xiàn)了計(jì)費(fèi)器的各項(xiàng)功能。</p><p>  關(guān)鍵字 FPGA,VHDL,Quartus II,出租車計(jì)價(jià)器</p><p>  Subject: The design of the taxi meter based on FPGA</p><p>  

5、Specialty: Microeletronics Science and Engineering</p><p>  Name:Dan Shen (Signature) ___________</p><p>  Instructor: Gaili Yue (Signature) ___________

6、</p><p><b>  ABSTRACT</b></p><p>  Taxi meter is the rule of passenger and driver. Have a good performance of the meter for our taxi driver or passenger is very necessary. Now the au

7、tomatic taxi meter has popularized, and some small city has not been popular, but with the quickening of city construction, the symbol of the city will accelerate development of the taxi industry.</p><p>  T

8、his article elaborates the concept and development of EDA , the development trend and structure of the FPGA, andexplains the advantages and grammar structure of VHDL ,meanwhile, analysed the function request, the basic p

9、rinciple as well as the method ofaccomplishment of each parts. This system's design programmes in the VHDL, compiled and emulated basing on Quartus II platform of Altera consists of four modules, that is speed, milea

10、ge, timing and billing module. This paper introduce one method </p><p>  KEY WORDS FPGA , VHDL , Quartus II ,The taxi meter</p><p><b>  目 錄</b></p><p><b>  第1章

11、緒論1</b></p><p>  1.1 課題研究背景及目的1</p><p>  1.2 課題研究現(xiàn)狀2</p><p>  1.3 課題研究方法3</p><p>  第2章 設(shè)計(jì)相關(guān)工具介紹4</p><p>  2.1 EDA介紹4</p><p>  2.1.

12、1 EDA的發(fā)展4</p><p>  2.1.2 EDA的優(yōu)勢(shì)5</p><p>  2.2 FPGA介紹5</p><p>  2.2.1 FPGA的發(fā)展趨勢(shì)6</p><p>  2.2.2 FPGA結(jié)構(gòu)及其特點(diǎn)7</p><p>  2.3 VHDL介紹7</p><p> 

13、 2.3.1 VHDL簡(jiǎn)介7</p><p>  2.3.2 VHDL代碼結(jié)構(gòu)8</p><p>  2.3.3 VHDL語言設(shè)計(jì)硬件電路的優(yōu)點(diǎn)9</p><p>  2.4 Quartus II10</p><p>  2.4.1 QuartusⅡ簡(jiǎn)介10</p><p>  2.4.2 QuartusⅡ設(shè)

14、計(jì)流程10</p><p>  2.5 實(shí)驗(yàn)箱簡(jiǎn)述11</p><p>  第3章 系統(tǒng)的設(shè)計(jì)13</p><p>  3.1 總體設(shè)計(jì)13</p><p>  3.1.1 出租車計(jì)價(jià)器的設(shè)計(jì)要求13</p><p>  3.1.2 總體框架設(shè)計(jì)13</p><p>  3.1.3流

15、程圖14</p><p>  3.2主要模塊設(shè)計(jì)16</p><p>  3.2.1 出租車總體模塊設(shè)計(jì)16</p><p>  3.2.2 車輪大小選擇模塊設(shè)計(jì)17</p><p>  3.2.3 計(jì)程模塊設(shè)計(jì)18</p><p>  3.2.4 計(jì)時(shí)模塊設(shè)計(jì)18</p><p>

16、  3.2.5 計(jì)費(fèi)模塊設(shè)計(jì)19</p><p>  3.2.6 數(shù)據(jù)分配模塊設(shè)計(jì)21</p><p>  3.2.7 譯碼模塊設(shè)計(jì)21</p><p>  3.2.8 分頻模塊設(shè)計(jì)22</p><p>  第4章 仿真及調(diào)試結(jié)果23</p><p>  4.1 仿真結(jié)果23</p><

17、p>  4.1.1 出租車總體模塊仿真波形23</p><p>  4.1.2 車輪大小選擇模塊仿真波形23</p><p>  4.1.3 計(jì)程模塊仿真波形24</p><p>  4.1.4 計(jì)時(shí)模塊仿真波形24</p><p>  4.1.5 計(jì)費(fèi)模塊仿真波形25</p><p>  4.1.6

18、數(shù)據(jù)分配模塊仿真波形25</p><p>  4.1.7 譯碼模塊仿真波形26</p><p>  4.1.8 分頻模塊仿真波形26</p><p>  4.2 管腳分配及說明27</p><p>  4.3 調(diào)試結(jié)果及分析27</p><p><b>  第5章 總結(jié)31</b>&l

19、t;/p><p><b>  致 謝34</b></p><p><b>  參考文獻(xiàn)35</b></p><p><b>  附 錄36</b></p><p><b>  源代碼36</b></p><p><b>

20、;  第1章 緒論</b></p><p>  1.1 課題研究背景及目的</p><p>  出租車計(jì)價(jià)器是乘客與司機(jī)之間用于公平貿(mào)易的工具,同時(shí)它也是出租車行業(yè)發(fā)展的重要標(biāo)志。所以具有良好性能的出租車計(jì)價(jià)器無論是對(duì)司機(jī)還是乘客來說都是很重要的。因此,設(shè)計(jì)出租車計(jì)價(jià)器是很有價(jià)值的。</p><p>  在70年代開始時(shí)我國(guó)出現(xiàn)了第一輛出租車,但是那時(shí)的

21、出租車計(jì)價(jià)器幾乎都是進(jìn)口的,不但不夠準(zhǔn)確,而且價(jià)格還十分貴。隨著經(jīng)濟(jì)的快速發(fā)展,出租車行業(yè)的發(fā)展趨勢(shì)已十分突出,直接導(dǎo)致國(guó)內(nèi)各機(jī)械廠紛紛研發(fā)計(jì)價(jià)器。同時(shí)經(jīng)濟(jì)的發(fā)展也意味著城市旅游業(yè)的迅猛發(fā)展,使得出租車已經(jīng)成為看一個(gè)城市的窗口,也是象征這個(gè)城市的文明程度?,F(xiàn)在各大中城市的出租車計(jì)價(jià)器已經(jīng)普及,部分小城市雖尚未普及,但隨著城市建設(shè)的日益加快,實(shí)現(xiàn)計(jì)價(jià)器的全面普及是毫無疑問的,所以未來出租車計(jì)價(jià)器的市場(chǎng)是難以想象的。</p>

22、<p>  現(xiàn)在我國(guó)普遍使用的出租車計(jì)價(jià)器主要是利用單片機(jī)來實(shí)現(xiàn)計(jì)價(jià)功能。出租車計(jì)價(jià)器的功能由剛開始時(shí)只能顯示路程,而價(jià)錢卻需要司機(jī)自己通過路程來計(jì)算,計(jì)算后進(jìn)行四舍五入得到,到現(xiàn)在能實(shí)現(xiàn)顯示總價(jià)并且語音提示和打印發(fā)票。但是近年來,由于國(guó)際油價(jià)的大幅度變動(dòng),所以出租車的價(jià)格也隨著油價(jià)的變動(dòng)而進(jìn)行調(diào)整,但由于計(jì)價(jià)器是采用單片機(jī)來實(shí)現(xiàn)的,而單片機(jī)程序并是不通用的,且不同的芯片有不同的指令集,因此價(jià)格的改動(dòng)都需要將芯片從新燒錄,使得

23、每次調(diào)價(jià)都需要耗費(fèi)大量的人力物力,所以很難達(dá)到目前油價(jià)變動(dòng)的需求。并且出租車計(jì)價(jià)器采用硬件模塊化設(shè)計(jì),分別為:主控模塊,電源模塊和按鍵顯示模塊。所以其硬件電路很復(fù)雜,并且由于分立元器件太多,造成電源功耗大,使得芯片不易散熱,影響計(jì)價(jià)器的使用壽命。而基于FPGA的出租車計(jì)價(jià)器不僅可以解決由單片機(jī)設(shè)計(jì)引起的諸多問題,而且現(xiàn)場(chǎng)可編程門陣列FPGA具有開發(fā)簡(jiǎn)單,靜態(tài)可重復(fù)編程和動(dòng)態(tài)系統(tǒng)編程等優(yōu)點(diǎn)。隨著微電子技術(shù)的迅猛發(fā)展,使得FPGA在電子電路

24、設(shè)計(jì)中可以實(shí)現(xiàn)速度更快、集成度更高的顯著優(yōu)勢(shì),即可實(shí)現(xiàn)的功能也越來越多。所以基于FPGA的出租車計(jì)價(jià)器已成為未來計(jì)價(jià)方式的首選。</p><p>  所以這次的畢業(yè)設(shè)計(jì)在實(shí)現(xiàn)計(jì)價(jià)功能的同時(shí),考慮到現(xiàn)在出租車行業(yè)的發(fā)展趨勢(shì)以及對(duì)計(jì)價(jià)器靈活性的高要求,希望利用現(xiàn)場(chǎng)可編程門陣列FPGA來解決現(xiàn)在出租車計(jì)價(jià)器存在的問題。</p><p>  1.利用FPGA代替MCU </p>&l

25、t;p>  現(xiàn)場(chǎng)可編程門陣列FPGA的出現(xiàn),解決了傳統(tǒng)電子設(shè)計(jì)不能完成的任務(wù)。基于FPGA的出租車計(jì)價(jià)器電路簡(jiǎn)單,可采用軟件進(jìn)行編譯與仿真,同時(shí)可設(shè)計(jì)相對(duì)復(fù)雜的功能,而且已經(jīng)編好的程序在不同的FPGA芯片上是通用的。還可以利用FPGA實(shí)現(xiàn)任何數(shù)字器件的功能,基于FPGA的數(shù)字電路,可以縮短設(shè)計(jì)周期,減少PCB面積,提高系統(tǒng)的可靠性。又因?yàn)镕PGA的功能只取決于利用VHDL語言或Verilog-HDL語言編寫的程序,而不受具體芯片的

26、特殊控制,所以基于FPGA的出租車計(jì)價(jià)器具有更好的更新?lián)Q代能力。</p><p><b>  2.計(jì)價(jià)標(biāo)準(zhǔn)設(shè)定 </b></p><p>  增加該模塊,主要考慮在不改變硬件電路的前提下,可以使計(jì)價(jià)標(biāo)準(zhǔn)設(shè)計(jì)顯得更加靈活,即根據(jù)各地區(qū)的需求可以在VHDL程序中設(shè)置參數(shù),就可以適應(yīng)各地區(qū)出租車不同計(jì)價(jià)標(biāo)準(zhǔn)的需要,還可實(shí)現(xiàn)根據(jù)各地區(qū)的需求增加其他所需功能。同時(shí)還體現(xiàn)目前出租

27、車行業(yè)的發(fā)展,使因油價(jià)變動(dòng)而方便改變運(yùn)價(jià)成為可能。</p><p><b>  3.等待時(shí)間計(jì)價(jià)</b></p><p>  該模塊的增加是為了響應(yīng)了出租車行業(yè)的發(fā)展需求,使出租車計(jì)價(jià)更加合理,讓乘客與出租車司機(jī)之間的一個(gè)平衡點(diǎn)更容易達(dá)到。</p><p>  1.2 課題研究現(xiàn)狀</p><p>  對(duì)于出租車計(jì)價(jià)器,

28、目前市面上已經(jīng)出現(xiàn)了許多采用不同方式的設(shè)計(jì),譬如有可編程的門器件FPGA,單片機(jī)以及ARM等,但其中以單片機(jī)為主流。下來就以單片機(jī)為例講述一下現(xiàn)在市面上的出租車計(jì)價(jià)器存在的弊端。采用單片機(jī)實(shí)現(xiàn)的出租車計(jì)價(jià)器因?yàn)槎鴨纹瑱C(jī)程序不是通用的,且不同的芯片有不同的指令集,因此價(jià)格的改動(dòng)都需要將芯片從新燒錄,使得每次調(diào)價(jià)都需要耗費(fèi)大量的人力物力并且所需時(shí)間長(zhǎng),所以很難達(dá)到目前油價(jià)高頻率變動(dòng)的需求。而且采用了硬件模塊化設(shè)計(jì),分別為:主控模塊,電源模塊

29、和按鍵顯示模塊。所以其硬件電路很復(fù)雜,并且由于分立元器件太多,造成電源功耗大,使得芯片不易散熱,影響計(jì)價(jià)器的使用壽命。</p><p>  在我的這次設(shè)計(jì)中就利用FPGA來設(shè)計(jì)出租車計(jì)價(jià)器,因?yàn)榛贔PGA的出租車計(jì)價(jià)器可以解決由單片機(jī)設(shè)計(jì)引起的諸多問題。與利用單片機(jī)設(shè)計(jì)的出租車計(jì)價(jià)器相比,采用FPGA設(shè)計(jì)的出租車計(jì)費(fèi)功能在很大程度上凸顯了EDA的優(yōu)勢(shì)。因?yàn)槔肊DA,不僅可以實(shí)現(xiàn)在線仿真和測(cè)試,還可以將所有的設(shè)

30、計(jì)都集中在統(tǒng)一的文件中,即根據(jù)系統(tǒng)需求,設(shè)計(jì)所需要的各個(gè)模塊,最后對(duì)各個(gè)模塊進(jìn)行系統(tǒng)綜合,從而得到我們所需的整個(gè)系統(tǒng)設(shè)計(jì)。</p><p>  1.3 課題研究方法</p><p>  根據(jù)系統(tǒng)的總體功能,采用分層次、分模塊、自頂向下的設(shè)計(jì)方式,首先實(shí)現(xiàn)系統(tǒng)框圖中的各個(gè)子模塊,然后由頂層模塊調(diào)用各子模塊實(shí)現(xiàn)整個(gè)系統(tǒng)。編程完成后就利用QuartusⅡ軟件進(jìn)行各模塊的仿真,實(shí)現(xiàn)后,分別創(chuàng)建原件

31、符號(hào),新建一個(gè)電路圖,在圖中添加各模塊原件符號(hào)并進(jìn)行端口定義和功能劃分,通過合理連接和協(xié)調(diào)各相關(guān)的各個(gè)不同端口,得到整個(gè)電路系統(tǒng)。然后連接電路,檢查電路是否連接正確,最后將程序下載到實(shí)驗(yàn)裝置中,進(jìn)行引腳分配及編譯,檢驗(yàn)電路是否能實(shí)現(xiàn)所設(shè)計(jì)的功能和要求。</p><p>  本次設(shè)計(jì)硬件部分采用EP2C5Q208芯片作為主控芯片,8個(gè)共陰極數(shù)碼管,以及6個(gè)撥碼開關(guān),軟件部分的仿真在QuartusⅡ7.2環(huán)境中進(jìn)行。

32、首先,對(duì)系統(tǒng)時(shí)鐘分頻以得到各個(gè)模塊所需的時(shí)鐘頻率,并將所得到的頻率送至主控芯片,同時(shí)對(duì)等待時(shí)間脈沖數(shù),里程脈沖數(shù),計(jì)費(fèi)方式信號(hào),復(fù)位信號(hào)和等待時(shí)間信號(hào)等信息經(jīng)過控制器的處理,得到總價(jià)錢和路程,并最終將所行駛的路程和所需支付的金額通過LED 8段數(shù)碼管顯示出來。</p><p>  第2章 設(shè)計(jì)相關(guān)工具介紹</p><p>  2.1 EDA介紹 </p><p> 

33、 2.1.1 EDA的發(fā)展</p><p>  隨著科學(xué)技術(shù)的飛速發(fā)展,電子設(shè)計(jì)的規(guī)模越來越大,復(fù)雜度也越來越高,集成電路的制作工藝達(dá)到90nm甚至更小的尺寸。以計(jì)算機(jī)為工作平臺(tái),融合了電子技術(shù)和智能化技術(shù)的EDA(Electronic Design Automation,電子設(shè)計(jì)自動(dòng)化)工具已經(jīng)在高速,復(fù)雜的數(shù)字系統(tǒng)設(shè)計(jì)中得到了廣泛的應(yīng)運(yùn)。</p><p>  EDA是指利用計(jì)算機(jī)完成電

34、子系統(tǒng)的設(shè)計(jì)。EDA技術(shù)是以計(jì)算機(jī)和微電子技術(shù)為先導(dǎo),匯集了計(jì)算機(jī)圖形學(xué),拓?fù)鋵W(xué),邏輯學(xué),微電子工藝與結(jié)構(gòu)學(xué)和計(jì)算數(shù)學(xué)等多種計(jì)算機(jī)應(yīng)運(yùn)學(xué)科最新成果先進(jìn)技術(shù)。</p><p>  EDA技術(shù)以計(jì)算機(jī)為工具,代替人完成數(shù)字系統(tǒng)的邏輯綜合,布局布線和設(shè)計(jì)仿真等工作。設(shè)計(jì)人員只需要完成對(duì)系統(tǒng)功能的描述,就可以由計(jì)算機(jī)軟件進(jìn)行處理,得到設(shè)計(jì)結(jié)果,而且修改設(shè)計(jì)如同修改軟件一樣方便,可極大地提高設(shè)計(jì)效率。</p>

35、<p>  從20世紀(jì)60年代中期開始,人們就不斷開發(fā)各種計(jì)算機(jī)輔助設(shè)計(jì)工具來幫助設(shè)計(jì)人員進(jìn)行電子系統(tǒng)的設(shè)計(jì)。電路理論和半導(dǎo)體工藝水平的提高,對(duì)EDA技術(shù)的發(fā)展起了巨大的推動(dòng)作用,使EDA作用范圍從PCB版設(shè)計(jì)延伸到電子線路和集成電路設(shè)計(jì),甚至整個(gè)系統(tǒng)的設(shè)計(jì),也使IC芯片系統(tǒng)應(yīng)用,電路制作和整個(gè)電子系統(tǒng)生產(chǎn)過程都集成在一個(gè)環(huán)境之中。根據(jù)電子設(shè)計(jì)技術(shù)的發(fā)展特診,EDA技術(shù)發(fā)展可大體分為三個(gè)階段。</p><

36、p>  CAD階段:CAD(Computer Aided Design,計(jì)算機(jī)輔助設(shè)計(jì))階段是從20世紀(jì)60年代中期到20世紀(jì)80年代初期,該階段的特點(diǎn)是一些單獨(dú)的工具軟件,主要有PCB(Printed Circuit Board)布線設(shè)計(jì),電路模擬,邏輯模擬及版圖的繪制等,通過計(jì)算機(jī)的使用,從而將設(shè)計(jì)人員從大量繁鎖重復(fù)的計(jì)算和繪圖工作中解脫出來。 </p><p>  CAE階段:CAE(Computer

37、 Aided Engineering,計(jì)算機(jī)輔助工程)階段是從20世紀(jì)80年代初期到20世紀(jì)90年代初期,這個(gè)階段在集成電路與電子設(shè)計(jì)方法學(xué)以及設(shè)計(jì)工具集成化方面取得了許多成果。各種設(shè)計(jì)工具,如原理圖輸入,編譯與連接,邏輯模擬,測(cè)試碼生成,版圖自動(dòng)布局以及各種單元庫(kù)已齊全。這個(gè)階段主要采用基于單元庫(kù)的半定制的設(shè)計(jì)方法,采用門陣列和標(biāo)準(zhǔn)單元設(shè)計(jì)的各種ASIC(Application Specific Integrated Circuit,

38、專用集成電路)得到了極大的發(fā)展,將集成電路工業(yè)推入ASIC時(shí)代。</p><p>  EDA階段:20世紀(jì)90年代以來,電子設(shè)計(jì)技術(shù)發(fā)展到EDA階段。此階段主要出現(xiàn)了高級(jí)語言描述,系統(tǒng)仿真和綜合技術(shù)為特診的第三代EDA技術(shù),不僅極大地提高了系統(tǒng)的設(shè)計(jì)效率,而且使設(shè)計(jì)人員擺脫了大量的輔助性及基礎(chǔ)性工作,將精力集中于創(chuàng)造性的方案與概念的構(gòu)思上。</p><p>  2.1.2 EDA的優(yōu)勢(shì)&l

39、t;/p><p>  電子產(chǎn)品的設(shè)計(jì)生產(chǎn),從選題大,方案論證,性能指標(biāo)確定,裝修電路,修改,定型參數(shù)直到批量生產(chǎn),是一個(gè)復(fù)雜而又費(fèi)時(shí)的過程。</p><p>  傳統(tǒng)的電路裝配,調(diào)試過程,一般均采用專門的焊接板,通過手工連線裝配,檢查無誤后,進(jìn)行電路測(cè)量,最后評(píng)估電路性能。若性能與設(shè)計(jì)值不符時(shí),需調(diào)換參數(shù)并重新調(diào)試測(cè)量,直至電路符合設(shè)計(jì)要求為止,但是,當(dāng)電路非常復(fù)雜時(shí),采用焊接板組裝電路時(shí)所產(chǎn)

40、生的連接錯(cuò)誤,器件損壞等人為錯(cuò)誤,常會(huì)造成人力,財(cái)力,時(shí)間的浪費(fèi)及錯(cuò)誤的性能評(píng)估。尤其是集成電路的設(shè)計(jì),器件在焊接班上就無法組成向集成電路內(nèi)部那樣機(jī)密復(fù)雜的電子電路,裝配版上的寄生參數(shù)與集成環(huán)境中的完全不同。因此,在裝配班測(cè)試的特性將無法準(zhǔn)確的描述集成電路的真實(shí)特性。所以,電子電路的傳統(tǒng)設(shè)計(jì)發(fā)法已經(jīng)不適應(yīng)當(dāng)前電子技術(shù)發(fā)展的要求,這就要借助計(jì)算機(jī)完成電子電路的輔助設(shè)計(jì),即電子電路EDA技術(shù)。</p><p>  E

41、DA包括電子工程設(shè)計(jì)的全過程,如系統(tǒng)結(jié)構(gòu)模擬,電路特性分析,繪電路圖和制作PCB等。EDA還可進(jìn)行電路仿真,就是把電子器件或電路模塊以數(shù)學(xué)模型表示,并配合數(shù)值分析的方法,實(shí)現(xiàn)電路的功能模擬及特性分析。如果采用的電路模型足夠精確,則模擬結(jié)果將真實(shí)的反映電路特性,甚至可以方便地實(shí)現(xiàn)電路結(jié)構(gòu)及性能的優(yōu)化設(shè)計(jì),并提供相當(dāng)完整而詳細(xì)的數(shù)據(jù)庫(kù)資料。較之傳統(tǒng)的電路設(shè)計(jì)方法,EDA的優(yōu)點(diǎn)是顯而易見的。</p><p>  2.2

42、 FPGA介紹</p><p>  現(xiàn)場(chǎng)可編程門陣列FPGA器件是Xilinx公司于1985年首家推出的,它是一種新型的高密度PLD,采用CMOS-SRAM工藝制作。</p><p>  FPGA是一種基于查找表(LUT, Look Up Table)的可編程邏輯器件,主要由邏輯單元(LE,Logic Element)構(gòu)成的可配置邏輯塊,可編程I/O和可編程內(nèi)部互聯(lián)模塊組成。用戶也可以根據(jù)

43、需要對(duì)它進(jìn)行編程,使之生成特定的電路結(jié)構(gòu),完成一定的功能。FPGA內(nèi)部陣列塊之間采用分段式進(jìn)行互連,因此結(jié)構(gòu)比較靈活,但是延時(shí)不可預(yù)測(cè)。</p><p>  2.2.1 FPGA的發(fā)展趨勢(shì) </p><p>  FPGA器件在過去的幾十年里已經(jīng)取得了巨大成就,在功能、成本、功耗、容量和編程能力方面的性能不斷提高,在未來的發(fā)展中,將呈現(xiàn)以下幾個(gè)方面的趨勢(shì)。</p><p&

44、gt;  1.向大規(guī)模、高集成度方向進(jìn)一步發(fā)展</p><p>  由于微電子制作工藝的超高速發(fā)展,F(xiàn)PGA在性能、容量方面取得的進(jìn)步非常顯著,有人認(rèn)為:目前多數(shù)系統(tǒng)的瓶頸是處理器、音頻及數(shù)據(jù)的系統(tǒng)引起的I/O帶寬問題。I/O帶寬的關(guān)鍵在于收發(fā)器性能,這正是FPGA優(yōu)于其他解決方案之處,Altera的Strative IV GT產(chǎn)品中提供了可達(dá)11.3Gb/s的高性能收發(fā)器,并將40nm工藝、高密度與高性能收發(fā)器

45、完美結(jié)合,從而使FPGA能更完善地用于視頻、音頻、圖像處理領(lǐng)域。</p><p>  2.向低電壓、低功耗的方向發(fā)展</p><p>  目前,電子設(shè)計(jì)的一個(gè)顯著趨勢(shì)是功耗特性變得日益重要,功耗已經(jīng)成為電子系統(tǒng)開發(fā)中的最重要考慮因素之一,并影響著最終產(chǎn)品的體積、重量和效率。FPGA器件的內(nèi)核電壓呈不斷降低的趨勢(shì),經(jīng)歷了5V-3.3V-2.5V-1.8V-1.2V的演變,未來將會(huì)更低。工作電

46、壓的降低使得芯片的功耗也顯著減少,這樣使FPGA器件可適用于便攜、低功耗應(yīng)用場(chǎng)合,如移動(dòng)通信設(shè)備、個(gè)人數(shù)字助理等。</p><p>  3.向高速可預(yù)測(cè)延時(shí)的方向發(fā)展</p><p>  時(shí)間特性也是FPGA器件的一個(gè)重要標(biāo)志。由于在一些高速處理系統(tǒng)中,為了保證系統(tǒng)的穩(wěn)定性,F(xiàn)PGA器件的延時(shí)可預(yù)測(cè)性變得十分重要。用戶在進(jìn)行系統(tǒng)重構(gòu)的同時(shí),擔(dān)心的是延時(shí)特性會(huì)不會(huì)因重新布線而改變,是否將導(dǎo)致

47、系統(tǒng)性能的不穩(wěn)定性,因此,為了適合未來復(fù)雜高速電子系統(tǒng)的要求,F(xiàn)PGA的高速可預(yù)測(cè)延時(shí)也是一個(gè)發(fā)展趨勢(shì)。</p><p>  4.在FPGA器件內(nèi)嵌入更多功能模塊</p><p>  現(xiàn)在,F(xiàn)PGA器件中已經(jīng)廣泛嵌入RAM/ROM等存儲(chǔ)模塊,嵌入了DSP模塊、硬件乘法器等,可實(shí)現(xiàn)快速的乘法累加操作,比DSP芯片快很多倍。將來的FPGA器件還將嵌入更多功能模塊,實(shí)現(xiàn)更多復(fù)雜運(yùn)算,</p

48、><p>  5.向模數(shù)混合可編程方向發(fā)</p><p>  迄今為止,F(xiàn)PGA的開發(fā)和應(yīng)用的大部分工作都集中在數(shù)字邏輯上,模擬電路及數(shù)?;旌想娐返目删幊碳夹g(shù)在未來將得到進(jìn)一步發(fā)展。</p><p>  2.2.2 FPGA結(jié)構(gòu)及其特點(diǎn)</p><p>  FPGA結(jié)構(gòu)一般分為三部分,可編程邏輯塊,可編程I/O模塊和可編程內(nèi)部連線。</p&

49、gt;<p>  FPGA的發(fā)展非常迅速,形成了各種不同的結(jié)構(gòu)。按邏輯功能模塊的大小分類,F(xiàn)PGA可以分為細(xì)粒度FPGA和粗粒度FPGA。細(xì)粒度FPGA的邏輯功能塊比較小,資源可以充分利用,但是隨著設(shè)計(jì)密度的增加,信號(hào)不得不通過許多開關(guān),路由延遲也快速增加,從而削弱了整體性能,導(dǎo)致速度降低;粗粒度FPGA的邏輯功能塊規(guī)模大,功能強(qiáng),可以用較少的功能塊和內(nèi)部連線就能完成較復(fù)雜的邏輯功能,易于獲得較好的性能,但其缺點(diǎn)是資源不能

50、充分利用。從邏輯功能的結(jié)構(gòu)上分類,可分為查找表結(jié)構(gòu)、多路開關(guān)結(jié)構(gòu)和多級(jí)與非門結(jié)構(gòu)。根據(jù)FPGA內(nèi)部連線的結(jié)構(gòu)不同,可分為分段互聯(lián)型FPGA和連續(xù)互連性、型FPGA兩種。分段互連型FPGA中具有多種不同長(zhǎng)度的金屬線,各金屬線段之間通過開關(guān)矩陣或反熔絲編程鏈接,走線靈活方便,但走線延時(shí)無法預(yù)測(cè);連續(xù)互連型FPGA是利用相同長(zhǎng)度的金屬線,連接與距離遠(yuǎn)近無關(guān),布局走線是固定的和可預(yù)測(cè)的。根據(jù)編程方式,F(xiàn)PGA可分為一次編程型和可重復(fù)編程型兩類。

51、一次編程型采用反熔絲開關(guān)元件,具有體積小、集成密度高、互連線特性阻抗低、寄生電容小和高速度的特點(diǎn),此外還具有加密位、防拷貝、抗輻射、抗干擾、不需外接PR</p><p>  2.3 VHDL介紹</p><p>  2.3.1 VHDL簡(jiǎn)介</p><p>  VHDL是一種硬件描述語言,它可以對(duì)電子電路系統(tǒng)和系統(tǒng)的行為進(jìn)行描述。基于這種描述,結(jié)合相關(guān)的軟件工具,可

52、以得到所期望的實(shí)際電路系統(tǒng)。</p><p>  VHDL是VHSIC Hardwar Description Language(VHSIC硬件描述語言)。VHSIC是Very High Speed Integrated Circuit HDL(超高速集成電路硬件描述語言)的縮寫,是在ADA語言基礎(chǔ)上發(fā)展起來的硬件描述語言。是20世紀(jì)80年代在美國(guó)國(guó)防部資助下始創(chuàng)的,并最終導(dǎo)致了VHDL語言的出現(xiàn)。它的第一個(gè)規(guī)范

53、版本為VHDL 87,VHDL 93是其后續(xù)的升級(jí)版本。</p><p>  使用VHDL語言描述的電路,可以進(jìn)行綜合與仿真。然而,值得注意的是,盡管所有VHDL代碼都是可仿真的,但并不是所有代碼都是可綜合的。VHDL語言被廣泛使用的基本原因在于它是一種標(biāo)準(zhǔn)語言,是與工具和工藝無關(guān)的,從而可以方便的進(jìn)行移植和重用。VHDL語言的兩個(gè)最直接的應(yīng)用領(lǐng)域是可編程邏輯器件和專用集成的電路,其中可編程邏輯器件包括復(fù)雜可編程

54、邏輯器件和現(xiàn)場(chǎng)可編程門陣列。一段VHDL代碼編寫完成后,用戶可以使用可編程邏輯器件來實(shí)現(xiàn)整個(gè)電路。</p><p>  VHDL語言與常規(guī)的順序執(zhí)行的計(jì)算機(jī)程序不同,VHDL從根本上將是并發(fā)執(zhí)行的。因此,我們通常稱之為代碼,而不是程序。在VHDL中,只有在進(jìn)程(PROCESS),函數(shù)(FUNCTION)和過程(PROCEDURE)內(nèi)部的語句才是順序執(zhí)行的。</p><p>  2.3.2

55、VHDL代碼結(jié)構(gòu)</p><p><b>  1.代碼基本單元</b></p><p>  一段獨(dú)立的VHDL代碼至少包含3個(gè)組成部分:</p><p>  庫(kù)(LIBRARY)聲明:列出了當(dāng)前設(shè)計(jì)中需要用到的所有庫(kù)文件,如ieee,std和work等。</p><p>  實(shí)體(ENTITY):定義了電路的輸入/輸出引

56、腳。</p><p>  構(gòu)造體(ARCHITECTURE):所包含的代碼描述了電路要實(shí)現(xiàn)的功能。</p><p><b>  2.代碼語法結(jié)構(gòu)</b></p><p>  庫(kù)聲明:使用一個(gè)庫(kù)之前,需要首先對(duì)庫(kù)進(jìn)行聲明。經(jīng)過聲明之后,在設(shè)計(jì)中就可以調(diào)用庫(kù)中的代碼了。庫(kù)的聲明方式如下:</p><p>  LIBRARY

57、libray_name;</p><p>  USE libray_name.package_name.package_parts;</p><p>  其中LIBRARY和USE是VHDL保留的關(guān)鍵字。</p><p>  實(shí)體:是用來描述電路的所有輸入/輸出引腳,其語法結(jié)構(gòu)如下:</p><p>  ENTITY entity_name

58、IS</p><p><b>  POQT (</b></p><p>  Pore_name:signal_model signal_type;</p><p>  Pore_name:signal_model signal_type;</p><p><b>  …);</b></p>

59、;<p>  END entity_name; </p><p>  端口的信號(hào)模式是以下4中之一:IN,OUT,INOUT,BUFFER。ENTITY名稱的選取沒有嚴(yán)格的規(guī)定,但須注意不要與VHDL保留的關(guān)鍵字發(fā)生沖突。</p><p>  構(gòu)造體:構(gòu)造體中的代碼用來描述電路行為和實(shí)現(xiàn)的功能,其語法結(jié)構(gòu)如下:</p><p>  ARCHITECTU

60、RE architecture_name OF entity_name IS</p><p>  [declarations] </p><p><b>  BEGIN</b></p><p><b>  (code) </b></p><p>  END architecture_name;<

61、;/p><p>  從語法結(jié)構(gòu)中可以看到,一個(gè)ARCHITECTURE包含兩部分:聲明部分(可選),用于對(duì)信號(hào)和常量等進(jìn)行聲明;代碼部分(BEGIN和END之間的部分),用來描述電路的行為或工功能。與ENTITY一樣,可以采用除VHDL關(guān)鍵字以外的任何名稱為ARCHITECTURE命名,并且允許和ENTITY具有相同的名稱。</p><p>  2.3.3 VHDL語言設(shè)計(jì)硬件電路的優(yōu)點(diǎn)<

62、;/p><p>  1.VHDL支持結(jié)構(gòu)化和自頂向下的設(shè)計(jì)方法,這樣非常便與設(shè)計(jì)的模塊化。設(shè)計(jì)者從系統(tǒng)整體要求出發(fā),自上而下將系統(tǒng)內(nèi)容細(xì)化,最后將模塊組合成完整的整體設(shè)計(jì)。</p><p>  2.VHDL具有多層次描述和仿真系統(tǒng)硬件功能的能力,可以從系統(tǒng)到門級(jí)電路不同層次對(duì)數(shù)字進(jìn)行建模和描述,不同的描述還可以混合使用,大大簡(jiǎn)化了硬件設(shè)計(jì)任務(wù),提高了設(shè)計(jì)效率和可靠性,縮短了產(chǎn)品開發(fā)周期。<

63、;/p><p>  3.VHDL是一種工業(yè)語言,設(shè)計(jì)者,EDA開發(fā)工具的供應(yīng)商和IC芯片生產(chǎn)商都要遵循這一標(biāo)準(zhǔn),因此它具有設(shè)計(jì)和開發(fā)環(huán)境,具有電路實(shí)現(xiàn)工藝以及采用的實(shí)現(xiàn)芯片無關(guān)的特點(diǎn),設(shè)計(jì)成果便于移植,交流和二次開發(fā)。另外由于其語法嚴(yán)格,是強(qiáng)類型語言,因此涉及安全性好,也便于閱讀。</p><p>  4.VHDL即支持傳輸延時(shí)也支持慣性延遲,不僅可以很好地描述系統(tǒng)和電路的邏輯功能,也可以真實(shí)

64、地反映系統(tǒng)和電路的時(shí)間特性。</p><p>  5.VHDL可以支持各種不同類型的數(shù)字電路和系統(tǒng)的設(shè)計(jì)。既支持同步電路也支持異步電路;既支持TTL電路,也支持CMOS電路;即可以采用CPLD芯片實(shí)現(xiàn),也可以采用FPGA芯片實(shí)現(xiàn)。</p><p>  2.4 Quartus II</p><p>  2.4.1 QuartusⅡ簡(jiǎn)介</p><p

65、>  QuartusⅡ是Altera公司在21世紀(jì)初推出的可編程邏輯器件的集成開發(fā)軟件,這個(gè)軟件是該公司前一代可編程邏輯器件集成開發(fā)軟件MAX+PLUSⅡ的更新?lián)Q代產(chǎn)品。QuartusⅡ集成開發(fā)軟件支持可編程邏輯器件開發(fā)的整個(gè)過程,它提供一種與器件結(jié)構(gòu)五官的設(shè)計(jì)環(huán)境。軟件界面友好,使設(shè)計(jì)者能夠方便的進(jìn)行設(shè)計(jì)輸入、設(shè)計(jì)處理和器件編程。</p><p>  QuartusⅡ集成開發(fā)軟件不僅支持利用硬件描述語言通

66、過文本編輯的方法完成電路設(shè)計(jì),而且該軟件也提供類似傳統(tǒng)電子設(shè)計(jì)中繪制電路圖的輸入方式。當(dāng)使用原理圖輸入方式時(shí),設(shè)計(jì)者可以很方便地使用開發(fā)軟件提供的各種元件來提高設(shè)計(jì)及速度和設(shè)計(jì)質(zhì)量。</p><p>  2.4.2 QuartusⅡ設(shè)計(jì)流程</p><p>  QuartusⅡ集成開發(fā)軟件的核心是模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器、適配器、裝配器、時(shí)序分析器、設(shè)計(jì)輔助模塊和

67、EDA網(wǎng)表文件生成器。</p><p>  利用QuartusⅡ集成開發(fā)軟件進(jìn)行可編程邏輯器件開發(fā)的全部過程包括以下步驟:設(shè)計(jì)輸入、綜合、布局布線、驗(yàn)證和仿真,以及可編程邏輯器件的編程和配置。QuartusⅡ集成開發(fā)軟件的功能模塊與可編程邏輯器件開發(fā)過程之間的關(guān)系如圖2-2所示。</p><p>  設(shè)計(jì)輸入是將設(shè)計(jì)者所需要的電路構(gòu)思已開發(fā)軟件要求的形式表達(dá)出來。QuartusⅡ軟件支持模

68、塊/原理圖輸入方式、文本輸入方式、Core輸入方式和第三方EDA工具輸入方式等。QuartusⅡ軟件同時(shí)允許用戶在需要對(duì)器件的編譯或變成進(jìn)行必要的條件約束的環(huán)境下,使用分配編輯器設(shè)定初始設(shè)計(jì)的約束條件。</p><p>  綜合是將HDL語言、原理圖等設(shè)計(jì)輸入依據(jù)給定的硬件結(jié)構(gòu)組件和約束控制條件進(jìn)行編譯、優(yōu)化、轉(zhuǎn)換和綜合,生成門級(jí)電路,或更底層電路的描述網(wǎng)表文件,以供適配器實(shí)現(xiàn)。</p><p

69、>  適配也稱為布局布線,這個(gè)步驟利用適配器將邏輯綜合生成的網(wǎng)表文件映射到某一具體的器件。該過程包括將設(shè)計(jì)的邏輯和時(shí)序要求與器件的可用資源相匹配;將每個(gè)邏輯功能分配到最好的邏輯單元位置,進(jìn)行布局和時(shí)序分析;選擇相應(yīng)的互聯(lián)路徑和引腳分配。適配完成后,生成可用于時(shí)序仿真的仿真文件和可用于編程的編程文件。</p><p>  仿真包括功能仿真和時(shí)序仿真。功能仿真實(shí)在不考慮期間延時(shí)的理想情況下仿真設(shè)計(jì)項(xiàng)目,以驗(yàn)證其

70、邏輯功能的正確性,功能仿真又稱前仿真。時(shí)序仿真是在考慮具體適配器的各種延時(shí)的情況下仿真設(shè)計(jì)項(xiàng)目,它是接近真實(shí)器件運(yùn)行特性的仿真,時(shí)序仿真又稱后仿真。</p><p>  器件編程與配置是指設(shè)計(jì)輸入編譯成功后,設(shè)計(jì)者試用器件編譯器將編程文件下載到實(shí)際器件的過程。</p><p>  QuartusⅡ集成開發(fā)軟件允許用戶在開發(fā)過程中使用QuartusⅡ圖形用戶界面、EDA工具界面和命令執(zhí)行界面

71、。用戶可以在整個(gè)開發(fā)過程中使用這些界面中的任意一個(gè),也可以在開發(fā)過程中的不同步驟中使用不同的界面。</p><p>  上述任何一步出錯(cuò),均需要回到設(shè)計(jì)輸入階段糾正錯(cuò)誤,并重新按設(shè)計(jì)流程進(jìn)行設(shè)計(jì)。</p><p><b>  2.5 實(shí)驗(yàn)箱簡(jiǎn)述</b></p><p>  本設(shè)計(jì)采用的實(shí)驗(yàn)箱為L(zhǎng)TE_EDA_02F型EDA/SOC實(shí)驗(yàn)開發(fā)系統(tǒng),

72、選用的芯片為EP2C5Q208C8。關(guān)于FPGA/CPLD器件的配置:</p><p>  當(dāng)在QuartusⅡ中完成設(shè)計(jì)后,就應(yīng)當(dāng)將所設(shè)計(jì)的電路下載到CPLD芯片中,結(jié)合用戶系統(tǒng)進(jìn)行統(tǒng)一的調(diào)試。針對(duì)CPLD器件不同的內(nèi)部結(jié)構(gòu),Altera公司提供了不同的器件配置方式。Altera可編程邏輯器件的配置可通過編程器、JATG接口在線編程及Altera在線配置三種方式進(jìn)行。</p><p> 

73、 Altera器件編程的連接硬件包括ByteBlaster并口下載電纜,ByteBlasterMV并口下載電纜,MasterBlaster串行/USB 通信電纜,BitBlaster串口下載電纜。Altera公司提供的EPC1、EPC2、EPC16和EPC144等PROM配置芯片。本設(shè)計(jì)采用的是ByteBlaster并口下載電纜。ByteBlaster并口下載電纜提供兩種下載模式:</p><p>  1.標(biāo)準(zhǔn)串

74、行模式(AS模式)——用來產(chǎn)品定型后,完成對(duì)FPGA代碼的固化,在下次上電后,能夠自動(dòng)對(duì)FPGA進(jìn)行配置,使產(chǎn)品獨(dú)立工作;</p><p>  2.JTAG模式——具有工業(yè)標(biāo)準(zhǔn)的JTAG邊界掃描測(cè)試電路(符合IEEE 1149.1:1990標(biāo)準(zhǔn)),用來調(diào)試FPGA或NiosⅡCPU,多在產(chǎn)品開發(fā)初期使用。</p><p><b>  第3章 系統(tǒng)的設(shè)計(jì)</b><

75、/p><p><b>  3.1 總體設(shè)計(jì)</b></p><p>  3.1.1 出租車計(jì)價(jià)器的設(shè)計(jì)要求</p><p>  按照計(jì)價(jià)標(biāo)準(zhǔn)能實(shí)現(xiàn)計(jì)價(jià)功能;實(shí)現(xiàn)預(yù)置功能:能預(yù)置起步價(jià)、每公里收價(jià)、行車加價(jià)里程;實(shí)現(xiàn)模擬功能:能模擬汽車啟動(dòng)、停止、暫停等狀態(tài)。</p><p>  該計(jì)價(jià)系統(tǒng)可靠性高、成本低、通用性強(qiáng);該系統(tǒng)在

76、不改變硬件電路的前提下,要具有可以重構(gòu)系統(tǒng)的功能,采用完全相同電路結(jié)構(gòu),只要根據(jù)各地區(qū)的需求在VHDL程序中設(shè)置各參數(shù),就可以適應(yīng)各地區(qū)出租車不同計(jì)價(jià)標(biāo)準(zhǔn)的需要,還可實(shí)現(xiàn)根據(jù)各地區(qū)需求增加其他功能。</p><p><b>  具體計(jì)費(fèi)方式如下:</b></p><p>  1.車起步開始計(jì)價(jià)。首先顯示起步價(jià)(本次設(shè)計(jì)起步價(jià)分為7:00至22:00為10.00元,22

77、:00至7:00為15元),車在行駛3 km以內(nèi),只收起步價(jià)。</p><p>  2.在7:00至22:00行駛時(shí),超過3 km未達(dá)20km后在10元基礎(chǔ)上每行駛1km車價(jià)加2元,行駛路程達(dá)到或超過20 km后,車費(fèi)變成按每公里3.3元開始計(jì)價(jià);在22:00至7:00行駛時(shí),超過3 km未達(dá)20km后在15元基礎(chǔ)上每行駛1km車價(jià)加4元,行駛路程達(dá)到或超過20 km后,車費(fèi)變成按每公里5元開始計(jì)價(jià)。</p

78、><p>  3.車暫時(shí)停止(行駛中遇紅燈或中途暫時(shí)停車)等待累計(jì)時(shí)間超過5分鐘時(shí),按1元/分鐘累計(jì)費(fèi)用。</p><p>  3.1.2 總體框架設(shè)計(jì)</p><p>  圖3.1系統(tǒng)設(shè)計(jì)總框圖</p><p>  分頻模塊用來將實(shí)驗(yàn)系統(tǒng)所提供的時(shí)鐘進(jìn)行分頻,得到所需要的時(shí)鐘頻率。</p><p>  行駛路程計(jì)數(shù)模塊來

79、統(tǒng)計(jì)路程。當(dāng)出租車啟動(dòng)并行駛的過程中,當(dāng)時(shí)鐘的上升沿檢測(cè)到公里信號(hào)(輸入端clkout)為1時(shí),對(duì)路程計(jì)數(shù)器的個(gè)位和十位進(jìn)行加法計(jì)數(shù),并在累計(jì)路程超過3km是,讓標(biāo)志位enable為高電平,該信號(hào)將傳給控制模塊。</p><p>  等待時(shí)間計(jì)數(shù)模塊來統(tǒng)計(jì)等待時(shí)間。在出租車啟動(dòng)并停止等待的過程中(即復(fù)位reset為0 時(shí),停止信號(hào)stop為0),計(jì)數(shù)器在時(shí)鐘的上升沿進(jìn)行加法計(jì)數(shù),每60進(jìn)制產(chǎn)生進(jìn)位脈沖使分鐘計(jì)數(shù)器

80、個(gè)位和十位進(jìn)行加法計(jì)數(shù),并在累計(jì)等待時(shí)間超過5分鐘時(shí),讓標(biāo)志位timecount為高電平,該信號(hào)將傳給控制模塊。</p><p>  計(jì)費(fèi)模塊用于出租車啟動(dòng)后,根據(jù)行駛路程和停止等待時(shí)間計(jì)算費(fèi)用。該模塊的時(shí)鐘使用控制模塊輸出的信號(hào)。當(dāng)出租車停車復(fù)位時(shí),時(shí)鐘控制模塊為clk信號(hào),用于將費(fèi)用計(jì)數(shù)器復(fù)位為起步價(jià)10元;當(dāng)出租車處于行駛狀態(tài)時(shí),時(shí)鐘控制模塊為滿3km信號(hào)時(shí)enable,路程每滿1km,費(fèi)用計(jì)數(shù)器加2元,時(shí)

81、鐘控制模塊為滿20km信號(hào)時(shí),路程每滿1km,費(fèi)用計(jì)數(shù)器加3.3元,;當(dāng)出租車處于停止等待狀態(tài)時(shí),時(shí)鐘控制模塊為滿5分鐘信號(hào)timecount,時(shí)間每滿1分鐘,費(fèi)用計(jì)數(shù)器加1元。</p><p>  控制模塊為計(jì)數(shù)模塊提供時(shí)鐘信號(hào)。停止復(fù)位狀態(tài)輸出時(shí)鐘信號(hào)clk;停止等待狀態(tài)時(shí)輸出時(shí)間計(jì)數(shù)模塊產(chǎn)生的滿5分鐘脈沖timecount;行駛狀態(tài)是輸出模擬滿公里數(shù)的信號(hào)clkout。</p><p&g

82、t;  數(shù)碼管顯示模塊用來顯示所行駛的路程和所花費(fèi)的價(jià)錢。</p><p><b>  3.1.3流程圖</b></p><p>  系統(tǒng)工作流程圖如圖3.2所示。系統(tǒng)工作流程為:出租車載客后,啟動(dòng)計(jì)價(jià)器即start為1,整個(gè)系統(tǒng)開始運(yùn)行,進(jìn)入初始化狀態(tài),即計(jì)程和計(jì)時(shí)從0開始,計(jì)價(jià)從起步價(jià)開始,白天起步價(jià)為6.0元,晚上起步價(jià)為7.0元。再根據(jù)pause信號(hào)判斷行駛或

83、是停止等待。若pause為0,表示行駛狀態(tài),則計(jì)程器開始計(jì)數(shù),當(dāng)路程超過3km后,如果是白天,計(jì)價(jià)器按每公里1.4元的單價(jià)進(jìn)行累加,如果是晚上,計(jì)價(jià)器按每公里2.0元累加,否則計(jì)程器保持不變;當(dāng)路程超過20km后,如果是白天,計(jì)價(jià)器按每公里2.0元的單價(jià)進(jìn)行累加,如果是晚上,計(jì)價(jià)器按每公里3.0元累加,否則繼續(xù)按3km后的計(jì)價(jià)方式計(jì)價(jià);若pause為1,便是停止等待狀態(tài),則計(jì)時(shí)器開始加數(shù),當(dāng)每超過5min后計(jì)價(jià)器加1元,否則計(jì)價(jià)器保持不

84、變;出租車停止后,按下stop鍵,停止計(jì)程和計(jì)時(shí);然后按下reset鍵,將所有計(jì)數(shù)器復(fù)位。</p><p>  圖3.2 程序流程圖</p><p><b>  3.2主要模塊設(shè)計(jì)</b></p><p>  3.2.1 出租車總體模塊設(shè)計(jì)</p><p>  圖3.3 出租車計(jì)價(jià)器設(shè)計(jì)的頂層原理圖</p>

85、<p>  構(gòu)建原理圖的方法:首先建立相應(yīng)的原理圖文件。點(diǎn)擊New -> Block Diagram/Schematic File,生成一個(gè)后綴名為.bdf的文件。第二步,打開將要生成元件的主代碼頁(yè)面,然后選擇File-> Create/_Update -> Create Symbol Files for Current File.在.bdf文件的空白處左鍵雙擊一下,彈出一個(gè)Symbol的窗口,在左邊窗口

86、處選擇需要的器件,在Project下是自己的代碼生成的元件。然后將所添加的元件按邏輯關(guān)系連接起來,最后加上output和input的管腳。然后對(duì)管腳命名。</p><p>  上圖就是按上述方法所得到的。其中計(jì)價(jià),計(jì)程,計(jì)時(shí),數(shù)據(jù)分配和尺寸大小選擇模塊都使用相同的時(shí)鐘脈沖,均由分頻模塊將系統(tǒng)時(shí)鐘經(jīng)過分頻后傳送給各個(gè)模塊。譯碼模塊用于顯示路程和價(jià)錢。Choose輸入端口用于選擇白天模式和晚上模式。</p>

87、;<p>  3.2.2 車輪大小選擇模塊設(shè)計(jì)</p><p>  不同型號(hào)的車輪,其所對(duì)應(yīng)的直徑不同,每行駛100m,對(duì)應(yīng)的圈數(shù)也不同,車輪直徑與每公里需要轉(zhuǎn)過圈數(shù)對(duì)照表由下表3.1給出。</p><p>  表3.1 車輪直徑與每千米所轉(zhuǎn)圈數(shù)對(duì)應(yīng)表</p><p>  圖3.4 車輪大小選擇模塊原理框圖</p><p>  

88、開關(guān)sp控制不同車型所應(yīng)該給出計(jì)程圈數(shù),達(dá)到所給的圈數(shù)給出相應(yīng)的計(jì)程脈沖,clk為輸入脈沖時(shí)鐘信號(hào),reset為復(fù)位鍵,stop為停止鍵,start為開始計(jì)價(jià)鍵,所有信號(hào)均為高有效。</p><p>  3.2.3 計(jì)程模塊設(shè)計(jì)</p><p>  圖3.5 計(jì)程模塊原理框圖</p><p>  管腳說明:reset為復(fù)位信號(hào),clkout為里程計(jì)費(fèi)脈沖,KM_CN

89、T0~KM_CNT3為路程的十分位到百位輸出。</p><p>  當(dāng)復(fù)位信號(hào)為‘1’時(shí),里程的百,十,個(gè),十分位均被復(fù)位為‘0’;反之,clkout開始循環(huán)計(jì)數(shù)。當(dāng)十分位為9時(shí),十分位清零,向個(gè)位進(jìn)1,個(gè)位為9 時(shí),向十位進(jìn)1,個(gè)位清零,同理,十位和百位的計(jì)數(shù)方式同前。當(dāng)計(jì)程為999.9公里時(shí),達(dá)到最大計(jì)程范圍,里程的各位被清零。</p><p>  3.2.4 計(jì)時(shí)模塊設(shè)計(jì)</p

90、><p>  圖 3.6 計(jì)時(shí)模塊原理框圖</p><p>  管腳說明:CLK為時(shí)鐘信號(hào),reset為復(fù)位信號(hào),start為開始信號(hào),stop為停止信號(hào),pause為暫停信號(hào)。</p><p>  當(dāng)start=‘1’,stop=‘0’且pause=‘1’時(shí),開始記間,當(dāng)計(jì)時(shí)達(dá)到30秒時(shí),timecount輸出一個(gè)脈沖,然后重新開始計(jì)時(shí)。</p>&

91、lt;p>  3.2.5 計(jì)費(fèi)模塊設(shè)計(jì)</p><p>  圖 3.7 計(jì)費(fèi)模塊原理框圖</p><p>  管腳說明: 時(shí)鐘信號(hào)CLK,里程計(jì)數(shù)脈沖clkout,計(jì)時(shí)計(jì)數(shù)脈沖timecount,復(fù)位信號(hào)reset,chooose為白天、晚上選擇輸入端,KM_CNT0~KM_CNT3為路程的十分位到百位,MONEY0~MONEY3是費(fèi)用的角,元,十元,百元輸出端。</p>

92、<p>  3km以內(nèi)為起步價(jià),大于3km以后,每行駛1km費(fèi)用按price進(jìn)行變化,所以需要路程信號(hào)標(biāo)志位enable,當(dāng)enable為1時(shí),說明此時(shí)所行路程已經(jīng)大于3km,否則小于3km。為了更切合實(shí)際,采用白天和晚上起步價(jià)和計(jì)價(jià)單價(jià)不同的方式,其選擇信號(hào)為choose,當(dāng)choose=‘1’時(shí),按白天所要求的計(jì)價(jià)方式計(jì)價(jià),反之,為晚上。</p><p>  timecount以1元基準(zhǔn)進(jìn)行累加

93、,在時(shí)鐘信號(hào)下對(duì)計(jì)時(shí)脈沖進(jìn)行累加,當(dāng)達(dá)到一定數(shù)值時(shí),總價(jià)加1元,否則計(jì)時(shí)脈沖繼續(xù)累加。代碼如下:</p><p>  ELSIF timecount='1'THEN --每來一次計(jì)時(shí)脈沖計(jì)費(fèi)加1</p><p>  IF MONEY_CN3="1001"AND MONEY_CN2="1001"AND MONEY_CN1="

94、;1001" THEN--費(fèi)用等于999</p><p>  MONEY_CN3<="0000";</p><p>  MONEY_CN2<="0000";</p><p>  MONEY_CN1<="0000";</p><p>  MONEY_CN0&

95、lt;=MONEY_CN0;</p><p>  ELSIF MONEY_CN3/="1001" AND MONEY_CN2="1001"AND MONEY_CN1="1001" THEN--費(fèi)用大于99小于999</p><p>  MONEY_CN3<=MONEY_CN3+"0001";</p&

96、gt;<p>  MONEY_CN2<="0000";</p><p>  MONEY_CN1<="0000";</p><p>  MONEY_CN0<=MONEY_CN0;</p><p>  ELSIF MONEY_CN2/="1001"AND MONEY_CN1=&q

97、uot;1001" THEN</p><p>  MONEY_CN3<=MONEY_CN3;</p><p>  MONEY_CN2<=MONEY_CN2+"0001";</p><p>  MONEY_CN1<="0000";</p><p>  MONEY_CN0<

98、=MONEY_CN0;</p><p><b>  ELSE </b></p><p>  MONEY_CN3<=MONEY_CN3;</p><p>  MONEY_CN2<=MONEY_CN2;</p><p>  MONEY_CN1<=MONEY_CN1+"0001";<

99、;/p><p>  MONEY_CN0<=MONEY_CN0;</p><p><b>  END IF;</b></p><p>  clkout的計(jì)價(jià)方式為:KM_CNT1>=4時(shí),MONEY0和MONEY1和計(jì)價(jià)單價(jià)(PRICE0和PRICE1)相應(yīng)進(jìn)行相加,在相加的過程會(huì)產(chǎn)生進(jìn)位,設(shè)計(jì)中考慮了如下進(jìn)位情況:</p>

100、<p>  1.MONEY0與PRICE0相加沒有進(jìn)位,MONEY1與PRICE1相加沒有進(jìn)位;</p><p>  2.MONEY0與PRICE0相加沒有進(jìn)位,MONEY1與PRICE1相加有進(jìn)位;</p><p>  3.MONEY0與PRICE0相加有進(jìn)位,MONEY1與PRICE1相加沒有進(jìn)位;</p><p>  4.MONEY0與PRICE0

101、相加有進(jìn)位,MONEY1與PRICE1相加有進(jìn)位。</p><p><b>  代碼見附錄。</b></p><p>  3.2.6 數(shù)據(jù)分配模塊設(shè)計(jì)</p><p>  圖 3.8 數(shù)據(jù)分配模塊原理框圖</p><p>  在時(shí)鐘信號(hào)CLK的控制下,將里程信號(hào)百位十位個(gè)位以及十分位,還有費(fèi)用信號(hào)的值分時(shí)輸出。其中,MO

102、NEY~MONEY3分別是費(fèi)用的角,元,十元,百元信號(hào)輸入端,KM_CNT0~KM_CNT3為里程的十分位到里程的百位輸出,用到八位數(shù)碼管,需要用3位選擇信號(hào)SEL0~SEL2,還有小數(shù)點(diǎn)信號(hào)dp 和輸出信號(hào)d。最終利用人的視覺暫留,提高掃描頻率,這樣人眼就看到穩(wěn)定的里程和費(fèi)用信號(hào)的顯示。</p><p>  3.2.7 譯碼模塊設(shè)計(jì)</p><p>  圖 3.9 譯碼模塊原理框圖<

103、;/p><p>  譯碼模塊的輸入為4位的BCD碼,輸出的是共陰極七段數(shù)碼管的7位,輸入,輸出一一對(duì)應(yīng),將輸入的信號(hào),正確的在數(shù)碼管上顯示出來,讓人更為直觀的看到我們所想要看到的結(jié)果。</p><p>  3.2.8 分頻模塊設(shè)計(jì)</p><p>  圖 3.10 分頻模塊原理框圖</p><p>  輸入信號(hào)clk1,輸出信號(hào)clk。計(jì)價(jià)器的各

104、模塊所需的時(shí)鐘信號(hào)不同,這就需要對(duì)已有的信號(hào)進(jìn)行分頻。</p><p>  第4章 仿真及調(diào)試結(jié)果</p><p><b>  4.1 仿真結(jié)果</b></p><p>  4.1.1 出租車總體模塊仿真波形</p><p>  圖 4.1 出租車總體模塊仿真波形圖</p><p>  隨著脈沖數(shù)

105、的增加,八段數(shù)碼管也在發(fā)生相應(yīng)的變化,且顯示結(jié)果與預(yù)期一樣。</p><p>  4.1.2 車輪大小選擇模塊仿真波形</p><p>  圖 4.2 車輪大小選擇模塊仿真波形圖</p><p>  從波形圖中可以看出隨著sp的不同,clkout輸出脈沖所需的系統(tǒng)時(shí)鐘脈沖數(shù)也會(huì)發(fā)生變化。當(dāng)sp由00變?yōu)?0是,clkout輸出脈沖所需的系統(tǒng)時(shí)鐘脈沖數(shù)較之前減少。&l

106、t;/p><p>  4.1.3 計(jì)程模塊仿真波形</p><p>  圖 4.3 計(jì)程模塊仿真波形圖</p><p>  KM_CNO為路程輸出的十分位,KM_CN1為路程輸出的個(gè)位,KM_CN2為路程輸出的十位,KM_CN3為路程輸出的百位。當(dāng)clkout輸出10個(gè)脈沖后,KM_CNO自動(dòng)加1,當(dāng)KM_CNO為1001即達(dá)到最大值9時(shí),KM_CN1加1;同理,KM_

107、CN2和KM_CN3也是形同的原理進(jìn)行計(jì)數(shù)的。</p><p>  4.1.4 計(jì)時(shí)模塊仿真波形</p><p>  圖 4.4 計(jì)時(shí)模塊仿真波形圖</p><p>  該模塊是當(dāng)出租車處于等待狀態(tài)時(shí)用來計(jì)價(jià)的。從波形圖中可以很容易看出當(dāng)pause為1時(shí),(start為1且stop和reset為0),當(dāng)系統(tǒng)時(shí)鐘輸出60個(gè)脈沖后timeout輸出一個(gè)脈沖。與設(shè)計(jì)要求符

108、合。</p><p>  4.1.5 計(jì)費(fèi)模塊仿真波形</p><p>  圖 4.5 計(jì)費(fèi)模塊仿真波形圖</p><p>  波形圖明顯顯示當(dāng)路程出在2km以內(nèi)(即KM_CN0=0000,KM_CN1=0010,KM_CN2=0000,KM_CN3=0000),只顯示起步價(jià),在2km以外(即KM_CN0=0000,KM_CN1=0011,KM_CN2=0000,K

109、M_CN3=0000),按每公里1.4元計(jì)價(jià),5km以外(即KM_CN0=0000,KM_CN1=0110,KM_CN2=0000,KM_CN3=0000),按每公里2元計(jì)價(jià)。等待1min中價(jià)格加1。</p><p>  4.1.6 數(shù)據(jù)分配模塊仿真波形</p><p>  圖 4.6 數(shù)據(jù)分配模塊仿真波形圖</p><p>  在時(shí)鐘信號(hào)CLK的控制下,將里程信號(hào)

110、百位十位個(gè)位以及十分位,還有費(fèi)用信號(hào)的值分時(shí)輸出。其中,MONEY~MONEY3分別是費(fèi)用的角,元,十元,百元信號(hào)輸入端,KM_CNT0~KM_CNT3為里程的十分位到里程的百位輸出。在SEL為0、1、2、3是輸出里程,在SEL為4、5、6、7是輸出價(jià)錢。</p><p>  4.1.7 譯碼模塊仿真波形</p><p>  圖 4.7 譯碼模塊仿真波形圖</p><p

111、>  從該波形圖可以看出八段數(shù)碼顯示管的輸出值是隨著輸入d的變化而相對(duì)變化的。即:</p><p>  1.當(dāng)d=“0000”時(shí)數(shù)碼管輸出0;當(dāng)d=“0001”時(shí)數(shù)碼管輸出1;</p><p>  2.當(dāng)d=“0010”時(shí)數(shù)碼管輸出2;當(dāng)d=“0011”時(shí)數(shù)碼管輸出3;</p><p>  3.當(dāng)d=“0100”時(shí)數(shù)碼管輸出4;當(dāng)d=“0101”時(shí)數(shù)碼管輸出5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論