基于FPGA的交通信號燈控制系統(tǒng)
摘要:為了解決傳統(tǒng)交通燈控制系統(tǒng)常采用單片機或PLC等控制芯片所具有的控制不精確、系統(tǒng)外圍電路復(fù)雜、程序修改不靈活、成本偏高等缺點,利用VHDL硬件描述語言,通過QuattusⅡ軟件和以CycloneⅡ系列FPGA為核心的開發(fā)板,完成交通信號燈控制系統(tǒng)的設(shè)計。該系統(tǒng)具有電路簡單、可靠性強、運算速度高、參數(shù)易修改等特點。通過軟件進行仿真,并在KX_7C5TP型開發(fā)板下載模擬,結(jié)果表明系統(tǒng)工作正常,控制器能完成預(yù)定的設(shè)計要求。
關(guān)鍵詞:交通信號燈控制系統(tǒng);VHDL;EDA;FPGA
0 引言
隨著社會經(jīng)濟的高速發(fā)展,由車輛大幅增加而帶來的交通問題日趨嚴重。因此,作為交通監(jiān)管系統(tǒng)的重要組成部分,交通信號燈在協(xié)調(diào)人、車、路的關(guān)系時發(fā)揮著巨大的作用。
EDA(Electronic Design Automation,電子設(shè)計自動化)是依靠功能強大的計算機,對以硬件描述語言HDL(Hardware Description Langu age)為系統(tǒng)邏輯描述手段完成的設(shè)計文件加以處理,自動實現(xiàn)既定的電子線路系統(tǒng)功能的一種技術(shù)。利用EDA技術(shù)進行電子系統(tǒng)設(shè)計的最終目標是完成專用集成電路ASIC(Application Specific Integrated Circuit)的設(shè)計和實現(xiàn)。ASIC作為最終的物理平臺,集中容納了用戶通過EDA技術(shù)將電子應(yīng)用系統(tǒng)的既定功能和技術(shù)指標具體實現(xiàn)的硬件實體?,F(xiàn)場可編程門陣列FPGA(Field Programmahie Gate Array)是實現(xiàn)這一途徑的主流器件,其特點是具有極大的靈活性和通用性,開發(fā)效率高,成本低,技術(shù)維護簡單,工作可靠性好。
1 設(shè)計要求
1.1 應(yīng)用背景
有一條主干道和一條支干道的匯合點形成十字交叉路口,主干道為東西向,支干道為南北向。為確保車輛安全、迅速地通行,在交叉道口的每個入口處設(shè)置了紅、綠、黃3色信號燈及左轉(zhuǎn)向燈,如圖1所示。
1.2 要求
(1)主干道綠燈亮?xí)r,支干道紅燈亮,反之亦然,兩者交替允許通行。主干道每次放行40 s,支干道每次放行30 s。每次綠燈亮,前10 s為左轉(zhuǎn)燈亮,后5 s為黃燈亮。余下為直行燈亮。
(2)能實現(xiàn)正常的倒計時顯示功能。
(3)能實現(xiàn)總體清零功能:計數(shù)器由初始狀態(tài)開始計數(shù),對應(yīng)狀態(tài)的指示燈亮。
2 系統(tǒng)狀態(tài)分析
對設(shè)計要求進行分析可知,主、支干道交通燈變化順序應(yīng)如圖2所示。
狀態(tài)轉(zhuǎn)換如表1所示。
3 系統(tǒng)結(jié)構(gòu)設(shè)計
根據(jù)要求,系統(tǒng)結(jié)構(gòu)圖設(shè)計如圖3所示。時鐘脈沖由分頻器對晶振脈沖進行分頻產(chǎn)生。主控制器接收時鐘信號,并據(jù)此進行狀態(tài)轉(zhuǎn)換,同時輸出各狀態(tài)的時間。信號燈控制器根據(jù)主控制器產(chǎn)生的狀態(tài)量對主、支干道信號燈進行控制。由于主控制器輸出的時間信號為實數(shù)類型,因此還需設(shè)計分位器將其轉(zhuǎn)換為兩組BCD碼分別送至數(shù)碼管顯示。
4 VHDL設(shè)計實現(xiàn)
為便于系統(tǒng)實現(xiàn),采用VHDL語言對各個模塊進行設(shè)計。主控制器為一計數(shù)器,輸入信號為秒脈沖,以70為一個周期,計數(shù)到1后,在下一個時鐘信號來到時,計數(shù)器復(fù)位,開始下一輪計數(shù),如此往復(fù)。系統(tǒng)復(fù)位信號reset可使計數(shù)器從任意狀態(tài)復(fù)位至狀態(tài)S0,并重新開始計數(shù)。下面是主控制器的VHDL文件。其中clk和rst是時鐘和復(fù)位信號,state表示當前狀態(tài),seg7a、seg7b分別表示主、支干道倒計時時間,temp為內(nèi)置變量。
5 結(jié)果仿真
通過QuartusⅡ軟件將各模塊連接,進行編譯、仿真,各模塊可正常工作。分配引腳后,將配置文件下載至KX_7C5TP型FPGA開發(fā)板,系統(tǒng)運行正常,驗證了整個設(shè)計的正確性,仿真結(jié)果如圖4,圖5所示。
6 結(jié)語
從上述設(shè)計可以看出,利用FPGA進行交通信號燈控制系統(tǒng)的設(shè)計,使得設(shè)計者的工作僅限于利用軟件的方式,即利用硬件描述語言和EDA軟件來完成對系統(tǒng)硬件功能的設(shè)計,這不僅提高了設(shè)計的靈活性,也便于設(shè)計者對信號燈的定周控制時間進行修改。