基于FPGA的DDS设计及实现_第1页
基于FPGA的DDS设计及实现_第2页
基于FPGA的DDS设计及实现_第3页
基于FPGA的DDS设计及实现_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于基于 FPGA 的的 DDS 设计及实现设计及实现 时间 2010 09 20 07 45 31 来源 现代电子技术 作者 帅 倩 吴国辉 代冀阳 0 引言引言 随着现代电子技术的不断发展 在通信系统中往往需要在一定频率范围内提供一系列稳定和准确的频率信 号 一般的振荡器己不能满足要求 这就需要频率合成技术 直接数字频率合成 Direct Digital Frequency Synthesis DDS 是把一系列数据量形式的信号通过 D A 转换器转换成模拟量形式的信号合 成技术 DDS 具有相对带宽宽 频率转换时间短 频率分辨率高 输出相位连续 可产生宽带正交信号 及其他多种调制信号等优点 已成为现代频率合成技术中的姣姣者 目前在高频领域中 专用 DDS 芯片 在控制方式 频率控制等方面与系统的要求差距很大 利用 FPGA 来设计符合自己需要的 DDS 系统就是 一个很好的解决方法 现场可编程门阵列 FPGA 器件具有工作速度快 集成度高 可靠性高和现场可编程等优点 并且 FPGA 支持系统现场修改和调试 由此设计的 DDS 电路简单 性能稳定 也基本能满足绝大多数通信系统的使 用要求 1 DDS 的结构原理的结构原理 DDS 的基本原理是利用有限的离散数据 通过查表法得到信号的幅值 通过数模转换器 D A 后生成连 续波 DDS 的原理框图如图 1 所示 其中 频率控制字为 fword 相位累加器的位数为 N 相位累加器以步长 fword 做累加 产生所需的频率 控制数据 把得到的频率控制数据作为地址对 ROM 存储器进行寻址 数据存储器 ROM 实质是一个相位 幅度转换电路 ROM 中存储二进制码表示所需合成信号的相位 幅度值 相位寄存器每寻址一次 ROM 就输出一个相对应的信号相位 幅度值 理想情况下 累加器的 N 位全部用来寻址时 DDS 的合成频率为 式中 fword 为频率控制字 N 为相位累加器位数 fclk 为输入时钟 当 fworld 1 时 得 DDS 的最小分 辨率 如果改变频率控制字 就可以改变合成的频率的频偏 2 DDS 调频系统在调频系统在 FPGA 中的实现中的实现 2 1 累加控制模块的设计累加控制模块的设计 累加控制模块通过调用 Quartus 中模块化库 LPM 进行设计 即由加法器 lpm add sub 和乘法器 lpm mult 及累加器 altaccumulate 模块构成 若要求 DDS 系统精度高 相位累加器的位数 N 须较大 现在大多数专用的 DDS 芯片的位数都在 24 32 位之间 这里取 N 32 累加控制模块如图 2 所示 基于基于 FPGA 的的 DDS 设计及实现设计及实现 时间 2010 09 20 07 45 31 来源 现代电子技术 作者 帅 倩 吴国辉 代冀阳 ADC 转换芯片处理后的 8 位数字信号 为了使 DDS 合成的频率较大 末尾补 4 个 O 作为参数化模块 lpm add sub 的 12 位输入 datai 由于 ADC 信号输出的是 8 位二进制偏移码 与计算机处理的二进制补 码形式不同 需将二进制偏移码转换成二进制补码 在这里与另一路输入信号常数 2 048 做减法 就能达 到求补的目的 并输出 12 位有符号数 12 位的输出接入 lpm mult 模块 lpm mult 的另一路输入为 12 位任意数输入 乘法器的输出直接影响 累加器累加相位的速度 当乘以一个比较大的数 则频率变化加快 同理 为了使合成频率较大 乘法器的 24 位输出在末尾补 O 成为 32 位数 datab 送到累加模块 altaccumulate 中 为了节省 ROM 容量 最后取 altaccumulate 输出的高 10 位作为 ROM 查找表的地址 信号 累加控制模块的时序仿真如图 3 所示 2 2 ROM 查找表的设计查找表的设计 针对不同的可编程器件 ROM 查找表的设计采用的方法也不相同 主要是基于 lpm rom 和 VHDL 选择 语句这两种方法 使用 lpm rom 的波形存储表只需要产生数据文件 mif 然后直接在定制 lpm rom 时 添加数据文件即可 不过这种方法在 FPGA 支持内部嵌入式阵列块 EAB 时才可以使用 使用 VHDL 选择语句比较直观 但当输入数据量大的时候 这种方法是比较繁琐的 此次设计采用第一种方法 mif 文件是在编译和仿真过程中作为存储器 ROM 或 RAM 初始化输入的文件 即 memory initialization file 创建 mif 文件的方式有很多种 在这次设计中 在 Matlab 中采用 C 语言来生成 mif 文件 mif 文件 编写格式如下 通常相位累加器的位数 N 很大 实际设计中受到体积和成本的限制 为了节省 ROM 的容量采用相位截断 的方法 一般只取累加器输出的高几位作为 ROM 的寻址地址 设计中取累加结果的高 10 M 10 位来进 行查表 也就是说正余弦 ROM 有 210 1 024 个寻址地址 数据宽度为 12 如图 4 所示 设计了 2 个 lpm rom 模块 分别是 sin 波形存储器和 cos 波形存储器 基于基于 FPGA 的的 DDS 设计及实现设计及实现 时间 2010 09 20 07 45 31 来源 现代电子技术 作者 帅 倩 吴国辉 代冀阳 3 单片机控制电路单片机控制电路 此次选择的 FPGA 芯片为 Altera 公司的 ACEXlK 系列的 EPlK30TTl44 2 它可以采用专用的配置器件来 配置 也可以采用单片机来配置 前者价格昂贵 而且专用配置器件的 ROM 为一次性编程 不易实现 FPGA 的系统功能转换 采用单片机 C8051F330D 对 FPGA 进行被动串行 PS 方式 配置 使用可多次修 改的 AT24C512 E2PROM 作为配置文件存储器 真正做到 现场可编程 对提高生产率 降低生产成本 均有好处 系统的配置电路如图 5 所示 其电路的工作过程为 经 Quartus 编译生成的配置文件 rbf 利用 PC 机端的控制程序 通过 PC 机的串行通信口 经 U1 存储在 U2 中 U1 再根据系统的要求通过 P0 6 P1 O P1 1 P1 6 和 P1 7 等 5 个 I O 口将其存储在 U2 中的配置数据下载到电路中的 FPGA 器件 U3 中 PC 机的控制程序在此略 4 设计结果设计结果 累加控制器 ROM 查找表组成一个整体 实现了一个基本的 DDS 系统 DDS 系统的最后仿真结果如图 6 所示 图 6 中的 pllclk acum dai daq 分别代表时钟输入 累加输出及正弦波和余弦波输出 把 O 2 的相 位分成 3FF 段 取出相应的幅度值存储于 ROM 中 ROM 中存储数据如下 相位数据 O 3FF 幅度数 据 O FFF 从仿真图可以看出 dai 11 O 输出从 EFF FFF 0 EFF 变化 daq 11 O 输出从 FFF O FFF 变化 最后通过单片机配置 FPGA 运行 把得出的信号通过 D A 转换和滤波能够得到所 需的正弦波和余弦波信号 5 结语结语 给出了基于 FPGA 的 DDS 设计的实现方案 通过仿真分析可以看出 DDS 输出信号具有如下特点 1 频率稳定性好

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论