基于AD9854的DDS设计

2019-08-30 16:27

基于AD9854的DDS设计

1.功能预期

本文采用DDS技术,结合单片机平台控制,实现正弦波点频、扫频,以及AM、FM、PM、FSK、PSK、ASK等调制功能。系统组成结构如图1所示,主要有单片机控制模块、键盘与显示模块、数字合成模块等。

图1 系统组成结构

2.具体实现

AD9854有10MHZ串行接口和100MHZ 8位并行接口两种方式,此处选择协议相对简单的并行传输方式,所以将芯片的S/P SELECT(Pin 70)引脚接高电平,单片机的PB0至PB7端口与AD9854的D0至D7端口相连传输数据信息,PE0至PE5端口与A0至A5端口相连传输寄存器地址信息,PD0、PD1分别与WR、RD两个引脚相连控制读写操作,由这三部分共同组成并行传输控制。例如,当WR引脚置低电平时,频率控制字通过数据端口送入I/O缓冲寄存器,再由内部的刷新时钟把控制字写入指定地址的寄存器。 为节省单片机硬件资源,简化硬件线路,本文采用矩阵式键盘,并结合软件编程,实现起始、终止频率输入,模式转换等功能。键盘共有16个键,由PF0至PF3四条行线和PA2至PA5四条列线构成。因为在显示界面中,需要光标上下移动选择输入项,并键入具体数值或按功能键切换模式,键位会面临不够用的情况,这里采用有限状态机的办法,实现了键位复用。

图2 单片机工作状态转换

图2中,当单片机运行在功能选择的左边部分时,通过数字键(8)以及数字键(2)实现模式界面“上下”切换,当按下确定键后,数字键(1)至(9)则变为数字输入键,再次键入确定,信息被单片机处理后传给AD9854,又返回到左边的功能选择,数字键位再次复用。 在仪器的整个设计中,对系统软件的设计采用模块化设计的方法。系统软件由主监控软件、键盘管理模块、显示器管理模块、界面切换模块、数据传输模块构成。上电复位后仪器首先进入主监控程序。它首先初始化外设,然后激活其他模块。键盘管理模块采用传统的逐行扫描的方法,定时器定期向每个行发送高电平,通过判断列的电平确定按键的具体按下情况。显示器管理模块在初始化之后随时准备程序调用以刷新屏幕。界面切换模块是对显示器的界面进行刷新,判断键盘输入信息实时改变界面状态。数据传输模块工作于用户输入数据之后,将数据转化为相应的并行数据信息,由I/O口传输给AD9854。系统的软件采用C语言设计,相对于汇编语言,C语言有更多的库函数可以使用,操作较为方便,模块化程序高,可读性与可移植性好。 主程序框图如图3所示。对AD9854进行初始化控制时,首先,MASTER RESET(Pin 71)脚必须置高10个系统周期以上,然后对AD9854写入控制字。一旦设定后,AD9854将保持设定状态不变,直到重新进行设置。AD9854内部通过一个地址范围为00H至27H的寄存器表存储有关的各种控制字和状态字。用户可通过I/O与该寄存器表进行通信,I/O缓冲区的内容必须在更新脉冲的作用下才能刷新到寄存器表中,这样可以很好地达到同步。寄存器表中00H、01H、02H、

03H单元分别存放14位的相位控制字1和相位控制字2,它决定了输出信号可编程控制的相位精度即最低相位为Pmn=360度/214=0.022度。04H至09H和0AH至0FH单元分别存放48位的频率控制字1和频率控制字2,它决定了输出信号可编程控制的频率精度即最低频率为fMN=300*106/248=1.066*10-6Hz。AD9854的五种工作模式选择字存放在寄存器表1EH单元。

图3 系统主程序

部分源程序如下: void ad9854f1(double f) {

table9854[0]=(uchar)((f*256)/280000000);//高位

table9854[1]=(uchar)(((f*256)/280000000-table9854[0])*256);//去掉整数部分,用原来的数减整数再乘256

table9854[2]=(uchar)((((f*256)/280000000-table9854[0])*256-table9854[1])*256); table9854[3]=(uchar)(((((f*256)/280000000-table9854[0])*256-table9854[1])*256-table9854[2])*256);

table9854[4]=(uchar)((((((f*256)/280000000-table9854[0])*256-table9854[1])*256-t

able9854[2])*256-table9854[3])*256);

table9854[5]=(uchar)(((((((f*256)/280000000-table9854[0])*256-table9854[1])*256-table9854[2])*256-table9854[3])*256-table9854[4])*256);

send_byte(FTW1_6,table9854[0]); //M=f*2^48/160 算出来的M转为2进制 send_byte(FTW1_5,table9854[1]); send_byte(FTW1_4,table9854[2]); send_byte(FTW1_3,table9854[3]); send_byte(FTW1_2,table9854[4]); send_byte(FTW1_1,table9854[5]); }

voidsend_byte(ucharadd,uchar data) { ROM_GPIOPinWrite(GPIO_PORTC_AHB_BASE,GPIO_PIN_6,GPIO_PIN_6); //拉高wr ROM_GPIOPinWrite(GPIO_PORTE_AHB_BASE,0x3f,add); //0x3f:0011 1111 给并口地址A ROM_SysCtlDelay(ROM_SysCtlClockGet()/1000000); //延时7ns以上 ROM_GPIOPinWrite(GPIO_PORTC_AHB_BASE,GPIO_PIN_6,~GPIO_PIN_6); //拉低WR ROM_GPIOPinWrite(GPIO_PORTB_AHB_BASE,0xff,data); //送数据 ROM_SysCtlDelay(ROM_SysCtlClockGet()/1000000); //延时2.5ns以上 ROM_GPIOPinWrite(GPIO_PORTC_AHB_BASE,GPIO_PIN_6,GPIO_PIN_6); //拉高WR ROM_SysCtlDelay(ROM_SysCtlClockGet()/1000000); //延时 }

3.总结

本文设计的信号发生器采用DDS芯片AD9854,结合单片机控制技术,不仅具有AM、FM、PM、FSK、ASK调制功能,还有点频、扫频和跳频功能。经过实际测试,其分辨率、信噪比和幅度控制达到设计要求,最高频率可达100MHz。

4.缺陷与不足

虽然并行方式通讯速率很快,但其占用IO口较多,且因为DDS自带扫频功能,实际并不需要那么快的速率,只要每次接到用户指令刷新即可满足大部分要求。


基于AD9854的DDS设计.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:合作与共赢(全部题库3)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: