基于CY7C68013和AD9851的正弦信号发生器设计
本系统开发主要是基于高速 USB特性,加上丰富的软件开发包,有利于快速开发一个稳定,高效的系统,对进一步拓展系统的功能和精度有很好的快速升级能力。Cypress 公司的网站提供了 CY7C68013 芯片的开发工具包下载, 该开发包提供了开发固件程序的所需的一些资源,如 Keil μVision2 集成开发环境(限制版)、Cypress C51固件框架程序以及一些例子程序。CY7C68013 的固件主要有两种引导方式, 一种是存储在 EEPROM上, 通过上电后的自检自动将固件程序加在 CY7C68013上;另一种方式是通过主机将固件程序下载到CY7C68013。
本系统在设计上采用外接一片 EEPROM芯片来存放 USB设备配置信息和 8051应用程序。该应用程序在上电后加载到 8051内核,主要完成两个任务:实现 USB协议,包括 USB设备配置及 USB数据传输;实现对 AD9851的初始化以及对信号的产生和控制。
1固件程序框架
固件程序流程如图 4所示,主要执行以下任务,其中步骤①~⑤主要是完成 USB接口的初始化工作,而步骤⑥~⑩可以看作是任务执行阶段,完成 USB事务及用户特定的任务。
① 初始化所有的状态变量;
② 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。
- 基于USB协议的DSP高速上位机接口设计 (10-02)
- 利用FPGA实现外设通信接口之:利用FPGA实现USB 2.0通信接口(06-05)
- EZ-USB FX2单片机CY7C68013的特性介绍(10-15)
- 基于CY7C68013芯片高速USB数据采集系统方案设计(09-12)
- 基于USB接口的LED显示系统设计(10-31)
- 基于DSP的USB技术在图像传输中的应用(08-06)