




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 南 京 大 學(xué) 金 陵 學(xué) 院 本 科 畢 業(yè) 論 文院 系 信息科學(xué)與工程系 專 業(yè) 電子信息科學(xué)與技術(shù) 題 目 基于FPGA出租車計費系統(tǒng)的設(shè)計 論文提交日期 2010年6月3 日31 / 35摘 要通過出租車計費系統(tǒng)的設(shè)計,詳細(xì)介紹了如何使用硬件描述語言Verilog HDL設(shè)計復(fù)雜邏輯電路的步驟和過程,以與應(yīng)用美國ALTERA公司的Quartus II 9.0軟件進(jìn)行系統(tǒng)設(shè)計、仿真和下載實現(xiàn)的方法。通過設(shè)計,可以看到在EDA平臺上用CPLD器件構(gòu)成該數(shù)字系統(tǒng)的設(shè)計思想和實現(xiàn)過程。論述了計費模塊、時鐘模塊、動態(tài)顯示模塊、計費形式判斷模塊、控制模塊等的設(shè)計方法和技巧。
2、0;關(guān)鍵詞:CPLD/FPGA; 電子自動化設(shè)計; Verilog HDL硬件描述語言; 出租車計費器; Quartus II 9.0軟件ABSTRACTTaxi billing system through the design, details how to use the hardware des-cription language Verilog HDL design complexity and the process logic and the applicatio-n of the U.S. company's Quartus II 9.0 ALTERA software
3、 system design, simulation, anddownload the realization of the method. By design, you can see in the EDA platform usi-ng CPLD devices constitute the digital system design and implementation process. Discuss-es the billing module, clock module, dynamic display module, billing forms to judge mod-ule,
4、control module and other design methods and techniques.Keywords: CPLD/FPGA; EDA; Verilog HDL; TaxiBilling Machine; Quartus II 9.0目 錄第一章引言1第二章Verilog HDL硬件語言簡介12.1 Verilog HDL語言的特點22.2 Verilog HDL語言的基本結(jié)構(gòu)22.3 CPLD/FPGA的設(shè)計流程3第三章Quartus II 9.0軟件的簡介53.1 主要功能53.2 使用方法5第四章出租車計費系統(tǒng)174.1計費器系統(tǒng)的工作過程簡介174.1.1 計費
5、器的功能描述174.1.2 計費器系統(tǒng)分析174.1.3 實現(xiàn)計費系統(tǒng)所用器材和設(shè)備184.2 計費器系統(tǒng)各模塊194.2.1 時鐘模塊194.2.2 計費模塊214.2.3 顯示模塊244.3 計費系統(tǒng)頂層電路圖與SCH、PCB圖274.4 管腳分配294.5 程序下載與占用硬件資源分析29結(jié)束語30致31參考資料32第一章 引言隨著科技日新月異的發(fā)展,科技帶來的改變無處不在。尤其是計算機(jī)技術(shù)帶來了人類科技的許多重大的飛躍,特別是集成電路的應(yīng)用已經(jīng)滲透到生產(chǎn)和生活中的各個方面,有力的推動了社會的發(fā)展。近幾年,中國集成電路產(chǎn)業(yè)取得了飛速發(fā)展。中國集成電路產(chǎn)業(yè)已經(jīng)成為全球半導(dǎo)體產(chǎn)業(yè)關(guān)注的焦點,即
6、使在全球半導(dǎo)體產(chǎn)業(yè)陷入有史以來程度最嚴(yán)重的低迷階段時,中國集成電路市場仍保持了兩位數(shù)的年增長率,憑借巨大的市場需求、較低的生產(chǎn)成本、豐富的人力資源,以與經(jīng)濟(jì)的穩(wěn)定發(fā)展和寬松的政策環(huán)境等眾多優(yōu)勢條件,以京津唐地區(qū)、長江三角洲地區(qū)和珠江三角洲地區(qū)為代表的產(chǎn)業(yè)基地迅速發(fā)展壯大,制造業(yè)、設(shè)計業(yè)和封裝業(yè)等集成電路產(chǎn)業(yè)各環(huán)節(jié)逐步完善。采用FPGA設(shè)計ASIC(Application Specific Integrated Circuit,集成電路界被認(rèn)為是一種為專門目的而設(shè)計的集成電路)電路,用戶不需要投片生產(chǎn),就能得到合用的芯片,F(xiàn)PGA部有豐富的觸發(fā)器和I/O引腳,F(xiàn)PGA是ASIC電路中設(shè)計周期最短
7、、開發(fā)費用最低、風(fēng)險最小的器件之一, FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。其性能和效率不斷提高,應(yīng)用圍越來越廣,在計算機(jī)應(yīng)用領(lǐng)域已占日益重要的地位。它的應(yīng)用程度已經(jīng)成為衡量一個國家科學(xué)技術(shù)水平的一項重要指標(biāo)。出租車計費器就是FPGA的一個可行的應(yīng)用?,F(xiàn)在市面上的出租車計價器品種繁多,功能強(qiáng)大。作為一個畢業(yè)設(shè)計的課題,我本著從大處著眼,從小處入手的原則,對FPGA的應(yīng)用做了一些初步的嘗試和探討。我利用FPGA芯片、32.768KHz晶振、七段LED數(shù)碼管,初步實現(xiàn)了市面上的出租車計費器的一些基本功能。第二章 Verilog HDL硬件語言簡介Verilog H
8、DL和VHDL是目前世界上最流行的兩種硬件描述語言,都是在20世紀(jì)80年代中期開發(fā)出來的。前者由Gateway Design Automation公司(該公司于1989年被Cadence公司收購)開發(fā)。兩種HDL均為IEEE標(biāo)準(zhǔn)。Verilog HDL就是在使用廣泛的C語言的基礎(chǔ)上發(fā)展起來的一種硬件描述語言(HDL:Hardware Discription Language),是一種以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言,用它可以表示邏輯電路圖、邏輯表達(dá)式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。它是GDA(Gateway Design Automation)公司的Phil Moorb
9、y在1983年提出,經(jīng)過不斷的完善和發(fā)展,直至1995年才成為IEEE標(biāo)準(zhǔn),即IEEE Standard 1364-1995。IEEE 2001年重新修訂了Verilog HDL的IEEE標(biāo)準(zhǔn)。此前硬件描述語言通過IEEE標(biāo)準(zhǔn)的只有VHDL(1987)。2.1 Verilog HDL語言的特點1.Verilog HDL最大特點是易學(xué)易用。只要有C語言的編程經(jīng)驗,可以在一個較短的時間很快的學(xué)習(xí)和掌握。2.Verilog HDL設(shè)計與工藝無關(guān)。可以使其設(shè)計好的模塊重復(fù)使用,大大方便復(fù)雜電子系統(tǒng)的設(shè)計,縮短了設(shè)計的周期。3.Verilog HDL簡單而優(yōu)美。描述硬件單元的結(jié)構(gòu)簡單且易讀。相
10、比較而言,VHDL的描述長度是Verilog HDL的兩倍。2.2 Verilog HDL語言的基本結(jié)構(gòu)一個電子系統(tǒng)或電路,通常要對輸入的信號進(jìn)行處理得到輸出信號,Verilog HDL就是用語言來描述輸入和輸出的借口和部處理功能的實現(xiàn)。一個設(shè)計部論是簡單還是復(fù)雜,都用Verilog HDL模塊來表示。模塊的基本結(jié)構(gòu)如下:module 模塊名(端口列表);<端口定義屬性,如input,output等><邏輯功能描述>endmodule其中<模塊名>是模塊唯一的標(biāo)識符;<端口列表>列出端口名稱,<端口定義屬性>指明端口是屬于輸
11、入、輸出還是雙向端口,這些端口用來與其它模塊進(jìn)行連接。<邏輯功能描述>是模塊設(shè)計中最重要的部分,可使用不同形式的過程塊來實現(xiàn)。下面看個簡單的例子。例1.1 上升沿觸發(fā)D觸發(fā)器(時序電路)module dff(q,clk,data);input clk,data;output q;reg q;always(posedge clk)beginq=data;endendmodule從上面的例子可以看出:(1) Verilog HDL程序是由模塊構(gòu)成的,每個模塊的同都是嵌在module和endmodule兩個語句之間,每個模塊實現(xiàn)特定的功能,模塊可以進(jìn)行層次嵌套;(2) 每個模塊要進(jìn)行端口
12、定義,<端口列表>說明輸入輸出或雙向端口,這些端口用與其他模塊進(jìn)行連接;(3) Verilog HDL程序的書寫格式自由,一行可以寫幾個語句,一個語句可以分多行寫;(4) 除了endmodule語句為,每個語句和數(shù)據(jù)定義的最后必須有分號;(5) 可以用/*/或/對Verilong HDL程序的任何部分作注釋;(6) Verilog HDL對大小寫敏感,空格很重要,是用來界定各個標(biāo)志的,關(guān)鍵字都是以小寫形式表示。2.3 CPLD/FPGA的設(shè)計流程總體方案設(shè)計編程軟件仿真綜合網(wǎng)表硬件仿真用HDL語言開發(fā)CPLD/FPGA的完整流程為:圖1.2 1. 文本編輯:用任何文本編輯器都可以進(jìn)
13、行,也可以用專用的HDL編輯環(huán)境。2. 功能仿真:將文件調(diào)入HDL仿真軟件進(jìn)行功能仿真,檢查邏輯功能是否正確。3. 邏輯綜合:將源文件調(diào)入邏輯綜合軟件進(jìn)行綜合,即把語言綜合成最簡的布爾表達(dá)式和型號的連接關(guān)系。4. 布局布線:將.edf文件調(diào)入CPLD/FPGA廠家提供的軟件中進(jìn)行布線,即把設(shè)計好的邏輯安放到CPLD/FPGA。5. 時序仿真:需要利用在布局布線中獲得的精確參數(shù),用仿真軟件驗證電路的時序。6. 編程下載:確認(rèn)仿真無誤后,將文件下載到芯片中通常以上過程可以都在CPLD/FPGA廠家提供的開發(fā)工具(如QuartusII,ISE中完成。下面我們以Altera公司的QuartusII 9
14、.0軟件來簡單說明一下CPLD/FPGA的開發(fā)流程。下圖是一個典型的基于QuartusII的CPLD/FPGA開發(fā)流程。建立工程盡量采用ALTERA提供的LPM功能模塊用戶自己建立功能模塊,并建立Symbol建立頂層圖將頂層圖的各個功能模塊連起來選擇芯片型號、分配管腳、配置編譯選項編譯下載到目標(biāo)器件圖1.2 基于QuartusII的典型CPLD/FPGA設(shè)計流程(1) 建立工程是每個開發(fā)過程的開始,QuartusII(QII)以工程為單元對設(shè)計過程進(jìn)行管理。(2) 建立頂層圖??梢赃@樣理解,頂層圖是一個容器,將整個工程的各個模塊包容在里面編譯的時候就將這些模塊整合在一起。(3) 采用ALTER
15、A公司提供的LPM宏功能模塊。QII軟件環(huán)境里包含了大量的常用功能模塊,例如計數(shù)器、累加器、比較強(qiáng)、譯碼器等等;在充分利用已有模塊的基礎(chǔ)上,通過,一個設(shè)計中一般只有極少部分的模塊需要自己從零設(shè)計。(4) 自己建立功能模塊??梢杂糜布枋稣Z言也可以用原理圖的輸入方法。可以把它們獨立的當(dāng)做一個工程來設(shè)計,并生產(chǎn)模塊符號(Symbol),然后再頂層圖中使用這個模塊的符號,并將源文件(實現(xiàn)該模塊的原理圖或HDL文件)拷到頂層圖所在的工程目錄下。(5) 將頂層圖的各個功能模塊用兩線連起來。這個過程類似電路圖設(shè)計,把各個芯片連接起來,組成電路系統(tǒng)。(6) 系統(tǒng)的功能原理圖至此已經(jīng)基本出爐了,下一步要為該設(shè)
16、計選擇芯片載體,才能真正在物理上實現(xiàn)系統(tǒng)的功能。這一步的主要工作是:(1)選擇芯片型號;(2)為頂層圖的各個輸入輸出信號分配芯片管腳;(3)設(shè)置編譯選項,目的是讓編譯器知道更多的信息。(7) 編譯。這個過程類似軟件開發(fā)里的編譯,在類似QII這樣的集成環(huán)境里面,這些過程都是一氣呵成,集成環(huán)境自動完成了幾個步驟的工作。(8) 編譯后生成*.sof或*.pof文件,前者可以通過JTAG下載到CPLD/FPGA部,設(shè)計無誤的話技能實現(xiàn)預(yù)期的功能,但斷電后CPLD/FPGA里的這些信息會丟失;后者可以下載到CPLD/FPGA的配置芯片(EEPROM或FLASH芯片),掉電后這些配置信息不會丟失,重新上電
17、以后通過該配置芯片對CPLD/FPGA的部RAM進(jìn)行配置.(9) 對于復(fù)雜的設(shè)計,工程編譯了以后可以采用QII的仿真功能或者其他仿真軟件(ModelSim)對設(shè)計反復(fù)進(jìn)行仿真和驗證,知道滿足要求。第三章 Quartus II 9.0軟件的簡介3.1 主要功能Quartus II 9.0 是Altera公司的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以與AHDL(Altera Hardware Description Language)等多種設(shè)計輸入形式,嵌自有的綜合器以與仿真器,可以完成從設(shè)計輸入到硬件配置的完整PLD設(shè)計流程。 Quartus II 9.0可以在Wind
18、ows、Linux以與Unix上使用,除了可以使用Tcl腳本完成設(shè)計流程外,提供了完善的用戶圖形界面設(shè)計方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點。 Quartus II 9.0支持ALTERA 公司全系列器件CPLD:MAX3000、MAX7000、MAX9000 和MAXII 等;FPGA:Stratix、StratixII、StratxIII、Cyclone、CycloneII、CycloneIII、ACEX1K、APEX20K和FLEX10K等。3.2 使用方法下面以一個十進(jìn)制計數(shù)器的設(shè)計為例,詳細(xì)介紹原理圖輸入的設(shè)計方法與仿真步驟。一 設(shè)計文檔的輸入1. 建立工程一個設(shè)
19、計對應(yīng)一個工程項目文件,該工程項目下可包含多個設(shè)計模塊文件。運(yùn)行Quartus II 9.0軟件,出現(xiàn)如下界面:建立工程,F(xiàn)ileNew Project Wizad 如下圖:點擊New Project Wizard 后彈出指定工程名的對話框,在Diectory,Name,Top-Level Entity中如下圖填寫:直接按Next進(jìn)行下一步,選擇FPGA器件的型號:在Family下拉框中,我們選擇FLEX10K系列,注意在Filters一欄選上"Show Advanced Devices"以顯示所有的型號。執(zhí)行下一步出現(xiàn)對話框:這里是選擇其他EDA工具的對話框,我們用QII
20、的集成環(huán)境進(jìn)行開發(fā),因此這里不作任何改變。按Next進(jìn)入工程的信息總概對話框:按Finish按鈕即建立一個空項目。2. 建立頂層圖執(zhí)行FileNew,彈出新建文件對話框:選擇"Block Diagram Schematic File"按OK 即建立以個空的頂層圖,缺省名為"Block1.bdf",如下圖:原理圖輸入工具欄3. 添加邏輯元件(Symbol)雙擊頂層圖圖紙的空白處,彈出添加元件的對話框,在Libraries里尋找需要的邏輯元件,如果知道邏輯元件的名稱的話,也可以直接在Name一欄敲入名字,右邊的預(yù)覽圖即可顯示元件的外觀,按OK后鼠標(biāo)旁邊即拖著
21、一個元件符號,在圖紙上點擊左鍵,元件即安放在圖紙上。在圖紙上分別添加74161、與非門(NAND2)、輸入(input)、輸出(output)等幾個symbol。從上圖可以看出,基于原理圖的設(shè)計輸入類似于再protel軟件中繪制電路圖,上如中粗線屬于總線類型,它的寬度必須與原件端口的寬度一致,網(wǎng)絡(luò)標(biāo)號一樣的線表示相互連接。我們也可把它另存為(FileSave as)其它名稱,也可接受默認(rèn)的文件名,并將“Add file to current project”選項選上,以使該文件添加到工程中去。如圖所示:二編譯1.按主工具欄上的編譯按鈕即開始編譯:QuartusII 下面的Message窗口會顯
22、示一些編譯信息,最后編譯成功提示:2.創(chuàng)建元件模塊執(zhí)行FileCreate/UpdateCreat Symbol files for current file,建立該文件的元件符號,可被其它模塊調(diào)用。三仿真1.創(chuàng)建仿真波形文件,進(jìn)行時序仿真,選擇FileNewOther FilesVector Waveform File:進(jìn)入波形創(chuàng)建區(qū),編輯窗口分為,左邊是信號(組)名稱與標(biāo)定時刻的信號值,右邊是對應(yīng)信號的波形圖,最左側(cè)為波形編輯工具欄。2.輸入信號節(jié)點。在信號窗口中雙擊左鍵,出現(xiàn)對話框:選中NodeFinder按鈕,出現(xiàn)對話框:在信號欄中選中“Pins:all”,點擊OK出現(xiàn)波形編輯窗口。調(diào)
23、節(jié)輸入波形保存波形文件cnt10.vwf3.仿真在主工具欄Setting菜單中,點擊Simulation文件欄后的按鈕。并可選功能仿真(Functional)或時序仿真(timing)。如選擇功能仿真,則須先在主菜單Processing中Generate Functional Simulation Netlist一欄。在主菜單中,點仿真按鈕,如仿真順利通過,系統(tǒng)會提示Simulation was successful,觀察Simulation Report如下圖所示:如選擇時序仿真,得到仿真結(jié)果如下:結(jié)果正確,就可以進(jìn)行下載驗證了。四下載驗證1分配管腳點擊下圖中的Assignment Edit
24、or按鈕出現(xiàn)下圖并分配管腳2.編譯然后保存,在編譯一次,點擊右圖中的編譯按鈕最后編譯成功彈出提示:3.下載(1)下載連接:先將USB Blaster下載線的一頭接到PC的USB接口USB Blaster如右圖 再按如有圖按鈕出現(xiàn)對話框并點擊Hardware Setup:(2) 將USB Blaster下載線一頭與PC連接,另一頭插到JTAG口(3) FPGA實驗板上接5V電源(4) 通過JTAG口把芯片的配置信息下載到FPGA芯片,掉電后配置信息丟失。(5) 點擊Start按鈕,*.sof文件就下載到FPGA芯片中了現(xiàn)在可以去到板子上去看結(jié)果了。到此有關(guān)Quartus II 9.0的文檔輸入,
25、編譯,仿真,下載的介紹基本結(jié)束了。第四章 出租車計費系統(tǒng)4.1 計費器系統(tǒng)的工作過程簡介4.1.1計費器的功能描述從出租車車輪的傳感器上導(dǎo)出一個計程脈沖信號,每個脈沖表示行使一定的距離(例如0.5米)。記錄計程脈沖的個數(shù)可以記錄行使里程。計費標(biāo)準(zhǔn)是:a) 剛開始計費時,應(yīng)有起步費。行駛里程不滿3公里時,收費10元。b) 行駛里程滿3公里但不超過10公里時,每公里收費2元,超過10公里,每公里收費3元。c) 夜間11點到早上5點,起步費為13元,10公里每公里收費2.6元,超過10公里,每公里收費3.9元。司機(jī)可以控制計費的開始和結(jié)束(rstfee)。計費器有金額(角、元、十元、百元)、時間顯示
26、(秒、分鐘、小時)的七段數(shù)碼管顯示。同時為了能夠適用于收費標(biāo)準(zhǔn)不同的地方,我在程序中添加了預(yù)置功能:能預(yù)置起步費、每公里收費, 具體設(shè)計中采用了六個七段數(shù)碼管通過一個按鍵(switch)切換時間和實時車費。為了進(jìn)一步完善系統(tǒng)功能還設(shè)計了rsttime時間復(fù)位、rstfee計費復(fù)位和開始、add1min手動調(diào)節(jié)時鐘(分加1)、add1hor手動調(diào)節(jié)時鐘(時加1)控制按健。4.1.2計費器系統(tǒng)分析系統(tǒng)的輸入有計費開始信號(rstfee)、結(jié)束信號(rstfee)以與從車軸上引出的計程脈沖(meter)。輸出有費用顯示輸出和當(dāng)前時間輸出。計費器的數(shù)據(jù)處理部分主要是費用的累計和計算。由于計費形式只有記
27、程模式,也就是說費用只和出租車行駛的里程有關(guān),不考慮在堵車或者等紅燈的浪費的時間所帶來的對司機(jī)的損失,所以僅對計程脈沖計數(shù),這個脈沖進(jìn)入計費部分,由計費部分計算得出結(jié)果后,實時顯示當(dāng)前費用。當(dāng)然這個費用還與當(dāng)前的時間的有關(guān),所以要判斷當(dāng)前的時間和當(dāng)起步時的時間所在的時間段,然后根據(jù)在不同的時間段會有不同大小的費用的加成。當(dāng)乘客上車開始計費,正常行駛時顯示實時費用,當(dāng)?shù)竭_(dá)指定地點時,乘客結(jié)算費用,司機(jī)把計費器清零(rstfee),然后等待下一位乘客。系統(tǒng)功能框圖:時鐘模塊計費模塊七段LED顯示器1Hz脈沖調(diào)節(jié)分調(diào)節(jié)小時記程脈沖時段切換按鍵開始,清零圖4.1系統(tǒng)功能框圖如上圖:1Hz脈沖由32.7
28、68晶振分頻而來,還有圖中沒有出現(xiàn)的刷新頻率也是由32.768晶振分頻而來的。當(dāng)?shù)谝婚_啟時時鐘為000000,就要用到add1min和add1hor調(diào)節(jié)時間,使其正確顯示當(dāng)前時間。記程脈沖是由出租車的車軸上提供的脈沖(例如0.5m),當(dāng)車上有乘客時,司機(jī)拉下開始健(rstfee),計費模塊就開始工作,并且會根據(jù)不當(dāng)前的不同外部情況改變每個計費段的費用的大小,然后將這個費用實時的顯示在顯示器上。切換按鍵的用途是讓顯示器在顯示費用和當(dāng)前時間之間相互切換。4.1.3 實現(xiàn)計費系統(tǒng)所用器材和設(shè)備1.PC一臺2.Quartus II 9.0和Protel 99SE軟件3.愛迪克牌子的AEDK-EDA2實
29、驗機(jī)4.實驗儀正面圖4. USB Blaster下載器5. 導(dǎo)線若干6.所用到的是晶振模塊,F(xiàn)PGA,LED顯示,開關(guān)部分,電源部分4.2 計費器系統(tǒng)各模塊4.2.1 時鐘模塊由于在不同的時間段起步價和每公里費用都不一樣,所以用該模塊來提供標(biāo)準(zhǔn)時間,以便計費模塊查詢載入。通電初始時間為000000(小時,分鐘,秒之間應(yīng)該有“:”,但由于LED管數(shù)量不夠所以省略了“:”),要調(diào)整時間的話,可以通過兩個專門設(shè)計的按鍵(add1hor 和add1min)手動調(diào)節(jié)時間,要是想要重置時間,可以通過rsttime按鍵。用于手動調(diào)節(jié)時間按鍵防抖24計數(shù)60計數(shù)60計數(shù)圖4.2時鐘模塊電路圖在時鐘模塊中,用到
30、了兩個60計數(shù)、一個24計數(shù)、防抖設(shè)計和手動調(diào)節(jié)設(shè)計(與)。switch選擇顯示時鐘時,當(dāng)按下add1min后,分鐘位置的LED數(shù)碼管就會累加數(shù)字直到59后變?yōu)?0,小時位也因此進(jìn)1,彈出add1min后分鐘位置停止累加。當(dāng)按下add1hor后,小時位置的LED數(shù)碼管就會累加數(shù)字直到23后變?yōu)?0.,無進(jìn)位結(jié)果,彈出add1hor后小時位置停止累加。1Hz脈沖是由32.678kHz晶振分頻而來,程序如下:always(posedge clk)/clk為32.678kHz信號輸入 beginif(count_1=32767)beginq_1hz= 1;count_1=0;end elsebegi
31、ncount_1= count_1 +1;q_1hz = 0;endend刷新頻率為600Hz,遠(yuǎn)大于24Hz,這樣人眼將完全不會感覺到閃爍,關(guān)鍵程序如下:always(posedge clk) /clk為32.678kHz信號輸入beginif(count_24=55)beginq_24hz= 1;count_24=0;end elsebegincount_24= count_24 + 1;q_24hz = 0;endend在Quartus II 9.0中時鐘部分的功能仿真圖:如圖LED數(shù)碼管上應(yīng)為顯示000001,表示00:00:01時刻。4.2.2 計費模塊開始/清零深夜時段:在23點到
32、5點之間正常時段:在5點到23點之間不到3km3-10km不到3km3-10km起步費10元2元/km起步費13元3元/km26元/km39元/km選擇一個費用累加后顯示輸出超過10km超過10kmNO清零YES該模塊與時鐘模塊是緊密相連的,因為該模塊時時刻刻都在查詢當(dāng)前時間的小時部分,這樣才能正確的按照規(guī)定的費用計費。如通過當(dāng)前時刻確定起步價和當(dāng)前每公里費用,再通過對車軸的傳感器脈沖進(jìn)行計數(shù)而算出出租車當(dāng)前的實時費用。10計數(shù)cacfee_jiao確定起步費模塊添加起步費圖4.4計費模塊電路圖下圖是確定起步費模塊,通過司機(jī)按下rstfee和當(dāng)前時間的小時部分確定起步費用。下圖是本設(shè)計中關(guān)鍵部
33、分之一,該模塊主要是通過時刻和出租車所行駛的路程來確定當(dāng)前每公里的費用,該模塊輸出只有一個,是費用每產(chǎn)生1角錢,就產(chǎn)生一個脈沖。但這個脈沖的產(chǎn)生起決于get3km,get10km,hour7.0,meter這幾個信號。cacfee_jiao模塊的具體程序代碼如下:always(negedge reset or posedge meter)beginif(reset)beginfee1=0; fee2=0; fee3=0; fee4=0; cout1=0; cout2=0; cout3=0;cout4=0;endelseif(hour=8'b00100011|hour=8'b00
34、100100|hour=0|hour=1|hour=2|hour=3|hour=4)/時間在晚上23點到早上5點的深夜時段按照如下標(biāo)準(zhǔn)計費beginif(get10km)beginif(get3km)if(fee3=77)/77為計算得出,2.6元/kmbeginfee3=0;cout3=1;endelsebeginfee3=fee3+1;cout3=0;endendelse if(get10km)beginif(get3km) if(fee4=51)/3.9元/kmbeginfee4=0;cout4=1;endelsebeginfee4=fee4+1;cout4=0;endendendels
35、e/時間在早上5點到晚上23點的正常時段按照如下標(biāo)準(zhǔn)計費beginif(get10km)beginif(get3km) if(fee1=100)/2元/kmbeginfee1=0;cout1=1;endelsebeginfee1=fee1+1;cout1=0;endendelse if(get10km)beginif(get3km) if(fee2=66)/3元/kmbeginfee2=0;cout2=1;endelsebeginfee2=fee2+1;cout2=0;endendendendalways(negedge reset or posedge meter)beginfeeout_j
36、iao=cout1+cout2+cout3+cout4;end下圖是添加起步費模塊,counter3.0為角、元、十元、百元的相應(yīng)的輸入口,通過該模塊產(chǎn)生cout的脈沖,以至將起步費輸出到LED數(shù)碼管上,這個顯示不會和出租車行駛超過3km后的費用累加相沖突,因為起步費的添加在按下rstfee后的瞬間(大概在0.005s之完成),所以不會沖突,在彈出rstfee后,又恢復(fù)到初始狀態(tài)。在Quartus II 9.0中費用部分的功能仿真圖:圖中當(dāng)rstfee按下后,瞬間產(chǎn)生起步費,因為當(dāng)前時間是00:00:00表示在深夜時段,所以在數(shù)碼管上顯示的結(jié)果為130,即13.0元,仿真結(jié)果正確。4.2.3
37、顯示模塊該模塊分為兩個組成部分,但通過一個模塊來實現(xiàn),可以切換顯示當(dāng)前時間和車費。利用視覺延遲效應(yīng),采用動態(tài)掃描電路,同時用switch健切換顯示,一般情況下不需要看到當(dāng)前時刻,乘客只關(guān)心當(dāng)前車費,所以去掉了四個LED數(shù)碼管,節(jié)約了硬件和能源,將低碳的理念帶入工程設(shè)計。同時將掃描頻率設(shè)為600HZ,看上去毫無閃爍的感覺,給人舒適的感官,將設(shè)計以人為本的理念帶入本次畢業(yè)設(shè)計。BCD7段譯碼器顯示處理模塊圖4.5 顯示模塊電路圖顯示處理模塊,是本次設(shè)計的關(guān)鍵部分之一,時鐘的分秒時和費用的角、元、十元、百元的數(shù)據(jù)直接輸入到該模塊,還有兩個起到同步作用和選擇這些信號輸出作用的sel_t5.0,sel_
38、f3.0信號。通過掃描頻率的設(shè)計,可以讓信號在一個時刻只有一個數(shù)據(jù)被送到BCD7段譯碼器,同時通過處理選中對應(yīng)的數(shù)碼管,達(dá)到動態(tài)掃描顯示,由于掃描頻率遠(yuǎn)大于人眼能分辯的24Hz,所以看上去一點都不閃爍的。通過switch切換顯示時間和車費,就是在這里實現(xiàn)的,只要控制正確的輸出,就可以控制顯示。具體顯示處理模塊程序代碼如下:always(sel_t or sel_f)beginif(switch=1)/顯示時間begincase(sel_t)6'b000001:beginout=a;select_abc=3'b001;end6'b000010:beginout=b;sel
39、ect_abc=3'b000;end6'b000100:beginout=c;select_abc=3'b011;end6'b001000:beginout=d;select_abc=3'b010;end6'b010000:beginout=e;select_abc=3'b101;end6'b100000:beginout=f;select_abc=3'b100;enddefault:out=4'b1111;endcaseendelse if(switch=0)/顯示車費begincase(sel_f)4'b0001:beginout=g;select_abc=3'b000;end4'b0010:beginout=h;select_abc=3'b001;end4'b0100:beginout=i;select_abc=3'b010;end4'b1000:beginout=j;select_abc=3'b011;enddefault:out=4'b1111;endcaseendend4.
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣告項目造價管理辦法
- 邢臺高空揚(yáng)塵管理辦法
- 接待外賓管理管理辦法
- 貨車司機(jī)進(jìn)廠管理辦法
- 肩周炎中醫(yī)推拿課件
- 到夢空間培訓(xùn)課件
- 肝臟穿刺護(hù)理課件
- 楓楊外國語初二數(shù)學(xué)試卷
- 工大附中高三數(shù)學(xué)試卷
- 福建南平七下數(shù)學(xué)試卷
- 山東醫(yī)藥技師學(xué)院招聘筆試真題2024
- 2025至2030中國柔性直流輸電行業(yè)運(yùn)營規(guī)劃及發(fā)展前景深度分析報告
- 安全產(chǎn)風(fēng)險管理制度
- 深化國有企業(yè)改革調(diào)研提綱
- 小學(xué)騎車安全課件
- 奶茶公司供應(yīng)鏈管理制度
- 公司個人獨資章程范本
- 《中國酒類企業(yè)ESG披露指南》
- 物業(yè)消防培訓(xùn)教學(xué)課件
- 2025年航空安全管理專業(yè)考試試卷及答案
- 2025至2030年中國玉米淀粉行業(yè)市場現(xiàn)狀分析及前景戰(zhàn)略研判報告
評論
0/150
提交評論