毕业设计(论文)基于FPGA的波形产生方法研究.doc
-
资源ID:3979146
资源大小:2.90MB
全文页数:16页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
毕业设计(论文)基于FPGA的波形产生方法研究.doc
设计说明书基于FPGA的波形产生方法研究目 录1引言21.1项目概述21.2设计目的21.3设计任务21.4研究思路和方法22方案论证32.1可变时钟计数器寻址方式32.2直接数字频率合成方式32.3 DDS原理33基于FPGA的DDS模块的实现53.1现场可编程门阵列(FPGA)简介53.2波形发生器的FPGA实现53.2.1相位累加器模块53.2.2ROM查找表模块63.3硬件平台简介83.3.1 DAC083283.3.2系统引脚配置94调试运行104.1系统仿真104.2系统性能测试104.2.1 正弦波104.2.2 方波114.2.3 三角波114.2.4 锯齿波124.3 系统性能分析125结论136参考文献147附件157.1附件一:FPGA电路文件157.2 附件二:波形数据MATLAB文件161引言1.1项目概述函数信号发生器是现代测试领域常用的一种信号源,广泛应用于通信、雷达、测控、电子对抗等领域。几乎所有电参量的测量都要用到波形发生器。随着现代电子技术的飞速发展,现代电子测量工作对波形发生器提出了更高的要求,不仅要求能产生正弦波、方波等标准波形,还能根据需要产生任意波形,并且操作方便等。可编程门阵列(FPGA)具有高集成度、高速度、可实现大容量存储器功能的特性。函数发生器作为现代测试领域常用的仪器之一,若基于可编程门阵列(FPGA),即可极大地提高函数发生器的性能,降低函数信号发生器的生产成本。此次试验,我组做的是用数字频率直接合成(DDS)的方式,基于FPGA的波形产生方法的研究。通过对DDS基本原理和工作特点,基本结构等的学习研究,我们对任意波形发生器进行了细致的理论分析。其次通过对FPGA的了解,使用之前学习的数字频率直接合成的(DDS)方式,实现基于FPGA的任意波形发生器的研究。实验中,通过产生正弦波、方波、三角波、锯齿波等常规波形,波形频率为150HZ44K,印证设计符合标准,进一步产生任意波形。1.2设计目的通过此次试验熟悉波形发生器的设计方法,选择合适的方法进行深入研究,实现提高函数发生器的性能,降低函数发生器的生产成本。学习智能仪器的一般设计方法、熟悉FPGA的使用1.3设计任务通过研究波形产生的不同方法,选择适当的方式研制基于FPGA的任意波形发生器。要求可以产生正弦波、方波、三角波与锯齿波等常规波形,而且能够产生任意波形,从而满足研究的需要。1.4研究思路和方法利用FPGA产生波形数据,并控制DA输出模拟电压再通过低通滤波器即可获得所要产生的波形。FPGA的程序设计采用Quartus II 进行设计,并进行各个模块的软件仿真。硬件部分采用凌阳FPGA实验箱,最后我们用40M的模拟示波器对所得波形进行测试。项目总体方案设计2方案论证2.1可变时钟计数器寻址方式采用可变时钟计数器寻址波形存储表,该方法是一种传统型任意波形发生器。通过改变频率发生器的频率设定值,实现调整计数器产生的地址变化速率,从而改变输出的任意波形的频率。计数器产生的地址码提供读出存储器中波形数据所需的地址信号,波形数据依次读出后送至高速D/A转换器,将之转变为模拟量,经低通滤波器后输出所需的波形。这种传统方式的任意波形发生器采用可变时钟和计数器寻址波形存储表,可以产生连续的地址,输出波形质量高。但是取样时频率较高,对硬件的要求也较高。而且常需多级分频或采用高性能的锁相环,采用分频式的任意波形发生器频率分辨率低,锁相式的任意波形发生器频率切换速度慢。2.2直接数字频率合成方式直接数字频率合成方式(Direet Digital Synthesizer)简称DDS。是在一组存储器单元中按照信号波形数据点的输出次序存储了所需的波形数据。在控制电路的协调下,以一定的速率周而复始的将波形数据依次发送给D/A转换器转换成相应的模拟信号。该方法用频率控制寄存器和相位累加器取代了分频器和锁相环电路,信号输出稳定度高,提高了频率输出分辨率和转换时间。本项目最开始采用了可变时钟计数器寻址方式制作,通过改变锁相环和时钟分频数来改变输出波形的频率,这种方法频率输出分辨率低、转换速度慢、稳定性不高。后改用DDS方式产生,可直接通过试验箱的按键改变频率控制寄存器的值来改变输出波形的频率,提高了频率分辨率、减少转换时间。2.3 DDS原理DDS(Direct Digital Synthesizer)即直接数字合成器,是一种新型的频率合成技术,具有较高的频率分辨率,可以实现快速的频率切换,并且在改变时能够保持相位的连续,很容易实现频率、相位和幅度的数字控制。因此,在现代电子系统及设备的频率源设计中,尤其是在通信领域,直接数字频率合成器的应用尤为广泛。DDS其基本结构主要由相位累加器、寄存器、波形ROM、D/A转换器四个部分组成,图1 DDS结构原理图系统在系统时钟的作用下工作通过改变频率控制字的值,使相位累加器改变读取波形ROM中数据的速度从而改变波形输出频率。DDS通过相位累加器来控制频率完成波形输出。对于正弦信号发生器其输出可以用下面的表达式进行描述:式中,是指该信号发生器的输出信号波形,是指输出信号对应的频率。用基准时间信号clk进行抽样,令正弦信号的相位为:在一个clk周期,相位的变化量为:式中,指clk的频率对于可以理解成“满”相位,为了对进行数字量化,把切割成份,由此每个clk周期的相位增量用量化值来表述:且为整数。即可解得:即:显然,信号发生器的输出描述为:式中,指前一个clk周期的相位值。同样可以得出:由上面的推导可以看出,只要对相位的量化值进行简单的累加加运算,即可以得到正弦信号的当前相位值,而用于累加的相位增量量化值决定了信号的输出频率,并呈现简单的线性关系。我们可以利用上述原理设计数字控制频率合成器。3基于FPGA的DDS模块的实现3.1现场可编程门阵列(FPGA)简介现场可编程逻辑门阵列(英语:Field Programmable Gate Array, FPGA),是一个含有可编辑元件的半导体设备,可供使用者现场程序化的逻辑门阵列元件,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。主要特点:1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC电路的中试样片。3)FPGA内部有丰富的触发器和I/O引脚。4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5) FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA芯片结构:FPGA芯片主要由7部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。3.2波形发生器的FPGA实现3.2.1相位累加器模块图2 相位累加器结构图如图相位累加器由加法器和寄存器构成,在FPGA中我们采用32位的加法器由LPM_ADD_SUB宏模块构成图332位累加器32位寄存器由LPM_FF宏模块担任。图4 32位寄存器32位寄存器和32位累加器共同构成了32相位累加器连接如图图5 32位相位累加器其中高6位A31.26作为波形ROM的地址输入。3.2.2ROM查找表模块图6 波形查找表结构图ROM查找表由LPM_ROM宏模块担任,设置为8位64个字图7 波形ROM在rom.mif文件中录入波形数据,我们可以通过MATLAB生成任意我们想要得到的波行数据;图8 正弦波rom.mif文件数据q7.0接D/A的数据口即可将ROM表中的数据转化为模拟量输出。图9 系统整体原理图时钟信号接电路上的50M晶振然后经过分频为电路提供时钟信号。3.3硬件平台简介3.3.1 DAC0832本实验硬件平台使用凌阳FPGA试验箱,FPGA为Altera公司的EP2C35F672C6,芯片主频50M。图10 凌阳FPGA实验箱实验采用的DAC芯片为DAC0832,分辨率8位,转换时间为1us。通过DA将数据量装换为模拟量再经过低通滤波器得到所需波形。图11 DAC0832引脚图表1 DAC0832引脚功能图3.3.2系统引脚配置图12 系统引脚配置用Quartus II 设计好FPGA程序以后需要将所用管脚与硬件电路锁定,可以通过程序控制实验箱相应部分电路,其中P0.7接DAC0832数据口,CS、ILE接DAC0832的使能端CS和ILE。CLK接板子50晶振脚为系统提供时钟信号。B16.23接按键可通过改变按键改变输出频率。图13 按键原理电路4调试运行4.1系统仿真采用Quartus II自带的仿真工具进行仿真,首先建立波形仿真文件,时钟信号CLK输入为1us占空比为50%,频率控制字为33554431仿真结果如下图,显然各个功能模块工作正常,按时序输出,同时P0.7按照预想输出了所需波形数据仿真图如下:图14 系统仿真结果4.2系统性能测试通过实验测试,得出能够稳定输出频率范围:150HZ44K以下是在不同频率下的常见波形:4.2.1 正弦波(1)频率为20K的波形输出波形稳定,当频率大于44K或小于150HZ时输出波形跳动无法得到稳定波形,有时会出现某个点的跳变。当频率较高时会出现毛刺。到频率到达200多K以后波形变形变成三角波。图15 频率为150HZ的正弦波形图16 频率为44K的正弦波形图17 频率为250K时的正弦波形4.2.2 方波对于方波当频率较高时会出现上升时间的延迟导致波形变形(图18 频率为20K的方波图19 频率为2K的方波4.2.3 三角波对于三角波同样由于频率的增加导致波形出现毛刺和在某些节点出现跳变。图20 频率为2K的波形三角波形 图21 频率为20K的三角波形4.2.4 锯齿波对于三角波同样由于频率的增加导致波形出现毛刺和在某些节点出现跳变。图20 频率为2K的波形锯齿波形 图21 频率为20K的锯齿波形4.3 系统性能分析通过实验我们发现我们通过测试得到的频率并不能达到我们FPGA的输如时钟频率、我们得到的波形频率并不是特别的精准,不会特别低和高。主要原因如下:(1) 采样频率和时钟频率并不相同根据奈奎施特采样定理只有当采样频率带到原波形频率的2倍以上波形才能够比较真实的还原,所以会有时钟频率和波形频率的差异,使输出的波形频率不为时钟频率。(2) 硬件电路限制波形我们采用的试验箱DAC0832芯片分辨率为8位,建立时间为1us。从理论上来说可以到达的最高输出频率为1M。由于奈奎施特采样定理可知我们能够到达的频率要小得多。同时8位的DAC分辨率较低得到的波形在频率过高和过低会长生毛刺、变形等情况。(3) 程序设计缺陷我们的ROM表精度为8位深度为64。这个表的精度较低我们考虑到DAC为8位所以我们的表精度为8位。同时为了综合考虑输出波形的速度,我们ROM表的深度只有64.这样精度不是特别高也是导致波形变形的原因。5结论通过QuartusII设计FPGA程序,研究基于FPGA的波形产生方法。我们通过DDS方法成功设计出了任意波形的产生,并进行了系统仿真与测试能够产生正弦波、锯齿波、三角波、方波,经测试在150HZ44K之间波形稳定。通过改变波形ROM的数据即可产生15044K频率范围类的任意波形。同时我们可以根据试验箱的按键对输出波形频率进行在线调节。通过本次试验我们熟悉掌握了FPGA的使用,能够通过DDS方法产生任意波形,为我们的设计提供支持。参考文献1. 周润景, 苏良碧基于Quartus的数字系统Verilog HDL设计实例详解2. 潘松,黄继业,陈龙EDA技术与Verilog HDL编著3. 毕业设计(论文)-基于FPGA的函数信号发生器的设计与实现4. 基于FPGA的任意波形发生器的研究与设计5. 使用QUARTUS II做FPGA开发全流程%2C傻瓜式详细教程7附件7.1附件一:FPGA电路文件7.2 附件二:波形数据MATLAB文件%function wave_rom%产生函数信号发生器的数据clear allclcclose allN = 64;a(1:1:N)=0;%存储8位的波形数据(0-255)%正弦波%for b=1:64 % a(b)=round(127*cos(2*pi*(b-1)/63)+127%end%figure(1)%stem(1:64,a(1:64);%锯齿波for b=1:64 a(b)=4*(b-1)endfigure(2)stem(1:64,a(1:64);%方波%for b=1:32% a(b)=255% a(b+32)=0%end%figure(3)%stem(1:64,a(1:64)%三角波%for b=1:32% a(b)=(b-1)*8% a(b+32)=8*(32-b)%end%figure(4)%stem(1:64,a(1:64)