趙博玉 沈小林
【摘要】伴隨著中國經(jīng)濟的快速發(fā)展,城市規(guī)模越來越大,機動車輛越來越多,給城市交通帶來了巨大壓力。而傳統(tǒng)交通燈控制系統(tǒng)是通過采用中小規(guī)模集成電路,或者是采用單片機和PLC等控制芯片進行設(shè)計,從而存在控制精度低、電路設(shè)計復(fù)雜、系統(tǒng)維護困難、成本居高不下等問題。本文采用FPGA的cyclone II芯片,用Verilog HDL硬件描述語言,通過Quartus II軟件進行綜合仿真,對各功能模塊進行設(shè)計,然后通過連線組合各底層模塊來實現(xiàn)頂層模塊設(shè)計。
【關(guān)鍵詞】FPGA;交通燈控制系統(tǒng);Quartus II;Verilog HDL
Traffic lights control system design in FPGA
Zhao Boyu,Shen Xiaolin
(School of computer and control Engineering,North University of China,Taiyuan 030051,China)
Abstract:With the rapid development of China's economy,the increasing scale of the city,motor vehicles,more and more traffic to the city brought tremendous pressure.Aimed at the traditional problems such as inaccurate control,complex peripheral circuits,inflexible program modification and higher costs,the design traffic light control systems adopt single chip microcomputer as a control chip,the system of each functional module is designed FPGA with Verilog hardware description language and Quartus II software platform.Each functional module component symbols is added,and then achieve top-level module design through the connection combination from each bottom-level module.
Key words:FPGA;traffic light control system;Quartus II;Verilog HDL
1.引言
伴隨著中國經(jīng)濟飛速發(fā)展,城鎮(zhèn)化水平越來越高,城市規(guī)模越來越大,機動車輛越來越多,給城市交通帶來了巨大壓力,因此交通燈控制系統(tǒng)的作用顯得十分重要。交通信號燈控制系統(tǒng)是一個典型的純數(shù)字系統(tǒng)[1],傳統(tǒng)交通燈控制系統(tǒng)大都通過中小規(guī)模集成電路,或者是采用單片機和PLC控制芯片進行設(shè)計,從而存在控制精度低、電路設(shè)計復(fù)雜、系統(tǒng)維護困難、成本居高不下等問題。采用超大規(guī)??删幊唐骷﨔PGA實現(xiàn),可降低設(shè)計成本,縮短設(shè)計周期,保證設(shè)計過程的正確性,為數(shù)字系統(tǒng)的設(shè)計帶來了極大的靈活性[2]。FPGA采用了邏輯單元陣列LCA這樣一個新概念(由可編程的與陣列和固定的或陣列組成),其內(nèi)部包括可配置邏輯模塊CLB、輸出輸入模塊IOB和內(nèi)部連線三個部分[3]。FPGA由于其并行工作機制的原理,所以其運行速度非???,在低功耗和小體積上也有很大的優(yōu)勢。因此,F(xiàn)PGA適應(yīng)于交通燈控制系統(tǒng)的應(yīng)用要求,對緩解城市交通有重要的現(xiàn)實意義。
圖2.1 模塊設(shè)計框圖
圖3.1 Quarts II中頂層模塊的核心代碼
圖3.2 頂層模塊RTL視圖
2.系統(tǒng)設(shè)計思想
本文通過采用FPGA實現(xiàn)交通燈控制系統(tǒng),用Verilog HDL語言實現(xiàn)低級建模的思想[4],從而實現(xiàn)所設(shè)想的交通燈控制要求和剩余倒計時時間顯示。通過QuartusII軟件進行綜合編譯,生成RTL視圖和Technology Map視圖用來實現(xiàn)表達(dá)設(shè)計構(gòu)想。
本設(shè)計采用模塊化層次設(shè)計[5],遵循自上而下的設(shè)計理念(Top-Down),先設(shè)計出頂層模塊,通過設(shè)計出頂層模塊實現(xiàn)設(shè)計構(gòu)想,接著分層次的引出各個子模塊,包括:分頻模塊,控制模塊及計時模塊,數(shù)字取位模塊,SMG加碼顯示模塊,每個子模塊執(zhí)行不同的功能,通過內(nèi)部連線相互作用,最終實現(xiàn)系統(tǒng)設(shè)計。模塊設(shè)計框圖如圖2.1所示。
3.模塊設(shè)計
3.1 分頻模塊
系統(tǒng)芯片采用Alter公司cycloneII芯片,型號為EP2C8Q208C,頻率為20MHz,時鐘周期為T=50ns,而本次設(shè)計需要的頻率為1Hz,即時鐘周期為1s。因此需要對cycloneII芯片自帶的頻率進行相應(yīng)倍數(shù)的分頻。要得到1s的時鐘周期,就需要N=1s/T個點。
3.2 控制模塊及計數(shù)模塊
控制模塊的主要功能是控制LED綠黃紅三色燈的亮滅情況,另外還通過計數(shù)模塊控制LED綠黃紅三色燈在數(shù)碼管中的亮滅時間。
3.3 數(shù)字取位模塊
該模塊的設(shè)計原理其實很簡單,就是利用最基本的數(shù)學(xué)運算符“%”和“/”來取得綠黃紅三色燈顯示時間的十位和個位,其中利用運算符“%”來取得十位數(shù),利用運算符“/”來取得個位數(shù)。因為最高只能獲得十位取位,所以輸入數(shù)的范圍是00~99。
3.4 SMG加碼顯示模塊
該模塊的主要更能使譯碼,因為該顯示模塊采用8段數(shù)碼管顯示模塊,所以要經(jīng)過將由二進制組成的數(shù)字“轉(zhuǎn)換”成SMG碼,即:
根據(jù)數(shù)字取位模塊獲得的十位和個位數(shù),轉(zhuǎn)換成SMG碼,在8段數(shù)碼管中顯示出倒計時時間。
3.5 頂層模塊
頂層模塊的核心功能是通過將前面的分頻模塊,控制模塊,計數(shù)模塊,十位取位模塊,SMG加碼顯示模塊例化,將前面的模塊聯(lián)合起來,組成一個系統(tǒng),在Quartus II軟件中編寫Verilog HDL語言,其核心代碼如圖3.1所示。
核心代碼通過編譯后,在軟件中點擊RTL Viewers實現(xiàn)綜合仿真,得到頂層模塊RTL視圖如3.2所示:
4.結(jié)論
通過Verilog HDL語言硬件描述語言和Quartus II軟件,完成了交通燈控制系統(tǒng)各個模塊功能的設(shè)計,通過頂層模塊將各個模塊聯(lián)合起來,組成了一個完整的交通燈控制系統(tǒng),解決了傳統(tǒng)設(shè)計方法的弊端,如:開發(fā)周期長,成本高,精確度低和可靠性差等。通過采用FPGA芯片,使得在程序修改和系統(tǒng)維護上十分便捷和高效,對緩解城市交通壓力有著重要的現(xiàn)實意義。
參考文獻
[1]曹瑞.基于EDA技術(shù)進行數(shù)字電路設(shè)計的研究[J].微計算機信息,2007,23(7):273-275.
[2]張立,張光新,柴磊,等.FPGA在多功能計費器系統(tǒng)中的應(yīng)用[J].儀器儀表學(xué)報,2005,26(8):735-737.
[3]夏宇聞.基于verilog HDL的數(shù)字系統(tǒng)設(shè)計入門教程[M].北京航空航天大學(xué)出版社,2008.
[4]吳厚航.深入淺出玩轉(zhuǎn)fpga[M].北京航空航天大學(xué)出版社,2010.
[5]王誠,吳蕾.FPGA設(shè)計的四種常用的思想與技巧[M].電子工程專輯,2004.
作者簡介:趙博玉(1989—),男,山東青島人,中北大學(xué)碩士研究生,研究方向:檢測技術(shù)與自動化裝置。