4_3交通控制器的设计与分析剖析

上传人:今*** 文档编号:106769385 上传时间:2019-10-16 格式:PPT 页数:47 大小:586.50KB
返回 下载 相关 举报
4_3交通控制器的设计与分析剖析_第1页
第1页 / 共47页
4_3交通控制器的设计与分析剖析_第2页
第2页 / 共47页
4_3交通控制器的设计与分析剖析_第3页
第3页 / 共47页
4_3交通控制器的设计与分析剖析_第4页
第4页 / 共47页
4_3交通控制器的设计与分析剖析_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《4_3交通控制器的设计与分析剖析》由会员分享,可在线阅读,更多相关《4_3交通控制器的设计与分析剖析(47页珍藏版)》请在金锄头文库上搜索。

1、4.3 交通控制器的设计与分析,4.3.1 系统设计要求 4.3.2 系统设计方案 4.3.4 主要VHDL源程序 4.3.4 系统仿真/硬件验证 4.3.5 设计技巧分析 4.3.6 系统扩展思路,4.3.1 系统设计要求,设计一个由一条主干道和一条支干道的汇合点形成的十字交叉路口的交通灯控制器,具体要求如下: (1) 主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。 (2) 主干道处于常允许通行状态,而支干道有车来才允许通行。,(3) 当主、支道均有车时,两者交替允许通行,主干道每次放行45 s,支干道每次放行25 s,在每次由亮绿灯变成亮红灯的转换过程中,要亮5 s的黄灯作为过渡,

2、并进行减计时显示。,4.3.2 系统设计方案,交通控制器拟由单片的CPLD/FPGA来实现,经分析设计要求,拟定整个系统由9个单元电路组成,如图4.17所示。,图4.17 交通控制器的内部逻辑结构原理图,4.3.3 主要VHDL源程序,4.3.3.1 交通灯控制器JTDKZ的VHDL源程序 -JTDKZ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY JTDKZ IS PORT(CLK,SM,SB:IN STD_LOGIC; MR,MY,MG,BR,BY,BG: OUT STD_LOGIC);,END ENTITY JTDKZ; AR

3、CHITECTURE ART OF JTDKZ IS TYPE STATE_TYPE IS(A,B,C,D); SIGNAL STATE: STATE_TYPE; BEGIN CNT:PROCESS(CLK) VARIABLE S:INTEGER RANGE 0 TO 45; VARIABLE CLR,EN:BIT; BEGIN,IF(CLKEVENT AND CLK=1)THEN IF CLR=0 THEN 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;,BR=1;

4、 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 STATE=A; CLR:=1; EN:=1; END IF;,WHEN B=MR=0; MY=1; MG=0; BR=1; BY=0; BG=0; IF S=5 THEN STATE=C;CLR:=0; EN:=0; ELSE STATE=B; CLR:=1; EN

5、:=1; END IF;,WHEN C=MR=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;,ELSIF SB=0 THEN STATEMR=1; MY=0; MG=0; BR=0; BY=1; BG=0; IF S=5 THEN STATE=A;CLR:=0; EN:=0;,ELSE STATE=D; CLR:=1; EN:=1; END IF; END CASE; END IF; EN

6、D PROCESS CNT; END ARCHITECTURE ART;,4.3.3.2 45 s定时单元的VHDL源程序 -CNT45S.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT45S IS PORT(SB,CLK,EN45:IN STD_LOGIC; DOUT45M,DOUT45B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);,END ENTITY CNT45S; ARCHITECTURE ART OF CNT45S IS SIG

7、NAL CNT6B: STD_LOGIC_VECTOR(5 DOWNTO 0); BEGIN PROCESS(SB,CLK,EN45) BEGIN IF SB=0THEN CNT6B=CNT6B-CNT6B-1; ELSIF(CLKEVENT AND CLK= 1)THEN IF EN45=1THEN CNT6B=CNT6B+1;,ELSIF EN45=0THEN CNT6B=CNT6B-CNT6B-1; END IF; END IF; END PROCESS; PROCESS(CNT6B) BEGIN CASE CNT6B IS,WHEN “000000“=DOUT45MDOUT45MDOU

8、T45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45M=“00110101“;DOUT45B=“01000000“;,WHEN “001011“=DOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45M=“00100011“; DOUT45B=“00101000“;,WHEN “010111“=DOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45M

9、DOUT45MDOUT45MDOUT45M=“00010001“; DOUT45B=“00010110“;,WHEN “100011“=DOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45M=“00000000“; DOUT45B=“00000000“;,END CASE; END PROCESS; END ARCHITECTURE ART;,4.3.3.3 5 s定时单元的VHDL源程序 -CNT05S.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL

10、; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT05S IS PORT(CLK,EN05M,EN05B:IN STD_LOGIC; DOUT5: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END ENTITY CNT05S;,ARCHITECTURE ART OF CNT05S IS SIGNAL CNT3B: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN PROCESS(CLK,EN05M,EN05B) BEGIN IF(CLKEVENT AND CLK= 1)THEN IF EN05M=1 OR

11、EN05B=1 THEN CNT3B=CNT3B+1;,ELSE CNT3BDOUT5=“00000101“;,WHEN “001“=DOUT5DOUT5DOUT5DOUT5DOUT5=“00000000“; END CASE; END PROCESS; END ARCHITECTURE ART;,4.3.3.4 25 s定时单元的VHDL源程序 -CNT25S.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT25S IS PORT(SB,SM,CLK,EN25:

12、IN STD_LOGIC; DOUT25M,DOUT25B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END ENTITY CNT25S;,ARCHITECTURE ART OF CNT25S IS SIGNAL CNT5B: STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCESS(SB,SM,CLK,EN25) BEGIN IF SB=0 OR SM=0 THEN CNT5B=CNT5B-CNT5B-1;,ELSIF(CLKEVENT AND CLK= 1)THEN IF EN25=1 THEN CNT5B=CNT5B+1; ELSI

13、F EN25=0THEN CNT5B=CNT5B-CNT5B-1; END IF; END IF; END PROCESS; PROCESS(CNT5B) BEGIN CASE CNT5B IS,WHEN “00000“=DOUT25BDOUT25BDOUT25BDOUT25BDOUT25BDOUT25BDOUT25BDOUT25BDOUT25BDOUT25BDOUT25BDOUT25B=“00010100“; DOUT25M=“00011001“;,WHEN “01100“=DOUT25BDOUT25BDOUT25BDOUT25BDOUT25BDOUT25BDOUT25BDOUT25BDOU

14、T25BDOUT25BDOUT25BDOUT25BDOUT25BDOUT25B=“00000000“; DOUT25M=“00000000“;,END CASE; END PROCESS; END ARCHITECTURE ART;,4.3.3.5 显示控制单元的VHDL源程序 -XSKZ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY XSKZ IS PORT(EN45,EN25,EN05M,EN05B:IN STD_LOGIC;,AIN45M,AIN45B: IN

15、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) BEGIN IF EN45=1THEN,DOUTM=AIN45M(7 DOWNTO 0); DOUTB=AIN45B(7 DOWNTO 0); ELSIF EN05M=1TH

16、EN 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,DOUTM=AIN05(7 DOWNTO 0); DOUTB=AIN05(7 DOWNTO 0); END IF; END PROCESS; END ARCHITECTURE ART;,4.3.3.6 显示译码器的VHDL源程序 -YMQ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY Y

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号