已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDA课程设计:基于CPLD的汽车尾灯控制系统 1 设计要求及其分析1.1 设计要求汽车尾灯左、右各有3个,从中间开始编号,分别用L1、L2、L3,R1、R2、R3表示。当汽车转向时,按L1L1L2L1L2L3全灭L1(或R1R1R2R1R2R3全灭R1)次序循环亮,亮持续为2秒;当汽车刹车时,所有尾灯同时以2Hz的频率闪烁;正常行驶时,所有尾灯灭。输入信号有左、右转向和刹车。1.2 功能分析从以上设计要求,将本系统分成四个功能设计模块:汽车状态模块:该模块接收左转、右转、刹车和正常行驶的控制信号,根据所接受的信号控制左尾灯控制模块和右尾灯控制模块。左尾灯控制模块:接受汽车状态模块的控制信号对左边三个尾灯的亮与灭进行控制。右尾灯控制模块:接受汽车状态模块的控制信号对右边三个尾灯的亮与灭进行控制。时钟模块:由于当汽车转弯时尾灯按照一定顺序循环亮灭,亮持续时间为2s,而刹车时尾灯又以2Hz的频率闪烁,故该模块提供周期为2s和500ms的时钟信号供左尾灯控制模块和右尾灯控制模块控制尾灯的亮灭。2 功能模块的设计与实现2.1 汽车状态模块设计的汽车状态模块如图2.1.1所示,源程序见附录:汽车状态模块PRECONTROL。图2.1.1 汽车状态模块PRECONTROL其中LEFT、RIGHT、STOP分别表示左转、右转和刹车信号,对应的输出引脚LFT、RIT、LR分别表示左有效、右有效和刹车有效。真值表如表2.1.1所示:信号LEFTRIGHTSTOPLFTRITLR意义逻辑状态000000正常行驶100100左转弯010010右转弯001001刹车表2.1.1 汽车状态控制信号与输出信号真值表2.2 左尾灯控制模块与右尾灯控制模块设计的左尾灯控制模块如图2.2.1所示,源程序见附录:左尾灯控制模块LEFTCONTROL。图2.2.1 左尾灯控制模块LEFTCONTROL对各输入与输出引脚的说明如下:CLK:接受时钟信号,用于尾灯的顺序循环亮灭。CLK将接收两种不同频率的时钟信号即周期为2s和500ms中的一种,具体接收哪一种由该模块的时钟使能输出信号CLK2SEN和CLK500MSEN决定。EN:与汽车状态模块PRECONTROL的LFT引脚连接,用于使能该左尾灯控制模块。LR:汽车刹车输入信号,与汽车状态控制模块PRECONTROL的LR引脚相连。由于当汽车右转弯、正常行驶和刹车时,该模块EN引脚都将接收到低电平,故而需要通过判断LR和EN的引脚电平才能判断汽车当前是处于刹车状态还是右转弯或正常行驶状态。L2、L1、L0:汽车左边的三个尾灯控制信号。CLK2SEN、CLK500MSEN:时钟的选择信号。这两个引脚将根据汽车当前所处的状态使能相应的时钟。当汽车出处于左转弯时,CLK2SEN输出高电平,CLK500MSEN输出低电平,此时CLK将接收到周期为2s的时钟信号以满足按L1L1L2L1L2L3全灭L1次序循环亮,亮持续为2s对时钟的需要;当汽车处于刹车状态时,CLK2SEN输出低电平,CLK500MSEN输出高电平,此时CLK将接收到周期为500ms的时钟信号以满足汽车刹车是所有尾灯以2Hz的频率闪烁的设计要求。设计的右尾灯控制模块如图2.2.2所示,源程序见附录:左尾灯控制模块RIGHTCONTROL。 图2.2.2 右尾灯控制模块RIGHTCONTROL右尾灯控制模块RIGHTCONTROL各引脚功能与左尾灯控制模块LEFTCONTROL各引脚功能相似,这里不再详述。2.3 时钟模块2s时钟模块和500ms时钟模块分别如图2.3.1和图2.3.2所示: 图2.3.1 2s时钟模TIMER2S 图2.3.2 500ms时钟模块TIMER500MS左尾灯控制模块LEFT通过CLK2SEN和CLK500MSEN来控制该模块CLK接收到的时钟信号的实现原理如下图2.3.3所示:图2.3.3 时钟选择实现原理图当汽车左转弯时,左尾灯控制模块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这两个时钟模块,这里不再详述其实现原理。3 顶层文件设计与软件流程图3.1 顶层文件的设计顶层文件如图3.1.1所示:图3.1.1 顶层文件设计图由上图,顶层文件中包含了左尾灯控制模块LEFTCONTROL和右尾灯控制模块RIGHTCONTROL的时钟选择逻辑图,另外由于LEFTCONTROL和RIGHTCONTROL的软件设计所限,两模块均不能控制在汽车正常行驶时所有尾灯的熄灭,在汽车正常行驶时所有尾灯均熄灭是通过如图3.1.1所示的由或门和与门组成的外围逻辑电路实现的。下面来说明该设计的可行性:如图3.1.1所示,当汽车正常行驶时,汽车状态控制模块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的控制。汽车状态信号输入左转弯右转弯刹车正常行驶3.2 软件流程图汽车状态模块PRECONTROL状态判断正常行驶刹车右转弯左转弯外围或门和与门逻辑电路左尾灯与右尾灯控制模块均使能左尾灯控制模块LEFTCONTROL使能右尾灯控制模块RIGHTCONTROL使能尾灯全部熄灭周期为500ms时钟使能,左右尾灯均以2Hz频率闪烁周期为2s时钟使能,右尾灯每2s亮一盏灯周期为2s时钟使能,左尾灯每2s亮一盏灯4 附录:4.1 汽车状态模块PRECONTROL源码:library ieee;use ieee.std_logic_1164.all;entity precontrol isport(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 isbeginprocess(left,right,stop)variable condition:std_logic_vector(2 downto 0);begincondition:=left&right&stop;case condition iswhen 000=lft=0;rit=0;lrlft=1;rit=0;lrlft=0;rit=1;lrlft=0;rit=0;lrnull;end case;end process;end one;4.2 左尾灯控制模块LEFTCONTROL源码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity leftcontrol isport(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 issignal clkop:std_logic;beginclkop=clk;com1:process(en,clk,lr)variable tmp:std_logic_vector(2 downto 0);variable clken:std_logic_vector(1 downto 0);beginif lr=1 then tmp:=clkop&clkop&clkop;clken:=01;-汽车刹车,周期为500ms的时钟使能elsif clkevent and clk=1 then if en=1 then -汽车左转弯if tmp=000 then tmp:=001;clken:=10;-周期为2s的时钟使能elsif tmp=111 then tmp:=000;-在左转弯时灯全亮后再全息灭else tmp:=tmp(1 downto 0)&1;-灯每隔2s亮一个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;4.3右尾灯控制模块RIGHTCONTROL源码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity rightcontrol isport(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 issignal clkop:std_logic;beginclkop=clk;com1:process(en,clk,lr)variable tmp:std_logic_vector(2 downto 0);variable clken:std_logic_vector(1 downto 0);beginif lr=1 then tmp:=clkop&clkop&clkop;clken:=01;-汽车刹车,周期为500ms的时钟使能elsif clkevent and clk=1 then if en=1 then -汽车右转弯if tmp=000 then tmp:=001;clken:=10;-周期为2s的时钟使能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;4.4 周期为2s的时钟模块TIMER2S源码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity timer2s isport(clk:in std_logic;clkout:out std_logic);end entity timer2s;architecture one of timer2s isbeginprocess(clk)variable counter:std_logic_vector(7 downto 0);variable qclkout:std_logic;begin if clkevent and clk=1 then -以128Hz为基本时钟源,对其上升沿计数if counter= then -计数个数为256个即256128Hz2sqclkout:=not qclkout;clkout=qclkout;counter:=;-计数器满则输出反相计数器清零else counter:=counter+1;-每捕捉到一个基本时钟源上升沿计数器加一 end if; end if; end process;end architecture one;4.5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《营业税课件》课件
- 《统计调查技能模块》课件
- 《认识宝岛台湾》课件
- 《王老吉的市场营销》课件
- 《网页设计与鉴赏》课件
- 2025年中考语文文言文总复习-教师版-专题01:文言文阅读之理解实词含义(讲义)
- 鞋业生产线采购招标合同三篇
- 教育机构话务员工作总结
- 药品医疗器械销售心得分享
- 儿童感染科护理工作总结
- 理解词语句子的方法PPT
- 作文开头与结尾PPT课件ppt(共42张PPT)
- 重症医学科运用PDCA循环提高消毒棉签开启时间标注的执行率品管圈成果汇报
- 云南面向东南亚、南亚区域物流系统优化研究的开题报告
- 高效课堂教学流程和课堂常规公开课一等奖市赛课获奖课件
- 《新媒体营销与策划》考试复习题库(含答案)
- 浙江宁波广播电视集团发射中心招考聘用笔试参考题库答案解析
- 2024年航天知识总结
- 公立医院章程范本(中国医院协会2019版)
- 江苏小高考(物理化学生物)真题及答案
- 垃圾开挖清运方案
评论
0/150
提交评论