单片机脉冲信号源的CPLD实现方案
扫描二维码
随时随地手机看文章
单片机产生的脉冲信号源由于是靠软件实现的,所以输出频率及步进受单片机时钟频率、指令数和指令执行周期的限制。文中介绍了一种以CPLD为核心的脉冲信号源,脉冲信号源的参数(频率、占空比)由工控机通过I/O板卡设置,设定的参数由数码管显示,这种脉冲信号源与其它脉冲信号发生电路相比具有输出频率高、步进小(通过选用高速CPLD可提高频率及缩小步进)、精度高、参数调节方便、易于修改等优点。
1系统组成及工作原理
脉冲信号源电路核心采用一片可编程逻辑器件EPM7128SLC84—10,它属于Ahera公司MAX7000系列产品,MAX7000系列产品是高密度、高性能的CMOSEPLD,是工业界速度最快的可编程逻辑器件系列,它是在Ahera公司的第二代MAX结构基础上采用先进的CMOSEEPROM技术制造的。MAX7000系列产品包括MAX7000E、MAX7000S、MAX7000A,集成度为 600~5000可用门,有32~256个宏单元和36—155个用户I/0引脚。这些基于EEPROM的器件能够组合传输延迟快至5.0ns,16位频率为178MHz。此外,它们的输入寄存器的建立时间非常短,能够提供多个系统时钟且有可编程的速度/功率控制。
MAX7000S是MAX7000系列的增强型,具有高密度,是通过工业标准4引脚JTAG接口实现在线可编程的,在线编程电压为5V。EPM7128SLC84—10有128个逻辑宏单元,2500个门电路,8个逻辑阵列块,68个L/O管脚,速度等级为一6(传输延迟 6ns),最高时钟频率为147.1MHz。整个信号产生及数码显示控制电路(不包括驱动)集成在一片中。脉冲信号源电路由时钟源、锁存器、计数器、控制电路、驱动电路以及数码管动态扫描显示电路组成,电路框图,如图l所示。
时钟电路采用80MHz有源晶振,它为系统提供时钟信号;锁存器1及锁存器2用于保存频率及占空比数据,为16位计数器提供预置值,锁存器位数为8位,设定的数据通过工控机输入,由于计数器位数为16位,故需分两次打人数据;计数器1及计数器2作为定时器,按锁存器1、2 设定的值计时,两个计数器交替工作,即一个计数器工作而另一个计数器不工作。当工作的计数器到达计时时间后,向控制电路发出时间到信号。控制电路接收计数器发出的信号,停止计数器工作,并重新装载计时数据,同时启动另一个计数器工作,从而产生规定频率、占空比的脉冲信号,并输出两路脉冲信号,如图2所示。为了提高信号源带负载能力,输出使用了7417367驱动芯片增加驱动电流。
显示电路图,如图3所示,其中需要显示的数据代码通过工控机输入。缓冲器74LS244用做多路开关,当选通信号有效时,该路锁存数据有效,数码管显示相应的数据。
频率及占空比数据按如下方式计算:
设要输出的频率为f,占空比为D,则锁存器1、2要设定的值分别为
其中fOSC为系统时钟,C1、C2采用2进制补码。由式(1),式(2)式可得到频率及占空比计算式
由上式可以看出信号源最高输出频率取决于系统时钟频率,最高频率为系统时钟频率的一半(C1、C2均为1),要提高信号源输出频率必须提高系统时钟频率,既采用高频晶振或倍频电路。占空比取决于C1与C1+C2的比值,输出频率为最高频率时,占空比为50%;同样最小步进也取决于系统时钟频率,提高系统时钟频率,就可使步进缩小。
如果要信号源输出频率为500kHz,占空比为0.5的脉冲波,则按式(1)、式(2)可以算出,C1=C2=HB0(16进制数)。将C1、C2通过工控机置入CPLD中。如果C1、C2为小数,则需取整,取整后需按式(3)、式(4)重新计算频率和占空比,算出的值为实际的频率与占空比。
2硬件编程
开发软件采用MaxPlusⅡ10.2,编程采用VHDL硬件描述语言。
编程采用层次结构,整个程序采用顶层模块和底层模块。顶层模块,如图4所示。底层模块包括系统包含的各组件。
整个程序编写完成后进行编译、仿真,仿真结果,如图5所示。编译、仿真通过后都正确,即可通过JTAG接口将程序下载到目标板CPLD中,目标板即可使用。
3系统控制软件
系统控制软件采用LabWindows/CVI编写,为了给锁存器置数,可采用如下程序实现:
4技术指标
本脉冲信号源输出脉冲频率:20~700kHz,占空比:1%~40%,时钟采用80MHz有源晶振。在700kHz时频率步进为6kHz,20kHz时频率步进为5Hz。
由于采用了EPM7128SLC84—10作为脉冲信号源的核心。电路结构简单,频率、占空比可任意设置,准确度高。同时操作简单方便,功能更易扩展。