基于FPGA的智能交通控制器的建模与仿真

2017-06-01 12:39唐敏大连职业技术学院电气电子工程学院辽宁大连116037
电子测试 2017年6期
关键词:倒计时信号灯时钟

唐敏(大连职业技术学院电气电子工程学院, 辽宁大连,116037)

基于FPGA的智能交通控制器的建模与仿真

唐敏
(大连职业技术学院电气电子工程学院, 辽宁大连,116037)

介绍了一种采用FPGA设计方法进行建模与仿真的智能交通控制器。采用模块化的设计方法,首先,为了满足智能交通控制器的功能需求,分析了各个子模块的建模设计思想,仿真验证子模块的设计正确性,再将各子模块整合成顶层智能交通控制器,通过Modelsim软件仿真测试验证智能交通控制器的控制正确性。该智能交通控制器使用EP3C10E144C8芯片实现。测试表明,该智能交通控制器能实现交通灯信号灯的控制和剩余时间的倒计时显示。

智能交通控制器;FPGA;建模;仿真

0 引言

随着城市轨道交通的发展,智能交通控制器也呈现多功能多样性的特点。

FPGA的设计方法[1],即在可编程逻辑器件内部进行硬件电路和功能的EDA设计,给智能电子产品的设计提供了新的思路。本文采用FPGA设计方法完成智能交通控制器的建模与仿真,芯片是Altera公司的EP3C10E144C8,设计一个具有3种交通信号灯和倒计时显示的十字路口智能交通控制器设计:

(1)十字路口的A、B两个方向各设一组信号灯:绿灯(G)、黄灯(Y)和红灯(R)。

(2)A、B两个方向各设一组倒计时显示器,A方向的绿灯、黄灯和红灯显示时间分别为40s、5s和50s;B方向的绿灯、黄灯和红灯显示时间分别为30s、5s和60s。

(3)具有总体清零功能。计时器由初始状态开始计数,对应状态的LED指示灯点亮。

交通信号灯控制器是典型的数字系统,因为每个方向相对的信号灯状态及倒计时显示完全一致,根据设计要求,交通信号等控制器具有如下功能:

表1 交通信号灯控制器功能表

交通信号灯控制器采用Moore状态机[2]设计,在输入变化时,只有时钟到来时才导致输出的变化,其输出仅为当前状态的函数,与输入信号无关。其结构图如图1所示。

图1 Moore状态机结构图

交通信号灯控制器的状态转换表如表2所示。

表2 交通灯信号灯控制器的状态转换表

从状态转换表可以看出,每个方向的3个信号灯依次顺序点亮,并不断循环。

显示时间为:AG+AY = BR =50s,BG+BY = AR =40s。

当系统总复位时,信号灯全部熄灭。

为了验证智能交通控制器的正确性,本文的设计思路是:首先,建立所需的时钟分频功能子模块、状态转换功能子模块和显示控制功能子模块,建模仿真,验证实现各子模块的功能;然后,再整合建立智能交通控制器,建模仿真验证整体功能;最后,查看交通状态转换情况和倒计时时间,从而验证设计的正确性。

1 智能交通控制器的建模

1.1 智能交通控制器的总体设计

根据交通信号灯控制器功能分析,系统结构图如图2所示。

图2 交通信号灯控制器的系统结构框图

根据图2可以看出,串口通信接口驱动包括3个模块。

(1)时钟分频模块:用于产生1Hz秒计数时钟信号和1KHz的扫描时钟信号。

(2)状态转换模块:用于控制交通信号灯4个状态的变换,包括信号灯和剩余时间的变换。

(3)显示控制模块:用于控制交通信号灯的亮灭,显示剩余时间的个位和十位。

智能交通控制器的I/O端口说明如表3所示。

表3 智能交通控制器的I/O端口说明

1.2 时钟分频子模块的建模

时钟分频子模块的主要功能是:产生1Hz秒计数时钟信号和1KHz的扫描时钟信号。具体模块符号见图3所示。

图3 时钟分频子模块符号

时间分频子模块的I/O说明如表4所示。

表4 时间分频子模块的I/O端口说明

时钟分频子模块建模思想[3]:将系统时钟(20MHz)转换成秒计数时钟(1Hz),就是降低系统时钟,以满足智能交通控制器中倒计时秒计数器的需要。这种转换就是分频器。分频倍数n的计算公式为:

根据已知,秒计数时钟所需要的分频倍数为20×106,对输入时钟每计数n/2(10×106)个时钟周期,输出时钟就进行一次翻转,从而产生秒计数时钟。

扫描时钟的产生原理同秒计数时钟,扫描时钟所需要的分频倍数为20×103,对输入时钟每计数n/2(10×103)个时钟周期,输出时钟就进行一次翻转,从而产生扫描时钟。

根据建模设计思想设计时钟分频子模块,仿真结果具体如图4所示。

图4 时钟分频子模块的仿真结果

在图4所示的时钟分频子模块仿真结果中,clk为系统时钟输入端,设置成1ns。clk1hz为1Hz时钟信号输出端,设置为智能交通控制器倒计时时钟脉冲输出。clk1khz为分1KHz时钟信号输出端,作为数码管动态显示扫描时钟脉冲信号输出。

1.3 状态转换子模块的建模

状态转换子模块的功能是:完成A、B两个方向的4个状态的转换。模块符号具体见图5所示。

图5 状态转换子模块符号

状态转换子模块的I/O说明如表5所示。

表5 状态转换子模块的I/O端口说明

其中,stime[7:4]为剩余时间的十位BCD码,stime[3:0]为剩余时间的个位BCD码;leds[5:3]为第一组信号灯(RYG)控制位,leds[2:0]为第二组信号灯(RYG)控制位。

智能交通控制器采用Moore状态机进行状态转换。Moore状态机的输出只和当前状态有关。在时钟脉冲的有限个门延时后,输出达到稳定。输出会在一个完整的时钟周期内保持稳定值,即使在该时钟内输入信号已发生变化,输出信号也不会发生变化。输入对输出的影响要到下一个时钟周期才能反映出来。把输入和输出分开是Moore状态机的重要特征。

设计状态转换模块时,分2个部分。

(1)状态切换:完成几个状态之间的切换。

(2)状态设置:设置每个状态下输出的变化。

状态转换子模块的仿真结果具体如图6所示。

图6 状态转换子模块的仿真结果

在图6所示的状态转换子模块仿真结果中,当leds信号为001100B时,第一组信号灯为绿灯亮,第二组信号灯为红灯亮,南北方向通行,东西方向禁止。Stime信号为剩余时间BCD码,开始倒计时。

1.4 显示控制子模块的建模

显示控制子模块的功能是:控制AB方向的信号灯以及显示剩余时间。

显示控制子模块符号具体如图7所示。

图7 显示控制子模块符号

显示控制子模块的I/O说明如表6所示。

表6 显示控制子模块的I/O端口说明

其中,ab_leds[5:0]为AB方向的信号灯(RGY)控制位,scan[1:0]为2个数码管的扫描控制位,seg7[6:0]为7段数码管的位段码。stime剩余时间分为十位和个位,采用动态扫描的形式,送至2个数码管显示。

显示控制子模块的建模思想[4]:就是将BCD码转换为7段数码管的位段显示码,以此来显示十进制数字。例如数字1,对应的位段码为06H,即为00000110B。

显示控制子模块的仿真结果具体如图8所示。

图8 显示控制子模块的仿真结果

在图8所示的显示控制子模块仿真结果中,倒计时时钟信号通过clk1hz引脚输入,数码管动态扫描时间通过clk1khz引脚输入,交通信号灯(红黄绿3个信号灯)根据leds引脚输入变化,同时通过stime引脚输入显示对应的倒计时时间,seg7引脚输出相应的数码管位段码,在scan引脚的控制下数码管动态显示倒计时的个位和十位。

2 智能交通控制器的仿真

将时钟分频子模块、状态转换子模块和显示控制子模块整合成智能交通控制器。顶层设计原理图具体如图9所示。

图9 智能交通控制器的顶层设计原理图

图9 中将时钟分频子模块产生的时钟信号输出连接到状态转换子模块和显示控制子模块;将状态转换模块的信号灯控制输出和剩余时间输出连接至显示控制子模块。

图10 智能交通控制器联合仿真

图10 中可以看出,随着状态的转换,交通灯发生变化,不同交通控制状态下的剩余时间也随之变化,并进行倒计时。完成智能交通控制器的设计,满足智能交通控制器的要求。

智能交通控制器所使用的EP3C10E144C8的硬件资源具体如表7所示。

表7 智能交通控制器所使用的硬件资源

从表5中可以看出,使用EP3C10E144C8芯片中很少的硬件资源就可以实现智能交通控制器,借助Quartus设计软件能很好的进行建模与仿真。

3 智能交通控制器的测试

对建模设计完成的智能交通控制器进行控制正确性测试。

顶层设计实体的仿真也可以调用ModelSim仿真工具[5]进行仿真。测试步骤具体如下。

(1)编写智能交通控制器的TestBench测试代码。

(2)在ModelSim工具中查看到添加并编译通过的源文件。

图11 ModelSim中添加源文件

(3)启动仿真,具体查看测试结果。

表8 智能交通控制器测试结果

从测试结果可以看出,结果均正确,控制正确。

(1)A方向绿灯亮,车辆通行,用时40s后黄灯亮,10s后红灯亮,A向车辆停止,共计50s;此时B方向一直红灯亮,禁止车辆通行。

(2)A方向红灯亮,禁止车辆通行,B方向绿灯亮,车辆通行,用时30s后黄灯亮,10s后红灯亮,B向车辆停止,共计40s。

4 结 论

该智能交通控制器采用FPGA的模块化设计思想,先设计时钟分频、状态转换和显示控制3个子模块的模型,然后再将子模块整合至顶层智能交通控制器。通过仿真,子模块功能均正确,整合而成的智能交通控制器动作控制正确,说明智能交通控制器建模正确。

[1] Samir Palnitkar著,夏宇闻等译, Verilog HDL数字设计与综合[M].北京:电子工业出版社,2009.

[2] 孔昕等. 基于Verilog的有限状态机设计与优化[J]. 微电子学与计算机,2010,2(27):180-183.

[3] 任青莲,李东红. 一种基于Verilog代码的任意分数分频器的设计[J]. 山西电子技术,2016,5:20-21.

[4] 邱锋波,贺占庄. 基于FPGA的并行数码管显示控制设计[J].科学技术与工程,2009,12(9):7170-7172.

[5] 赵伟,齐向东. 基于VHDL的数字锁相环设计及Modelsim仿真[J].机械工程与自动化,2013,4(2):57-59.

Modeling and Simulation of Intelligent Traffic Controller Based on FPGA

Tang Min
(Dalian Vocational & Technical College, Dalian Liaoning,116037)

A intelligent traffic controller based on FPGA technology to model and simulate was presented Using the modularization programming method, sub-modules of intelligent traffic controller was analyzed firstly to meet the functional requirements The simulating result shows that the function of sub-module was correct Secondly, all sub-modules was integrated in the top intelligent traffic controller.Using the ModelSim software, the operation correctness was proved by simulating result This driver was realized by EP3C10E144C8 The testing result shows that the functional requirements was realized by the intelligent traffic controller, including the control of traffic lights and thc display of countdown to the remaining time

intelligent traffic controller; FPGA; Model; Simulate

唐敏 (1976—),女,汉族,辽宁大连人,工程师,从事嵌入式软件开发和EDA技术教学和科研工作。

大连职业技术学院校级课题项目 (课题编号:DZ2016B-04)。

猜你喜欢
倒计时信号灯时钟
别样的“时钟”
古代的时钟
交通信号灯
信号灯为什么选这三个颜色?
有趣的时钟
时钟会开“花”
安装在路面的交通信号灯
交通信号灯控制系统设计