基于DDS的高精度函数信号发生器的研制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于DDS的高精度函数信号发生器的研制
殷雷;金海军;李映雪;余水宝
【摘要】基于直接数字频率合成技术(DDS),采用单片机实现对DDS芯片AD9852的控制,提出一种高精度函数信号发生器的实现方案.重点介绍了单片机与AD9852的硬件接口电路、整个系统的软件设计以及单片机中对48 b频率控制字的处理方法.此方法在单片机程序设计中处理多于32 b的整型数据时具有借鉴意义.此系统具有高频率、高精度的主要特点,且控制灵活方便,具有广阔的应用前景.
【期刊名称】《现代电子技术》
【年(卷),期】2009(032)001
【总页数】3页(P68-69,73)
【关键词】DDS;AD9852;频率控制字;信号发生器
【作者】殷雷;金海军;李映雪;余水宝
【作者单位】浙江师范大学,数理信息与工程学院,浙江,金华,321004;浙江师范大学,数理信息与工程学院,浙江,金华,321004;浙江师范大学,数理信息与工程学院,浙江,金华,321004;浙江师范大学,数理信息与工程学院,浙江,金华,321004
【正文语种】中文
【中图分类】TN74
直接数字频率合成技术(Direct Digital Frequency Synthesis,DDS)[1]是从相位概念出发直接合成所需波形的一种新的频率合成技术。
DDS技术具有相对带宽宽、
频率转换时间短、频率分辨率高等优点,广泛用于高精度频率合成和任意信号发生[2]。
本文采用单片机控制DDS芯片,设计实现了一种高精度多波形的信号源。
1 DDS原理
DDS 的基本结构包括:相位累加器、正弦查询表、数模转换器(DAC)及低通滤波器等。
DDS原理如图1所示[3]。
图1 DDS基本原理框图
图1中信号输出频率和参考时钟频率的关系表达式为:
fo=fosc×FTW/2N
其中:fo为输出频率,fosc为参考时钟频率,FTW为频率控制字,N为频率控制字的位数。
由于N是一个固定值,那么只要改变FTW的大小就能得到所需要的频率值,而且频率的分辨率由N值决定,当N值越大则分辨率越高。
由Nyquist取样定理可知,要恢复理想波形,在理想低通滤波器的条件下,输出频率必须小于时钟参考频率的用50%,即fo<1/2fosc,若超过这个范围,则一阶镜像频率就会落在Nyquist带宽内[4]。
而实际的LPF都有一个过渡带的问题,所以为了更好地去除一阶镜像带来的杂散[5],一般将DDS的输出频率限制在0.4fosc内。
可见当AD9852参考时钟频率为300 MHz时,完全可以满足输出频率为50 MHz的设计要求。
2 系统设计
2.1 硬件设计
系统设计原理如图2所示。
该设计选用单片机AT89C55作为控制核心,其与DDS 芯片AD9852[6,7]之间采用并口通信方式。
单片机P1口作为LCD液晶显示的数据总线,P0口用于AD9852地址总线和并口传输的数据总线,使用锁存器
74ALS573实现P0口复用,74ALS573锁存输出的六位数值为AD9852内部寄存器的地址。
P2和P3口作为控制口用于键盘芯片HD7279和AD9852的控制。
图2 系统结构框图
由于AD9852使用CMOS工艺,供电电压是3.3 V,而单片机使用的是TLL电平,所以要在TLL电路与CMOS电路之间进行电平转换。
该系统选择了74LVT16245作为5 V逻辑电平到3.3 V逻辑电平的转换器件。
所需要输出的频率可通过按键设定得到,进行的操作同时在液晶上进行显示。
AD9852内部系统时钟频率由外部有源晶振倍频得到。
由于AD9852 的内部没有低通滤波器,因此经过内部余弦 DAC 输出的扫频信号不可避免地含有高频噪声,所以信号输出端口需外接低通滤波器抑制高频干扰[8]。
该设计采用七阶椭园函数滤波器[9]。
七阶椭圆滤波器电路图如图3所示。
图3 椭圆滤波器原理图
2.2 软件设计
软件设计主要分为菜单操作和频率控制值计算两部分。
不同的按键代表着不同的数字和功能,除了正常的10个数字键0~9外,为了方便频率值输入,还设计了左右移动键、删除键、Output确认输出键等功能键。
相应的数值如频率、相位、幅度输入完成后按Output输出键,即产生相应的信号输出。
整体软件设计流程图如图4所示。
2.3 48 b频率控制字的处理
由于单片机C语言[10]中数据运算最多为32 b,如单精度Float型、Long长整型,而Double虽是64 b但Keil C编译时出错,故将介绍一种在单片机中计算48 b频率控制字的方法。
在该设计中取参考时钟频率fosc为300 MHz,在DDS的原理中介绍了输出频率的计算方法为:
fo=fosc*(FTW/248)
(1)
那么根据式(1)就能推导出计算频率控制字的表达式:
(2)
图4 信号发生器流程图
在计算频率控制字时采用分割法,通过所需输出频率高低来分割,并引入了临界频率fL的概念。
首先将48 b频率控制字分割成16 b+32 b,使前面的16 b都为0,则FTW=232时的fo为临界频率fL1,其值为:
fL1=300 000 000*232/2484.577 kHz
当fo≤fL1时,频率控制字计算公式为:
FTW=(248*fo)/300 000 000938 249.922 369*fo
当fo>fL1时,通过把48 b频率控制字分成8 b+32 b+8 b,令最前面的8 b和最后面的8 b等于0,引入临界频率fL2,可由算式(1)计算得到:
fL2=300 000 000*240/2481.171 72 MHz
当fL1<fo≤fL2时,得到频率控制字计算公式为:
FTW=(240*fo)/300 000 0003 665.038 759*fo
最后当fo大于fL2,即把后16 b定为0,这时式(1)中N=32,则频率控制字计算公式为:
14.316 558*fo
此时频率分辨率为(300 000 000*216)/2480.07 Hz。
同理可得当输出频率小于
fL1、大于fL1小于fL2时分辨率分别为1.07e-6 Hz和2.73e-4 Hz,本方案设计为输出频率低于1 MHz时分辨率为0.001 Hz,高于1 MHz时分辨率为0.1 Hz。
由上可见此方法合理有效,解决了单片机48 b频率控制字算法,同时也达到了很高的频率分辨率和精确度。
3 结语
针对目前市场上的函数发生器存在的频带范围窄、精度不高、准确度低、频谱纯度差等缺点,设计了一款高
精度高频数控函数信号发生器,该函数发生器具有频带范围宽、精度高、频谱纯度好、频率输出稳定等优点。
经测试频率范围可以达到50 MHz,频率分辨率为
0.001 Hz,并可以产生正弦波、FSK与BPSK波形。
可应用于日常教学与科研工作中,在晶体滤波器测试、复杂通信系统测试、音频系统测试、高性能视频测试等领域有广泛的应用前景。
参考文献
[1] Tierney J,Rader C M,Gold B.A Digit-al Frequency Synthesizer[J].IEEE Transactions on Audio and Electroacoustics,1971,AU-19:48-57.
[2] 杨檍,鲍景富.现代频率合成技术的研究进展[J].电讯技术,2007,47(2):1-5.
[3] 许慧波,张厥胜.DDS——直接数字式频率合成器综述[M].西安:西安电子科技大学出版社,1989.
[4] 丁玉美.数字信号处理[M].2版.西安:西安电子科技大学出版社,2001.
[5] 张玉兴,彭清泉.DDS的背景杂散信号分析[J].电子科技大学学
报,1997,26(4):362-365.
[6] 马丽.DDS芯片AD9852及其应用[J].国外电子测量技术,2003,22(5):6-8.
[7] Analog Devices Inc.AD9852 Datasheet[Z].2002.
[8] 杨陈庆,杨玉梅.使用AD9852实现的10~12.2 MHz跳频源[J].国外电子元器件,2005(2):25-28.
[9] 毛敏,郑珍,周渭.基于 DDS 的低通滤波器的设计与实现[J].电子技术,2006(3):17-20.
[10] 马忠梅,刘滨,戚军,等.单片机 C 语言 Windows 环境编程宝典[M].北京:北京航
空航天大学出版社,2003.。