有关波形发生器的知识更多,需要逐步学习波形发生器。如果要了解波形发生器,可以在编辑器中阅读之前的文章。本文对波形发生器的介绍主要是解释如何实现基于CPLD技术和RS-232串行端口的任意波形发生器的连接设计。如果您对本文将介绍的内容感兴趣,则不妨继续阅读。任意波形发生器(Arbitrary Wave Generator,以下简称AWG)广泛用于通信系统,测试系统等。本文使用自行开发的150 MSPS(百万采样每秒)12位DAC(数字模拟转换器)基于CPLD技术的300MSPS 12位DAC设计了AWG。要生成的波形由主机软件设置,然后将波形数据下载到AWG。 AWG将波形数据发送到高速DAC,以便在CPLD的高速控制电路下进行转换以形成所需的波形。让我们首先分析AWG的硬件结构。任意波形发生器的硬件结构。 AWG的工作过程是首先接收主机发送的波形数字信号并将其存储在SRAM中,然后启动控制电路以从SRAM中获取数据并将其发送到DAC进行数字转换,然后转换后的模拟信号被发送到低通滤波器形成波形。如果DAC的工作速度为150MSPS,则可以将数据发送到DAC,以150MHz的频率进行转换。微控制器的晶体振荡器输入通常在40MHz以下工作。没有这么高的速度将数据发送到DAC,因此请考虑使用CPLD来构建硬件控制电路。数据首先被传输到SRAM,然后在CPLD硬件控制电路的控制下,以150MHz的频率从SRAM提取数据,然后将其发送到DAC进行转换。其结构如图1所示。如果要形成正弦周期信号,则每个周期4个点可以合成一个波形,此时,它可以输出大约38MHz的高频信号。在该器件中,CPLD使用Altera的EPM7128AE,其最大工作频率为200MHz。该微控制器使用Atmel的AVR微控制器AT90S8515。它的主要功能是:增强型RISC架构CPU,8K闪存,512字节EEPROM,512字节内部SRAM,UART,SPI,宽电压范围:2.7-6.0V。 SRAM选择使用64K x 16的CY7C1021V。下面分析CPLD控制电路。 CPLD电路设计CPLD主要负责以高速率(150MHz)从SRAM到DAC提取数字。它的核心电路是一个13位计数器。波形数据文件的大小为8KB。如果要扩展wave文件的大小,可以根据需要增加CPLD的地址计数器容量。 CPLD内部构造的DAC控制电路如图2所示,下面对其控制流程进行分析。 PA [15:0]连接到AT90S8515的两个8位并行端口; D [15:0]连接到SRAM数据线D0-D15; AD [12:0]连接到SRAM地址线A0-A12; DB [15:0]连接到DAC的D0-D11(不适用于D12-D15); CLK_SEL选择计数器的时钟输入模式。 CLK_AVR连接到MCU的I / O端子,通过软件编程将脉冲信号输出到CLK_AVR上作为计数器时钟。 CLK_CPLD连接到150MHz时钟信号; / WR和/ WE连接到MCU的I / O端子。 PC下载数据时,其控制流程如下:①CLK_SEL= 0,选择软件时钟;②复位地址计数器;③MCU将数据发送到PA [15:0];④/ WR从0变为1,从MCU打开数据缓冲区。到SRAM器件将数据写入SRAM,并给CLK_AVR一个脉冲,使计数器增加1,以指向SRAM的下一个接收地址单元。数据下载完成后,启动CPLD将数据从SRAM提取到DAC,其控制流程如下:WE = 1,打开从SRAM到DAC的缓冲区。 ②CLK_SEL= 1,计数器的输入时钟选择一个150MHz的外部时钟,③复位地址计数器,在外部高速时钟的驱动下地址计数器开始计数,并从SRAM和发送到DAC进行数据转换。 CPLD的编程在QuartusII5.0环境中进行。 Quartus的设计输入支持AHDL,VHDL,Verilog和HDL等硬件描述语言的程序输入和图形输入,此处采用图形输入法。设计输入完成后,依次执行编译,功能仿真和时序仿真。下面的图3是CPLD将数据提取到DAC进行转换的时序仿真结果。图中CPLD的工作频率为125MHz,