《基于可编程逻辑器件CPLD芯片和VHDL语言实现彩灯控制器系统的设计.docx》由会员分享,可在线阅读,更多相关《基于可编程逻辑器件CPLD芯片和VHDL语言实现彩灯控制器系统的设计.docx(6页珍藏版)》请在第一文库网上搜索。
1、基于可编程逻辑器件CP1D芯片和VHD1语言实现彩灯控制器系统的设计彩灯作为一种景观,安装在建筑物的适当地方一是作为装饰增添节日气氛,二是有一种广告宣传的作用,也可用在舞台上增强晚会灯光效果。实现彩灯控制的方案很多,不同的控制方案,其设计方法和思路也不一样。本文介绍一种彩灯控制器的设计方法。该系统基于可编程逻辑器件CP1D(Comp1exProgrammab1e1ogiCDevice)芯片,利用VHD1硬件描述语言设计系统核心部件,施以适当的外围电路构Q出为32路薮至号,控制32路彩灯输出,上电后,彩灯系统无需外加输入信号,能自动循环演示十六种花型,彩灯明暗变换节拍为0.25秒和0.5秒,快慢
2、两种节拍自动交替运行。该系统较以前的传统设计,选用硬件电路简单、花型容量大,体积小,功耗低,可靠性高,特别是可以在使用一段时间后,不修改硬件电路的基础上,仅通过更改软件就可实现修改花型的编程控制方案。1、系统组成该彩灯控制器系统组成框图如图1所示。系统工作原理:彩灯控制器是以高、低电平控制灯的亮灭,按节拍改变送给各路的高、低电平,即1、0编码,就可控制彩灯按预定的规律亮灭,从而显示花型。彩灯控制器包括下列几部分。振荡器:提供系统工作的主时钟。节拍产生器:产生系统要求的快、慢节拍脉冲PH、P1,并根据系统运行情况,提供相应节拍,使彩灯明暗变换以快、慢两种节拍自动交替运行。地址码产生器:为编码发生
3、器提供合适的地址码,以保证按节拍读出规定的编码,复现预定的花型,并根据系统运行情况,送节拍产生器反馈信号,控制节拍按快慢两种自动交替运行。编码发生器:根据花型要求按节拍输出32位状态编码信号,以控制彩灯按规律亮灭。缓冲驱动器:为彩灯提供需要的工作电压和曳流,隔离负载对系统工作的影响。荡节拍产生湍地址码声黯编码发管缓冲驱动电路图1系统结构和图2、系统各单元设计2.1振荡器振荡器提供系统工作的主时钟。因彩灯控制器对定时要求不高,故选用简单易行的555定时振荡器。系统彩灯明暗变换节拍为0.25秒和0.5秒,我们使振荡器振荡频率为f=4Hz,电路原理图如图2所示。图中电阻R1=8K,Rw=4.7K,R
4、2=47K,电容C1=3.3uF,振荡频率输出端OUT送“节拍产生器”的输入端。2.2节拍产生器其作用产生系统要求的快、慢节拍脉冲,快节拍PH=O.25秒、慢节拍P1=0.5秒。快节拍频率直接由振荡器的频率传入,慢节拍频率将振荡器输出的频率进行二分频得到。节拍选择信号PC由地址码产生器产生,若第一轮花型循环输出为慢节拍,Pc为低电平,则第二轮花型循环,PC为高电平,第三轮花型循环,PC又为低电平,如此反复。节拍产生器输出节拍脉冲PP由P1和PH合成,P=五凡+PcPbo输出节拍频率PP送地址码产生器。该模块VHD1程序如下(略去声明部分):ENTITYjpxzIS一节拍产生器PORT(e1k:
5、INSTD_1OGIC;一传入振荡器频率Pc:INSTD_1OGIC;一节拍选择信号PP:outSTD_1OGIC);一输出节拍频率end;ARCHITECTUREjiepOFjpxzISsigna1PP1:STD_1OGIC;signa1PH:STD1OGIC;一快节拍信号signa1P1:STD_1OGIC;一慢节拍信号beginfenp:process(e1k)一将e1k时钟二分频,得到节拍为0.5秒的慢节拍BEGINIFe1kEVENTANDCIk=1THENPP1=NOTPP1;ENDIF;ENDPROCESS;PH二e1k;一快节拍的频率等于振荡器输出的频率P1二PP1;慢节拍PP
6、二(notPcandP1)or(PcandPH);PP为输出节拍信号,PC为高电平输出快节拍,PC为低电平输出慢节拍end;2.3地址码产生器其作用一是为编码发生器提供合适的地址码,二是为节拍产生器提供节拍控制信号。该部分主要电路,一部分为地址计数器,利用进程pO1:process(PPC1k)根据节拍产生器提供的节拍频率PP产生地址码,完成地址累加,实现预定花型的循环显示,同时利用jiep信号记录系统运行情况,该32路彩灯控制器演示花型共16种,花型循环一周共243拍,地址计数器将地址码累加到244,jiep值为T,地址码为其它值时,jiep值为0;另一部分内容为利用进程P02:PrOCeS
7、S(jiep)将jiep信号进行二分频,使输出花型在第一轮循环时,节拍选择信号PC为低电平,则第二轮花型循环时,PC为高电平,第三轮花型循环,Pc又为低电平,如此反复。该模块VHD1程序如下(略去声明部分):ENTITYcai_1iziIS一地址码产生器;PORT(ppc1k:INSTD_1OGIC;一节拍脉冲信号,由节拍产生器传入dzout:outintegerrange0to245;一地址码输出,16种花型运行一次共243拍Pc:outSTD1OGIC);一节拍选择信号,送节拍产生器end;ARCHITECTUREIiziOFcai_1iziISsigna1count:integerran
8、ge0to245;signa1jiep:STD_1OGIC;beginpO1:process(ppc1k)产生地址码beginifcount=244thencount=0;jiep=1;一16种花型运行一次共243拍e1sifrising_edge(ppc1k)thencount二count+1;jiep二0;endif;endprocess;P02:process(jiep)一将jiep信号进行二分频,产生节拍选择信号PC值VARIAB1ECount2:STD_1OGIC;BEGINIFjiep,EVENTANDjiep=iVTHENCount2:=NOTCount2;ENDIF;IFCou
9、nt2=1THENPc二1;E1SEPC二O;ENDIF;ENDPROCESS;dzout二count;end;2. 4编码发生器地址码产生器将输出的地址码送入编码发生器,编码发生器根据高、低电平控制灯的亮灭,即1、O编码,依据花型要求按节拍输出32位状态编码信号,以控制彩灯按规律亮灭。该模块VHD1程序如下(略去声明部分):ENTITYcai_bmqISPORT(dzout:INintegerrange0to245;一由地址码产生器传入地址码qout:OUTSTD1OGIC_VECTOR(31DOWNTO0)输出32位状态编码END;ARCHITECTUREbianmaOFcai_bmqIS
10、beginprocess(dzout)begincasedzoutiswhen0二qout二a10000000000000000000000000000000”;when1二qout二a11000000000000000000000000000000”;when2二qout=iIiooooooooooooooooooooooooooooo,;when241=;qout二aIooiooiooiooiooiooiooiooiooiooiowwhen242=;qout二0100100100100100100100100100100,when243=)qout二00100100100100100100
11、100100100100whenothers=qout=10010010010010010010010010010010w;endcase;endprocess;end;2.5 在CP1D芯片中顶层文件的原理图,如图3所示。图中JPXZ模块为节拍产生器,输入端C1K接振荡器的输出时钟,频率为4Hz,PC为节拍选择信号,PP为输出节拍。CA11IZ1模块为地址码产生器,CAI_BMQ模块为编码发生器,输出端QOUT31.0输出32位状态编码信号,接凌冲驱动电路。图3CP1D芯片中顶层文件的原用图2.6 缓冲驱动电路该模块为彩灯提供需要的工作电压和电流,隔离负载对系统工作的影响。首先根据每路彩灯的
12、功率选择继电器或双向亘控硅,再根据继电器或双向可控硅所需驱动电压和电流设计驱动电路。详细设计此处不再介绍。3、系统仿真测试与实物测试在基于MAX+P1USH软件平台,对该系统程序各模块进行仿真测试,图4所示为彩灯控制器顶层文件仿真波形图。Name:_Vaiua:121.2s1214s121.6s121s1220s11I4rIeout510|Xcoio.ooo!ooococ3)XTJ,-图I彩灯控制物顶层文件仿真波形图图中C1K为振荡器产生系统的主时钟,周期为0.25秒,qout31.01为彩灯控制器输出的32路数字控制信号(32位状态编码),图中所示当系统以慢节拍(0.5秒,2个周期一拍)输出
13、最后一组编码后,马上以快节拍(0.25秒,1个周期一拍)开始下一轮花型循环,达到设计要求。将该系统程序下载到MAX700OS系列的EPM7128S1C84-15目标芯片上,并配以外围电路进行实物测试(以皿灯代替彩灯),满足到设计要求。4、结束语本文作者创新点:以VHD1硬件描述语言进行设计,将彩灯控制器的核心部分集成在可编程逻辑器件CP1D芯片上,大大简化了外部电路,较以前的传统设计,既减少了所用芯片的种类和数量,缩小了体积,降低了功耗,提高了系统的整体性能,对系统在使用中的故障率大为减少。特别是,对花型设计方案的修改、增加花型数量都很方便,可以在不修改硬件电路的基础上,仅通过更改软件就可实现,具有广阔的应用前景。责任gt