汽车尾灯控制器的设计与实现Word下载.docx
- 文档编号:7682041
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:17
- 大小:88.51KB
汽车尾灯控制器的设计与实现Word下载.docx
《汽车尾灯控制器的设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《汽车尾灯控制器的设计与实现Word下载.docx(17页珍藏版)》请在冰点文库上搜索。
通过输入系统时钟信号和相关的汽车控制信号,汽车尾灯将正确显示当前汽车的控制状态。
2EDA、VHDL简介
2.1EDA技术
EDA技术的发展概况
EDA(ElectronicDesignAutomation),即电子设计自动化,是指利用计算机完成电子系统的设计。
EDA技术是以计算机和微电子技术为先导的,汇集了计算机图形学、拓扑学、逻辑学、微电子工艺与结构学和计算数学等多种计算机应用学科最新成果的先进技术。
EDA技术以计算机为工具,代替人完成数字系统的逻辑综合、布局布线和设计仿真等工作。
设计人员只需要完成对系统功能的描述,就可以由计算机软件进行处理,得到设计结果,而且修改设计如同修改软件一样方便,可以极大地提高设计效率。
从20世纪60年代中期开始,人们就不断开发出各种计算机辅助设计工具来帮助设计人员进行电子系统的设计。
电路理论和半导体工艺水平的提高,对EDA技术的发展起到了巨大的作用,使EDA作用范围从PCB板设计延伸到电子线路和集成电路设计,直至整个系统的设计,也使IC芯片系统应用、电路制作和整个电子生产过程都集成在一个环境之中。
根据电子设计技术的发展特征,EDA技术发展大致分为三个阶段。
1.CAD阶段
第一阶段的特点是一些单独的工具软件,主要有PCB布线设计、电路模拟、逻辑模拟、以及版图的绘制等,通过计算机的使用,从而将设计人员从大量繁重重复的计算和绘图工作中解脱出来。
20世纪80年代,随着集成电路规模的增大,EDA技术有了较快的发展。
许多软件公司等进入市场,开始供应带电路图编辑工具和逻辑模拟工具的EDA软件。
这个时期的软件产品主要针对产品开发,按照设计、分析、生产和测试等多个阶段,不同阶段分别使用不同的软件包,每个软件只能完成其中一项工作,通过顺序循环使用这些软件,可完成设计的全过程。
2.CAE阶段
这个阶段在集成电路与电子设计方法学以及设计工具集成化方面取得了许多成果。
各种设计工具,如原理图输入、编译与连接、逻辑模拟、测试码生成、版图自动布局已齐全。
由于采用了统一数据管理技术,因而能够将各个工具集成为一个CAE系统。
按照设计方法学制定的设计流程,可以实现从设计输入到版图输出的全程设计自动化。
这个阶段主要采用基于单元库的半定制设计方法,采用门阵列与标准单元设计的各种ASIC得到了极大的发展,将集成电路工业推入了ASIC时代。
3.EDA阶段
20世纪90年代以来,微电子技术以惊人的速度发展,其工艺水平达到了深亚微米级,此阶段主要出现了以高级语言描述、系统仿真和综合技术为特征的第三代EDA技术,不仅极大地提高了系统的设计效率,而且使设计人员摆脱了大量的辅助性及基础性工作,将精力集中于创造性的方案与概念的构思上。
它的特征为:
第一,高层综合的理论与方法取得较大进展,将EDA设计层次由RT级提高到了系统级(又称行为级),并划分为逻辑综合和测试综合。
第二,采用硬件描述语言HDL来描述10万门以上的设计,并形成了VHDL和VerilogHDL两种标准硬件描述语言。
第三,采用平面规划技术对逻辑综合和物理版图设计进行联合管理,作到在逻辑综合早期设计阶段就考虑到物理设计信息的影响。
第四,可测性设计。
第五,为带有嵌入IP模块ASIC设计提供软硬件协同系统设计工具。
EDA技术的概念
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的特点
利用EDA技术进行电子系统的设计,具有以下几个特点:
①用软件的方式设计硬件;
②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;
③设计过程中可用有关软件进行各种仿真;
④系统可现场编程,在线升级;
⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。
因此,EDA技术是现代电子设计的发展趋势。
EDA设计流程
典型的EDA设计流程如下:
1、文本/原理图编辑与修改。
首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。
2、编译。
完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。
3、综合。
将软件设计与硬件的可实现性挂钩,是将软件转化为硬件电路的关键步骤。
4、行为仿真和功能仿真。
利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。
5、适配。
利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线。
适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。
6、功能仿真和时序仿真。
7、下载。
如果以上的所有过程都没有发现问题,就可以将适配器产生的下载文件通过FPGA/CPLD下载电缆载入目标芯片中。
8、硬件仿真与测试。
2.2硬件描述语言(VHDL)
VHDL简介
VHDL(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL语言的发展背景
硬件描述语言的发展至今已经有几十年的历史,并已成功应用到系统的仿真、验证和设计综合等方面。
其中比较著名的的有VHDL语言、AHDL语言、VerilogHDL语言等。
而在七八十年代初期VHDL语言是为美国国防部工作的。
它是以ADA语言为根源,就像将被看到的整体结构的VHDL和其他的VHDL报表。
1986年,有人提议VHDL语言作为IEEE标准。
它经历了一些修改意见和修改,直至1987年12月获得通过,成为IEEE1076至1987标准。
它的出现为电子设计自动化的普及和推广奠定了坚实的基础。
之后IEEE对87版本进行了修订,于1933年推出了较为完善的93版本(被定为ANSI/IEEEstd1076-1993标准),使得VHDL语言的编程更加灵活方便。
此后,越来越多的人开始使用VHDL语言进行数字电路系统的设计。
而VHDL语言有不同于软件编程语言,在编程结构和规范上有自己的特点,在此,本文就从简单介绍VHDL语言基础开始。
VHDL语言的基本结构
一个完整的VHDL[3]语言程序通常包括实体(Entity)、构造体(Architecture)、配置(Configuration)、包集合(Package)和库(Library)5个部分。
前4种是可以分别编译的源设计单元。
下面分别介绍:
实体:
实体是用于描述所设计电路系统的外部接口信号,系统的输入输出端口及属性都是在实体中定义的。
一个实体是设计中最基本的。
最上层水平的设计是最高层的实体。
如果设计分层次,那么最高层的描述将有低层描述的说明附在它里面。
构造体:
构造体用于描述系统内部的结构和行为,系统要实现的功能都是在构造体内用语言进行描述的。
所有实体可以有一个构造体的说明来模拟。
该构造体描述的行为实体。
一个单一的实体可以有多个构造体。
一个构造体可能是行为而另一个可能是一个结构描述的设计。
配置:
配置用于从库中选取所需单元来组成系统设计的不同版本。
配置声明是用来约束一个组件实例的一双实体架构。
一个配置可以被视为像一个零件清单进行设计。
它描述的使用的每一个实体的行为,就像零件列表说明哪一部分用于每一部分的设计。
包集合:
包集合存放各种设计模块都能共享的数据类型、常数和子程序等。
包集合是一个收集常用数据类型和子程序中使用的设计。
想想包含使用的工具建立的设计的一个工具箱作为一个包。
库:
库存放已经编译的实体、构造体、包集合和配置。
库可由用户生成或者是由ASIC芯片制造商提供,以便在设计中为大家共享。
这种功能可以通过特定语句来实现。
除了以上介绍的各种术语,其它术语还有:
驱动程序:
这是一个信号上的一个源。
如果一个信号有两个来源,那么当两个来源是由两个驱动程序来起作用的。
总线:
这个词,“巴士”通常使我想起一组信号或某个特定的通信方式,用于设计的硬件。
在VHDL语言,总线是一种特殊的信号,表明可能由驱动程序来完成。
属性:
一个关于VHDL对象连接到VHDL的物体或预先确定的数据的属性数据。
例如,电流驱动能力的一个缓冲区或最高工作温度的装置。
通用:
泛指是VHDL语言传递信息实体参数的任期。
例如,如果一个实体是一个门级模型的上升和下降延迟,上升和下降延误的值才能通过成为实体与仿制。
进程:
一个进程是执行的VHDL中的一个基本单位。
一切行动,是在模拟VHDL描述分为单个或多个进程。
在VHDL语言程序中,最重要的就是实体和构造体部分。
它们是一个具体设计的核心。
如果说实体是系统和外部交流的桥梁,那么构造体就是处理内外交流的信号加工厂。
在构造体中各种信号协调工作,最后得到所需的输出,传送到输出端口和外部进行交流。
下面具体说明实体和构造体。
VHDL语言的特点
1.用VHDL代码而不是用原理图进行设计,意味着整个电路板的模型及性能可用计算机模拟进行验证。
2.VHDL元件的设计与工艺无关,与工艺独立,方便工艺转换。
3.VHDL支持各种设计方法,自顶向下、自底向上或者混合的都可以。
4.可以进行从系统级到逻辑级的描述,即混合描述。
5.VHDL区别于其他的HDL,已形成标准,其代码在不同的系统中可交换建模。
3汽车尾灯控制器的设计过程
3.1系统需求分析
根据现代交通规则,汽车尾灯控制器应满足以下基本要求:
1.汽车尾部左右两侧各有三盏指示灯
2.汽车正常使用是指示灯不亮
3.汽车右转时,右侧的一盏灯亮
4.汽车左转时,左侧的一盏灯亮
5.汽车刹车时,左右两侧的指示灯同时亮
6.汽车夜间行驶时,左右两侧的指示灯同时一直亮,供照明使用
3.2汽车尾灯控制器的工作原理
汽车尾灯控制器就是一个状态机的实例。
当汽车在白天正常行驶时指示灯不亮;
当汽车右转行驶时,汽车的右侧指示灯RD1亮;
当汽车左转行驶时,汽车的左侧指示灯LD1亮;
当汽车刹车时,汽车的右侧指示灯RD2和左侧LD2同时亮;
当汽车在夜间行驶时,汽车右侧指示灯RD3和汽车左侧的指示灯LD3同时一直亮。
通过设置系统的输入信号:
系统时钟信号CLK,汽车左转弯控制信号LEFT,汽车右转弯控制信号RIGHT,刹车信号BRAKE,夜间行驶信号NIGHT;
系统的输出信号包括汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指示灯RD1、RD2、RD3。
通过汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指示灯RD1、RD2、RD3来实现汽车左转、右转、刹车等功能。
系统的整体组装设计原理如图3.1所示。
图3.1系统的整体组装设计原理
3.3各组成模块原理及程序
汽车灯控制器有4个模块组成,分别为:
时钟分频模块、汽车尾灯主控模块,左边灯控制模块和右边灯控制模块,以下介绍各模块的详细设计。
时钟分频模块
整个时钟分频模块的工作框图如图3.2所示。
图3.2时钟分频模块工作框图
时钟分频模块由VHDL程序来实现,下面是其中的一段VHDL代码:
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;
汽车尾灯主控模块
汽车尾灯主控模块工作框图如图3.3所示。
LEFTLP
RIGHTRP
BRAKELR
NIGHTBRAKE_LED
NIGHT_LED
CTRL
.
图3.3主控模块工作框图
汽车尾灯主控模块由VHDL程序来实现,下面是其中的一段VHDL代码:
ENTITYCTRLIS
PORT(LEFT,RIGHT,BRAKE,NIGHT:
INSTD_LOGIC;
LP,RP,LR,BRAKE_LED,NIGHT_LED:
ARCHITECTUREARTOFCTRLIS
BEGIN
NIGHT_LED<
=NIGHT;
BRAKE_LED<
=BAKE;
PROCESS(LEFT,RIGHT)
VARIABLETEMP:
STD_LOGIC_VECTOR(1DOWNTO0);
TEMP:
=LEFT&
RIGHT;
CASETEMPIS
WHEN"
00"
=>
LP<
='
0'
;
RP<
LR<
01"
10"
WHENOTHERS=>
ENDCASE;
左边灯控制模块
左边灯控制模块的工作框图如图3.4所示。
图3.4左边灯控制模块的工作框图
左边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码:
ENTITYLCIS
PORT(CLK,LP,LR,BRAKE,NIGHT:
LEDL,LEDB,LEDN:
OUTSTD_LOGIC);
ARCHITECTUREARTOFLCIS
LEDB<
=BRAKE;
LEDN<
PROCESS(CLK,LP,LR)
THEN
IF(LR='
)THEN
IF(LP='
LEDL<
ELSE
LEDL<
ENDPROCESS;
右边灯控制模块
右边灯控制模块的工作框图如图3.5所示。
图3.5右边灯控制模块的工作框图
右边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码:
ENTITYRCIS
PORT(CLK,RP,LR,BRAKE,NIGHT:
LEDR,LEDB,LEDN:
ARCHITECTUREARTOFRCIS
PROCESS(CLK,RP,LR)
IF(LR='
IF(RP='
LEDR<
='
4系统仿真
4.1分频模块仿真及分析
分频模块由VHDL程序实现后,其仿真图如图4.1所示。
图4.1分频模块仿真图
对其仿真图进行仿真分析:
如图所示,首先生成一个600ns的时钟脉冲,通过时钟分频把600ns的脉冲分成一个40ns的脉冲,实现了信号同步。
4.2汽车尾灯主控模块仿真及分析
汽车尾灯主控模块由VHDL程序实现后,其仿真图如图4.2所示。
图4.2主控模块时序仿真图
对时序仿真图进行分析:
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的信号脉冲输出。
4.3左边灯控制模块仿真及分析
左边灯控制模块由VHDL程序实现后,其仿真图如图4.3所示。
图4.3左边灯控制模块时序仿真图
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。
即没有灯亮。
4.4右边灯控制模块仿真及分析
右边灯控制模块由VHDL程序实现后,其仿真图如图4.4所示。
图4.4右边灯控制模块时序仿真图
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。
4.5整个系统仿真及分析
按图3.1组装系统后的仿真图如图4.5所示。
图4.5整个系统仿真图
RD1,RD2,RD3为输出信号,表示汽车右侧的三盏灯。
LD1,LD2,LD3为输出信号,表示汽车左侧的三盏灯。
当RIGHT为1时,RD1输出为1表示右侧灯亮,当LEFT为1时,LD1为输出为1表示左侧灯亮,当NIGHT为1时,LD2,RD2输出均为1,表示左,右两侧各有一盏灯亮。
当BRAKE为1时,LD3,RD3输出均为1,表示左,右两侧各有一盏灯亮。
结束语
通过两星期的紧张工作,最后完成了我的设计任务——汽车尾灯控制器的设计。
通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性。
本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。
它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。
希望学校以后多安排一些类似的实践环节,让同学们学以致用。
在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车 尾灯 控制器 设计 实现
![提示](https://static.bingdoc.com/images/bang_tan.gif)