1、第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 6.1 系统设计要求系统设计要求 设计一个由一条主干道和一条支干道的汇合点形成的十字交叉路口的交通灯控制器,具体要求如下:(1)主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。(2)主干道处于常允许通行状态,而支干道有车来才允许通行。第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 (3)当主、支道均有车时,两者交替允许通行,主干道每次放行45 s,支干道每次放行25 s,在每次由亮绿灯变成亮红灯的转换过程中,要亮5 s的黄灯作为过渡,并进行减计时显示。第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析
2、6.2 系统设计方案系统设计方案 交通控制器拟由单片的CPLD/FPGA来实现,经分析设计要求,拟定整个系统由9个单元电路组成,如图6.1所示。第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 图6.1 交通控制器的内部逻辑结构原理图 第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 6.3 主要主要VHDL源程序源程序6.3.1 交通灯控制器JTDKZ的VHDL源程序-JTDKZ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY JTDKZ IS PORT(CLK,SM,SB:IN STD_LOGIC;MR,MY,M
3、G,BR,BY,BG:OUT STD_LOGIC);第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 END ENTITY JTDKZ;ARCHITECTURE ART OF JTDKZ IS TYPE STATE_TYPE IS(A,B,C,D);SIGNAL STATE:STATE_TYPE;BEGIN CNT:PROCESS(CLK)IS VARIABLE S:INTEGER RANGE 0 TO 45;VARIABLE CLR,EN:BIT;BEGIN第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 IF(CLKEVENT AND CLK=1)THEN IF C
4、LR=0THEn S:=0;ELSIF EN=0 THEN S:=S;ELSE S:=S+1;END IF;CASE STATE IS WHEN A=MR=0;MY=0;MG=1;第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 BR=1;BY=0;BG=0;IF(SB AND SM)=1 THEN IF S=45 THEN STATE=B;CLR:=0;EN:=0;ELSE STATE=A;CLR:=1;EN:=1;END IF;ELSIF(SB AND(NOT SM)=1 THEN STATE=B;CLR:=0;EN:=0;ELSE STATEMR=0;MY=1;MG=0;BR
5、1;BY=0;BG=0;IF S=5 THEN STATE=C;CLR:=0;EN:=0;ELSE STATEMR=1;MY=0;MG=0;BR=0;BY=0;BG=1;IF(SM AND SB)=1 THEN IF S=25 THEN STATE=D;CLR:=0;EN:=0;ELSE STATE=C;CLR:=1;EN:=1;END IF;第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 ELSIF SB=0 THEN STATE=D;CLR:=0;EN:=0;ELSE STATEMR=1;MY=0;MG=0;BR=0;BY=1;BG=0;IF S=5 THEN STATE=
6、A;CLR:=0;EN:=0;第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 ELSE STATE=D;CLR:=1;EN:=1;END IF;END CASE;END IF;END PROCESS CNT;END ARCHITECTURE ART;第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 6.3.2 45 s定时单元的VHDL源程序-CNT45S.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT45S IS PORT(SB,CLK,EN
7、45:IN STD_LOGIC;DOUT45M,DOUT45B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 END ENTITY CNT45S;ARCHITECTURE ART OF CNT45S IS SIGNAL CNT6B:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGIN PROCESS(SB,CLK,EN45)IS BEGIN IF SB=0THEN CNT6B=CNT6B-CNT6B-1;ELSIF(CLKEVENT AND CLK=1)THEN IF EN45=1THEN CNT
8、6B=CNT6B+1;第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 ELSIF EN45=0THEN CNT6BDOUT45M=01000101;DOUT45BDOUT45M=01000100;DOUT45BDOUT45M=01000011;DOUT45BDOUT45M=01000010;DOUT45BDOUT45M=01000001;DOUT45BDOUT45M=01000000;DOUT45BDOUT45M=00111001;DOUT45BDOUT45M=00111000;DOUT45BDOUT45M=00110111;DOUT45BDOUT45M=00110110;DOU
9、T45BDOUT45M=00110101;DOUT45BDOUT45M=00110100;DOUT45BDOUT45M=00110011;DOUT45BDOUT45M=00110010;DOUT45BDOUT45M=00110001;DOUT45BDOUT45M=00110000;DOUT45BDOUT45M=00101001;DOUT45BDOUT45M=00101000;DOUT45BDOUT45M=00100111;DOUT45BDOUT45M=00100110;DOUT45BDOUT45M=00100101;DOUT45BDOUT45M=00100100;DOUT45BDOUT45M=
10、00100011;DOUT45BDOUT45M=00100010;DOUT45BDOUT45M=00100001;DOUT45BDOUT45M=00100000;DOUT45BDOUT45M=00011001;DOUT45BDOUT45M=00011000;DOUT45BDOUT45M=00010111;DOUT45BDOUT45M=00010110;DOUT45BDOUT45M=00010101;DOUT45BDOUT45M=00010100;DOUT45BDOUT45M=00010011;DOUT45BDOUT45M=00010010;DOUT45BDOUT45M=00010001;DOU
11、T45BDOUT45M=00010000;DOUT45BDOUT45M=00001001;DOUT45BDOUT45M=00001000;DOUT45BDOUT45M=00000111;DOUT45BDOUT45M=00000110;DOUT45BDOUT45M=00000101;DOUT45BDOUT45M=00000100;DOUT45BDOUT45M=00000011;DOUT45BDOUT45M=00000010;DOUT45BDOUT45M=00000001;DOUT45BDOUT45M=00000000;DOUT45B=00000000;第第6 6章章 交通控制器的设计与分析交通控
12、制器的设计与分析 END CASE;END PROCESS;END ARCHITECTURE ART;第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 6.3.3 5 s定时单元的VHDL源程序-CNT05S.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT05S IS PORT(CLK,EN05M,EN05B:IN STD_LOGIC;DOUT5:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);第第6 6章章 交通控制器的设计与分析交通控制
13、器的设计与分析 END ENTITY CNT05S;ARCHITECTURE ART OF CNT05S IS SIGNAL CNT3B:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN PROCESS(CLK,EN05M,EN05B)IS BEGIN IF(CLKEVENT AND CLK=1)THEN IF EN05M=1 OR EN05B=1 THEN CNT3B=CNT3B+1;第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 ELSE CNT3BDOUT5DOUT5DOUT5DOUT5DOUT5-DOUT5=00000000;END CASE;END
14、PROCESS;END ARCHITECTURE ART;第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 6.3.4 25 s定时单元的VHDL源程序-CNT25S.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT25S IS PORT(SB,SM,CLK,EN25:IN STD_LOGIC;DOUT25M,DOUT25B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 END
15、ENTITY CNT25S;ARCHITECTURE ART OF CNT25S IS SIGNAL CNT5B:STD_LOGIC_VECTOR(4 DOWNTO 0);BEGIN PROCESS(SB,SM,CLK,EN25)IS BEGIN IF SB=0 OR SM=0 THEN CNT5B=CNT5B-CNT5B-1;第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 ELSIF(CLKEVENT AND CLK=1)THEN IF EN25=1 THEN CNT5B=CNT5B+1;ELSIF EN25=0THEN CNT5BDOUT25B=00100101;DOUT25
16、MDOUT25B=00100100;DOUT25MDOUT25B=00100011;DOUT25MDOUT25B=00100010;DOUT25MDOUT25B=00100001;DOUT25MDOUT25B=00100000;DOUT25MDOUT25B=00011001;DOUT25MDOUT25B=00011000;DOUT25MDOUT25B=00010111;DOUT25MDOUT25B=00010110;DOUT25MDOUT25B=00010101;DOUT25MDOUT25B=00010100;DOUT25MDOUT25B=00010011;DOUT25MDOUT25B=000
17、10010;DOUT25MDOUT25B=00010001;DOUT25MDOUT25B=00010000;DOUT25MDOUT25B=00001001;DOUT25MDOUT25B=00001000;DOUT25MDOUT25B=00000111;DOUT25MDOUT25B=00000110;DOUT25MDOUT25B=00000101;DOUT25MDOUT25B=00000100;DOUT25MDOUT25B=00000011;DOUT25MDOUT25B=00000010;DOUT25MDOUT25B=00000001;DOUT25MDOUT25B=00000000;DOUT25
18、M=00000000;第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 END CASE;END PROCESS;END ARCHITECTURE ART;第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 6.3.5 显示控制单元的VHDL源程序-XSKZ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XSKZ IS PORT(EN45,EN25,EN05M,EN05B:IN STD_LOGIC;第第6 6章章 交通控制器的设计与分析交通控制器的设计与
19、分析 AIN45M,AIN45B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);AIN25M,AIN25B,AIN05:IN STD_LOGIC_VECTOR(7 DOWNTO 0);DOUTM,DOUTB:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY XSKZ;ARCHITECTURE ART OF XSKZ IS BEGIN PROCESS(EN45,EN25,EN05M,EN05B)IS BEGIN IF EN45=1THEN 第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 DOUTM=AIN45M(7 DOWNT
20、O 0);DOUTB=AIN45B(7 DOWNTO 0);ELSIF EN05M=1THEN DOUTM=AIN05(7 DOWNTO 0);DOUTB=AIN05(7 DOWNTO 0);ELSIF EN25=1 THEN DOUTM=AIN25M(7 DOWNTO 0);DOUTB=AIN25B(7 DOWNTO 0);ELSIF EN05B=1THEN 第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 DOUTM=AIN05(7 DOWNTO 0);DOUTBDOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=00
21、00000;END CASE;END PROCESS;END ARCHITECTURE ART;第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 6.3.7 系统总体组装电路的VHDL源程序 请读者根据图6.1交通控制器的内部逻辑结构原理图自行完成。第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 6.4 系统仿真系统仿真/硬件验证硬件验证 6.4.1 系统的有关仿真 这里只给出了交通灯控制器的仿真图,如图6.2、图6.3所示。从图6.2和图6.3可知,JTDKZ.VHD的设计是正确的。其他程序请读者自己进行仿真和分析。第第6 6章章 交通控制器的设计与分析交通控制器的
22、设计与分析 图6.2 JTDKZ.VHD的仿真图(全局结果)第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 图6.3 JTDKZ.VHD的仿真图(局部结果)第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 6.4.2 系统的硬件验证 请读者根据自己所拥有的实验设备自行完成。第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 6.5 设计技巧分析设计技巧分析 (1)在交通灯控制电路JTDKZ的设计中,利用状态机非常简洁地实现了对主、支干道指示灯的控制和有关单元电路的使能控制。(2)在定时单元CNT45S和CNT25S的设计中,根据设计要求需进行减计数,但本设计
23、中却使用的是加法计数,只是在将计数结果转换成两位BCD码时,将计数的最小值对应转换成显示定时的最大值,计数值加1时,转换的显示值减1,依此类推。第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 6.6 系统扩展思路系统扩展思路 (1)本交通控制器是一个已知主、支干道通行时间的系统,为了满足主、支干道通行时间变化的需要,我们可设计一个可预置主、支干道通行时间的交通控制器。(2)设计系统工作外围电路:系统用方波信号源,直流工作电源。第第6 6章章 交通控制器的设计与分析交通控制器的设计与分析 (3)若为毕业设计,可要求设计调试程序、外围电路等,还可要求设计制作整个系统,包括PCB的制作。






