流水灯电路设计.docx
《流水灯电路设计.docx》由会员分享,可在线阅读,更多相关《流水灯电路设计.docx(17页珍藏版)》请在冰豆网上搜索。
流水灯电路设计
摘要:
本次设计要求采用可编程逻辑器件实现一个流水灯控制电路,8个LED灯能连续发出三种不同的流水显示形式,先是8个LED灯从左到右依次点亮,左边亮四个,右边亮四个,最后从中间往两边亮、两边往中间亮,实现了灯光的移动和闪亮效果,特别是用于夜晚装饰,可以使我们的生活更为丰富多彩,同时也发挥出可编程器件的灵活性特点,可以改动电路实现多种效果。
流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。
流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。
关键字:
EDA,CPLD,LED,状态机;
Abstract:
Thedesignrequirementsbyusingtheprogrammablelogicdeviceimplementsawaterlightcontrolcircuit,eightLEDlightsoutforthreedifferentwaterdisplayform,Thefirst8LEDlightslitupsequentiallyfromlefttoright,theleftfourbrightbright,rightfour,finallyfromthemiddletobothsides,bothsidestothemiddleofthebrightlight,realizethemiddleofmobileandablazeeffect,especiallyusedfordecoration,nightcanmakeourlifemorerichandcolorful,alsoplayaprogrammabledeviceofflexibility,canchangecharacteristicsDuoZhongcircuitimplementationeffect.
Waterlampisastringofaccordingtocertainrulesforshining,likewaterflowingwaterlightcontrolisaprogrammablecontroller,thecontrolapplicationinindustrialcontroltechnologythoughtalsoapplies.WaterlightcontrolmethodcanbeusedDuoZhong,butformodernprogrammablecontrollerbasedonthetechnologyforEDAwaterlampdesignalsoisverycommon.
Keyword:
EDA,CPLD,LED,statemachine;
目录
1、前言1
1.1EDA技术介绍1
1.2VerilogHDL简介1
2、总体方案设计2
2.2设计方案比较2
2.3方案论证2
2.4方案选择3
3、单元模块设计4
3.1CPLD系统电路4
3.1.1时钟电路4
3.1.2JTAG下载电路4
3.2LED灯输出电路5
3.3电源模块电路设计5
4、特殊器件的介绍7
4.1CPLD器件介绍7
5、软件实现8
5.1软件设计的程序8
6、系统仿真及调试10
6.1仿真10
6.2调试12
7.1设计小结13
7.2设计收获13
7.3致谢14
8、参考文献15
附录一:
CPLD中顶层模块连接图16
1、前言
1.1EDA技术介绍
EDA是电子设计自动化(ElectronicDesignAutomation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。
EDA技术是以计算机为工具,根据硬件描述语言HDL(HardwareDescriptionlanguage)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。
1.2VerilogHDL简介
VerilogHDL是一种硬件描述语言(HDL:
HardwareDiscriptionLanguage),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
VerilogHDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。
被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。
数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。
VerilogHDL语言具有下述描述能力:
设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。
所有这些都使用同一种建模语言。
此外,VerilogHDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。
这个语言的叙述之子集合是可合成(synthesizable)。
如果在一个电路设计的模组中仅包含可合成的叙述,那么这个电路设计就可以被适当的软件,转换合成为电脑芯片的电路。
1.3流水彩灯介绍
随着现在社会日益变化,人们对生活质量的要求越来越高,在物欲横流的今天,简单呆板的设计已经不能满足现在人们的审美要求。
而如今在许多场合可以看到彩色霓虹灯,LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到广泛的应用,用彩灯装饰街道和建筑已经成为一种时尚。
但是现在大多数彩灯控制器结构往往很多,电路复杂,功率消耗过多等缺点。
此外,从功能效果,灯亮模式少,且效果单一,缺乏用户可操作性,影响灯亮效果。
而本设计采用CPLD芯片,外围电路简单,元件少只要显示的LED灯和按键。
与普通LED灯相比,具有体积小,价格低,低能耗等优点。
2、总体方案设计
2.1设计内容
流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。
流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。
要求采用可编程逻辑器件实现一个流水灯控制电路,8个LED灯能连续发出三种不同的流水显示形式,先是8个LED灯全灭全亮,然后从左到右依次点亮,其次从中间往两边亮、两边往中间亮,实现了灯光的移动和闪亮效果,特别是用于夜晚装饰,可以使我们的生活更为丰富多彩,同时也发挥出可编程器件的灵活性特点,可以改动电路实现多种效果。
2.2设计方案比较
方案一:
本方案采用的是CPLD芯片及外围电路实现。
系统总体构成包括最小系统部分、时钟输入、LED灯显示部分共三个模块,工作原理为,时钟输入后,并在CPLD中译码输出,8个LED灯就流水显示CPLD中设置的各种花型。
其框图如图2-1:
LED灯
CPLD最小系统
时钟输入
图2-1基于CPLD实现流水灯控制框图
方案二:
由数电的逻辑器件来实现流水灯控制电路的设计,由555多谐振荡器提供稳定脉冲,74190芯片控制
异步并行置入控制端分别构成二进制加/减计数器,74191芯片控制
异步并行置入控制端改装成十一进制加/减计数器。
这里用3个555多谐振荡器提供3种频率达到分频效果。
74190十进制加/减计数器一片用来计数和输出信号通过译码器直接输出控制彩灯,74191改成十一进制加/减计数器用来达到10秒间歇1次,间歇时间为1秒的目的。
而控制流速用滑动变阻器调节电阻来改变输入脉冲频率,进而改变彩灯流速,其框图如图2-2所示:
555多谐振荡器
计数器
LED灯
移位寄存器
图2-2数电实现流水灯控制框图
2.3方案论证
方案一:
该方案是使用复杂可编程逻辑器件的CPLD芯片实现。
实现起来比较简单,一些功能模块在CPLD里面用VerilogHDL编程实现,比如分频器、优先编码器、显示译码器及其控制电路等;并且外围电路简单,元件少,只要显示的LED灯和按键。
此方案最大的优点在与可以很随意功能扩展,增加LED组数,修改方便,可以很容易在QuetusII中仿真系统工作时序。
方案二:
该系统是利用数字电路中的编码、译码、触发器实现。
这种小规模数字电路搭建起来比较复杂。
在设计中用到的芯片多,控制复杂,功耗大,在一些小型的设计中还可以,电路稍微复杂,则很难控制其时序。
2.4方案选择
结合现代人民生活水平的提升,流水灯的应用在各个领域,如节日的彩灯,娱乐场所的彩灯,装饰品等,流水灯整体性能的提升,也对其各个部件的性能提出了更高的要求,而且要维护方便,调试简单,稳定性要好,功耗低,结合本设计的要求及综合以上比较的情况,我们选择了基于CPLD的流水灯控制电路方案。
3、单元模块设计
3.1CPLD系统电路
CPLD(ComplexProgrammableLogicDevice)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。
是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。
其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。
CPLD主要是由可编程逻辑宏单元(MC,MacroCell)围绕中心的可编程互连矩阵单元组成。
其中MC结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。
CPLD器件具有速度快、功耗低、保密性好、程序设计灵活、抗干扰能力强、与外围电路接口方便等特点,越来越多的应用于各种工控、测量、仪器仪表等方面。
本系统使用的是ALTERA公司的MAXⅡEPM240。
要让其工作,必须附加时钟电路和JTAG下载电路构成最小系统。
3.1.1时钟电路
MAXⅡEPM240的时钟电路比较简单,在其18脚输入时钟信号即可。
本系统采用的20M有源晶振。
3.3V电源电压对其供电,其原理图如图3.1所示:
图3.1晶振电路
3.1.2JTAG下载电路
JTAG下载电路是为MAXⅡEPM240在程序用的,其原理图如图3.2所示:
图3-2JTAG下载电路
3.2LED灯输出电路
8个LED灯来显示各种流水的花型,其电路图如3.3所示:
图3-3LED灯输出电路
3.3电源模块电路设计
电源电路主要是为系统提供电源,因为CPLD是3.3V,故整个系统用3.3V,用一个LM7805稳压产生一个5V电压,然后通过LM1117降压为系统需要的标准3.3V。
外接6~8V直流电压输入,通过二极管整流,电容C滤波后送入LM7805稳压,一路送入LM1117中降压,一路送入蜂鸣器提供驱动。
原理图如下图3.5和3.6所示:
图3.55V电源电路
图3.63.3V电源电路
LM1117是一个低压差电压调节器系列。
其压差在1.2V输出,负载电流为800mA时为1.2V。
它与国家半导体的工业标准器件LM317有相同的管脚排列。
LM1117有可调电压的版本,通过2个外部电阻可实现1.25~13.8V输出电压范围。
另外还有5个固定电压输出(1.8V、2.5V、2.85V、3.3V和5V)的型号。
LM1117提供电流限制和热保护。
电路包含1个齐纳调节的带隙参考电压以确保输出电压的精度在±1%以内。
LM1117系列具有LLP、TO.263、SOT.223、TO.220和TO.252D.PAK封装。
输出端需要一个至少10uF的钽电容来改善瞬态响应和稳定性。
4、特殊器件的介绍
4.1CPLD器件介绍
CPLD(ComplexProgrammableLogicDevice)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。
是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。
其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统.
CPLD主要是由可编程逻辑宏单元(MC,MacroCell)围绕中心的可编程互连矩阵单元组成。
其中MC结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。
由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。
20世纪70年代,最早的可编程逻辑器件--PLD诞生了。
其输出结构是可编程的逻辑宏单元,因为它的硬件结构设计可由软件完成(相当于房子盖好后人工设计局部室内结构),因而它的设计比纯硬件的数字电路具有很强的灵活性,但其过于简单的结构也使它们只能实现规模较小的电路。
为弥补PLD只能设计小规模电路这一缺陷,20世纪80年代中期,推出了复杂可编程逻辑器件--CPLD。
目前应用已深入网络、仪器仪表、汽车电子、数控机床、航天测控设备等方面。
它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。
几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。
CPLD器件已成为电子产品不可缺少的组成部分,它的设计和应用成为电子工程师必备的一种技能。
CPLD器件具有速度快、功耗低、保密性好、程序设计灵活、抗干扰能力强、与外围电路接口方便等特点,越来越多的应用于各种工控、测量、仪器仪表等方面。
5、软件实现
通过至顶向下(TOP--DOWN)的设计方法,我们对电路的设计要求作了分析,从电路要实现的功能着手,逐层分析电路设计的步骤,再具体到各个模块的设计实现以及各模块实现方案的选择。
从本设计的电路要求,分析出程序及状态图如下。
5.1软件设计的程序
moduleliushuiled(clk20M,reset,z,clk1hz);
inputclk20M;
outputreg[7:
0]z;
outputclk1hz;
inputreset;
reg[4:
0]state;reg[23:
0]count;
wireclk1hz;
parameters0=0,s1=1,s2=2,s3=3,s4=4,s5=5,s6=6,s7=7,s8=8,s9=9,
s10=10,s11=11,s12=12,s13=13,s14=14,s15=15,s16=16,s17=17,
s18=18,s19=19;
always@(posedgeclk20M)
begin
count<=count+1;
end
assignclk1hz=count[5];
always@(posedgeclk1hz)
beginif(reset)state<=s0;
elsecase(state)
s0:
state<=s1;s1:
state<=s2;
s2:
state<=s3;s3:
state<=s4;
s4:
state<=s5;s5:
state<=s6;
s6:
state<=s7;s7:
state<=s8;
s8:
state<=s9;s9:
state<=s10;
s10:
state<=s11;s11:
state<=s12;
s12:
state<=s13;s13:
state<=s14;
s14:
state<=s15;s15:
state<=s16;
s16:
state<=s17;s17:
state<=s18;
s18:
state<=s19;s19:
state<=s0;
default:
state<=s0;
endcase
end
always@(state)
begincase(state)
s0:
z<=8'b10000000;
s1:
z<=8'b11000000;
s2:
z<=8'b11100000;
s3:
z<=8'b11110000;
s4:
z<=8'b11111000;
s5:
z<=8'b11111100;
s6:
z<=8'b11111110;
s7:
z<=8'b11111111;
s8:
z<=8'b00000000;
s9:
z<=8'b11110000;
s10:
z<=8'b00001111;
s11:
z<=8'b10000001;
s12:
z<=8'b11000011;
s13:
z<=8'b11100111;
s14:
z<=8'b11111111;
s15:
z<=8'b00000000;
s16:
z<=8'b00011000;
s17:
z<=8'b00111100;
s18:
z<=8'b01111110;
s19:
z<=8'b11111111;
default:
z<=8'b00000000;
endcase;
end
endmodule
6、系统仿真及调试
6.1仿真
通过QuartusII软件,进行了仿真,其仿真波形如下图6-1所示:
图6-1波形仿真图
由设计要求可知,本设计要求采用可编程逻辑器件实现一个流水灯控制电路,8个LED灯能连续发出三种不同的流水显示形式,先是8个LED灯从左到右依次点亮,然后左边亮4个,右边亮4个,最后从中间往两边亮、两边往中间亮,实现灯光的移动和闪亮效果,从仿真的波形可以看出,实现了相应的功能。
在QuartusII软件中利用硬件描述语言描述电路后,用RTLViewers生成的对应的电
路图如6-2所示:
图6-2用RTLViewers生成的电路
6.2调试
在QuartusII软件中,通过对所设计的硬件描述语言代码进行波形仿真后,达到了预期效果,于是,我们在该软件上进行下载配置设置。
调试过程为在线调试。
在通过调试中,我们发现了很多问题,现归纳如下:
(1)在软件上能实现仿真的程序不一定在硬件电路上就能运行,原因有很多,这里是由于电路中的时钟频率太快,若不增加一个分频电路,灯闪烁时间太快,肉眼无法观察,故设计了一个20MHZ到1HZ的分频电路。
(2)由于分频的运算很大,故增加分频电路后,在QuartusII软件中则不能进行正确的仿真,可以直接将程序下载到电路板上去调试。
7、总结
7.1设计小结
通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。
而安排课程设计的基本目的,是在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟和领悟力。
尤其是观察、分析和解决问题的实际工作能力。
它的一个重要功能,在于运用学习成果,检验学习成果。
运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。
检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。
实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。
这也是一次预演和准备毕业设计工作。
通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。
课程设计促进了我系人才培养计划的完善和课程设置的调整。
课程设计之后,我们普遍感到不仅实际动手说,这应该是个警示,在剩下的大学生活里,我应该好好珍惜,好好学习各方面的知识。
7.2设计收获
通过对流水灯的制作,清楚地看到了自己在EDA方面知识的薄弱,各个知识点没有联会贯穿,EDA基础知识的掌握也不够牢固。
通过本次设计,我们在对EDA这门技术上有了更深刻的认识,也从实践的例子中去感受到了EDA设计给我们设计带来的改变与进步,充分体会到了实际操作的重要性。
通过这次课程设计,可以很好的把各个章节的模块融合到一起,对以后的学习,设计很有帮助,让我感觉自己在动手操作方面有质上的飞跃。
我们不仅掌握QuartusII软件的使用,与此同时,我们还对电子设计的思路有了更多的认识。
通过对EDA设计中的TOP-DOWN设计方式的运用,体会到了对于一个大型系统的设计方案选取应从顶向下的设计思路,这与传统的至底向上的设计方式有很大改进,且设计效率得到大大提高。
通过这次的实验,理解了电子技术设计的设计方法和流程,夯实了QuartusII的操作流程。
经过将近一周时间的自我学习做设计,课程设计过程中我不仅检验了我以往所学习的理论知识,而且还丰富了课外知识学到了许多在课上没有学过的东西,更重要是经验。
这份宝贵的经验为以后我们步入社会也奠定了基础。
通过这次设计,我的多方面都有所提高,体会到了自己单独做设计时的能力不足,以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补,还有再此期间我通过查阅资料上网搜索有学习到了许多课上学不到的东西,当然对学过的知识也是一种巩固。
很显然,任何的实践活动,都不可能闭门造车,是必须去吸取前人的实践经验,这就要求在课程设计的过程中,从网络上,从图书馆,借寻相关资料书籍等,有力地指导课程设计。
进一步认清了毕业走向。
这就要求在最后的大学时间里,要继续夯实相关的理论知识,继续多动手操作,提高具体的实践操作能力,为即将毕业的工作出路,做好充分的准备。
7.3致谢
在老师们的辛勤指导下,我们小组同学积极讨论和思考,完成本此课程设计,此次设计,使我们受益匪浅。
在此我要感谢电气信息学院提供这次课程设计的机会;感谢电气信息学院各位老师的帮组。
在这里我要特别感谢阳小明老师,在我们的设计过程中,至始至终都得到了阳小明老师的悉心指导,我的设计才得以顺利完成。
8、参考文献
[1]黄继昌.控制专用集成电路及其应用人民邮电出版社.2006.7
[2]陈赜CPLD/FPGA与ASIC设计实践教程科学出版社2005.8
[3]康华光电子技术基础高等教育出版社2000
[4]谢自美电子线路设计.实验.测试华中科技大学出版社2000
附录一:
CPLD中顶层模块连接图