版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、成績基于FPGA的交通燈控制器設(shè)計(jì) 誠信聲明本人鄭重聲明:本人所呈交的畢業(yè)論文(設(shè)計(jì)),是在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的成果。畢業(yè)論文(設(shè)計(jì))中凡引用他人已經(jīng)發(fā)表或未發(fā)表的成果、數(shù)據(jù)、觀點(diǎn)等,均已明確注明出處。除文中已經(jīng)注明引用的內(nèi)容外,不包含任何其他個人或集體已經(jīng)發(fā)表或在網(wǎng)上發(fā)表的論文。特此聲明。論文作者簽名: 日 期: 年 月 摘 要交通燈控制器在城市交通監(jiān)管中起著極其重要的作用。傳統(tǒng)的交通燈控制器基本是通過單片機(jī)或者PLC實(shí)現(xiàn)。本文介紹基于FPGA技術(shù)和Quartus II開發(fā)平臺實(shí)現(xiàn)十字路口交通燈控制器的的一種方案。利用VHDL硬件描述語言描述各模塊程序,并在Quartus II環(huán)
2、境下進(jìn)行編譯、仿真,生成頂層文件后下載在FPGA器件FLEX EPF10K10LC84上進(jìn)行驗(yàn)證。驗(yàn)證結(jié)果表明,設(shè)計(jì)基本實(shí)現(xiàn)了交通燈控制器所要求的控制過程,包括倒計(jì)時時間顯示功能、特殊狀態(tài)控制功能和主、支干道的紅、黃、綠燈交替顯示功能,表明本文所述的的設(shè)計(jì)方案正確。本文結(jié)合交通燈控制器的設(shè)計(jì)過程,簡單介紹了硬件描述語言VHDL的結(jié)構(gòu)模型和設(shè)計(jì)流程、 VHDL設(shè)計(jì)的優(yōu)點(diǎn)及該語言在數(shù)字系統(tǒng)設(shè)計(jì)中的美好前景和重要地位。關(guān)鍵詞: 交通燈控制器;VHDL;FPGA; Quartus IIAbstract Traffic light controller is playing an important r
3、ole in the municipal transportation supervision. The traditional traffic light controller majority realizes through the monolithic integrated circuit or PLC. This article introduced one kind of plan which is based on FPGA and Quartus II programming environment to realize the crossroad street interse
4、ction traffic light controller. The programming language is VHDL hardware description language, which is widespread at present. The procedures of each model have been carried on the translation and simulation under the environment of Quartus II of Altera Corporation, and downloaded on FPGA component
5、 FLEX EPF10K10LC84. The traffic light controller has realized the controlling process basically, including the countdown time demonstrating the function, the special state control function and main, a yang or male principle red, yellow, and green light demonstrating the function alternately, the con
6、firmation result indicates that the systems design proposal is accurate. This article unified the traffic light controllers design process and introduced the structural model and the design cycle of hardware description language VHDL simply. It showed us the merit of the use of the VHDL and the magn
7、ificent prospect and the important position of this language in the number system design.Keywords: traffic light controller; VHDL; FPGA; Quartus II目錄摘 要I1 引言12 VHDL、FPGA、Quartus II和實(shí)驗(yàn)板簡介22.1 FPGA簡介22.2 VHDL簡介22.3 Quartus II簡介32.4 實(shí)驗(yàn)板簡介43 整體設(shè)計(jì)論述53.1 總的設(shè)計(jì)流程53.2 交通燈控制器的具體設(shè)計(jì)方案54 主要功能模塊設(shè)計(jì)與仿真84.1 時鐘分頻模塊84
8、.2 交通燈控制模塊94.3 顯示模塊164.4 頂層文件175 交通燈控制器的硬件實(shí)現(xiàn)185.1 硬件實(shí)現(xiàn)方案185.2 實(shí)驗(yàn)結(jié)果196 總結(jié)22參考文獻(xiàn)23附錄251 引言所謂交通燈控制器,就是為管理交通工具和行人的動向,保障道路安全通暢而設(shè)置的一類固定不動的燈具。在今天,交通燈控制器安裝在各個路口上,它已經(jīng)成為疏導(dǎo)交通最常見和最有效的手段。實(shí)現(xiàn)十字路口交通燈控制器的方法有很多,可用PLC1(可編程序控制器)、標(biāo)準(zhǔn)邏輯器件、單片機(jī)2等方案來實(shí)現(xiàn)。若采用單片機(jī)方案來設(shè)計(jì),其模型可由單片機(jī)主控電路、電源電路、顯示電路和無線收發(fā)控制電路四個部分組成。主控電路的核心元件為AT89C51。電源電路需
9、用到+5V的直流穩(wěn)壓電源。顯示電1路和無線收發(fā)控制電路應(yīng)由數(shù)據(jù)發(fā)射模塊和編碼芯片兩部分組成。并且硬件設(shè)計(jì)完成之后還需利用計(jì)算機(jī)軟件進(jìn)行軟件部分設(shè)計(jì)才能實(shí)現(xiàn)相應(yīng)的功能。雖然利用單片機(jī)設(shè)計(jì)的交通燈控制器有性能較穩(wěn)定、能夠?qū)崿F(xiàn)較多功能的優(yōu)點(diǎn),但它同時也存在很多缺陷。特別是修改電路的功能以及調(diào)試都需要硬件電路的支持,這在很大程度上增加了功能修改及系統(tǒng)調(diào)試的困難??删幊绦蚩刂破鱌LC的優(yōu)點(diǎn)是高可靠性和穩(wěn)定性,但它也存在不少缺陷。PLC的體系結(jié)構(gòu)是封閉的,因而各PLC廠家的硬件體系互不兼容, 編程語言及指令系統(tǒng)也有差異,這導(dǎo)致當(dāng)用戶選擇某一種PLC產(chǎn)品之后,必須選擇與其相應(yīng)的控制規(guī)程,且需要學(xué)習(xí)特定的編程
10、語言,這些缺陷大大降低了PLC方案的可行性。相比之下,基于FPGA(Field Programmable Gate Array)的設(shè)計(jì)方法具有設(shè)計(jì)靈活、易于修改、設(shè)計(jì)周期短的優(yōu)點(diǎn)。此外,隨著設(shè)計(jì)語言、電子設(shè)計(jì)自動化工具和FPGA器件的不斷完善和發(fā)展,基于FPGA的設(shè)計(jì)方法有點(diǎn)越來越明顯。相信在不遠(yuǎn)的未來,由FPGA器件設(shè)計(jì)的產(chǎn)品將出現(xiàn)在世界的每一個角落。因而此次交通等控制器的設(shè)計(jì)采用基于VHDL語言和FPGA的方法來實(shí)現(xiàn)所要求的功能。2 VHDL、FPGA、Quartus II和實(shí)驗(yàn)板簡介2.1 FPGA簡介FPGA,即現(xiàn)場可編程門陣列,它是在GAL、PAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步
11、發(fā)展的產(chǎn)物。它是作為專用集成(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。FPGA的基本特點(diǎn)主要有:采用FPGA設(shè)計(jì)ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。FPGA可做其它全定制或半定制ASIC電路的中試樣片。FPGA內(nèi)部有豐富的觸發(fā)器和IO引腳。F
12、PGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險最小的器件之一。FPGA采用高速CHMOS工藝,功耗低,可與CMOS、TTL電平兼容。 可以說FPGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。2.2 VHDL簡介 自從Iverson于1962年提出硬件描述語言(HDL)以來,出現(xiàn)了多種硬件描述語言,如美國DATA I/O公司的ABEL-HDL、 Verilog公司開發(fā)的Verilog HDL以及日本電子工業(yè)振興協(xié)會開發(fā)的UDL/I語言。由于這些硬件描述語言與其公司的硬件產(chǎn)品密切相關(guān)而且語法不統(tǒng)一,從而造成信息交流和設(shè)備維護(hù)的困難。自從1987年VHDL(Very High I
13、ntegrated Circuit Hardware Description Language)即超高速硬件描述語言,被定為IEEE標(biāo)準(zhǔn)(IEEE-STD-1076)以來,VHDL已被工業(yè)界廣泛認(rèn)可,并取得了巨大成功,成為數(shù)字系統(tǒng)設(shè)計(jì)和存檔的重要工具,極大的提高了數(shù)字系統(tǒng)的設(shè)計(jì)水平和效率3。VHDL在大規(guī)模的數(shù)字電路系統(tǒng)設(shè)計(jì)中發(fā)揮愈來愈重要的作用,它將逐步替代如邏輯函數(shù)和邏輯狀態(tài)圖等傳統(tǒng)的描述方法,成為EDA領(lǐng)域的重要組成部分。有的專家認(rèn)為,在新世紀(jì),VHDL和Verilog HDL將承擔(dān)起幾乎全部的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)4。VHDL語言優(yōu)點(diǎn)突出,其特點(diǎn)如下所示:設(shè)計(jì)技術(shù)齊全、方法靈活、支持廣泛。V
14、HDL語言可以支持自上至下和基于庫的設(shè)計(jì)方法,而且還支持同步電路、異步電路、FPGA以及其它隨機(jī)電路的設(shè)計(jì)。系統(tǒng)硬件描述能力強(qiáng)。VHDL語言具有多層次描述系統(tǒng)硬件功能的能力,可以從系統(tǒng)的數(shù)學(xué)模型直到門級電路。另外,高層次的行為描述可以與低層次的RTL描述和結(jié)構(gòu)描述混合使用。VHDL語言能進(jìn)行系統(tǒng)級的硬件描述,這是它的最突出優(yōu)點(diǎn)。還可以自定義數(shù)據(jù)類型,給編程人員帶來較大的自由和方便。VHDL語言編程與工藝無關(guān)。在用VHDL語言設(shè)計(jì)系統(tǒng)硬件時,沒有嵌入與工藝有關(guān)的信息。當(dāng)門級或門級以上層次的描述通過仿真編譯之后,再用相應(yīng)的工具將設(shè)計(jì)映射成不同的工藝(如MOS、CMOS)。在工藝更新時,就無須修改原
15、設(shè)計(jì)程序,只要改變相應(yīng)的映射工具就行了。VHDL語言標(biāo)準(zhǔn)、規(guī)范,易于共享和復(fù)用。它已經(jīng)作為一種IEEE的工業(yè)標(biāo)準(zhǔn),便于復(fù)用和交流。一個完整的VHDL語言程序通常包含實(shí)體(Entity)、結(jié)構(gòu)體(Architecture)、配置(Configuration)、包集合(Package)和庫(Library)5個部分。前4種是可分別編譯的源設(shè)計(jì)單元。實(shí)體用于描述所設(shè)計(jì)的系統(tǒng)的外部接口信號;結(jié)構(gòu)體用于描述系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為;包集合存放個設(shè)計(jì)模塊都能共享的數(shù)據(jù)類型、常數(shù)和子程序等。配置用于從庫中選取所需單元來組成系統(tǒng)設(shè)計(jì)的不同版本;庫存放已經(jīng)編譯的實(shí)體、構(gòu)造體、包集合和配置。2.3 Quartus I
16、I簡介Quartus II 是Altera公司的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。Quartus II的設(shè)計(jì)流程如下所示:(1) 設(shè)計(jì)輸入:完成期間的硬件描述,包括文本編輯器、塊與符號編輯器、MegaWizard插件管理器、約束編輯器和布局編輯器等工具;(2) 綜合:包括分析和綜合器、輔助工具和RTL查看器等工具;(3) 布局連線:將設(shè)計(jì)綜合后的網(wǎng)表文件映射到實(shí)體器件的過程,包括F
17、itter工具、約束編輯器、布局圖編輯器、芯片編輯器和增量布局連線工具;(4) 時序分析;(5) 仿真:Quartus II提供了功能仿真和時序仿真兩種工具;2.4 實(shí)驗(yàn)板簡介實(shí)驗(yàn)板采用的是Altera公司的FPGA可編程邏輯器件FLEX EPF10K10LC84(芯片相當(dāng)邏輯門數(shù)達(dá)10000、I/O引腳59個、576個宏單元、片內(nèi)RAM 6KBit)。該器件基于SRAM,支持JTAG編程方式,可編程無限次。板上有7段共陽LED數(shù)碼管5個, LED邏輯狀態(tài)指示管8只,時鐘信號源有2個,分別是4M晶體振蕩器和100-10KHz振蕩器。此外,實(shí)驗(yàn)板上還有揚(yáng)聲器1只,撥碼開關(guān)一組(8個),琴鍵開關(guān)8
18、個。其布局圖如附錄A。3 整體設(shè)計(jì)論述3.1 總的設(shè)計(jì)流程首先根據(jù)交通燈控制器的功能要求,將功能要求轉(zhuǎn)化成系統(tǒng)流程圖,然后對系統(tǒng)進(jìn)行模塊的劃分、定義各個模塊的具體功能。再開始對各個模塊用VHDL語言編程,并在Quartus II環(huán)境下進(jìn)行編譯及功能仿真,最后將編程文件下載到FPGA器件FLEX EPF10K10LC84中。3.2 交通燈控制器的具體設(shè)計(jì)方案考慮到實(shí)驗(yàn)室所用的FPGA器件FLEX EPF10K10LC84上的數(shù)碼管以及LED邏輯狀態(tài)指示管數(shù)量有限,本論文設(shè)計(jì)的十字路口交通燈控制器不具有左拐彎功能,僅實(shí)現(xiàn)主、支干道紅、黃、綠燈、倒計(jì)時數(shù)的顯示,初始化設(shè)置以及特殊狀態(tài)控制功能。圖3.
19、1 十字路口交通燈控制器的平面圖實(shí)現(xiàn)紅黃綠燈的自動指揮是城市交通管理自動化的重要課題之一。通過分析可以知道,所設(shè)計(jì)的交通燈控制器要能夠使用于一條由主干道和支干道交匯處的十字路口(假設(shè)東西方向?yàn)橹鞲傻?,南北方向?yàn)橹Ц傻溃?。且遵循“主干道?yōu)先考慮”原則,主、支干道紅、綠燈亮的時間不完全一致,在正常情況下主干道允許車輛通行的時間更長。在綠燈轉(zhuǎn)換為紅燈的過程中有黃燈進(jìn)行,使車輛有足夠的時間停下來。并且在主、支干道各有兩組數(shù)碼管,以便顯示相應(yīng)狀態(tài)的倒計(jì)時。另外由VHDL語言合理設(shè)計(jì)交通燈控制器的功能,以使綠、黃、紅燈的轉(zhuǎn)換有一個準(zhǔn)確的轉(zhuǎn)換順序和時間間隔。依據(jù)設(shè)計(jì)要求,最終畫出如圖3.2所示的系統(tǒng)框圖。
20、圖3.2 控制系統(tǒng)框圖SN=1SPC=1WE=1 R=1圖3.3 控制系統(tǒng)的狀態(tài)轉(zhuǎn)換圖在正常情況下的一個完整周期內(nèi),交通燈控制器系統(tǒng)一共有四種狀態(tài),分別是S0、S1、S2、S3。其運(yùn)行方式為S0S1S2S3,S3結(jié)束后再回到S0狀態(tài),整個周期持續(xù)60s。R為重新設(shè)置信號,重新設(shè)置后系統(tǒng)轉(zhuǎn)換為S0狀態(tài)開始新的循環(huán)。SPC為緊急控制信號,為高電平時系統(tǒng)轉(zhuǎn)換為S6狀態(tài),狀態(tài)結(jié)束后系統(tǒng)重新設(shè)置,轉(zhuǎn)換為S0狀態(tài)。WE和SN分別為主、支干道控制信號。當(dāng)主干道車輛很多時,WE為高電平,此時系統(tǒng)轉(zhuǎn)換為S4狀態(tài),S4狀態(tài)結(jié)束后系統(tǒng)轉(zhuǎn)換為S1狀態(tài)。當(dāng)支干道車輛相對較多時,SN為高電平,此時系統(tǒng)轉(zhuǎn)換為S5狀態(tài),S5
21、狀態(tài)結(jié)束后系統(tǒng)轉(zhuǎn)換為S3狀態(tài),開始新的循環(huán)。各個狀態(tài)具體的運(yùn)行方式如下所述:S0: 主干道綠燈亮、支干道紅燈亮。此時主干道車輛允許通行,支干道車輛禁止通行。整個過程持續(xù)30s。S1: 主干道黃燈亮、支干道紅燈亮。此時提醒主干道車輛準(zhǔn)備停車,支干道車輛禁止通行。整個過程持續(xù)5s。S2:主干道紅燈亮、支干道綠燈亮。此時主干道車輛禁止通行,支干道車輛允許通行。整個過程持續(xù)20s。S3:主干道紅燈亮、支干道綠燈亮。此時提醒支干道車輛準(zhǔn)備停車,主干道車輛禁止通行。整個過程持續(xù)5s。S4:主干道綠燈亮、支干道紅燈亮。此時主干道車輛允許通行,支干道車輛禁止通行。整個過程持續(xù)60s。S5:主干道紅燈亮、支干道
22、綠燈亮。此時主干道車輛禁止通行,支干道車輛允許通行。整個過程持續(xù)4s。S6:主、支干道均為紅燈亮,車輛禁止通行,整個過程持續(xù)30s。4 主要功能模塊設(shè)計(jì)與仿真4.1 時鐘分頻模塊分頻模塊的作用是為系統(tǒng)提供所需的計(jì)時脈沖。FPGA器件FLEX EPF10K10LC84上時鐘源頻率為4MHZ,而系統(tǒng)的時鐘計(jì)時模塊需要1HZ的脈沖。因此需要對4MHZ的時鐘信號進(jìn)行分頻,產(chǎn)生1S的方波,作為系統(tǒng)的計(jì)時脈沖。其電路符號如圖4.1所示: 圖4.1 時鐘分頻模塊的電路符號在模塊中,clk采用系統(tǒng)的4MHZ時鐘脈沖,clk_1hz為分頻器產(chǎn)生的1hz的輸出脈沖。其控制程序如下所示:Process (clk)
23、Begin if clkevent and clk=1 then cnt1 = cnt1 + 1; if cnt1= then clk1=not clk1 clk_1hz=clk1; cnt1=0; end if; end if; end process;分頻模塊的仿真圖如4.2所示:圖4.2 時鐘分頻模塊仿真圖 為方便觀看波形,時鐘信號的周期并未嚴(yán)格按要求設(shè)置。從圖中可以看出該模塊完成了分頻功能。4.2 交通燈控制模塊控制模塊依據(jù)外部輸入輸出信號,來控制交通燈其他部分協(xié)調(diào)工作。交通燈控制模塊共定義了S0、S1、S2、S3、S4、S5、S6 六種狀態(tài)。本文第二章已對各個狀態(tài)的作了具體描述,故在
24、此不復(fù)述。該模塊的控制程序如下所示:BEGIN P1: PROCESS (R, SPC, WE,SN,CLK1hz) BEGIN IF R=1 THEN STATE=S0; T1=29; T2=34; ELSIF WE=1 THEN STATE=S4; T1=59; T2=64; ELSIF SN=1 THEN STATE=S5; T1=44; T2=39; ELSIF SPC=1 THEN STATE=S6; T1=29; T2r1=0; y1=0; g1=1; r2=1; y2=0; g2=0;-主干道通車; T1=T1-1; T2=T2-1; IF T1=0 THEN STATE=S1;
25、 T1=4;T2r1=0; y1=1; g1=0; r2=1; y2=0; g2=0;-主干道黃燈; T1=T1-1; T2=T2-1; IF T1=0 THEN STATE=S2; T1=24; T2r1=1; y1=0; g1=0; r2=0; y2=0; g2=1;- 支干道通車; T1=T1-1; T2=T2-1; IF T2=0 THEN STATE=S3; T1=4; T2r1=1; y1=0; g1=0; r2=0; y2=1; g2=0;-支干道黃燈; T1=T1-1; T2=T2-1; IF T1=0 THEN STATE=S0; T1=29; T2r1=0; y1=0; g
26、1=1; r2=1; y2=0; g2=0;-支干道黃燈; T1=T1-1; T2=T2-1; IF T1=0 THEN STATE=S1; T1=4;T2r1=1; y1=0; g1=0; r2=0; y2=0; g2=1;-支干道黃燈; T1=T1-1; T2=T2-1; IF T2=0 THEN STATE=S3; T1=4; T2r1=1; y1=0; g1=0; r2=1; y2=0; g2=0; T1=T1-1; T2=T2-1; IF T1=0 THEN STATE=S0; T1=29; T2STATE=S0; T1=29; T2=34; END CASE; END IF; EN
27、D IF; L1=T1/10; L2=T1 REM 10; L3=T2/10; L4LED1LED1LED1LED1LED1LED1LED1LED1LED1LED1 LED1S1-S2-S3-S0的循環(huán)。在SPC為高電平之后,r1、r2都變成高電平,即進(jìn)入了S6狀態(tài),在S6狀態(tài)之后控制器轉(zhuǎn)換為S0狀態(tài)。由圖可以看出SPC輸入高電平之后,系統(tǒng)遵循的是S6-S0-S1-S2-S3-S0的狀態(tài)轉(zhuǎn)換原則。圖4.6 WE和SN存在高電平時的仿真圖由圖4.6可以看出,WE置于高電平之后,g1、r2變成了高電平,但狀態(tài)持續(xù)時間比S0狀態(tài)更長,可知系統(tǒng)進(jìn)入了S4狀態(tài)。之后系統(tǒng)遵循S4 -S1-S2-S3-S0
28、的狀態(tài)轉(zhuǎn)換原則。在SN置于高電平之后,r1和g2變成了高電平,由狀態(tài)持續(xù)時間可知控制器轉(zhuǎn)換為S5狀態(tài),之后系統(tǒng)遵循S5 -S3-S0-S1的狀態(tài)轉(zhuǎn)換原則.4.3 顯示模塊顯示模塊可根據(jù)控制模塊的輸出信號和時鐘脈沖來實(shí)現(xiàn)倒計(jì)時數(shù)碼管的顯示。具體實(shí)現(xiàn)方式是將控制信號的輸出信號(如LED1【6.0】)的七位與數(shù)碼管的七段一一對應(yīng)。其控制程序如下所示:PROCESS (clk,datain)begin if clkevent and clk=1 then out0=not datain(0); out1=not datain(1); out2=not datain(2); out3=not datai
29、n(3); out4=not datain(4); out5=not datain(5); out6=not datain(6);end if;end process;其電路符號如圖4.7所示:圖4.7 顯示模塊的電路符號clk為4MHZ的系統(tǒng)時鐘脈沖。datain6.0接控制和計(jì)時模塊的輸出信號。FPGA器件FLEX EPF10K10LC84上的數(shù)碼管為共陽極的,低電平有效。Out0、Out1、Out2、Out3、Out4、Out5、Out6分別代表數(shù)碼管的a、b、c、d、e、f、g端。4.4 頂層文件將以上各個模塊仿真成功后,再編寫頂層文件,將各個單元模塊連接起來,統(tǒng)一調(diào)配,得到頂層文件的
30、原理圖(圖4.7):圖4.7 頂層文件的原理圖因?yàn)樵贔PGA器件FLEX EPF10K10LC84下載時為低電平有效,程序?qū)⒏鱾€模塊的輸出變量取反后輸出。部分變量是在原程序中取反,部分變量是在原理圖中接了非門后輸出。由圖4.7可以看出,交通燈控制器分為三個模塊,分別是分頻模塊、控制和計(jì)時模塊、顯示模塊。其中四個譯碼顯示模塊的輸出分別接實(shí)驗(yàn)板上的四個LED數(shù)碼管,用來顯示主、支干道的倒計(jì)時。除clk外,圖中可見4個外部輸入信號,分別是R、SPC、WE和SN。交通燈控制器各模塊的源程序如附錄B所示。5 交通燈控制器的硬件實(shí)現(xiàn)5.1 硬件實(shí)現(xiàn)方案管腳鎖定詳情如下所示:Number TO Locati
31、on1ClkPIN_12g1PIN_513y1PIN_524r1PIN_535g2PIN_486y2PIN_497r2PIN_508RPIN_299spcPIN_3010zhis0PIN_6911zhis1PIN_7012zhis2PIN_7113zhis3PIN_7214zhis4PIN_7315zhis5PIN_7816zhis6PIN_7917zg0PIN_8018zg1PIN_8119zg2PIN_8320zg3PIN_321zg4PIN_522zg6PIN_723zs0PIN_824zs1PIN_925zs2PIN_1026zs3PIN_1127zs4PIN_1628zs5PIN_1
32、729zs6PIN_1830zhig0PIN_6031zhig1PIN_6132zhig2PIN_6233zhig3PIN_6434zhig4PIN_6535zhig5PIN_6636zhig6PIN_6737zg5PIN_638WEPIN_3539SNPIN_36注:clk鎖定4MHZ時鐘信號g1鎖定O4;主干道綠燈y1鎖定O5;主干道黃燈r1鎖定O6;主干道紅燈g2鎖定O1;支干道綠燈y2鎖定O2;支干道黃燈r2鎖定O1;支干道紅燈R鎖定K1;SPC鎖定K2;WE、SN分別鎖定K3/K4;zhig0、zhig1、zhig2、zhig3、zhig4、zhig5、zhig6分別鎖定秒個位數(shù)碼管
33、的a、b、c、d、e、f、g端;zhis0、zhis1、zhis2、zhis3、zhis4、zhis5、zhis6分別鎖定秒十位數(shù)碼管的a、b、c、d、e、f、g端;zg0、zg1、zg2、zg3、zg4、zg5、zg6分別鎖定分個位數(shù)碼管的a、b、c、d、e、f、g端;zs0、zs1、zs2、 zs3、zs4、zs5、zs6分別鎖定分十位數(shù)碼管的a、b、c、d、e、f、g端;將管腳按上圖所述的方法鎖定后,就可以下載到FPGA器件上進(jìn)行調(diào)試了。5.2 實(shí)驗(yàn)結(jié)果將程序下載到試驗(yàn)板后,將R置于高電平后,可以看見LED燈的顯示情況為主干道綠燈亮,支干道紅燈亮。主干道數(shù)碼管倒計(jì)時顯示為34s,支干道數(shù)
34、碼管倒計(jì)時顯示為29s。在支干道數(shù)碼管倒計(jì)時顯示為0s后,可以看見LED燈的顯示情況變?yōu)橹鞲傻傈S燈亮,支干道紅燈亮。此時主、支兩干道的數(shù)碼管倒計(jì)時顯示均為5S。在支干道數(shù)碼管倒計(jì)時顯示為0s后,LED燈的顯示情況變?yōu)橹鞲傻兰t燈亮,支干道綠燈亮,主干道數(shù)碼管倒計(jì)時顯示為19s,支干道數(shù)碼管倒計(jì)時顯示為24s。在主干道數(shù)碼管倒計(jì)時顯示為0s后,可以看見LED燈的顯示情況變?yōu)橹鞲傻兰t燈亮,支干道黃燈亮,此時主、支兩干道的數(shù)碼管倒計(jì)時顯示均為5S。5S鐘之后,交通燈重新進(jìn)入主干道綠燈亮、支干道紅燈亮的狀態(tài)(即S0狀態(tài))。將spc置于高電平后,可以看見LED燈的顯示情況為兩干道均為紅燈亮,且數(shù)碼管均從2
35、9開始倒數(shù)計(jì)時。30s之后,控制器重新設(shè)置,轉(zhuǎn)換為S0狀態(tài)。將WE置于高電平后,可以看見LED燈的顯示情況為主干道綠燈亮,支干道紅燈亮。主干道數(shù)碼管倒計(jì)時顯示為64s,支干道數(shù)碼管倒計(jì)時顯示為59s。在支干道數(shù)碼管倒計(jì)時顯示為0s后,可以看見LED燈的顯示情況變?yōu)橹鞲傻傈S燈亮,支干道紅燈亮。此時主、支兩干道的數(shù)碼管倒計(jì)時顯示均為5S(即轉(zhuǎn)換為S1狀態(tài))。將SN置于高電平后,LED燈的顯示情況變?yōu)橹鞲傻兰t燈亮,支干道綠燈亮,主干道數(shù)碼管倒計(jì)時顯示為39s,支干道數(shù)碼管倒計(jì)時顯示為44s。在主干道數(shù)碼管倒計(jì)時顯示為0s后,可以看見LED燈的顯示情況變?yōu)橹鞲傻兰t燈亮,支干道黃燈亮,此時主、支兩干道的
36、數(shù)碼管倒計(jì)時顯示均為5S(即轉(zhuǎn)換為S3狀態(tài))。圖5.1 S2狀態(tài)的效果圖從上述情形可以看出,硬件測試的結(jié)果達(dá)到預(yù)期目標(biāo),實(shí)現(xiàn)了交通燈控制器的基本控制功能。但由于所用的實(shí)驗(yàn)板是低電平有效,因而另外兩個未使用的LED燈(O7、O8)一直是亮的,另外實(shí)驗(yàn)板小時個位的數(shù)碼管一直顯示著“8”。因?yàn)闀r間有限,這兩個問題沒能解決。6 總結(jié)之前對FPGA和VHDL的了解僅局限于課本上的些許知識,而沒有深入體會,缺乏實(shí)踐經(jīng)驗(yàn)。通過這次設(shè)計(jì),我對FPGA和VHDL有了更深入的理解,熟悉了Quartus II基本的使用方法。并且現(xiàn)在我對VHDL語言產(chǎn)生了濃厚的興趣。在選擇畢設(shè)題目之后,我意識到自己對VHDL語言的掌
37、握程度遠(yuǎn)遠(yuǎn)不夠,開始查閱VHDL教程。我依據(jù)交通燈控制器的要求劃分模塊,之后開始的是單元模塊的設(shè)計(jì)。我在做這個設(shè)計(jì)之前對Quartus II的了解甚少,編寫的程序也是到處有錯,只有邊編譯邊改程序。將每個單元模塊完成之后再進(jìn)行仿真,仿真過程也是困難重重。有時候設(shè)置的時鐘頻率過高,違反了setup/hold時間;有時候設(shè)置的END TIME過高,出現(xiàn)了仿真時間太長的問題。諸如此類的問題很多,通過自己查找資料和反復(fù)摸索,最終解決了問題。各個模塊仿真成功之后,我開始編寫頂層文件。在編寫頂層文件時我也遇到了不少困難,各個模塊的連接以及信號的定義老是出現(xiàn)錯誤,經(jīng)過反復(fù)修改才成功。 本設(shè)計(jì)基于VHDL硬件描
38、述語言編程,在確立總體預(yù)期控制功能的前提下,分模塊進(jìn)行描述,其中所用到的數(shù)據(jù)均可依實(shí)際情況而設(shè)置,修改方便靈活。目標(biāo)器件為FPGA芯片,運(yùn)用層次化設(shè)計(jì)方法,完成各個模塊的連接,實(shí)現(xiàn)了十字路口車輛的自動控制。VHDL程序在Quartus II環(huán)境下編譯通過,功能仿真正確,將編程文件下載到FPGA芯片后實(shí)現(xiàn)了自動控制功能。本設(shè)計(jì)具有設(shè)計(jì)過程簡化,設(shè)計(jì)周期短,工作穩(wěn)定、性能可靠等優(yōu)點(diǎn),打破了傳統(tǒng)的自下而上的設(shè)計(jì)方法,體現(xiàn)了基于FPGA技術(shù)和VHDL語言進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì)的優(yōu)越性和廣闊的前景。城市交通路口情況較為復(fù)雜,除十字路口之外,還有“T”型路口和圓形路口等類型的路口,本文僅簡單分析了十字路口。且由
39、于實(shí)驗(yàn)板上的LED數(shù)碼管和邏輯狀態(tài)指示管數(shù)目有限,在設(shè)計(jì)十字路口交通燈控制器時,沒有考慮左拐彎功能。該功能可通過在十字路口的每個方向各放置一個左拐信號燈和一組LED數(shù)碼管(2個)來實(shí)現(xiàn)。參考文獻(xiàn)1 易銘PLC控制的交通信號燈控制系統(tǒng)的設(shè)計(jì)J工業(yè)控制計(jì)算機(jī),2003,16(12):43452 劉煥成,劉智勇多單片機(jī)系統(tǒng)及分組式交通信號燈控制器J電子技術(shù),2003(8):15一193 蔣璇,臧春華.數(shù)字系統(tǒng)設(shè)計(jì)與PLD技術(shù)M. 北京:電子電子工業(yè)出版社,20014 徐志軍,王金明,伊廷輝等.EDA技術(shù)與VHDL設(shè)計(jì)M. 北京:電子工業(yè)出版社,2009:19趙艷華,曹丙霞,張睿基于Quartus I
40、I的FPGACPLD設(shè)計(jì)與應(yīng)用. 北京:電子工業(yè)出版社,2009:30585 侯伯亨VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)M西安:西安電子技大學(xué)出版社,1999:42776 邢建平,曾繁泰.VHDL程序設(shè)計(jì)教程3版北京:清華大學(xué)出版社,2005:45467 徐春嬌基于VHDL狀態(tài)機(jī)設(shè)計(jì)的智能交通控制燈J國外電子元器2007(2):31358 張順興數(shù)字電路與系統(tǒng)設(shè)計(jì)M南京:東南大學(xué)出版社,2004:3045.9 楊暉,張風(fēng)言大規(guī)??删幊踢壿嬈骷c數(shù)字系統(tǒng)設(shè)計(jì)M北京:北京航空航天大學(xué)出版社,1998:17318810 蔡軍,曹慧英智能交通燈控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)J重慶:郵電學(xué)院學(xué)報(bào),2004,16
41、(3):12913211 田瑞利,陳海濱基于VHDL有限狀態(tài)機(jī)的交通信號燈控制系統(tǒng)設(shè)計(jì)J廣州航海高等??茖W(xué)校學(xué)報(bào),2008,15(3)313312 劉欲曉,方強(qiáng),黃宛寧等EDA技術(shù)與VHDL電路開發(fā)應(yīng)用實(shí)踐M北京:電子電子工業(yè)出版社,2009:12713113 曹昕燕,周鳳臣,聶春燕.EDA技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì)M北京:清華大學(xué)出版社,2006:108115 譚會生等.EDA技術(shù)基礎(chǔ)M.長沙:湖南大學(xué)出版社,2004:113116.14 Altera Corporation. 2002. Altera Digital Library. Altera15 Mark Zwolinski. Digita
42、l System Design with VHDL M. 北京:電子工業(yè)出版社,2002:1118附錄附錄A 實(shí)驗(yàn)板布局圖電源指示編程指示數(shù)碼管FPGA器件電源插座探針晶振揚(yáng)聲器編程插座狀態(tài)指示NE556撥碼開關(guān)電位器琴鍵開關(guān)附錄B 各模塊的源程序分頻模塊:LIBRARY ieee; USE ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY clkdiv IS PORT ( clk : IN STD_LOGIC; clk_1hz: out std_logic); END clkdiv; ARCHITECTURE b
43、ehave OF clkdiv IS signal cnt1:INTEGER RANGE 0 TO ;signal clk1:std_logic;BEGIN -時鐘分頻進(jìn)程 process (clk) begin if clkevent and clk=1 then cnt1 = cnt1 + 1; if cnt1= then clk1=not(clk1); clk_1hz=clk1; cnt1=0; end if; end if; end process; END behave; 顯示模塊LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY xians IS PORT (clk: IN STD_LOGIC; datain: IN STD_LOGI
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度個人二手車交易車輛交易稅收籌劃協(xié)議3篇
- 二零二五版物業(yè)高空作業(yè)安全設(shè)備維護(hù)與檢查合同3篇
- 二零二五版?zhèn)D(zhuǎn)股投資合作協(xié)議書(股權(quán)投資)6篇
- 二零二五版消防工程維保與消防設(shè)備安裝、維保一體化合同3篇
- 2025版環(huán)保產(chǎn)業(yè)園區(qū)環(huán)境治理與改善合同3篇
- 二零二五年度個人資產(chǎn)管理合同模板詳述4篇
- 2025年度個人房產(chǎn)交易資金監(jiān)管服務(wù)合同范本
- 家電齊全高層房屋出租合同
- 二零二四年度柚子種植基地與電商企業(yè)合作合同3篇
- 二零二四宅基地使用權(quán)轉(zhuǎn)讓與土地承包經(jīng)營權(quán)合同范本3篇
- 2024版塑料購銷合同范本買賣
- 2024-2025學(xué)年人教新版高二(上)英語寒假作業(yè)(五)
- JJF 2184-2025電子計(jì)價秤型式評價大綱(試行)
- 鄭州小吃詳細(xì)地點(diǎn)
- 上海高考英語詞匯手冊
- 2021年江蘇省淮安市淮陰中學(xué)高一政治下學(xué)期期末試題含解析
- 2021年道路交通安全法期末考試試題含答案
- 自帶藥物治療告知書
- 建筑制圖與陰影透視-第3版-課件12
- 2023年最新的校長給教師春節(jié)祝福語
- 吞咽解剖和生理研究
評論
0/150
提交評論