首页 基于CPLD的汽车尾灯电路设计

基于CPLD的汽车尾灯电路设计

举报
开通vip

基于CPLD的汽车尾灯电路设计基于CPLD的汽车尾灯电路设计 ****大学 本科生毕业设计(论文) 院: 学 专 业: 学 生: 指导教师: 完成日期: ****大学本科生毕业设计(论文) 基于CPLD的汽车尾灯电路设计 总计 毕业设计(论文) 45 页 2 表格个 插图 32 幅 基于CPLD的汽车尾灯控制电路设计 摘 要 汽车作为现代交通工具已大量进入人们的生活,随着电子技术的发展,对于汽车的控制电路,也已从过去的全人工开关控制发展到了智能化控制。本设计研究了一种基于CPLD的汽车尾灯控制电路设计。 本设计核心是基...

基于CPLD的汽车尾灯电路设计
基于CPLD的汽车尾灯电路设计 ****大学 本科生毕业设计(论文) 院: 学 专 业: 学 生: 指导教师: 完成日期: ****大学本科生毕业设计(论文) 基于CPLD的汽车尾灯电路设计 总计 毕业设计(论文) 45 页 2 表格个 插图 32 幅 基于CPLD的汽车尾灯控制电路设计 摘 要 汽车作为现代交通工具已大量进入人们的生活,随着电子技术的发展,对于汽车的控制电路,也已从过去的全人工开关控制发展到了智能化控制。本设计研究了一种基于CPLD的汽车尾灯控制电路设计。 本设计核心是基于CPLD的可编程逻辑器件。CPLD具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。CPLD器件已成为电子产品不可缺少的组成部分,它的设计和应用成为电子工程师必备的一种技能。 本文采用先进的EDA技术,利用Quartus II工作平台和VHDL语言,设计了一种基于CPLD的汽车尾灯控制电路。本设计以CPLD芯片为控制核心,附加少量外围电路组成的汽车尾灯控制电路。整个系统设计模块划分清晰:包括汽车状态模块、左尾灯控制模块、右尾灯控制模块、时钟模块。并对控制电路进行了仿真及验证,结果表明在设定的比赛规则下,CPLD汽车尾灯控制电路运行正常,通过进一步优化可将其商品化,推入市场。 关键词:CPLD;智能化控制;EDA技术 I 基于CPLD的汽车尾灯控制电路设计 Abstract As a modern transportation has entered people's lives, with the development of electronic technology, for the control circuit, the car has been from the past to the artificial intelligent control switch control. This design is based on a study of automobile tail light control circuit CPLD device design. The design is based on CPLD of programmable logic devices. Flexible, integration programming CPLD high, short development cycle, design and development tools for a wide range of advanced design and manufacturing, low cost, the hardware requirements for designers, low standard product experience without testing, confidentiality, etc, can achieve the popularization of large-scale circuit design, and therefore have been widely applied in product design and production of prototype (usually in 10,000 pieces below). CPLD device, electronic products, has become the indispensable part, its design and application of electronic engineers must become a kind of skill. The paper adopts advanced technology, using EDA Quartus II work platform and VHDL language, design a kind of cars are based on CPLD control circuit. This design with CPLD chip as control core, additional small peripheral circuit of automobile tail light control circuit. The whole system design module partition clear: including car status module, left taillights control module, right taillights control module, clock module. And the control circuit simulation and verification results show that under the rules of the game in setting, CPLD automobile tail light control circuit, through the normal operation can be further optimized, the commercialization. Keywords: CPLD, Intellectualized control, EDA technology II 基于CPLD的汽车尾灯控制电路设计 目 录 摘要 ........................................................ I Abstract .................................................. II 第一章 引 言 ............................................... 1 1.1 课题背景 ........................................... 1 1.2 课题任务及要求 ..................................... 2 1.3 课题内容及安排 ..................................... 2 第二章 CPLD汽车尾灯控制电路设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 论证及选择 ........ 3 2.1 CPLD汽车尾灯控制电路设计方案论证 .................. 3 2.2 CPLD汽车尾灯控制电路设计方案选择 .................. 3 第三章 CPLD汽车尾灯控制电路设计开发平台及工具选用 ... 4 3.1可编程逻辑器件CPLD简介 ............................ 4 设计开发软件 Quartus? 5.0 ......................... 6 3.2 3.2.1 Quartus? 5.0开发环境简介 ................. 6 3.2.2 Quartus? 使用步骤 ......................... 8 3.3 CPLD数字发展实验系统 ............................. 18 3.3.1 概述 ...................................... 18 3.3.2管脚对照表 ................................ 21 3.4 编程语言的选择 .................................... 23 第四章 CPLD汽车尾灯控制电路硬件和软件联合设计 ....... 25 4.1 CPLD汽车尾灯控制电路设计的总体思路 ............... 25 4.2 CPLD汽车尾灯控制电路功能模块设计 ................. 26 4.2.1 汽车状态模块设计 .......................... 26 4.2.2 左尾灯控制模块设计 ........................ 26 4.2.3 右尾灯控制模块设计 ........................ 28 4.2.4 时钟模块设计 .............................. 29 4.3 CPLD汽车尾灯控制电路硬件电路原理图设计 ........... 31 III 基于CPLD的汽车尾灯控制电路设计 4.4 CPLD汽车尾灯控制电路软件流程图设计 ............... 31 第五章 CPLD汽车尾灯控制电路设计整体调试 ............ 33 5.1 CPLD汽车尾灯控制电路调试分析: ................... 33 CPLD汽车尾灯控制电路故障调试及解决方案 ........... 33 5.2 结论 ....................................................... 36 社会经济效益分析 ......................................... 37 致谢 ....................................................... 38 参考文献 .................................................. 39 附录 ? CPLD汽车尾灯控制电路设计源程序 ............... 40 IV 基于CPLD的汽车尾灯控制电路设计 第一章 引 言 1.1 课题背景 汽车作为现代交通工具已大量进入人们的生活,随着电子技术的发展,对于汽车的控制电路,也已从过去的全人工开关控制发展到了智能化控制。在夜晚或因天气原因能见度不高的时候,人们对汽车安全行驶要求很高(汽车尾灯控制系统给大家带来了方便。汽车尾灯控制器是随汽车智能化技术的发展而迅速发展起来的,汽车尾灯一般是用基于微处器的硬件电路结构构成,正因为硬件电路的局限性,不能随意的更改电路的功能和性能,且可靠性得不到保证,因此对汽车尾灯控制系统的发 [1] 展带来一定的局限性。难以满足现代汽车的智能化发展。 随着(EDA)仿真技术的发展,数字系统的设计技术和设计工具发生了深刻的变化。利用硬件描述语言对数字系统的硬件电路进行描述是EDA的关键技术之一。VHDL 作为IEEE 标准的硬件描述语言和EDA 的重要组成部分经过十几年的发展应用和完善以其强大的系统描述能力 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 的程序设计结构灵活的语句表达风格和多层次的仿真测试手段受到业界的普遍认同和广泛的接受从数十种国际流行的硬件描述语言中脱颖而出成为现代EDA 领域的首选硬件设计计算机语言而且目前流行的EDA工具软件全部支持VHDL。 课程设计作为数字电子技术和模拟电子技术课程的重要组成部分,目的是一方面使我们能够进一步理解课程内容,基本掌握数字系统设计和调试的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,增加集成电路应用知识,培养实际动手能力以及分析、解决问题的能力;另一方面也更好地巩固和加深对基础知识的理解,学会设计中小型数字系统的方法,独立完成调试过程,增强理论联系实际的能力,提高电路分析和设计能力。通过实践引导在理论指导下有所创新,为专业课的学习和日后工程实践奠定基础。通过设计,一方面可以加深理论知识的理解,另一方面也可以提高考虑问题的全面性的能力,将理论知识上升到一个实践的阶段。设计是工科学生面对的重要课题,经历这个过程能真切感受到工科的魅力,拉近与生产的距离。 1 基于CPLD的汽车尾灯控制电路设计 1.2 课题任务及要求 本文要求完成一个基于CPLD的汽车尾灯控制电路的设计。 要求:汽车尾灯左、右各有3 个,从中间开始编号,分别用L1、L2、L3,R1、R2、R3表示。当汽车转向时,按L1?L1L2?L1L2L3?全灭?L1(或R1?R1R2?R1R2R3?全灭?R1)次序循环亮,亮持续为2 秒;当汽车刹车时,所有尾灯同时以2Hz 的频率闪烁;正常行驶时,所有尾灯灭。输入信号有左、右转向和刹车。 1.3 课题内容及安排 本设计要求完成一个基于CPLD的汽车尾灯控制电路设计。主要内容为:通过运用CPLD技术,完成汽车尾灯控制电路的设计。 本设计主要安排如下: 第一章: 引言,概述论文写作背景。 第二章: 本设计的方案论证及方案选择。 第三章: 本设计的开发平台及工具选用。 第四章: 本设计的硬件软件联合设计,包括汽车尾灯控制电路的硬 件设计和软件设计,各个元器件介绍,程序流程图和编程 思想。 系统联合调试,调试过程中出现的问题和解决方案以及调第五章: 试结果。 2 基于CPLD的汽车尾灯控制电路设计 第二章 CPLD汽车尾灯控制电路设计方案论证及选择 2.1 CPLD汽车尾灯控制电路设计方案论证 根据本设计题目的要求,提出以下两种方案: 方案一: 通过把脉冲电路、开关控制电路、三进制电路、译码与显示驱动电路等模块组合来实现。首先,通过555定时器构成的多谐振荡器产生频率为1Hz的脉冲信号,该脉冲信号用于提供给双J-K触发器构成的三进制计数器和开关控制电路中的三输入与非门的输入信号。其次,双J-K触发器构成的三进制计数器用于产生00、01、10的循环信号,此信号提供左转、右转的原始信号。最后,左转、右转的原始信号通过6个与非门以及7410提供的高低电位信号,将原始信号分别输出到左、右的3个汽车尾灯上。 [2]得到的信号即可输出到发光二极管上,实现所需功能。 方案二: 将系统分成四个功能设采用基于CPLD的汽车尾灯控制电路设计。 计模块:汽车状态模块,该模块接收左转、右转、刹车和正常行驶的控制信号,根据所接受的信号控制左尾灯控制模块和右尾灯控制模块;左尾灯控制模块,接受汽车状态模块的控制信号对左边三个尾灯的亮与灭进行控制;右尾灯控制模块,接受汽车状态模块的控制信号对右边三个尾灯的亮与灭进行控制;时钟模块:由于当汽车转弯时尾灯按照一定顺序循环亮灭,亮持续时间为2s,而刹车时尾灯又以2Hz的频率闪烁,故该模块提供周期为2s和500ms的时钟信号供左尾灯控制模块和右尾灯控制模块控制尾灯的亮灭。通过以上四个模块相互作用,就能实现所需功能。 2.2 CPLD汽车尾灯控制电路设计方案选择 第一种方案的实现复杂,成本高,调试起来不容易成功,太过繁琐。 第二种方案实现简单,只需四个模块和一些简单的元器件,成本低,调试容易,不繁琐。 因此,本设计采用基于CPLD的汽车尾灯控制电路设计。 3 基于CPLD的汽车尾灯控制电路设计 第三章 CPLD汽车尾灯控制电路设计开发平台及工具 选用 3.1可编程逻辑器件CPLD简介 CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系 [3]统”编程)将代码传送到目标芯片中,实现设计的数字系统。 CPLD主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中心的可编程互连矩阵单元组成。其中MC结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。 发展历史及应用领域: 20世纪70年代,最早的可编程逻辑器件--PLD诞生了。其输出结构是可编程的逻辑宏单元,因为它的硬件结构设计可由软件完成(相当于房子盖好后人工设计局部室内结构),因而它的设计比纯硬件的数字电路具有很强的灵活性,但其过于简单的结构也使它们只能实现规模较小的电路。为弥补PLD只能设计小规模电路这一缺陷,20世纪80年代中期,推出了复杂可编程逻辑器件--CPLD。目前应用已深入网络、仪器仪表、汽车电子、数控机床、航天测控设备等方面。 器件特点: 它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之 4 基于CPLD的汽车尾灯控制电路设计 中。几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。CPLD器件已成为电子产品不可缺少的组成部分,它的设计和应用成为电子工程师必备的一种技能。 如何使用: CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代 [4]码传送到目标芯片中,实现设计的数字系统。 这里以抢答器为例讲一下它的设计(装修)过程,即芯片的设计流程。CPLD的工作大部分是在电脑上完成的。打开集成开发软件(Altera 编公司 Max+pluxII)?画原理图、写硬件描述语言(VHDL,Verilog)?译?给出逻辑电路的输入激励信号,进行仿真,查看逻辑输出结果是否正确?进行管脚输入、输出锁定(7128的64个输入、输出管脚可根据需要设定)?生成代码?通过下载电缆将代码传送并存储在CPLD芯片中。7128这块芯片各管脚已引出,将数码管、抢答开关、指示灯、蜂鸣器通过导线分别接到芯片板上,通电测试,当抢答开关按下,对应位的指示灯应当亮,答对以后,裁判给加分后,看此时数码显示加分结果是否正确,如发现有问题,可重新修改原理图或硬件描述语言,完善设计。设计好后,如批量生产,可直接复制其他CPLD芯片,即写入代码即可。如果要对芯片进行其它设计,比如进行交通灯设计,要重新画原理图、或写硬件描述语言,重复以上工作过程,完成设计。这种修改设计相当 [5]于将房屋进行了重新装修,这种装修对CPLD来说可进行上万次。 家庭成员: 经过几十年的发展,许多公司都开发出了CPLD可编程逻辑器件。比较典型的就是Altera、Lattice、Xilinx世界三大权威公司的产品,这里给出常用芯片: Altera EPM7128S (PLCC84) Lattice LC4128V (TQFP100) 5 基于CPLD的汽车尾灯控制电路设计 3.2 设计开发软件 Quartus? 5.0 3.2.1 Quartus? 5.0开发环境简介 Quartus II是Altera提供的FPGA/CPLD开发集成环境,Altera是世界最大可编程逻辑器件供应商之一。Quartus II在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX+plus II的更新换代产品,其界面友好,使用便捷。在Quartus II上可以完成设计输入、HDL综合、布线布局(适配)、仿真和下载和硬件测试等流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。 Altera的Quartus II 提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为Altera DSP开发包进行系统模型设计提供了集成综合环境。Quartus II设计工具完全支持VHDL、Verylog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。Quartus II也可以利用第三方的综合工具,如Leonardo Spectrum、Synplify Pro、FPGA Complier II,并能直接调用这些工具。同样,Quartus II具备仿真功能,同时也支持第三方的仿真工具,如ModelSim。此外,Quartus II与MATLAB和DSP Builder结合,可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。 Quartus II包括模块化的编译器。编译器包括的功能模块有分析/综合器(Analysis & Synthesis)、适配器(Filter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)、EDA网表文件生成器(EDA Netlist Writer)和编辑数据接口(Complier Database Interface)等。可以通过选择Start Complication来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择Complier Tool(Tools 菜单),在Complier Tool 窗口中运行该模块来启动编辑器模块。在Complier Tool 窗口中,可以打开该模块的设置文件或 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 文件,或打开其他相关窗口。 此外,Quartus II还包含许多十分有用的LPM(Library of 6 基于CPLD的汽车尾灯控制电路设计 Parameterized Modules)模块,它们是复杂或高级系统构建的重要组成部分,在SOPC设计中被大量使用,也可在Quartus II普通设计文件一起使用。Altera提供的LPM函数均基于Altera器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些Altera特定器件 PLL以的硬件功能。例如各类片上存储器、DSP模块、LVDS驱动器、及SERDES和DDIO电路模块等。 如图3-1所示,上排是Quartus II编译设计主控界面,它显示了Quartus II自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编程文件汇编(装配)、时序参数提取以及编程下载几个步骤。在图3-1下排的流程框图,是与上面的Quartus II设计流程相对照的标准的EDA开发流程。 Quartus II编译器支持的硬件描述语言有VHDL(支持VHDL’87及VHDL’97标准)、Verilog HDL及AHDL(Altera HDL),AHDL是Altera公司自己设计、制定的硬件描述语言,是一种以结构描述方式为主硬件描述语言,只有企业标准。 Quartus II允许来自第三方的EDIF文件输入,并提供了很多EDA软件的接口,Quartus II支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与HDL混合输入设计问题。在设计输入之后,Quartus II的编译器将给出设计输入的错误报告。Quartus II 拥有良好的设计输入定位器,用于确定文本或图形设计中的错误。对于使用HDL的设计,可以使用Quartus II带有的RTL Viewer观察综合后的RTL图。在进行编译后,可对设计进行时序仿真。在作仿真前,需要利用波形编辑器编辑一个波形激励文件,用于仿真验证时的激励。编译和仿真经 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 无误后,便可以将下载信息通过Quartus II提供的编程器下载入目标器件中了。 7 基于CPLD的汽车尾灯控制电路设计 Assembler(编 Analysis & Synthesis 程文件汇编) (分析与综合) ..................... ...... 编程器 图形或HDLFilter 编辑 (适配器) Timing Analyzer (时序分析 器) 综合或编辑 适配器件 下载 设计输入 仿真 图3-1 Quartus II设计流程 3.2.2 Quartus? 使用步骤 1(新建一个工程, 注意顶层设计实体名必须与顶层文件名一致,如图 3-2所示。 图3-2 新建工程 8 基于CPLD的汽车尾灯控制电路设计 2(选择目标芯片类型 选择使用的是EP1K30TC144-3目标芯片,其它选项采用默认设置, 如图3-3所示。 图3-3 选择目标芯片类型 3(新建一个Verilog文档,如图3-4所示。 . 图3-4 新建一个Verilog文档 9 基于CPLD的汽车尾灯控制电路设计 4. 编辑文档 注意模块名必须与项目名一致。当文档编辑完成后,先进行保存, 然后才能进行编译,如图3-5所示。 图3-5 编辑文档 5. 对编辑好的文档进行完全编译,如图3-6所示。 图3-6 完全编译 10 基于CPLD的汽车尾灯控制电路设计 在完全编译情况下,Quartus II 进行4项工作:Analysis & Synthesis、Fitter、Assembler、和 Timing Analysis,并给出相映的信息报告,还可以通过选择Start单独运行这四个模块。如果有错误产生,可在错误信息报告栏里双击某一错误信息,在程序中确定错误位置,对其进行修改,然后重新保存、编译,直到成功为止。 6. Quartus II 时序仿真 当文档编译成功后,可进行时序仿真,以检测设计的程序是否符合要求。具体方法如图3-7(a)(b)(c)(d)(e)(f)所示。 图3-7 时序仿真(a) 图3-7 时序仿真(b) 11 基于CPLD的汽车尾灯控制电路设计 图3-7 时序仿真(c) 图3-7 时序仿真(d) 12 基于CPLD的汽车尾灯控制电路设计 图3-7 时序仿真(e) 图3-7 时序仿真(f) 13 基于CPLD的汽车尾灯控制电路设计 7. 在Quartus II 上通过时序仿真后,还需将程序下载到目标芯片中进行硬件测试。本实验使用的芯片是EP1K30TC144-3。 第一种方法: 单击进入引脚分配界面,弹出下边的选项框,如图3-8所示。 图3-8 引脚分配界面 双击To下的空白处弹出下拉菜单,并选择相应的引脚,如图3-9(a)(b)所示。 图3-9 选择引脚(a) 14 基于CPLD的汽车尾灯控制电路设计 图3-9 选择引脚(b) 引脚绑定完成后,需要保存,并重新编译一次,如图3-10所示。 图3-10 重新编译 第二种方法: 单击Pin Planner进入引脚分配界面,如图3-11所示。 15 基于CPLD的汽车尾灯控制电路设计 图3-11 引脚分配界面 采取引脚托拽的方法进行引脚分配,信号名和引脚的对应同上,如图3-12所示。 图3-12 引脚绑定 8(Quaturs II 程序下载 引脚绑定后,经过保存,再次编译,方可下载到可编程器件中。 16 基于CPLD的汽车尾灯控制电路设计 打开下载界面,如图3-13所示。 图3-13 下载界面打开 选择下载电缆和JTAG链,如图3-14所示。 图3-14 电缆和JTAG链选择下载 下载电缆和JTAG链选择好后,打开实验箱电源,选择工作模式,设置 17 基于CPLD的汽车尾灯控制电路设计 [6]各开关、跳线,然后开始下载,如图3-15所示。 图3-15 Quartus II 程序下载 3.3 CPLD数字发展实验系统 3.3.1 概述 EDA实验课程的硬件开发环境CPLD数字发展实验系统是由CPLD下载板、I/O实验板、RS232接口电路与电源等四部分构成。 1(ALTERA CPLD 8K下载板 下载板的核心是一片Altera 公司的CPLD芯片及一AVR系统——包括RAM、ROM和RS-232接口。电路设计好后经编译生成下载文件,经RS-232接口通过下载电路配合CPLD的时序加载至CPLD的SRAM中,也可将下载文件先烧录入到下载板上的SEEPROM中,当系统重新加上电源后会自动将ROM中的下载文件依次写入CPLD内。8K下载板实物图说明如图3-16 所示。 18 基于CPLD的汽车尾灯控制电路设计 电源指示灯 电源转接器接 CPLD芯片 RS-232接头 头 J7,P52 /TRST 控制短路夹, 预设要接短 路夹 89C52扩充插 座 OTP 内存 插座 J8 模式选择 短路夹,共有 三组。短路夹 预设接于上 面两组 重置 J6 执行 储存下载文件的 +5V扩短路夹 开关 SEEPROM插座 充电源 座 图3-16 8K下载板 8K下载板说明: (1) CPLD芯片:本系统所用的是ALTERA公司的EPF8282ALC84-4 CPLD芯片,采用SRAM技术制造而成,内嵌有效闸数为5000个,可用闸数为2500个,最大可用I/O脚数为78,为一84脚的PLCC封装。 (2) RS-232接头:通过RS-232连接线,接收由PC传送来的下载文件。 (3) 电源指示灯:用来指示电源的有无。 (4) 电源转接器接头:可接受电源转接器7.5V直流输入电压。 (5) OTP内存插座:提供使用一次规划型内存时之场合,若使用OTP内存时,J8的第三组短路夹要接上。 (6) J8模式选择短路夹:短路夹接上面两组则选定串行被动式的资料下 19 基于CPLD的汽车尾灯控制电路设计 载方式,即本系统所采用的下载方式,下载模式选择短路夹已预先插好。 (7) 下载文件储存器插座:共有U5、U6、U7、U8四个SEEPROM的插座,所以本系统最多可扩充至32K×8的存储空间。 (8) +5V扩充电源插座:提供+5V外部电源的输入端。 (9) J6 执行短路夹:当执行CPLD的下载文件时,应接上短路夹,若要切换执行下一个下载文件时,只要插拔一次J6即可。 (10) 重置开关:用来重置系统。 [7](11) 89C52扩充插座:此为单片机89C52的扩充插座。 2(I/O实验板 I/O实验板是配合下载板电路,供同学作基础实验使用的。板上可用的输入输出组件包括发光二极管LED、七段显示器、米字型显示器、5x7点矩阵显示器、拨码开关、按键及振荡器、 脉冲讯号等。I/O实验板如图3-17 所示。 图3-17 I/O实验板 20 基于CPLD的汽车尾灯控制电路设计 I/O实验板说明: (1)4 bits DIP 开关 (2)2个LED显示器 (3)6个7-SEG 显示器 (可作并列显示及串行扫瞄) (4)4 信道脉波输出 (5)2 信道连续可调脉波输出(1Hz~1MHz) (6)2组振荡频率选择(20MHz,11.059MHz,可更换至 100MHz) (7)4 ×4 矩阵键盘, 并可组成16个单一脉冲按键 (8)20,2字LCD显示器(option) (9)米字型显示器 (option) (10)5×7点矩阵显示器(option) 3.3.2管脚对照表 由于实验系统上的管脚标注是按照Altera flex8k芯片的管脚定义的,与我们所使用得Flex10k芯片有很大的不同,所以特给出Altera 10k10/84 pin 与Altera 8k主机板的管脚对照表,如表3-1所示: 21 基于CPLD的汽车尾灯控制电路设计 Altera 8k?Altera 10K10TC84-4/ 84 PIN 表3-1 管脚对照表 VCC?VCC VDD?VDD VCC?VCC VDD?VDD I12?I01 I31?I02 VPW?VPW VPW?VPW I54?I43 I73?I42 TRST?NCNF MP13?CNF-DN P01?P03 P02?P05 P43?P25 P44?P27 P03?P06 P04?P07 P45?P28 P46?P29 P06?P08 P07?P09 P48?P30 P49?P35 P08?P10 P09?P11 P50?P36 P51?P37 P13?P16 P14?P17 P55?P53 P56?P54 P15?P18 P16?P19 P57?P58 P58?P59 P18?P21 P19?P22 P60?P60 P61?P61 P20?P23 P21?P24 P62?P62 P63?P64 P22?P25 P23?P27 P64?P65 P65?P66 P24?P28 P25?P29 P66?P67 P67?P69 P27?P30 P28?P35 P69?P70 P70?P71 P29?P36 P30?P37 P71?P72 P72?P73 P34?P38 P35?P39 P76?P78 P77?P79 P36?P47 P37?P48 P78?P80 P79?P81 P39?P49 P40?P50 P81?I44 P82?I84 P41?P51 P42?P52 P83?P83 P84? GND?GND GND?GND GND?GND GND?GND 22 基于CPLD的汽车尾灯控制电路设计 3.4 编程语言的选择 在新世纪中电子技术的发展将更加迅猛电子设计的自动化程度将更高电子产品的上市节奏将更快传统的电子设计技术工具和器件将在更大的程度上被EDA 所取代。EDA 技术和VHDL 势必成为广大电子信息工程类各专业领域工程技术人员的必修课。 与一般的高级语言相比,VHDL 的学习具有更强的实践性,它的学习和应用所涉及的内容和工具比较多,类似传统软件编程语言的语法语句和编程练习的学习已不足以掌握VHDL。 VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述能力强的特点,支持从系统级到门级所有层次的设计,在使用VHDL语言进行逻辑电路设计时,不需要考虑特定电路制造工艺的影响,其设计覆盖所有的逻辑电路形式。其语法结构以严谨著称,适合于复杂逻辑电路的设计。由于VHDL语言来源于C、Fortran等计算机高级语言,在VHDL语言中保留了部分高级语言的原语句,如if语句、子程序和函数等,便于阅读和应用。具体特点如下: 1. 支持从系统级到门级电路的描述,既支持自底向上(bottom-up)的设计也支持从顶向下(top-down)的设计,同时也支持结构、行为和数据流三种形式的混合描述。 2. VHDL的设计单元的基本组成部分是实体(entity)和结构体(architecture),实体包含设计系统单元的输入和输出端口信息,结构体描述设计单元的组成和行为,便于各模块之间数据传送。利用单元(componet)、块(block)、过程(procure)和函数(function)等语句,用结构化层次化的描述方法,使复杂电路的设计更加简便。采用包的概念,便于标准设计文档资料的保存和广泛使用。 3. VHDL语言有常数、信号和变量三种数据对象,每一个数据对象都要指定数据类型,VHDL的数据类型丰富,有数值数据类型和逻辑数据类型,有位型和位向量型。既支持预定义的数据类型,又支持自定义的数据类型,其定义的数据类型具有明确的物理意义,VHDL是强类型语言。 23 基于CPLD的汽车尾灯控制电路设计 4. 数字系统有组合电路和时序电路,时序电路又分为同步和异步,电路的动作行为有并行和串行动作,VHDL语言常用语句分为并行语句和顺序语句,完全能够描述复杂的电路结构和行为状态。 [8]因此,本设计选择VHDL语言为编程语言。 24 基于CPLD的汽车尾灯控制电路设计 第4章 CPLD汽车尾灯控制电路硬件和软件联合设计 4.1 CPLD汽车尾灯控制电路设计的总体思路 根据本设计要求,将本系统分成四个功能设计模块: 汽车状态模块:该模块接收左转、右转、刹车和正常行驶的控制信号,根据所接受的信号控制左尾灯控制模块和右尾灯控制模块。 左尾灯控制模块:接受汽车状态模块的控制信号对左边三个尾灯的亮与灭进行控制。 右尾灯控制模块:接受汽车状态模块的控制信号对右边三个尾灯的亮与灭进行控制。 时钟模块:由于当汽车转弯时尾灯按照一定顺序循环亮灭,亮持续时间为2s,而刹车时尾灯又以2Hz的频率闪烁,故该模块提供周期为2s和500ms的时钟信号供左尾灯控制模块和右尾灯控制模块控制尾灯的亮灭。 [9]汽车尾灯控制电路的总体框图如图4-1所示。 左尾灯控制模块 汽车状态模块 时钟模块 右尾灯控制模块 图4-1 CPLD汽车尾灯控制电路的总体框图 25 基于CPLD的汽车尾灯控制电路设计 4.2 CPLD汽车尾灯控制电路功能模块设计 4.2.1 汽车状态模块设计 汽车状态模块:该模块接收左转、右转、刹车和正常行驶的控制信号,根据所接受的信号控制左尾灯控制模块和右尾灯控制模块,如图4-2所示,源程序见附录?:汽车状态模块PRECONTROL。 图4-2 汽车状态模块 图4-2中LEFT、RIGHT、STOP分别表示左转、右转和刹车信号,对应的输出引脚LFT、RIT、LR分别表示左有效、右有效和刹车有效。 [10]其真值表如表4-1所示: 表4-1 汽车状态控制信号与输出信号真值表 LEFT RIGHT STOP LFT RIT LR 信号 意义 0 0 0 0 0 0 正常行驶 1 0 0 1 0 0 逻辑左转弯 0 1 0 0 1 0 状态 右转弯 0 0 1 0 0 1 刹车 4.2.2 左尾灯控制模块设计 左尾灯控制模块:接受汽车状态模块的控制信号对左边三个尾灯的亮与灭进行控制。如图4-3所示,源程序见附录?:左尾灯控制模块LEFTCONTROL。 26 基于CPLD的汽车尾灯控制电路设计 图4-3 左尾灯控制模块 由图4-3可知,对各输入与输出引脚的说明如下: CLK:接受时钟信号,用于尾灯的顺序循环亮灭。CLK将接收两种不同频率的时钟信号即周期为2s和500ms中的一种,具体接收哪一种由该模块的时钟使能输出信号CLK2SEN和CLK500MSEN决定。 EN:与汽车状态模块PRECONTROL的LFT引脚连接,用于使能该左尾灯控制模块。 LR:汽车刹车输入信号,与汽车状态控制模块PRECONTROL的LR引脚相连。由于 当汽车右转弯、正常行驶和刹车时,该模块EN引脚都将接收到低电平,故而需要通过判断LR和EN的引脚电平才能判断汽车当前是处于刹车状态还是右转弯或正常行驶状态。 L2、L1、L0:汽车左边的三个尾灯控制信号。 CLK2SEN、CLK500MSEN:时钟的选择信号。这两个引脚将根据汽车当前所处的状态使能相应的时钟。当汽车出处于左转弯时,CLK2SEN输出高电平,CLK500MSEN输出低电平,此时CLK将接收到周期为2s的时钟信号以满足按L1?L1L2?L1L2L3?全灭?L1次序循环亮,亮持续为2s对时钟的需要;当汽车处于刹车状态时,CLK2SEN输出低电平,CLK500MSEN输出高电平,此时CLK将接收到周期为500ms的时钟信号以满足汽车刹车是所有尾灯以2Hz的频率闪烁的设计要求。 27 基于CPLD的汽车尾灯控制电路设计 4.2.3 右尾灯控制模块设计 右尾灯控制模块:接受汽车状态模块的控制信号对右边三个尾灯的亮与灭进行控制。如图4-4所示,源程序见附录?:右尾灯控制模块RIGHTCONTROL。 图4-4 数据转换模块 由图4-4可知,对各输入与输出引脚的说明如下: CLK:接受时钟信号,用于尾灯的顺序循环亮灭。CLK将接收两种不同频率的时钟信号即周期为2s和500ms中的一种,具体接收哪一种由该模块的时钟使能输出信号CLK2SEN和CLK500MSEN决定。 EN:与汽车状态模块PRECONTROL的RIG引脚连接,用于使能该左尾灯控制模块。 LR:汽车刹车输入信号,与汽车状态控制模块PRECONTROL的LR引脚相连。由于当汽车右转弯、正常行驶和刹车时,该模块EN引脚都将接收到低电平,故而需要通过判断LR和EN的引脚电平才能判断汽车当前是处于刹车状态还是右转弯或正常行驶状态。 R2、R1、R0:汽车左边的三个尾灯控制信号。 CLK2SEN、CLK500MSEN:时钟的选择信号。这两个引脚将根据汽车当前所处的状态使能相应的时钟。当汽车出处于右转弯时,CLK2SEN输出高电平,CLK500MSEN输出低电平,此时CLK将接收到周期为2s的时钟信号以满足按R1?R1R2?R1R2R3?全灭?R1次序循环亮,亮持 28 基于CPLD的汽车尾灯控制电路设计 续为2s对时钟的需要;当汽车处于刹车状态时,CLK2SEN输出低电平,CLK500MSEN输出高电平,此时CLK将接收到周期为500ms的时钟信 [11]号以满足汽车刹车是所有尾灯以2Hz的频率闪烁的设计要求。 4.2.4 时钟模块设计 时钟模块:由于当汽车转弯时尾灯按照一定顺序循环亮灭,亮持续时间为2s,而刹车时尾灯又以2Hz的频率闪烁,故该模块提供周期为2s和500ms的时钟信号供左尾灯控制模块和右尾灯控制模块控制尾灯的亮灭。如图4-5和图4-6所示,源程序见附录?:周期为2s的时钟模块TIMER2S。 图4-5 2s时钟模TIMER2S 图4-6 500ms时钟模块TIMER500MS 左尾灯控制模块LEFT通过CLK2SEN和CLK500MSEN来控制该模块CLK接收到的时钟信号的实现原理如图4-7所示: 29 基于CPLD的汽车尾灯控制电路设计 图4-7 时钟选择实现原理图 当汽车左转弯时,左尾灯控制模块LEFTCONTROL使能,此时该模块CLK2SEN输出高电平,CLK500MSEN输出低电平,并分别与TIMER2S和TIMER500MS相与,则TIMER500MS相当于被禁止,后经或门连接至该LEFTCONTROL模块的CLK引脚,故而CLK将接收到TIMER2S发出的周期为2s的时钟信号。 当汽车刹车时,左尾灯控制模块LEFTCONTROL也使能,此时该模块CLK2SEN输出低电平,CLK500MSEN输出高电平,并分别与TIMER2S和TIMER500MS相与,则TIMER2S相当于被禁止,后经或门连接至该LEFTCONTROL模块的CLK引脚,故而CLK将接收到TIMER500MS发出的周期为500ms的时钟信号。 当汽车正常行驶时尾灯均灭,此时不需要时钟参与,左尾灯控制模块LEFTCONTROL的CLK2SEN和CLK500MSEN处于任意状态。 同样,右尾灯控制模块RIGHTCONTROL的CLK时钟信号的接收与左尾灯控制模块LEFTCONTROL的实现原理一样,它们共用TIMER2S和TIMER500MS这两个时钟模块。 30 基于CPLD的汽车尾灯控制电路设计 4.3 CPLD汽车尾灯控制电路硬件电路原理图设计 本设计原理图如图4-8所示: 图4-8 CPLD汽车尾灯控制电路原理图 由图4-8可知,原理图中包含了左尾灯控制模块LEFTCONTROL和右尾灯控制模块RIGHTCONTROL的时钟选择逻辑图,另外由于LEFTCONTROL和RIGHTCONTROL的软件设计所限,两模块均不能控制在汽车正常行驶时所有尾灯的熄灭,在汽车正常行驶时所有尾灯均熄 [12]灭是通过图4-8所示的由或门和与门组成的外围逻辑电路实现的。 4.4 CPLD汽车尾灯控制电路软件流程图设计 本设计流程图设计如图4-9所示: 31 基于CPLD的汽车尾灯控制电路设计 汽车状态信号输入 左转弯\右转弯\刹车\正常行驶 汽车状态模块 PRECONTROL 状态判断 正常行驶 左转弯 刹车 右转弯 外围或门和与左尾灯控制模块 LEFTCONTROL门逻辑电路 使能 左尾灯与右尾灯控右尾灯控制模块 制模块均使能 RIGHTCONTROL 使能 周期为2s时钟使能,尾灯全部熄灭 左尾灯每2s亮一盏 灯 周期为2s时钟使周期为500ms时钟 能,右尾灯每2s亮使能,左右尾灯均 一盏灯 以2Hz频率闪烁 图4-9 CPLD汽车尾灯控制电路设计流程图 32 基于CPLD的汽车尾灯控制电路设计 第5章 CPLD汽车尾灯控制电路设计整体调试 5.1 CPLD汽车尾灯控制电路调试分析: 当汽车正常行驶时,汽车状态控制模块PRECONTROL的LFT、RIT、LR均输出低电平。针对于左尾灯来说,LR与LFT相或后结果为低电平再与LEFTCONTROL的L2、L1、L0相与后(不论L2、L1、L0原先为何种电平)结果均为低电平故而左边三个尾灯全部熄灭,右尾灯亦是如此;当汽车左转时,RIT、LR输出低电平,LFT输出高电平。这时,左尾灯控制模块LEFTCONTROL使能并按照其软件设计功能工作,LFT与LR相或时为高电平再与L2、L1、L0相与后结果与L2、L1、L0原先电平一致即相当于左边三尾灯的亮灭只受LEFTCONTROL的控制。而右尾灯应该处于全部熄灭状态,它的实现思路为:LR与RIT相或后为低电平再与R2、R1、R0相与后仍为低电平故而三个右尾灯均熄灭。当汽车右转弯的工作原理与左转弯时相同这里不再详述;当汽车刹车时,LFT、RIT输出低电平,LR输出高电平。LFT与LR,RIT与LR相或均为高电平再与L2、L1、L0、R2、R1、R0相与时其结果为原先L2、L1、L0、R2、R1、R0各自的电平故而此时尾灯的亮灭只受左尾灯控制模块LEFTCONTROL和右尾灯控制模块RIGHTCONTROL的控制。 5.2 CPLD汽车尾灯控制电路故障调试及解决方案 一端电子安装完毕(通常不宜急于通电(先要认真检查一下。检查内容包括: 检测的方法通常有两种方法: (1)连线是否正确 这种方法的特点是(根据电路图连线,按一定顺序一一检查安装好的线路,由此(可比效容易查出错线和少线。按照实际线路来对照原理图电路进行查线 (2)这是一种以元件为中心进行查线的方法。把每个元件引脚的连线一次查清(检查每个去处在电路图上是否存在(这种方法不但可以查出 33 基于CPLD的汽车尾灯控制电路设计 错线和少线,还容易查出多线。 (3)为了防止出错(对于已查过的线通常应在电路图上做出标记(最好用指真式万用表“欧姆1”档,或用数字万用表的“二极管档”的蜂鸣器来测量元器件引脚(这样可以同时发现接触不良的地方。 (4)元器件的安装情况。 (5)检查元器件引脚之间有无短路:连接处有无接触不良:二极管的极性和集成元件的引脚是否连接有误。 (6)电源供电,信号源连接是否正确。 (7)电源端对地是否有短路的现象。 (8)在通电前,断开一根电源线,用万用表检查电源端对地是否存在短路。若电路经过上述检查,并确认无误后,就可以转入调试。 2(调试过程中遇到的问题及解决方法: l:静态调试 交流,直流并存是电子电路工作的一个重要组成特点。一般情况下,直流为交流服务,直流是电路工作的基础。因此,电子电路的调试有静态调和动态调试之分。静态调试过程。例如,通过静态测试模拟电路的静态工作点,数字电路的各输入端和输出端的高低电平值及逻辑关系等,可以及时发现已经损坏的元器件,判断电路工作情况(并及时调整电路参数,使电路工作状态符合设汁要求。 对照原理图,用万用表一一检查线路的各个接口是否接通,有无短路、断路或漏接现像,如果有,应及时改好电路。对照原理图,检查芯片的引脚是否接正确。检查芯片的VCC和GND是否接好。 2:动态调试 动态调试是在静态调试的基础上进行的。调试的方法是在电路的输入端接入适当频率和幅值的信号(并循着信号流向逐级检测各有关点的波形,参数和性能指标。发现故障现象,应采取不同的方法缩小故障范围(最后设法排除故障。 测试过程不能凭感觉和印象,要始终借助仪器观察。使用示波器时,最好把波器的信号输入方式置于“DC”档,通过直流耦合方式,右同时 34 基于CPLD的汽车尾灯控制电路设计 观察被测信号的交,直流成分。 通过调试,最后检查功能块和整机的各种指标是否满足设计要求。如必要。再进一步对电路参数提出合理的修正。 在进行上述检查后。通电进行调试。用万用表检查两块芯片的VCC和GND,看是否有电压。是不和输入的电压致。 在确保芯片处于工作状态后,在录音机接口处,输入一个信号,用示波器沿着只许信号在走向,一路测量,把测得波形和输入信号的波形对比。一级一级的测量,如果发现不对,再认真检查线路,如果线路一定是对的。那有可能是芯片出了故障而不能正常工作。可以换一个芯片试。如果换上新芯片后,工作正常,说明原来的芯片是坏的。就这样一点一点的调试,直到调试成功为止。 3:烧毁 在电路测试阶段由于没有保护措施,所用的芯片上面的四个或门有一个被烧毁了(由于当时还不知道,所以查了好久才发现问题所在,解决方法是用适当的电阻进行保护。 4:虚焊 这是焊接过程中经常遇到的问题,如果不加以纠正将使电路无法工作,而且这个问题很难检查出来,也只能利用万用表检查,我们刚发现是由于接上电路发现发光二极管是一直点亮的,后来发现是由于一个焊点虚焊导致或门的输入为接空引起的。 35 基于CPLD的汽车尾灯控制电路设计 结 论 通过这次基于CPLD汽车尾灯控制电路的设计,使我学了不少知识。汽车尾灯是汽车的重要部件之一,它在交通安全中扮演着重要的角色。这次设计的是简易汽车尾灯,实现较简单的逻辑功能。重点是通过本次设计过程,了解和掌握逻辑电路的设计、分析。 通过理论设计和实践验证,本设计基本实现了汽车尾灯控制电路的功能,即,汽车尾灯左、右各有3 个,从中间开始编号,分别用L1、L2、L3,R1、R2、R3表示。当汽车转向时,按L1?L1L2?L1L2L3?全灭?L1(或R1?R1R2?R1R2R3?全灭?R1)次序循环亮,亮持续为2 秒;当汽车刹车时,所有尾灯同时以2Hz 的频率闪烁;正常行驶时,所有尾灯灭。输入信号有左、右转向和刹车。 这次设计使我明白只有书本上的知识是不够的,还应加强自己的动手能力,将理论应用于实践,才能学到真正的知识。 36 基于CPLD的汽车尾灯控制电路设计 社会经济效益分析 汽车作为现代交通工具已大量进入人们的生活,随着电子技术的发展,对于汽车的控制电路,也已从过去的全人工开关控制发展到了智能化控制。在夜晚或因天气原因能见度不高的时候,人们对汽车安全行驶要求很高(汽车尾灯控制系统给大家带来了方便。汽车尾灯控制器是随汽车智能化技术的发展而迅速发展起来的,汽车尾灯一般是用基于微处器的硬件电路结构构成,正因为硬件电路的局限性,不能随意的更改电路的功能和性能,且可靠性得不到保证,因此对汽车尾灯控制系统的发展带来一定的局限性。难以满足现代汽车的智能化发展。 本设计硬件电路比较简单,只需四个模块,即汽车状态模块、左尾灯控制模块、右尾灯控制模块、时钟和其它一些简单元器件即可,制作成本低,大概在100元左右,如果能实现批量生产,成本可降至50元左右,具有很大的市场潜力和有广阔的发展前景,有一定的商业开发价值。 37 基于CPLD的汽车尾灯控制电路设计 致 谢 38 基于CPLD的汽车尾灯控制电路设计 参考文献 [1] 李方明。电子设计自动化技术及应用[M]。清华大学出版社,2006 [2] 潘 松,王国栋。VHDL 实用教程[M]。电子科技大学出版社,2004 [3] 徐志军。CPLD/FPGA的开发与应用[M]。电子工业出版社,2002 [4] 沈兵虎,韩瑞珍。FPGA 与CF 卡的接口设计[J].微计算机信息。2008,8-2: 228-229 [5] Samir Palnitkar 。Verilog HDL:A Guide to Digital Design and Synthesis, Prentice Hall,NJ,1996 [6] Quartus_II官方教程-中文版 [7] 周润景,图雅,张丽敏.。基于Quartus II 的FPGA/CPLD 数字系统设计实例[M]。 电子工业出版社,2007 [8] 王金明,VHDL 程序设计教程[M]。人民邮电出版社,2004 [9] 陈汝全主编。电子技术常用器件应用手册.2版。北京:机械工业出版社 ,2001 [10] 余孟尝主编。数字电子技术基础简明教程.2版。北京:高等教育出版社,1999 [11] 陈永甫编著。电子电路智能化设计实例与应用第一集。北京:电子工业出版 社, 2008 [12] 王辅春编。电子电路CAD与OrCAD教程(含光盘)。北京:机械工业出版社, 2005 39 基于CPLD的汽车尾灯控制电路设计 附 录 ? CPLD汽车尾灯控制电路设计源程序 汽车状态模块PRECONTROL源码: library ieee; use ieee.std_logic_1164.all; entity precontrol is port( left:in std_logic; right:in std_logic; stop:in std_logic; lft:out std_logic; rit:out std_logic; lr:out std_logic); end precontrol; architecture one of precontrol is begin process(left,right,stop) variable condition:std_logic_vector(2 downto 0); begin condition:=left&right&stop; case condition is when "000"=>lft<='0';rit<='0';lr<='0';--汽车正常行驶 when "100"=>lft<='1';rit<='0';lr<='0';--汽车左转弯 when "010"=>lft<='0';rit<='1';lr<='0';--汽车右转弯 when "001"=>lft<='0';rit<='0';lr<='1';--汽车刹车 when others=>null; end case; 40 基于CPLD的汽车尾灯控制电路设计 end process; end one; 左尾灯控制模块LEFTCONTROL源码: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity leftcontrol is port( clk:in std_logic; en:in std_logic;--汽车左转弯模块使能信号输入 lr:in std_logic;--汽车刹车信号输入,高有效 l2,l1,l0:out std_logic;--三个左尾灯控制信号输出 clk2sen,clk500msen:out std_logic);--2s和500ms时钟使能信号输出 end entity leftcontrol; architecture one of leftcontrol is signal clkop:std_logic; begin clkop<=clk; com1:process(en,clk,lr) variable tmp:std_logic_vector(2 downto 0); variable clken:std_logic_vector(1 downto 0); begin if lr='1' then tmp:=clkop&clkop&clkop;clken:="01";--汽车刹车,周期为500ms的时钟使能 elsif clk'event and clk='1' then if en='1' then --汽车左转弯 41 基于CPLD的汽车尾灯控制电路设计 if tmp="000" then tmp:="001";clken:="10";--周期为2s的时钟使能 elsif tmp="111" then tmp:="000";--在左转弯时灯全亮后再全息灭 灯每隔2s亮一个 else tmp:=tmp(1 downto 0)&'1';-- end if; end if; end if; l2<=tmp(2);l1<=tmp(1);l0<=tmp(0); clk2sen<=clken(1);clk500msen<=clken(0); end process; end one; 右尾灯控制模块RIGHTCONTROL源码: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity rightcontrol is port( clk:in std_logic; en:in std_logic; --汽车右转弯模块使能信号输入 lr:in std_logic; --汽车刹车信号输入,高有效 r2,r1,r0:out std_logic; --三个右尾灯控制信号输出 clk2sen,clk500msen:out std_logic); --2s和500ms时钟使能信号输出 end entity rightcontrol; architecture one of rightcontrol is signal clkop:std_logic; 42 基于CPLD的汽车尾灯控制电路设计 begin clkop<=clk; com1:process(en,clk,lr) variable tmp:std_logic_vector(2 downto 0); variable clken:std_logic_vector(1 downto 0); begin if lr='1' then tmp:=clkop&clkop&clkop;clken:="01";--汽车刹车,周期为500ms的时钟使能 elsif clk'event and clk='1' then if en='1' then --汽车右转弯 周期为2s的 if tmp="000" then tmp:="001";clken:="10";-- 时钟使能 elsif tmp="111" then tmp:="000";--在右转弯时灯全亮后再全息灭 else tmp:=tmp(1 downto 0)&'1'; --灯每隔2s亮一个 end if; end if; end if; r2<=tmp(2);r1<=tmp(1);r0<=tmp(0); clk2sen<=clken(1);clk500msen<=clken(0); end process; end one; 周期为2s的时钟模块TIMER2S源码: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; 43 基于CPLD的汽车尾灯控制电路设计 entity timer2s is port(clk:in std_logic; clkout:out std_logic); end entity timer2s; architecture one of timer2s is begin process(clk) variable counter:std_logic_vector(7 downto 0); variable qclkout:std_logic; begin if clk'event and clk='1' then --以128Hz为基本时钟源,对其上升沿计数 if counter="11111111" then --计数个数为256个即256×128Hz,2s qclkout:=not qclkout;clkout<=qclkout;counter:="00000000";--计数器满则输出反相计数器清零 else counter:=counter+1;--每捕捉到一个基本时钟源上升沿计数器加一 end if; end if; end process; end architecture one; 周期为500ms的时钟模块TIMER500MS源码: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; 44 基于CPLD的汽车尾灯控制电路设计 entity timer500ms is port(clk:in std_logic; clkout:out std_logic); end entity timer500ms; architecture one of timer500ms is begin process(clk) variable counter:std_logic_vector(7 downto 0); variable qclkout:std_logic; begin if clk'event and clk='1' then --以128Hz为基本时钟源,对其上升沿计数 if counter="01000000" then--计数个数为64个即64×128Hz,0.5s qclkout:=not qclkout;clkout<=qclkout;counter:="00000000";--计数器满则输出反相计数器清零 else counter:=counter+1; --每捕捉到一个基本时钟源上升沿计数器加一 end if; end if; end process; end architecture one; 45
本文档为【基于CPLD的汽车尾灯电路设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_212655
暂无简介~
格式:doc
大小:444KB
软件:Word
页数:0
分类:互联网
上传时间:2017-09-21
浏览量:30