基于DDS的高精度函数信号发生器的研制
扫描二维码
随时随地手机看文章
摘要:基于直接数字频率合成技术(DDS),采用单片机实现对DDS芯片AD9852的控制,提出一种高精度函数信号发生器的实现方案。重点介绍了单片机与AD9852的硬件接口电路、整个系统的软件设计以及单片机中对48 b频率控制字的处理方法。此方法在单片机程序设计中处理多于32 b的整型数据时具有借鉴意义。此系统具有高频率、高精度的主要特
点,且控制灵活方便,具有广阔的应用前景。
关键词:DDS;AD9852;频率控制字;信号发生器
直接数字频率合成技术(Direct Digital Frequency Synthesis,DDS)是从相位概念出发直接合成所需波形的一种新的频率合成技术。DDS技术具有相对带宽宽、频率转换时间短、频率分辨率高等优点,广泛用于高精度频率合成和任意信号发生。本文采用单片机控制DDS芯片,设计实现了一种高精度多波形的信号源。
1 DDS原理
DDS的基本结构包括:相位累加器、正弦查询表、数模转换器(DAC)及低通滤波器等。DDS原理如图1所示。
图1中信号输出频率和参考时钟频率的关系表达式为:
其中:fo为输出频率,fosc为参考时钟频率,FTW为频率控制字,N为频率控制字的位数。由于N是一个固定值,那么只要改变FTW的大小就能得到所需要的频率值,而且频率的分辨率由N值决定,当N值越大则分辨率越高。由Nyquist取样定理可知,要恢复理想波形,在理想低通滤波器的条件下,输出频率必须小于时钟参考频率的用50%,即fo<1/2fosc,若超过这个范围,则一阶镜像频率就会落在Nyquist带宽内。而实际的LPF都有一个过渡带的问题,所以为了更好地去除一阶镜像带来的杂散,一般将DDS的输出频率限制在O.4fosc内。可见当AD9852参考时钟频率为300 MHz时,完全可以满足输出频率为50 MHz的设计要求。
2 系统设计
2.1 硬件设计
系统设计原理如图2所示。该设计选用单片机AT89C55作为控制核心,其与DDS芯片AD9852之间采用并口通信方式。单片机P1口作为LCD液晶显示的数据总线,P0口用于AD9852地址总线和并口传输的数据总线,使用锁存器74ALS573实现P0口复用,74ALS573锁存输出的六位数值为AD9852内部寄存器的地址。P2和P3口作为控制口用于键盘芯片HD7279和AD9852的控制。
由于AD9852使用CMOS工艺,供电电压是3.3V,而单片机使用的是TLL电平,所以要在TLL电路与CMOS电路之间进行电平转换。该系统选择了74LVTl6245作为5 V逻辑电平到3.3V逻辑电平的转换器件。所需要输出的频率可通过按键设定得到,进行的操作同时在液晶上进行显示。AD9852内部系统时钟频率由外部有源晶振倍频得到。
由于AD9852的内部没有低通滤波器,因此经过内部余弦DAC输出的扫频信号不可避免地含有高频噪声,所以信号输出端口需外接低通滤波器抑制高频干扰。该设计采用七阶椭园函数滤波器。七阶椭圆滤波器电路图如图3所示。
2.2 软件设计
软件设计主要分为菜单操作和频率控制值计算两部分。不同的按键代表着不同的数字和功能,除了正常的10个数字键0~9外,为了方便频率值输入,还设计了左右移动键、删除键、Output确认输出键等功能键。相应的数值如频率、相位、幅度输入完成后按Output输出键,即产生相应的信号输出。整体软件设计流程图如图4所示。
2.3 48 b频率控制字的处理
由于单片机C语言中数据运算最多为32 b,如单精度Float型、Long长整型,而Double虽是64 b但Keil C编译时出错,故将介绍一种在单片机中计算48 b频率控制字的方法。
在该设计中取参考时钟频率fosc为300 MHz,在DDS的原理中介绍了输出频率的计算方法为:
那么根据式(1)就能推导出计算频率控制字的表达式:
当fo≤fL1时,频率控制字计算公式为:
FTW=(248*fo)/300 000 000△938 249.922 369*fo
当fo>fL1时,通过把48 b频率控制字分成8 b+32 b+8 b,令最前面的8 b和最后面的8 b等于O,引入临界频率fL2,可由算式(1)计算得到:
fL2=300000000*2 40/2 48△1.17172MHz
当fL1<fo≤fL2时,得到频率控制字计算公式为:FTW=(240*fo)/300 000 000△3 665.038 759*fo最后当fo大于fL2,即把后16 b定为0,这时式(1)中N=32,则频率控制字计算公式为:
此时频率分辨率为(300 000 000*216)/248△0.07 Hz。同理可得当输出频率小于fL1、大于fL1小于fL2时分辨率分别为1.07e一6 Hz和2.73e一4 Hz,本方案设计为输出频率低于1 MHz时分辨率为O.001 Hz,高于1 MHz时分辨率为O.1 Hz。由上可见此方法合理有效,解决了单片机48 b频率控制字算法,同时也达到了很高的频率分辨率和精确度。
3 结 语
针对目前市场上的函数发生器存在的频带范围窄、精度不高、准确度低、频谱纯度差等缺点,设计了一款高精度高频数控函数信号发生器,该函数发生器具有频带范围宽、精度高、频谱纯度好、频率输出稳定等优点。经测试频率范围可以达到50 MHz,频率分辨率为0.001 Hz,并可以产生正弦波、FSK与BPSK波形。可应用于日常教学与科研工作中,在晶体滤波器测试、复杂通信系统测试、音频系统测试、高性能视频测试等领域有广泛的应用前景。