基于AD9851信号发生器的设计

发布者:chaxue1987最新更新时间:2012-03-03 来源: 现代电子技术 关键字:DDS  数字频率合成  AD9851  微处理器  C语言 手机看文章 扫描二维码
随时随地手机看文章
0 引言
    直接数字合成(Direct Digital Synthesis—DDS)是近年来新的电子技术。单片集成的DDS产品是一种可代替锁相环的快速频率合成器件。DDS是产生高精度、快速变换频率、输出波形失真小的优先选用技术。DDS以稳定度高的参考时钟为参考源,通过精密的相位累加器和数字信号处理,通过高速D/A变换器产生所需的数字波形(通常是正弦波形),这个数字波经过一个模拟滤波器后,得到最终的模拟信号波形。
DDS系统一个显著的特点就是在数字处理器的控制下能够精确而快速地处理频率和相位。除此之外,DDS的固有特性还包括:相当好的频率和相位分辨率(频率的可控范围达μHz级,相位控制小于0.09°),能够进行快速的信号变换(输出DAC的转换速率百万次/秒)。

1 AD9851集成芯片简介
    AD9851是在AD9850的基础上,做了一些改进以后生成的具有新功能的DDS芯片。AD9851相对于AD9850的内部结构,只是多了一个6倍参考时钟倍乘器,当系统时钟为180MHz时,在参考时钟输入端,只需输入30 MHz的参考时钟即可。AD9851是由数据输入寄存器、频率/相位寄存器、具有6倍参考时钟倍乘器的DDS芯片、10位的模/数转换器、内部高速比较器这几个部分组成。其中具有6倍参考时钟倍乘器的DDS芯片是由32位相位累加器、正弦函数功能查找表、D/A变换器以及低通滤波器集成到一起。这个高速DDS芯片时钟频率可达180MHz,输出频率可达70 MHz,分辨率为0.04Hz。
    AD9851可以产生一个频谱纯净、频率和相位都可编程控制且稳定性很好的模拟正弦波,这个正弦波能够直接作为基准信号源,或通过其内部高速比较器转换成标准方波输出,作为灵敏时钟发生器来使用。
    AD9851的各引脚功能如图1所示。

a.jpg


    D0~D7:8位数据输入口,可给内部寄存器装入40位控制数据。
    PGND:6倍参考时钟倍乘器地。
    PVCC:6倍参考时钟倍乘器电源。
    W-CLK:字装入信号,上升沿有效。
    FQ-UD:频率更新控制信号,时钟上升沿确认输入数据有效。
    FREFCLOCK:外部参考时钟输入。
    CMOS/TTL脉冲序列可直接或间接地加到6倍参考时钟倍乘器上。在直接方式中,输入频率即是系统时钟;在6倍参考时钟倍乘器方式,系统时钟为倍乘器输出。
    AGND:模拟地。
    AVDD:模拟电源(+5 V)。
    DGND:数字地。
    DVDD:数字电源(+5 V)。
    RSET、DAC:外部复位连接端。
    VOUTN:内部比较器负向输出端。
    VOUTP:内部比较器正向输出端。
    VINN:内部比较器的负向输入端。
    VINP:内部比较器的正向输入端。
    DACBP:DAC旁路连接端。
    IOUTB:“互补”DAC输出。
    IOUT:内部DAC输出端。
    RESET:复位端。低电平清除DDS累加器和相位延迟器为0 Hz和0相位,同时置数据输入为串行模式以及禁止6倍参考时钟倍乘器工作。
[page]

2 系统硬件设计
2.1 设计方案
    本设计方案采用AD9851芯片的并行数据模式,系统框图如图2所示。系统包含单片机电路、AD9851芯片、低通滤波器电路、功率放大电路以及信号输出电路共5部分。其中单片机电路部分选用通用的51系列单片机AT89S52,外部晶振频率为12 MHz。低通滤波器电路选用无源滤波器来进行设计,由于本设计最高输出频率为30 MHz,所以低通滤波器的截止频率在40 MHz左右。基准时钟采用贴片封装30.000 0 MHz有源晶振,为AD9851芯片提供高稳定度,高精确度的信号源。

b.jpg


2.2 低通滤波器电路的设计
    低通滤波器电路采用2阶LC椭圆低通滤波器,能有效抑制DDS的输出杂散。电路如图3所示。

c.jpg


2.3 功率放大电路的设计
    功率放大电路采用AD828宽频带运放芯片。AD628内部集成两个运算放大器,供电方式有双电源供电和单电源供电两种,特别适合于高频信号的变换与传输。本设计中为了提高信号峰峰值的输出幅度,芯片电源采用双电源正负10 V直流电源。这样可以保证在10 MHz的带宽内得到一个相对较高的电压幅度。

3 系统软件设计
3.1 AD9851的复位工作时序
    AD9851的复位时序如图4所示。从时序可以看出,AD9851芯片复位的条件是在RESET引脚出现一个高电平,并持续时间至少为trs。根据手册提供的时间参数,可知道trs最短时间是5个系统时钟,没有时间上限。由于系统电路中,单片机的晶振采用12 MHz。执行一条指令所需要的时间是1μs,为了保证复位时序的可靠性,采用复位的时间为10ms。

d.jpg

[page]

    具体复位子程序如下:
    e.jpg
    该子程序中用到delay_μs()延时程序延时约1μs。
3.2 写频率字的工作时序
    写频率字的工作时序是AD9851芯片的关键时序,它关系着信号发生器功能的实现。并行模式下,写频率字的工作时序如图5所示。

f.jpg


    由时序图,可以看出:
    在输出频率控制字之前。必须完成W_CLK和FQ_UD置低电平的工作;然后依次把5个频率控制字发送出去;在发送数据时,必须严格把握工作时序。tds是数据的建立时间,tdh是数据的保持时间,twh和twl分别是W_CLK的高电平和低电平的持续时间,根据手册可知,以上4个时间至少为3.5ns。由于S52单片机的晶振比较低,满足工作时序没有问题。
    DATA在W_CLK上升沿到来时有效。
    写频率控制字的子程序如下:
g.jpg

4 系统测试
    下面是AD9851设置输出不同频率时,通过100MHz泰克示波器观察到波形图,如图6所示。通过其波形图,可以看出,DDS的输出频率在60 MHz以下十分精确和稳定,波形比较完美,频谱比较干净。设计频率在70 MHz时,波形失真越严重,频谱的各次谐波逐渐增多。并且DDS正弦输出的幅度随频率增高而下降。低频端约1Vpp,高频端约200mVpp,实际应用中应外加合适的宽带放大器。

h.jpg



5 结束语
    本文通过通用型单片机AT89S52单片机,完成了基于高精度DDS芯片AD9851的正弦波信号发生器的设计与验证。

关键字:DDS  数字频率合成  AD9851  微处理器  C语言 引用地址:基于AD9851信号发生器的设计

上一篇:基于51单片机的光功率计的设计
下一篇:针对C8051F单片机的手持编程器(SMP)介绍

推荐阅读最新更新时间:2024-03-16 12:54

PIC单片机C语言程序设计实例之C语言if语句与LED数码管显示
if 语句也称为条件语句,是C 语言中转移语句之一。在设计C 语言程序时,常常要根据某些条件以决定程序运行的流向,这时就需要if 语句来实现。任何if语句(包括else 部分),都可当作一条C 语句使用。 格式:if(表达式) 语句1 else 语句2 其中else 为选择项;即可有、可无的。所以条件语句,可分为两种;if 语句和if— else 语句。 式中的表达式为关系表达式或逻辑表达式以及由条件运算符(有关运算符将在后文介绍)构成的一种表达式。 功能:先计算if 中的条件表达式,其值为真(满足条件时),执行语句1 ;其值为假(不满足条件时),若有else,就执行语句2。 If 语句常用有几种形式:
[单片机]
PIC单片机<font color='red'>C语言</font>程序设计实例之<font color='red'>C语言</font>if语句与LED数码管显示
使用经济振荡器为8051微处理器提供时钟
使用基于8051的微控制器时,必须谨慎选择外部时钟基准,以确保满足控制器串行接口的时序要求。通常,8051串行端口与RS-232发射器/接收器一起使用,以提供到另一个处理器或主机处理器的串行通信链路。RS-232规范具有特定的时序要求,必须满足这些要求才能保证与使用此协议的所有其他设备的通信。基于 8051 的处理器使用外部时序参考(晶体或时钟)和内部可编程分频器链的组合生成其串行端口时序。本应用笔记演示了如何使用EconOscillator满足外部时钟要求,并为8051内部串行端口控制寄存器的编程提供了计算帮助。 介绍 经济振荡器具有提供基本频率的内部振荡器,它们使用内置分频链将基本频率降低到所需速率。每个器件号可以划分四个
[单片机]
使用经济振荡器为8051<font color='red'>微处理器</font>提供时钟
如何选择合适的微处理器?选择微控制器的十个步骤
选择适合某个产品使用的微处理器是一项艰巨的任务。不仅要考虑许多技术因素,而且要考虑可能影响到项目成败的成本和交货时间等商业问题。 在项目刚启动时,人们经常压抑不住马上动手的欲望,在系统细节出台之前就准备微控制器选型了。这当然不是个好主意。 在微控制器方面做任何决策时,硬件和软件工程师首先应设计出系统的高层结构、框图和流程图,只有到那时才有足够的信息开始对微控制器选型进行合理的决策。此时遵循以下10个简单步骤可确保做出正确的选择。 步骤1:制作一份要求的硬件接口清单 利用大致的硬件框图制作出一份微控制器需要支持的所有外部接口清单。有两种常见的接口类型需要列出来。第一种是通信接口。 系统中一般会使用到USB、I2C、SPI、
[单片机]
如何选择合适的<font color='red'>微处理器</font>?选择微控制器的十个步骤
ARM基础篇—ARM微处理器的应用领域及特点
一、ARM微处理器的应用领域 到目前为止,ARM微处理器及技术的应用几乎已经深入到各个领域: 1、工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。 2、无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。 3、网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。 4、消
[单片机]
一种用于汽车电磁阀质量测试电源的设计
  电磁阀在现代汽车中应用十分广泛,电磁阀的性能与汽车的性能紧密相关。施加到电磁阀的电源在实际工作时的状态是异常复杂的,主要表现在电磁阀电源的电压幅度、频率、占空比的复杂性和随机性。为了保证电磁阀出厂的质量,本文设计并制作了一种便于模拟汽车电磁阀实际工作状态的电源。根据电磁阀在汽车中的工作要求,对电磁阀在各种工作状态下的质量要求进行模拟测试。同时解决测试出口电磁阀产品性能指标的难题,为我国电磁阀的出口产品提供必要的技术性能测试设备。   1 系统结构与工作原理   如图1所示,整个系统包括单片机、I/O扩展电路、D/A转换电路、PWM产生电路、频率选择电路、光电隔离和驱动电路及键盘和显示电路。系统以单片机为控制中心,采用DDS
[电源管理]
数码管位移显示C语言程序设计
#include reg52.h //51芯片管脚定义头文件 #include intrins.h //内部包含延时函数 _nop_(); #define uchar unsigned char #define uint unsigned int uchar code ledcode ={ 0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,0x80,0x90,0xff }; uchar data display ={10,10,10,10,10,10,10,10,10}; uchar shift,n; /*****************************************
[单片机]
32位单片机c语言编程笔记
1.单片机在系统复位或者上电之后,会在执行main()函数之前先执行一小段由maplab c32连接器自动插入的初始化程序,即所谓的starup(启动)代码或者crt0()代码。启动代码负责基本的内务操作,包括栈的所有重要初始化等。 2.随便调用一个库函数,比如printf(),就可能增加数千字节的执行代码,所以要慎用库函数。 3.crt0代码负责在主程序运行之前,将定义在flash里的数组内容,从flash到RAM里,crt0另一个重要的功能是将程序声明的每个全局变量初始化为0,这会使程序更加安全并且容易预测,但这是有代价的。如果ram中要存放一个很大的数组,那么即使你没有要求初始化他们,crt0代码也会花一段
[单片机]
智能卡的边频攻击分析及安全防范措施
   在智能卡应用日益广泛的今天,智能卡应用系统的安全问题非常重要。通常认为智能卡具有较高的安全性 ,但随着一些专用攻击技术的出现和发展,智能卡也呈现出其安全漏洞,导致整个应用系统安全性降低。分析智能卡面临的安全攻击,研究相应的防御措施,对于保证整个智能卡应用系统的安全性有重大意义。下面分析目前主要的智能卡攻击技术之一——边频攻击技术,并有针对性地提出相应的安全设计策略。   1 智能卡简述   智能卡是将具有存储、加密及数据处理能力的集成电路芯片镶嵌于塑料基片上制成的卡片。智能卡的硬件主要包括微处理器和存储器两部分,逻辑结构如图1所示。                  智能卡内部的微处理器多采用8位字长的CPU(当然更
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved