课程设计Ⅱ摘要正文
汽车尾灯控制器的设计与实现
(陕西理工学院电信工程系通信083班,陕西 汉中 723003)
指导教师:侯宝生
[摘 要] 本课题主要是基于可编程逻辑器件,使用硬件描述语言VHDL。系统设计采用自顶向下的设计方法,顶层设计采用原理图设计方式,它由汽车尾灯主控模块,左边灯控制模块和右边灯控制模块三部分组成。最后,使用MAX+plusII仿真软件对每个模块和主程序分别进行了结果仿真,并对仿真出来的结果作了分析。实验通过发光二极管模拟实现汽车尾灯来实现汽车在行驶时候的四种情况:汽车尾灯全熄灭,汽车左转弯,汽车右转弯,汽车尾灯不停闪烁。
[关 键 词] VHDL;汽车尾灯;MAX+plusII
Car taillight controller design and implementation
(Grade08,Class3,Major of Communication Engineering,Dept. of E.I.of Shaanxi University
of Technology, Hanzhong 723003,China)
Tutor: Hou Baosheng
[Abstract]This issue is mainly based on programmable logic devices, hardware description language VHDL. Top-down system design using the design method, top-level design using schematic design approach, which consists of car taillights main control module, the left and right lamp light control module control module consists of three parts. Finally, the use of MAX + plusII simulation software for each module and the main results of simulation were performed, and analyzed the result of the simulation. Experimental simulation of vehicle through the light-emitting diode taillights to achieve a moving car when the four cases: the whole automotive tail lights out, cars turning left, turning right car, car tail lights flashing.
[Key words]:VHDL,Automobile rear light, MAX+plusII
目 录
1.绪论 .................................................................. 4 1.1课题背景 ........................................................... 4
1.1.1引言 ........................................................... 4 1.1.2设计意义 ....................................................... 4 1.1.3设计目的 ....................................................... 4 1.1.4设计内容 ....................................................... 4 1.2 EDA及VHDL介绍 .................................................... 5 1.2.1 EDA技术概念 ................................................... 5 1.2.2 EDA技术特点 ................................................... 5 1.2.3 EDA设计流程 ................................................... 5 1.2.4 VHDL简介 ...................................................... 6 1.2.5 VHDL的特点 .................................................... 6 2.设计内容 ............................................................. 7 2.1汽车尾灯控制器设计内容 ............................................. 7 2.2汽车尾灯控制器设计要求 ............................................. 7 2.3汽车尾灯控制器设计方案 ............................................. 7 2.4汽车尾灯控制器工作原理 ............................................. 7 2.5汽车尾灯控制器各组成模块原理及程序 ................................. 8 3.程序调试和运行结果说明 ............................................... 11 3.1仿真波形结果与分析 ................................................ 11 3.2电路布局布线 ...................................................... 12 3.3电路下载与测试 .................................................... 12 3.4硬件测试具体结果 .................................................. 13 3.5调试问题和解决 .................................................... 14 结 论 ................................................................. 14 致 谢 ................................................................. 16 参 考 文 献 ............................................................ 17 附 录A ................................................ 错误!未定义书签。 附 录B ................................................ 错误!未定义书签。
1.绪论
1.1课题背景
1.1.1引言
随着社会的发展,汽车越来越被人们所需要,而因此引发的一系列的问题。例如,转弯时候时常引发突然地交通事故。如果我们在汽车转弯时候可以通过尾灯状态的显示变化提前提醒司机,这样就可以提前预防和避免交通事故的发生。由于现代交通越来越拥挤,安全日益突出,在这种情况下汽车尾灯控制器的设计成为解决交通安全问题一种好的途径。本课程设计根据汽车尾灯状态的显示和汽车运行状态的关系,分析设计电路。 1.1.2设计意义
汽车尾灯是汽车的重要部件之一,它在交通安全中有很重要的地位。本次设计的汽车尾灯控制器,实现较简单的逻辑功能。通过学习的VHDL语言结合电子电路的设计理论联系实际,掌握所学的课程知识和基本单元电路的综合设计应用,并巩固所学知识,提高分析,解决EDA的单独工作能力。 1.1.3设计目的
1.理解和掌握课程中有关的基本概念,程序设计思想和方法; 2.培养综合应用所学知识完成课题的能力;
3.掌握从文献,科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力;
4.更加熟练的掌握MAX+plusII软件的应用。 1.1.4设计内容
根据设计原理,利用VHDL设计汽车尾灯控制器的三个模块,再用EDA MAX+plusII软件进行仿真验证。汽车尾灯控制器的三个模块分别为主控模块,左灯控制模块及右灯控制模块。将各个模块组合起来就形成了汽车尾灯控制器,然后通过输入脉冲信号及相关的汽车控制信号,汽车尾灯才正确显示当前的控制状态。
1.2 EDA及VHDL介绍
1.2.1 EDA技术概念
电子设计自动化(EDA,Electronic Design Automation)技术是一种以计算机作为工作平台,以EDA软件工具为开发环境,以硬件描述语言和电路图描述为设计入口,以可编程逻辑器件为实验载体,以ASIC (Application Specific Integrated Circuits)、SOC( System On Chip) 和SOPC( System On Programmable Chip)嵌入式系统为设计目标,以数字系统设计为应用方向的电子产品自动化设计技术。它是融合了电子技术、计算机技术、信息处理技术、智能化技术等最新成果而开发的高新技术,是现代电子系统设计、制造不可缺少的技术。EDA技术涉及面广,包含描述语言、软件、硬件等多方面知识。 1.2.2 EDA技术特点
应用EDA技术进行电子系统的设计,具有以下特点: 1. 用软件的方式设计硬件;
2. 用软件方式的系统到硬件系统的转换时由有关的开发软件自动完成; 3. 设计过程可用有关软件进行各种仿真; 4. 系统可现场编程,在线升级;
5. 整个系统可集成在一个芯片上,体积小,功耗低,可靠性高。因此EDA技术是现代电子设计的发展趋势。 1.2.3 EDA设计流程
典型的EDA设计流程如下:
1、文本/原理图编辑与修改。首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。
2、编译。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。
3、综合。将软件设计与硬件的可实现性挂钩,是将软件转化为硬件电路的关键步骤。
4、行为仿真和功能仿真。利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。
5、适配。利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线。适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。 6、 功能仿真和时序仿真。
7、下载。如果以上的所有过程都没有发现问题,就可以将适配器产生的下载文件通过FPGA/CPLD下载电缆载入目标芯片中。
8、硬件仿真与测试。
1.2.4 VHDL简介
硬件描述语言(HDL)是一种用于进行电子系统硬件设计的计算机高级语言,它采用软件的设计方法描述电子系统的逻辑功能,电路结构和连接形式。硬件描述语言是EDA技术的重要组成部分,是EDA设计中很重要的软件工具。VHDL即是高速集成电路硬件描述语言,是作为电子设计主流硬件的描述语言。它具有很强的电路描述和建模能力,能从多层次对数字系统进行建模和描述,从而大大简化了,硬件设计任务,提高设计可靠性。 1.2.5 VHDL的特点
应用进行电子系统设计有以下的特点:
1. VHDL的宽范围描述能力是4它成为高层次设计的核心,将设计人员的工作重心提高到了系统功能实现与调试,只要花较少精力用于物理实现;
2. VHDL可以用简介明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且便于设计结果交流,保持和重用;
3. VHDL的设计不依赖特定的器件,方便了工艺的转换;
4. VHDL是以标准语言,为众多EDA厂商支持,因此移植性好。
2.设计内容
2.1汽车尾灯控制器设计内容
设计一个汽车尾灯控制器,利用EDA软件MAX+plusII进行编译和仿真,设计采用VHDL硬件描述语言和原理图输入,通过仿真验证其可行性,然后下载测试。 2.2汽车尾灯控制器设计要求
1.当汽车往前行驶时(此时两个开关都未接通),6盏灯全灭; 2.当汽车右转弯(即右转开关接通),右边3盏尾灯从左至右顺序亮灭,左边3盏灯全灭;
3.当汽车左转弯(即左转开关接通),右边3盏尾灯从右至左顺序亮灭,右边3盏灯全灭;
4.当左右两个开关同时接通时,6盏灯同时亮灭闪烁。 2.3汽车尾灯控制器设计方案
方案一:
根据系统设计要求,采用自顶向下设计方法,顶层设计采用原理设计,它由主控模块,左灯控制模块和右灯控制模块三部分组成,是采用可完全独立于目标器件芯片物理结构的硬件语言。 方案二:
采用传统的自底向上的设计方法。该根据系统对硬件的要求,写出规格书,画出控制流程图。根据这些,合理规划功能模块,画出系统的功能框图。对各个功能模块进行细化和电路设,在进行调试完成后,将各个模块电路连接起来进行系统的调试,最后完成整个系统的硬件测试。 2.4汽车尾灯控制器工作原理
当汽车向前行驶是左右六盏灯都灭;当汽车向左转弯时,汽车左三盏灯从右向左依次亮灭,右三盏灯灭;当汽车向右转弯时,汽车右三盏灯从左向右依次亮灭,做三盏灯灭;当左右控制同时接通时,左右共六盏灯同时亮灭;通过设置系统的输入信号:系统时钟信号clk,汽车左控制信号left,汽车右控制信号right;汽车左三盏指示灯L1,L2,L3和汽车有三盏指示灯r1,r2,r3实现以上功能。 下面是汽车尾灯控制工作构成图:
2.5汽车尾灯控制器各组成模块原理及程序 2.5.1汽车尾灯主控VHDL程序: library ieee;
use ieee.std_logic_1164.all; entity kong is
port(left,right:in std_logic; lft,rit,lr:out std_logic); end kong;
architecture kong_arc of kong is begin
process(left,right)
variable a:std_logic_vector(1 downto 0); begin
a:=left&right; case a is
when"00"=>lftlftlftrit
end case; end process; end kong_arc;
封装成功汽车尾灯主控模块图
2.5.2左灯控制模块VHDL程序: library ieee;
use ieee.std_logic_1164.all; entity lfta is
port(en,clk,lr:in std_logic; l2,l1,l0:out std_logic); end lfta;
architecture lft_arc of lfta is begin
process(clk,en,lr)
variable tmp:std_logic_vector(2 downto 0); begin
if lr='1'then tmp:="111"; elsif en='0'then if tmp="000"then tmp:="001"; else
tmp:= tmp(1 downto 0) &'0'; end if; end if;
l2
封装成功左灯控制模块图:
2.5.3右灯控制模块VHDL程序: library ieee;
use ieee.std_logic_1164.all; entity rita is
port(en,clk,lr:in std_logic; r2,r1,r0:out std_logic); end rita;
architecture rit_arc of rita is begin
process(clk,en,lr)
variable tmp:std_logic_vector(2 downto 0); begin
if lr='1'then tmp:="111"; elsif en='0'then tmp:="000";
elsif clk'event and clk='1'then if tmp="000"then tmp:="100"; else
tmp:='0'&tmp(2 downto 1); end if; end if;
end process; end rit_arc;
封装成功右灯控制模块图:
3.程序调试和运行结果说明
3.1仿真波形结果与分析
3.1.1汽车尾灯主控模块仿真和分析
对时序仿真图分析:
right, left为输入信号, rit, lr, lft为输出信号。rit为1表示右转,lft为1表示左转。如图所示:right,left同时为1时,rit, lr, lft的输出都为1。
3.1.2汽车左尾灯控制模块仿真和分析
对时序仿真图分析
lr,en,clk为输入信号,L0,L1,L2为输出信号。clk为时钟脉冲,当en(left)输入为1时,左三灯从左向右依次亮灭,当en(left),lr输入都为1时,左三盏灯都亮。
3.1.3汽车右尾灯控制模块仿真和分析
lr,en,clk为输入信号,r0,r1,r2为输出信号。clk为时钟脉冲,当en(right)输入为1时,左三灯从右向左依次亮灭;当en(right),lr输入都为1时,右三盏灯都亮,都输入为0时,有三盏灯都灭
3.1.4整个系统的仿真和分析
对时序仿真图分析:
right, left, clk为输入信号,left为1表示左转,right为1表示右转,right, left同时为0表示灯不亮,同时为1表示亮灭不停闪烁。L1,L2,L3为输出信号表示左边的三盏灯,r1,r2,r3为输出信号表示右边的三盏灯。
如图所示:left, right同时为0时,代表汽车尾灯不亮;right为1时,代表汽车右转,尾灯从左向右依次亮灭;left为1是,代表汽车左转,汽车尾灯从右向左依次亮灭;left,right同时为0是,代表汽车尾灯在不停亮灭闪烁。
3.2电路布局布线
汽车尾灯控制器实验板电路连线图:
3.3电路下载与测试
前期工作都做好了后,就可以向芯片下载程序进行硬件测试。
1) 在“MAX+plusII”中选Programmer项。弹出Programmer窗口后,选option项的硬件
设置项Hardware setup,在其下拉窗口中选ByteBlaster(MV)项,如图所示
将实验板连接好,接好电源,单击program即可进行编程下载。
2) 汽车尾灯控制器整个系统下载成功图:
3.4硬件测试具体结果
1) 汽车向前行驶时汽车尾灯显示:
六个发光二极管全部不亮;
2) 汽车向左转弯时汽车尾灯显示:
左边三个发光二极管的从右向左依次亮灭,右边三个发光二极管灭;
3) 汽车向右转弯时汽车尾灯显示:
右边三个发光二极管的从左向右依次亮灭,左边三个发光二极管灭;
4) 汽车左右控制同时接通时尾灯显示:
六个发光二极管同时亮灭闪烁。
3.5调试问题和解决
设计中遇到的问题:
1) 在程序编译时候,经常出现这样的错误:在保存,简称工程文件后,进行编译,出
现错误,显示为图为:
2) 整个系统仿真完全正确,但是下载到板子时,与课程设计所要求显示结果相反 解决方法;
1) 重新保存命工程名,把先前“you”右改为“rita”,重新建立工程文件,进行编译;
2) 将各个模块程序中的“1”改为“0”,“0”改为“1”(并不是每一个都改的)或将
整个系统电路图的与门改为与非门。
注意:
1) 在VHDL中,程序文本保存的文件必须要与文件的实体名一致,且后缀是.VHD;
2) 要将设计文件的后缀写成.VHD,不能写成.tdf;
3) 要将设计存入根目录,并设定成工程,由于没有了工作库,会报出信息错误:
;
结 论
通过这次汽车尾灯设计,是我学到了不少知识。汽车尾灯是汽车的重要部件之一,
他是在交通安全上扮演着很重要的角色。这次课程设计是简易汽车尾灯,实现简单的逻辑功能。重点是本次课程设计中,了解和掌握逻辑电路的设计和分析。
在设计中要求我们要有耐心,不然会很容易出问题的,尤其在输入程序时候特别要注意,不小心输入错误,就会造成此段程序无法运行,也无法进行下一步骤的进行。当出现错误时候,更要我们更加认真的去检查,从此次课程设计,我也积累了一点点经验,为以后有着很大的帮助。同时在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。
通过这次课程设计,也使我得到了一次用专业知识,专业技能分析和解决问题全面系统的锻炼。是我在EDA技术的应用过程中,以及在常用的编程设计思路技巧的掌握方面都能向前迈出一大步,为日后成为合格的应用性人才打下良好的基础。
致 谢
课程设计是我们知识运用能力的一次全面的考核,也是我们进行科学研究基本功的训练,培养我们综合运用所学知识独立分析问题和解决问题的能力,为我们以后的工作打下良好的基础。
经过两个星期的忙碌,我们的本次课程设计也终于顺利完成。由于我们的知识不全面和经验的缺乏,会有许多考虑到不周全的地方。倘若此次没有指导老师和同学们的帮助,完成本次课程设计是有不小困难的。
首先,我要感谢我的母校——陕西理工学院,是她为我们提供了学习知识的土壤,使我们在这里茁壮成长。
其次,我要感谢我的指导老师侯宝生老师,他在学习和设计方面给我了大量的指导,为我们提供了良好的学习实验环境,让我们学到了知识,掌握了科研的方法,也获得了实践的机会。除此之外,还要感谢我的同组同学陈杨柳同学,他每次都能在我们最困惑的时候帮助我们解决问题。
最后,再感谢那些授过我知识的老师们,没有他们,我们就不可能很好的完成这次课程设计,也就没法学到这些知识。
参 考 文 献
[1]赵世强,许杰等编.电子电路EDA技术.西安:西安电子科技大学出版社,2000;
[2]黄仁欣.EDA技术应用教程.北京:清华大学出版社,2006;
[3]潘松,黄继业.EDA技术应用教程[M].北京:科学出版社,2005;
[4]EDA技术课程设计,
;
[5]王冬,基于VHDL语言的汽车尾灯控制器设计·计算机与网络,2010,195-196页;
[