摘 要:交通燈控制系統(tǒng)在城市交通監(jiān)管中起著極其重要的作用。應用VHDL語言,在Altera公司的Max+Plus Ⅱ軟件環(huán)境下,通過模塊化編程完成了燈亮時間可調(diào)的交通燈控制系統(tǒng)設計,并進行了邏輯綜合、仿真和硬件下載,系統(tǒng)的軟件仿真和實驗測試結(jié)果滿足了設計要求,達到了預期的效果。由于設計采用了EDA技術(shù),不但大大縮短了開發(fā)研制周期,提高了設計效率,而且使系統(tǒng)具有設計靈活,實現(xiàn)簡單,性能穩(wěn)定的特點。
關(guān)鍵詞:交通燈控制;FPGA;VHDL;仿真
中圖分類號:TP312 文獻標識碼:B 文章編號:1004373X(2008)1719003
Design of Traffic Light Controller Based on FPGA
LI Guodong,REN Zhiping
(School of Electronic Engineering,Xi′an Shiyou University,Xi′an,710065,China)
Abstract:The traffic light controller has become an indispensable part of the traffic systems,playing an important role in the traffic supervision.This paper realizes the design of traffic light controller whose flickering times is adaptively changeable with VHDL.The Max+Plus Ⅱ software automatically completed the VHDL resource program analysis,logic synthesis,optimization and device programming.The results of simulation meet scheme design.With EDA technology,the design has the advantages of facility design,convenient operation,high reliability and the design efficiency is also improved.
Keywords:traffic light control;FPGA;VHDL;simulation
交通燈是城市交通監(jiān)管系統(tǒng)的重要組成部分,對于保證機動車輛的安全運行,維持城市道路的順暢起到了重要作用。目前很多城市交叉路口的交通燈實行的是定時控制,燈亮的時間是預先設定好的,在時間和空間方面的應變性能較差,一定程度上造成了交通資源的浪費,加重了道路交通壓力。本文在EDA技術(shù)的基礎(chǔ)上,利用FPGA的相關(guān)知識設計了交通燈控制系統(tǒng),可以根據(jù)實際情況對燈亮時間進行自由調(diào)整,整個設計系統(tǒng)通過Max+Plus Ⅱ軟件進行了模擬仿真,并下載到FPGA 器件中進行硬件的調(diào)試,驗證了設計的交通信號燈控制電路完全可以實現(xiàn)預定的功能,具有一定的實用性。
1 系統(tǒng)設計要求
所設計的交通信號燈控制電路,主要適用于在兩條干道匯合點形成的十字交叉路口,路口設計兩組紅綠燈分別對兩個方向上的交通運行狀態(tài)進行管理。交通燈的持續(xù)閃亮時間由鍵盤輸入控制。燈亮時序如圖1所示,當B方向的紅燈亮時,A方向?qū)G燈亮,由綠燈轉(zhuǎn)換成紅燈的過渡階段黃燈亮,即B方向紅燈亮的時間等于A方向綠燈和黃燈亮的時間之和。同理,當A方向的紅燈變亮時,B方向的交通燈也遵循此規(guī)則。各干道上安裝有數(shù)碼管,以倒計時的形式顯示本道各信號燈閃亮的時間。當出現(xiàn)特殊情況時,各方向上均亮紅燈,倒計時停止。特殊運行狀態(tài)結(jié)束后,控制器恢復原來的狀態(tài),繼續(xù)運行。
2 系統(tǒng)整體設計
整個系統(tǒng)設計如圖2所示,該系統(tǒng)主要由計數(shù)模塊、控制模塊、分頻模塊、分位模塊以及顯示電路構(gòu)成。其中分頻模塊主要將系統(tǒng)輸入的基準時鐘信號轉(zhuǎn)換為1 Hz的激勵信號,驅(qū)動計數(shù)模塊和控制模塊工作。控制模塊根據(jù)計數(shù)器的計數(shù)情況對交通燈的亮滅及持續(xù)時間進行控制,并通過分位電路將燈亮時間以倒計時的形式通過數(shù)碼管顯示出來。圖中Reset是復位信號,高電平有效,可以實現(xiàn)對計數(shù)器的異步清零。Hold為保持信號,當Hold為“1”,計數(shù)器暫停計數(shù),表示出現(xiàn)特殊情況,各方向車輛都處于禁行狀態(tài)。
3 主要功能模塊設計及仿真
3.1 計數(shù)模塊設計
計數(shù)模塊主要實現(xiàn)累加循環(huán)計數(shù),計數(shù)的最大值由鍵盤輸入控制,輸出的計數(shù)值為控制模塊的燈控提供參考,計數(shù)器的主程序設計如下:
entity counter is
port
(clock:in std_logic;
reset:in std_logic;---復位信號
hold:in std_logic;
A,B,C:in std_logic_vector(3 downto 0);---鍵盤輸入值
key:out integer range 0 to 255;
countnum:buffer integer range 0 to 255); ---計數(shù)值
end;
architecture behavior of counter is
signal keyin: integer range 0 to 255;
begin
keyin<=conv_integer(A)*100+conv_integer(B)*10+conv_integer(C);
process(reset,clock)
begin
if reset=′1′ then
countnum<=0;
elsif rising_edge(clock) then
if hold=′1′ then---出現(xiàn)緊急情況,計數(shù)器暫停計數(shù)
countnum<=countnum;
elsif countnum=keyin then
countnum<=0;
else
countnum<=countnum+1;
end if;
end if;
end process;
key<=keyin;
end;
計數(shù)模塊的仿真如圖3所示,從圖中可以看出,在時鐘的驅(qū)動下,計數(shù)值不斷自加,當計數(shù)值countnum等于鍵盤輸入值32(key=32)時, 計數(shù)返回到0,開始下一輪計數(shù)。當Hold檢測到特殊情況時置‘1’,使計數(shù)器暫停計數(shù)。
3.2 控制器模塊的仿真設計
在控制器模塊中,紅、綠、黃三盞燈工作的總時間由鍵盤輸入,各交通燈時間分配規(guī)則如下:紅燈時間占總時間的1/2,綠燈時間占3/8,黃燈時間占1/8,本設計中鍵盤輸入值為32(key=32),正常情況下紅燈亮16 s,綠燈亮12 s,黃燈亮4 s。
控制模塊仿真圖控制器仿真情況如圖4所示,當hold為低電平,計數(shù)值countnum<12時,greenA輸出高電平,A東西方向綠燈亮起車輛通行,此時與之相對應的redB輸出高電平,B方向紅燈亮起車輛禁行。A方向顯示交通燈閃爍持續(xù)時間的數(shù)碼管numA從12開始遞減,同時B方向顯示交通燈閃爍持續(xù)時間的數(shù)碼管numB從16開始遞減。當12 3.3 分位模塊設計 分位模塊的設計主要是將燈亮時間分為十位和個位,通過兩個相應的數(shù)碼管分別顯示出來。本設計中燈亮時間最長不超過40 s(numin<40),numA,numB分別表示十位、個位上的數(shù)字,分位模塊程序設計的流程圖如圖5所示。 分位模塊的仿真如圖6所示,numin的數(shù)值大小可以通過numA,numB的組合以十進制數(shù)值顯示,從而實現(xiàn)了分位功能。 4 系統(tǒng)的硬件設計及調(diào)試 本系統(tǒng)的主要邏輯設計由一片EP1K30TC144-3芯片完成,編寫的VHDL源程序在Altera公司的邏輯綜合工具Max+Plus Ⅱ下經(jīng)過編譯和功能仿真測試后,針對下載芯片進行管腳配置,下載到EP1K30TC144-3芯片中,進行相應的硬件調(diào)試,調(diào)試結(jié)果與軟件仿真的結(jié)果相吻合,驗證了設計完成了預定功能。 5 結(jié) 語 本文利用硬件描述語言VHDL編程,借助Altera公司的Max+Plus Ⅱ軟件環(huán)境下進行了編譯及仿真測試,通過 FPGA芯片實現(xiàn)了一個實用的交通信號燈控制系統(tǒng),設計由于采用了EDA技術(shù),不但大大縮短了開發(fā)研制周期,提高了設計效率,而且使系統(tǒng)具有設計靈活,實現(xiàn)簡單,性能穩(wěn)定的特點。 參 考 文 獻 [1]張明.VHDL實用教程.計算機技術(shù)與發(fā)展,2008,18(3):181-183. [2]譚會生,張昌凡,EDA 技術(shù)及應用[M].西安:西安電子科技大學出版社,2001. [3]潘松,王國棟,VHDL 實用教程[M].西安:西安電子科技大學出版社,2000. [4]張順興,數(shù)字電路與系統(tǒng)設計[M].南京:東南大學出版社,20004. [5]徐志軍,徐光輝,PLD/FPGA 的開發(fā)與應用[M].北京:電子工業(yè)出版社,2002. [6]蔣璇,臧春華,數(shù)字系統(tǒng)設計與PLD應用技術(shù)[M].北京:電子工業(yè)出版社,2006. [7]王永華,現(xiàn)代電氣控制及PLD技術(shù)[M].北京:北京航空航天大學出版社,2005. [8]王成勇,智能交通燈控制系統(tǒng)[J].廣東技術(shù)師范學院學報,2006(4):92-94. [9]張海英,余臻,陳燕萍,模糊控制在智能交通燈監(jiān)控系統(tǒng)中的應用[J].計算機技術(shù)與發(fā)展,2008,18(3):181-183