单片机具有逻辑控制功能灵活的特点,复杂可编程逻辑器件(CPLD)具有集成度高、可靠性好及工作速度快的优点,基于二者各自的优点,设计了一种脉宽固定为1 μs,周期可调的单头、双头、三头三路脉冲产生电路,该脉冲发生器可实现在脉冲不间断的情况下改变周期,其波形要求精度高、漂移小、抗干扰能力强。
脉冲信号发生电路在电路实验和设备检测等工程中具有十分广泛的用途,例如某测试系统,需要给被测产品加入可调的多间隔脉冲激励信号,以使被测产品能按照要求工作在不同的状态。随着各种数字设备和工业标准持续、快速的发展以及市场对缩短产品开发周期的客观要求,脉冲信号发生电路已成为信号源市场的一大主流,其市场份额在迅速增长;同时,目前国内在测试中使用的脉冲发生电路几乎全部依赖进口。因此,研制出具有实用价值的脉冲发生电路,对满足国内、国际市场的需求具有重要意义。
1 系统总体结构
1.1 系统设计思想
系统采用模块化设计,单片机AT89S52和CPLD是整个系统的CPU,控制系统的协调。首先通过4x4按键模块设置系统脉冲信号的周期,选择脉冲输出方式,并给出状态指示;CPLD接收输入信号后与单片机进行数据通信,并将脉冲信号周期通过LCD1602显示,然后经过单片机和CPLD的数据处理,产生所需的脉冲信号,由CPLD输出。其中状态指示由3个不同颜色(红、绿、黄)的发光二极管给出,其电平由CPLD的I/0口输出;4x4按键模块键盘的前10个键位为数字0~9、第11个为小数点、第12到第14个为脉冲选择键A1,A2,A3用于选择输出方式(单头、双头、三头),另加一个确认键。
![图1 系统原理框图](http://www.ck365.cn/data/upload/201604/25/113709-88-0.jpg)
1.2 AT89S52单片机简介
AT89S52是一种低功耗、高性能的8位微控制器,具有8 k字节在系统可编程Flash存储器。AT89S52使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,AT89S52拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。
AT89S52具有以下标准功能:8 k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,3个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0 Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
1.3 EPM7128SLC84的特点
EPM7128SLC84是Altera公司开发的CPLD器件,属于MAX 7000S系列。在高集成度PLD器件中,MAX7000S系列是速度最快的类型之一,它内部为第二代MAX(MultipleArray Matrix)结构。除了集成度高的优点外,器件内部单元(cell)之间的连接采用连续的金属线,这种互连结构为单元之间提供了固定的、短时延的信号通道,从而消除了内部延时的难以预测性,并有效地提高了芯片资源的利用效率。
EPM7128SLC84是基于EEPROM的可编程CMOS器件,其主要性能指标为:外部引脚数目为84,内部等效门数为2 500左右;内部有128个逻辑宏单元(Maerocell),每16个宏单元组成一个逻辑阵列块(LAB),每个逻辑阵列块对应8个I/O引脚;除通用I/O引脚外,EPM7128SLC84有两个全局时钟、一个全局使能和一个全局清零输入;器件最高计数频率为151.5 MHz,内部互连延时为1ns.
EPM7128SLC84的主要特点为:支持通过JTAG口进行5 V电压的在片编程;宏单元的工作速率和功耗可编程选择,用户可决定每一个宏单元的工作模式--选择一般模式或是节能模式(功耗降低50%或更多,但延时加大);宏单元的触发器有独立的清零、预置、时钟和时钟使能控制,可通过编程进行设置;器件的引脚输出可设置,有以下3种选项:1)多电平I/O接口,通过硬件设置可使引脚输出支持5 V或3.3 V两种电平;2)输出回转速率(Slew-Rate)控制,用户可决定每一I/O引脚的输出回转速率,大回转速率缩小了信号通道的延时,但有可能加大瞬态躁声;3)集电极开路选择。具有一个完善、友好的软件环境支持器件开发,Ahera公司的EDA软件MAX+PlusⅡ集成了设计文件编辑、编译、仿真、时序分析和器件编程等各项功能,并能直接控制器件内部宏单元或输出引脚的设置;Altera的硬件描述语言AHDL与CPLD硬件结合紧密,并且提供优化的Megafunetion函数库,支持灵活地描述各类常用复杂电路,如计数器、锁相环等。
2 硬件电路设计
2.1 单片机电路设计
单片机应用系统工作时,除了进入系统正常的初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。所以系统的复位电路必须准确、可靠地工作。单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲(即2个机器周期)以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,系统采用按键电平复位方式。
单片机AT89S52的P1口与液晶显示模块LCD1602的数据端口相连,P3.2控制液晶模块的读写;对比度调整端连接一个10 kΩ的可调电阻,用来调整液晶显示亮度。另外,单片机的P2口与CPLD的8个I/O口相连,以进行数据传输,其电路设计如图2所示。
![图2 单片机电路连接](http://www.ck365.cn/data/upload/201604/25/113715-60-0.jpg)
2.2 CPLD电路设计
晶振是为处理器提供频率基准的元器件,属于系统不可或缺的一部分。通常分为有源晶振和无源晶振两个大类,无源晶振要求芯片内部有震荡器,并且其信号电压根据起振电路而定,允许不同的电压,但无源晶振通常信号质量和精度较差,需要精确的匹配外围电路,如需更换晶振要同时更换外围电路。有源晶振不需要芯片的内部振荡器,可以提供高精度的频率基准,信号质量也较无源晶振要好。
EPM7128SLC84需要提供外部时钟信号,由于CPLD对时钟精度要求甚高,通过前面的分析可知有源晶振的通信质量和精度较无源晶振高,所以采用1.000 MHz的有源晶体振荡器,电路的输出端口与处理器EPM7128SLC84的GCKL1连接,其具体电路设计如图3所示。
![图3 CPLD电路连接](http://www.ck365.cn/data/upload/201604/25/11-38-32-68-0.jpg)
3 系统软件设计
单片机采用AT89S52芯片,通过软件编程产生所要求的控制信号。主要的控制参数包括:信号周期、脉宽、分频电路的开始信号、地址发生器的复位信号。在MAX+PLUSⅡ开发环境中完成分频电路设计,可以省去大部分的中小规模集成电路和分离元件;使得电路具有集成度高、工作速度快、编程方便、价格低廉的显著优点。通过CPLD和数据预生成的信号实现方法,无需改变硬件电路,即可实现信号参数的任意调整;同时外围电路十分简单,为工程调试和应用带来了方便。其中波形仿真图如图4所示。
![图4 波形仿真图](http://www.ck365.cn/data/upload/201604/25/113720-12-0.jpg)
图4 波形仿真图
4 结论
所设计的脉冲信号发生器,充分利用了单片机及CPLD二者的优点,通过软件和硬件的结合,能够产生脉宽固定1μs,周期可调的单头、双头、三头脉冲,达到了设计要求,既可以作为普通脉冲信号源使用,也可以在一些特殊信号的条件下使用。