3 系统软件设计及实现
3.1 顶层设计
根据交通灯控制系统的要求,我们将主控电路分为分频器、信号控制器两个模块,在isplever开发平台上,分别编译这两个模块的VHDL程序,然后用原理图输入法做出项层设计模块(见图3),其中输入的信号有16MHz的基准时钟脉冲、设定值输入及复位信号;输出信号包括两个方向的绿灯、黄灯、红灯控制信号,倒计时计数器的十位、个位的8421BCD码信号。
3.2 分频器模块
分频器模块是对输入16MHz的脉冲进行分频,把这个固定频率的时钟脉冲通过分频转化为低频率的脉冲,得到的1Hz信号用作控制器的时钟信号。图4为分频器模块的框图。下面为分频主要程序:
3.3 控制器模块
控制器模块的功能是控制信号灯的亮灭和数码管的显示。对于控制器模块,其输入信号为1Hz的方波信号、复位信号、黄灯和东西方向红灯和南北方向红灯时间设定值。输出信号包括东西方向和南北方向绿灯、黄灯、红灯控制信号。图5为控制器模块的框图。控制器模块程序
图中:cp、reset分别为时钟脉冲和复位输入信号。yellow_1,yellow_0,ew_red_l,ew_red_0,sn_red_1,sn_red_0分别为黄灯和东西方向红灯和南北方向红灯可调输入变量。
r_ew,y_ew,g_ew,r_8n,y_sn,g_sn分别为东西方向和南北方向的红绿灯控制信号。
qhew,qlew,qhsn,qlsn则是东西方向和南北方向的红绿灯倒数计时显示信号。
控制器模块工作流程:
先由外部开关控制可调的南北方向红灯、东西方向红灯和黄灯时间的高位和低位。 (设南北方向红灯通行时间为X、东西方向红灯通行时间为Y、黄灯时间通行时间为Z,一个总周期的时间为X+Y)
首先东西方向通行,东西方向绿灯亮,南北方向红灯亮,且两个方向上的倒数计时显示器由X向下作减法计时。当倒计时显示器减法计时到Z时,东西方向黄灯亮,南北方向继续红灯。当两个方向的的倒计时显示器减法计时到1,然后由1变为Y后,转为南北方向通行。
南北方向通行:东西方向红灯亮,南北方向绿灯亮,且两个方向上的倒计时显示器由Y向下作减法计时。当倒计时显示器减法计时到z时,南北方向黄灯亮,东西方向继续红灯。当两个方向的的倒计时显示器减法计时到1,然后由1变为X后,转为东西方向通行。如此交替运行。