基于AD9954的正弦信号发生器摘要:介绍了DDS的基本原理,DDS专用芯片AD9954的特性、内部结构和控制时序。提出了一种基于AD9954和微处理器的高精度正弦信号发生器的设计。文中给出了AD9954的硬件配置、控制线连接图,并重点对控制时序和软件做了讲解和说明。基于AD9954D的信号发生器的具有输出频率可调、稳定度高等特点,可应用于信号源和通信领域。关键词:直接数字频率合成(DDS)正弦信号发生器一、选题背景信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。正弦信号发生器在电路实验和设备检测中具有十分广泛的用途。例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器。传统信号发生器的实现方法通常有以下几种:(1)用分立元件组成的函数发生器:通常是单函数发生器且频率不高,其工作不很稳定,不易调试。(2)可以由晶体管、运放IC等通用器件制作,更多的则是用专门的函数IC产生。早期的函数IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。本作品中采用一种新的技术称为DDS频率合成技术,它具有频率分辨率极高、频率切换速度快、切换相位连续、输出信号相位噪声低、可编程、全数字化易于集成、体积小、重量轻等优点。DDS在大部分操作中使用数字电路,从而提供了数字操作所拥有的许多优势。利用单片集成芯片AD9954所设计的正弦信号发生器,能产生精准的正弦信号,达到较高的频率,且易于调试,降低了函数发生器的复杂度,提高了函数发生器的稳定性。二、系统总体设计2.1系统框图设计系统结构如图l所示,是以ARMLPC2148为控制核心构成的最小系统,外接矩阵键盘控制实现正弦信号的频率、幅度等参数的数字输入和微、粗调等控制;采用液晶Nokia5110模块实现实时显示输出信号幅度、频率以及用户所输入的参数数据等。该正弦信号发生器结构设计简单,功能强大,实用可行,是本设计的突出的特点,没有复杂的电路设计,主要强调对系统的软件控制,简化了硬件结构,缩小了体积和功耗,增加了系统设计的灵活性和使得开发这样的系统更加的简单便捷。ARM控制处理器键盘控制模块AD9954控制模块液晶显示模块图1系统总体设计框图2.2直接数字频率合成(DDS)的基本原理直接数字频率合成与锁相频率合成的实现原理完全不通,其基本原理是将正弦函数表存放在ROM中,在输出时按照一定的时钟节拍从该ROM中读出相关的离散的代表正弦幅度值的二进制数,然后经过D/A变换并通过低通滤波,得到一个模拟的正弦波,改变读数的节拍频率或者取点的个数,就可以改变正弦波的频率,即通过控制相位的变化速度,直接产生各种不同频率信号的一种频率合成方法。DDS的基本结构如图2所示,它主要由相位累加器、正弦ROM表、D/A转换器和低通滤波器构成。DDS的基本结构原理如图2所示,其中主要包括:系统时钟、相位累加器、正弦查询表、DAC数模转换器和低通滤波器。相位寄存器正弦查询表DACLPF∑FTW频率控制字Fclk系统时钟相位累加器图2DDS原理图其中,系统时钟Fclk用于各器件的同步;相位累加器由一个加法器和一个相位寄存器组成。相位累加器对应每个时钟脉冲累加一次,每次累加的量由频率控制字FTW来决定,然后将累加后得到的结果存人相位寄存器中,相位范围为π2~0,每个时钟周期内相位累加器以二进制形式去正弦查询表里寻址,正弦查询表里存放的是一张相位信息与数字化正弦幅度相对应的表,正弦查询表输出的数字化正弦波形再经过DAC转换为正弦阶梯信号,最后通过低通滤波器就可以得到一个完美的正弦信号。输出的频率F0是由参考时钟Fclk、相位累加器字长N和频率控制字FTW决定的,关系式如下:F0=Fclk*FTW/2N三、硬件系统的控制3.1AD9954芯片性能简介AD9954是采用先进的DDS技术开发的高集成度DDS器件。它内置高速、高性能D/A转换器及超高速比较器,可用作数字编程控制的频率合成器,能产生200MHz的模拟正弦波。AD9954内含1024×32静态RAM,利用该RAM可实现高速调制,并支持几种扫频模式。AD9954可提供自定义的线性扫频操作模式,通过AD9954的串行I/O口输入控制字可实现快速变频且具有良好的频率分辨率。其应用范围包括灵敏频率合成器、可编程时钟发生器、雷达和扫描系统的FM调制源以及测试和测量装置等。AD9954的基本原理框图如图3所示,有400MPSDDS核、14位DAC、参考时钟输入电路、时钟和控制电路、比较器以及用户接口6部分组成。参考时钟输入电路时钟和控制电路用户接口400MPSDDS核14位DAC比较器图3AD9954的基本原理框图AD9954的内部结构和引脚分布如图4、5所示,其主要特性如下:●内置400MSPS时钟;●内含14位DAC;●相位、幅度可编程;●有32位频率转换字、14位相位转换字;●4个频率/相位偏置等级;●可用串行I/O控制;●内置超高速模拟比较器;●可自动线性和非线性扫频;●内部集成有1024×32位RAM;●采用1.8V电源供电;●支持大多数数字输入中的5V输入电平;●可实现多片同步;图4AD9954内部结构图图5AD9954的引脚分布图3.2AD9954的幅度控制(1)自动整形开/关键控当自动整形开关键控被使能后,内部将在自动产生一个比例因子并且输入到乘法器用来控制DDS的输出幅度。比例因子有一个14位的计数器产生,该计数器的计数速度由一个8位寄存器的设置值来决定。当OSK引脚为高时,比例因子将增加;当OSK引脚为低时,比例因子将减小。比例因子为一个无符号数,为0时对应的DDS输出乘以0,为0x3fff时对应DDS输出乘以16383。比例因子没步增加或者减少的数量由幅度比例因子寄存器ASF的第15位和14位决定,其关系如表1所示。表1比例因子每步增加或者减少的数量与ASF第15、14位的关系ASF15:14每步增加或者减少的数量001012104118该功能可以设置DDS输出的最大幅度,因为DDS的输出幅度受到ASF寄存器的限制。因此,用户可以利用该功能来设置DDS的输出幅度。(2)人工整形开/关键控人工整形开/关键控即需要用户通过编程来设置输出幅度的比例因子,而不是内部自动产生。寄存器ASK定义了比例因子,因此在这种工作模式下,需要在编程时设置寄存器ASK来完成比例因子的设置。(3)OSK斜率定时器OSK斜率定时器用来为产生比例因子的14为计数器提供时钟信号。该定时器是一个计数器,当计数到1时,将载入寄存器ASF的值,在定时器使能后将会一直按照这种方式工作,除非强制在计数值未到1时重新载入值。3.3工作模式(1)单音模式在该模式下,DDS核利用静态转换字工作。当有值被写入寄存器FTW0时,将被加到相位累加器中。该静态转换字只有在新的数据被写入寄存器FTW0同时更新I/0时才会改变。在这种模式下,相位将利用相位偏移寄存器的值来调整。(2)RAM受控操作模式应用这种模式,需要注意以下几点:必须确保起始地址低于终止地址改变profiles或者更新I/0都会自动终止当前扫频,并开始下一个扫频将RAMdestination置位将会使能RAM输出驱动相位便宜加法器。RAMdes-tination位控制RAM输出驱动相位累加器或者相位偏移加法器。RAM的操作模式有5种,如表2所示表2RAM操作模式与设置RSCW7:5操作模式说明000直接转换模式有profiles;无扫频,忽略no-dwell001上斜坡模式有profiles;扫频,no-dwell010双向斜变模式有扫频,PS0位为直接控制位,忽略no-dwell011连续双向斜变模式有profiles,扫频,忽略no-dwell100连续循环模式有profiles,扫频,忽略no-dwell101,110,111未定义默认为直接转换模式3.4AD9954的串行操作在AD9954的串行操作中,指令字节用来指定读/写操作和寄存器地址。由于串行操作是在寄存器级别上发生的,因此串行端口控制器应能识别指令字节寄存器地址和自动产生适当的寄存器字节地址。在串行操作指令阶段和通信阶段,一般先传送指令阶段的指令字,指令阶段对应于SCLK的前8个上升沿,其对应的指令字(8比特)包含了以下信息:MSBD6D5D4D3D2D1LSBR/WXXA4A3A2A1A0其中R/W位用于决定指令字后的操作是读还是写,高电平为读出,低电平为写入;第6、5位的电平高低与操作无关;第4~0位则对应于A4~A0,表示操作串行寄存器地址,该地址信息同时包含了与该指令字所在指令段对应的通信段的传送字节数。指令阶段后接着是通讯阶段,传送对应于字节数的几个通信周期。通信周期完成后,AD9954的串口控制器即认为接下来的8个SCLK的上升沿对应的是下一个通信周期的指令字。IOSYNC引脚为高时将立即终止当前的通信周期,而当IOSYNC引脚状态回到低电平时,AD9954串口控制器即认为接下来的8个系统时钟的上升沿对应的是下一个通信周期的指令字,从而保持通信的同步。图6AD9954串行操作时序图AD9954的串行操作有两种数据传送方式,即从最高位开始传送和从最低位开始传送,这是由控制寄存器0的第8位来决定的。默认状态为低电平,此时先传送最高位,若为高电平则先传送最低位。3.5AD9954的RAMAD9954内部的1024×32静态RAM具有双向单一入口,对它进行的读/写操作不能同时进行,写操作优先。RAM的使能位是CFR31(控制功能寄存器31位),此位为低时,对RAM的操作只能通过串行端口;此位为高且CFR30为逻辑0时,RAM的输出为相位累加器的输入,此时给芯片提供的是频率转换字;此位为高且CFR30为逻辑1时,RAM的输出可作为相位偏移加法器的输入给芯片提供相位偏移控制字。写RAM的操作首先通过控制PS1、SP0来选择RAM段。然后再对相应的RAM控制寄存器写RAM操作的地址变化率、起始地址、终止地址、模式控制和停留方式位。RAM段控制寄存器的第5、6、7位可用来指示RAM操作的5种模式,即直接转换模式、上斜坡模式、双向斜变模式、连续双向斜变模式和连续循环模式。其中连续循环模式是使能RAM,RAM模式控制字为100,这种模式可提供自动、连续、单向的扫频,地址发生器从起始地址开始,当其增加到终止地址后会自动回到起始地址重新开始下次循环。RAM段控制寄存器的第39~24位可定义RAM控制器在每个地址停留的SYNC_CLK的周期数,取值范围是1~65535;第9、8、23~16位用于定义10位终止地址;第3~0、15~10位则用于定义10位起始地址。3.6矩阵键盘键盘作为一种最为普通的输入工具显得尤为重要。由于设计中需要实现多种多样的功能,如图7的矩阵键盘原理图,设计中选择了扩展性强的连线少的常用的矩阵键盘,将其外接于ARM的IO口中;实现了该信号发生器的控制功能的多样性也节省了I/O口图7矩阵键盘原理图如图8为键盘的功能面板,数字键用于输入使用者所要的频率或者幅度的数值;频率键表明是对频率的调节;幅度键是对幅度的调节控制;其中还加有对幅度的微、粗调的“+”、“-”键等;图8键盘功能分布图3.7液晶显示模块--诺基亚5110液晶显示屏液晶显示的主要功能是用于显示当前用户输入的频率数值,幅度的数值以及改变时的频率和幅度的数值。诺基亚5110液晶显示屏的主控芯片是PCD8544,PCD8544是一块低功耗的CMOSLCD控制驱动器,设计为驱动48行84列的图形显示。所有必须的显示功能集成在一块芯片上,包括LCD电压及偏置电压发生器,只须很少