趙博玉 沈小林

【摘要】伴隨著中國經濟的快速發展,城市規模越來越大,機動車輛越來越多,給城市交通帶來了巨大壓力。而傳統交通燈控制系統是通過采用中小規模集成電路,或者是采用單片機和PLC等控制芯片進行設計,從而存在控制精度低、電路設計復雜、系統維護困難、成本居高不下等問題。本文采用FPGA的cyclone II芯片,用Verilog HDL硬件描述語言,通過Quartus II軟件進行綜合仿真,對各功能模塊進行設計,然后通過連線組合各底層模塊來實現頂層模塊設計。
【關鍵詞】FPGA;交通燈控制系統;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.引言
伴隨著中國經濟飛速發展,城鎮化水平越來越高,城市規模越來越大,機動車輛越來越多,給城市交通帶來了巨大壓力,因此交通燈控制系統的作用顯得十分重要。交通信號燈控制系統是一個典型的純數字系統[1],傳統交通燈控制系統大都通過中小規模集成電路,或者是采用單片機和PLC控制芯片進行設計,從而存在控制精度低、電路設計復雜、系統維護困難、成本居高不下等問題。采用超大規模可編程器件FPGA實現,可降低設計成本,縮短設計周期,保證設計過程的正確性,為數字系統的設計帶來了極大的靈活性[2]。FPGA采用了邏輯單元陣列LCA這樣一個新概念(由可編程的與陣列和固定的或陣列組成),其內部包括可配置邏輯模塊CLB、輸出輸入模塊IOB和內部連線三個部分[3]。FPGA由于其并行工作機制的原理,所以其運行速度非常快,在低功耗和小體積上也有很大的優勢。因此,FPGA適應于交通燈控制系統的應用要求,對緩解城市交通有重要的現實意義。
圖2.1 模塊設計框圖
圖3.1 Quarts II中頂層模塊的核心代碼
圖3.2 頂層模塊RTL視圖
2.系統設計思想
本文通過采用FPGA實現交通燈控制系統,用Verilog HDL語言實現低級建模的思想[4],從而實現所設想的交通燈控制要求和剩余倒計時時間顯示。通過QuartusII軟件進行綜合編譯,生成RTL視圖和Technology Map視圖用來實現表達設計構想。
本設計采用模塊化層次設計[5],遵循自上而下的設計理念(Top-Down),先設計出頂層模塊,通過設計出頂層模塊實現設計構想,接著分層次的引出各個子模塊,包括:分頻模塊,控制模塊及計時模塊,數字取位模塊,SMG加碼顯示模塊,每個子模塊執行不同的功能,通過內部連線相互作用,最終實現系統設計。模塊設計框圖如圖2.1所示。
3.模塊設計
3.1 分頻模塊
系統芯片采用Alter公司cycloneII芯片,型號為EP2C8Q208C,頻率為20MHz,時鐘周期為T=50ns,而本次設計需要的頻率為1Hz,即時鐘周期為1s。因此需要對cycloneII芯片自帶的頻率進行相應倍數的分頻。要得到1s的時鐘周期,就需要N=1s/T個點。
3.2 控制模塊及計數模塊
控制模塊的主要功能是控制LED綠黃紅三色燈的亮滅情況,另外還通過計數模塊控制LED綠黃紅三色燈在數碼管中的亮滅時間。
3.3 數字取位模塊
該模塊的設計原理其實很簡單,就是利用最基本的數學運算符“%”和“/”來取得綠黃紅三色燈顯示時間的十位和個位,其中利用運算符“%”來取得十位數,利用運算符“/”來取得個位數。因為最高只能獲得十位取位,所以輸入數的范圍是00~99。
3.4 SMG加碼顯示模塊
該模塊的主要更能使譯碼,因為該顯示模塊采用8段數碼管顯示模塊,所以要經過將由二進制組成的數字“轉換”成SMG碼,即:
根據數字取位模塊獲得的十位和個位數,轉換成SMG碼,在8段數碼管中顯示出倒計時時間。
3.5 頂層模塊
頂層模塊的核心功能是通過將前面的分頻模塊,控制模塊,計數模塊,十位取位模塊,SMG加碼顯示模塊例化,將前面的模塊聯合起來,組成一個系統,在Quartus II軟件中編寫Verilog HDL語言,其核心代碼如圖3.1所示。
核心代碼通過編譯后,在軟件中點擊RTL Viewers實現綜合仿真,得到頂層模塊RTL視圖如3.2所示:
4.結論
通過Verilog HDL語言硬件描述語言和Quartus II軟件,完成了交通燈控制系統各個模塊功能的設計,通過頂層模塊將各個模塊聯合起來,組成了一個完整的交通燈控制系統,解決了傳統設計方法的弊端,如:開發周期長,成本高,精確度低和可靠性差等。通過采用FPGA芯片,使得在程序修改和系統維護上十分便捷和高效,對緩解城市交通壓力有著重要的現實意義。
參考文獻
[1]曹瑞.基于EDA技術進行數字電路設計的研究[J].微計算機信息,2007,23(7):273-275.
[2]張立,張光新,柴磊,等.FPGA在多功能計費器系統中的應用[J].儀器儀表學報,2005,26(8):735-737.
[3]夏宇聞.基于verilog HDL的數字系統設計入門教程[M].北京航空航天大學出版社,2008.
[4]吳厚航.深入淺出玩轉fpga[M].北京航空航天大學出版社,2010.
[5]王誠,吳蕾.FPGA設計的四種常用的思想與技巧[M].電子工程專輯,2004.
作者簡介:趙博玉(1989—),男,山東青島人,中北大學碩士研究生,研究方向:檢測技術與自動化裝置。