- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于单片机与FPGA的波形发生器
摘 要: 基于单片机与 FPGA的波形发生器, 核心技术是直接数字频率合成。FPGA集成了固定分频器、 单片机通信模块、 波形合成器及波形选择等模块, 其输出的 8 位数据通过 D/A转换并经功率放大后即得所需波形。单片机控制键盘与显示模块, 提供了良好的人机界面。经过设计和电路测试, 系统能产生正弦波、 三角波和方波等波形, 控制灵活, 输出波形性能良好。
关键词: 波形发生器; DDS技术; 单片机; FPGA器件; D/A转换器
引言
波形发生器在信号源、 变频电源、 逆变电器和检测仪表等电子设备中得到广泛的应用。在通信系统的科研实验中, 也常常需要用到多种不同频率和相位的信号, 如正弦波、 三角波、 方波和锯齿波等。 因此多波形的信号发生器的应用十分广泛。现今的波形发生器是以 DDS 为基础的数字波形发生器。近年来, 可编程逻辑器件 FPGA也被广泛地应用于数字系统, 也特别适合波形发生器的设计, 结合单片机控制灵活的特性, 可以设计输出波形性能非常好的波形发生
器。
2. DDS(直接数字频率合成)技术
DDS技术是一种应用全数字技术, 从相位概念出发把一系列数字形式的信号通过 DAC 转换成模拟形式的信号的合成技术。DDS技术建立在采样定理的基础上, 它首先对需要产生的波形进行采样,将采样值数字化后存入存储器作为查找表, 然后再通过查表将数据读出, 经过 D/A转换器转换成模拟量, 把存入的数据重新合成出来。DDS的基本原理框图见图 1。
从图中可以看出 DDS 由四个重要的组成部分: 相位累加器, 波形 ROM, D/A 转换器和低通滤波器。在每一个时钟周期 T内, 频率控制字 K与 N比特相位累加器累加一次, 并同时对 2N 取模运算,得到的相位值以二进制代码的形式对存储相应波形数据的 RAM进行寻址, 输出与该相位值相对应的数字化幅度值, 再经 DAC数模转换完成离散信号到连续信号的转变, 最后经低通滤波器滤波即可得到信号输出。
由上述原理可知, 输出频率满足:
Fout=(K*[Fclk])/2N;
则当 K=1 时, DDS有最小频率输出, 则 DDS的最小频率分辨率可达:
Fmin=(K*[Fclk])/2N;
这其实也就是输出频率分辨率, 可以看出, 当 N不断增加的时候输出频率分辨率可以不断的提高。当然在实际中 N的增加受到种种因素的制约。但是就目前的技术水平来说, 已经可以产生很高的频率分辨率了。
3.系统设计
本系统利用 DDS技术, 结合单片机的灵活控制特点和 FPGA高速、 可编程等优点, 设计完成能产生正弦波、 三角波、 方波等多种波形的波形发生器。该系统主要由单片机控制模块和波形发生模块两个主模块, 各主模块又由多个子模块组成。 系统框图如图2 所示。
4.硬件设计与实现
由于单片机的强控制能力, 多输入口子, 软件编程简单、 灵活, 所以选用带内部程序存储器的 89S52单片机作为整个系统的控制计算核心。它采用中断的方法采集键盘命令, 当有按键按下的时候, 根据波形、 频率、 上调及下调等按键的功能, 转去执行相应的子程序。电路原理如图 3 所示。本设计使用的是
SpartanTM- ⅡE PQ208 封装系列 XC2S100E 型号的FPGA 芯片。该芯片具有 100 000 门规模, 600 个CLB, 40 K 的 BlockRAM, 202 个 I/O 口, 4 个延迟锁
相环, 资源丰富, 非常满足设计要求。单片机与FPGA接口主要是向 FPGA 传入控制信号和频率控制字。FPGA则接收来自单片机的数据信息, 输出波形。
5.FPGA硬件设计
采用模块化的设计方法, 顶层模块的主要作用是连接各子功能模块, 将
分散独立的子模块组成一个系统, 子模块的连接情况如图 4 所示。
从图中可以看出系统主要由 8 个模块组成, 分别是时钟分频模块, 与单片机通信模块, 相位累加模块, 数据存储寻址模块, 各波形数据存储模块和数据选择模块。
6.系统软件设计
如图 5 为单片机部分程序设计, 主要实现对输入的按键值进行判断, 根据判断结果执行相应的处理, 并将输入的按键值按一定的顺序显示出来。
考虑到系统需要通过键盘输入的信息较多, 包括频率信号, 波形信号, 频率上调和下调等, 为了便于与 FPGA通信, 这些信息的输入有必要按一定的流程进行操作。因此, 本系统设置了如下功能键:
( 1) 准备键: 设置波形时首先按准备键准备接收波形的频率、 类型等信息, 同时对显示器清屏, 对部分存储器赋初值;
( 2) 波形类型选择键: 按此键后, 按数字键 0~ 2的任意键表示选择一种波形;
( 3) 频率输入准备键: 按此键后 可
文档评论(0)