基于FPGA函数信号发生器的设计.doc_第1页
基于FPGA函数信号发生器的设计.doc_第2页
基于FPGA函数信号发生器的设计.doc_第3页
基于FPGA函数信号发生器的设计.doc_第4页
基于FPGA函数信号发生器的设计.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计说明书 基于 FPGA 多功能波形发生器的设计 中北大学 2012 届毕业设计说明书 基于 FPGA 的多功能波形发生器的设计 摘 要 数字信号发生器是数字信号处理中不可缺少的调试设备 在生产生 活中的应用非常广泛 本文所设计的内容就是基于 FPGA 实现数字信号 发生器的设计 FPGA 具有密度高 功耗低 体积小 可靠性高等特点 设计时可以不必过多考虑具体硬件连接 本设计中应用 VHDL 硬件描述 语言进行描述 使该数字信号发生器可以产生正弦波 方波 三角波 三个独立的波形 并能对所产生的三种波形的频率和幅度进行调节 关键词 直接数字频率合成 数字波形发生器 FPGA DDS VHDL 中北大学 2012 届毕业设计说明书 中北大学 2012 届毕业设计说明书 第 I 页 共 II 页 目 录 1 绪论 1 1 1 背景与意义 1 1 2 国内外发展现状 1 2 设计简介 1 2 1 DDS 技术 1 2 2 FPGA 简介 2 2 3 VHDL 简介 4 2 4 Quartus 简介 6 3 系统硬件电路设计 8 3 1 数字信号发生器的系统组成 8 3 2 设计原理及要求 8 3 3 输入部分 9 3 3 1 频率 幅值和波形转换部分 9 3 3 2 系统时钟电路 11 3 3 3 电源电路的设计 11 3 4 FPGA 部分 12 3 5 D A 转换部分 13 3 5 1 DAC0832 转换器简介 14 3 6 滤波电路 15 4 系统软件设计 16 4 1 软件系统流程图 16 4 2 主要函数语句分析 16 4 3 数字信号发生器的软件设计 18 4 4 软件各模块 19 4 4 1 波形发生器 19 4 4 2 主控制模块 20 4 4 3 波形数据产生模块 20 中北大学 2012 届毕业设计说明书 第 II 页 共 II 页 4 4 4 波形产生模块 23 5 设计总结 25 附 录 26 参考文献 35 6 致谢辞 36 中北大学 2012 届毕业设计说明书 第 1 页 共 36 页 1 绪论绪论 1 1 背景与意义背景与意义 在电子技术领域 常常需要波形 频率 幅度都可调的电信号 用于产生这 种电信号的电子仪器称作信号发生器 信号发生器是一种常用的信号源 广泛运用于科学研究 生产实践和教学试 验等领域 特别是在通信系统的科研实验中 常常需要用到不同频率和幅度的信 号 如正弦波 三角波 方波和锯齿波等 作为一种为电子测量和计量提供电信 号的设备 它和万用表 示波器 频率计等仪器一样 是最普通 最基本 也是 运用最广泛的电子仪器之一 几乎所有电参量的测量都需要用到信号发生器 传统的波形发生器多采用模拟分立元件实现 产生的波形种类要受到电路硬 件的限制 体积大 灵活性和稳定性也相对较差 近年来 以数字技术为基础的 数字信号发生器得到了飞速的发展 性能指标都达到了一个新的水平 现场可编 程门阵列器件具有容量大 运算速度快 现场可编程等优点 使得许多复杂的电 路有了新的实现途径 越来越被广泛地应用到实际系统中 而且随着当今电子系 统的越来越复杂 毫无疑问 数字信号发生器正在成为模拟复杂信号的事实标准 凡是能产生测试信号的仪器 统称为信号源 也称为信号发生器 它用于产 生被测电路所需特定参数的电测试信号 信号源是根据用户对其波形的命令来产生信号的电子仪器 信号源主要给被 测电路提供所需要的已知信号 各种波形 然后用其它仪表进行测量的参数 信 号源有很多种分类方法 其中一种方法可分为混和信号源和逻辑信号源两种 其 中混和信号源主要输出模拟波形 逻辑信号源输出数字码形 混和信号源又可分 为函数信号发生器和任意波形 函数发生器 其中函数信号发生器输出标准波形 如正弦波 方波等 任意波 函数发生器输出用户自定义的任意波形 逻辑信号发 生器又可分为脉冲信号发生器和码型发生器 其中脉冲信号发生器驱动较小个数 的方波或脉冲波输出 码型发生器生成许多通道的数字码型 1 2 国内外发展现状国内外发展现状 采用可变时钟和计数器寻址波形存储器的任意波形发生器 4 在一段时期内曾 中北大学 2012 届毕业设计说明书 第 2 页 共 36 页 得到广泛的应用 其取样时钟频率较高且可调节 然而这种波形发生器对硬件要 求比较高 需要高性能的锁相环和截止频率可调的低通滤波器 且频率分辨率低 频率切换速度较慢 已经逐步退出市场 目前市场上的数字信号发生器主要采用直接数字合成 Direct Digital synthesizer DDS 技术 这种波形发生器不仅可以产生可变频的载频信号 各 种调制信号 同时还能和计算机配合产生用户自定义的有限带宽的任意信号 可 以为多领域的测试提供宽带宽 高分辨率的测试信号 从目前发展状况来看 国外数字信号发生器的研制和生产技术已经较为成熟 以安捷伦 Agilent 和 泰克 Tektronix 为代表的国际电子测量仪器公司在此 领域进行了卓有成效的研究和开发 其产品无论在技术上还是市场占有率方面在 国际上都享有盛誉 但其价格也相当昂贵 高端型号每台价格都在几万美金左右 低端的也要几万人民币 Tektronix 公司的独立结构任意波形发生器 AFG3000 系 列功能完善 人机界面友好 操作方便 可以以多种方式连接到 PC 机上 其最高 采样率能达到 2GS s 输出正弦信号最高频率为 240MHz 任意波频率最高能达到 50MHz 并配备的强大的波形编辑软件 Arbexpress 用户可以方便地创建和编辑 自己的波形 Agilent 公司的 PXI 模块任意波形发生器采样率已经能达到 1 25GS s 最高输出频率 500MHz 我国研制任意波形发生器是从上世纪 90 年代 开始的 近年来有一批本土厂商奋起直追 取得了可喜的成果 例如南京盛普科 技电子有限公司的 SPF120 型信号发生器的主波输出频率达到了 120MHz 任意波 最高频率为 100KHz 北京普源精电科技有限公司 RIGOL 生产的 DG1000 2000 3000 系列任意波形发生器 在性能上已经大略相当于国外中低端产 品 本课题的主要研究内容是参考直接数字频率合成原理 DDS 技术 6 利用 Quartus II 5 1 软件作为平台 VHDL 语言作为开发语言 基于 FPGA 配合相应外 围电路实现一个数字信号发生器 其电路结构简单 容易扩展 具有极大的灵活 性和方便性 实现了产生频率 幅度可调的正弦波 三角波 方波的信号发生器 中北大学 2012 届毕业设计说明书 第 1 页 共 36 页 2 设计简介设计简介 2 1 DDS 技术技术 DDS 与大多数的数字信号处理技术一样 它的基础仍然是奈圭斯特采定理 奈 圭斯特采样定理是任何模拟信号进行数字化处理的基础 它描述的是一个带限的 模拟信号经抽样变成离散序列后可不可以由这些离散序列恢复出原始模拟信号的 问题 奈圭斯特采样定理告诉我们 当抽样频率大于或者等于模拟信号最高频率的 两倍时 可以由抽样得到的离散序列无失真地恢复出原始模拟信号 只不过在 DDS 技术中 这个过程被颠倒过来了 DDS 不是对模拟信号进行抽样 而是一个假 定抽样过程已经发生且抽样值已经量化完成 如何通过某种方法把已经量化的数 值重建原始信号的问题 DDS 电路一般由参考时钟 相位累加器 波形存通滤波器 LPF 组成 其结 构如图 2 1 所示 图 2 1 DDS 基本结构框图 其中 f c 为参考时钟频率 K 为频率控制字 N 为相位累加器位数 A 为波 形存储器地址位数 D 为波形存储器的数据位字长和 D A 转换器位数 DDS 系统中的参考时钟通常由一个高稳定度的晶体振荡器来产生 用来作为 整个系统各个组成部分的同步时钟 频率控制字 Frequency Control Word FCW 实际上是二进制编码的相位增量值 它作为相位累加器的输入 相位 累加器由加法器和寄存器级联而成 它将寄存器的输出反馈到加法器的输入端实 现累加的功能 在每一个时钟脉冲 f c 相位累加器把频率字 K 累加一次 累加 器的输出相应增加一个步长的相位增量 由此可以看出 相位累加器的输出数据 实质上是以 K 为步长的线性递增序列 在相位累加器产生溢出以前 它反映了合 中北大学 2012 届毕业设计说明书 第 2 页 共 36 页 成信号的相位信息 相位累加器的输出与波形存储器的地址线相连 相当于对波 形存储器进行查表 这样就可以把存储在波形存储器中的信号抽样值 二进制编 码值 查出 在系统时钟脉冲的作用下 相位累加器不停的累加 即不停的查表 波形存储器的输出数据送到 D A 转换器 D A 转换器将数字量形式的波形幅度值 转换成一定频率的模拟信号 从而将波形重新合成出来 若波形存储器中存放的 是正弦波幅度量化数据 那么 D A 转换器的输出是近似正弦波的阶梯波 还需要 后级的低通平滑滤波器进一步抑制不必要的杂波就可以得到频谱比较纯净的正弦 波信号 图 2 2 所示为 DDS 各个部分的输出信号 由于受到字长的限制 相位累加器累加到一定值后 就会产生一次累加溢出 这样波形存储器的地址就会循环一次 输出波形循环一周 相位累加器的溢出频 率即为合成信号的频率 可见 频率控制字 K 越大 相位累加器产生溢出的速度 越快 输出频率也就越高 故改变频率字 即相位增量 就可以改变相位累加器 的溢出时间 在参考频率不变的条件下就可以改变输出信号的频率 图 2 2 DDS 各部分输出波形 2 2 FPGA 简介简介 数字集成电路从产生到现在 经过了早期的电子管 晶体管 小中规模集成 电路 到大规模 超大规模集成电路 VLSIC 以及许多既有特定功能的专用集成 电路的发展过程 但是 随着为电子技术的发展 设计与制造集成电路的任务已 不完全由半导体厂商来独立承担 系统设计师们更愿意自己设计专用集成电路 Application Special Integrated Circuit ASIC 芯片 而且希望 ASIC 的设 计周期尽可能短 最好是在 实验室里就能设计出合适的 ASIC 芯片 并且立即投 入实际应用之中 因而出现了现场可编程逻辑器件 Field Programmable Logic Device FPLD 其中应用最广泛的当属 CPLD 和 FPGA 1 CPLD 是复杂可编程逻辑器件 Complex Programmable Logic Device 的简 中北大学 2012 届毕业设计说明书 第 3 页 共 36 页 称 FPGA 是现场可编程门阵列 Field Programmable Gate Array 的简称 两 者的功能基本相同 只是实现原理略有不同 但有时可以忽略这两者的区别 不 同厂家对可编程逻辑器件的叫法也不尽相同 Altera 公司把自己的可编程逻辑器 件产品中的 MAX 系列 乘积项技术 EEPROM 技术 FLEX 系列 查找表技术 SRAM 工艺 都叫做 CPLD 而把也是 SRAM 工艺 基于查找表技术 要外挂配置用 的 FLEX 系列的 EPROM 叫做 FPGA 早期的可编程逻辑器件都属于低密度 PLD Programmable Logic Device 结构简单 设计灵活 但规模小 难以实现复杂的逻辑功能 1985 年 Xilinx 公 司首先推出了现场可编程门阵列 FPGA 这是一种新型的高密度 PLD 采用 CMOS SRAM 工艺制作 其结构和阵列型 PLD 不同 内部由许多独立的可编程模块组成 逻辑模块之间可以灵活地相互连接 具有密度高 编程速度快 设计灵活和可再 配置设计能力等许多优点 FPGA 一般由 6 部分组成 分别为可编程输入 输出单元 基本可编程逻辑单 元 嵌入式块 RAM 丰富的布线资源 底层嵌入功能单元和内嵌专用硬核等 每个单元简介如下 1 可编程输入 输出单元 I O 单元 目前大多数 FPGA 的 I O 单元被设 计为可编程模式 即通过软件的灵活配置 可适应不同的电气标准与 I O 物理特 性 可以调整匹配阻抗特性 上下拉电阻 可以调整输出驱动电流的大小等 2 基本可编程逻辑单元 FPGA 的基本可编程逻辑单元是由查找表 LUT 和寄存器 Register 组成的 查找表完成纯组合逻辑功能 FPGA 内部寄存器可 配置为带 同步 异步复位和置位 时钟使能的触发器 也可以配置成为锁存器 FPGA 一般依赖寄存器完成同步时序逻辑设计 一般来说 比较经典的基本可编程 单元的配置是一个寄存器加一个查找表 但不同厂商的寄存器和查找表的内部结 构有一定的差异 而且寄存器和查找表的组合模式也不同 3 嵌入式块 RAM 目前大多数 FPGA 都有内嵌的块 RAM 嵌入式块 RAM 可以 配置为单端口 RAM 双端口 RAM 伪双端口 RAM CAM FIFO 等存储结构 4 丰富的布线资源 布线资源连通 FPGA 内部所有单元 连线的长度和工 艺决定着信号在连线上的驱动能力和传输速度 布线资源的划分 A 全局性的专用布线资源 以完成器件内部的全局时钟和全局复位 置位的布 中北大学 2012 届毕业设计说明书 第 4 页 共 36 页 线 B 长线资源 用以完成器件 Bank 间的一些高速信号和一些第二全局时钟信号 的布线 C 短线资源 用来完成基本逻辑单元间的逻辑互连与布线 D 其他 在逻辑单元内部还有着各种布线资源和专用时钟 复位等控制信号 线 5 底层嵌入功能单元 由厂商及芯片型号决定 6 内嵌专用硬核 与 底层嵌入单元 有区别 这里指的硬核主要是那些 通用性相对较弱的芯片 不是所有 FPGA 芯片都包含硬核 FPGA 的基本特点主要有 1 采用 FPGA 设计 ASIC 电路 用户不需要投片生产 就能得到合用的芯片 2 FPGA 可做其它全定制或半定制 ASIC 电路的中试样片 3 FPGA 内部有丰富的触发器和 I O 引脚 4 FPGA 是 ASIC 电路中设计周期最短 开发费用最低 风险最小的器件之一 5 FPGA 采用高速 CHMOS 工艺 功耗低 可以与 CMOS TTL 电平兼容 使用 FPGA 时 可以根据不同的配置模式 采用不同的编程方式 加电时 FPGA 芯片将 EPROM 中数据读入片内编程 RAM 中 配置完成后 FPGA 进入工作状态 掉电后 FPGA 恢复成白片 内部逻辑关系消失 因此 FPGA 能够反复使用 FPGA 的编程无须专用的 FPGA 编程器 只须用通用的 EPROM PROM 编程器即可 当需要 修改 FPGA 功能时 只需换一片 EPROM 即可 这样 同一片 FPGA 不同的编程数 据 可以产生不同的电路功能 因此 FPGA 的使用非常灵活 FPGA 有多种配置模 式 并行主模式为一片 FPGA 加一片 EPROM 的方式 主从模式可以支持一片 PROM 编程多片 FPGA 串行模式可以采用串行 PROM 编程 FPGA 外设模式可以将 FPGA 作 为微处理器的外设 由微处理器对其编程 2 32 3 VHDLVHDL 简介简介 VHDL 的全称是 Very High Speed Integrated Circuit Hardware Description Language 诞生于 1982 年 1987 年底 VHDL 被 IEEE 和美国国防 部确认为标准硬件描述语言 中北大学 2012 届毕业设计说明书 第 5 页 共 36 页 VHDL 主要用于描述数字系统的结构 行为 功能和接口 除了含有许多具有 硬件特征的语句外 VHDL 的语言形式和描述风格与句法是十分类似于一般的计算 机高级语言 VHDL 的程序结构特点是将一项工程设计 或称设计实体 可以是一 个元件 一个电路模块或一个系统 分成外部 或称可是部分 及端口 和内部 或称可视部分 既涉及实体的内部功能和算法完成部分 在对一个设计实体定 义了外部界面后 一旦其内部开发完成后 其他的设计就可以直接调用这个实体 这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点 VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用 它自身必然具 有很多其他硬件描述语言所不具备的优点 归纳起来 VHDL 语言主要具有以下优 点 1 VHDL 语言功能强大 设计方式多样 VHDL 语言具有强大的语言结构 只需采用简单明确的 VHDL 语言程序就可以 描述十分复杂的硬件电路 同时 它还具有多层次的电路设计描述功能 此外 VHDL 语言能够同时支持同步电路 异步电路和随机电路的设计实现 这是其他 硬件描述语言所不能比拟的 VHDL 语言设计方法灵活多样 既支持自顶向下的 设计方式 也支持自底向上的设计方法 既支持模块化设计方法 也支持层次化 设计方法 2 VHDL 语言具有强大的硬件描述能力 VHDL 语言具有多层次的电路设计描述功能 既可描述系统级电路 也可以 描述门级电路 描述方式既可以采用行为描述 寄存器传输描述或者结构描述 也可以采用三者的混合描述方式 同时 VHDL 语言也支持惯性延迟和传输延迟 这样可以准确地建立硬件电路的模型 VHDL 语言的强大描述能力还体现在它具有 丰富的数据类型 VHDL 语言既支持标准定义的数据类型 也支持用户定义的数据 类型 这样便会给硬件描述带来较大的自由度 3 VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在 对于同一个硬件电路的 VHDL 语言描 述 它可以从一个模拟器移植到另一个模拟器上 从一个综合器移植到另一个综 合器上或者从一个工作平台移植到另一个工作平台上去执行 4 VHDL 语言的设计描述与器件无关 中北大学 2012 届毕业设计说明书 第 6 页 共 36 页 采用 VHDL 语言描述硬件电路时 设计人员并不需要首先考虑选择进行设计 的器件 这样做的好处是可以使设计人员集中精力进行电路设计的优化 而不需 要考虑其他的问题 当硬件电路的设计描述完成以后 VHDL 语言允许采用多种不 同的器件结构来实现 5 VHDL 语言程序易于共享和复用 VHDL 语言采用基于库 library 的设计方法 在设计过程中 设计人员 可以建立各种可再次利用的模块 一个大规模的硬件电路的设计不可能从门级电 路开始一步地进行设计 而是一些模块的累加 这些模块可以预先设计或者使用 以前设计中的存档模块 将这些模块存放在库中 就可以在以后的设计中进行复 用 由于 VHDL 语言是一种描述 模拟 综合 优化和布线的标准硬件描述语言 因此它可以使设计成果在设计人员之间方便地进行交流和共享 从而减小硬件电 路设计的工作量 缩短开发周期 2 42 4 Quartus Quartus 简介简介 Quartus II 是 Altera 公司的综合性 PLD 开发软件 支持原理图 VHDL 以及 AHDL Altera Hardware Description Language 等多种设计输入形式 内嵌自 有的综合器以及仿真器 可以完成从设计输入到硬件配置的完整 PLD 设计流程 Quartus II 可以在 XP Linux 以及 Unix 上使用 除了可以使用 Tcl 脚本完 成设计流程外 提供了完善的用户图形界面设计方式 具有运行速度快 界面统 一 功能集中 易学易用等特点 Quartus II 支持 Altera 的 IP 核 包含了 LPM MegaFunction 宏功能模块库 使用户可以充分利用成熟的模块 简化了设计的复杂性 加快了设计速度 对第 三方 EDA 工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方 EDA 工具 此外 Quartus II 通过和 DSP Builder 工具与 Matlab Simulink 相结合 可以方便地实现各种 DSP 应用系统 支持 Altera 的片上可编程系统 SOPC 开发 集系统级设计 嵌入式软件开发 可编程逻辑设计于一体 是一种综合性的开发 平台 中北大学 2012 届毕业设计说明书 第 7 页 共 36 页 MaxplusII 作为 Altera 的上一代 PLD 设计软件 由于其出色的易用性而得到 了广泛的应用 目前 Altera 已经停止了对 Maxplus II 的更新支持 Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变 Altera 在 Quartus II 中包含了许多诸如 SignalTap II Chip Editor 和 RTL Viewer 的设计辅助工具 集成了 SOPC 和 HardCopy 设计流程 并且继承了 Maxplus II 友好的图形界面及 简便的使用方法 Altera QuartusII 作为一种可编程逻辑的设计环境 由于其强大的设计能力 和直观易用的接口 越来越受到数字系统设计者的欢迎 Altera 的 Quartus II 可编程逻辑软件属于第四代 PLD 开发平台 该平台支 持一个工作组环境下的设计要求 其中包括支持基于 Internet 的协作设计 Quartus 平台与 Cadence Exemplar Logic Mentor Graphics Synopsys 和 Synplicity 等 EDA 供应商的开发工具相兼容 改进了软件的 Logic Lock 模块设 计功能 增添 了 Fast Fit 编译选项 推进了网络编辑性能 而且提升了调试能 力 图 2 3 EDA 工具设计流程图 中北大学 2012 届毕业设计说明书 第 8 页 共 36 页 3 系统硬件电路设计系统硬件电路设计 3 1 数字信号发生器的系统组成数字信号发生器的系统组成 该数字信号发生器系统主要由输入部分 FPGA 部分 D A 转换部分 频率 幅值 调节和波形转换部分组成 如图 3 1 所示 分频器 FPGA 部分 系 统 控 制 器 时钟 复位 波形 调幅 调频 正弦波 三角波 方波 其他波 型 波 形 D A 转 换 滤波 输出 图 3 1 数字信号发生器系统组成 3 2 设计原理及要求设计原理及要求 在本设计中 利用 FPGA 采用 EDA Electronic Design Automation 中自顶向 下 top to down 的设计方法 选用基于相位累加器的直接数字合成 DDS 技术来 完成数字信号发生器各功能模块的设计 DDS 这种结构主要由相位累加器 相位 调制器 波形 ROM 查找表 D A 构成 其中相位累加器 相位调制器 波 形 ROM 查找表是 DDS 结构中的数字部分 由于具有数控频率合成的功能 又合 称为 NCO 2 它的工作原理是 将要产生的波形数据存入波形存储器 然后在参考时钟的作 用下 对输入的频率数据进行累加 并且将累加器的输出一部分作为读取波形存 中北大学 2012 届毕业设计说明书 第 9 页 共 36 页 储器的地址 将读出的波形数据经 D A 转换为相应的模拟电压信号 本研究的重 点就是用 VHDL 来实现 DDS 的功能 能够达到高精度的输出 同时标准波形数据生 成存放在 ROM 中 可以简化运算过程 提高运算速度 加快反应时间 本设计主要通过 VHDL 语言实现频率控制 波形控制 波形数据的提取 波 形的产生工作 其中 波形数据运用 VHDL 语言编写 控制部分主要采用产生高 低电平的拨码开关控制 程序下载到 FPGA 上实现 经过 D A 输出波形 并通 过 Altera 公司 QuartusII5 1 软件进行波形的仿真 从而完成整个设计 本设计的任务是设计一个基于 FPGA 的数字信号发生器 根据任务书要求必须 达到以下要求 1 利用 EDA 开发系统 Quartus II 5 1 软件实现数字信号发生器的设计 2 根据整体电路的工作原理 完成各个子模块的设计及实现 3 对数字信号发生器完成 VHDL 语言描述 4 该数字信号发生器能够产生正弦波 方波 三角波 锯齿波信号 5 产生的波形信号频率和幅度可通过按键进行调节 6 用按键调节实现各种波形的转换 3 3 输入部分输入部分 输入部分包含以下功能按键 时钟 复位 波形 调幅 调频 1 时钟 标准的 50MHZ 时钟输入 2 复位 低电平复位 3 波形 为波形输出选择开关 可以选择单波形的输出 4 调幅 可以递增和递减正弦波 三角波 方波的幅度 5 调频 可以递增和递减正弦波 三角波 方波的频率 3 3 1 频率 幅值和波形转换部分 由于采用DDS 在ROM中存有波形一个周期的n个等间隔归一化采样数据 改变 相位累加器步进 从而改变对ROM中数据的读取速度 即可合成不同频率波形 存 储器中存入过量的采样值 使得采样点数较少时 依然能够得到较好波形输出 从而得到较高频率输出 否则 采样点数太少会使产生波形严重失真 输出波形 频率计算 中北大学 2012 届毕业设计说明书 第 10 页 共 36 页 式 3 1 0 2 oscf fs nk 式中是晶振频率oscf K 分频系数 N 相位累加器位数 S 相位累加器步长 若取代入式 3 1 得到 32 768 50 16oscfMHz KN 0 10fSHz 因此 只要控制S 的值就可准确实现频率步进为10 Hz 的等步进调频 如采 用32 MHz 的晶振 也能得到10 Hz 精确的等步进调节 但牺牲了波形质量 通过 实验测试和比较 可用下式计算频率 式3 2 32000000 0 65306 49 10 SHzfs 因为65306不是一个2N 的数 这样波形会漏掉少量采样点 即使这样 得到 波形依然平滑 可满足设计要求 若要使频率调节步进减小到1Hz 对晶振有特殊 要求 它的振荡频率必须是2的N次幂 由式 3 1 举例说明累加器位数不同产生 差异 式3 3 33554432 1048576 32 1SHzs 式3 4 33554432 33554432 1SHzs 式 3 4 产生的波形优于式 3 3 最高频率也高出几倍 由于DAC0832的电流建 立时间是1 s 因此输出波形的最高频率受下式限制 式3 5 6 max 31250 1 10 Hz f 最小采样点数 最小采样点数1000000 1000000 32 中北大学 2012 届毕业设计说明书 第 11 页 共 36 页 因此 要得到更高频率的波形需使用更高速的D A转换器 频率和幅值调节和波形转换电路如图3 2所示 八个按键一端接1K 排阻 上 拉电阻 后接VCC 一端接FPGA控制信号引脚输入端 按键有八个 分别为复位键 SW1 控制波形转换键SW2 控制幅度步进键SW3 控制幅度步减键SW4 控制频率 步进键SW5 控制频率步减键SW6 控制幅值步进键SW7 控制幅值步进键SW8 IO 4 SW1 SWITCH 1 4 2 3 IO 2IO 3 C R94 7 4 12 3 4 5 SW3 SWITCH 1 4 2 3 SW7 SWITCH 1 4 2 3 VCC C R10 4 7K 4 12 3 4 5 SW5 SWITCH 1 4 2 3 IO 1IO 0 SW2 SWITCH 1 4 2 3 IO 5IO 6 SW8 SWITCH 1 4 2 3 IO 7 SW4 SWITCH 1 4 2 3 SW6 SWITCH 1 4 2 3 图 3 2 输入按键电路 3 3 2 系统时钟电路 系统即 FPGA 运行时所需的时钟 采用 50MHZ 的有源晶振产生 电路如图 3 3 所示 其中 C5 为高频旁路电容 以滤除不良的高档次谐波 对时钟波形进行整形 CLK1 为输入时钟信号源 图 3 3 系统时钟电路 3 3 3 电源电路的设计 电源是电路正常工作的保证 直接影响着系统的稳定 如下图 3 4 所示 U2 为 5V 直流电源输入端 为 USB 供电 D2 为电源指示 输出部分有两个部分 分 别为 VEE 5V 和 3 3V 的 VCC 其中 VEE 是给 D A 供电 VCC 给整个系统供电 中北大学 2012 届毕业设计说明书 第 12 页 共 36 页 图 3 4 电源电路 3 4 FPGA 部分部分 本设计使用的 FPGA 芯片为 EPF10K50ETI144 2 芯片 其典型逻辑门数 包括 逻辑门和 RAM 为 50000 门 最大可用系统门数为 116000 门 逻辑单元 Logic elements 为 2880 个 逻辑阵列模块 Logic array blocks 为 360 个 嵌入式 阵列模块 Embedded array blocks 为 10 个 RAM 总容量为 20480 字节 用户 可用的 I O 引脚最多为 310 个 芯片的工作电压为 5V 其内部结构如图 3 5 所示 GND TMS GND GND VCC VCC IO 10 VCC IO 2 GND VCC VCC IO 9 IO 1 IO 13 EPF10K50ETI144 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 INPUT GLCRn INPUT OE2 GCLK2 VCCINT I O I O I O GND I O I O I O I O I O VCCIO I O TDI I O I O I O I O GND I O I O I O I O TMS I O I O VCCIO I O I O I O I O I O GND I O I O I O I O I O VCCIO I O I O I O GND VCCINT I O I O I O GND I O I O I O I O I O VCCIO I O I O I O I O I O GND I O I O I O TCK I O I O I O VCCIO I O I O I O I O I O TDO GND I O I O I O I O I O VCCIO I O I O I O GND INPUT GCLK1 INPUT OE1 IO 6 IO 11 VCC IO 5 IO 8 GND IO 12 IO 15 VCC IO 0 GND IO 3 TDI IO 7 TDO IO 14 IO 4 CLK1 图 3 5 EPF10K50ETI144 2 芯片结构图 通常情况下在硬件调试的过程中一般使用下载电缆进行下载 而当调试完成 以后要用配置芯片对 FPGA 进行配置 配置芯片在每次系统上电以后自动将配置文 件加载到 FPGA 中形成电路 U2 USB POWER 1 2 3 4 5 5v U U GND SHIF VCC VEE 5V 1K1 R C4 0 1uF U3 AMS1117 3 3 2 1 3 Vout Adj Vin D2 LED 3 3 C3 0 1uF C5 0 1uF C1 100uF D1 4002 C2 10uF 中北大学 2012 届毕业设计说明书 第 13 页 共 36 页 3 5 D A 转换部分转换部分 D A 转换器电路的设计 从波形 RAM 中读出的幅度量化数据还只是一个数字 信号 要得到最后的输出信号必须经过数模转换器 因此在波形 RAM 之后要设计 一个 D A 转换电路 数模 D A 转换电路的作用是把已经合成的波形幅值的数字量转换成模拟量 其速度和特性直接影响整个系统的性能 D A 转换器件的首要特性要求是高速 其次是转换位数 本设计中选用 8 位的 D A 芯片 DAC0832 波形幅度量化序列经 D A 转换后成为阶梯波 频率合成器对 D A 转换器的分辨率有一定的要求 D A 转 换器的分辨率越高 合成的波形台阶数就越多输出的波形的精度也就越高 D A 的输出用电压形式表示一般应为 式 3 6 VV REFNout D 2 式中 D 为 D A 的输入数据值 N 为 D AC 的位数 即通常所指的 D AC 的分辨率 为输入 D A 的参考电压 D A 转换电路的设计首先是要选择一款合适的 D A VREF 转换芯片 D A 转换芯片种类繁多 选择 D A 转换芯片要根据很多因素来确定 最主要的就是要考虑字长和转换速度 本设计采用 DAC0832 作为 D A 转换器件 其具有数字量的输入锁存功能 DAC0832 芯片的输出通过放大器 OP07 即可用示 波器观察 100K 的电位器在 5V 和 0V 电压间为 DAC0832 提供参考电压 D A 转 换电路的原理图如图 3 6 所示 IO 15 VCC 2 43 1SIGOUT IO 11 IO 8 IO 13 U1 DAC0832 12 11 9 19 8 7 6 5 4 16 15 14 13 1 17 18 2 Iout2 Iout1 Rfb ILE Vref DI0 DI1 DI2 DI3 DI4 DI5 DI6 DI7 CS Xfer WR2 WR1 GND IO 10 VEE 5V DAC出 出 出 出 出 IO 14 IO 9 IO 12 R1 100K 13 2 U2 OP07 3 2 6 74 VCC 5V 图 3 6 D A 转换电路的原理图 中北大学 2012 届毕业设计说明书 第 14 页 共 36 页 3 5 1 DAC0832 转换器简介 DAC0832 是双列直插式 8 位 D A 转换器 能完成数字量输入到模拟量 电流 输出的转换 其主要参数如下 分辨率为 8 位 转换时间为 1 s 满量程误差为 1LSB 参考电压为 10 10 V 供电电源为 5 15 V 逻辑电平输入与 TTL 兼容 从图 3 7 中可见 在 DAC0832 中有两级锁存器 第一级锁存器称为输入寄 存器 它的允许锁存信号为 ILE 第二级锁存器称为 DAC 寄存器 它的锁存信号 也称为通道控制信号 XFER 图 3 7 DAC0832 引脚图 图 3 7 中 当 ILE 为高电平 片选信号 CS 和写信号 WR1 为低电平时 输入 寄存器控制信号为 1 这种情况下 输入寄存器的输出随输入而变化 此后 当 WR1 由低电平变高时 控制信号成为低电平 此时 数据被锁存到输入寄存器中 这样输入寄存器的输出端不再随外部数据 DB 的变化而变化 对第二级锁存来说 传送控制信号 XFER 和写信号 WR2 同时为低电平时 二 级锁存控制信号为高电平 8 位的 DAC 寄存器的输出随输入而变化 此后 当 WR2 由低电平变高时 控制信号变为低电平 于是将输入寄存器的信息锁存到 DAC 寄 存器中 DAC0832 各引脚编号及其作用 1 号 CS 引脚 片选信号输入线 低电平有效 2 号 WR1 引脚 为输入寄存器的写选通信号 3 号 AGND 引脚 模拟地 模拟信号和基准电源的参考地 4 7 13 16 号 D0 D7 引脚 数据输入线 TLL 电平 中北大学 2012 届毕业设计说明书 第 15 页 共 36 页 8 号 V ref 引脚 基准电压输入 10V 10V 9 号 RFB 引脚 反馈信号输入线 芯片内部有反馈电阻 10 号 DGND 引脚 数字地 11 号 IOUT1 引脚 电流输出线 当输入全为 1 时 IOUT1 最大 12 号 IOUT2 引脚 电流输出线 其值与 IOUT1 为一常数 17 号 XFRE 引脚 数据传送控制信号输入线 低电平有效 18 号 WR2 引脚 为 DAC 寄存器写选通输入线 19 号 ILE 引脚 数据锁存允许控制信号输入线 高电平有效 20 号 V cc 引脚 电源输入线 5V 15V Vref 3 6 滤波电路滤波电路 滤波是信号处理中的一个重要概念 滤波分经典滤波和现代滤波 经典 滤波的概念 是根据傅里叶分析和变换提出的一个工程概念 根据高等数学理 论 任何一个满足一定条件的信号 都可以被看成是由无限个正弦波叠加而成 换句话说 就是工程信号是不同频率的正弦波线性叠加而成的 组成信号的不 同频率的正弦波叫做信号的频率成分或叫做谐波成分 只允许一定频率范围内 的信号成分正常通过 而阻止另一部分频率成分通过的电路 叫做经典滤波器 或滤波电路 由于在电路运行过程中间 外部信号会对波形产生一定的干扰 而且从 D A 转化部分中转换出的波形是一种不平滑的阶梯波形 因此为了防止外部信号的干 扰和内部不平滑阶梯波的干扰 本次设计中增加了无源滤波中的 LC 滤波电路 目的在于消除外部信号的干扰 同时能够把从D A 转换部分转换出的阶梯波 形通过滤波转变为平滑的正弦波 方波 三角波 锯齿波 其滤波电路如图 3 8 所示 SIGOUT 输入信号来自 DAC 的输出 JP1 的输出接示波器 L1 SIGOUT JP1 1 2 C1 0 1uF C3 10uF C2 0 01uF 图 3 8 滤波电路 中北大学 2012 届毕业设计说明书 第 16 页 共 36 页 4 系统软件设计系统软件设计 4 1 软件系统流程图软件系统流程图 本设计主要是由 FPGA 为核心控制一些简单外围电路输出可控的方波 三角波 锯齿波 正弦波 输入部分为 8 个按键值 分别用于控制波型的选择 波型的调 节 输出部分由一个 8 位的 DA 组成 由 FPGA 将数据波型数据送给 DA 转换输出模 拟波型信号 具体流程如图 4 1 所示 初始化 按键输入 选择波型 调 节波型 由 FPGA 生成数字波型数据 将数字波型数据送入 DA 转换 输出模拟波型信号 图 4 1 系统流程图 通过按键可以选择输出波型 如方波 三角波 正弦波 波型频率幅度的改 变可以通过按对应的频率加按键和频率减键 幅度加键幅度减键 由于频率和幅 度改变在 Quartus 软件平台下不能明显仿真步进变化 所以本设计没有介绍步 进仿真 4 2 主要函数语句分析主要函数语句分析 在程序设计中 主要使用的函数语句有两种 If else 语句和 case when 语句 这两种语句也是 VHDL 程序设计中常用的语句 二者都属于流程控制语句 流程控 中北大学 2012 届毕业设计说明书 第 17 页 共 36 页 制语句通过条件控制开关决定是否执行一条或几条语句或重复执行一条或几条语 句或跳过一条或几条语句 IF 语句是一种条件语句 它根据语句中所设置的一种或多种条件 有选择地 执行指定的顺序语句 IF 语句的语句结构有以下三种 IF 条件句 Then 第一种 IF 语句结构 顺序语句 END IF IF 条件句 Then 第二种 IF 语句结构 顺序语句 ELSE 顺序语句 END IF IF 条件句 Then 第三种 IF 语句结构 顺序语句 ELSIF 条件句 Then 顺序语句 ELSE 顺序语句 END IF CASE 语句根据满足的条件直接选择多项顺序语句中的一项执行 CASE 语句的结 构如下 CASE 表达式 IS When 选择值 顺序语句 When 选择值 顺序语句 END CASE 中北大学 2012 届毕业设计说明书 第 18 页 共 36 页 当执行到 CASE 语句时 首先计算表达式的值 然后根据条件句中与之相同的 选择值 执行对应的顺序语句 最后结束 CASE 语句 表达式可以是一个整数类 型或枚举类型的值 也可以是由这些数据类型的值构成的数组 4 3 数字信号发生器的软件设计数字信号发生器的软件设计 本次设计的软件部分主要运用 Altera 公司的 Quartus 软件平台 其开发流 程基本分成 2 个步骤 1 设计输入 Quartus 软件的设计文件可以来自 Quartus 5 1 设计输入工具 或各种工业标准的 EDA 设计输入工具 Quartus 强大的集成功能允许信息在各种 应用程序间自由交流 设计者可在一个工程内直接从某个设计文件转换到其他任 何设计文件 而不必理会设计文件是图形格式 文本格式 还是波形格式 Quartus 具有如下的多种设计输入方法 原理图输入与符号编辑 硬件描述语言 波形设计输入 平面图编辑以及层次设计输入 如此众多的设计方法帮助设计者 轻松地完成设计输入 2 项目处理 Quartus 处理一个设计时 软件编译器读取设计文件信息 产 生用于器件编程 仿真 定时分析的输出文件 消息处理器可以自动定位编译过 程中发现的错误 编译器还可以优化设计文件 项目处理包括以下基本步骤 1 消息处理器自动定位错误 2 逻辑综合与试配 3 定时驱动编译 4 设计规则检查 5 多器件划分 本次设计的数字信号发生器在 Quartus 5 1 下的 RTL 图如图 4 2 所示 中北大学 2012 届毕业设计说明书 第 19 页 共 36 页 图 4 2 系统 RTL 图 4 4 软件各模块软件各模块 4 4 1 波形发生器 设计的波形发生器就是为了得到正弦波 三角波 方波这三种波形 并可通 过按钮选择输出波形 波形发生器可以由正弦波产生模块 三角波产生模块 方波产生模块和输出 波形选择模块 ch3a1 下图为波形发生器内部的顶层设计的规划图 图 4 3 波形发生器内部的顶层设计的规划图 如图可以看到 控制输入有三大块 一个是个按钮的数据选择命令的输入 一个 是时时钟输入 它的频率将决定输出波形的频率 还有一个是复位键 在芯片里面 要处理的就有波形产生器产生相应的数据后输出 8 位的数据到数据选择模块中 通 中北大学 2012 届毕业设计说明书 第 20 页 共 36 页 过按钮发出选择数据的指令 3 选 1 的数据选择器选择相应的数据进行输出 把这 些数据输入 D A 模块中 通过 D A 模块对数据转换 在它的输出端就可得到相应的 波形 4 4 2 主控制模块 主控制模块完成了频率调节 幅度调节和波形选择三个控制功能 图是用 Quartus 5 1 生成的主程序结构框图 其中 CLK 为标准频率 50M 输入 RST 为系 统复位键 VADD VDEC 为调节输出幅度的二个按键 使用方法是当按下 VADD 时 幅度会每隔一秒递增一次 直到最大幅度 当按下 VDEC 时幅度会每隔一秒递减一 次 直到最小幅度 PADD PDEC 为调节输出频率的二个按键 使用方法是当按下 PVADD 时频率会每隔一秒递增一次 直到最大频率 当按下 PDEC 时频率会每隔一 秒递减一次 直到最小频率 SEL 为波形选择键 当按下 SEL 键时系统每隔一秒 在方波 三角波 正弦波 锯齿波四种波形循环切换 CNT 为 FPGA 产生的 8 位数 字波形数据信号 具体框图如图 4 4 所示 CLK RST VADD VDEC PADD PDEC SEL CNT 7 0 SUN inst 图 4 4 主程序结构框图 4 4 3 波形数据产生模块 1 方波数据产生模块 方波产生方法是由主控制模块提供方波频率和幅度 按照主控制模块的频率 产生 0 和主控提供的幅度值 将这些数据直按送入 DAC 就能得到所需

温馨提示

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

评论

0/150

提交评论