基于FPGA的汽车尾灯控制毕业设计.docx

上传人:b****5 文档编号:14376247 上传时间:2023-06-22 格式:DOCX 页数:31 大小:616.28KB
下载 相关 举报
基于FPGA的汽车尾灯控制毕业设计.docx_第1页
第1页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第2页
第2页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第3页
第3页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第4页
第4页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第5页
第5页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第6页
第6页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第7页
第7页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第8页
第8页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第9页
第9页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第10页
第10页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第11页
第11页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第12页
第12页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第13页
第13页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第14页
第14页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第15页
第15页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第16页
第16页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第17页
第17页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第18页
第18页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第19页
第19页 / 共31页
基于FPGA的汽车尾灯控制毕业设计.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于FPGA的汽车尾灯控制毕业设计.docx

《基于FPGA的汽车尾灯控制毕业设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的汽车尾灯控制毕业设计.docx(31页珍藏版)》请在冰点文库上搜索。

基于FPGA的汽车尾灯控制毕业设计.docx

基于FPGA的汽车尾灯控制毕业设计

基于FPGA的汽车尾灯控制毕业设计

目录

摘要………………………………………………………………………………………………Ⅰ

Abstract…………………………………………………………………………………………Ⅱ

绪论………………………………………………………………………………………………1

1课题理论基础EDA技术…………………………………………………………………2

1.1EDA简介…………………………………………………………………………………2

1.2VHDL语言…………………………………………………………………………………2

1.2.1VHDL语言特点…………………………………………………………………………2

1.3FPGA………………………………………………………………………………………3

1.4QuartusII集成开发环境……………………………………………………………3

1.4.1QuartusII简介………………………………………………………………………3

1.4.2QuartusII的使用步骤……………………………………………………………3

2系统的总体设计……………………………………………………………………………7

2.1系统总体介绍……………………………………………………………………………7

2.2系统功能分析……………………………………………………………………………7

2.3系统设计流程……………………………………………………………………………8

2.3.1设计流程………………………………………………………………………………8

2.3.2设计思路………………………………………………………………………………8

3系统功能模块详细设计…………………………………………………………………9

3.1主控制模块CTRL的设计与实现……………………………………………………9

3.2左侧尾灯控制模块LC的设计与实现………………………………………………11

3.3右侧尾灯控制模块RC的设计与实现………………………………………………13

3.4时钟分频模块SZ的设计与实现……………………………………………………15

3.5刹车、夜间行驶功能和元件例化……………………………………………………17

3.6顶层文件结构设计……………………………………………………………………19

4系统运行结果……………………………………………………………………………21

4.1管脚绑定…………………………………………………………………………………21

4.2模块工作状态分析……………………………………………………………………21

4.2.1主控制模块CTRL……………………………………………………………………21

4.2.2左侧尾灯控制模块LC………………………………………………………………21

4.2.3右侧尾灯控制模块RC………………………………………………………………22

4.2.4时钟分频模块SZ……………………………………………………………………22

结论……………………………………………………………………………………………24

致谢……………………………………………………………………………………………26

参考文献………………………………………………………………………………………27

绪论

在当今社会中,汽车已渐渐成为了我们日常必不可少的一部分,而信息时代的发展使得数字时代已经成为一种现实,并且无时无刻不在影响着人们的日常生活,因此将其结合发展是时代的必然。

汽车使用的越来越多,那么人们的要求就会越来越大,虽然汽车尾灯控制系统在设计诞生以来经过了无数次的改进和广泛的应用,但人们对汽车尾灯控制系统的认识还存在许多的局限性,尾灯控制还有待我们进行研究和探讨。

在控制中心我们还可以加入现代化元素,如自动开门、报警系统、方向盘锁、汽车便设等等,总之,其中的发展大大的超乎我们的想象。

而我们需要一套更加快捷、可靠、合理与安全的设计方法,以便更好的为我们国家的发展和人们生活服务。

因此,进行汽车尾灯控制设计研究,具有非常深远的实际和理论意义。

汽车尾灯可以表示车身宽度、提示转向提示、刹车双闪转向灯报警或警示;汽车尾灯控制是汽车在白天或晚上行驶时司机在刹车、转弯时发出的指令会传送至主控芯片,芯片会发出指令让尾灯进行相应的显示而实现相应的功能,而让驾驶更加安全。

 

1课题理论基础EDA技术

1.1EDA简介

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

EDA技术主要包括VHDL语言、FPGA(现场可编程门阵列)、以及QuartusII集成开发环境【1】。

1.2VHDL语言

VHDL主要用于描述数字系统的结构,行为,功能和接口。

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

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

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

这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

1.2.1VHDL语言特点

(1)VHDL语言功能强大,设计方式多样

VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。

同时,它还具有多层次的电路设计描述功能。

此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。

VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。

(2)VHDL语言具有强大的硬件描述能力

VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。

同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。

VHDL语言的强大描述能力还体现在它具有丰富的数据类型。

VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。

(3)VHDL语言具有很强的移植能力

VHDL语言很强的移植能力主要体现在:

对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。

(4)VHDL语言的设计描述与器件无关

采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。

这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。

当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。

(5)VHDL语言程序易于共享和复用

VHDL语言采用基于库(library)的设计方法。

在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。

这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用【4】。

1.3FPGA

FPGA(现场可编程门阵列)是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点【2】。

1.4QuartusⅡ集成开发环境

1.4.1QuartusⅡ简介

软件界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。

该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等特点,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

1.4.2QuartusⅡ的使用步骤

1、新建一个工程

1)选择菜单命令File|NewProjectWizard,点击next将弹出如图所示对话框,选择项目存放目录、填写项目名称,注意项目顶层设计实体名称必须和项目名称保持一致。

可先在电脑中建立工程项目存放的目录如:

E:

\数字系统设计\原理图设计。

2)完成上述操作后,按Next按钮将会弹出加入文件对话框,如图所示。

可以在File空白处选择添入已存在的设计文件加入到这个工程中,也可以使用UserLibraryPathnames按钮把用户自定义的库函数加入到工程中使用,完成后按Next按钮进入下一步。

3)如图所示是选择可编程逻辑器件对话框,选Yes为手动选择需要的器件,选No则由编译器自动选择。

在此对话框可以进行选择选择器件的系列、器件的封装形式、引脚数目和速式、引脚数目和速度级别约束可选器件的范围。

4)如图询问是否选择其他EDA工具,一般不需要选择其他的EDA工具,因此直接选择NEXT。

5)显示由新建工程指南建立的工程文件摘要,在界面顶部标题栏将显示工程名称和存储路径。

2、编辑设计图形文件

1)设计输入在菜单栏中选择【File】/【New】命令。

2)建立原理图文件弹出新建文件对话框然后选择BlockDiagram/SchematicFile(流程图和20原理图文件)。

之后就会出现编辑输入原理图,随后保存项目。

3、编译设计图形文件

1)元件的选择与放置双击鼠标的左键,将弹出Symbol对话框,或单击鼠标右键,在弹出的选择对话框21中选择Insert-Symbol,也会弹出该对话框。

2)连接各个元件符号,把鼠标移置一个元件引脚连接处,单击鼠标左键,移到要与之相连的元件的连接处,松开鼠标即可连接两个要连的元件。

3)设定各输入、输出引脚名双击任意一个input元件,在对话框里可以将引脚的名字更换。

4)执行Processing/StartCompilation,进行编译,编译结束后会出现错误和警告提示。

单击TimingAnalyter/tpd可以查看输出信号对输入信号延时时间报告。

4、时序仿真设计

1)新建用于仿真的波形文件,执行File-New⋯命令,可建立和编辑的文件有三类:

器件设计文件DeviceDesignFiles、软件文件SoftwareFiles和其他文件OtherFiles。

在这里我们选择VectorWaveformFile(波形文件)。

2)设置仿真时间选择好I/O之后的波形图窗口。

3)在波形仿真之前要设置合理的结束时间和每个栅格的时间,如图执行Edit-EndTime⋯命令,设置合适的仿真结束时间,执行Edit-GridSize⋯命令,设置合适的栅格时间。

4)设置输入信号波形,先用鼠标左键单击并拖动鼠标选择要设置的区域,单击工具箱中按钮ForcingHigh

(1)则该区域变为高电平。

5)进行功能仿真,设置输入信号后保存文件,文件名默认,执行Processing/Startsimulation命令,进行仿真,如下图的波形仿真结果即是比较器的功能仿真结果。

5、生成元件符号

1)执行File-Create/Update-CreateSymbolFileforCurrentFile命令将本设计电路封装成一个元件符号,供以后在原理图编辑器下进行层次设计时调用。

生成的符号存放在本工程目录下,文件名zhanglaoshi,文件后缀名.bsf。

6、QuartusII器件编程

1)JTAG编程下载模式

此方式的操作步骤主要分为3步:

•选择QuartusⅡ主窗口的Tools菜单下的Programmer命令或点击图标,进入器件编程和配置对话框。

如果此对话框中的HardwareSetup后为“NoHardware”,则需要选择编程的硬件。

点击HardwareSetup,进入HardwareSetup对话框,如下图所示,在此添加硬件设备。

•配置编程硬件后,选择下载模式,在Mode中指定的编程模式为JTAG模式;

•确定编程模式后,单击添加相应的counter.sof编程文件,选中counter.sof文件后的Program/Configure选项,然后点击图标下载设计文件到器件中,Process进度条中显示编程进度,编程下载完成后就可以进行目标芯片的硬件验证了。

2)AS主动串行编程模式

AS主动串行编程式的操作步骤如下:

(1)选择QuartusⅡ主窗口Assignments菜Device命令,进入Settings对话框的Device页面进行设置。

(2)选择QuartusⅡ主窗口的Tools菜单下的Programmer命令或点击图标,进入器件编程和配置对话框,添加硬件,选择编程模式为ActiveSerialProgram;

(3)单击添加相应的counter.pof编程文件,选中文件后的Program/Configure、Verify和BlankCheck项,单击图标下载设计文件到器件中,Process进度条中显示编程进度。

下载完成后程序固化在EPCS中,开发板上电后EPCS将自动完成对目标芯片的配置,无须再从计算机上下载程序。

 

2系统的总体设计

2.1系统总体介绍

汽车尾灯两侧各有3盏指示灯L1、L2、L3、R1、R2、R3,汽车行驶过程中有如下几种情况:

1.汽车正常行驶时指示灯都不亮;

2.汽车右转弯时,右侧一盏指示灯亮;

3.汽车左转弯时,左侧一盏指示灯亮;

4.汽车刹车时,左右两侧其中一盏指示灯亮;

5.汽车夜间行驶时,左右两侧的一盏指示灯同时亮,以供照明。

输入信号有左(left)转、右(right)转和刹车(stop)三种;

2.2系统功能分析

要实现设计要求里面的各种情况,现将系统分为四个模块:

汽车尾灯主控制模块CTRL:

该模块接收左转、右转、刹车和正常行驶的控制信号,根据所接受的信号控制左尾灯控制模块和右尾灯控制模块

左侧尾灯控制模块LC:

接受汽车状态模块的控制信号对左边三个尾灯的亮与灭进行控制。

右侧尾灯控制模块RC:

接受汽车状态模块的控制信号对右边三个尾灯的亮与灭进行控制

时钟分频模块SZ:

用于尾灯的闪烁控制,首先定义一个八位的标准逻辑位矢量数据类型,用于时钟上升沿的累加,将八位的标准逻辑位矢量数据的第五位作为尾灯闪烁触发信号输出。

 

2.3系统设计流程

2.3.1设计流程如下

 

图2-1系统设计流程图

2.3.2设计思路如下

图2-2系统模块功能思路示意图

从图中可知,系统所有的外部功能的实现均是以主控制选择模块而展开的。

是以Altera公司CycloneII的FPGA芯片可编程逻辑器件为系统核心进行系统设计,其系统包括硬件和软件设计两部分,其外围硬件电路包括按键电路(各种控制信号)、显示电路及其他硬件间的连接,软件开发采用QuartusII集成开发环境,运用VHDL硬件描述语言设计系统配置硬件,有芯片的运行控制各个外围器件的工作。

3系统功能模块详细设计

3.1主控制模块CTRL的设计与实现

该模块的设计图如下:

 

图3-1汽车尾灯主控制模块示意图图3-2主控模块顶层实体图

汽车尾灯主控制模块CTRL应用程序解释如下:

*数据入口:

RIGHT:

右转信号;LEFT:

左转信号;BRAKE:

刹车信号;NIGHT:

夜间行驶信号;

*数据出口:

LP:

左侧灯控制信号;RP:

右侧灯控制信号;LR:

错误控制信号;BRAKE_LED:

刹车控制信号;NIGHT_LED:

夜间行驶控制信号

*程序功能描述:

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

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

*程序代码:

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;

主控制模块CTRL仿真图:

图3-3主控制模块CTRL仿真图

3.2左侧尾灯控制模块LC的设计与实现

该模块的设计图如下:

图3-4左侧尾灯功能模块示意图图3-5左侧尾灯控制模块顶层实体图

*数据入口:

CLK:

时钟控制信号;LP:

左侧灯控制信号;LR:

错误控制信号;BRAKE:

刹车控制信号;NIGHT:

夜间行驶控制信号;

*数据出口:

LEDL:

左侧LD1灯控制信号;LEDB:

左侧LD2灯控制信号;LEDN:

左侧LD3灯控制信号;

*程序功能描述:

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

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

*程序代码:

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;

左侧尾灯控制模块LC仿真图:

图3-6左侧尾灯控制模块LC仿真图

3.3右侧尾灯控制模块RC的设计与实现

该模块的设计图如下:

 

图3-7右侧尾灯功能模块示意图图3-8右侧尾灯控制模块顶层实体图

*数据入口:

CLK:

时钟控制信号;RP:

右侧灯控制信号;LR:

错误控制信号;BRAKE:

刹车控制信号;NIGHT:

夜间行驶控制信号;

*数据出口:

LEDR:

右侧RD1灯控制信号;LEDB:

右侧RD2灯控制信号;LEDN:

右侧RD3灯控制信号;

*程序功能描述:

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

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

*程序代码:

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;

右侧尾灯控制模块RC仿真图:

图3-9右侧尾灯控制模块RC仿真图

3.4时钟分频模块SZ的设计与实现

图3-10时钟分频模块示意图图3-11时钟分频模块顶层实体图

*数据输入:

CLK:

时钟输入信号;

*数据输出:

CP:

尾灯闪烁触发信号;

*程序功能描述:

本模块用于尾灯的闪烁控制,首先定义一个八位的标准逻辑位矢量数据类型,用于时钟上升沿的累加,将八位的标准逻辑位矢量数据的第五位作为尾灯闪烁触发信号输出。

*程序代码:

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;

时钟分频模块SZ的仿真图:

图3-12时钟分频模块SZ的仿真图

3.5刹车、夜间行驶功能和元件例化

刹车功能控制模块如图3-13所示,夜间行驶功能模块如图3-14所示。

图3-13刹车功能控

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2