钱虹凌
(山西大同大学教学实验与实训中心, 山西 大同 037003)
EDA技术是现代电子工程领域中一门较新的技术,他是在计算机及其软件平台上开发的系统设计的软硬件工具[1],基于该系统的EDA软件QuartusII,以及在此基础上的VHDL语言,采用的是层次化的设计方法。算法状态机图(ASM图,Algorithmic StateMachine Chart)是一种描述数字系统控制算法的流程图,有了ASM图,就很容易写出相应的VHDL设计文本,再将其下载到CPLD器件,就可实现该数字系统的功能[2]。
交通灯信号控制器主要用于主干道m与支干道f公路的交叉路口,如图1所示,两个路口都配有主传感和支传感以检测有无车辆通行。要求应优先保证主干道的畅通。因此,平时处于“主干道绿灯,支道红灯”状态,只有在支道有车辆要穿行主干道时,才将交通灯切向“主干道红灯,支道绿灯”,一旦支道无车辆通过时,交通灯又回到“主干道绿灯,支道红灯”的状态。
图1 交通灯示意图
交通灯的电路逻辑如图2所示,整个系统包含有5个单元电路。其中,交通灯控制器JTDKZ模块:根据主干道和支干道传感器信号SM、SB以及时钟信号CLK,发出主干道和支干道的指示灯控制信号MR、MY、MG、BR、BY、BG(其中,MR、MY、MG分别表示主干道红灯、黄灯和绿灯;BR、BY、BG分别表示支干道红灯、黄灯和绿灯),同时向各定时单元CNT45S、CNT25S及CNT05S发出使能端控制信号EN1、EN2、EN3、EN4;45S 定时单元 CNT45S、25S 定时单元CNT25S、5S定时单元CNT05S:根据SM、SB、CLK及JTDKZ发出的有关使能控制信号EN1、EN2、EN3、EN4,按要求进行定时,并将其输出传送至显示控制单元XSKZ;显示控制单元XSKZ:根据JTDKZ模块发出的有关使能端控制信号EN1、EN2、EN3及EN4 选择各定时单元 CNT45S、CNT25S、CNT05S 的输出传送至各显示译码器。
图2 交通灯逻辑电路图
下页图3和图4为系统JTDKZ部分程序及说明[3-4]。其中,A状态为主干道绿灯亮(即为 MR<=’0’,MY<=’0’,MG<=’1’)支干道红灯亮(即为 BR<=’1’,BY<=’0’,BG<=’0’),当两个道都有车,又采到“19 s标志位”信号,则为B状态,且清零和停止计数,否则继续A状态计数;B状态为主干道黄灯亮(即为MR<=’0’,MY<=’1’,MG<=’0’),支干道红灯亮(即为 BR<=’1’,BY<=’0’,BG<=’0’);C 状态为主干道红灯亮(即为 MR<=’1’,MY<=’0’,MG<=’0’),支干道绿灯亮(即为 BR<=’0’,BY<=’0’,BG<=’1’);D 状态为主干道红灯亮 (即为 MR<=’1’,MY<=’0’,MG<=’0’),支干道黄灯亮(即为 BR<=’0’,BY<=’1’,BG<=’0’)。
图3 系统JTDKZ部分程序及说明1
图4 系统JTDKZ部分程序及说明2
图5 交通灯控制系统ASM图
图6 程序编译过程图
交通灯控制系统ASM如图5所示,由此即可编写出VHDL文本如图6所示。
编译后,系统的功能完全合乎预定的要求。
该系统在电子系统的开发平台上,缩短了周期,减少了工序,达到了预期的开发设计效果。