1、基于 FPGA 的信号发生器设计报告 1 / 33 草鱼 2013年全国大学生电子设计竞赛 草鱼 草鱼 草鱼 基于 FPGA 的信号发生器设计 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 题目 : p ork 草鱼 草鱼 草鱼 草鱼 草鱼信号发生器 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 班级 : p ork 草鱼 草鱼 草鱼xxxxxxxxxxxx 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼草鱼 成员 : p ork 草鱼 草鱼 草鱼 草鱼xxx 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼草鱼 指导老师 : p ork 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼xxx 草鱼 草鱼 草鱼
2、 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 2013 年 7 月 30 日 草鱼 草鱼 目录 草鱼 一 、 p o rk设计要求 4 草鱼 1. 草鱼 基本要求 4 草鱼 二 、 p o rk设计方案 4 草鱼 三 、 p o rk系统基本原理 6 草鱼 3.1 函数信号发生器的几种实现方式 6 草鱼 3.1.1 程序控制输出方式 6 草鱼 3.1.2 草鱼 DMA 输出方式 6 草鱼 3.1.3 可变时钟计数器寻址方式 6 草鱼 3.1.4 直接数字频 率合成方式 7 草鱼 基于 FPGA 的信号发生器设计报告 2 / 33 3.2 频率合成器简介 8 草鱼 3
3、.2.1 频率合成技术概述 8 草鱼 3.2.2 频率合成器主要指标 10 草鱼 2.3 草鱼 DDS 原理 11 草鱼 3.3.1 相位累加器 11 草鱼 3.3.2 波形 ROM 13 草 鱼 3.3.3 草鱼 DDS 频率合成器优缺点 13 草鱼 四 、 p o rk单元模块设计 14 草鱼 4.1 系统框图 14 草鱼 4.2 相位累加器与相位寄存器的设计 15 草鱼 4.3 波形 ROM 的设计 16 草鱼 4.4 频率控制模块的设计 19 草鱼 4.5 草鱼 D/A 转换器 20 草鱼 4.6 滤波模块 22 草鱼 五 、 p o rk系统源程序 22 草鱼 5.1 草鱼 Veri
4、log 草鱼 HDL 草鱼 源程序 : pork 22 草鱼 5.2 草鱼 STM32 草鱼 源程序 : pork 26 草鱼 草鱼 草鱼 基于 FPGA 的信号发生器设计报告 3 / 33 草鱼 摘 要 草鱼 直接数字频率合成 DDS(Direct 草鱼 Digital 草鱼 Synthesizer)是基于奈奎斯特抽样定理理论和现代器件生产技术发展的一种新的频率合成技术 。 草鱼 与第二代基于锁相环频率合成技术 相比 , 鲤鱼 DDS 具有频率切换时间短 、 pork频率分辨率高 、 pork相位可连续变化和输出波形灵活等优点 , 鲤鱼 因此 , 鲤鱼 广泛应用于教学科研 、 pork通信
5、、 pork雷达 、 pork自动控制和电子测量等领域 。 草鱼 该技术的常用方法是利用性能优良的 DDS 专用器件 , 鲤鱼“搭积木”式设计电路 , 鲤鱼 这种“搭积木”式设计电路方法虽然直观 , 鲤鱼 但 DDS 专用器件价格较贵 , 鲤鱼 输出波形单一 , 鲤鱼 使用受到一定限制 , 鲤鱼 特别不适合于输出波形多样化的应用场合 。 草鱼 随着高速可编程逻辑器件 FPGA 的发展 , 鲤鱼 电子工程师可根据实际需求 , 鲤鱼 在单一 FPGA 上开发出性能优良的具有任意波形的 DDS 系统 , 鲤鱼 极大限度地简化设计过程并提高效率 。 草鱼 本文在讨论 DDS 的基础上 , 鲤鱼 介绍利
6、用 FPGA 设计的基于 DDS 的信号发生器 。 草鱼 草鱼 关键字 : p o rkFPGA; porkDDS; pork函数信号发生器 ; p ork草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 基于 FPGA 的信号发生器设计报告 4 / 33 草鱼 一 、 p o rk设计要求 草鱼 1. 草鱼 基本要求 草鱼 ( 1)信号发生器能产生正弦波 、 pork方 波和 三角 波 三 种 周期性 波形 ; pork草鱼 ( 2)将输出 信号频率范围为 10Hz 10MHz, 鲤鱼 输出信号频率可分段调节 : pork在 10Hz
7、 100kHz 范围内步进间隔为 10Hz; pork在 100kHz 1MHz 范围内步进间隔为 100Hz; pork在 1MHz 10MHz 范围内步进间隔为 1kHz。 草鱼输出信号频率值可通过键盘进行设置 ; pork草鱼 ( 3)在 50负载条件下 , 鲤鱼 输出正弦波信号的电压峰 峰值 Vopp在 05V 范围内可调 , 鲤鱼 调节步进间隔为 0.1V, 鲤鱼 输出信号的电压值可通过键盘进行设置 ; pork草鱼 ( 4)输出信号波形无明显失真 ; pork草鱼 ( 5)自 制稳压电源 。 草鱼 草鱼 ( 6)可利用 ARM 单片机实时显示输出信号的类型 、 pork幅度 、 p
8、ork频率和频率步进值 ; pork草鱼 草鱼 二 、 p o rk设计方案 草鱼 【方案一】 草鱼 采用分立元件模拟直接合成法 。 草鱼 这种方法转换速度快 , 鲤鱼频率分辨率高 , 鲤鱼 但其转换量程靠手动来实现 , 鲤鱼 不仅体积大难以集成 ,鲤鱼 而且可靠性和准确度很难进一步提高 。 草鱼 草鱼 【方案二】 草鱼 采用 MAX038 芯片来产生正弦波信号 。 草鱼 该集成块的输出波形种类多 , 鲤鱼 频率覆盖范围广 。 草鱼 它采用的是 RC 充放电振荡结构 。 草鱼 第一 ,鲤鱼 由于模拟器件元件 分散性太大 , 鲤鱼 外接的电阻 、 pork电容对参数的影响很大 ,鲤鱼 因而产生的
9、频率稳定度差 , 鲤鱼 只能达到 43 1010 。 草鱼 第二 , 鲤鱼 它的频率控制基于 FPGA 的信号发生器设计报告 5 / 33 是通过充放电流的大小来实现 。 草鱼 因而要达到步进 100HZ, 鲤鱼 所需的电流变化量非常小 , 鲤鱼 精度要求很高 。 草鱼 所以采用 MAX038 芯片难以实现设计要求 。 草鱼 草鱼 【方案三】 草鱼 采用锁相环合成方法 。 草鱼 采用该方案设计输出信号的频率可达到超高频甚至微波段 , 鲤鱼 且输出信号频谱纯度较高 。 草鱼 由于锁相环技术是一个不间断的 负反馈控制过程 , 鲤鱼 所以该系统输出的正弦信号频率可以维持在一个稳定状态 , 鲤鱼 频率
10、稳定度高 。 草鱼 但由于它是采取闭环控制的 , 鲤鱼 系统的输出频率改变后 , 鲤鱼 重新达到稳定的时间也比较长 。 草鱼 所以锁相环频率合成器要想同时得到较高的频率分辨率和转换率非常困难 ,鲤鱼 频率转换一般要几毫秒的时间 1, 鲤鱼 同时频率间隔也不可能做得很小 。草鱼 草鱼 【方案四】 草鱼 采用直接数字合成器( DDS) , 鲤鱼 可用硬件或软件实现 。 草鱼 即用累加器按频率要求对相应的相位增量进行累加 , 鲤鱼 再以累加相位值作为地址码 , 鲤鱼 取存放于 ROM 中的波形数据 , 鲤鱼 经 D/A 转换 , 鲤鱼 滤波即得到所需波形 。 草鱼 草鱼 以 EDA 技术为基础 ,
11、鲤鱼 用 FPGA 实现 DDS 模型的设计 。 草鱼 电路的规模大小和总线宽度可以由设计者根据自己的需要而设定可将波形数据存入FPGA的 ROM 中 。 草鱼 同时外部控制逻辑单元也可在 FPGA 中实现 。 草鱼 方法简单 , 鲤鱼 易于程控 , 鲤鱼 便于集成 。 草鱼 用该方法设计产生的信号频率范围广 , 鲤鱼频率稳定度高 , 鲤鱼 精度高 , 鲤鱼 频率转换速度快 。 草鱼 草鱼 分析以上四种方案 , 鲤鱼 显然第四种方案具有更大的优越性 、 pork灵活性 。 草鱼所以采用方案四进行设计 。 草鱼 草鱼 草鱼 基于 FPGA 的信号发生器设计报告 6 / 33 三 、 pork系统
12、基本原理 草鱼 3.1 函数信号发生器的几种实现方式 草鱼 任意波形发生器的实现方案主要有程序控制输出 、 porkDMA 输出 、 pork可变时钟计数器寻址和直接数字频率合成等多种方式 。 草鱼 草鱼 3.1.1 程序控制输出方式 草鱼 计算机根据波形的函数表达式 , 鲤鱼 计算出一系列波形数据瞬时值 , 鲤鱼 并定时地逐个传送给 D/A 转换器 , 鲤鱼 合成出所需要的波形 。 草鱼 这种方式具有电路简单 、 pork实现方便等特点 。 草鱼 但数据输出定时不准确 , 鲤鱼 会影响信号的频率和相位 。 草鱼 波形数据输出依靠指令的执行来完成 , 鲤鱼 当需要同时输出多个信号 时 , 鲤鱼
13、 相邻信号通道的输出存在时间差 , 鲤鱼 受计算机运行速度的限制 , 鲤鱼 输出信号的频率较低 。 草鱼 草鱼 3.1.2 草鱼 DMA 输出方式 草鱼 DMA(direct 草鱼 memory 草鱼 aecess)方式输出不依赖于程序的执行 , 鲤鱼 由 DMA控制器申请总线控制权 , 鲤鱼 通过地址总线给出存储器的地址信号 , 鲤鱼 同时选通存储器和 D/A 转换器 , 鲤鱼 在两者之间建立直接的数据通道 , 鲤鱼 使存储器相应单元中的波形数据传送给 D/A转换器转换后输出信号 。 草鱼 DMA方式输出信号 , 鲤鱼 可以大大提高信号的数据输出速率 。 草鱼 但也存在一些问题 ,鲤鱼如波形
14、输出期间 , 鲤鱼 微处理器因为失去了总线控制权 , 鲤鱼 无法进行其他操作 。 草鱼 在一个 DMA操作中 , 鲤鱼 只能在一个 D/A 转换器和存储器之间传送数据 , 鲤鱼 无法实现多通道的信号输出 。 草鱼 草鱼 3.1.3 可变时钟计数器寻址方式 草鱼 采用可变时钟计数器寻址波形存储器表 , 鲤鱼 该方法是一种传统型任意波形发生器 。 草鱼 原理框图如图 2-1所示 。 草鱼 草鱼 基于 FPGA 的信号发生器设计报告 7 / 33 可 变 时 钟 源 计 数 器 波 形 存 储 器 D / A 转 换 器 低 通 滤 波 器草鱼 图 2-1 可变时钟计数器寻址的任意波形发生器 草鱼
15、图中的计数器实际上是一个地址发生器 , 鲤鱼 计数器的触发时钟脉冲由一个频率可以控制的频率发生器产生 , 鲤鱼 通过改变频率发生器的频率设置值 , 鲤鱼 实现调整计数器产生的地址变化速率 , 鲤鱼 从而改变输出的任意波形的频率 。 草鱼 计数器产生的地址码提供读出存储器中波形数据所需要的地址信号 , 鲤鱼 波形数据依次读出后送至高速 D/A转换器 , 鲤鱼 将之转变为模拟量 , 鲤鱼 经低通滤波器后输出所需的波形 。 草鱼 可见传统的任意波形发生器采用可变时钟和计数器寻址波形存储器表 , 鲤鱼 此方法的优点是产生的地址连续 , 鲤鱼 输出波形质量高 。 草鱼 但其取样时频率较高 , 鲤鱼 对硬
16、件的要求也较高 ,鲤鱼 而且常需 多级分频或采用高性能的锁相环 , 鲤鱼 其中分频式的任意波形发生器频率分辨率低 , 鲤鱼 锁相式的任意波形发生器频率切换速度慢 。 草鱼 草鱼 3.1.4 直接数字频率合成方式 草鱼 DDS(direct 草鱼 digital 草鱼 synthesizer)是在一组存储器单元中按照信号波形数据点的输出次序存储了将要输出波形的数据 , 鲤鱼 在控制电路的协调控制下 , 鲤鱼 以一定的速率 , 鲤鱼 周而复始地将波形数据依次发送给 D/A 转换器转换成相应的模拟信号 。 草鱼 由于用硬件电路取代了计算机的控制 ,鲤鱼 信号输出稳定度高 。 草鱼 如需更新输出信号
17、, 鲤鱼 不必改 动任何线路和元器件 ,鲤鱼 只需改写存储器中的波形数据即可 。 草鱼 更主要的是 , 鲤鱼 可以将微处理器从信号输出的负担中解脱出来 。 草鱼 如图 2-2为其工作流程图 。 草鱼 草鱼 基于 FPGA 的信号发生器设计报告 8 / 33 频 率 信 号 源 频 率 控 制 地 址 发 生 器 D / A 转 换 滤 波 器波 形 存 储 器频 率 设 置波 形 数 据 设 置草鱼 图 2-2 直接数字频率合成方式的任意波形发生器 草鱼 基于对函数信号发生器的几种实现方式的了解 , 鲤鱼 本文选择方便调频 、p ork调幅的直接频率合成 DDS 技术来实现函数信号发生器 。
18、草鱼 草鱼 3.2 频率合成器简介 草鱼 3.2.1 频率合成技术概述 草鱼 频率合成器是现代电子系 统的重要组成部分 , 鲤鱼 它作为电子系统的“心脏” , 鲤鱼 在通信 、 pork雷达 、 pork电子对抗 、 pork导航 、 pork仪器仪表等许多领域中得到广泛的应用 。 草鱼 频率合成理论早在 30 年代就开始提出 , 鲤鱼 迄今为止已有70 年的发展历史 。 草鱼 所谓的频率合成就是将一个高精度和高稳定度的标准参考频率 , 鲤鱼 经过混频 、 pork倍频与分频等对它进行加 、 pork减 、 pork乘 、 pork除的四则运算 , 鲤鱼 最终产生大量的具有同样精确度和稳定度的
19、频率源 。 草鱼 频率合成大致经历了三个主要阶段 : pork直接频率合成 、 pork采用锁相技术的间接频 率合成 、 pork直接数字频率合成 。 草鱼 草鱼 早期的频率合成方法称为直接频率合成 。 草鱼 它利用混频器 、 pork倍频器 、 pork分频器与带通滤波器来完成四则运算 。 草鱼 直接频率合成能实现快速频率变换 、 pork几乎任意高的频率分辨力 、 pork低相位噪声及很高的输出频率 。 草鱼基于 FPGA 的信号发生器设计报告 9 / 33 缺点是直接合成由于使用了大量硬件设备如混频器 、 pork倍频器 、 pork分频器 、pork带通滤波器等 , 鲤鱼 因而体积大
20、、 pork造价高 。 草鱼 此外寄生输出大 , 鲤鱼 这是由于带通滤波器无法将混频器产生的无用频率分量滤尽 。 草鱼 而且频率范围越宽 , 鲤鱼 寄生分量也就 越多 。 草鱼 而这些足以抵消其所有优点 。 草鱼 草鱼 直接频率合成技术的固有缺点在间接频率合成技术中得到了很好的改善 。 草鱼 间接频率合成又称锁相频率合成 , 鲤鱼 采用锁相环路 (PLL)技术对频率进行四则运算 , 鲤鱼 产生所需频率 。 草鱼 锁相环路 (PLL)是一个能够跟踪输入信号相位的闭环自动控制系统 。 草鱼 早在 1932 年 DeBellescize提出的同步检波理论中首次公布发表了对锁相环路的描述 。 草鱼 但
21、是由于其复杂的技术原理直到 1947 年锁相环路才第一次用于电视接收机水平和垂直的同步扫描 。 草鱼 它的跟踪性能及低噪声性能得到人们的重视得 到迅速发展 。 草鱼 它在无线电技术的各个领域得到了很广泛的应用 。 草鱼 但是锁相频率合成器也存在一些问题 , 鲤鱼 以致难于满足合成器多方面的性能要求 , 鲤鱼 主要表现在高频率分辨率与快速转换频率之间的矛盾 。 草鱼 草鱼 直接数字频率合成即 DDS, 鲤鱼 它是目前最新的产生频率源的频率合成技术 。 草鱼 草鱼 这种技术是用数字计算机和数模变换器来产生信号完成直接数字频率合成的办法 , 鲤鱼 其是目前最新的产生频率源的频率合成技术 。 草鱼 草
22、鱼 这种技术是用数字计算机和数模变换器来产生信号 , 鲤鱼 完成直接数字频率合成的办法或者是用计算机求解一个数字递推 关系式 , 鲤鱼 或者是查阅表格上所存储的波形值 。 草鱼 目前用的最多的是查表法 。 草鱼 这种合成技术具有相对带宽很宽 , 鲤鱼 频率切换时间短 (ns 级 ), 鲤鱼 分辨率高 (uHz), 鲤鱼 相位变基于 FPGA 的信号发生器设计报告 10 / 33 化连续 , 鲤鱼 低相位噪声和低漂移 , 鲤鱼 数字调制功能 , 鲤鱼 可编程及数字化易于集成 , 鲤鱼 易于调整等一系列性能指标远远超过了传统频率合成技术所能达到的水平 , 鲤鱼 为各种电子系统提供了优于模拟信号源性
23、能的高质量的频率源 。 草鱼 目前它正朝着系统化 , 鲤鱼 小型化 、 pork模块化和工程化的方向发展 ,鲤鱼 性能越来越好 , 鲤鱼 使用越来越方便 , 鲤鱼 是目前应用最广泛的频率 合成器之一 。 草鱼 草鱼 3.2.2 频率合成器主要指标 草鱼 信号源的一个重要指标就是能输出频率准确可调的所需信号 。 草鱼 一般传统的信号发生器采用谐振法 , 鲤鱼 即用具有频率选择性的正反馈回路来产生正弦振荡 , 鲤鱼 获得所需频率信号 , 鲤鱼 但难以产生大量的具有同一稳定度和准确度的不同频率 。 草鱼 利用频率合成技术制成的信号发生器 , 鲤鱼 通常被称为频率合成器 。 草鱼 频率合成器既要产生所
24、需要的频率 , 鲤鱼 又要获得纯净的信号 。 草鱼 频率合成器的主要指标如下 : pork草鱼 1.输出频率范围 (fminfmax): pork指的是输出的最小频率和最 大频率之间的变化范围 。 草鱼 草鱼 2.频率稳定度 : pork指的是输出频率在一定时间间隔内和标准频率偏差的数值 , 鲤鱼 它分长期 、 pork短期和瞬时稳定度三种 。 草鱼 草鱼 3.频率分辨率 : pork指的是输出频率的最小间隔 。 草鱼 草鱼 4.频率转换时间 : pork指的是输出由一种频率转换成另一频率的时间 。 草鱼 草鱼 5.频谱纯度 : pork频谱纯度以杂散分量和相位噪声来衡量 , 鲤鱼 杂散分量为谐波分量和非谐波分量两种 , 鲤鱼 主要由频率合成过程中的非线性失真产生 , 鲤鱼 相位噪声是衡量输出信号相位抖动大小的参数 。 草鱼 草鱼 6.调制性能 : pork指的是频率合成器是否具有调幅 (AM)、 pork调频 (FM)、 pork调相