您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > EDA汽车尾灯控制器设计
-1-课程名称:EDA课程设计设计题目:汽车尾灯控制器的设计院系:电气工程系专业:电子信息工程年级:2007级姓名:梁晓指导教师:许金福学号:20077823西南交通大学峨眉校区2010年10月日-2-课程设计任务书专业电子信息工程姓名梁晓学号20077823开题日期:2010年10月日完成日期:2010年11月日题目汽车尾灯控制器设计一、设计的目的本次设计的目的就是通过实践深入理解状态机原理,了解EDA技术并掌握VHDL硬件描述语言的设计方法和思想。通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识和基本单元电路的综合设计应用。通过对实用汽车尾灯控制器的设计,巩固和综合运用所学知识,提高分析、解决EDA技术实际问题的独立工作能力。二、设计的内容及要求1、设计内容设计一个汽车尾灯控制器,利用EDA软件(MAX+plusII)进行编译及仿真,设计输入可采用VHDL硬件描述语言输入法和原理图输入法,通过仿真查看设计的可行性,因条件有限,只能进行简单的仿真实验。2、设计要求(1)汽车尾部左右两侧各有多盏指示灯。(2)汽车正常行驶时指示灯都不亮。(3)汽车右转弯时,右侧的一盏指示灯亮。(4)汽车左转弯时,左侧的一盏指示灯亮。(5)汽车刹车时,左右两侧的一盏指示灯同时亮。(6)汽车在夜间行驶时,左右两侧有指示灯同时一直亮,供照明使用。三、指导教师评语四、成绩指导教师(签章)年月日-3-汽车尾灯控制器设计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-车左侧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汽车尾灯主控模块汽车行驶信号主控模块左灯控制模块右灯控制模块显示时钟系统设计整体框图-5-数据入口:RIGHT:右转信号;LEFT:左转信号;BRAKE:刹车信号;NIGHT:夜间行驶信号;数据出口:LP:左侧灯控制信号;RP:右侧灯控制信号;LR:错误控制信号;BRAKE_LED:刹车控制信号;NIGHT_LED:夜间行驶控制信号;VHDL程序(CTRL.VHD)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYCTRLISPORT(LEFT,RIGHT,BRAKE,NIGHT:INSTD_LOGIC;LP,RP,LR,BRAKE_LED,NIGHT_LED:OUTSTD_LOGIC);ENDENTITYCTRL;ARCHITECTUREARTOFCTRLISBEGINNIGHT_LED=NIGHT;BRAKE_LED=BRAKE;PROCESS(LEFT,RIGHT)VARIABLETEMP:STD_LOGIC_VECTOR(1DOWNTO0);BEGINTEMP:=LEFT&RIGHT;CASETEMPISWHEN00=LP='0';RP='0';LR='0';--当汽车直行时,左右灯都不亮WHEN01=LP='0';RP='1';LR='0';;--当汽车右拐时,右拐指示灯亮WHEN10=LP='1';RP='0';LR='0';--当汽车左拐时,左指示灯亮WHENOTHERS=LP='0';RP='0';LR='1';--当汽车刹车时,左右灯都亮ENDCASE;ENDPROCESS;ENDARCHITECTUREART;功能:该段程序用于对汽车尾灯进行整体控制,当输入为左转信号时,输出左侧灯控制信号;-6-当输入为右转信号时,输出右侧灯控制信号;当同时输入LEFT和RIGHT信号时,输出错误控制信号。当输入为刹车信号时,输出刹车控制信号;当输入为夜间行驶信号时,输出为夜间行驶控制信号。2.6.2左边灯控制模块数据入口:CLK:时钟控制信号;LP:左侧灯控制信号;LR:错误控制信号;BRAKE:刹车控制信号;NIGHT:夜间行驶控制信号;-7-数据入口:LEDL:左侧LD1灯控制信号;LEDB:左侧LD2灯控制信号;LEDN:左侧LD3灯控制信号;VHDL程序(LC.VHD)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYLCISPORT(CLK,LP,LR,BRAKE,NIGHT:INSTD_LOGIC;LEDL,LEDB,LEDN:OUTSTD_LOGIC);ENDENTITYLC;ARCHITECTUREARTOFLCISBEGINLEDB=BRAKE;LEDN=NIGHT;PROCESS(CLK,LP,LR)BEGINIFCLK'EVENTANDCLK='1'THEN--时钟上升沿有效IF(LR='0')THEN--没有刹车信号时IF(LP='0')THEN--没有左拐信号时LEDL='0';--左信号灯不亮ELSE--相反情况LEDL='1';ENDIF;ELSELEDL='0';ENDIF;ENDIF;ENDPROCESS;ENDARCHITECTUREART;功能:本程序用于控制左侧灯的亮、灭和闪烁情况,当时钟上升沿信号和左侧灯控制信号或刹车控制信号或夜间行驶信号同时出现时,左侧相应的灯亮或出现闪烁。当错误控制信号出现时,LD1灯不亮。-8-2.6.3右边灯控制模块数据入口:CLK:时钟控制信号;RP:右侧灯控制信号;LR:错误控制信号;BRAKE:刹车控制信号;NIGHT:夜间行驶控制信号;数据出口:LEDR:右侧RD1灯控制信号;LEDB:右侧RD2灯控制信号;LEDN:右侧RD3灯控制信号;VHDL程序(RC.VHD)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;-9-ENTITYRCISPORT(CLK,RP,LR,BRAKE,NIGHT:INSTD_LOGIC;LEDR,LEDB,LEDN:OUTSTD_LOGIC);ENDENTITYRC;ARCHITECTUREARTOFRCISBEGINLEDB=BRAKE;LEDN=NIGHT;PROCESS(CLK,RP,LR)BEGINIFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿IF(LR='0')THENIF(RP='0')THENLEDR='0';ELSELEDR='1';ENDIF;ELSELEDR='0';ENDIF;ENDIF;ENDPROCESS;ENDARCHITECTUREART;功能:本描述用于控制右侧灯的亮、灭和闪烁情况,当时钟上升沿信号和右侧灯控制信号或刹车控制信号或夜间行驶信号同时出现时,右侧相应的灯亮或出现闪烁。当错误控制信号出现时,RD1灯不亮。-10-2.6.4时钟分频模块VHDL程序(SZ.VHD)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSZISPORT(CLK:INSTD_LOGIC;--时钟输入CP:OUTSTD_LOGIC);ENDENTITYSZ;ARCHITECTUREARTOFSZISSIGNALCOUNT:STD_LOGIC_VECTOR(7DOWNTO0);--定义八位标准逻辑位矢量数据类型BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿COUNT=COUNT+1;ENDIF;ENDPROCESS;CP=COUNT(3);--输出第五位ENDARCHITECTUREART;-11-功能:这块的功能是对左右两边的LLED1、RLED1的闪烁时间间隔,以CLK为输入信号,CP为输出信号,在程序中定义一个八位节点信号COUNT来放计数值,当CLK的上升沿到来时就开始计数,最后将COUNT(3)给CP,实现对CLK的八分频。再将CP的电平信号分别和LEDL、LEDR电平与,最后用输出的电平来控制汽车左右的LLED1、RLED1,实现左右转的指示功能。2.6.5原理图VCCCLKINPUTVCCLEFTINPUTVCCBRAKEINPUTVCCNIGHTINPUTVCCRIGHTINPUTLD1OUTPUTLD2OUTPUTLD3OUTPUTRD1OUTPUTRD2OUTPUTRD3OUTPUTAND2instAND2inst1LEFTRIGHTBRAKENIGHTLPRPLRBRAKE_LEDNIGHT_LEDCTRLinst12CLKCPSZinst13CLKRPLRBRAKENIGHTLEDRLEDBLEDNRCinst14CLKLPLRBRAKENIGHTLEDLLEDBLEDNLCinst15顶层文件VHDL程序(tp.VHD)Libraryieee;Useieee.std_logic_1164.all;Useieee.std_logic_unsigned.all;-12-EntitytpisPort(clk:instd_logic;Left:instd_logic;Right:i
本文标题:EDA汽车尾灯控制器设计
链接地址:https://www.777doc.com/doc-7247832 .html