赵博玉 沈小林
【摘要】伴随着中国经济的快速发展,城市规模越来越大,机动车辆越来越多,给城市交通带来了巨大压力。而传统交通灯控制系统是通过采用中小规模集成电路,或者是采用单片机和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—),男,山东青岛人,中北大学硕士研究生,研究方向:检测技术与自动化装置。