基于fpga的dds信号发生器设计毕业论文内容摘要:
设计人员可以使用 DSP Builder 模块迅速生成 Simulink 系统建模硬件。 DSP Builder 包括比特和周期精度的 Simulink 模块,涵盖了算法和存储功能等基本操作。 可以使用 DSP Builder 模型中的 MegaCore 功能实现复杂功能的集成。 Altera 还提供 DSP Builder 高级模块集,这一 Simulink 库实现了时序驱动的 Simulink 综合。 Altera MegaCore 是高级参数化 IP 功能,例如有限冲击响应 FIR 滤波器和快速傅立叶变换 FFT 等,经过配置能够迅速方便的达到系统性能要求。 MegaCore功能支持 Altera 的 IP 评估特性,使您在购买许可之前,便可以验证功能及其时序。 Altera IP MegaStore 网站上为 DSP Builder 和 IP 评估流程提供 DSP IP 完整介绍 DSP Builder SignalCompiler 模块读取由 DSP Builder 和 MegaCore 模块构建的 Simulink 建模文件 .mdl ,生成 VHDL 文件和工具命令语言 Tcl 脚本,进行综合、硬件实施和仿真。 图示为 DSP Builder 设计流程。 DSP Builder 是一个系统级(或算法级)设计工具,它构架在多个软件工具之上,并把系统级和 RTL 级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势。 DSP Builder 依赖于 Math Works 公司的数学分析工具Matlab/Simulink,以 Simulink 的 Blockset 出现,可以在 Simulink 中进行图形化设计和仿真,同时又通过 Signal Compiler 可以把 Matlab/Simulink 的设计文件( .mdl)转成相应的硬件描述语言 VHDL 设计文件( .vhd) ,以及用于控制综合与编译的 TCL 脚本。 而对后者的处理可以由 FPGA/CPLD 开发工具 Quartus II 来完成。 软件平台 Quartus II 介绍 图 Quartus II 软件界面 如图 所示为 Quartus II 软件的基本界面, Quartus II 软件是 Altera的综合开发工具,它集成了 Altera 的 FPGA/CPLD 开发流程中所涉及的所有工具和第三方软件接口。 Quartus II 几乎支持 Altera 现行的所有 FPGA,在该集成开发环境中可以实现电路的设计、综合、适配到最后形成下载文件以及在线配置FPGA,还能对电路进行功能仿真,对适配后形成的最终电路进行时序仿真。 也就是说只要有了 Quartus II 这个集成开发环境,就基本上可以完成 Altera 公司FPGA 开发过程中的所有工作。 另外,为了方便设计, Quartus II 还提供了免费LPM 模块供用户调用,如计数器、存储器、加法器、乘法器等。 除了这些免费的LPM 模块外, Altera 公司还开发了有偿 IP 核提供给有需要的用户使用。 这些 LPM模块和 IP 核都大 大简化了设计过程,缩短了开发周期。 Quartus II 支持多种输入方式,常用的有: ( 1)原理图输入:这种方法最直观,适合顶层电路的设计; ( 2)硬件描述语言输入:包括 AHDL、 VHDL 及 Verilog HDL 输入。 采用硬件描述语言的优点易于使用自顶向下的设计方法、易于模块规划和复用、移植性强、通用性好。 ( 3)网表输入:对于在其他软件系统上设计的电路,可以采用这种设计方法,而不必重新输入, Quartus II 支持的网表文件包括 EDIF、 VHDL 及 Verilog等格式。 这种方法的优点是可以充分利用现有的设计 资源。 第 4 章 系统实现 本章主要介绍了 DDS 信号发生器的实现过程,开头部分讲述了包括 DDS 信号发生器的原理图,材料选择的比较以及重点模块的介绍。 后面一部分主要讲述单片机控制软件的设计,包括人机接口的定义、主程序框图。 设计要求 设计要求如下: 具有产生正弦波、方波、三角波、锯齿波四种周期性波形; 输出信号频率范围 0Hz~5MHz,重复频率可调,频率步进间隔小于等于 1Hz; 输出信号幅值范围 05V(峰 .峰值),信号幅值和直流偏移量可数控调节; 具有稳幅输出功能,当负载变化时, 输出电压幅度变化不大于177。 3%(负载电阻变化范围: 50Ω ~正无穷); 具有显示输出波形类型、重复频率等功能。 系统方案论证与比较 产生 DDS 信号波形方案的选择 目前主流的 DDS 信号发生器方案有两种: 方案一、采用专用 DDS 集成芯片实现的信号发生器; 方案二、采用单片机 +FPGA 实现的 DDS 信号发生器。 比较这两种方案,专用 DDS 芯片内部的波形数据存放在 ROM 型存储器中,波形数据无法修改故而只能产生固定波形的信号,但系统比较容易实现。 而采用单片机 +FPGA 实现的 DDS 信号发生器则是将波形数据存 储器改为 FPGA 上的 RAM 行存储器,波形信号能实时改变,在利用单片机系统进行控制和处理后,能实现DDS 任意波形发生器,功能更加完善,更新更加方便。 故本设计选用方案二。 单片机处理器比较选择 方案一:采用 AT89C51 单片机处理电路,其拥有并行 I/O 口 32 个,对于实际应用来说远远不够,且不具备自带 AD、 DA,使得电路结构复杂。 方案二: STC12C5A60S2 单片机内部资源非常丰富,是目前功能最全、速度最快的 51 内核 SoC 单片机之一,包括告诉 8051 微处理器内核,扩充终端处理系统, 1280 字节内部 RAM,和 60KB 的闪速存储器,多达 39 个 I/O 引脚,两个内部振荡器和片内调试电路,能很好的完成本系统所需的单线程,键盘功能分支程序控制。 在本设计中选用方案二。 系统理论分析及设计 总体设计 本设计采用单片机 +FPGA 实现的 DDS 信号发生器,整个 DDS 信号发生器由单片机子系统、 FPGA 子系统、模拟子系统三部分组成,系统原理框图如下图 所示: 图 DDS 信号发生器系统框图 主要技术参数的分析与确定 DDS信号发生器的技术指标取决于 DDS系统的时钟频率、相位累加器的位数、波形数据表的 长度等参数,下面对这些参数进行讨论,以选择适合的模拟电路元件以实现高质量的 DDS 信号。 输出带宽 当频率控制字 M 1 时,输出信号的最低频率为 ( ) 式中,为参考时钟频率, N 为相位累加器的位数。 当 N 取很大值时,最低输出频率可以认为达到 DDS 最低频率的零频。 DDS 的最高输出频率由参考时钟周期和一个周期波形采样点数决定,若采样点数为 X,则最高输出频率为 ( ) 频率分辨率 频率分辨率由下式决定: ( ) 在此式中,当 N 取值足够大时, DDS 信号可以达到很高的信号分辨率。 DDS 信号的质量 由于 DDS 信号发生器采用全数字设计,不可避免在采样时会带来 D/A 产生的幅度量化噪声和相位累加运算截断产生的相位噪声。 改善 DDS 信号质量的主要方法有:增加波形存储器和 D/A 的字宽;增加每个周期数据的 样本数,提高外部参考时钟频率和通过低通滤波器来改善输出信号质量。 综合上述讨论和对器件成本以及硬件系统复杂度的考虑, DDS 子系统的参数确定如下: 参考时钟频率: 100MHz; 频率控制字的位宽: 32 位; 相位累加器的位宽: 32 位; 波形存储器的地址位宽: 10 位; 波形存储器的数据位宽: 8 位。 单片机软件和硬件设计 DDS 信号发生器采用 FPGA 等硬件来完成高速波形的产生任务,其工作不需要单片机过多的干预。 单片机子系统只需完成键盘输入、液晶显示、向 FPGA 传送数据、输出信号的幅值和直流偏移量的数字控制 等功能。 从软件的总体结构来看,单片机控制软件是一种单线程、键盘功能的分支程序。 硬件电路图设计 硬件电路图采用 Altium Design 10 设计的原理图和 PCB 图,主控芯片是STC12C5A60S2,采用贴片封装,液晶显示: 图 STC12C5A60S2 单片机最小系统 此次采用的单片机是 STC12C5A60S2 单片机,属于增强型 51 单片机,具有ROM 空间大,资源充足,最重要的是提高了运算速度。 其最小系统原理图如图。 图 液晶显示模块 液晶采用普通 LCD1602 液晶,显示效果清晰, 简洁明了,原理图如图。 图 电源电路 供电电源采用 5V 电压,使用 AS 降压为 电压提供给 FPGA 芯片,再使用 减压为 提供给 FPGA 核心模块,电源前后级均有滤波电容,并有电源指示灯。 其原理图如。 单片机编程 根据 DDS 信号发生器的功能设计了如图 所示的 LCD 显示页面。 液晶第一行为频率大小显示,液晶第二行 2 为波形类型,在给定频率输入页面中, 8 个小方框所显示的位置用于显示输入给定的频率值。 给定的频率范围为00000001~40000000Hz。 为了操作方便,允许输入给 定频率的位数在 1~8 位之间。 对于 DDS 信号发生器来说,键盘主要用于选择信号波形、输入频率值、控制输出信号的幅值和直流偏移量。 由于按键数量比较少,键盘采用独立式键盘。 LCD显示和键盘各按键的定义如图 所示。 图 LCD 显示定义及按键功能定义 DDS 信号发生器的控制程序可分为显示函数和键盘服务函数两部分。 在确定主程序和键盘中断服务程序的功能时有两种方案:一种方案是主程序只完成初始化,将键盘读入和处理全部由键盘中断服务程序中完成;另一种方案是主程序完成初始化和键值处理功能,而键盘中断服务程序只完成 键值读入。 由于键值处理程序设计数值运算、 LCD 模块的显示,将这些耗时的键值处理程序放入中断服务程序不符合程序设计的一般原则,因此,选用第二种方案。 主程序首先完成对液晶、中断的初始化, STC12C5A60S2 内部资源初始化,LCD 模块初始化。 初始化完成以后就不断检测有无按键键入,当有按键键入时,根据键值显示相应的波形和相关位的闪烁。 单片机将 4 个字节频率字发送到 FPGA 中;各种波形共用一个频率字,单片机送四个字节到 FPGA, FPGA 把四个字节组合为 32 位的频率字,送给 DSP Builder生成的模块,该模块 需要频率字和幅度字。 由于输入给定频率的位数允许在 1~8 位变化,程序设计通过按修改位键来给定频率的输入。 然后发送到 FPGA 的频率控制字接收模块。 由于键盘输入的给定频率值为非压缩型 BCD 码,应先将其转化为二进制数,再根据公式( )将给定频率值转化成为 4 字节的频率控制字。 当相位累加器字宽 N 取 32,参考时钟频率 fclk 取 100MHz 时,频率控制字可以由以下公式计算得到: ( ) 式子 中 fout 为由二进制数表示的给定频率,乘上系数 ,就可以得到 4 字节的频率控制字。 频率控制字由单片机产生,单片机根据频率值计算出频率字,直接发送给 FPGA。 写频率字函数见附录 A。 FPGA 软件和硬件设计 FPGA 硬件设计 FPGA 硬件电路包括复位电路,时钟电路,电源电路,下载电路,配置电路,其中电源电路和单片机公用一个电源。 图 复位电路和时钟电路 电路晶振采用 50Mhz 有源晶振,复位电路分为硬件复位和软件复位,本电路采用硬件复位。 电路如图。 图 AS_JTAG AS 配置是指电路程序烧入 EPCS 中,当电路通电时,程序从 EPCS 中读入到FPGA 中实现配置 FPGA 的目的,在测试的时候电路是通过 JTAG 下载到 FPGA 中,配置片内 RAM 实现编程。 原理图如。 图 EPCS 配置芯片 该配置芯片相当于储存器,当 FPGA断电后起到存储电路配置的功能,当 FPGA上电后, FPGA 从 EPCS 中把配置读入 FPGA 中, EPCS 有多种大小,有 EPCS EPCSEPCS16 等本次采用的是 EPCS4。 其原理图如图。 图 JTAG 下载端口 JTAG 下载端口是把电路 下载到内部 RAM 中,断电后配置就消失了,每当 FPGA上电时,都会从 EPCS 中读取数据。 内部 RAM 只是暂时的连线。 其原理图如。 图 FPGA 核心供电 根据 FPGA 的芯片使用手册, FPGA 采用两种供电电压,核心采用 供电,外围端口采用 供电,图 显示了 FPGA 的所有电源接口。 FPGA 软件设计 波形数据存储器 图 MATLAB 中 ROM 其中 ROM 中存放着波形数据,为离。基于fpga的dds信号发生器设计毕业论文
相关推荐
大 小设 定+显 示输 出( 累 计 )清 零大 于 2 2 点 , 小 于 5 点预 设++—长 按 逐 渐 加 快密 码过 2 公 里起 步起 步过 2 公 里过 1 2 公 里过 1 2 公 里计 时主 计 费模 块总 额显 示1 0 0 O h m1 0 0 O h m2 k O h m1 0 0 O h m2 2 0 u f启 动 计 费空 车用 于 清 零统 计+显 示V C C按
SPWM 的理论依据实际是时间平均等效原理。 图 1 SPWM产生原理图 可以证明 , 当脉冲数足够多时 , 可以认为逆变器输出电压的基波幅值和调制波幅值是相等的 , 即 SPWM逆变器输出的脉冲波的基波幅值就是调制时要求的等效 正弦波。 2 SPWM波形控制器设计 系统由直接频率生成器产生低频正弦信号 , 然后与三角波进行高速比较而产生 SPWM。 2. 1 系统构图 SPWM 波形发生器
尽管下面的描述仅限于 CRT, LCD已经发展到可以同 CRT使用同样的时序信号了。 因此,下面的讨论均适合 CRT和 LCD。 在 CRT显示器中,电流的波形通过蹄形磁铁产生磁场,使得电子束偏转,光栅在显示屏上横向显示,水平方向从左至右,垂直方向从上至下。 当电子束向正方向移动时,信息才显示,即从左至右、从上至下。 如果电子束从后返回左或顶边,显示屏并不显示任何信息。 在消隐周期 ——
都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的 FPGA 内部都集成了串并收发器 (SERDES),可以达到数十 Gbps 的收发速度。 赛灵思公司的高端产品不仅集成了 Power PC 系列 CPU,还 内嵌了 DSP Core 模块,其相应的系统级设计工具是 EDK 和 Platform Studio,并依此提出了片上系统 (System on Chip) 的概念。 通过
系统设计总体框图 系统设计总体框图如图 41 所示,在系统上电后, FPGA 将首先对系统进行初始化操作,在初始化操作中最重要的是寄存器的复位,显示开关的控制,功能设置以及对显示屏幕进行清屏。 之后通过显示控制模块对 LCD 进行显示的控制。 显示控制模块主要负责在 LCD 显示多行字符时进行换行操作,在用户指定数据在屏幕的指定显示位置时设置该位置所对应的 RAM 的值,以及在图像显示时进行的
第 3 章 系统分析 计时流程 当计时开始时,每出现一次 CLK,则秒个位计数加 1,当秒个位计数到 9 时则向秒十位进 1,当秒十位到达 5 且秒个位到达 9 时则 分个位计数加 1,当分个位计数到 9 时则向分十位进 1,当分十位到达 5 切分个位到达 9 时则时个位计数加 1,当时个位计数到达 9 时则向时十位进 1,当时十位到达 2 切时个位到达 3 时则日期计时中的日个位计数加 1.