基于VHDL的地鐵自動售票機系統(tǒng)設(shè)計_第1頁
基于VHDL的地鐵自動售票機系統(tǒng)設(shè)計_第2頁
基于VHDL的地鐵自動售票機系統(tǒng)設(shè)計_第3頁
基于VHDL的地鐵自動售票機系統(tǒng)設(shè)計_第4頁
基于VHDL的地鐵自動售票機系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計說明書(論文)作 者:學(xué) 號: 系:專 業(yè):題 目:基于vhdl的地鐵自動售票機系統(tǒng)設(shè)計 指導(dǎo)者: (姓 名) (專業(yè)技術(shù)職務(wù))評閱者: (姓 名) (專業(yè)技術(shù)職務(wù))2014 年 5 月畢業(yè)設(shè)計(論文)評語學(xué)生姓名: 班級、學(xué)號: 題 目: 綜合成績: 指導(dǎo)者評語: 指導(dǎo)者(簽字): 年 月 日畢業(yè)設(shè)計(論文)評語評閱者評語: 評閱者(簽字): 年 月 日答辯委員會(小組)評語: 答辯委員會(小組)負(fù)責(zé)人(簽字): 年 月 日畢業(yè)設(shè)計說明書(論文)中文摘要由于社會的進步,人口都向城市流動,交通也越來越擁擠。為此,出現(xiàn)了地鐵。隨著科技的發(fā)展,人們對出行的要求越來越高,地鐵自動售票機就應(yīng)運

2、而生了。自動售票機實現(xiàn)了乘客自助購票,大大加快了出行速度。本文主要討論了用vhdl語言設(shè)計地鐵自動售票系統(tǒng)。vhdl語言有較強的描述能力,可以分模塊編寫程序再合并,所以能設(shè)計復(fù)雜、多層次的系統(tǒng)。編寫的程序可用altera公司的quarts ii軟件進行調(diào)試和仿真。設(shè)計的地鐵自動售票機最終要實現(xiàn)票價選擇、投幣狀態(tài)、余額計算、自動出票、自動找零等功能。關(guān)鍵詞 vhdl 自動售票系統(tǒng) 模塊 quarts ii 仿真 畢業(yè)設(shè)計說明書(論文)外文摘要title design of automatic ticket vending machine system based on vhdl abstract

3、due to the progress of the society,the population flow to cities,traffic is becoming more and more crowded.because of this,the subway emerged.with the development of science and technology,peoples demand for travel is higher and higher,so the subway ticket machines is developed.automatic machines to

4、 realize the passenger self-service ticketing,greatly accelerate the speed of travel.this article mainly discussed the design of metro ticketing system with vhdl language.vhdl language has a strong ability of description,can write a program to merge module,so can design complex, multi-layered system

5、.coding can use altera corporations quarts ii software carries on the debugging and simulation.the subway ticket machines can achieve selection of ticket price,insert_state,balance calculation, automatic ticket,automatic change and so on.keywords vhdl metro ticketing system module quarts ii simulati

6、on 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 頁 目 次1 引言111 研究意義112 研究背景113 研究任務(wù)214 研究內(nèi)容22 理論基礎(chǔ)321 fpga322 vhdl語言423 quartus軟件63 課題設(shè)計931 設(shè)計要求932 系統(tǒng)分析與設(shè)計方案94 程序仿真1641 自動售票機主控模塊的波形仿真1642 車票選擇模塊的波形仿真1743 紙、硬幣處理模塊的波形仿真1844 自動找零、出票模塊的波形仿真1945 整個售票機系統(tǒng)的波形仿真圖205硬件驗證2251 上箱過程2252 上箱結(jié)果23結(jié) 論25致 謝26參 考 文 獻27附錄28本科畢業(yè)設(shè)計說明書(論文) 第9頁 共33頁

7、1 引言自動售票機主要的控制模塊可以用多種語言設(shè)計完成。但這些語言有較大的差異,不利于后期的修改和使用者之間的交流。而vhdl語言是一種功能強大、標(biāo)準(zhǔn)化的硬件描述語言。用vhdl語言設(shè)計程序時可以先分塊編寫再合并,所以能夠編寫出多層次的程序,與此同時,vhdl語言編寫的程序避免了其他語言只能在各自環(huán)境中使用的缺陷。 本章主要討論了地鐵的起源、發(fā)展,以及隨著社會的發(fā)展,為了簡化購票流程,從而設(shè)計出了自動售票機來代替人工售票等。11 研究意義近年來,國民經(jīng)濟快速發(fā)展,城市的各項設(shè)施也越來越好,進而人們對交通的要求也不斷增加。因此,安全又快捷的地鐵就出現(xiàn)了。地鐵的速度較快,且在行駛過程的載客數(shù)較多,

8、這是公交所不具備的,而且它的出現(xiàn)增加了乘客的選擇,也可以很好的緩解交通擁擠的情況。如今,我國的地鐵都實行售票制,而越來越多的乘客選擇地鐵出行也增加了售票工作的困難。這也給自動售票機的誕生和創(chuàng)新提供了一個很好的市場潛力和發(fā)展空間1。自動售票機系統(tǒng)是可以解決各類軌道交通系統(tǒng)的各個終端設(shè)備協(xié)同工作的平臺2,是基于計算機技術(shù)、網(wǎng)絡(luò)技術(shù) 、自動控制技術(shù)、大型數(shù)據(jù)庫技術(shù)、機電一體化技術(shù)、模式識別技術(shù)、傳感技術(shù)、精密機械技術(shù)等多項高新技術(shù)于一體的大型系統(tǒng)3。乘客可以根據(jù)自動售票機顯示屏上的操作指示選擇要到達(dá)的地點以及購票張數(shù),并投幣完成購票。它能夠?qū)崿F(xiàn)自主購票,可以減少地鐵站的工作員工人數(shù),人工售票的工作強

9、度以及地鐵站不必要的售票窗口的花費,同時它還能避免人工售票帶來的一些失誤,大大提高售票的正確率。12 研究背景1863年,地鐵在倫敦建成,是世界上第一條地鐵,也是最長的地鐵,至今已有一百多年的歷史,。而提出要建造這個條地鐵的人確是英國的一個律師,叫查爾斯.皮爾遜。他生活的那個年代路上的車輛已經(jīng)很多,交通也比較擁擠,總是發(fā)生車禍,查爾斯暗暗發(fā)覺隨著車輛的增多,這種情況發(fā)生的概率會越來越高,就在他發(fā)愁的時候,他發(fā)現(xiàn)才出現(xiàn)沒多久的鐵路時速快,載客量大。于是,他向當(dāng)?shù)卣岢隽藢㈣F路建造在城市街道下面的想法,經(jīng)過歲月的驗證,最后被英國政府采納,就有了地鐵。地鐵出現(xiàn)后,由于它的軌道不與地面上的車輛以及建

10、筑發(fā)生沖突,并且它的行駛速度非常快,沒有地面上車輛的車輪滾動的聲音和鳴笛聲,噪聲很小,行駛過程比較平坦,一次性可以容納的人數(shù)又是公交車的7-8倍,并且它使用電力驅(qū)動,不會污染環(huán)境,所以贏得了人們的青睞,經(jīng)過不斷改進,一直運行到現(xiàn)在。地鐵自從1863年在英國倫敦建成后到如今,隨著城鄉(xiāng)一體化的構(gòu)建,大量農(nóng)民涌入城市。城市人口迅速膨脹, 城市交通也越來越擁擠,而人們的生活節(jié)奏卻越來越快,對售票系統(tǒng)的要求也越來越高,所以,人工售票被漸漸淘汰,取而代之的是高效快速的自動售票系統(tǒng)。在國外,有一部分城市已經(jīng)采用了自動售檢票系統(tǒng),并且已經(jīng)有相當(dāng)高的技術(shù)含量。而中國的這項技術(shù)最初是從國外流傳而來的,經(jīng)過不斷的研

11、究創(chuàng)新,已開發(fā)出了很多新的產(chǎn)品,而這項技術(shù)也一直都在提高。到目前為止,國內(nèi)軌道交通afc的技術(shù)已與城市一卡通接軌,實現(xiàn)城市甚至城市區(qū)間的一卡通4。13 研究任務(wù) 查閱相關(guān)資料,認(rèn)真學(xué)習(xí)數(shù)字邏輯電路,要了解計時器、觸發(fā)器等原理并會編寫售票機程序中用到的邏輯電路。 分析自動售票機要實現(xiàn)的功能,選擇設(shè)計方案,并說明其工作原理。 根據(jù)課題要求,學(xué)習(xí)vhdl語言和fpga的基本知識,利用vhdl語言設(shè)計地鐵自動售票機系統(tǒng)并對相關(guān)的軟件程序進行說明。 對地鐵自動售票機系統(tǒng)進行仿真。仿真結(jié)果要求:票價選擇;投幣系統(tǒng);余額計算;出票;自動找零。 將編寫好的地鐵自動售票機系統(tǒng)上箱進行驗證。14 研究內(nèi)容 首先學(xué)

12、習(xí)此課題設(shè)計需要用到的vhdl語言,對它的結(jié)構(gòu)特點、設(shè)計流程、基本語言、描述方式及主要描述語句有一定的了解。 其次學(xué)習(xí)altera公司的quartus 軟件的系統(tǒng)特點、設(shè)計流程、設(shè)計方法以及基本操作。 在學(xué)習(xí)了vhdl語言和quartus 軟件的基礎(chǔ)上用vhdl語言編寫地鐵自動售票機的程序,完成程序后再用quartus 軟件對編寫的程序進行調(diào)試和仿真,使其能夠?qū)崿F(xiàn)票價選擇,投幣系統(tǒng),余額計算,自動出票,自動找零等功能。2 理論基礎(chǔ)21 fpga 211 fpga介紹fpga(fieldprogrammable gate array),即現(xiàn)場可編程門陣列,它是在pal、gal、cpld等可編程器

13、件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物5。它是作為專用集成電路(asic)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點6。fpga的編程語言有兩種,一種是vhdl語言另一種則是verilog語言,它們都是用于fpga,也都比較常用。而vhdl語言是由美國國防部創(chuàng)建的,并在1987年正式成為ieee的標(biāo)準(zhǔn)硬件描述語言;而verilog語言是從一家軟件開發(fā)企業(yè)的開發(fā)成果中轉(zhuǎn)移過來的,由于它各方面的特點都比較突出,在1995年終于成為了ieee的標(biāo)準(zhǔn)硬件描述語言。用vhdl或是verilog語言編寫的程序經(jīng)過編譯綜合、仿真驗證、引腳鎖定之后將配置好的數(shù)據(jù)燒錄至

14、fpga上進行測試。在ic設(shè)計、驗證方面常用到這種方法。它既可以用來設(shè)計一些比較基礎(chǔ)的電路模塊,比如:門電路、加法器等;也可以設(shè)計一些微復(fù)雜的時序邏輯電路,比如:移位寄存器、計數(shù)器等;還可以設(shè)計一些更復(fù)雜的組合電路,比如:解碼器、編碼器等。fpga的開發(fā)應(yīng)用與個人計算機和單片機的差別較大,fpga主要是通過并行運算和vhdl語言或是verilog語言完成的,而個人計算機和單片機是用順序運算的,這也加大了它開發(fā)的難度。它的開發(fā)涉及頂層設(shè)計、模塊分層、邏輯實現(xiàn)、軟硬件調(diào)試等方面,再次說明它的開發(fā)并不容易。212 fpga特點fpga器件是由xilinx公司開發(fā)并推出的,在推出后它們一直都在不斷更新

15、中,長期以來,在fpga領(lǐng)域保持著領(lǐng)先。fpga有以下幾個特點: fpga芯片內(nèi)部的觸發(fā)器數(shù)量比較多,所以更適合于結(jié)構(gòu)復(fù)雜的時序邏輯電路。 fpga芯片的規(guī)模比較大,布線結(jié)構(gòu)相對比較復(fù)雜,新型器件高達(dá)千萬門級,所以常用它來完成復(fù)雜電路的設(shè)計7。 fpga芯片在出廠之前全部都要經(jīng)過測試,所以有安全保障。此外,開發(fā)fpga所需的資金與普通的asic芯片相比較要少許多,可以節(jié)省一部分開發(fā)消費。 fpga芯片編寫的程序信息在每次斷電時會丟失,重新通電之后無法自行回復(fù),需要從外部導(dǎo)入。雖然有諸多不變,但使用者可以反復(fù)地編程、擦除、使用,實現(xiàn)任意次的編程。 還能使軟、硬件協(xié)同操作使用。22 vhdl語言2

16、21 vhdl語言的簡介在開發(fā)軟件的初期,各個生產(chǎn)商為了減少開發(fā)周期,提高效率,開發(fā)出了各種不同的具有各自代表性的硬件描述語言,但由于差別大,只能適用于各開發(fā)商自己開發(fā)軟件的環(huán)境,這給后期的修改和使用者之間的交流造成了一定的障礙。所以人們想要制定出統(tǒng)一的硬件描述語言。于是,在1981年的時候,美國成立了vhdl工作小組,并提出了一種比較標(biāo)準(zhǔn)的語言,簡稱vhdl。1983年的時候,ti公司、ibm公司聯(lián)合intermetic公司組建小組,共同開發(fā)vhdl語言版本和軟件開發(fā)環(huán)境。到了1986年,vhdl語言開始趨于標(biāo)準(zhǔn)化。一年后,ieee組織正式宣布此語言版本為硬件描述語言的標(biāo)準(zhǔn) 。但并沒有因此結(jié)

17、束,在確定之后的的一年左右時間里,美國國防部對其進行強制性的推廣及使用。之后的多年時間里,ieee對其進行過修訂,使其涉及范圍更廣、功能更加強大。并且把修訂后的vhdl語言定為新的標(biāo)準(zhǔn)。在vhdl語言產(chǎn)生并成為標(biāo)準(zhǔn)的過程中,它一直都在前進,它用它強大的語言結(jié)構(gòu)適應(yīng)了eda技術(shù)的發(fā)展的同時還促進了它的進步。所以不得不承認(rèn)它是適用于電路設(shè)計的功能強大的硬件語言。vhdl語言的全稱是超高速集成電路硬件描述語言(very high speed integrated circuit hardware description language) 8。常用于數(shù)字電路的設(shè)計。vhdl語言的語言格式、語法和描述

18、方式與一般的計算機編程語言有許多相似的地方。vhdl語言的程序包括實體、結(jié)構(gòu)體、配置、程序包和庫5個部分9。其基本結(jié)構(gòu)如圖2.1所示。庫、程序包 實體結(jié)構(gòu)體進程或其他并行語句配置圖 2.1 vhdl程序基本結(jié)構(gòu)其中實體還分成外部和內(nèi)部。當(dāng)某個實體定義了外部界面以后,只要完成內(nèi)部功能的編程,其他部分能夠直接使用它,簡化了設(shè)計過程,體現(xiàn)出了它的優(yōu)越性。vhdl語言在歐洲使用較為廣泛,而verilog語言則在中國、美國、日本、臺灣等地方用的比較多。兩種語言相比而言,verilog語言學(xué)起來較容易一些,它跟c語言比較類似,如果有c語言基礎(chǔ)的話,不需要花太多的時間就能掌握它。但是vhdl語言比較抽象,不

19、容易學(xué),需要的時間比較長。一旦掌握之后,它的優(yōu)勢就凸顯出來了,其設(shè)計效率比verilog語言高很多。222 vhdl語言的特點 vhdl語言已經(jīng)是標(biāo)準(zhǔn)的硬件描述語言,它涉及的范圍廣,有很強的描述能力,并且可以先分模塊進行設(shè)計,最后再把各個模塊合并起來組成一個完整的程序,所以此語言可以設(shè)計結(jié)構(gòu)復(fù)雜,層次較多的結(jié)構(gòu)電路。 vhdl語言的描述能力和它本身的程序結(jié)構(gòu)使得它能夠分解大規(guī)模程序的設(shè)計,還能重新利用之前的設(shè)計。設(shè)計者無法獨立設(shè)計一個大規(guī)模程序,所以這樣的程序通常是多人合作完成的。vhdl語句的再利用設(shè)計與分解大型程序的功能使共同完成設(shè)計成了可能。 vhdl語言有很多仿真語句和庫函數(shù),能實現(xiàn)綜

20、合仿真,所以在設(shè)計系統(tǒng)的過程中能及時進行仿真,檢驗程序的進展或是發(fā)現(xiàn)程序的錯誤,并進行相應(yīng)的修改,保證程序的順利運行。設(shè)計者通過這種方法不需做出實際的模型就能比較出各種方案的可行性及它們之間的優(yōu)劣,并作出取舍,大大降低了整個設(shè)計的開發(fā)成本。 vhdl語言的硬件有相對的獨立性,它與制作工藝無關(guān),不會隨其而改變,所以使用時間長。一個設(shè)計可以在其他的硬件結(jié)構(gòu)中使用,使用過程中也不需要對其結(jié)構(gòu)有深入的了解,總而言之,使用起來比較簡單。 223 vhdl語言的設(shè)計流程 設(shè)計規(guī)范的定義首先設(shè)計者要知道設(shè)計目的和要求,然后制定整個系統(tǒng)設(shè)計的總體方案。這一步是整個系統(tǒng)設(shè)計的鋪墊,是十分關(guān)鍵的。 采用vhdl進

21、行設(shè)計描述設(shè)計者先要根據(jù)系統(tǒng)設(shè)計的要求選擇方式,考慮是否要分模塊來編寫。通常,設(shè)計者采用“自頂向下”的設(shè)計方法。在劃分模塊的時候一定要仔細(xì)劃分,確保這樣的劃分是最好的,不然會直接影響到電路的設(shè)計。規(guī)劃完成后,設(shè)計者可以此為依據(jù)編寫每個模塊相應(yīng)的vhdl程序,再將每個部分程序組裝起來,這樣就成了一個完整的程序。 vhdl程序仿真程序仿真是編寫程序過程中不可或缺的。如果編寫好的程序不進行仿真,直接布局布線,若此時發(fā)生錯誤,則需要修改vhdl語言再重新布局布線,十分耗時。若每編寫一個程序就對其仿真,可以及時發(fā)現(xiàn)錯誤,節(jié)省設(shè)計者的時間和金錢。 綜合、優(yōu)化和裝配(或布局布線)綜合指的是將設(shè)計描述轉(zhuǎn)化成底

22、層電路的表示形式,其結(jié)果是一個網(wǎng)表或者是一組邏輯方程10;優(yōu)化是為了縮小時間延遲,更好的利用資源來提高程序的執(zhí)行效率;裝配就是對特定資源進行分配。而布局布線是將每個模塊的程序編譯以后生成的元器件重新定位,然后再進行布線。 仿真 這是在程序編寫完畢,并且裝配完成之后進行的仿真,是對整個程序是否符合其要實現(xiàn)的功能的驗證。23 quartus軟件231 quartus軟件簡介max+plus軟件是美國altera 公司推出的一種eda 工具,在開發(fā)出來后的幾年時間里,altera 公司在推出兩種設(shè)計芯片同時也在不斷改進開發(fā)軟件,一共經(jīng)歷了四代:第一代a+plus、第二代max+plus、第三代max

23、+plus ii 和第四代quartus。quartus軟件不但包含了max+plus ii軟件的優(yōu)勢,在面對新技術(shù)時同樣可以使用。quartus是一款針對fpga芯片的綜合性的開發(fā)軟件,它有多種輸入方式,例如:原理圖輸入、ahdl語言輸入、vhdl語言輸入、tcl script輸入以及systemverilog hdl語言輸入等。同時,它的內(nèi)部有自己的編譯綜合器和仿真器,能夠進行與程序相對應(yīng)的輸入輸出管腳的波形仿真,最后對器件的各個引腳進行分配,是設(shè)計器件用的比較完整的一個軟件。quartus軟件適用于多種系統(tǒng),像個人電腦的microsoft windows xp、microsoft win

24、dows 7系統(tǒng),linux系統(tǒng)以及unix系統(tǒng)等都支持這款軟件。除此之外,這款軟件還支持lpm宏功能模塊庫,設(shè)計者可以使用已存在的模塊,無需重新編寫,簡化了設(shè)計過程,提高了設(shè)計效率。它也支持第三方軟件工具的運行,除了自身可以對程序進行波形仿真之外,其他的仿真工具它也能使用。另外,quartus支持多種可編程邏輯器件的開發(fā)、集系統(tǒng)級設(shè)計、嵌入式軟件開發(fā)、可編程邏輯設(shè)計于一體,它的軟件設(shè)計功能強大且容易操作,是一種綜合性的開發(fā)平臺11。232 quartus軟件的特點該軟件對altera 公司之前開發(fā)的幾代軟件去其糟粕,取其精華,再在功能上加以改進才開發(fā)出的新產(chǎn)品。所以,之前幾代軟件的功能它都具

25、備,同時簡化了使用者的操作,使用戶能很快的入手。在整個邏輯器件設(shè)計的過程中,從程序各模塊的編寫到程序的編譯到設(shè)計功能的仿真再到編程下載都有這款軟件提供,可以說這是一款功能十分強大的軟件。該軟件支持公司多款max系列的器件,與很多eda供應(yīng)商開發(fā)的軟件工具兼容,改進了軟件的logiclock模塊設(shè)計功能,增添了fastfit編譯選項,推進網(wǎng)絡(luò)編輯性能,提升了調(diào)試能力12。233 quartus軟件的設(shè)計流程quartus軟件開發(fā)的設(shè)計流程圖如圖2.2所示。設(shè)計輸入綜合布線布局時序分析仿真在線校驗修改設(shè)計器件編程與配置生產(chǎn)圖2.3 quartus軟件的設(shè)計流程 設(shè)計輸入 設(shè)計者根據(jù)程序要實現(xiàn)的功能

26、著手,考慮好思路并設(shè)計好各模塊的劃分,再用vhdl語言或原理圖等的形式輸入。 綜合設(shè)計者將之前輸入的設(shè)計根據(jù)軟件本身的要求進行編譯、優(yōu)化、配置與綜合,生成了網(wǎng)表文件,供下一階段使用。 布局布線設(shè)計者用適配器將上一階段綜合得到的網(wǎng)表文件對應(yīng)到fpga器件上。將分開的模塊重新定位,之后組合到一起,給其分配引腳,再布局。 時序分析網(wǎng)表的布局布線完成后,即可得到相應(yīng)的供此階段用的編程文件。設(shè)計者可以看到整個編程文件的時序信息,也可以分析它的時序性能。 仿真它有兩種形式,一種是在不考慮外界環(huán)境及器件因素的情況下的對電路的直接仿真;另一種是在接近實際環(huán)境中對生成的器件的仿真。 器件編程與配置設(shè)計者在編譯成

27、功之后將編譯的程序下載到實際的試驗箱上進行進一步驗證。 在線校驗對配制好的器件在網(wǎng)上測試,看其是否符合原先器件設(shè)計要達(dá)到的功能。3 課題設(shè)計31 設(shè)計要求設(shè)計一個程序并對它進行仿真驗證使它能夠模擬地鐵站自動售票機的功能。主要內(nèi)容如下:該自動售票機的主控模塊控制其他幾個模塊,當(dāng)主控模塊的start=1的時候,使能端en0和en1為1,此時車票選擇模塊與紙、硬幣處理模塊工作,分別輸出總價cost和總票數(shù)quantity以及投入總錢數(shù)money_insert。當(dāng)主控模塊的start=0的時候,使能端en2為1,此時自動找零、出票模塊工作,根據(jù)使能端bi為1或0來選擇自動售票機是找零出票呢還是退錢不出

28、票。自動售票機的整個功能如下所述:自動售票機有兩處可以投幣,一處接受硬幣另一處接受紙幣。硬幣接受孔只能識別一元硬幣,紙幣接受孔可以接受5元和10元的紙幣。根據(jù)站點的遠(yuǎn)近,將車站均等的分成三組,第一組的票價為2元,第二組的票價為3元,第三組的票價為4元。乘客一次只能選擇一個價位的票,但每次最多可以選擇購買三張車票。當(dāng)選好出站口和購買的車票數(shù)以后,乘客就要開始投幣,投幣過程中可以投入硬幣可以投入紙幣,也可以兩種混投,只要投入的錢數(shù)滿足本次購票需要的錢數(shù)即可。若投入的錢數(shù)不夠需要的錢數(shù),售票機會顯示錢數(shù)不夠,要求繼續(xù)投幣,直到達(dá)到所需金額為止。投幣結(jié)束后,自動售票機自動出票并進行找零,交易結(jié)束,跳回

29、主界面等代下位乘客。若是乘客在購票過程取消了購票操作,則自動售票機立即結(jié)束購票進程,并返還已投的錢幣。32 系統(tǒng)分析與設(shè)計方案321 系統(tǒng)的框架結(jié)構(gòu)根據(jù)課題要實現(xiàn)的功能,選擇按模塊來編寫程序,本設(shè)計大概分成四個模塊,分別是自動售票機主控模塊,車票選擇模塊,紙、硬幣處理模塊,自動找零、出票模塊??偟目蚣軋D如圖3.1所示。自動售票機主控模塊紙、硬幣處理模塊自動找零、出票模塊車票選擇模塊costenoen1money_inserten2bidfquantity圖3.1 自動售票機系統(tǒng)結(jié)構(gòu)框圖 自動售票機主控模塊:當(dāng)此模塊的start為1的時候,使能端en0和en1為1,en2為0,此時車票選擇模塊與

30、紙、硬幣處理模塊工作。當(dāng)此模塊的start為0的時候,使能端en2為1,en0和en1為0,此時自動找零、出票模塊工作。若投入的總錢數(shù)大于等于總價的話,使能端bi為1, 自動售票機輸出票數(shù)quantity,并輸出對應(yīng)的找錢df為money_insert-cost。若投入的總錢數(shù)小于總價的話,使能端bi為0, 自動售票機不出票,并退出乘客負(fù)的總錢數(shù),此時df為money_insert。 車票選擇模塊:受控于主控模塊,乘客先啟動rest讓售票機進入初始狀態(tài),然后根據(jù)自己的需要選擇票價,有2元,3元,4元的可供選擇,選定票價后再選擇購買張數(shù),乘客一次性至多只能購買3張,選擇完畢后輸出總價cost和總

31、票數(shù)quantity。 紙、硬幣處理模塊:受控于主控模塊,乘客先讓rest為0讓售票機進入初始狀態(tài),等時鐘脈沖的上升沿到來時,投入錢幣數(shù),有1元硬幣,5元和10元紙幣,若投入的錢數(shù)不足于總票價,則繼續(xù)投幣,否則輸出投入總錢數(shù)。 自動找零、出票模塊:受控于主控模塊,乘客先讓rest為0讓售票機進入初始狀態(tài),等時鐘脈沖的上升沿到來時,若是使能端bi為1,則輸出票數(shù)為車票選擇模塊輸出的票數(shù)quantity,并且輸出找零為df。若是使能端bi為0,則不出票,退回投入的總錢數(shù)money_insert。整個操作流程圖如圖3.2所示。 本科畢業(yè)設(shè)計說明書(論文) 第 25頁 共 33頁 投幣數(shù)票價計算金額投

32、幣選票3元4元2元進入初始狀態(tài)是否出票找零繼續(xù)投幣退幣返回否是交易結(jié)束圖3.2 操作流程圖322 各模塊功能分析自動售票機主控模塊該模塊是自動售票機的核心,它通過控制其余模塊的使能端來控制其他幾個模塊的運行。主控模塊的原理圖如圖3.3所示。圖3.3 車票模塊原理圖 輸入端口: rest:復(fù)位信號,當(dāng)rest為0時,所有輸出為零,定義為初始狀態(tài)。 clk:時鐘脈沖,定義為上升沿時有效。 start:選擇功能使能端,start為1時,車票選擇模塊與紙、硬幣處理模塊工作,start為0時,自動找零、出票模塊工作。 money_insert:乘客投入的總錢數(shù)。 cost:乘客選擇的總票價。 輸出端口:

33、 en0:使能端,控制車票選擇模塊工作。 en1:使能端,控制紙、硬幣處理模塊工作。 en2:使能端,控制自動找零、出票模塊工作。 bi:使能端,控制是否出票找零或是退錢。 df:根據(jù)bi的狀態(tài)決定退出的錢數(shù)。車票選擇模塊 此模塊共有三種票價的車票可供選擇,乘客可以根據(jù)自己的需要選擇票價及票數(shù)(不超過3張)。車票選擇模塊的原理圖如圖3.4所示。圖3.4 車票選擇模塊原理圖1 輸入端口: rest:復(fù)位信號,當(dāng)rest為0時,所有輸出為零,定義為初始狀態(tài)。 clk:時鐘脈沖,定義為上升沿時有效。 jia_2,jia_3,jia_4:分別代表2元,3元和4元的票價,當(dāng)其中一個為1時,代表該票價被選

34、中。 shu_1,shu_2,shu_3:分別代表1張,2張和3張的票數(shù),當(dāng)其中一個為1時,代表該票數(shù)被選中。 輸出端口: quantity:代表乘客所選擇的票數(shù)。 cost:代表乘客最終選擇的總票價。 其他端口: price:代表乘客所選擇的票價。 紙、硬幣處理模塊此模塊主要執(zhí)行乘客在上一個模塊中所選擇了總票價后來投入紙、硬幣購票的過程,將投入的總錢數(shù)送往主控模塊進行比較。紙、硬幣處理模塊的原理圖如圖3.5所示。圖3.5 紙、硬幣處理模塊原理圖 輸入端口: rest:復(fù)位信號,當(dāng)rest為0時,所有輸出為零,定義為初始狀態(tài)。 clk:時鐘脈沖,定義為上升沿時有效。 en1:使能端,en1為1

35、時有效,代表紙、硬幣處理模塊工作。 qian_1,qian_5,qian_10:代表投入的錢數(shù)分別為1元,5元和10元,當(dāng)其中一個為1時,代表投入該錢數(shù)。 cost:代表車票選擇模塊中乘客選擇的總票價。 輸出端口: money_insert:代表乘客在購票時投入的總錢數(shù)。 其他端口: qian:代表在投幣過程每次投入的錢數(shù)。 自動找零、出票模塊此模塊主要根據(jù)乘客所購買車票的價格及其投入的錢數(shù)進行相應(yīng)的出票并找零或是不出票并退錢的操作。車票選擇模塊的原理圖如圖3.6所示。圖3.6 自動找零、出票模塊原理圖 輸入端口: rest:復(fù)位信號,當(dāng)rest為0時,所有輸出為零,定義為初始狀態(tài)。 clk:

36、時鐘脈沖,定義為上升沿時有效。 en2:使能端,控制自動找零、出票模塊工作。 bi:使能端,控制是否出票找零或是退錢。 quantity:代表乘客所選擇的票數(shù)。 df:根據(jù)bi的狀態(tài)決定退出的錢數(shù)。 輸出端口: piaoshu:售票機吐出的票數(shù)。 change:售票機吐出的所找的零錢數(shù)。323 整個系統(tǒng)功能分析當(dāng)各個模塊都設(shè)計好并且仿真成功后,建立頂層文件,并將各模塊相應(yīng)的端口連接起來,其中所有模塊共用一個時鐘信號clk。整個自動售票機程序的頂層文件如圖3.7所示。圖3.7 整個自動售票機系統(tǒng)原理圖4 程序仿真41 自動售票機主控模塊的波形仿真此模塊波形仿真圖如圖4.1,4.2所示。圖4.1

37、主控模塊波形仿真圖start設(shè)定周期為10 ns ,cost設(shè)定周期為10ns ,當(dāng)start為1時,選擇en0與en1使能端工作,即選票模式與投幣模式共同運行,而start為0時,en2使能端工作,即找零/出票模式運行,開始找零出票或退錢。 money_insert設(shè)定周期為10ns 并且延時為5ns,使波形中出現(xiàn)money_insert與cost的價格相同的時間也會出現(xiàn)money_insert比cost的價格小的時間,當(dāng)cost與money_insert 的價格相同時,總是滿足 money_insert=cost的情況,所以此時 bi為1, df的值為money_insert與cost兩值

38、之差,此時df總是為0,表明此模塊程序波形仿真成功。當(dāng)money_insert的價格小于cost的價格的時候,此時bi為0, df與money_insert的值相等,此時df的輸出始終等于輸入的價格,即money_insert 的值,表明此模塊程序波形仿真成功。圖4.2 主控模塊波形仿真圖將時鐘脈沖clk的周期設(shè)定為1ns,上升沿有效。當(dāng)復(fù)位脈沖rest為1時,上升沿時鐘脈沖到來相應(yīng)的輸出端工作。start設(shè)定周期為10 ns ,選擇的總票價cost設(shè)定周期為10ns ,當(dāng)start為1時,選擇en0與en1使能端工作,即選票模式與投幣模式共同運行,而start為0時,en2使能端工作,即找零

39、/出票模式運行,開始找零出票或退錢。 投入的總錢數(shù) money_insert設(shè)定周期為5ns,使波形中出現(xiàn)money_insert比cost的價格大的時間,所以此時 bi總為1, df的值為money_insert與cost兩值之差,如:start為0時,en0,en1.en2分別為001,cost為2,money_insert為4,所以bi為1,且df為money_insert與cost兩值之差,為2,表明此模塊程序波形仿真成功。42 車票選擇模塊的波形仿真此模塊波形仿真圖如圖4.3所示。圖4.3 車票選擇模塊波形仿真圖將時鐘脈沖clk的周期設(shè)定為1ns,上升沿有效。當(dāng)復(fù)位脈沖rest為1時

40、,上升沿時鐘脈沖到來,開始選擇票價,在設(shè)定票價信號時選擇20%的占空比,并且將不同票價jia_2,jia_3,jia_4的周期設(shè)定為100ns,且逐一延時5ns,使它們之間不發(fā)生重合,以同樣的方式設(shè)定票數(shù)shu_1,shu_2,shu_3的周期,要注意,shu_1的周期要覆蓋整個jia_2,jia_3,jia_4的周期的并集,保證乘客一次只能選定一個票價和購票數(shù)。并且它們?yōu)?時有效,代表選中。如仿真圖所示,當(dāng)票價price為4元,購票數(shù)quantity為兩張的時候,乘客需要付的總票價cost為8元,表明此模塊程序仿真成功。43 紙、硬幣處理模塊的波形仿真此模塊波形仿真圖如圖4.4所示。圖4.4

41、 紙、硬幣處理模塊的波形仿真圖將時鐘脈沖clk的周期設(shè)定為1ns,上升沿有效。 當(dāng)復(fù)位脈沖rest為1且紙、硬幣處理模塊的使能端en1為1時,上升沿時鐘脈沖到來,該模塊開始工作。購票需要的總票價cost的周期設(shè)為25ns,并且延時20ns。在設(shè)定投入錢幣信號時選擇20%的占空比,同時將投入的錢數(shù)qian_1,qian_5,qian_10的周期設(shè)定為25ns,并且qian_1,qian_5,qian_10分別延時13ns,33ns和53ns,保證它們之間不會重合但又都在同一個總票價中,并且它們?yōu)?時有效,代表選中。如仿真圖所示,當(dāng)總票價cost為9元時,qian_1有效時,投入1元,由于投入錢數(shù)

42、money_insert小于總票價cost,所以繼續(xù)投入一元進行累加,當(dāng)qian_5有效時,投入5元,累加的7元,還是不足,繼續(xù)投入5元,累加得12元,此時投入充足的錢了,投入的總錢數(shù)money_insert就為12,表明此模塊程序仿真成功。44 自動找零、出票模塊的波形仿真此模塊波形仿真圖如圖4.5所示。圖4.5 自動找零、出票模塊的波形仿真圖將時鐘脈沖clk的周期設(shè)定為1ns,上升沿有效。當(dāng)復(fù)位脈沖rest為1且自動找零、出票模塊的使能端en2為1時,上升沿時鐘脈沖到來,該模塊開始工作。df的周期與選擇的票數(shù)quantity的周期都設(shè)為5ns,出票或退錢的使能端bi的周期設(shè)定為10ns,當(dāng)

43、bi為1時,開始找零且出票,;例如:df為10,quantity為2時,找零change為10,出兩張票,波形仿真正確。當(dāng)bi為0時,售票機不出票并退回錢,例如:df為4,quantity為4時,退出的錢數(shù)為4,輸出票數(shù)為0,表明此模塊程序仿真成功。45 整個售票機系統(tǒng)的波形仿真圖該波形仿真圖如圖4.6,4.7所示。圖4.6 整個售票機模塊系統(tǒng)的波形仿真圖將時鐘脈沖clk的周期設(shè)定為1ns,且上升沿有效。start為模塊選擇勢能端,當(dāng)start為1時,車票選擇模塊和紙、硬幣處理模塊工作,當(dāng)start為0時,自動找零、出票模塊工作。jia_2,jia_3,jia_4代表選擇的票價,shu_1,s

44、hu_2,shu_3代表選擇的票數(shù),qian_1,qian_2,qian_2代表投入的錢數(shù),當(dāng)它們其中一個為1時代表選中。上述圖中選擇了3元的票價,購買了3張票,一共投了10元。在start為1的時候輸出選擇的票價price為3,投入的錢數(shù)qian為10,在start為0時輸出票數(shù)3和所找的零錢change為1元。驗證正確,表明此模塊程序仿真成功。圖4.7 整個售票機模塊系統(tǒng)的波形仿真圖將時鐘脈沖clk的周期設(shè)定為1ns,且上升沿有效。start為模塊選擇勢能端,當(dāng)start為1時,車票選擇模塊和紙、硬幣處理模塊工作,當(dāng)start為0時,自動找零、出票模塊工作。jia_2,jia_3,jia_

45、4代表選擇的票價,shu_1,shu_2,shu_3代表選擇的票數(shù),qian_1,qian_2,qian_2代表投入的錢數(shù),當(dāng)它們其中一個為1時代表選中。上述圖中選擇了4元的票價,購買了3張票,每次投入的錢數(shù)為1元。在start為1的時候,每有一個上升沿來臨時,就投入1元,當(dāng)start為0時不再投錢。由于start為0時投入的錢數(shù)不足12元,所以在start為0時不出票,并退回投入的錢數(shù)3元。驗證正確,表明此模塊程序仿真成功。5硬件驗證51 上箱過程在整個程序的波形仿真成功之后,便可進行下一步操作:上箱驗證。步驟如下: 將整個程序的管腳配置好,要保證這些管腳與實驗箱上的實際管腳一一對應(yīng)。管教配

46、置如圖5.1所示。圖5.1 自動售票機程序管腳配置注意:由于數(shù)碼管的輸入是4位的,而piaoshu的輸出只有3位,所以需要將piaoshu的最高位設(shè)為0,如圖5.2所示。圖5.2 自動售票機piaoshu最高位管腳配置 配置好管腳以后再次進行仿真,使管腳信息進入程序中,連接實驗箱,將仿真好的程序燒入實驗箱進行驗證。如圖5.3所示。圖5.3 程序燒入試驗箱52 上箱結(jié)果將仿真好的程序燒到實驗箱上以后,便可進行驗證,其中時鐘脈沖clk為0.5hz。驗證結(jié)果如下圖5.4,5.5所示。圖5.4 投幣不足退錢且不出票本次實驗用四個數(shù)碼管顯示,第一個代表選擇的票價price,第二個代表投入的錢數(shù)qian,

47、第三個代表吐出的票數(shù)piaoshu,最后一個代表吐出的錢數(shù)change。除此以外還有8個輸入:鍵8表示start,鍵7表示qian_5,鍵6表示qian_1,鍵5表示jia_4,鍵4表示jia_3,鍵3表示jia_2,鍵2表示shu_3,鍵1表示shu_1。由于設(shè)計的系統(tǒng)除時鐘脈沖clk和復(fù)位信號rest外共有10個輸入,但按鍵只有8個,所以這里省掉了qian_10和shu_2的輸入。當(dāng)start為1時系統(tǒng)在選擇票價票數(shù)后投入錢數(shù),當(dāng)start為0時,系統(tǒng)出票。上圖選擇的票價jia_2為2,票數(shù)shu_1為1,投入的錢數(shù)qian_1為1,在這種情況下投入的錢數(shù)不足,所以系統(tǒng)不出票且退出所投的錢

48、1元,驗證成功。圖5.5 投幣足夠找零且出票上圖中選擇的票價為jia_3為3,票數(shù)shu_1為1,投入的錢數(shù)qian_5為5,在這種情況下投入的錢數(shù)大于總票價,所以系統(tǒng)吐出1張票并且退出所找的零錢2元,驗證成功。結(jié) 論這次的畢業(yè)設(shè)計利用的是vhdl語言編程的,所采用的是自上而下的模塊化設(shè)計地鐵站自動售票機的。先將整個課題按要實現(xiàn)的功能合理的分成了四個模塊,分別對每個模塊進行vhdl編程并進行相應(yīng)的波形仿真,全部成功之后再把四個模塊合起來,生成頂層文件,再對其進行最后的波形仿真看能否實現(xiàn)自動售票機要求的功能,最后下載到試驗箱進行最后驗證。在設(shè)計過程中也有遇到一些困難,在剛開始分模塊的時候就出現(xiàn)了

49、錯誤,分出來只有三個模塊,由于模塊分的不佳,編寫的程序較為復(fù)雜且邏輯不通,后來糾正了錯誤才成功的。通過本次畢業(yè)設(shè)計,我學(xué)到了很多,首先是對vhdl語言有了更深層次的理解,而且也能操作quartus軟件了,這是知識上的收獲,此外,也培養(yǎng)了我的邏輯思維以及獨立思考的能力,總的來說是一次很好的鍛煉。 本科畢業(yè)設(shè)計說明書(論文) 第 33 頁 共33頁 致 謝這次的畢業(yè)設(shè)計之所以能夠順利的完成,主要還是要感謝指導(dǎo)老師對我的悉心指導(dǎo),以及同班同學(xué)對我的幫助,沒有他們的耐心幫助,我可能無法完成本次畢業(yè)設(shè)計。也要感謝身邊的朋友和親人對我的關(guān)心,是他們在我不耐煩的時候給了我勇氣,讓我能堅定的走下去。參 考 文

50、 獻1 李開.自動售票機的創(chuàng)新設(shè)計與應(yīng)用j.中國電子商務(wù),2011,(11):117.2 向鵬.地鐵自動售票機系統(tǒng)設(shè)計j.自動化應(yīng)用,2010, (11):12.3 張國侯,宗明.南京地鐵自動售檢票系統(tǒng)(afc)模式研究j.機電信息, 2005,(22):49.4 陸永寧.ic卡應(yīng)用系統(tǒng)m.東南大學(xué)出版社,2000.5 于宗光. soc和fpga技術(shù)未來的發(fā)展趨勢j.電子與封裝, 2006,(3):12.6 閻石.數(shù)字電子技術(shù)基礎(chǔ)m.4版.北京:高等教育出版社,1998.7 張鵬南,孫宇,夏洪洋.基于quartus的vhdl數(shù)字系統(tǒng)設(shè)計入門與應(yīng)用實例m.1版. 北京:電子工業(yè)出版社,2012.18-19.8 鄭燕,郝建國.基于vhdl與quartus軟件的可編程邏輯器件應(yīng)用與開發(fā)m.2版. 北京:國防工業(yè)出版社,2011.44.9 張鵬南,孫宇,夏洪洋.基于quartus的vhdl數(shù)字系統(tǒng)設(shè)計入門與應(yīng)用實例m.1版. 北京:電子工業(yè)出版社,2012.54. 10 張鵬南,孫宇,夏洪洋.基于quartus的vhdl數(shù)字系統(tǒng)設(shè)計入門與應(yīng)用實例m.1版. 北京:電子工業(yè)出版社,2012.53.11 張竟成. 基于解析模型的變電站培訓(xùn)仿真系統(tǒng)d.天津: 天津大學(xué),2009.12 張鵬南,孫宇,夏洪洋.基于quartus的vhdl數(shù)字系統(tǒng)設(shè)計

溫馨提示

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

評論

0/150

提交評論