胡桂戎
【摘要】本文采用FPGA設(shè)計(jì),結(jié)合了道路傳感器,設(shè)計(jì)了交通信號(hào)燈全感應(yīng)自適應(yīng)的控制方案。通過仿真與驗(yàn)證結(jié)果表明實(shí)現(xiàn)對(duì)交通道路的暢通達(dá)到優(yōu)化的效果。
【關(guān)鍵詞】FPGA;信號(hào)燈;系統(tǒng)
現(xiàn)代城市交通車流量大,交通信號(hào)燈的時(shí)間控制和狀態(tài)轉(zhuǎn)化往往是造成交通效率高低的主要原因。因此,就需要對(duì)信號(hào)燈的亮燈時(shí)間和轉(zhuǎn)化上,根據(jù)道路實(shí)際情況,做出最優(yōu)化的方案。本文對(duì)此,基于FPGA進(jìn)行設(shè)計(jì)出了較為智能化的交通信號(hào)燈的控制系統(tǒng)。
1、設(shè)計(jì)背景要求
1)需要在道路十字路口四個(gè)道口各設(shè)一組交通信號(hào)燈,包括左轉(zhuǎn)彎的指示燈。2)為體現(xiàn)所設(shè)計(jì)系統(tǒng)的功能,假設(shè)南北道路為主干道。車流量向北東西道較大,南北道可通行時(shí)間要長(zhǎng)于東西道路。3)為符合實(shí)際中的交通規(guī)則,所設(shè)計(jì)的程序需要在綠燈、紅燈以及左轉(zhuǎn)燈轉(zhuǎn)換之間,要有黃燈作為緩沖指示。4)根據(jù)現(xiàn)實(shí)應(yīng)用需求,指示燈顯示時(shí)間可設(shè)定和調(diào)整。交通燈顯示時(shí)間需要有倒計(jì)時(shí)方式在旁邊亮起顯示。特殊情況需要應(yīng)急車通行時(shí),指示燈需顯示出應(yīng)急功能保障應(yīng)急車輛優(yōu)先通過。
2、結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)具體結(jié)構(gòu)如圖1所示。分頻器對(duì)晶振脈沖進(jìn)行分頻,產(chǎn)生時(shí)鐘脈沖。主控制器收到時(shí)鐘信號(hào)后,做出轉(zhuǎn)換狀態(tài),并輸出狀態(tài)時(shí)間。與此同時(shí),信號(hào)燈控制器依據(jù)得到的狀態(tài)指示,對(duì)道路信號(hào)燈做出控制。運(yùn)行中,主控制器發(fā)出的信號(hào)是實(shí)數(shù)類型,分位器須將收到的信號(hào)轉(zhuǎn)換為BCD編碼送到顯示裝置內(nèi)。
3、控制系統(tǒng)的設(shè)計(jì)
3.1 分頻模塊設(shè)計(jì)
系統(tǒng)設(shè)計(jì)采用模塊化方案。其中,分頻模塊的工作是把50MHz的基準(zhǔn)信號(hào)分成1Hz的激勵(lì)信號(hào),然后提供給控制模塊。實(shí)際在軟件QuartusII里面進(jìn)行操作。在軟件的NewProjectWizard窗口下,輸入位置d:/trafficlight,然后輸入文件名。這個(gè)一般設(shè)計(jì)過程是相同的。依次選擇File→New→VerilogHDLFile,這時(shí)需要注意的是,在Verilog.v文件板塊中錄入系統(tǒng)分頻程序。最后把此文件進(jìn)行編譯,做出功能仿真。
3.2 控制模塊設(shè)計(jì)
控制模塊中,控制信號(hào)的產(chǎn)生主要采用按鍵形式。但運(yùn)行中按鍵會(huì)有抖動(dòng)的現(xiàn)象。消除抖動(dòng)的方式還是使用軟件。控制模塊的實(shí)用性較強(qiáng),有時(shí)間預(yù)置、模式選擇、復(fù)位調(diào)整等功能。設(shè)計(jì)中,4個(gè)按鍵分別為krest、kset、kup和kdown。Krest是復(fù)位按鈕。Kset作為轉(zhuǎn)換狀態(tài)的調(diào)整使用。kup和kdown分別為設(shè)置量的加減。過程中,kset控制state[3..0]進(jìn)行狀態(tài)控制。交通信號(hào)燈顯示時(shí)間信號(hào)分別為G1_time[6..0],Y1_time[6..0],R1_time[6..0],L1_time[6..0]。顯而易見,改變此閾值即為改變信號(hào)燈的倒計(jì)時(shí)時(shí)間。具體模式如下表所示。這為具體使用提供了便捷。
3.3 主干道計(jì)時(shí)模塊設(shè)計(jì)
對(duì)主干道模塊的設(shè)計(jì),主要是為了實(shí)現(xiàn)各個(gè)道路信號(hào)燈的指示時(shí)間和轉(zhuǎn)換狀態(tài)。當(dāng)然還包括倒計(jì)時(shí)的顯示形式。在模塊中錄入clk_1s信號(hào),為倒計(jì)時(shí)提供相應(yīng)的脈沖指控。主干道各信號(hào)燈的顯示時(shí)間值為G1_time[6..0],Y1_time[6..0],R1_time[6..0]和L1_time[6..0],這些參考值能夠?yàn)槟K準(zhǔn)確計(jì)數(shù)和不同信號(hào)等的轉(zhuǎn)換做出判斷依據(jù)。設(shè)計(jì)中,復(fù)位信號(hào)為stt,對(duì)各種模式的控制信號(hào)是st。同樣道理,輸出信號(hào)為G1_ctime[6..0],Y1_ctime[6..0],R1_ctime[6..0]和L1_ctime[6..0]。在模塊設(shè)計(jì)這些信號(hào)時(shí),一定要注重精確。這些信號(hào)能夠有效的為道路指示燈提供精確的倒計(jì)時(shí)顯示數(shù)值?,F(xiàn)實(shí)中,將這些數(shù)值直接送達(dá)顯示模塊。顯示模塊所需要的顯示狀態(tài)為seg[1..0]的條件。G1、Y1、R1和L1分別為每個(gè)信號(hào)燈的輸入控制信號(hào),并且為高電平點(diǎn)亮。設(shè)計(jì)中,首先建立main_module.v文件。直接錄入每個(gè)信號(hào)燈相對(duì)應(yīng)的模塊記時(shí)數(shù)據(jù)。對(duì)此功能,可以進(jìn)行功能仿真驗(yàn)證,以確保正確性。最終,還是要對(duì)此生成元件符號(hào)。
3.4 副干道計(jì)時(shí)模塊設(shè)計(jì)
設(shè)計(jì)過程中,如果沒有特殊要求,副干道的計(jì)時(shí)模塊的設(shè)計(jì)與上文提到的主干道計(jì)時(shí)模塊設(shè)計(jì)是比較類同的。設(shè)計(jì)過程中,只需注意實(shí)際運(yùn)用中的需求,對(duì)交通信號(hào)燈顯示順序的不同以及倒計(jì)時(shí)時(shí)間長(zhǎng)短不同,而進(jìn)行不同的設(shè)置。在程序及符號(hào)錄入時(shí),同樣要十分注意準(zhǔn)確性,以確保實(shí)際應(yīng)用的正確。
4、系統(tǒng)仿真驗(yàn)證
在整個(gè)系統(tǒng)設(shè)計(jì)完成后,需要對(duì)系統(tǒng)進(jìn)行仿真驗(yàn)證,確保能夠投入到實(shí)際應(yīng)用中。由途中可知這次驗(yàn)證的結(jié)果:假設(shè)各交通路口一直都有車且機(jī)動(dòng)車輛已經(jīng)排隊(duì),車隊(duì)長(zhǎng)約30m。在S1狀態(tài)綠燈15s時(shí),達(dá)到綠燈熄滅條件。然后再設(shè)定每個(gè)路口都有車,同樣設(shè)定機(jī)動(dòng)車輛排隊(duì)長(zhǎng)度30m。通過這個(gè)轉(zhuǎn)換,能夠知道系統(tǒng)從一個(gè)基本狀態(tài)到另一個(gè)基本狀態(tài)的轉(zhuǎn)換,依次進(jìn)行,沒有混亂。根據(jù)仿真驗(yàn)證,綠燈15s后,南北道路上左轉(zhuǎn)方向并無車輛需行駛的情況下,綠燈熄滅。準(zhǔn)確實(shí)現(xiàn)了S0到S3之間4個(gè)主要狀態(tài)的依次循環(huán)轉(zhuǎn)換。這次循環(huán)轉(zhuǎn)換仍沒有混亂現(xiàn)象。
再次進(jìn)行設(shè)定為上班高峰時(shí)段的仿真驗(yàn)證。設(shè)定每個(gè)道路口都有車,而且機(jī)動(dòng)車排隊(duì)有30m的長(zhǎng)度。在圖中140s處,系統(tǒng)控制成功實(shí)現(xiàn)了從S0到S34個(gè)基本狀態(tài)的顯示轉(zhuǎn)換。此時(shí)狀態(tài)變?yōu)樵O(shè)定好的上班高峰時(shí)段,狀態(tài)S4,系統(tǒng)又控制狀態(tài)有效的在S0到S4之間依次轉(zhuǎn)換。
根據(jù)實(shí)驗(yàn)順序,再次對(duì)深夜車輛較少的情況下進(jìn)行仿真驗(yàn)證。設(shè)計(jì)只有4個(gè)時(shí)間段有車輛行駛,且為輕微堵車的狀態(tài)。路口有約40m長(zhǎng)的機(jī)動(dòng)車在排隊(duì)。仿真驗(yàn)證顯示,綠燈亮的時(shí)間為40s。此時(shí),系統(tǒng)初始態(tài)S0仍舊為30s綠燈??梢姡F(xiàn)實(shí)狀態(tài)下,已經(jīng)在在S0和S22個(gè)之間做出轉(zhuǎn)換。成功實(shí)現(xiàn)了根據(jù)排隊(duì)車輛長(zhǎng)度進(jìn)行智能操控的應(yīng)用。
結(jié)束語:
綜上所述,本文設(shè)計(jì)的交通信號(hào)燈控制系統(tǒng),采用有限狀態(tài)機(jī)設(shè)計(jì)三種信號(hào)燈狀態(tài)轉(zhuǎn)化方案和兩種信號(hào)燈時(shí)間分配調(diào)節(jié)機(jī)制,實(shí)現(xiàn)了針對(duì)交通復(fù)雜路口的高效智能控制。實(shí)際運(yùn)用中,交通信號(hào)燈的智能化控制,為道路的暢通運(yùn)行提供了有效保障。