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

下載本文檔

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

文檔簡介

1、 交通信號(hào)燈控制電路設(shè)計(jì)1、 概述 城市道路交叉口是城市道路網(wǎng)絡(luò)的基本節(jié)點(diǎn),也是網(wǎng)絡(luò)交通流的瓶頸。目前,大部分無控制交叉口都存在高峰小時(shí)車流混亂、車速緩慢、延誤情況嚴(yán)重、事故多發(fā)、通行能力和服務(wù)水平低下等問題。特別是隨著城市車流量的快速增長,城市無控制道路交叉口的交通壓力越來越大。因此,做好基于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)新的形勢,本系統(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)才能讓系統(tǒng)正常運(yùn)作。但為了

4、配合高峰時(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 counter:integer ran

5、ge 0 to 4999999;Beginprocess (CLR,CLK)Beginif(CLK='1' and CLK'event) then if CLR='1' then counter<=0; elsif counter =4999999 then counter<=0; q<=not q; else counter<=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)斷開為低電平。當(dāng)開

6、關(guān)處于不同的狀態(tài)時(shí),分別給變量G不同的值,用來實(shí)現(xiàn)控制通行時(shí)間。X<=i&j&kX=001X=010X=100G=29G=39G=49yyyG=0x<=i&j&k;cnt:process (clk)variable s:integer range 0 to 49;variable g:integer range 0 to 49;variable nclr,en:bit; Beginif x<="001"then g:=29;elsif x<="010"then g:=39;elsif x<=&

7、quot;100"then g:=49;else g:=0;end if;3、 信號(hào)燈轉(zhuǎn)換控制部分的ASM圖Rm、Ym、Gm分別表示主干道紅、黃、綠;Rf、Yf、Gf分別表示支道紅、黃、綠;S表示燈亮的時(shí)間;nclr是計(jì)時(shí)器的清零端,低電平有清零;en是計(jì)時(shí)器的使能端,高電平使能。Gm<=1Rf<=1S=GS=S+1nclr=1en=1Ym<=1Rf<=1S=3Rm<=1Gf<=1S=GS=3 Rm<=1Yf<=1yyyyS=S+1nclr=1en=1 nclr=0en=0nclr=0en=0 if (clk'event and

8、 clk='1') then if nclr='0' then s:=0; elsif en='0' then 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 thenstate <=b;nclr:='0'en:='0'Elses

9、tate<=a;nclr:='1'en:='1'end if; 3、狀態(tài)裝換 (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燈,持續(xù)時(shí)間為30秒; 隨時(shí)間,主、支系統(tǒng)依次循環(huán),可以自動(dòng)切換,紅綠燈時(shí)間間隔可以手動(dòng)設(shè)置,以適應(yīng)不同需求。 case state iswhen a=>rm&

10、lt;='0'ym<='0'gm<='1' rf<='1'yf<='0'gf<='0'if s=g thenstate <=b;nclr:='0'en:='0'Elsestate<=a;nclr:='1'en:='1'end if;when b=>rm<='0'ym<='1'gm<='0' rf<='1'

11、;yf<='0'gf<='0'if s=3 thenstate <=c;nclr:='0'en:='0'Elsestate<=b;nclr:='1'en:='1'end if;when c=>rm<='1'ym<='0'gm<='0' rf<='0'yf<='0'gf<='1'if s=g thenstate <=d;nclr:=&#

12、39;0'en:='0'Elsestate<=c;nclr:='1'en:='1'end if;when d=>rm<='1'ym<='0'gm<='0' rf<='0'yf<='1'gf<='0'if s=3 thenstate <=a;nclr:='0'en:='0'Elsestate<=d;nclr:='1'en:='1&#

13、39;end if;end case;4、 總原理圖1、電路連接圖2、分頻器模塊 3、交通燈控制器模塊 4、波形仿真仿真圖一仿真圖二5、 硬件仿真:為了能對(duì)所設(shè)計(jì)的紅綠燈交通燈控制器電路進(jìn)行硬件測試,應(yīng)將其輸入輸出信號(hào)鎖定在開發(fā)系統(tǒng)的目標(biāo)芯片引腳上,并重新編譯,然后對(duì)目標(biāo)芯片進(jìn)行編程下載,完成紅綠燈交通燈控制器的最終開發(fā),其硬件測試示意圖如圖6-62。不失一般性,本設(shè)計(jì)選用的EDA開發(fā)平臺(tái)為GW48電路模式為No.5,選擇目標(biāo)器件為Cylone系列EP1C3T144C8芯片。 鎖定引腳時(shí)將CLK接至clock2(接受1kHz的時(shí)鐘頻率);內(nèi)部自復(fù)位信號(hào)同鍵3(PIO8)相連;手動(dòng)、自動(dòng)切換鈕(

14、1:自動(dòng)、0手動(dòng))接鍵4(PIO9);:紅綠燈狀態(tài)切換鍵(每按一次就切換一個(gè)狀態(tài))接鍵5(PIO13); R1接發(fā)光二級(jí)管D8(PIO23)用于指示南北路口紅燈;G1接發(fā)光二級(jí)管D7(PIO22)用于指示南北路口綠燈;Y1接發(fā)光二級(jí)管D6(PIO21)用于指示南北路口黃燈;R0接發(fā)光二級(jí)管D5(PIO20)用于指示東西路口紅燈;G0接發(fā)光二級(jí)管D4(PIO19)用于指示東西路口綠燈;Y0接發(fā)光二級(jí)管D3(PIO18)用于指示東西路口紅燈;NEXT_S 接發(fā)光二級(jí)管D1(PIO16)用于轉(zhuǎn)態(tài)指示。引腳鎖定完成后,重新對(duì)該工程進(jìn)行編譯,綜合適配后將配置數(shù)據(jù)下載入GW48實(shí)驗(yàn)平臺(tái)的FPGA中(有關(guān)C

15、LK等引腳在FPGA芯片EP1C6Q240C8引腳中的序號(hào),請參見EDA書后的附錄的附表)。選模式5,情況一(紅綠燈間隔30秒,黃綠間隔5秒),設(shè)定最右邊三個(gè)燈(從右到左)為支路燈:紅燈、綠燈、黃燈;緊接著為主路:紅燈、綠燈、黃燈(6號(hào)燈已壞順延到7號(hào)燈);仿真圖片如下:圖一:支路綠燈,主路紅燈圖二:支路黃燈,主路紅燈圖三:支路紅燈,主路綠燈圖四:支路紅燈,主路黃燈圖五:支路綠燈,主路紅燈五、實(shí)驗(yàn)?zāi)康?. 熟練掌握VHDL 語言和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)上RS23

16、2接口與計(jì)算機(jī)串行口相連。2.用VHDL將兩個(gè)方案的源程序輸入MAX+ PLUSII 軟件中。3.編譯程序并進(jìn)行引腳分配,最后將程序下載到器件中去。七、結(jié)果分析本次課程設(shè)計(jì)基本上滿足了任務(wù)的設(shè)計(jì)要求,可以通過開關(guān)手動(dòng)設(shè)置主干道和支道每次通行的時(shí)間分別為為30s、40s、50s,從而控制通行時(shí)間長短的轉(zhuǎn)換;各個(gè)狀態(tài)之間的轉(zhuǎn)化及各個(gè)狀態(tài)的通行時(shí)間也可以滿足“主干道和支干道自動(dòng)循環(huán)。主干道和支道每次通行的時(shí)間為30s,而在兩個(gè)狀態(tài)交換過程出現(xiàn)的"主黃,支紅"和"主紅,支黃"狀態(tài),持續(xù)時(shí)間都為4s”的設(shè)計(jì)要求。但是設(shè)計(jì)也存在一定的缺陷,設(shè)計(jì)只能完成當(dāng)開關(guān)i,j,

17、k只有一個(gè)為高電平時(shí)使交通燈正常工作,,其他狀態(tài)時(shí)定義G=0,這時(shí)交通燈不能正常工作。例如當(dāng)X=I&J&K=101,時(shí),其波形仿真各個(gè)狀態(tài)時(shí)間通行時(shí)間長短會(huì)出現(xiàn)差錯(cuò),如下圖 然而,這種狀況在實(shí)際生活中是不允許出現(xiàn)的。其解決方法是:在各個(gè)when語句后增加一條if判斷語句,判斷如果g等于0,則保持原狀態(tài),如果g不等于0,則執(zhí)行原來方案中的狀態(tài)轉(zhuǎn)換語句。八、硬件要求主芯片EPF10K10LC84-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í),還收獲了閱歷,

18、收獲了成熟,在此過程中,我們通過查找資料,請教老師,以及不懈的努力,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。通過本學(xué)期的這次的課程設(shè)計(jì)與幾次實(shí)驗(yàn),我學(xué)會(huì)了語言的一些基本用法,應(yīng)用了原來不會(huì)或者不熟練的句型,如process進(jìn)程,也學(xué)會(huì)了一些基本功能的實(shí)現(xiàn)方法,如分頻,狀態(tài)控制等。雖然這次實(shí)驗(yàn)遇到的問題不少,但是在老師以及同學(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ò)最初有很

19、多錯(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í)間的緊缺和許多課業(yè)的繁忙,并沒有做到最好,但是,最起碼我們沒有放棄,它是我們的驕傲!相信以后我們會(huì)以更加積極地態(tài)度對(duì)待我們的學(xué)習(xí)、對(duì)待我們的生活。實(shí)驗(yàn)的順利完成,與老師的熱心指導(dǎo)是分不開的,最后十分感謝胡輝老師的認(rèn)真負(fù)責(zé)的工作,讓我受益

20、匪淺!十、參考文獻(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 ieee.std_logic_unsigned.all;ENTITY JiaoTongDeng is port(clr,clk,i,j,k:in std_logic; rm,ym,gm,rf,yf,gf:out std_log

21、ic; recount:out std_logic; NEXT_S:out std_logic);end entity JiaoTongDeng;architecture JTD of JiaoTongDeng is component fenpingqi port(CLR,CLK:in std_logic; q:buffer std_logic); end component; component kongzhi port(clk,i,j,k:in std_logic; rm,ym,gm,rf,yf,gf:out std_logic); end component; component co

22、unt_down port(clk,reset, ena_1Hz, recount: in std_logic; load: in std_logic_vector(7 downto 0); seg7:out std_logic_vector(15 downto 0); next_state: out std_logic); end component; signal Q, signal recount_1,signal next_state_1:std_logic;begin u1: fenpingqi port map(CLR=>clr,CLK=>clk,q=>Q); u

23、2: kongzhi port map(i=>i,j=>j,k=>k,clk=>Q,rm=>rm,ym=>ym,gm=>gm1,rf=>rf,yf=>yf,gf=>gf); u3:count_down port map(RE,CLK,ena_1Hz_1,recount_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

24、_arith.all;use ieee.std_logic_unsigned.all;entity fenpingqi isport (CLR,CLK:in std_logic ; q:buffer std_logic);end fenpingqi;architecture one of fenpingqi issignal counter:integer range 0 to 4999999;Beginprocess (CLR,CLK)Beginif(CLK='1' and CLK'event) then if CLR='1' then counter

25、<=0; elsif counter =4999999 then counter<=0; q<=not q; else counter<=counter+1; end if;end if; end process;end one;3、交通燈控制器代碼 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity kongzhi isport (clk,i,j,k:in std_logic; rm,ym,gm,rf,y

26、f,gf:out std_logic);end kongzhi; architecture arc of kongzhi istype state_type is (a,b,c,d);signal state:state_type;signal x:std_logic_vector(2 downto 0);Beginx<=i&j&k;cnt:process (clk)variable s:integer range 0 to 49;variable g:integer range 0 to 49;variable nclr,en:bit; Beginif x<=&q

27、uot;001"then g:=29;elsif x<="010"then g:=39;elsif x<="100"then g:=49;else g:=0;end if;if (clk'event and clk='1') then if nclr='0' then s:=0; elsif en='0' then s:=s; else s:=s+1; end if;case state iswhen a=>rm<='0'ym<='0&

28、#39;gm<='1' rf<='1'yf<='0'gf<='0'if s=g thenstate <=b;nclr:='0'en:='0'Elsestate<=a;nclr:='1'en:='1'end if;when b=>rm<='0'ym<='1'gm<='0' rf<='1'yf<='0'gf<=

29、9;0'if s=3 thenstate <=c;nclr:='0'en:='0'Elsestate<=b;nclr:='1'en:='1'end if;when c=>rm<='1'ym<='0'gm<='0' rf<='0'yf<='0'gf<='1' if s=g thenstate <=d;nclr:='0'en:='0'Elsestate<=c;nclr:='1'en:='1'end if;when d=>rm<='1'ym<='0'gm<='0' rf<='0'yf<='1'gf<='0'if s=3 th

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論