当前位置:文档之家› 单片机汽车尾灯课程设计报告

单片机汽车尾灯课程设计报告

1 设计内容及其分析1.1 设计的内容用8个发光二极管模拟8个汽车尾灯(左、右各4个,高电平点亮),用四个开关作为左转弯、右转弯、刹车、双闪控制信号(高电平有效)。

当汽车往前行驶时,8灯全灭。

当汽车转弯时(左、右转弯开关不会同时有效),若右转弯,右边4个尾灯从左至右循环点亮,左边4个灯全灭。

若左转弯,左边4个尾灯从右至左循环点亮,右边4个灯全灭。

汽车刹车时(第2优先级),8个灯全亮。

双闪信号有效时(优先级最高)时,8个灯明、暗闪烁。

1.2 设计内容分析当汽车转弯时(左、右转弯开关不会同时有效),若右转弯,右边4个尾灯从左至右循环点亮,左边4个灯全灭。

若左转弯,左边4个尾灯从右至左循环点亮,右边4个灯全灭。

汽车刹车时(第2优先级),8个灯全亮。

双闪信号有效时(优先级最高)时,8个灯明、暗闪烁。

根据以上分析可以画出尾灯和汽车运行关系表如下所示:1.3 EDA简介1.3.1 EDA技术的概念EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

1.3.2 EDA技术的特点利用EDA技术进行电子系统的设计,具有以下几个特点:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。

因此,EDA技术是现代电子设计的发展趋势。

1.3.3 EDA设计流程典型的EDA设计流程如下:1、文本/原理图编辑与修改。

首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。

2、编译。

完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。

3、综合。

将软件设计与硬件的可实现性挂钩,是将软件转化为硬件电路的关键步骤。

4、行为仿真和功能仿真。

利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。

5、适配。

利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线。

适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。

6、功能仿真和时序仿真。

7、下载。

如果以上的所有过程都没有发现问题,就可以将适配器产生的下载文件通过FPGA/CPLD下载电缆载入目标芯片中。

8、硬件仿真与测试。

1.4 硬件描述语言(VHDL)1.4.1 VHDL的介绍VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)主要用于描述数字系统的结构,行为,功能和接口。

除了含有许多具有硬件特征的语句外,VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。

VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。

在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。

这种将设计实体分成内外部分的概念是VHDL系统设计的基本1.4.2 VHDL语言的特点1、用VHDL代码而不是用原理图进行设计,意味着整个电路板的模型及性能可用计算机模拟进行验证。

2、VHDL元件的设计与工艺无关,与工艺独立,方便工艺转换。

3、VHDL支持各种设计方法,自顶向下、自底向上或者混合的都可以。

4、可以进行从系统级到逻辑级的描述,即混合描述。

5、VHDL区别于其他的HDL,已形成标准,其代码在不同的系统中可交换建模。

2 设计的目的及意义2.1 设计的目的其一、设计一个能适应现代汽车智能化发展要求的汽车尾灯控制电路。

改善以前的汽车尾灯控制系统,降低汽车尾灯控制器的生产成本。

其二、学好VHDL这门硬件描述语言,加深对VHDL语言知识的理解和掌握,提高学习能力和创新能力,使自己适应不断发展的21世纪。

2.2 设计的意义随着(EDA)仿真技术的发展,数字系统的设计技术和设计工具发生了深刻的变化。

利用硬件描述语言(VHDL)对数字系统的硬件电路进行描述是EDA的关键技术之一。

VHDL语言是目前主流的硬件描述语言,它具有很强的电路描述和建模能力,具有与具体电路无关和与设计平台无关的特性,在语言易读性和层次化结构方面表现出强大的生命力和应用潜力。

随着人们生活水平的提高,汽车的消费量越来越大。

因为人们也越来越忙,不管是夜晚还是阴雨、大雾等天气原因的影响,人们都开着车在纵横交错的马路上行驶,所以人们对汽车安全行驶的要求也越来越高,汽车尾灯控制系统给大家带来了极大的方便。

汽车尾灯控制系统是随着汽车智能化技术的发展而发展起来的,汽车尾灯一般是用于微处理器的硬件结构构成,正是因为硬件电路的局限性,不但不能随意的更改电路内部功能和性能,而且可靠性得不到保证,因此对汽车尾灯控制系统的发展带来一定的局限性,难以满足现代汽车的智能化发展。

为了提高人们因夜晚或因天气原因在纵横交错的马路上驾驶的安全系数,也是为了减少交通事故的发生。

我们采用了先进的EDA技术,Maxplus Ⅱ工作平台和VHDL语言,设计了一种基于FPGA的汽车尾灯控制系统,并对系统进行了仿真机验证。

用一片FPGA芯片实现了现代汽车智能化的尾灯控制系统。

通过仿真及验证的结果分析,完全适应现代汽车智能化发展要求。

不但简化了以前的汽车尾灯控制系统结构,大大降低了生产成本,而且提高了系统的先进性和可靠性。

能实现控制器的系统编程。

采用这种器件开发的数字系统其升级与改进非常方便。

这一控制电路,结构简单、性能稳定、操作方便、抗干扰能力强。

将它应用于现代汽车,不受黑夜或大雾、阴雨天气因素的影响,可以提高安全行驶,避免交通事故的发生。

真正的让消费者驾驶汽车的方便和安全。

3 设计步骤3.1 总体电路原理框图通过1.2的内容的分析,可以画出汽车尾灯控制电路的总体设计框图如下所示:图3.1 汽车尾灯控制电路设计总体框图3.2 功能表根据设计项目要求和电路原理框图可以画出汽车尾灯控制功能表如下所示:3.3 汽车尾灯控制各组成模块及相应程序代码3.3.1 各组成模块实现的主要功能是通过开关控制从而实现汽车尾灯的点亮方式。

汽车尾灯控制器有4个模块组成,分别为:时钟分频模块、汽车尾灯主控模块,左边灯控制模块和右边灯控制模块,以下介绍各模块的详细设计。

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

图3.2时钟分频模块工作框图时钟分频模块由VHDL程序来实现,下面是其中的一段VHDL代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fp ISPORT ( clk :IN STD_LOGIC;q1:OUT STD_LOGIC);END ENTITY fp;ARCHITECTURE zero OF fp ISSIGNAL temp1: STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNAL temp2: STD_LOGIC;BEGINPROCESS(clk)BEGINIF(clk'EVENT AND clk = '1') THENIF temp1="100110" THEN temp2<=not temp2;temp1<="000000";ELSE temp1<=temp1+1;END IF;END IF;END PROCESS ;q1<=temp2;END ARCHITECTURE zero;3.3.3 汽车尾灯主控模块汽车尾灯主控模块工作框图如图3.3所示。

图3.3 主控模块工作框图汽车尾灯主控模块由VHDL程序来实现,下面是其中的一段VHDL代码:library ieee;use ieee.std_logic_1164.all;entity ctrl isport(left,right,flash,brake:in std_logic;lp,rp,sc,ss:out std_logic);end ctrl;architecture bh of ctrl isbeginprocess(left,right,flash,brake)variable a:std_logic_vector(3 downto 0);begina:=left&right&brake&flash;case a iswhen"0000"=>lp<='0';rp<='0';sc<='0';ss<='0';when"1000"=>lp<='1';rp<='0';sc<='0';ss<='0';when"0100"=>rp<='1';lp<='0';sc<='0';ss<='0';when"0010"=>rp<='0';lp<='0';sc<='1';ss<='0';when others=>lp<='0';rp<='0';sc<='0';ss<='1';end case;end process;end bh;3.3.4左边灯控制模块左边灯控制模块的工作框图如图3.4所示。

图3.4左边灯控制模块的工作框图左边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码:library ieee;use ieee.std_logic_1164.all;entity lc isport(lp,clk,ss,sc:in std_logic;l3,l2,l1,l0:out std_logic);end lc;architecture one of lc isbeginprocess(clk,ss,sc)variable tmp:std_logic_vector(3 downto 0);beginIF clk'EVENT AND clk='1' THENIF ss='1' THEN tmp:=not tmp;ELSIF sc='1' THEN tmp:="1111";--ELSIF clk'EVENT AND clk='1' THENELSIF lp='1' THENIF tmp ="0000" THEN tmp:="0001";ELSE tmp:= tmp (2 DOWNTO 0)&'0';END IF;ELSIF lp='0' THEN tmp:="0000";END IF;END IF;l3<= tmp(3)l2<= tmp(2);l1<= tmp(1);l0<= tmp(0);end process;end one;3.3.5右边灯控制模块右边灯控制模块的工作框图如图3.5所示。

相关主题