EDA汽车尾灯控制器设计.docx

上传人:b****7 文档编号:25795984 上传时间:2023-06-14 格式:DOCX 页数:17 大小:228.83KB
下载 相关 举报
EDA汽车尾灯控制器设计.docx_第1页
第1页 / 共17页
EDA汽车尾灯控制器设计.docx_第2页
第2页 / 共17页
EDA汽车尾灯控制器设计.docx_第3页
第3页 / 共17页
EDA汽车尾灯控制器设计.docx_第4页
第4页 / 共17页
EDA汽车尾灯控制器设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

EDA汽车尾灯控制器设计.docx

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

EDA汽车尾灯控制器设计.docx

EDA汽车尾灯控制器设计

课程设计

 

课程名称:

EDA课程设计

设计题目:

汽车尾灯控制器的设计

院系:

电子工程系

专业:

应用电子技术

年级:

2009级

姓名:

牛媛

指导教师:

潘晶莹

学号:

09201207

西安航空职业技术学院

2011年06月10日

 

课程设计任务书

专业应用电子技术姓名牛媛学号09201207

开题日期:

2011年06月日完成日期:

2010年11月日

题目汽车尾灯控制器设计

一、设计的目的

本次设计的目的就是通过实践深入理解状态机原理,了解EDA技术并掌握VHDL硬件描述语言的设计方法和思想。

通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识和基本单元电路的综合设计应用。

通过对实用汽车尾灯控制器的设计,巩固和综合运用所学知识,提高分析、解决EDA技术实际问题的独立工作能力。

二、设计的内容及要求

1、设计内容

设计一个汽车尾灯控制器,利用EDA软件(MAX+plusII)进行编译及仿真,设计输入可采用VHDL硬件描述语言输入法和原理图输入法,通过仿真查看设计的可行性,因条件有限,只能进行简单的仿真实验。

2、设计要求

(1)汽车尾部左右两侧各有多盏指示灯。

(2)汽车正常行驶时指示灯都不亮。

(3)汽车右转弯时,右侧的一盏指示灯亮。

(4)汽车左转弯时,左侧的一盏指示灯亮。

(5)汽车刹车时,左右两侧的一盏指示灯同时亮。

(6)汽车在夜间行驶时,左右两侧有指示灯同时一直亮,供照明使用。

三、指导教师评语

四、成绩

指导教师(签章)

 

 

汽车尾灯控制器设计

1.引言

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

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

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

本文基于EDA系统,在MAX+plusII软件平台上,完成了汽车尾灯电路的设计。

采用VHDL硬件描述语言描述汽车尾灯电路,完成对电路的功能仿真。

在设计过程中,重点探讨了汽车尾灯电路的设计思路和功能模块划分,通过分析仿真波形表明设计的汽车尾灯电路完成了预期的功能。

2.汽车尾灯控制器的设计过程

2.1设计内容

设计一个汽车尾灯控制器,利用EDA软件(MAX+plusII)进行编译及仿真,设计输入可采用VHDL硬件描述语言输入法和原理图输入法,通过仿真查看设计的可行性,因条件有限,只能进行简单的仿真实验。

2.2设计要求

(1)汽车尾部左右两侧各有多盏指示灯。

(2)汽车正常行驶时指示灯都不亮。

(3)汽车右转弯时,右侧的一盏指示灯亮。

(4)汽车左转弯时,左侧的一盏指示灯亮。

(5)汽车刹车时,左右两侧的一盏指示灯同时亮。

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

2.3汽车尾灯控制器的工作原理

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

当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯ldright亮;当汽车向左侧转弯时,汽车左侧的指示灯ldleft亮;当汽车刹车时,汽车右侧的指示灯ldbrake1和汽车左侧的指示灯ldbrake2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯ldnight1和汽车左侧的指示灯ldnight2同时一直亮;当于大雾天行驶时右侧指示灯ldfoggy1和左侧指示灯ldfoggy2同时亮。

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

系统时钟信号clk,汽车左转弯控制信号left,汽车右转弯控制信号right,刹车信号brake,夜间行驶信号night,雾灯信号foggy和系统的输出信号:

汽车左侧4盏指示灯ldleft,dbrake1,dnight1,dfoggy1和汽车右侧4盏指示灯ldright,ldbrake2,ldnight2,ldfoggy2实现以上功能。

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

汽车行驶信号

主控模块

左灯控制模块

右灯控制模块

显示

时钟

系统设计整体框图

2.4方案选择与论证

根据系统设计要求,系统设计采用自顶向下的设计方法,顶层设计采用原理图设计方案,它是由时钟分频模块、汽车尾灯主控模块、左边灯控制模块、右边灯控制模块四部分组成。

2.5系统设计详述

系统的输入信号包括:

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

系统的输入信号包括:

汽车左侧4盏指示灯LLED1,LLED2,LLED3,LLED4和汽车右侧4盏指示灯RLED1,RLED2,RLED3,RLED4。

当汽车正常行驶时所有的指示灯都不亮,当汽车向左转时,汽车左边的指示灯LLED1亮,当汽车向右转时,汽车右边的指示灯RLED1亮,当汽车刹车时,左右的LLED2、RLED2亮,当汽车夜间行驶时,汽车左右的LLED3、LLED4、RLED3、RLED4一直亮。

2.6各组成模块原理及程序

2.6.1汽车尾灯主控模块

数据入口:

RIGHT:

右转信号;

LEFT:

左转信号;

BRAKE:

刹车信号;

NIGHT:

夜间行驶信号;

数据出口:

LP:

左侧灯控制信号;

RP:

右侧灯控制信号;

LR:

错误控制信号;

BRAKE_LED:

刹车控制信号;

NIGHT_LED:

夜间行驶控制信号;

VHDL程序(CTRL.VHD)

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYCTRLIS

PORT(LEFT,RIGHT,BRAKE,NIGHT:

INSTD_LOGIC;

LP,RP,LR,BRAKE_LED,NIGHT_LED:

OUTSTD_LOGIC);

ENDENTITYCTRL;

ARCHITECTUREARTOFCTRLIS

BEGIN

NIGHT_LED<=NIGHT;

BRAKE_LED<=BRAKE;

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;

ENDARCHITECTUREART;

功能:

该段程序用于对汽车尾灯进行整体控制,当输入为左转信号时,输出左侧灯控制信号;当输入为右转信号时,输出右侧灯控制信号;当同时输入LEFT和RIGHT信号时,输出错误控制信号。

当输入为刹车信号时,输出刹车控制信号;当输入为夜间行驶信号时,输出为夜间行驶控制信号。

 

2.6.2左边灯控制模块

数据入口:

CLK:

时钟控制信号;

LP:

左侧灯控制信号;

LR:

错误控制信号;

BRAKE:

刹车控制信号;

NIGHT:

夜间行驶控制信号;

数据入口:

LEDL:

左侧LD1灯控制信号;

LEDB:

左侧LD2灯控制信号;

LEDN:

左侧LD3灯控制信号;

VHDL程序(LC.VHD)

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYLCIS

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

INSTD_LOGIC;

LEDL,LEDB,LEDN:

OUTSTD_LOGIC);

ENDENTITYLC;

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;

ENDARCHITECTUREART;

功能:

本程序用于控制左侧灯的亮、灭和闪烁情况,当时钟上升沿信号和左侧灯控制信号或刹车控制信号或夜间行驶信号同时出现时,左侧相应的灯亮或出现闪烁。

当错误控制信号出现时,LD1灯不亮。

 

2.6.3右边灯控制模块

数据入口:

CLK:

时钟控制信号;

RP:

右侧灯控制信号;

LR:

错误控制信号;

BRAKE:

刹车控制信号;

NIGHT:

夜间行驶控制信号;

数据出口:

LEDR:

右侧RD1灯控制信号;

LEDB:

右侧RD2灯控制信号;

LEDN:

右侧RD3灯控制信号;

VHDL程序(RC.VHD)

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYRCIS

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

INSTD_LOGIC;

LEDR,LEDB,LEDN:

OUTSTD_LOGIC);

ENDENTITYRC;

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;

ENDARCHITECTUREART;

功能:

本描述用于控制右侧灯的亮、灭和闪烁情况,当时钟上升沿信号和右侧灯控制信号或刹车控制信号或夜间行驶信号同时出现时,右侧相应的灯亮或出现闪烁。

当错误控制信号出现时,RD1灯不亮。

2.6.4时钟分频模块

VHDL程序(SZ.VHD)

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSZIS

PORT(CLK:

INSTD_LOGIC;--时钟输入

CP:

OUTSTD_LOGIC);

ENDENTITYSZ;

ARCHITECTUREARTOFSZIS

SIGNALCOUNT:

STD_LOGIC_VECTOR(7DOWNTO0);--定义八位标准逻辑位矢量数据类型

BEGIN

PROCESS(CLK)

BEGIN

IFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿

COUNT<=COUNT+1;

ENDIF;

ENDPROCESS;

CP<=COUNT(3);--输出第五位

ENDARCHITECTUREART;

功能:

这块的功能是对左右两边的LLED1、RLED1的闪烁时间间隔,以CLK为输入信号,CP为输出信号,在程序中定义一个八位节点信号COUNT来放计数值,当CLK的上升沿到来时就开始计数,最后将COUNT(3)给CP,实现对CLK的八分频。

再将CP的电平信号分别和LEDL、LEDR电平与,最后用输出的电平来控制汽车左右的LLED1、RLED1,实现左右转的指示功能。

2.6.5原理图

顶层文件VHDL程序(tp.VHD)

Libraryieee;

Useieee.std_logic_1164.all;

Useieee.std_logic_unsigned.all;

Entitytpis

Port(clk:

instd_logic;

Left:

instd_logic;

Right:

instd_logic;

Brake:

instd_logic;

Night:

instd_logic;

Ld1,ld2,ld3:

outstd_logic;

Rd1,rd2,rd3:

outstd_logic);

End;

Architecturebhoftpis

Componentszis

Port(clk:

instd_logic;

Cp:

outstd_logic);

Endcomponent;

Componentctrlis

Port(left,right,brake,night:

instd_logic;

Lp,rp,lr,brake_led,night_led:

outstd_logic);

Endcomponent;

Componentlcis

Port(clk,lp,lr,brake,night:

instd_logic;

Ledl,ledb,ledn:

outstd_logic);

Endcomponent;

Componentrcis

Port(clk,rp,lr,brake,night:

instd_logic;

Ledr,ledb,ledn:

outstd_logic);

Endcomponent;

Signaltmp0,tmp1,tmp2,tmp3,tmp4:

std_logic;

Signalerr0,err1,err2,err3,err4,err5:

std_logic;

signalbm:

std_logic;

Begin

U1:

szportmap(clk,bm);

U2:

ctrlportmap(left,right,brake,night,tmp0,tmp1,tmp2,tmp3,tmp4);

U3:

lcportmap(clk,tmp0,tmp2,tmp3,tmp4,err0,err1,err2);

U4:

rcportmap(clk,tmp1,tmp2,tmp3,tmp4,err3,err4,err5);

Ld1<=err0andbm;

Ld2<=err1;

Ld3<=err2;

Rd1<=err3andbm;

Rd2<=err4;

Rd3<=err5;

End;

 

2.6.6整体仿真波形图

分析整体仿真图:

输入刹车信号一直为高电平,输出LD2灯和RD2灯也为长亮;左转信号为高电平时,LD1灯闪烁,右转信号为高电平时,RD1灯闪烁;当左转信号和右转信号同时为高电平时,LD1灯和RD1灯都不亮;夜间行驶信号为高电平时,LD3灯和RD3灯同时亮。

波形仿真结果满足预期的功能。

 

3.心得体会

通过本次课程设计,我们对EDA技术有了更深的了解,初步学会了采用自顶向下的系统设计方法设计系统,并熟练掌握了利用VHDL语言进行简单的电路模块设计。

此外,我们还进一步熟悉了MAX+PLUSII这款软件的使用,深刻体会到了用软件实现硬件设计的便捷与优越。

本次课程设计不仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,分析问题和解决问题的能力。

它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。

本设计采用自顶向下设计方法,底层为一些具有独立功能的小模块,由小组人员分工完成,即一人完成一个到多个模块,最后再合到一起完成顶层文件的设计。

从局部到整体,不仅使得系统设计的思路清晰明了,减少了错误的产生,更方便了程序的调试以及系统功能的扩充。

在设计过程中,能与同学相互交流讨论,分工合作,不仅降低了设计难度,缩短了设计周期,更是进一步培养了我们的团队合作精神。

在此次设计过程中,不仅要求我们掌握扎实的理论知识,分析问题能从根本原理出发,联系实际解决问题,还要求我们要有耐心,毅力及细心。

稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查更要求我们要有足够的耐心,反复调试,直到程序顺利通过。

这次设计中我也遇到了一些问题,但通过相关资料的查询,在老师的指导和同学们的帮助下,都顺利得以解决。

这些经历使我得以积累了一定的经验,相信对以后学习设计工作也会有一定的帮助!

 

4.参考文献

【1】邹彦、庄严等编.EDA技术与数字系统设计.北京:

电子工业出版社,2008

【2】张庆双主编.实用电子电路200例.北京:

机械工业出版社,2005

【3】赵世强、许杰等编.电子电路EDA技术.西安:

西安电子科技大学出版社,2000

【4】清华大学电子学教研组编.余孟尝主编.数字电子技术.第三版.北京:

高等教育出版社,2006

【5】黄仁欣.EDA技术实用教程.北京:

清华大学出版社,2006

【6】江国强.EDA技术与应用.北京:

电子工业出版社,2004

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

当前位置:首页 > 成人教育 > 远程网络教育

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

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