EDA課程設(shè)計(jì)交通燈_第1頁
EDA課程設(shè)計(jì)交通燈_第2頁
EDA課程設(shè)計(jì)交通燈_第3頁
EDA課程設(shè)計(jì)交通燈_第4頁
EDA課程設(shè)計(jì)交通燈_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、交通信號(hào)燈控制 電路設(shè)計(jì)一、概述城市道路交叉口是城市道路網(wǎng)絡(luò)的基本節(jié)點(diǎn),也是網(wǎng)絡(luò)交通流的瓶頸。目前,大部 分無控制交叉口都存在高峰小時(shí)車流混亂、車速緩慢、延誤情況嚴(yán)重、事故多發(fā)、通行能 力和服務(wù)水平低下等問題。特別是隨著城市車流量的快速增長(zhǎng),城市無控制道路交叉口的 交通壓力越來越大。因此,做好基于EDA技術(shù)平臺(tái)的交叉口信號(hào)控制設(shè)計(jì)是緩解交通阻塞、提高城市道路交叉口車輛通行效率的有效方法。交通信號(hào)控制的目的是為城市道路交 叉口(或交通網(wǎng)絡(luò))提供安全可靠和有效的交通流,通常最為常用的原則是車輛在交叉口的通 過量最大或車輛在交叉口的延誤最小。交通信號(hào)燈控制電路是顯示主干道和支干道交替放行時(shí)間并用試驗(yàn)

2、箱左上角的彩燈來 代替信號(hào)燈的一種實(shí)際電路。設(shè)計(jì)一個(gè)基于FPGA的紅綠燈交通信號(hào)控制器。假設(shè)某個(gè)十字路口是由一條主干道和一條次干道匯合而成,在每個(gè)方向設(shè)置紅綠黃三種信號(hào)燈,紅燈 亮禁止通行,綠燈亮允許通行。黃燈亮允許行駛中車輛有時(shí)間停靠到禁止線以外。本課程的基本原理是在合適的時(shí)鐘信號(hào)的控制下,使主干道與支道的紅黃綠燈循環(huán)顯 示,用VHDL語言編輯文本程序,按設(shè)計(jì)要求連接好線以后,進(jìn)行波形仿真,仿真結(jié)果正 確后下載程序并對(duì)試驗(yàn)箱進(jìn)行調(diào)試,使其最終的顯示結(jié)果符合設(shè)計(jì)要求。二、方案設(shè)計(jì)與論證在硬件時(shí)鐘電路的基礎(chǔ)上,采用分頻器,輸出一個(gè)1S的時(shí)鐘信號(hào),在時(shí)鐘信號(hào)的控制下,實(shí)現(xiàn)主干道和支干道紅綠燈交替顯

3、示。紅綠燈交通燈控制器層次設(shè)計(jì):EDA技術(shù)的基本設(shè)計(jì)方法有電路級(jí)設(shè)計(jì)方法和系統(tǒng)級(jí)設(shè)計(jì)方法。電路級(jí)設(shè)計(jì)方法已經(jīng) 不能適應(yīng)新的形勢(shì),本系統(tǒng)采用的是系統(tǒng)級(jí)層次設(shè)計(jì)方法, 對(duì)整個(gè)系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能 劃分,系統(tǒng)的關(guān)鍵電路用一片F(xiàn)PGA芯片實(shí)現(xiàn),首先用VHDL語言編寫各個(gè)功能模塊程序, 最后通過綜合器和適配器生成最終的目標(biāo)器件,然后用頂層原理圖將各功能模塊連接起來。 下面給出各模塊的VHDL設(shè)計(jì)過程和仿真結(jié)果。1、系統(tǒng)時(shí)序發(fā)生電路clk_gen的VHDL設(shè)計(jì)在紅綠燈交通信號(hào)控制系統(tǒng)中,大多數(shù)的情況是通過自動(dòng)控制的方式指揮交通的。因 此,為了避免意外事件的發(fā)生,電路必須給一個(gè)穩(wěn)定的時(shí)鐘(clock)才能

4、讓系統(tǒng)正常運(yùn)作。但為了配合高峰時(shí)段,防止交通擁擠,有時(shí)也必須使用手動(dòng)控制,即讓交警能夠順利地指 揮交通。Clk_gen電路最主要的功能就是產(chǎn)生一些額外的輸出信號(hào),并將其用做后續(xù)幾個(gè)電 路的使能(enable)控制與同步信號(hào)處理。該電路的核心部分就是分頻電路,通過對(duì)外接信號(hào)發(fā)生器提供1kHz的時(shí)鐘信號(hào)進(jìn)行1000分頻,得到一個(gè)周期為1秒的輸出使能信號(hào)ena_lhz (占空比1: 1000)和flash_lhz (占 空比1: 1); 4分頻后得到紅綠燈信號(hào)譯碼電路所需的頻率為250Hz的顯示使能信號(hào)ena_scan。architecture one of fenpingqi issignal c

5、ounter:integer range 0 to 4999999;Beginprocess (CLR,CLK)Beginif(CLK='1' and CLK'event) thenif CLR='1' thencounter<=0;elsif counter =4999999 thencounter<=0;qv=not q;else counterv=counter+1;end if;end if;end process;end one;2、開關(guān)控制部分的ASM圖i、j、k、分別代表開關(guān)狀態(tài);1表示開關(guān)閉合,為高電平;0表示開關(guān)斷開為低電平

6、。 當(dāng)開關(guān)處于不同的狀態(tài)時(shí),分別給變量 G不同的值,用來實(shí)現(xiàn)控制通行時(shí)間。x<=i&j&k;cnt:process (clk)variable s:integer range 0 to 49;variab e g:integer range 0 to 49;variab e nclr,en:bit;Beginif xv="001"then g:=29;e sif x<="0l0"then g:=39;e sif x<="l00"then g:=4§else g:=0;end if;3、信號(hào)燈

7、轉(zhuǎn)換控制部分的ASM圖Rm、Ym、Gm分別表示主干道紅、黃、綠;Rf、Yf、Gf分別表示支道紅、黃、綠;S表示燈亮的時(shí)間;nclr是計(jì)時(shí)器的清零端,低電平有清零;en是計(jì)時(shí)器的使能端,高 電平使能。S=3Gm<='Rf<='S=GS=S+1 nclr='1' Jnclr= O'JYm<=''nclr=Rf<=''L'0'JyS=3yS=GRm<=''Yfv=''Rm<=''Gf<=''if (clk&#

8、39;event and clk='1') thenf nclr='0' then s:=0; e sif en='0' then s:=s; e se s:=s+1; end if;case state is whe n 玄=>血<='0'口<='0:9口<rfv='1'yfv='0'gfv=O fs=g state Else state<=a;nclr:='1'en:='1' end if;3、狀態(tài)裝換ym<= rf&l

9、t;='1'yf<='0'g then v=b;nclr:='O'en:='O'Gm<=,Rt<= 1kf丄S=S+1 nclr='TS-S+2 nclr- T en= < r 屮W1(1) 開始設(shè)置為支路為綠燈、主路為紅燈,持續(xù)時(shí)間為30秒;(2) 30秒后,支路由綠燈變?yōu)辄S燈,主路紅燈不變,持續(xù)時(shí)間為4秒;(3) 4秒后,支路由黃燈變?yōu)榧t燈,主路由紅燈變?yōu)榫G燈,持續(xù)時(shí)間30秒;(4) 30秒后,支路紅燈不變,主路由綠燈變?yōu)辄S燈,持續(xù)時(shí)間為4秒;(5) 4秒后,支路由紅燈變?yōu)榫G燈,主路由黃燈變?yōu)榫G

10、燈,持續(xù)時(shí)間為30秒;隨時(shí)間,主、支系統(tǒng)依次循環(huán),可以自動(dòng)切換,紅綠燈時(shí)間間隔可以手動(dòng)設(shè)置,以適應(yīng)不同需求。case state iswhe n a=>rm<='0'ym<='0':gm<='1' rf<='1'yf<='0'gf<='0'if s=g thenstate <=b;nclr:='0'en:='0'Else state<=a;nclr:='1'en:='1' end i

11、f;whe n b=>rm<='0'ym<='1':gm<='0'rfv='1';yfv='0';gf<='0¥if s=3 thenstate <=c;nclr:='0'en:='0'Elsestate<=b;nclr:='1'en:='1'<='0'end if;whe n c=>rm<='1'ym<='0'gm rf

12、v='0'yfv='0'gfv='1°if s=g thenstate v=d;nclr:='O'en:='O'state<=c;nclr:='1'en:='1'end if;whe n d=>rmv='1'ymv='0'gm<='0'rfv='O'yfv='1'gfv='0號(hào)if s=3 thenstate v=a;nclr:='0'en:='0

13、9; Elsestatev=d;nclr:='1'en:='1' end if;end case;四、總原理圖1、電路連接圖2、分頻器模塊3、交通燈控制器模塊4、波形仿真'r"仿真圖一二:;匚仿真圖二5、硬件仿真:二一為了能對(duì)所設(shè)計(jì)的紅綠燈交通燈控制器電路進(jìn)行硬件測(cè)試,應(yīng)將其輸入輸出信號(hào)鎖定 在開發(fā)系統(tǒng)的目標(biāo)芯片引腳上,并重新編譯,然后對(duì)目標(biāo)芯片進(jìn)行編程下載,完成紅綠燈 交通燈控制器的最終開發(fā),其硬件測(cè)試示意圖如圖6-62。不失一般性,本設(shè)計(jì)選用的 EDA開 發(fā)平臺(tái)為GW4電路模式為No.5,選擇目標(biāo)器件為Cylone系列EP1C3T144C芯

14、片。鎖定引腳時(shí)將CLK接至clock2(接受1kHz的時(shí)鐘頻率);內(nèi)部自復(fù)位信號(hào)同鍵3(PI08) 相連;手動(dòng)、自動(dòng)切換鈕(1:自動(dòng)、0手動(dòng))接鍵4( PI09);:紅綠燈狀態(tài)切換鍵(每按一次 就切換一個(gè)狀態(tài))接鍵5 (PI013); R1接發(fā)光二級(jí)管D8( PIO23)用于指示南北路口紅燈; G1接發(fā)光二級(jí)管D7( PIO22)用于指示南北路口綠燈;丫1接發(fā)光二級(jí)管D6( PI021)用于指 示南北路口黃燈;R0接發(fā)光二級(jí)管D5( PIO20)用于指示東西路口紅燈;G0接發(fā)光二級(jí)管 D4( PI019)用于指示東西路口綠燈;丫0接發(fā)光二級(jí)管D3( PI018)用于指示東西路口紅燈; NEXT

15、_S接發(fā)光二級(jí)管D1 ( PI016)用于轉(zhuǎn)態(tài)指示。弓引腳鎖定完成后,重新對(duì)該工程進(jìn)行編譯,綜合適配后將配置數(shù)據(jù)下載入GW48S驗(yàn)平臺(tái)的FPGA中 (有關(guān)CLK等引腳在FPGA芯片EP1C6Q240C引腳中的序號(hào),請(qǐng)參見EDA書后的 附錄的附表)。選模式5,情況一(紅綠燈間隔30秒,黃綠間隔5秒),設(shè)定最右邊三個(gè)燈(從右到左) 為支路燈:紅燈、綠燈、黃燈;緊接著為主路:紅燈、綠燈、黃燈 (6號(hào)燈已壞順延到7號(hào) 燈);'仿真圖片如下:圖一:支路綠燈,主路紅燈圖二:支路黃燈,主路紅燈圖三:支路紅燈,主路綠燈圖四:支路紅燈,主路黃燈圖五:支路綠燈,主路紅燈五、實(shí)驗(yàn)?zāi)康?. 熟練掌握VHDL語

16、言和MAX+ PLUSII軟件的使用;2. 理解狀態(tài)機(jī)的工作原理和設(shè)計(jì)方法;3. 掌握利用EDA工具進(jìn)行自頂向下的電子系統(tǒng)設(shè)計(jì)方法六、實(shí)驗(yàn)步驟1將實(shí)驗(yàn)系統(tǒng)上RS232接口與計(jì)算機(jī)串行口相連。2. 用VHDL將兩個(gè)方案的源程序輸入 MAX+ PL USII軟件中。3. 編譯程序并進(jìn)行引腳分配,最后將程序下載到器件中去。七、結(jié)果分析本次課程設(shè)計(jì)基本上滿足了任務(wù)的設(shè)計(jì)要求,可以通過開關(guān)手動(dòng)設(shè)置主干道和支道每 次通行的時(shí)間分別為為30s、40s、50s,從而控制通行時(shí)間長(zhǎng)短的轉(zhuǎn)換;各個(gè)狀態(tài)之間的轉(zhuǎn) 化及各個(gè)狀態(tài)的通行時(shí)間也可以滿足“主干道和支干道自動(dòng)循環(huán)。主干道和支道每次通行 的時(shí)間為30s,而在兩個(gè)

17、狀態(tài)交換過程出現(xiàn)的"主黃,支紅"和"主紅,支黃"狀態(tài),持續(xù)時(shí)間 都為4s ”的設(shè)計(jì)要求。但是設(shè)計(jì)也存在一定的缺陷,設(shè)計(jì)只能完成當(dāng)開關(guān)i , j,k只有一個(gè)為高電平時(shí)使交通燈正常工作,其他狀態(tài)時(shí)定義G=0,這時(shí)交通燈不能正常工作。例如當(dāng) X=I&J&K= 101',時(shí),其波形仿真各個(gè)狀態(tài)時(shí)間通行時(shí)間長(zhǎng)短會(huì)出現(xiàn)差錯(cuò),如下圖然而,這種狀況在實(shí)際生活中是不允許出現(xiàn)的。其解決方法是:在各個(gè)when語句后增加一條if判斷語句,判斷如果g等于0,則保持原狀態(tài),如果g不等于0,則執(zhí)行原來方案 中的狀態(tài)轉(zhuǎn)換語句。八、硬件要求主芯片EPF10K10L

18、C84-4 6個(gè)LED燈(紅、黃、綠各兩個(gè));四個(gè)開關(guān)。九、心得體會(huì)通過課程設(shè)計(jì)能提高學(xué)生對(duì)所學(xué)知識(shí)的綜合應(yīng)用能力,能全面檢查并掌握所學(xué)內(nèi)容, 在這學(xué)期的課程設(shè)計(jì)中,在收獲知識(shí)的同時(shí),還收獲了閱歷,收獲了成熟,在此過程中, 我們通過查找資料,請(qǐng)教老師,以及不懈的努力,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能 力,在各種其它能力上也都有了提高。更重要的是,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。通過本學(xué)期的這次的課程設(shè)計(jì)與幾次實(shí)驗(yàn),我學(xué)會(huì)了VHDL語言的一些基本用法, 應(yīng)用了原來不會(huì)或者不熟練的句型,如 process進(jìn)程,也學(xué)會(huì)了一些基本功能的實(shí)現(xiàn)方法, 如分頻,狀態(tài)控制等。雖然這次實(shí)驗(yàn)遇到的問題不少,但是在老師以

19、及同學(xué)的幫助下,我 都順利地解決了,并為將來的實(shí)踐積累了寶貴的經(jīng)驗(yàn)和教訓(xùn)。通過經(jīng)常和老師、同學(xué)交 流,以便及時(shí)發(fā)現(xiàn)自己在實(shí)驗(yàn)中的紕漏和不足,促進(jìn)進(jìn)步。EDA設(shè)計(jì)中程序調(diào)試最為重要,我在編完各模塊程序之后,編譯查錯(cuò)最初有很多錯(cuò) 誤,有輸入錯(cuò)誤,語法錯(cuò)誤,通過反復(fù)的修改最終通過了編譯。必須注意工程名和實(shí)體名 的一致,在仿真無誤的情況下把程序下載到是芯片中,進(jìn)行硬件的調(diào)試。邏輯正確和仿真 真確并不代表著實(shí)際實(shí)驗(yàn)的正確,通常情況下,要適當(dāng)?shù)卣{(diào)整邏輯以適應(yīng)硬件。要特別注 意仿真時(shí)出現(xiàn)的毛刺和偏差,到底是由于仿真設(shè)置不合理還是仿真結(jié)果確實(shí)有問題。這次課程設(shè)計(jì)雖然結(jié)束了,也留下了很多遺憾,因?yàn)橛捎跁r(shí)間的緊缺

20、和許多課業(yè)的繁 忙,并沒有做到最好,但是,最起碼我們沒有放棄,它是我們的驕傲!相信以后我們會(huì)以 更加積極地態(tài)度對(duì)待我們的學(xué)習(xí)、對(duì)待我們的生活。實(shí)驗(yàn)的順利完成,與老師的熱心指導(dǎo)是分不開的,最后十分感謝胡輝老師的認(rèn)真負(fù)責(zé) 的工作,讓我受益匪淺!十、參考文獻(xiàn)EDA技術(shù)與實(shí)驗(yàn)機(jī)械工業(yè)出版社李國洪、胡輝、沈明山EDA技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì)清華大學(xué)出版社曹新燕、周鳳臣、聶春燕EDA技術(shù)綜合應(yīng)用實(shí)例與分析西安電子科技大學(xué)出版社 譚會(huì)生、翟遂春附件1、頂層設(shè)計(jì)代碼library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;use i

21、eee.std_logic_ un sig ned.all; ENTITY JiaoT on gDe ng isport(clr,clk,i,j,k:in std_logic;rm,ym,gm,rf,yf,gf:out stdo gic;reco un t:out std_logic; NEXT_S:out std_logic);end en tity JiaoT on gDe ng;architecture JTD of Jiao Ton gDe ng is comp onent fenpin gqi port(CLR,CLK:in std_logic; q:buffer stdo gic)

22、;end comp onent;comp onent kon gzhi port(clk,i,j,k:in std_logic; rm,ym,gm,rf,yf,gf:out std_logic);end comp onent;comp onent coun t_dow nport(clk,reset, en a_1Hz, reco unt: in std_logic; load: in stdo gic_vector(7 dow nto 0); seg7:out stdo gic_vector(15 dow nto 0); n ext_state: out std_logic);end com

23、p onent;sig nal Q, sig nal reco un t_1,sig nal n ext_state_1:std_logic; begi nu1: fenpin gqi port map(CLR=>clr,CLK=>clk,q=>Q);u2: kon gzhi port map(i=>i,j=>j,k=>k,clk=>Q,rm=>rm,ym=>ym,gm=>gm1,rf=>rf, yf=>yf,gf=>gf);u3:co un t_dow nport map (RE,CLK,e na_1Hz_1,re

24、cou nt_1,load,S, next_state_1);NEXT_S<=next_state_1;end architecture JTD;分頻器代碼library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_ un sig ned.all;en tity fenpin gqi isport (CLR,CLK:in stdo gic ;q:buffer std_logic);end fenpin gqi;architecture one of fenpin gqi

25、issig nal coun ter:i nteger range 0 to 4999999;Beg inprocess (CLR,CLK)Beg inif(CLK='1' and CLK'eve nt) the nif CLR='1' the ncoun ter<=0;elsif cou nter =4999999 thencoun ter<=0;qv=not q;elsecoun ter<=co un ter+1; end if;end if;end process;end one;3、交通燈控制器代碼library ieee;us

26、e ieee.std_logic_1164.all; use ieee.std_logic_arith.all;use ieee.std_logic_ un sig ned.all; en tity kon gzhi isport (clk,i,j,k:in std_logic;rm,ym,gm,rf,yf,gf:out stdo gic);end kon gzhi;architecture arc of kongzhi istype state_type is (a,b,c,d); sig nal state:state_type;sig nal x:std_logic_vector(2 d

27、ow nto 0); Beg in x<=i&j&k;cn t:process (clk) variable s:i nteger range 0 to 49;variable g:i nteger range 0 to 49; variable n clr,e n:bit;Beg inif x<="001"then g:=29;elsif x<="010"then g:=39;elsif x<="100"then g:=49;else g:=0;end if;if (clk'eve n

28、t and clk='1') the n if n clr='0' the n s:=0; elsif en='0' the n s:=s;else s:=s+1;end if;case state iswhen a=>rm<='0'ym<='0'gm<='1' rf<='1'yf<='0'gf<='0'if s=g the nstate <=b; nclr:='0'e n:='0

29、'Elsestate<=a; nclr:='1'e n:='1'end if;when b=>rm<='0'ym<='1'gm<='0' rfv='1'yfv='0'gfv='0'if s=3 the nstate <=c; nclr:='0'e n:='0'Elsestate<=b ;n clr:='1'e n:='1'end if;when c=>

30、;rm<='1'ym<='0'gm<='0' rf<='0'yf<='0'gf<='1'if s=g the nstate <=d; nclr:='0'e n:='0'Elsestate<=c; nclr:='1'e n:='1'end if;when d=>rm<='1'ym<='0'gm<='0' rf<='0'yf<='1'gf<='0'if s=3 t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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)論