基于FPGA的数字频率计课程论文Word文件下载.docx
《基于FPGA的数字频率计课程论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于FPGA的数字频率计课程论文Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
![基于FPGA的数字频率计课程论文Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/25/b0c4f84b-a485-4cc2-a1dc-f3cd7b12c5dc/b0c4f84b-a485-4cc2-a1dc-f3cd7b12c5dc1.gif)
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
导师签名:
日期:
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
3、学生综合运用所学知识和专业技能分析和解决问题的能力
4、研究方法的科学性;
技术线路的可行性;
设计方案的合理性
5、完成毕业论文(设计)期间的出勤情况
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
2、是否完成指定的论文(设计)任务(包括装订及附件)?
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
2、论文的观念是否有新意?
设计是否有创意?
3、论文(设计说明书)所体现的整体水平
建议成绩:
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
二、论文(设计)水平
评阅教师:
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
2、对答辩问题的反应、理解、表达情况
3、学生答辩过程中的精神状态
评定成绩:
教研室主任(或答辩小组组长):
(签名)
教学系意见:
系主任:
摘要:
本文介绍了EP2C5T144C8N微处理器实现多次谐波产生和合成周期性方波的设计,产生的基波频率、各次谐波幅度、相位均可单独数字设置并控制,并最终通过PWM和LPF得到失真较小的谐波合成信号。
本文最后对设计进行了测试与运行,从而验证该设计方案的可行性。
关键词:
谐波;
基波;
PWM
Abstract:
EP2C5T144C8Nmicroprocessorimplementationareintroducedinthisdesignandsynthesisofcyclicsquarewave,multipleharmonicsproducedbyfundamentalwavefrequency,everyharmonicamplitudeandphaseseparatelydigitalsetandcontrol,andfinallyobtainedbyPWMandLPFharmonicsynthesisoflessdistortionofthesignal.Finally,thepaperhascarriedonthetesttodesignandoperation,toverifythefeasibilityofthedesign.
Keywords:
Harmonic;
Fundamentalwave;
PWM
目录
1引言4
1.1FPGA简介4
1.2QuartusⅡ简介5
1.3谐波合成原理6
2系统总体分析7
2.1系统总体分析7
2.2系统软件组成9
2.3系统硬件组成9
2.4系统运行环境10
2.5系统总体框架10
3软件模块设计11
3.1CPU模块设计11
3.2Quartus模块设计15
3.3NiosII模块设计16
3.3.1谐波合成17
3.3.2按键中断18
3.3.4PWM输出21
4系统测试及分析22
4.1n次谐波测试22
4.2按键测试23
4.3幅度按键测试23
4.4相位按键测试24
4.5频率按键测试24
5总结25
参考文献26
1引言
1.1FPGA简介
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。
但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。
厂商也可能会提供便宜的但是编辑能力差的FPGA。
因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。
FPGA工作原理
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
编辑本段
FPGA的基本特点
1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA内部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
1.2QuartusⅡ简介
QuartusⅡ是Altera公司提供的FPGA/CPLD开发集成环境,Altera是世界上最大可编程逻辑器件的供应商之一。
QuartusⅡ界面友好,使用便捷,被誉为业界最易用易学的EDA软件。
在QuartusⅡ上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。
QuartusⅡ提供了方便的设计输入方式、快速的编译和直接易懂的器件编程。
能够支持逻辑门数在百万门以上的逻辑器件的开发,并且为第三方工具提供了无缝接口。
QuartusⅡ软件包的编程器是系统的核心,提供功能强大的设计处理,设计者可以添加特定的约束条件来提高芯片的利用率。
在设计流程的每一步,QuartusⅡ软件能够引导设计者将注意力放在设计上,而不是软件的使用上。
同时,自动的错误定位、完备的错误和警告信息,使设计修改变得简单容易。
1.3谐波合成原理
基波(分量):
对周期性交流分量进行傅里叶级数分解,得到的与工频相同的分量称为基波。
谐波(分量):
对周期性交流分量进行傅里叶级数分解,得到的为基波频率大于1的整数倍的分量称为高次谐波,简称谐波。
谐波次数:
谐波频率与基波频率的整数比。
任何电信号都是由各种不同频率、幅度和初相的正弦波迭加而成的。
1822年法国数学家傅里叶在研究热传导理论时提出并证明了将周期函数展开为正弦级数的原理。
奠定了傅里叶级数的理论基础、揭示了周期信号的本质,即任何周期信号(正弦信号除外)都可以看作是由无数不同频率、不同幅度的正弦波信号叠加而成的,就像物质都是由分子或者原子构成一样。
周期信号的基本单元信号是正弦谐波信号。
谐波合成的过程是一个逆傅里叶级数的过程,即将由傅里叶级数展开的周期信号的各次谐波重新叠加起来合成原信号的过程。
由傅里叶级数的定义可知,傅里叶级数得出的是一个无穷级数,谐波需要无穷次叠加才能得出原信号。
这在现实中是不可实现的,一般的当谐波数量达到5次以上时,就能大致得出原有信号。
如图1.1所示:
图1.1方波合成图
图1.1为方波的七次谐波合成图,由频域图可以看出方波只有奇次谐波。
方波由多个正选函数和余弦函数叠加而成,当叠加次数达到3次时,基本上能看出方波的模样。
2系统总体分析
2.1系统总体分析
本设计的总体分析比较主要包括了软件实现方式、波形输出方式、人机交互方式等,从而选择出具有可行性的符合实际需求的总体方案。
1)软件实现方式
本设计采用FPGA作为硬件平台,但是由于本设计所涉及的谐波合成需要使用正弦函数和余弦函数,Verilog或VHDL中并没有三角函数库的支持,需要通过其他软件将所需要的三角函数数据存入存储器中调用,并且Verilog或VHDL并不支持浮点型操作。
为了解决以上问题,本设计采用了SOPC技术。
SOPC即可编程片上系统,通过可编程逻辑技术把一个完整的系统安装在一块硅片上。
SOPC是一种特殊的嵌入式系统:
首先它是片上系统(SOC),可通过单个芯片来完成整个系统所需要的主要逻辑功能;
其次,它是可编程系统,可进行裁减、扩充、升级等灵活的设计方式,并且具有软硬件均在系统上可编程的功能。
本设计是一个基于NiosII的SOPC系统。
NiosII的硬件通过QuartusII定制合适的CPU和外设来完成。
完成NiosII的硬件开发后,QuartusII将自动生成用户定义的NiosIICPU和外设系统、存储器、外设地址映射等相应的软件开发包SDK,在生成的SDK基础上,进入软件开发流程。
用户可使用汇编或C来进行相应的嵌入式程序设计。
而C函数库中包含了三角函数,并且支持浮点型操作,能大大缩短开发周期和整形操作所带来的误差。
因此本设计主要基于FPGA+SOPC+C语言的方式实现软件设计。
2)波形输出方式
通过FPGA的IO端口输出的是一个数字信号,而一般示波器所检测的是模拟信号,要令示波器显示出谐波叠加后的波形必须通过数/模转换(D/A转换)将数字信号转换模拟信号。
数模转换可通过两种方式实现,一种是通过专门的D/A芯片实现,另一种则是通过PWM和LPF实现的。
PWM即脉冲宽度调制,是一种对模拟信号电平进行数字编码的方法。
通过计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
如图2.1所示:
图2.1脉冲宽度调制图
b图中将正弦波量化成7个点,并用等宽不同占空比的脉冲表示对应的值,通过这一方式将一个模拟量转换为数字量输出。
当PWM输出通过一个低通滤波器(LPF)后这个数字信号就能还原为一个模拟信号,供示波器使用。
3)人机交互方式
设计中的人机交互方式有两种,一种是使用FPGA平台上自带的七段数码管,另一种则是外接一个LCD显示屏。
由于设计本身仅需要显示幅度、频率、相位等数值,无需使用中文字符,并且平台上已自带有四个共阳极的其段数码管,使用方便,故使用七段数码管和平台上的按键组合实现人机交互。
2.2系统软件组成
系统软件三部分组成:
CPU模块设计、Quartus模块设计和NiosII模块设计。
CPU模块使用Qsys设计。
Qsys是Altera的系统集成工具,能够方便的根据用户要求搭建出自定义CPU。
Quartus模块设计是将通过Qsys生成的CPU作为一个元件调用,并在CPU周围加上适当的外设和进行引脚分配。
NiosII模块设计主要负责烧写到CPU上运行的程序设计。
在本设计是指使用C语言实现谐波合成、PWM输出以及人机交互。
系统软件首先设计好CPU,然后Quartus模块调用CPU并加上适当的外设和进行引脚分配后写入FPGA平台中,再进行NiosII模块的设计。
设计完毕后检测FPGA上是否已装有CPU,当已装有CPU时将程序下载到CPU中并运行。
2.3系统硬件组成
系统硬件由按键、七段数码管和低通滤波器组成,其中按键与七段数码管FPGA平台自带无须搭建,低通滤波器采用电阻和电容简单的搭建然后将输入端与FPGA平台的端口相连。
2.4系统运行环境
系统的软硬件环境关系到系统自身的稳定性和生命周期。
本系统采用CycloneII的EP2C5T144C8作为硬件平台的核心模块。
Cyclone
II器件包含了许多新的特性,如嵌入存储器、嵌入乘法器、PLL和低成本的封装等。
系统软件采用Quartus开发环境,结合Qsys和NiosII进行开发。
最终设计出一个基于SOPC的谐波合成系统。
2.5系统总体框架
图2.2系统总体框图
系统总体由软件设计和硬件操作两部分组成。
软件设计主要实现了CPU的设计、使用和程序下载。
当三个模块设计并下载到FPGA平台后,可通过人机交互对系统进行操作。
硬件操作分为两个部分。
一个是功能选择部分,该部分通过按键中断实现,当按下相应的按键后将中断信号传入FPGA中执行相应的操作。
第二个部分是显示部分,显示又有两部分,一是七段数码管显示当前周期信号的幅度、频率、相位、档位等信息,一是通过LPF输出到示波器中,通过示波器观察谐波合成后的周期信号。
3软件模块设计
3.1CPU模块设计
CPU通过Qsys设计。
CPU架构列表如图3.1所示:
图3.1CPU架构列表图
1)CPU
CPU为整个CPU设计的内核。
Qsys中提供了三种类型的CPU,CPU型号及其描述如图3.2所示:
图3.2CPU型号及其描述图
本设计采用标准型CPU,标准型具有占用资源较少,功能齐全等优点,基本能满足本次设计的要求。
2)clk_50
clk_50提供了50MHz的系统时钟,供系统正常运行使用。
50MHz为本设计所使用的FPGA最大晶振频率。
3)jtag_uart
jtag_uart为CPU提供了jtag调试接口,可通过jtag对CPU进行调试,实现中断、单步执行等功能。
4)存储器
存储器包括了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.3altpll_0配置图
5)IO
IO配置包括了IO输出pwm、led、数码管和IO输入key。
数码管包括了数码管的使能输出和数据输出。
IO输出配置如图3.4所示,Width为输出/输入位数,Direction为IO方向。
IO输入配置如图3.5所示。
图3.4IO输出配置图
图3.5IO输入配置图
由于key按键用于CPU中断,除了配置IO输出的两项外,还要配置中断选项。
Edgecaptureregister注册了中断为低电平有效,interrupt配置了中断为边沿中断。
6)timer
timer用于配置定时器,由于数码管是共阳极的,数据线共用,因此需要通过控制不同数码管的使能端控制数码管显示数值。
人眼识别连贯图像的速度大约是40ms,因此使能端的切换速度要低于40ms。
经测试本设计定时1ms效果较佳。
Timer配置如图3.6所示:
图3.6定时器配置图
3.2Quartus模块设计
该模块主要是调用CPU,在CPU周围加上需要的外设,分配硬件引脚以及连接时钟。
本模块配置如图3.7所示:
图3.7Quartus模块配置图
3.3NiosII模块设计
该模块是实现系统总体功能的软件程序编写部分。
包括了谐波的合成、按键中断、数码管显示以及PWM输出。
工作流程如图3.8所示。
程序首先注册按键中断,并开始检测按键中断,当有按键中断时触发相应的中断响应函数。
然后谐波合成,得出谐波合成后的方波数据。
接着数码管初始化以及开启定时器,定时器开启后四个七段数码管将不停的循环显示当前模式下的相应数值。
最后进入循环,不断输出PWM波。
图3.8软件工作流程图
3.3.1谐波合成
本设计实现的是通过多次谐波合成一个周期性方波信号。
方波的各次谐波计算公式如式3.1所示,程序实现如图3.9所示。
程序中通过for循环将各次谐波叠加起来后得出的数据存储在dot数组中,用于后续程序处理。
(3.1)
图3.9谐波合成程序
3.3.2按键中断
按键中断程序的设计包括了按键中断的注册以及中断响应函数。
中断注册用到的函数如图3.10所示:
图3.10按键注册程序
中断注册函数中先允许按键中断,设置边缘捕获寄存器最后注册按键。
当注册完按键后,一旦有中断来到时,程序将转入注册时注册的中断函数ISR_key1中执行中断响应。
程序更具不同的按键作出不同的按键中断响应,详细如下所述。
1)幅度、频率、相位响应
PWM输出经LPF后的方波幅度只与PWM的波形特性有关,与谐波合成后的波形幅度无关。
方波的幅度由PWM每个脉冲的占空比决定,当占空比为0时,得到方波幅值为0V(此处的幅度皆指峰-峰值),当占空比为1时,得到方波幅值为端口最大输出电压3.3V。
要控制方波的幅度就是控制端口输出电压最大时的脉冲占空比。
如要让输出幅度为1.1V,即电压变为原来的1/3,那么只需要在每个脉冲宽度不变的前提下将原来占空比为1缩短为占空比为1/3,其余的2/3均为低电平即可。
方波的频率与幅度一样只与PWM的波形特性有关,与谐波合成后的波形频率无关。
方波的周期由PWM的周期决定,由于PWM中每个脉冲宽度是一样的,不同的只是占空比,因此方波的周期或频率实际是有PWM一个周期中脉冲宽度决定的,调节每个脉冲的宽度即可做到调频的效果。
方波的相位由谐波合成后的相位决定,在本设计中各次谐波是通过时间t取点离散化后,再将相同时间值的点叠加存储于数组中最后得出一个经离散化后方波数据。
因此,方波的相位调节实际就