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

下載本文檔

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

文檔簡(jiǎn)介

1、基于fpga的出租車(chē)計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)摘要隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的發(fā)展,交通也越來(lái)越便利,特別是計(jì)程車(chē),以快捷、方便的特點(diǎn)早已盛行各個(gè)城市,成為城市交通的重要工具。計(jì)程車(chē)市場(chǎng)從90年代初的起步階段到現(xiàn)在已經(jīng)進(jìn)入了高峰期。隨著城市化水平的提高和人民生活水平的改善,計(jì)程車(chē)的服務(wù)也就顯得越來(lái)越重要。因此計(jì)程車(chē)計(jì)價(jià)器也就應(yīng)運(yùn)而生了。在本設(shè)計(jì)中主要是通過(guò)vhdl語(yǔ)言來(lái)編程實(shí)現(xiàn)計(jì)費(fèi)系統(tǒng)的四個(gè)功能塊:分頻模塊,控制模塊,計(jì)量模塊和譯碼顯示模塊,最后使用max+plusii軟件來(lái)對(duì)程序進(jìn)行仿真,以模擬實(shí)現(xiàn)出租車(chē)的啟動(dòng),停止以及等待等過(guò)程中的計(jì)時(shí),計(jì)程和計(jì)費(fèi)功能。并將各功能模塊的結(jié)果通過(guò)動(dòng)態(tài)譯碼掃描模塊輸出到顯示模塊進(jìn)行

2、顯示。即通過(guò)顯示模塊顯示出租車(chē)所行駛的路程,出租車(chē)等待的時(shí)間和出租車(chē)分別在等待過(guò)程中的費(fèi)用和行駛過(guò)程中的費(fèi)用。關(guān)鍵字:vhdl語(yǔ)言;maxplus ii;出租車(chē);計(jì)費(fèi)器目錄1緒論51.1研究的意義51.2當(dāng)前國(guó)內(nèi)外的研究現(xiàn)狀51.3本課題的目的51.4本論文的章節(jié)安排62 vhdl和fpga的簡(jiǎn)介72.1 vhdl的介紹72.2 fpga的介紹73 max+plusii平臺(tái)簡(jiǎn)介93.1概述93.2 max+plusii的特點(diǎn)94 設(shè)計(jì)方案的簡(jiǎn)介及比較114.1基于單片機(jī)出租車(chē)計(jì)費(fèi)器設(shè)計(jì)方案114.1.1硬件各模塊的功能114.1.2程序設(shè)計(jì)模塊124.2基于fpga的出租車(chē)計(jì)費(fèi)器的設(shè)計(jì)方案12

3、4.3兩種方案的比較134.4方案的確定135 出租車(chē)計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)145.1整體方案設(shè)計(jì)145.1.1設(shè)計(jì)的主要技術(shù)指標(biāo)145.1.2整體設(shè)計(jì)方案的實(shí)現(xiàn)145.2模塊的設(shè)計(jì)155.2.1秒分頻模塊155.2.2控制模塊165.2.3計(jì)量模塊175.2.4譯碼顯示輸出模塊215.2.5整體原理與仿真235.2.6結(jié)果分析245.2.7結(jié)論241緒論1.1研究的意義隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的發(fā)展,交通也越來(lái)越便利,特別是計(jì)程車(chē),以快捷、方便的特點(diǎn)早已盛行各個(gè)城市,成為城市交通的重要工具。計(jì)程車(chē)市場(chǎng)從90年代初的起步階段到現(xiàn)在已經(jīng)進(jìn)入了高峰期。隨著城市化水平的提高和人民生活水平的改善,計(jì)程車(chē)的服務(wù)也就顯得

4、越來(lái)越重要。因此計(jì)程車(chē)計(jì)價(jià)器也就應(yīng)運(yùn)而生了。1.2當(dāng)前國(guó)內(nèi)外的研究現(xiàn)狀目前市場(chǎng)上使用的出租車(chē)計(jì)費(fèi)器主要采用的都是利用mcu如89c51單片機(jī)實(shí)現(xiàn)的計(jì)費(fèi)器設(shè)計(jì),顯示方式上主要采用的是固定顯示內(nèi)容的led顯示。 傳統(tǒng)的出租車(chē)計(jì)費(fèi)器由于發(fā)展使用了十幾年,在穩(wěn)定性、成本、以及使用習(xí)慣上都具有一些優(yōu)勢(shì),但是隨著出租車(chē)價(jià)格市場(chǎng)化,我國(guó)加入wto以來(lái)主導(dǎo)出租車(chē)行業(yè)成本的許多因素主要包括油價(jià)的波動(dòng),都對(duì)傳統(tǒng)的出租車(chē)計(jì)費(fèi)器提出了更高的要求。近一年來(lái),各大城市都在對(duì)出租車(chē)價(jià)格進(jìn)行調(diào)整,由于數(shù)量太多,很多城市的調(diào)價(jià)甚至需要一個(gè)月的時(shí)間才能完成,經(jīng)常會(huì)同一時(shí)間出現(xiàn)幾個(gè)價(jià)格,有的城市的出租車(chē)上還會(huì)出現(xiàn)司機(jī)人工計(jì)價(jià)的尷尬

5、情形。這些都暴露了傳統(tǒng)計(jì)費(fèi)器在靈活性和升級(jí)換代能力的不足。傳統(tǒng)計(jì)費(fèi)器的不足可以體現(xiàn)在以下幾點(diǎn):1)品更新周期長(zhǎng)傳統(tǒng)計(jì)費(fèi)器利用mcu如89c51單片機(jī)實(shí)現(xiàn)汽車(chē)計(jì)費(fèi)器的設(shè)計(jì),大部分的功能可以用單片機(jī)來(lái)實(shí)現(xiàn)。但是單片機(jī)程序是不通用的,不同的芯片有不同的指令集,因此設(shè)計(jì)研發(fā)比較困難,周期長(zhǎng),如果系統(tǒng)設(shè)計(jì)的不好,則系統(tǒng)不是很穩(wěn)定,而且靈活度不夠,不易實(shí)現(xiàn)功能復(fù)雜的設(shè)計(jì)。2)計(jì)價(jià)方式的不靈活每次計(jì)價(jià)標(biāo)準(zhǔn)的修改都需要將芯片從新燒錄,使得每次調(diào)價(jià)都需要耗費(fèi)大量的人力物力,很難達(dá)到目前油價(jià)聯(lián)動(dòng)的需求。1.3本課題的目的 考慮到目前出租車(chē)行業(yè)迅猛發(fā)展的趨勢(shì)以及對(duì)計(jì)費(fèi)器更高的靈活性要求,本設(shè)計(jì)希望嘗試一些新的方法來(lái)

6、予以解決以上問(wèn)題。1)利用fpga取代mcu隨著fpga等數(shù)字可編程器件的出現(xiàn)解決傳統(tǒng)電子設(shè)計(jì)不能完成的任務(wù),利用fpga來(lái)實(shí)現(xiàn)出租車(chē)計(jì)費(fèi)器??尚行院芨?,而且電路簡(jiǎn)單,大大減少外圍器件,可以用軟件完全仿真,靈活度高,可以設(shè)計(jì)一些復(fù)雜的系統(tǒng),而且編好的系統(tǒng)可以在不同的fpga或cpld芯片上通用。fpga能完成任何數(shù)字器件的功能,使用fpga來(lái)開(kāi)發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,減少pcb面積,提高系統(tǒng)的可靠性。同時(shí)由于fpga的功能完全取決于vhdl語(yǔ)言編寫(xiě)的程序,不拘泥于某種芯片的特殊指令,更加提高了產(chǎn)品的更新?lián)Q代能力。2)增加計(jì)價(jià)標(biāo)準(zhǔn)設(shè)定功能通過(guò)設(shè)計(jì)此功能模塊可以使得計(jì)價(jià)標(biāo)準(zhǔn)設(shè)計(jì)更加靈活,

7、體現(xiàn)目前出租車(chē)行業(yè)發(fā)展的需要,使運(yùn)價(jià)、油價(jià)聯(lián)動(dòng)成為可能。1.4本論文的章節(jié)安排本文在第2章介紹了vhdl語(yǔ)言的特點(diǎn)和fpga的基本原理。第3章主要是對(duì)max+plusii進(jìn)行了簡(jiǎn)要的介紹。第4章介紹了當(dāng)前兩種主要出租車(chē)設(shè)計(jì)方案和這兩種方案的比較。第5章是對(duì)基于fpga設(shè)計(jì)方案的詳細(xì)設(shè)計(jì)。2 vhdl和fpga的簡(jiǎn)介2.1 vhdl的介紹vhdl的英文全名是vry_high_speed integrated circuit hardware descriptionlanguage,被認(rèn)為是標(biāo)準(zhǔn)硬件描述語(yǔ)言,有專(zhuān)家認(rèn)為,在新世紀(jì)中,vhdl與verilog hdl語(yǔ)言將承擔(dān)起幾乎全部的數(shù)字系統(tǒng)設(shè)計(jì)

8、任務(wù)。vhdl主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。除了含有許多具有硬件特征的語(yǔ)句外,vhdl的語(yǔ)言形式和描述風(fēng)格與句法十分類(lèi)似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。vhdl的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱(chēng)設(shè)計(jì)實(shí)體(可以是一個(gè)元件、一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱(chēng)可視部分,即端口)和內(nèi)部(或稱(chēng)不可視部分),即設(shè)計(jì)實(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)。隨著eda技術(shù)的發(fā)展,使用硬件語(yǔ)言設(shè)計(jì)fpga成為一種趨勢(shì)。借用maxplusii或quartusii等軟

9、件用vhdl語(yǔ)言開(kāi)發(fā)fpga的完整流程為:1)文本編輯:用任何文本編輯器都可以進(jìn)行,也可以用專(zhuān)用的hdl編輯環(huán)境。通常vhdl文件保存為.vhd文件。2)功能仿真:將文件調(diào)入hdl仿真軟件進(jìn)行功能仿真,檢查邏輯功能是否正確也叫前仿真,對(duì)簡(jiǎn)單的設(shè)計(jì)可以跳過(guò)這一步,只在布線完成以后,進(jìn)行時(shí)序仿真)。3)邏輯綜合:將源文件調(diào)入邏輯綜合軟件進(jìn)行綜合,即把語(yǔ)言綜合成最簡(jiǎn)的布爾表達(dá)式和信號(hào)的連接關(guān)系。邏輯綜合軟件會(huì)生成.edf(edif)的eda工業(yè)標(biāo)準(zhǔn)文件。4)布局布線:將edf文件調(diào)入pld廠家提供的軟件中進(jìn)行布線,即把設(shè)計(jì)好的邏輯安放到pld/fpga內(nèi)。5)時(shí)序仿真:需要利用在布局布線中獲得的精確

10、參數(shù),用仿真軟件驗(yàn)證電路的時(shí)序(也叫后仿真)。6)編程下載:確認(rèn)仿真無(wú)誤后,將文件下載到芯片中。.sof文件用于直接下載到芯片(掉電后會(huì)消失),.pof文件用于rom芯片下載(掉電后不消失)。2.2 fpga的介紹fpga是現(xiàn)場(chǎng)可編程門(mén)陣列(field programable gate array)的簡(jiǎn)稱(chēng),fpga是電子設(shè)計(jì)領(lǐng)域中最具活力和發(fā)展前途的一項(xiàng)技術(shù),它的影響絲毫不亞于70年代單片機(jī)的發(fā)明和使用。actel公司于2005年1月24日在美國(guó)加利福尼亞總部發(fā)布了它的proasic3和proasic3e系列的fpga。這是該公司第三代的基于flash的可編程邏輯方案。這些新的sic3最低價(jià)將

11、達(dá)到1。5美元,代表了全球最低成本的fpga,并且相對(duì)于基于sram的fpga來(lái)說(shuō)具有保密的優(yōu)勢(shì)?;趂lash的fpga可以提供加密、低功耗、上電工作、可重復(fù)編程的方案。目前生產(chǎn)fpga的公司主要有xilinx、altera、actel、lattice、quicklogic等生產(chǎn)的fpga品種和型號(hào)繁多。盡管這些fpga的具體結(jié)構(gòu)和性能指標(biāo)各有特色,但它們都有一個(gè)共同之處,即由邏輯功能塊排成陣列,并由可編程的互連資源連接這些邏輯功能塊,從而實(shí)現(xiàn)不同的設(shè)計(jì)。典型的fpga通常包含三類(lèi)基本資源:可編程邏輯功能塊、可編程輸入/輸出塊和可編程互連資源。可編程邏輯功能塊是實(shí)現(xiàn)用戶(hù)功能的基本單元,多個(gè)邏

12、輯功能塊通常規(guī)則地排成一個(gè)陣列結(jié)構(gòu),分布于整個(gè)芯片;可編程輸入/輸出塊完成芯片內(nèi)部邏輯與外部管腳之間的接口,圍繞在邏輯單元陣列四周;可編程內(nèi)部互連資源包括各種長(zhǎng)度的連線線段和一些可編程連接開(kāi)關(guān),它們將各個(gè)可編程邏輯塊或輸入/輸出塊連接起來(lái),構(gòu)成特定功能的電路。用戶(hù)可以通過(guò)編程決定每個(gè)單元的功能以及它們的互連關(guān)系,從而實(shí)現(xiàn)所需的邏輯功能。不同廠家或不同型號(hào)的fpga,在可編程邏輯塊的內(nèi)部結(jié)構(gòu)、規(guī)模、內(nèi)部互連的結(jié)構(gòu)等方面經(jīng)常存在較大的差異。3 max+plusii平臺(tái)簡(jiǎn)介3.1概述max+plusii是altera公司推出的第三代pld開(kāi)發(fā)系統(tǒng)(altera第四代pld開(kāi)發(fā)系統(tǒng)被稱(chēng)為:quartu

13、sii,主要用于設(shè)計(jì)新器件和大規(guī)模cpldfpga)。使用max+plusii的設(shè)計(jì)者不需精通器件內(nèi)部的復(fù)雜結(jié)構(gòu)。設(shè)計(jì)者可以用自己熟悉的設(shè)計(jì)工具(如原理圖輸入或硬件描述語(yǔ)言)建立設(shè)計(jì),max+plusii把這些設(shè)計(jì)轉(zhuǎn)自動(dòng)換成最終所需的格式。其設(shè)計(jì)速度非???。對(duì)于一般幾千門(mén)的電路設(shè)計(jì),使用max+plusii,從設(shè)計(jì)輸入到器件編程完畢,用戶(hù)拿到設(shè)計(jì)好的邏輯電路,大約只需幾小時(shí)。設(shè)計(jì)處理一般在數(shù)分鐘內(nèi)完成。特別是在原理圖輸入等方面,maxplus2被公認(rèn)為是最易使用,人機(jī)界面最友善的pld開(kāi)發(fā)軟件。3.2 max+plusii的特點(diǎn)1)開(kāi)放的界面altera的工作與eda廠家緊密結(jié)合,使maxpl

14、usii軟件可與其它工業(yè)標(biāo)準(zhǔn)的設(shè)計(jì)輸入綜合與校驗(yàn)工具相連接。設(shè)計(jì)人員可以使用altera或標(biāo)準(zhǔn)eda設(shè)計(jì)輸入工具來(lái)建立邏輯設(shè)計(jì),使用maxplusii編譯器(compiler)對(duì)altera器件設(shè)計(jì)進(jìn)行編譯,并使用altera或其它eda校驗(yàn)工具進(jìn)行器件或板級(jí)仿真。目前,maxplusii支持與cadence、exemplarlogic、mentor graphics、synopsys、synplicity、viewlogic和其它公司的eda工具的接口。2)多平臺(tái)maxplusii軟件可基于486、奔騰pc機(jī)的windows nt 3。51或4。0、windows 95、windows 98

15、下運(yùn)行,也可在sun spac stations,hp9000 series 700800和ibm risc system6000工作站上運(yùn)行。3)完全集成化maxplus ii的設(shè)計(jì)輸入、處理與校驗(yàn)功能全部集成在統(tǒng)一的開(kāi)發(fā)環(huán)境下,這樣可以加快動(dòng)態(tài)調(diào)試,縮短開(kāi)發(fā)周期。4)豐富的設(shè)計(jì)庫(kù)maxplusii提供豐富的庫(kù)單元供設(shè)計(jì)者調(diào)用,其中包括74系列的全部器件和多種特殊的邏輯宏功能(macrofunction)以及新型的參數(shù)化的兆功能(magefunction)。調(diào)用庫(kù)單元進(jìn)行設(shè)計(jì),可以大大減輕設(shè)計(jì)人員的工作量,也可成倍地縮短設(shè)計(jì)周期。5)模塊化工具設(shè)計(jì)人員可以從各種設(shè)計(jì)輸入、處理和校驗(yàn)選項(xiàng)中進(jìn)行

16、選擇從而使設(shè)計(jì)環(huán)境用戶(hù)化,必要時(shí),還可以根據(jù)需要添加新功能。由于maxplusii支持各種器件系列,設(shè)計(jì)人員不必學(xué)習(xí)新工具即可支持新結(jié)構(gòu)。6)硬件描述語(yǔ)言(hdl)maxplus ii軟件支持各種hdl設(shè)計(jì)輸入選項(xiàng),包括vhdl、verilog hdl和altera自己的硬件描述語(yǔ)言ahdl。7)megacore功能megacore功能是為復(fù)雜的系統(tǒng)級(jí)功能提供的,經(jīng)過(guò)校驗(yàn)的hdl網(wǎng)表文件,它能使flex 10k、flex 8000、flex 6000、max 9000和max 7000器件系列實(shí)現(xiàn)最優(yōu)化的設(shè)計(jì)。充分利用這些megacore功能會(huì)使設(shè)計(jì)人員的設(shè)計(jì)任務(wù)大大減輕,可把更多的精力投入到

17、改進(jìn)各種設(shè)計(jì)和最終的產(chǎn)品上。8)opencore特性maxplus ii軟件具有開(kāi)放核的特點(diǎn),它允許設(shè)計(jì)人員添加自己認(rèn)為有價(jià)值的宏函數(shù)。4 設(shè)計(jì)方案的簡(jiǎn)介及比較當(dāng)今國(guó)內(nèi)外出租車(chē)計(jì)價(jià)器的設(shè)計(jì)方式主要有兩種,一種是基于單片機(jī)的出租車(chē)計(jì)價(jià)器的設(shè)計(jì),另一種是基于fpga的出租車(chē)計(jì)價(jià)器的設(shè)計(jì)。4.1基于單片機(jī)出租車(chē)計(jì)費(fèi)器設(shè)計(jì)方案4.1.1硬件各模塊的功能1)鍵盤(pán)控制功能是啟動(dòng)出租車(chē)計(jì)價(jià)器,改變出租車(chē)計(jì)價(jià)器的狀態(tài)如運(yùn)行、等待計(jì)時(shí)、不同計(jì)費(fèi)模式的切換。2)掉電存儲(chǔ)用來(lái)存取計(jì)費(fèi)器的狀態(tài)信息和計(jì)費(fèi)信息。3)里程計(jì)算單元是通過(guò)安裝傳感器檢測(cè)到的信號(hào),送到單片機(jī),經(jīng)處理計(jì)算,送給顯示單元。4)利用單片機(jī)豐富的io端

18、口,實(shí)現(xiàn)基本的里程計(jì)價(jià)功能和價(jià)格調(diào)節(jié)、時(shí)鐘顯示功能。5)用單片機(jī)實(shí)現(xiàn)出租車(chē)計(jì)價(jià)器的開(kāi)發(fā)。外圍電路較多,調(diào)試復(fù)雜,抗干擾能力差,特別對(duì)這種計(jì)程車(chē)的計(jì)價(jià)器需要長(zhǎng)時(shí)間不間斷運(yùn)作的系統(tǒng),由于主要是軟件運(yùn)作,容易出錯(cuò),造成系統(tǒng)不穩(wěn)定。6)出租車(chē)計(jì)費(fèi)器的原理框圖如下圖4-1所示:掉電存儲(chǔ)里程計(jì)算單元 單片機(jī) 鍵盤(pán)控制總金額顯示單價(jià)顯示串口顯示驅(qū)動(dòng)電路圖4-1基于片機(jī)的計(jì)費(fèi)器原理框圖4.1.2程序設(shè)計(jì)模塊1)主程序模塊在主程序模塊中,需要完成對(duì)各接口芯片的初始化、出租車(chē)起價(jià)和單價(jià)的初始化、中斷向量的設(shè)計(jì)以及開(kāi)中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存器、里程寄存器和價(jià)格寄存器,并

19、對(duì)它們進(jìn)行初始化。然后,主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動(dòng)、清除、計(jì)程和計(jì)價(jià)等不同的操作。 2)定時(shí)中斷服務(wù)程序在定時(shí)中斷服務(wù)程序中,每100ms 產(chǎn)生一次中斷,當(dāng)產(chǎn)生10 次中斷的時(shí)候,也就到了一秒,送數(shù)據(jù)到相應(yīng)的顯示緩沖單元,并調(diào)用顯示子程序?qū)崟r(shí)顯示。3)里程計(jì)數(shù)中斷服務(wù)程序每當(dāng)霍爾傳感器輸出一個(gè)低電平信號(hào)就使單片機(jī)中斷一次,當(dāng)里程計(jì)數(shù)器對(duì)里程脈沖計(jì)滿1000 次時(shí),就有程序?qū)?dāng)前總額,使微機(jī)進(jìn)入里程計(jì)數(shù)中斷服務(wù)程序中。在該程序中,需要完成當(dāng)前行駛里程數(shù)和總額的累加操作,并將結(jié)果存入里程和總額寄存器中。4)中途等待中斷服務(wù)程序當(dāng)在計(jì)數(shù)狀態(tài)下霍爾開(kāi)關(guān)沒(méi)有輸出信號(hào),片內(nèi)的t1 定時(shí)器

20、便被啟動(dòng),每當(dāng)計(jì)時(shí)到達(dá)10分鐘,就對(duì)當(dāng)前金額加上中途等待的單價(jià),以后每十分鐘都自動(dòng)加上中途等待的單價(jià)。當(dāng)中途等待結(jié)束的時(shí)候,也就自動(dòng)切換到正常的計(jì)價(jià)。(5)顯示子程序服務(wù)程序由于是分屏顯示數(shù)據(jù),所以就要用到4 個(gè)顯示子程序,分別是:時(shí)分秒顯示子程序(hms_dis)、金額單價(jià)顯示子程序(cp_dis)、路程單價(jià)顯示子程序(dp_dis)、單價(jià)調(diào)節(jié)子程序(pa_dis)。6)鍵盤(pán)服務(wù)程序鍵盤(pán)采用查詢(xún)的方式,放在主程序中,當(dāng)沒(méi)有按鍵按下的時(shí)候,單片機(jī)循環(huán)主程序,一旦右按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。4.2基于fpga的出租車(chē)計(jì)費(fèi)器的設(shè)計(jì)方案基于fpga的出租車(chē)計(jì)費(fèi)是外部輸入模塊,

21、控制模塊和顯示模塊三部分組成??刂颇K是整個(gè)系統(tǒng)的核心。它是由分頻模塊,控制模塊,計(jì)量模塊和譯碼顯示模塊構(gòu)成。1)分頻模塊:分頻模塊是對(duì)系統(tǒng)時(shí)鐘進(jìn)行分頻以得到低頻系號(hào)。2)控制模塊:控制模塊主要是完成對(duì)計(jì)費(fèi)器狀態(tài)的控制。3)計(jì)量模塊:計(jì)量模塊完成計(jì)價(jià),計(jì)時(shí)和計(jì)程的功能。4)譯碼顯示模塊:譯碼顯示模塊完成計(jì)價(jià),計(jì)時(shí)和計(jì)程數(shù)據(jù)顯示。計(jì)費(fèi)數(shù)據(jù)送入譯碼顯示模塊譯碼,最后送至以百元,十元,元,角為單位對(duì)應(yīng)的數(shù)碼管上顯示。計(jì)時(shí)數(shù)據(jù)送入譯碼顯示模塊進(jìn)行譯碼,最后送至以分為單位對(duì)應(yīng)的數(shù)碼管上顯示。計(jì)程數(shù)據(jù)送入譯碼顯示模塊進(jìn)行譯碼,最后送至以km為單位的數(shù)碼管上顯示。5)基于fpga的出租車(chē)計(jì)費(fèi)器原理組成框圖如

22、圖4-2所示:圖4-2基于fpga的計(jì)費(fèi)器原理組成框圖4.3兩種方案的比較1)方案一的開(kāi)發(fā)及制作成本較低,能較大程度地利用資源,但外圍電路較多,調(diào)試復(fù)雜,抗干擾能力差,特別對(duì)這種計(jì)程車(chē)的計(jì)價(jià)器需要長(zhǎng)時(shí)間不間斷運(yùn)作的系統(tǒng),由于主要是軟件運(yùn)作,容易出錯(cuò),造成系統(tǒng)不穩(wěn)定。2)方案二將所有器件集成在一塊芯片上,體積大大減小的同時(shí)還提高了穩(wěn)定性,且可應(yīng)用eda軟件仿真,調(diào)試,易于進(jìn)行功能擴(kuò)展,外圍電路較少,采用硬件邏輯電路實(shí)現(xiàn),其最大的優(yōu)點(diǎn)是穩(wěn)定性好,抗干擾能力強(qiáng),非常適合作為計(jì)程車(chē)的計(jì)價(jià)器系統(tǒng)的控制核心。4.4方案的確定從以上兩種方案的比較可以看出基于fpga的設(shè)計(jì)方案要優(yōu)于基于單片機(jī)的設(shè)計(jì)方案基于f

23、pga的設(shè)計(jì)方案穩(wěn)定性更強(qiáng)且相對(duì)于單片機(jī)的設(shè)計(jì)方案來(lái)說(shuō)它更易于將來(lái)進(jìn)行功能擴(kuò)展。因此我確定采用基于fpga的出租車(chē)計(jì)費(fèi)器的設(shè)計(jì)方案。5 出租車(chē)計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)5.1整體方案設(shè)計(jì)5.1.1設(shè)計(jì)的主要技術(shù)指標(biāo)實(shí)現(xiàn)計(jì)程車(chē)的計(jì)價(jià)器功能。一方面實(shí)現(xiàn)基本功能時(shí),包括在行程中滿足3公里以?xún)?nèi)計(jì)起步價(jià) 10 元,以后以1.9元/公里計(jì)費(fèi)。處于等待的狀態(tài)下滿足2分鐘以?xún)?nèi)計(jì)2元,以后以1.5元/分計(jì)費(fèi)。另一方面多功能的實(shí)現(xiàn),計(jì)價(jià)器可以根據(jù)要求顯示需要的內(nèi)容,可以根據(jù)選擇鍵選擇顯示總費(fèi)用,總行程數(shù)和總乘車(chē)時(shí)間等等。 1) 計(jì)價(jià)范圍: 0999.9元; 計(jì)價(jià)分辨率: 0.1元; 2)計(jì)程范圍: 099公里; 計(jì)價(jià)分辨率:

24、 1.9公里; 3)計(jì)時(shí)范圍: 59分;計(jì)時(shí)分辨率: 1分鐘;5.1.2整體設(shè)計(jì)方案的實(shí)現(xiàn)出租車(chē)計(jì)費(fèi)器的控制系統(tǒng)以fpga為核心控制器。如圖5-1所示,主要分為四個(gè)模塊。分別為:秒分頻模塊、控制模塊、計(jì)量模塊和譯碼顯示模塊。秒分頻模塊使整個(gè)系統(tǒng)的同步工作,把系統(tǒng)提供的32m的晶振頻率進(jìn)行分頻,得到所需要的秒信號(hào)(便于在以后的計(jì)時(shí)中用到)??刂颇K是整個(gè)系統(tǒng)的核心部分,對(duì)各個(gè)部分起到了調(diào)控的作用。對(duì)計(jì)程車(chē)的工作狀態(tài)進(jìn)行具體的定義。計(jì)量模塊也是系統(tǒng)中一個(gè)十分重要的模塊,它分為三個(gè)部分,分別為計(jì)價(jià)部分、計(jì)時(shí)部分和計(jì)程部分,是出租車(chē)計(jì)費(fèi)系統(tǒng)多功能實(shí)現(xiàn)的保證。最后一個(gè)譯碼顯示模塊作用在于把計(jì)費(fèi)器的工作情

25、況(價(jià)錢(qián)、行程數(shù)、行程時(shí)間)反饋給乘客。四個(gè)模塊有機(jī)地結(jié)合在一起,實(shí)現(xiàn)了基于fpga出租車(chē)計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)。 圖5-1出租車(chē)計(jì)費(fèi)器組成方框圖5.2模塊的設(shè)計(jì)5.2.1秒分頻模塊1)秒分頻的對(duì)頻率為100hz的輸入脈沖進(jìn)行分頻,得到頻率為1hz的頻率。分頻模塊的電路符號(hào)圖如下圖52所示。從圖中可以看出分頻模塊有兩個(gè)輸入信號(hào),一個(gè)是clk時(shí)鐘信號(hào)。另一個(gè)是計(jì)費(fèi)器的使能信號(hào)start。 圖52分頻模塊電路符號(hào)圖分頻模塊的主要源代碼如下: if start=0 then 此if語(yǔ)句中得到分頻器的使能信號(hào) f_1=0; q_1=0; else if q_1=99 then 此if語(yǔ)句是得到頻率為1hz的頻

26、率信號(hào)和1公里脈沖 q_1=0; f_1=1; else q_1=q_1+1; f_1=0; end if; end if;2)秒分頻模塊的波形仿真圖如下圖53所示:從圖中可以看到當(dāng)q_1計(jì)數(shù)達(dá)到99的時(shí)候那么f_1就產(chǎn)生一個(gè)1公里脈沖信號(hào)。圖5-3分頻器仿真圖5.2.2控制模塊1)控制模塊對(duì)整個(gè)系統(tǒng)進(jìn)行控制作用,支配系統(tǒng)的工作狀態(tài)。描述了出租車(chē)計(jì)費(fèi)器整個(gè)工作過(guò)程的狀態(tài)。它是計(jì)費(fèi)器工作的核心??刂颇K的電路符號(hào)圖如下圖54所示:從圖中可以看到控制模塊有3個(gè)輸入端口即clk時(shí)鐘信號(hào),start計(jì)價(jià)使能信號(hào)和stop等待信號(hào)。圖54控制模塊的電路符號(hào)圖控制模塊的主要源代碼如下: if start=

27、0 then en0=0; en1=0; elsif stop=0 then en100000011 then 此if語(yǔ)句得到en0使能信號(hào) en0=1; else en0=0; end if; elsif stop=1 then en000000010 then 此if語(yǔ)句得到en1使能信號(hào) en1=1; else en1=0; end if; end if;2)控制模塊的波形仿真圖如下圖55所示:從仿真圖中可以看出輸出信號(hào)e0和e1的為輸出信號(hào)(當(dāng)en0=1時(shí)說(shuō)明出租車(chē)行駛超過(guò)了3公里,此時(shí)出租車(chē)按照每公里1.9元計(jì)費(fèi),當(dāng)en1=1時(shí)說(shuō)明出租車(chē)等待超過(guò)了2分鐘此時(shí)出租車(chē)按每分鐘1.5元計(jì)費(fèi)

28、)。圖5-5控制模塊波形仿真圖5.2.3計(jì)量模塊計(jì)量模塊是本系統(tǒng)中一個(gè)十分重要的部分,是計(jì)程車(chē)計(jì)價(jià)器系統(tǒng)多功能實(shí)現(xiàn)的保證。計(jì)量模塊其實(shí)在整個(gè)系統(tǒng)中就充當(dāng)一個(gè)計(jì)算器的功能。它是計(jì)價(jià)、計(jì)時(shí)、計(jì)程功能的具體實(shí)現(xiàn)。1)計(jì)價(jià)部分:由計(jì)程車(chē)的起步費(fèi)6元加上等待過(guò)程中的計(jì)費(fèi)1.5元/分,再加上行進(jìn)過(guò)程中的計(jì)費(fèi)1.9元/公里,然后再把計(jì)算出來(lái)的數(shù)分別以百元,十元,元,角的單位表示出來(lái),送去顯示譯碼模塊。(1)計(jì)價(jià)部分電路符號(hào)圖如圖57所示:圖中的輸出信號(hào)cha3,cha2,cha1,cha0分別表示的時(shí)計(jì)費(fèi)輸出部分的百元,十元,元,角的輸出。圖5-7計(jì)價(jià)部分的電路符號(hào)圖計(jì)價(jià)部分的主要源代碼如下所示:if en

29、0=1then -說(shuō)明超過(guò)了三公里; if(c191)then -加到19角就說(shuō)明車(chē)子行駛了1公里; c19:=c19+1; if(c19=1)then temp0=k0; end if;上面這幾句完成超過(guò)三公里的時(shí)的計(jì)費(fèi)功能。 elsif(en1=1)then if(c1515)then此if語(yǔ)句完成等待計(jì)費(fèi)功能; c15:=c15+1; if(c15=1) then temp1=m0; end if;此部分代碼完成等待超過(guò)2分鐘時(shí)的計(jì)費(fèi)功能。(2)計(jì)價(jià)部分的波形仿真如圖58所示:從仿真圖可以看出cha3,cha2,cha1,cha0在各個(gè)時(shí)間段的輸出數(shù)據(jù)。圖58計(jì)價(jià)部分的波形仿真圖2)計(jì)時(shí)

30、部分:是對(duì)乘客的乘車(chē)時(shí)間進(jìn)行計(jì)時(shí)(包括等待的時(shí)間和行進(jìn)的時(shí)間),分別以秒和分的形式送去顯示譯碼模塊,到59分時(shí)自動(dòng)歸零。(1)計(jì)時(shí)部分電路符號(hào)圖如下圖5-9所示:圖5-9計(jì)時(shí)部分電路符號(hào)圖完成計(jì)時(shí)部分的主要源代碼如下:if w=59 then w=0; 此if語(yǔ)句完成等待計(jì)時(shí) if m0=1001 then m0=0000;此if語(yǔ)句完成分計(jì)數(shù) if m1=101 then m1=000; else m1=m1+1; end if; else m0=m0+1; end if; else w=w+1; end if;(2)計(jì)時(shí)部分的波形仿真圖如圖510所示:m0的計(jì)時(shí)輸出為4分鐘。圖510計(jì)時(shí)部

31、分的波形仿真圖3)計(jì)程部分:對(duì)當(dāng)前行進(jìn)過(guò)程中所走的公里數(shù)進(jìn)行計(jì)算,最大范圍為99公里。同樣也送入譯碼顯示模塊。由于計(jì)程部分和計(jì)時(shí)部分的原理基本相同,不同的只是計(jì)時(shí)是是當(dāng)計(jì)數(shù)器計(jì)到59時(shí)發(fā)生跳變,而計(jì)程時(shí)則是當(dāng)計(jì)數(shù)器達(dá)到99時(shí)才產(chǎn)生一個(gè)跳變。(1)計(jì)程部分的電路符號(hào)圖如下圖示511所示: 完成計(jì)程部分的主要源代碼如下如所:if start=0 then k1=0000; k0=0000;elsif stop=0then if k0=1001 then k0=0000; if k1=1001 then k1=0000; else k1=k1+1; end if; else k0=k0+1; end if; end if;(2)計(jì)程部分的波形仿真圖如圖可以用圖512所示:當(dāng)k0計(jì)數(shù)達(dá)到9時(shí)k1(即里程的十位數(shù)變?yōu)?)圖512計(jì)程部分波形仿真圖5.2.4譯碼顯示輸出模塊譯碼顯示輸出模塊是建立在內(nèi)部系統(tǒng)和觀測(cè)人之間的橋梁。通過(guò)譯碼顯示模塊,人們才能得到想要的信息??梢?jiàn),它也是系統(tǒng)中一個(gè)必不可少的部分。1)這里的譯碼顯示模塊包括四個(gè)譯碼器和四個(gè)七段顯示數(shù)碼管。它可以根據(jù)需要在價(jià)格、時(shí)間

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論