汽车尾灯控制器的设计EDA大作业.docx

上传人:b****6 文档编号:6088327 上传时间:2023-01-03 格式:DOCX 页数:11 大小:78.43KB
下载 相关 举报
汽车尾灯控制器的设计EDA大作业.docx_第1页
第1页 / 共11页
汽车尾灯控制器的设计EDA大作业.docx_第2页
第2页 / 共11页
汽车尾灯控制器的设计EDA大作业.docx_第3页
第3页 / 共11页
汽车尾灯控制器的设计EDA大作业.docx_第4页
第4页 / 共11页
汽车尾灯控制器的设计EDA大作业.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

汽车尾灯控制器的设计EDA大作业.docx

《汽车尾灯控制器的设计EDA大作业.docx》由会员分享,可在线阅读,更多相关《汽车尾灯控制器的设计EDA大作业.docx(11页珍藏版)》请在冰豆网上搜索。

汽车尾灯控制器的设计EDA大作业.docx

汽车尾灯控制器的设计EDA大作业

EDA技术课程大作业

 

设计题目:

汽车尾灯控制器的设计

学生姓名:

学号:

专业班级:

 

2012年6月2日

汽车尾灯控制器的设计

1.设计背景和设计方案

1.1设计背景

随着社会的发展,科学技术也在不断的进步,状态机的应用越来越广泛。

现代交通越来越拥挤,安全问题日益突出,在这种情况下汽车尾灯控制器的设计成为解决交通安全问题一种好的途径。

伴随着集成电路和计算机技术的飞速发展,EDA技术应运而生,它是一种高级、快速、有效的电子设计自动化技术。

EDA将大量的电路功能集成到一个芯片中,并且可以由用户自行设计逻辑功能,提高了系统的集成度和可靠性。

运用EDA技术可以方便、快捷设计电路系统。

本次设计就是运用EDA技术,根据状态机原理实现了汽车尾灯常用控制。

1.2设计方案

1.2.1系统设计要求

根据现代交通规则,汽车尾灯控制器应满足以下基本要求:

(1).汽车正常使用是指示灯不亮

(2).汽车右转时,右侧的一盏灯亮

(3).汽车左转时,左侧的一盏灯亮

(4).汽车刹车时,左右两侧的指示灯同时亮

(5).汽车夜间行驶时,左右两侧的指示灯同时一直亮,供照明使用

1.2.2系统组成及原理图

汽车尾灯控制器就是一个状态机的实例。

当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯RD1亮;当汽车向左侧转弯时,汽车左侧的指示灯LD1亮;当汽车刹车时,汽车右侧的指示灯RD2和汽车左侧的指示灯LD2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯RD3和汽车左侧的指示灯LD3同时一直亮。

通过设置系统的输入信号:

系统时钟信号CLK,汽车左转弯控制信号LEFT,汽车右转弯控制信号RIGHT,刹车信号BRAKE,夜间行驶信号NIGHT和系统的输出信号:

汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指

RD1、RD2、RD3实现以上功能。

系统的整体组装设计原理如图1所示。

图1系统的整体组装设计原理

2.方案实施

汽车尾灯控制器有4个模块组成,分别为:

时钟分频模块、汽车尾灯主控模块,左边灯控制模块和右边灯控制模块,以下介绍各模块的详细设计。

2.1时钟分频模块

整个时钟分频模块的工作框图如图2所示。

图2时钟分频模块工作框图

时钟分频模块由VHDL程序来实现,下面是其中的一段VHDL代码:

ARCHITECTUREARTOFSZIS

SIGNALCOUNT:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

PROCESS(CLK)

BEGIN

IFCLK'EVENTANDCLK='1'THEN

COUNT<=COUNT+1;

ENDIF;

ENDPROCESS;

CP<=COUNT(3);

ENDART;

2.2汽车尾灯主控模块

汽车尾灯主控模块工作框图如图3所示。

图3主控模块工作框图

汽车尾灯主控模块由VHDL程序来实现,下面是其中的一段VHDL代码:

ARCHITECTUREARTOFCTRLIS

BEGIN

NIGHT_LED<=NIGHT;

BRAKE_LED<=BAKE;

PROCESS(LEFT,RIGHT)

VARIABLETEMP:

STD_LOGIC_VECTOR(1DOWNTO0);

BEGIN

TEMP:

=LEFT&RIGHT;

CASETEMPIS

WHEN"00"=>LP<='0';RP<='0';LR<='0';

WHEN"01"=>LP<='0';RP<='1';LR<='0';

WHEN"10"=>LP<='1';RP<='0';LR<='0';

WHENOTHERS=>LP<='0';RP<='0';LR<='1';

ENDCASE;

ENDPROCESS;

ENDART;

2.3左边灯控制模块

左边灯控制模块的工作框图如图4所示。

图4左边灯控制模块的工作框图

左边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码:

ARCHITECTUREARTOFLCIS

BEGIN

LEDB<=BRAKE;

LEDN<=NIGHT;

PROCESS(CLK,LP,LR)

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IF(LR='0')THEN

IF(LP='0')THEN

LEDL<='0';

ELSE

LEDL<='1';

ENDIF;

ELSE

LEDL<='0';

ENDIF;

ENDIF;

ENDPROCESS;

ENDART;

2.4右边灯控制模块

右边灯控制模块的工作框图如图5所示。

图5右边灯控制模块的工作框图

右边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码:

ARCHITECTUREARTOFRCIS

BEGIN

LEDB<=BRAKE;

LEDN<=NIGHT;

PROCESS(CLK,RP,LR)

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IF(LR='0')THEN

IF(RP='0')THEN

LEDR<='0';

ELSE

LEDR<='1';

ENDIF;

ELSE

LEDR<='0';

ENDIF;

ENDIF;

ENDPROCESS;

ENDART;

3.结果和结论

3.1分频模块仿真及分析

分频模块由VHDL程序实现后,其仿真图如图6所示。

图6分频模块仿真图

对其仿真图进行仿真分析:

如图所示,首先生成一个600ns的时钟脉冲,通过时钟分频把600ns的脉冲分成一个40ns的脉冲,实现了信号同步。

3.2汽车尾灯主控模块仿真及分析

汽车尾灯主控模块由VHDL程序实现后,其仿真图如图7所示。

图7主控模块时序仿真图

对时序仿真图进行分析:

RIGHT,LEFT,NIGHT,BRAKE为输入信号,RIGHT为1表示右转,LEFT为1表示左转,NIGHT为1表示夜间行路,BRAKE为1表示刹车。

RP,LP,NIGHT_LED,BRAKE_LED为输出信号。

如图所示:

当RIGHT为1时,产生一个RP为1的信号脉冲输出,当LEFT为1时,产生一个LP为1的信号脉冲输出,当NIGHT为1时,产生一个NIGHT_LED为1的信号脉冲输出。

当BRAKE为1时,产生一个BRAKE_LED为1的信号脉冲输出。

3.3左边灯控制模块仿真及分析

左边灯控制模块由VHDL程序实现后,其仿真图如图8所示。

图8左边灯控制模块时序仿真图

对时序仿真图进行分析:

LP,LR,NIGHT,BRAKE为输入信号,LP为1表示左转,LR为1表示右转,NIGHT为1表示夜间行路,BRAKE为1表示刹车。

LEDL,LEDB,LEDN为输出信号,表示汽车左侧的三盏灯。

如图所示:

当LP为1时,LEDL输出为1表示左侧灯亮,当BRAKE为1时,LEDB输出为1表示左侧灯亮,当NIGHT为1时,LEDN输出为1表示左侧灯亮。

当LR为1时,左侧三盏灯输出均为0。

即没有灯亮。

3.4右边灯控制模块仿真及分析

右边灯控制模块由VHDL程序实现后,其仿真图如图9所示。

图9右边灯控制模块时序仿真图

对时序仿真图进行分析:

RP,LR,NIGHT,BRAKE为输入信号,LR为1表示左转,RP为1表示右转,NIGHT为1表示夜间行路,BRAKE为1表示刹车。

LEDR,LEDB,LEDN为输出信号,表示汽车右侧的三盏灯。

如图所示:

当RP为1时,LEDR输出为1表示右侧灯亮,当BRAKE为1时,LEDB输出为1表示右侧灯亮,当NIGHT为1时,LEDN输出为1表示右侧灯亮。

当LR为1时,右侧三盏灯输出均为0。

即没有灯亮。

3.5整个系统仿真及分析

按图1组装系统后的仿真图如图10所示。

图10整个系统仿真图

对时序仿真图进行分析:

RIGHT,LEFT,NIGHT,BRAKE为输入信号,RIGHT为1表示右转,LEFT为1表示左转,NIGHT为1表示夜间行路,BRAKE为1表示刹车。

RD1,RD2,RD3为输出信号,表示汽车右侧的三盏灯。

LD1,LD2,LD3为输出信号,表示汽车左侧的三盏灯。

如图所示:

当RIGHT为1时,RD1输出为1表示右侧灯亮,当LEFT为1时,LD1为输出为1表示左侧灯亮,当NIGHT为1时,LD2,RD2输出均为1,表示左,右两侧各有一盏灯亮。

当BRAKE为1时,LD3,RD3输出均为1,表示左,右两侧各有一盏灯亮。

4.附件

4.1各个模块程序

4.1.1主控模块

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYCTRLIS

PORT(LEFT,RIGHT,BRAKE,NIGHT:

INSTD_LOGIC;

LP,RP,LR,BRAKE_LED,NIGHT_LED:

OUTSTD_LOGIC);

END;

ARCHITECTUREARTOFCTRLIS

BEGIN

NIGHT_LED<=NIGHT;

BRAKE_LED<=BAKE;

PROCESS(LEFT,RIGHT)

VARIABLETEMP:

STD_LOGIC_VECTOR(1DOWNTO0);

BEGIN

TEMP:

=LEFT&RIGHT;

CASETEMPIS

WHEN"00"=>LP<='0';RP<='0';LR<='0';

WHEN"01"=>LP<='0';RP<='1';LR<='0';

WHEN"10"=>LP<='1';RP<='0';LR<='0';

WHENOTHERS=>LP<='0';RP<='0';LR<='1';

ENDCASE;

ENDPROCESS;

ENDART;

4.1.2时钟分频模块

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSZIS

PORT(CLK:

INSTD_LOGIC;

CP:

OUTSTD_LOGIC);

END;

ARCHITECTUREARTOFSZIS

SIGNALCOUNT:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

PROCESS(CLK)

BEGIN

IFCLK'EVENTANDCLK='1'THEN

COUNT<=COUNT+1;

ENDIF;

ENDPROCESS;

CP<=COUNT(3);

ENDART;

4.1.3右边灯控制模块

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYRCIS

PORT(CLK,RP,LR,BRAKE,NIGHT:

INSTD_LOGIC;

LEDR,LEDB,LEDN:

OUTSTD_LOGIC);

END;

ARCHITECTUREARTOFRCIS

BEGIN

LEDB<=BRAKE;

LEDN<=NIGHT;

PROCESS(CLK,RP,LR)

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IF(LR='0')THEN

IF(RP='0')THEN

LEDR<='0';

ELSE

LEDR<='1';

ENDIF;

ELSE

LEDR<='0';

ENDIF;

ENDIF;

ENDPROCESS;

ENDART;

4.1.4左边灯控制模块

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYLCIS

PORT(CLK,LP,LR,BRAKE,NIGHT:

INSTD_LOGIC;

LEDL,LEDB,LEDN:

OUTSTD_LOGIC);

END;

ARCHITECTUREARTOFLCIS

BEGIN

LEDB<=BRAKE;

LEDN<=NIGHT;

PROCESS(CLK,LP,LR)

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IF(LR='0')THEN

IF(LP='0')THEN

LEDL<='0';

ELSE

LEDL<='1';

ENDIF;

ELSE

LEDL<='0';

ENDIF;

ENDIF;

ENDPROCESS;

ENDART;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1