基于fpga的数字频率计的设计-课程论文大学论文.doc

上传人:教**** 文档编号:93039366 上传时间:2023-06-22 格式:DOC 页数:25 大小:1.72MB
返回 下载 相关 举报
基于fpga的数字频率计的设计-课程论文大学论文.doc_第1页
第1页 / 共25页
基于fpga的数字频率计的设计-课程论文大学论文.doc_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《基于fpga的数字频率计的设计-课程论文大学论文.doc》由会员分享,可在线阅读,更多相关《基于fpga的数字频率计的设计-课程论文大学论文.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、South China Normal University课程设计实验报告课程名称: EDA技术 指导老师: 专业班级: 2014级 电路与系统姓 名: 学 号: 基于FPGA的谐波合成设计摘要:本文介绍了EP2C5T144C8N微处理器实现多次谐波产生和合成周期性方波的设计,产生的基波频率、各次谐波幅度、相位均可单独数字设置并控制,并最终通过PWM和LPF得到失真较小的谐波合成信号。本文最后对设计进行了测试与运行,从而验证该设计方案的可行性。关键词:谐波;基波;PWMAbstract:EP2C5T144C8N microprocessor implementation are introdu

2、ced in this design and synthesis of cyclic square wave, multiple harmonics produced by fundamental wave frequency, every harmonic amplitude and phase separately digital set and control, and finally obtained by PWM and LPF harmonic synthesis of less distortion of the signal. Finally, the paper has ca

3、rried on the test to design and operation, to verify the feasibility of the design.Key words: Harmonic; Fundamental wave; PWM目 录1 引言41.1 FPGA简介41.2 Quartus简介51.3谐波合成原理62 系统总体分析72.1 系统总体分析72.2系统软件组成92.3系统硬件组成92.4系统运行环境102.5 系统总体框架103软件模块设计113.1 CPU模块设计113.2 Quartus 模块设计153.3 Nios II 模块设计163.3.1 谐波合成1

4、73.3.2 按键中断183.3.4 PWM输出214 系统测试及分析224.1 n次谐波测试224. 2 按键测试234.3幅度按键测试234.4 相位按键测试244.5 频率按键测试245 总结25参考文献261 引言1.1 FPGA简介FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,

5、可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。 FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力

6、,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。FPGA工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。编辑本段FPGA的基本特点1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 3)FPGA内部有丰富的触发器和IO引脚。

7、4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 1.2 Quartus简介Quartus是Altera公司提供的FPGA/CPLD开发集成环境,Altera是世界上最大可编程逻辑器件的供应商之一。Quartus界面友好,使用便捷,被誉为业界最易用易学的EDA软件。在Quartus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处

8、理和器件编程。 Quartus提供了方便的设计输入方式、快速的编译和直接易懂的器件编程。能够支持逻辑门数在百万门以上的逻辑器件的开发,并且为第三方工具提供了无缝接口。 Quartus软件包的编程器是系统的核心,提供功能强大的设计处理,设计者可以添加特定的约束条件来提高芯片的利用率。在设计流程的每一步,Quartus软件能够引导设计者将注意力放在设计上,而不是软件的使用上。同时,自动的错误定位、完备的错误和警告信息,使设计修改变得简单容易。1.3谐波合成原理基波(分量):对周期性交流分量进行傅里叶级数分解,得到的与工频相同的分量称为基波。谐波(分量):对周期性交流分量进行傅里叶级数分解,得到的为

9、基波频率大于1的整数倍的分量称为高次谐波,简称谐波。谐波次数:谐波频率与基波频率的整数比。任何电信号都是由各种不同频率、幅度和初相的正弦波迭加而成的。1822年法国数学家傅里叶在研究热传导理论时提出并证明了将周期函数展开为正弦级数的原理。奠定了傅里叶级数的理论基础、揭示了周期信号的本质,即任何周期信号(正弦信号除外)都可以看作是由无数不同频率、不同幅度的正弦波信号叠加而成的,就像物质都是由分子或者原子构成一样。周期信号的基本单元信号是正弦谐波信号。谐波合成的过程是一个逆傅里叶级数的过程,即将由傅里叶级数展开的周期信号的各次谐波重新叠加起来合成原信号的过程。由傅里叶级数的定义可知,傅里叶级数得出

10、的是一个无穷级数,谐波需要无穷次叠加才能得出原信号。这在现实中是不可实现的,一般的当谐波数量达到5次以上时,就能大致得出原有信号。如图1.1所示:图1.1 方波合成图图1.1为方波的七次谐波合成图,由频域图可以看出方波只有奇次谐波。方波由多个正选函数和余弦函数叠加而成,当叠加次数达到3次时,基本上能看出方波的模样。2 系统总体分析2.1 系统总体分析本设计的总体分析比较主要包括了软件实现方式、波形输出方式、人机交互方式等,从而选择出具有可行性的符合实际需求的总体方案。1) 软件实现方式本设计采用FPGA作为硬件平台,但是由于本设计所涉及的谐波合成需要使用正弦函数和余弦函数,Verilog或VH

11、DL中并没有三角函数库的支持,需要通过其他软件将所需要的三角函数数据存入存储器中调用,并且Verilog或VHDL并不支持浮点型操作。为了解决以上问题,本设计采用了SOPC技术。SOPC即可编程片上系统,通过可编程逻辑技术把一个完整的系统安装在一块硅片上。SOPC是一种特殊的嵌入式系统:首先它是片上系统(SOC),可通过单个芯片来完成整个系统所需要的主要逻辑功能;其次,它是可编程系统,可进行裁减、扩充、升级等灵活的设计方式,并且具有软硬件均在系统上可编程的功能。本设计是一个基于NiosII的SOPC系统。NiosII的硬件通过QuartusII定制合适的CPU和外设来完成。完成NiosII的硬

12、件开发后,QuartusII将自动生成用户定义的NiosII CPU和外设系统、存储器、外设地址映射等相应的软件开发包SDK,在生成的SDK基础上,进入软件开发流程。用户可使用汇编或C来进行相应的嵌入式程序设计。而C函数库中包含了三角函数,并且支持浮点型操作,能大大缩短开发周期和整形操作所带来的误差。因此本设计主要基于FPGA+SOPC+C语言的方式实现软件设计。2) 波形输出方式通过FPGA的IO端口输出的是一个数字信号,而一般示波器所检测的是模拟信号,要令示波器显示出谐波叠加后的波形必须通过数/模转换(D/A转换)将数字信号转换模拟信号。数模转换可通过两种方式实现,一种是通过专门的D/A芯

13、片实现,另一种则是通过PWM和LPF实现的。PWM即脉冲宽度调制,是一种对模拟信号电平进行数字编码的方法。通过计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。如图2.1所示:图2.1 脉冲宽度调制图b图中将正弦波量化成7个点,并用等宽不同占空比的脉冲表示对应的值,通过这一方式将一个模拟量转换为数字量输出。当PWM输出通过一个低通滤波器(LPF)后这个数字信号就能还原为一个模拟信号,供示波器使用。3) 人机交互方式设计中的人机交互方式有两种,一种是使用FPGA平台上自带的七段数码管,另一种则是外接一个LCD显示屏。由于设计本身仅需要显示幅度、频率、相位等数值,无需使用中文字

14、符,并且平台上已自带有四个共阳极的其段数码管,使用方便,故使用七段数码管和平台上的按键组合实现人机交互。2.2系统软件组成系统软件三部分组成:CPU模块设计、Quartus模块设计和Nios II模块设计。CPU模块使用Qsys设计。Qsys是Altera的系统集成工具,能够方便的根据用户要求搭建出自定义CPU。Quartus模块设计是将通过Qsys生成的CPU作为一个元件调用,并在CPU周围加上适当的外设和进行引脚分配。Nios II模块设计主要负责烧写到CPU上运行的程序设计。在本设计是指使用C语言实现谐波合成、PWM输出以及人机交互。系统软件首先设计好CPU,然后Quartus模块调用C

15、PU并加上适当的外设和进行引脚分配后写入FPGA平台中,再进行Nios II模块的设计。设计完毕后检测FPGA上是否已装有CPU,当已装有CPU时将程序下载到CPU中并运行。2.3系统硬件组成系统硬件由按键、七段数码管和低通滤波器组成,其中按键与七段数码管FPGA平台自带无须搭建,低通滤波器采用电阻和电容简单的搭建然后将输入端与FPGA平台的端口相连。2.4系统运行环境系统的软硬件环境关系到系统自身的稳定性和生命周期。本系统采用Cyclone II 的EP2C5T144C8作为硬件平台的核心模块。CycloneII器件包含了许多新的特性,如嵌入存储器、嵌入乘法器、PLL和低成本的封装等。系统软

16、件采用Quartus开发环境,结合Qsys和Nios II进行开发。最终设计出一个基于SOPC的谐波合成系统。2.5 系统总体框架图2.2 系统总体框图系统总体由软件设计和硬件操作两部分组成。软件设计主要实现了CPU的设计、使用和程序下载。当三个模块设计并下载到FPGA平台后,可通过人机交互对系统进行操作。硬件操作分为两个部分。一个是功能选择部分,该部分通过按键中断实现,当按下相应的按键后将中断信号传入FPGA中执行相应的操作。第二个部分是显示部分,显示又有两部分,一是七段数码管显示当前周期信号的幅度、频率、相位、档位等信息,一是通过LPF输出到示波器中,通过示波器观察谐波合成后的周期信号。3

17、软件模块设计3.1 CPU模块设计CPU通过Qsys设计。CPU架构列表如图3.1所示:图3.1 CPU架构列表图1) CPUCPU为整个CPU设计的内核。Qsys中提供了三种类型的CPU,CPU型号及其描述如图3.2所示:图3.2 CPU型号及其描述图本设计采用标准型CPU,标准型具有占用资源较少,功能齐全等优点,基本能满足本次设计的要求。2)clk_50clk_50提供了50MHz的系统时钟,供系统正常运行使用。50MHz为本设计所使用的FPGA最大晶振频率。3)jtag_uartjtag_uart为CPU提供了jtag调试接口,可通过jtag对CPU进行调试,实现中断、单步执行等功能。4

18、)存储器存储器包括了epcs_flash_controller、sdram和altpll_0三个部分。epcs_flash_controller在FPGA中一般用来存储应用程序。但由于本设计程序大小超过了flash的容量。故加上了sdram, SDRAM在FPGA开发板中一般作为NIOS 处理器的RAM和程序运行空间。altpll_0用于将系统时钟进行分频,提供时钟给sdram,sdram所使用的时钟需要与系统时钟有时间延时。altpll_0配置如图3.3所示,c0为系统50MHz时钟,c2为提供给sdram的100MHz时钟。图3.3 altpll_0配置图5)IOIO配置包括了IO输出pw

19、m、led、数码管和IO输入key。数码管包括了数码管的使能输出和数据输出。IO输出配置如图3.4所示,Width为输出/输入位数,Direction为IO方向。IO输入配置如图3.5所示。图3.4 IO输出配置图图3.5 IO输入配置图由于key按键用于CPU中断,除了配置IO输出的两项外,还要配置中断选项。Edge capture register注册了中断为低电平有效,interrupt配置了中断为边沿中断。6)timertimer用于配置定时器,由于数码管是共阳极的,数据线共用,因此需要通过控制不同数码管的使能端控制数码管显示数值。人眼识别连贯图像的速度大约是40ms,因此使能端的切换

20、速度要低于40ms。经测试本设计定时1ms效果较佳。Timer配置如图3.6所示:图3.6 定时器配置图3.2 Quartus 模块设计该模块主要是调用CPU,在CPU周围加上需要的外设,分配硬件引脚以及连接时钟。本模块配置如图3.7所示:图3.7 Quartus模块配置图3.3 Nios II 模块设计该模块是实现系统总体功能的软件程序编写部分。包括了谐波的合成、按键中断、数码管显示以及PWM输出。工作流程如图3.8所示。程序首先注册按键中断,并开始检测按键中断,当有按键中断时触发相应的中断响应函数。然后谐波合成,得出谐波合成后的方波数据。接着数码管初始化以及开启定时器,定时器开启后四个七段

21、数码管将不停的循环显示当前模式下的相应数值。最后进入循环,不断输出PWM波。图3.8 软件工作流程图3.3.1 谐波合成本设计实现的是通过多次谐波合成一个周期性方波信号。方波的各次谐波计算公式如式3.1所示,程序实现如图3.9所示。程序中通过for循环将各次谐波叠加起来后得出的数据存储在dot数组中,用于后续程序处理。 (3.1)图3.9 谐波合成程序3.3.2 按键中断按键中断程序的设计包括了按键中断的注册以及中断响应函数。中断注册用到的函数如图3.10所示:图3.10 按键注册程序中断注册函数中先允许按键中断,设置边缘捕获寄存器最后注册按键。当注册完按键后,一旦有中断来到时,程序将转入注册

22、时注册的中断函数ISR_key1中执行中断响应。程序更具不同的按键作出不同的按键中断响应,详细如下所述。1) 幅度、频率、相位响应PWM输出经LPF后的方波幅度只与PWM的波形特性有关,与谐波合成后的波形幅度无关。方波的幅度由PWM每个脉冲的占空比决定,当占空比为0时,得到方波幅值为0V(此处的幅度皆指峰-峰值),当占空比为1时,得到方波幅值为端口最大输出电压3.3V。要控制方波的幅度就是控制端口输出电压最大时的脉冲占空比。如要让输出幅度为1.1V,即电压变为原来的1/3,那么只需要在每个脉冲宽度不变的前提下将原来占空比为1缩短为占空比为1/3,其余的2/3均为低电平即可。方波的频率与幅度一样

23、只与PWM的波形特性有关,与谐波合成后的波形频率无关。方波的周期由PWM的周期决定,由于PWM中每个脉冲宽度是一样的,不同的只是占空比,因此方波的周期或频率实际是有PWM一个周期中脉冲宽度决定的,调节每个脉冲的宽度即可做到调频的效果。方波的相位由谐波合成后的相位决定,在本设计中各次谐波是通过时间t取点离散化后,再将相同时间值的点叠加存储于数组中最后得出一个经离散化后方波数据。因此,方波的相位调节实际就是方波或者是各次谐波第一个取点位置的选择。程序如图3.11所示。图3.11 相位调节程序图对比式(3.1)可知,相位调节部分为2*pi*f(t+p*(1/(f*360)。调节点的初始位置的方法是将

24、方波周期分为360份,相位p代表了占360分中的多少份p*(1/(f*360)后就得出相位偏移后的第一个点的位置,即方波初始位置。2)模式选择响应模式选择是用于在幅度、频率和相位之间进行切换,其流程如图3.13所示。模式选择仅有三个状态:1-幅度;2-相位;3-频率。当确实只有按键后,判断模式当前值是否最大值,若是最大值则模式转到幅度模式(1),否则当前值加一,切换到下一个模式。图3.13 模式选择流程图3)档位响应本设计还设置了换挡功能。当确实有按键时,程序首先更具模式标志判断按键执行对象,然后判断该对象当前的档位。判断完毕后进入下一个档位,当到达最后档位后,程序会回到初始档位,这里是直接更

25、改档位标志实现的。改变档位后,当幅度、相位、频率响应发生时,对应的模式当前值会+/-对应的当前档位值。3.3.3 定时器定时器用于七段数码管的动态显示。由于四个数码管的数据线是共用的,要另四个数码管显示出不同的数值,需要通过控制数码管的使能端,让数码管不断切换,特定位置的数码管显示特定的数值,其余三个数码管处于关闭状态。由于人眼一般无法识别40ms以下的连续图像的切换,因此设置数码管的切换时间小于40ms既能让四个数码管显示出不同的数值,而不会因为切换的原因而出现数码管闪烁的现象。数码管的工作流程如图3.15所示。先判断当前模式,然后其中一个数码管显示当前模式A/P/F,接着取出当前模式的值的

26、各位赋予其余三个数码管显示。同时判断当前模式的档位,通过小数点表示出属于那个档位。图3.15 数码管工作流程图3.3.4 PWM输出PWM输出程序如图3.16所示。图3.16 PWM程序图本设计的PWM输出时通过延时函数usleep()实现的,usleep()是一个微妙级的延时函数,程序中乘以106是将微秒转换为秒。首先定义输出PWM的IO输出电平,然后通过延时函数改变电平的持续时间来实现不同的占空比。4 系统测试及分析通过系统的实际运行,了解系统的实际性能、功能的实现程度。通过测试对系统存在问题进行修改和完善。最后验证软件的可用性。测试内容包括了n次谐波的合成图(0n13),然后测试各功能键

27、是否正常运作。所有的测试均通过示波器观测。4.1 n次谐波测试 图4.1 1次谐波合成图 图4.2 3次谐波合成图 图4.3 5次谐波合成图 图4.4 7次谐波合成图 图4.5 9次谐波合成图 图4.6 11次谐波合成图 从图中可以看出,当谐波次数上升时,合成的图形越趋于完整的周期性方波信号,当谐波次数达到9次时基本可以看作是周期性方波。4. 2 按键测试按键测试中换挡功能已在幅度、相位、频率按键中体现,不在单独测试。4.3幅度按键测试 图4.7 1V方波图 图4.8 2.5V方波图图4.9 3V方波图由上图可以看出幅度按键以及幅度换挡功能均运作正常,数码管显示正常。档位0.1V和1V由小数点

28、在第三个数码管中的有无来体现。4.4 相位按键测试 图4.10 初相为0的方波图 图4.11初相为90的方波图图4.12初相为270的方波图由上图可以看出相位按键以及相位换挡功能均运作正常,数码管显示正常。档位1、10和100由小数点在三个数码管中的有无来体现。由于本设计是得到所有点后在进行处理的,因此每次改变相位时需要重新绘图,中间会出现零值状态。4.5 频率按键测试由下图可以看出频率按键以及频率换挡功能均运作正常,数码管显示正常。档位1、10、100由小数点在三个数码管中的有无来体现。从图中可以看出当频率到达10Hz时,得出的方波频率已和数码管中显示的数值不符,差异较大,因此后面的100H

29、z仅作为换挡功能测试所使用。 图4.13 1Hz方波图 图4.14 2Hz方波图 图4.15 10Hz方波图 图4.16 100Hz方波图5 总结通过这次课程设计,我认识到EDA技术是一门实用性很强的技术, FPGA是当前数字系统设计领域比较火热的一种工具,它可以大大缩短设计需要的时间,降低成本的同时也提高了系统的稳定性。本设计使用了基于Altera公司的FPGA系列,采用Altera公司提供的系统开发工具Quartus II软件进行了系统的设计和仿真。本文主要在通过学习傅里叶级数后,利用基波、谐波合成方波。通过本次设计对谐波合成以及PWM输出有了更加深入的理解,本设计的关键技术是谐波合成,P

30、WM波形的实现和基于SOPC的FPGA程序开发。而基于FPGA+SOPC+C语言的方式实现软件设计的过程让我认识到FPGA的强大之处。最终本设计实现了通过多次谐波合成方波,并具有控制方波的幅度、频率、相位及换挡等功能。但由于设计者能力有限,本系统仍然有着很多可改进的地方,比如幅度、频率、相位的精度,频率可实现的最大范围,其它波形的实现等。参考文献1 FPGA技术开发.高级篇 /李洪涛,顾陈,朱晓华.北京:国防工业出版社,20132 江国强.EDA技术与应用:第四版M.北京:电子工业出版社,20133 张洪润,张亚凡.FPGA/CPLD应用设计200例M.北京:北京航空航天大学出版社,20094 杨军,张伟平,赵嘎,王小军.面向SOPC的FPGA设计与应用M.北京:科学出版社,20125 郗艳华.基于Matlab周期信号的分解与合成J.计算机与现代化,2011,9:156-1646 FPGA系统设计与实例/杨晓慧, 杨旭编著. 北京:人民邮电出版社,20107 李威,周振宇,张金波.基于DDS/FPGA的谐波信号发生器的研究与设计J.电工技术,2008,8:67-698 FPGA设计与应用/刘皖, 何道君, 谭明编著. 北京:清华大学出版社,200625

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁