基于EZ-USB单片机的正弦信号发生器
扫描二维码
随时随地手机看文章
一引言
近年来,随着通信系统的发展,人们对信号源的要求越来越高,直接数字频率合成器(Direct Digital Frequency Synthesis简称DDS或DDFS)正是在这样的背景下进一步得到了发展。它具有相对带宽、频率分辨率高、频率转换时间短、控制灵活和全数字化的优点,并且成本低,功耗小。它的优越性能使其在跳频通信、雷达系统、电子测量等领域得到了广泛的应用。采用DDS芯片AD9851和EZ-USB单片机CY7C68013实现的正弦信号发生器,通过上位机控制AD9851可以调节输出信号,使输出信号具有高精度、高频率、高稳定度的特点。
二信号发生器系统硬件构成
1.单片机系统.
本文采用CYPRESS公司的高速USB2.0芯片 CY7C68013 ,该芯片集成增强型 8051内核和 USB接口的单片机 , 完全遵从 USB2.0协议,昀高速度可达 480Mbps的传输率;片内拥有 8KB 的 RAM,可完全满足系统每次传输数据的需要,无需再外接 RAM。由于芯片内部没有 ROM,一旦 USB设备断开与 PC的连接,程序代码将无法保存,需要每次在 PC机接 USB设备后,重新下载,另外,CY7C68013支持一种“E2PROM引导方式”,即先将固件下载到片外 E2PROM中,当每次 USB设备通电后,FX2自动将片外 E2PROM中的程序读入芯片中。
由于该系统主要是利用其特殊的 USB2.0和单片机特性,所以外部电路较容易实现,如图 1所示。2 DDS硬件电路设计。
1) DDS的原理及特点
DDS由相位累加器、正弦查表、D/A 转换器和低通滤波器组成,如图 2所示。 DDS 的参考时钟是一个稳定的晶体振荡器,用它来同步整个合成器的各个功能模块。相位累加器类似于一个简单的计数器,相位累加器把频率控制字 FSW 的数据变成相位抽样来确定输出频率的大小。相位增量的大小随外部指令 FSW 的不同而不同,通过给定的相位增量来确定输出频率的值。当用这样的数据寻址时,正弦查表就把存储在相位累加器中的抽样值转换成正弦波幅度的数字量函数。通过 D/A 变换器和低通滤波器得到所需的信号波形。DDS 的输出=fr·FSW/2N , DDS 的频率分辨率为: Δf O =fr/2N 。
2) AD9851的工作原理及特性
AD9851是 AD公司推出的采用先进的 CMOS技术生产的直接数字频率合成器,其昀高工作时钟为180MHz,内部除了有完整的高速 DDS外,还集成了一个时钟 6倍频器和一个高速比较器。集成的 6倍频时钟器降低了外部参考时钟频率,仅需一个 30MHz 晶振即可。因此减小了高频辐射,提高了系统的电磁兼容能力。 AD9851DDS 系统采用 32bits相位累加器及10bitsDAC,在 70MHz模拟输出时,DAC输出的抑制寄生动态范围 SFDR>43dB。5bits 相位控制可实现昀小 11.5° 的相位改变。频率控制和相位调节可采用并行或串行输入方式。
3)滤波器
在AD9851D/A转换器输出端与其内部比较器输入之间,需要外接一个低通滤波器,用于抑制谐波干扰。考虑到椭圆函数滤波器比全极点型滤波器(如巴特沃兹、切贝雪夫滤波器等)能做到对理想低通的昀佳近似,且在同等技术指标下所需阶数昀低, 因此电路实现起来也比其他类型滤波器容易。故采用椭圆函数滤波器。图3是利用Ansoft Designer System进行设计的椭圆低通滤波器原理图。该图指标为: 从0—60MHz 昀大波纹小于12dB,在75MHz处昀小衰减为50dB。
3调制信号发生器
在本系统的调制信号发生器模块中,设计了几个外扩模块,从而使的系统更加完善和健全。
1)2ASK:
单片机首先计算出 100KHz载波的控制字,直接送入 DDS芯片,再根据比特率 10Kbps的要求,每隔100us,通过 PB口,输出一个控制信号到模拟开关,将正弦波信号变为 2ASK信号。
2)2PSK:
实现原理与 2ASK类似,单片机计算出 AD9851所需要的两组控制字,然后根据比特率10Kbps的要求,每隔50us,将这两组控制字依次送入 DDS芯片。
3)频率调制:
根据调制信号的周期,计算出频率控制字更新的时间,然后循环送至DDS,模拟调频信号频率的变化。
4宽带功率放大电路
采用 AD811的两级信号放大电路,第一级为电压放大电路,通过调节电阻阻值来调整电路的增益。后一级为电压跟随,进一步提高电路的带载能力。
三:信号发生器系统软件构成
本系统开发主要是基于高速 USB特性,加上丰富的软件开发包,有利于快速开发一个稳定,高效的系统,对进一步拓展系统的功能和精度有很好的快速升级能力。Cypress 公司的网站提供了 CY7C68013 芯片的开发工具包下载, 该开发包提供了开发固件程序的所需的一些资源,如 Keil μVision2 集成开发环境(限制版)、Cypress C51固件框架程序以及一些例子程序。CY7C68013 的固件主要有两种引导方式, 一种是存储在 EEPROM上, 通过上电后的自检自动将固件程序加在 CY7C68013上;另一种方式是通过主机将固件程序下载到CY7C68013。
本系统在设计上采用外接一片 EEPROM芯片来存放 USB设备配置信息和 8051应用程序。该应用程序在上电后加载到 8051内核,主要完成两个任务:实现 USB协议,包括 USB设备配置及 USB数据传输;实现对 AD9851的初始化以及对信号的产生和控制。
1固件程序框架
固件程序流程如图 4所示,主要执行以下任务,其中步骤①~⑤主要是完成 USB接口的初始化工作,而步骤⑥~⑩可以看作是任务执行阶段,完成 USB事务及用户特定的任务。[!--empirenews.page--]
① 初始化所有的状态变量;
② CY7C68013中 USB端点寄存器进行初始化设置;
③ 判断是否重新定位描述符表,以确保描述符表的存放地址位于片内RAM;
④ 使能 USB中断,并允许所选择的中断;
⑤ 判断是否有来自系统的“重新枚举”命令,如有,则重新枚举;
⑥ 初始化 AD9851模块内部寄存器以及缺省模式下的信号配置;
⑦ 判断是否接收到 setup令牌包,如有,则调用相应函数响应 USB设备请求命令;
⑧ 判断是否进入睡眠状态,如是,则将 CY7C68013置于睡眠状态;
⑨ 查询是否有来自上位机的修改波形命令,按照程序执行与波形修改有关的任务;
⑩ 返回⑦,循环接收并执行来自上位机的各种命令。
2 AD9851工作流程 AD9851工作流程共包含40位控制码(D39~D0),其作用为:
(1)D39、D38用来控制AD9851数据输入的模式。AD9851的数据输入模式分为并行输入模式和串行输入模式两种。在并行输入模式下,模式控制码为“00”,每次8bit数据输入端D0~D7分5次数输入频率控制字。
(2)D37用来调节AD9851输出的功率。
(3)D36~D32相位调制码,用来控制AD9851的相位调制量。
(4)D31~D0用来控制AD9851输出的频率。这32位频率控制码是由输入的频率控制字转换过来的。具体转换关系为:
(5) AD9851 中的 DDS内核所需输入控制字由单片机提供。在进行频率控制时, 首先送入相位调制码、功率调节码和输入模式控制码, 然后送入 32bit频率控制码。本系统设置AD9851工作在并行数据输入模式。系统启动后,接受用户从键盘所输入的功能,调用相应的子程序,根据信号的频率值、以及 2psk功能下相位值,单片机将频率值根据公式转换为频率相位控制字,初始相位值按照公式Phase(度)/11.25°转换为 5位二进制数相位调制字,准备送往 AD9851频率控制输出。在传输数据之前,单片机先向 AD9851产生一个 RESET上升沿信号, 并延时 7ns,使整个下位机系统复位, 再依次传输一个 8 bit的相位调制码和置AD9851工作模式码以及 32bit的频率控制码。每传输一次 8bit的控制码后,需由软件产生一个有效的 WCLK上升沿信号,将控制码送入 AD9851输入数据寄存器中,重复五次后即可将40位的控制码全部加载到AD9851内部的数据寄存器中,昀后产生一个有效的 FQUD上升沿信号,将 40bit的控制码全部加载到 AD9851中的 DDS频率合成单元中,经过 13到 18个时钟周期后,就可获得所需的频率输出信号。
3 驱动程序设计在 Cypress 公司的 EZ-USBFX2 开发包中,提供了完整的 CY7C68013 驱动程序源代码、控制面板程序及固件的框架,可以大大加快用户开发的进度。用户只需对所带驱动程序稍加
修改,再经过 DDK 编译后使用,使得软件开发者大量的时间主要集中在应用程序和固件的开发上。本设计采用的 USB设备驱动程序就是对 FX2开发包所带的驱动程序做了一些修改,主要是修改了 DeviceIoControl例程,增加了控制数据传输函数、启动和停止 AD9851等。四结束语
本文提出了一种基于 EZ-USB和 AD9851的正弦信号发生器系统方案,利用 EZ-USB的优点,通过上位机软件的简单数据输入,可以产生供实验所需要的信号源,极大的提高了系统的灵活性和可配置性。通过实验测定,测试的输出频率准确度与稳定度达到 10 -6。