基于FPGA的多功能信号发生器.docx
- 文档编号:8232736
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:64
- 大小:1.18MB
基于FPGA的多功能信号发生器.docx
《基于FPGA的多功能信号发生器.docx》由会员分享,可在线阅读,更多相关《基于FPGA的多功能信号发生器.docx(64页珍藏版)》请在冰豆网上搜索。
基于FPGA的多功能信号发生器
2010年湖北大学生电子设计竞赛
ALTERA杯SOPC专题竞赛
题目__基于FPGA的多功能信号发生器__
MutifunctionSignalGeneratorBasedOnFPGA
参赛学校___三峡大学____
学生姓名徐刚余波雷明佳
完成日期2010年08月26日
参赛作品原创性声明
本人郑重声明:
所呈交的参赛作品报告,是本人和队友独立进行研究工作所取得的成果。
除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果,不侵犯任何第三方的知识产权或其他权利。
本人完全意识到本声明的法律结果由本人承担。
参赛队员签名:
日期:
年月日
目录
摘要1
1系统概论1
1.1选题背景和意义1
1.1.1信号发生器的实际应用1
1.1.2信号发生器的发展状况2
1.1.3课题研究的意义3
1.2国内外研究现状3
1.2.1专用DDS芯片3
1.2.2高性能信号发生器3
1.2.3SOPC技术3
1.3课题的主体工作4
2系统总体设计5
2.1系统原理设计5
2.1.1DDS设计原理5
2.1.2NiosII软核6
2.2系统功能设计7
2.3系统设计实现方法8
3硬件电路设计8
3.1硬件系统总体设计8
3.2NiosII软核设计9
3.3DDS子系统设计10
3.3.1常规波形11
3.3.2正交波形12
3.3.3DTMF波形12
3.3.4AM_FM波形13
3.3.5ASK_FSK波形14
3.3.6QAM波形15
3.4等精度频率计16
3.5矩阵键盘电路17
3.6D/A与放大电路18
3.7低通滤波电路19
3.8线性稳压电源19
4软件设计20
4.1NiosIIIDE集成开发环境20
4.2系统软件的基本结构20
4.2.1主控程序21
4.2.2DDS控制程序模块21
4.2.3按键输入模块22
4.2.4等精度频率计22
5系统调试23
5.1外围硬件调试23
5.2软件调试23
5.3软硬件联调24
6系统测试24
6.1测试仪器24
6.2测试方案24
6.2.1测试环境24
6.2.2测试准备25
6.2.3测试步骤25
6.3测试结果与分析25
6.3.1DDS正弦信号测试与分析25
6.3.2各类波形测试与分析26
6.3.3误差分析及改进措施26
6.4测试结论27
7总结28
参考文献29
附录30
1.扩展模拟子系统电路原理图30
2.系统实物演示图31
3.系统仿真波形图31
4.系统控制主程序源代码35
基于FPGA的多功能信号发生器
MutifunctionSignalGeneratorBasedOnFPGA
摘要:
设计了基于NiosII软核的多功能信号发生器。
采用SOPC、DSP和DDS技术完成系统的主要功能,利用DSPBuilder建立其数学模型,实现了模块化设计,在Simulink中进行仿真验证,通过SignalCompiler将模型转化成硬件描述语言,经过QuartusII综合后,下载到FPGA里,结合LCD、键盘、高速DAC、滤波放大和电源等外围硬件电路,应用C语言在NiosIIIDE上进行系统软件的编写和调试,来控制系统的工作。
该系统在实际工作中达到了设计要求。
此设计方法简化了硬件设计的难度,提高了设计效率。
关键词:
SOPC;NiosII;DDS;DSPBuilder;信号发生器
Abstract:
BasedontheNiosIIsoftnucleardesignmuti_functionsignalgenerator.UsingtheSOPC,DSPandDDStechnologycompletedthemainfunctionsofthesystem,usingDSPBuildertoestablishthemathematicalmodel,realizingthemodulardesign,inSimulinkverifiedinsimulation,throughtheSignalCompilermodelintohardwaredescriptionlanguage,afterQuartusIIcomprehensive,downloadtheFPGA,combinedwithLCD、keyboard、high-speedDAC、filterandamplificationandpoweretc.peripheralhardwarecircuit,applicationofClanguageinNiosIIIDEcompilinganddebuggingthesystemsoftware,tocontrolsystem'swork.Thissystemintheactualworkreachedthedesignrequirements.Thisdesignmethodsimplifiesthedesignofhardware,toimprovethedesignefficiency.
Keywords:
SOPC;NiosII;DDS;DSPBuilder;SignalGenerator
1系统概论
1.1选题背景和意义
1.1.1信号发生器的实际应用
信号发生器作为一种实用的实验仪器,在现代通信领域和测量领域中得到广泛的应用。
种类繁多的信号发生器在电子技术领域中的使用范围如:
脉冲信号发生器、函数信号发生器、扫频信号发生器等,这些信号发生器的主要功能是为待测器件或设备提供不同波形特征的电压、电流信号。
随着电子设计行业的不断发展,新型电路速率越来越高。
在设计的过程中,需要利用现有的信号源来模拟电路的输入信号。
因此信号发生器在电子设计领域作为最基本的仪器,提供各种可预置频率、波形和幅度的测试信号[1]。
1.1.2信号发生器的发展状况
信号发生器从上世纪20年代诞生发展至今,从技术上看,先后经历了模拟式信号发生器——数字式信号发生器——虚拟信号发生器三个发展阶段。
从40年到60年代期间,信号发生器主要采用以电子管工艺为基础的模拟电路构成;此时的信号发生器不仅其电路结构复杂、产生波形种类少,而且信号的精度和可控性都不够好。
到了60年代中期,随着晶体管工艺的出现、大规模和超大规模集成电路的应用,使信号发生器得到了一定的发展,其信号的输出精度得到一定提高。
到了70年代微处理器出现以后,使得信号发生器的产生方法发生了改变;这个时期的信号发生器多以软件为主,实质是采用微处理器控制,就可以得到各种简单的波形。
软件控制波形的一个最大缺点就是输出波形的频率低,这主要是由CPU的工作速度决定的,如果想提高频率就要改进软件程序减少其指令执行周期时间或提高CPU的时钟周期,但这些办法是有限度的,根本的办法还是要改进硬件电路。
到了80年代后,随着DDS(直接数字频率合成)技术逐步发展成熟以及其专用DDS芯片(如AD公司的:
AD7008、AD9850、AD9851、AD9852、AD9854、AD9858等)的面世,使得数字信号发生器得到迅速的发展。
运用微处理器和专用DDS芯片设计出的信号发生器在这一时期得到广泛应用。
这类信号发生器不仅能产生传统函数信号发生器能产生的正弦波、方波、三角波、锯齿波等,还能产生任意编辑的波形。
如:
惠普公司的HP33120可以产生l0mHz一15MHz的正弦波和方波,同时还可以产生l0mHz一5MHz的任意波。
进入90年代,随着FPGA(现场可编程门阵列)技术的迅速发展和广泛应用以及硬件描述语言的标准化进一步确立,极大的促进了数字化技术在电子测量仪器中的应用,使原有的模拟信号处理逐步被数字信号处理所代替,从而扩充了仪器信号处理能力,为数字信号发生器的实现提供了更简捷的实现方式。
如今,随着百万门以上的大规模可编程逻辑器件的陆续面世,以及嵌入式处理器软核的成熟,使得SOPC(systemonaprogrammablechip)步入大规模应用阶段,在一片FPGA上实现一个完备的数字处理系统已成为可能。
而随着单片机技术的成熟和ARM(AdvancedRISCMachines)处理器技术的发展,为数字信号发生器的设计又多了一种实现方式。
目前,数字信号发生器的设计主要有以下两种方式:
第一种方式:
采用微处理器加专用信号发生器芯片(如:
MAX038、AD9854等)。
第二种方式:
基于FPGA的SOPC片上可编程嵌入式系统方式。
该方式即在一片FPGA芯片中嵌入一个软核处理器,再用VHDL硬件描述语言设计出DDS和必需的外围电路,将其封装成IP核的形式,然后将其与软核处理器一起集中在FPGA芯片中,实现SOPC片上可编程嵌入式系统。
目前的数字信号发生器的设计大多朝着这一设计理念发展。
本论文设计的多功能信号发生器就是采用这一设计方式,系统实现了输出波形频率在1Hz一10MHz之间任意可调(系统采用锁相环技术,倍频到100MHz提供给DDS模块)。
可以完成最小频率步进为0.1Hz且频率数控可调。
成功的解决常规设计方式中所存在的问题[2][3]。
1.1.3课题研究的意义
在现代电子技术的研究及应用领域中,常常需要高精度且频率可调的信号源。
并且要求由数字信号来控制,这就是数字式频率合成器。
首先,DDS的频率分辨率在相位累加器的位数N足够大时,理论上可以获得相应的分辨精度,这是传统方法难以实现的;其次,DDS是一个全数字结构的开环系统,无反馈环节,因此其速度极快,一般在毫微秒量级;再次DDS的相位误差主要以来于时钟的相位特性,相位误差小;第四,DDS的相位是连续变化的,形成的信号具有良好的频谱,这是传统的直接频率合成方法无法实现的。
因此,DDS技术为这类高精度且频率可调的信号发生器的设计与实现提供了理论依据与技术支持。
SOPC作为嵌入式领域新兴的一门新技术,在市场上应用SOPC技术设计的相关产品还没有应用开来,基于此技术进行开发具有良好的应用前景。
本课题正是基于此类考虑,在分析SOPC技术和NiosII处理器的基础上,应用DDS技术,进行软硬件协同设计。
缩短开发周期和提高系统应用性能。
1.2国内外研究现状
1.2.1专用DDS芯片[4]
目前几大芯片制造厂商都相继推出采用先进CMOS工艺生产的高性能和多功能的DDS芯片,为电路设计者提供了多种选择。
其中应用较为广泛的是美国AD公司的产品,如AD9954,它是采用先进的DDS技术生产的高集成度频率合成器,内置高速、高性能D/A转换器及超高速比较器,可作为数字编程控制的频率合成器,能产生较高频率的模拟正弦波。
1.2.2高性能信号发生器[5]
1978年由美国Wavetek公司和日本东亚电波工业公司公布了最高取样频率为5MHz、可以形成256点(存储长度)波形数据、垂直分辨率为8bit,主要用于振动、医疗、材料等领域的第一代高性能信号源,经过将近30年的发展,伴随着电子元器件、电路、及生产设备的高速化、高集成化,信号发生器的性能有了飞速提高,操作越来越简单而输出波形的能力越来越强。
1.2.3SOPC技术[6][16]
SOPC技术是A1tera公司提出的一种灵活、高效的SOC(片上系统)解决方案,它是一种特殊的嵌入式微处理器系统。
首先,它是SOC,即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,以FPGA为硬件基础,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件系统在线可编程的功能。
自从系统单晶片SOC成为主流设计趋势后,使用FPGA进行大规模可配置的SOC设计已成为普遍应用。
工程师可以利用可编程逻辑器件在一个单晶片上整合CPU、内存、I/O装置、数据通道、时钟管理系统等。
目前,可编程SOC的实现方法有以下两种:
一是在FPGA中嵌入CPU内核获得编程系统平台;二是将可编程模块置入ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路),得到具有可配置功能的ASIC。
集成了硬核或软核CPU、DSP、存储器、外围I/O及可编程逻辑的SOPC芯片在应用灵活性和价格上有极大优势,所以SOPC被称为“半导体产业的未来"。
IP核是知识产权核(IntellectualPropertyKernels),IP技术是一项高新技术,是FPGA设计的发展方向,也是实现SOPC的基础和非常重要的内容。
SOPCBuilder就是基于IP的一种SOC设计方法与平台,其中包含了常用的IP模块,用户还可以自定义IP模块。
传统的DSP处理器(如TI的TMS320系列)由于其硬件结构的不可变性,导致了其总线的不可变性,固定的数据总线成为它的一个瓶颈,它不适合于当前许多要求能进行结构特性随时变更的应用场合,即所谓的面向对象型的DSP系统。
对于DSP的各类专用ASIC芯片虽然可以解决并行性和速度问题,但是高昂的开发设计费用、较长的开发周期以及不灵活的硬件结构使其也失去部分工程师的首选位置。
基于大容量、高速度FPGA的SOPC技术可以克服上述许多不足。
用FPGA来实现数字信号处理可以很好地解决并行性、顺序性以及速度问题,而且其灵活配置的特性,使FPGA构成的DSP系统易于修改、测试和升级。
利用FPGA进行DSP系统的开发应用,已经有了全新的设计流程,DSPBuilder就是Altera公司推出的一个面向DSP开发的升级工具。
DSPBuilder中的DSP基本模块以算法级描述出现,易于用户从系统或算法级进行理解,甚至于不需要十分地了解FPGA本身和硬件描述语言。
1.3课题的主体工作
本课题是基于A1tera公司的FPGA开发平台设计与实现的数字信号发生器。
综合应用了FPGA、SOPC、DDS和DSP技术,在FPGA硬件平台上,应用QuartusII、NiosII、DSPBuilder等开发工具设计的多功能信号发生器。
通过在QuartusII平台下应用SOPCBuilder建立软核,在DSPBuilder下构建DDS模块供软核调用,以完成NIOSII系统。
辅以一定的外围硬件电路实现系统的硬件设计。
通过NiosII进行软件开发,实现系统的控制功能。
在软件和硬件上构建一个完整的SOPC系统。
2系统总体设计
2.1系统原理设计
2.1.1DDS设计原理[7]
DDS作为一种新型的频率合成技术,具有较高的频率分辨率,可以实现快速的频率切换,并且在频率改变时可以保持相位的连续,很容易实现频率、相位和幅度的数控调制。
对于一个单频率正弦信号发生器,输出可以用下式描述:
(2-1)
其中
是指型号发生器的输出波形,
指输出信号对应的频率。
而上式对时间t是连续的,为了用数字逻辑实现该表达式,需要进行离散化处理。
用时钟基准clk进行抽样,相位表示如式:
(2-2)
在一个时钟周期内,相位变化量为:
(2-3)
其中
指时钟的频率,对于
可理解为满相位。
为了对
进行数字量化,把
切割成
份,由此每个时钟周期的相位增量
可用量化值
(整数)表述为:
(2-4)
经变换后得到:
(2-5)
可疑得到信号发生器的输出描述:
(2-6)
从式2.1.1-6可以看出,只要用频率控制字M进行简单的累加运算,就可以得正弦函数的当前相位值。
而正弦信号的幅值就是当前相位值的函数。
由于正弦函数为非线性函数,很难实时计算,一般通过查表的方法来快速获得函数值。
由上述分析,可以得到一种用数字的方法获得正弦信号的方法:
先构建一个N位的相位累加器,在每一个时钟周期内,将相位累加器中的值与频率控制字相加,得到当前相位值。
将当前相位值作为ROM的地址,读出ROM中的正弦波数据,通过D/A转换成模拟信号。
只需改变频率控制字,就可以改变输出信号的频率。
如图2-1所示为一个基本的DDS原理图。
主要有相位累加器、相位调制器、正弦ROM查找表和D/A转换器组成。
图中的相位累加器、相位调制器、正弦ROM查找表是DDS结构中的数字部分,由于具有数字频率合成功能,又合称为数字压控振荡器(NCO)。
图2-1DDS原理图
相位累加器是整个DDS的核心,完成相位累加功能。
作为输入的频率字经过一组同步寄存器,使得频率字改变时不会干扰相位累加器的正常工作。
相位调制器接收相位累加器的相位输出,在此加上一个相位偏移值,主要用于信号的相位调制。
正弦ROM查找表完成
的查找变换,将相位调制器的输出作为输入,输出送D/A,转化为模拟信号。
2.1.2NiosII软核
SOPC可以说是基于大规模FPGA的可编程单片系统。
SOPC的设计技术是现代计算机辅助设计技术和大规模集成电路技术高度发展的产物。
SOPC技术是将尽可能大而完整的电子系统,包括嵌入式处理器系统、接口系统、硬件协处理器或加速系统、DSP系统、数字通信系统、存储电路以及普通数字系统等,在单一FPGA中嵌入实现。
大量采用IP复用、软硬件协同设计、自项向下和自底向上混合设计的方法,边设计、边调试、边验证,原本需要写上几千行的VHDL代码的功能模块,通过嵌入IP核后,只需几十行C代码即可实现。
因此,可以使得整个设计在规模、可靠性、体积、功耗、功能、性能指标、上市周期、开发成本、产品维护及其硬件升级等多方面实现最优化[8]。
Altera的SOPC系统有两种嵌入式内核:
一种是在FPGA器件内嵌入ARM硬核,另一种是使用Altera自己的32位嵌入式精简指令集软核NiosII。
NiosII是Altera公司推出的新一代32位RISC嵌入式软核处理器。
也是本文设计中所使用的处理器。
该处理器系统主要包括一个或多个NiosCPU、Avalon交换结构总线以及HAL系统库等。
NiosII是一个基于流水技术设计的通用RISC微处理器,指令与数据分开的哈佛结构。
该处理器具有如下一些特点:
1)完整的SOPC解决方案;
2)高效、灵活的处理器模块,可以通过软件配置成16位或32位的中央处理单元,并可选择不同的内部存储器大小,其最高执行速度可以达到50MHz;
3)具有多种其他功能模块的选择,包括:
SDRAM控制器、UART控制器、PCI接口模块、MAC接口模块等多种功能模块;
4)具有完整的、廉价的、便捷的开发系统。
所有开发(包括设计、调试)均通过软件进行,不再需要专门的硬件仿真器和编程器,大大减少了开发设备的成本;
5)基于RTOS的操作系统支持,完善了使用NiosII的SOPC解决方案;
6)拥有一个完整的开发环境NiosIIIDE,所有软件开发任务都可以在NiosIIIDE下完成,包括编辑、编译和调试程序。
由以上一些特性可以看出,NiosII基本上提供了主流嵌入式处理器的性能。
同时因为NiosII是一软核处理器,因此设计者给用户提供了一定的定制特性,用户可以根据需要选择合适的NiosII实现。
2.2系统功能设计
本系统的设计是基于DDS的原理,利用DSPBuilder基本模块搭建DDS应用模型,转换为VHDL语言,形成DDSIP核。
通过在FPGA核心模块上进行SOPC设计,实现NiosII软核控制系统核心,实现各个模块的可靠互连,完成系统的软硬件协同设计。
基于FPGA核心模块上应用SOPC技术设计和实现的多功能信号发生器,利用NiosII软核作为控制核心,建立人机界面,用于频率字、相位字和幅度字的输入。
通过电路的总体设计和各个模块的硬件设计,完成了相关软件的编制和调试工作,实现了系统的目标功能设计。
多功能信号发生器采用NiosII软核处理器实现对各个功能模块进行控制,键盘提供输入,输出显示由LCD实现。
功能选择及输入设定采用按键形式,LCD显示输入设置的频率值、幅度值、相位值和系统的工作状态。
多功能信号发生器的主要技术指标为;
1)输出信号频率范围可达1Hz--10MHz;
2)输出电压峰峰值大于6V;
3)频率分辨率:
0.1Hz;
4)相位分辨率:
0.005°;
5)可输出常规波形:
正弦波、余弦波、方波、锯齿波、三角波、梯形波;
6)可输出专用波形:
正交波、DTMF(DualToneMultiFrequency)、AM、FM、ASK、FSK、QAM(QuadratureAmplitudeModulation);
7)频率小于1KHz时绝对误差小于
,大于1KHz时相对误差小于+0.1%。
8)等精度频率计。
2.3系统设计实现方法
作为系统的主要功能的DDS模块,其核心单元是相位累加器、相位调制器、幅度调制器、正弦ROM查找表等模块,主要涉及一些相关的复杂数字运算,这些运算利用A1tera公司的DSPBuilder进行设计实现。
DSPBuilder是A1tera公司推出的系统级(或算法级)设计工具,它架构在多个软件工具上,并把系统级和RTL级(硬件实现)两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势。
DSPBuilder依赖于MathWorks公司的数字分析工具MATLAB/Simulink,可以在Simulink中进行图形化设计与仿真,然后通过SignalCompiler把MATLAB/Simulink的设计文件(.mdl)转成相应的硬件描述语言VHDL设计文件(.vhd)和用于控制综合与编译的.tcl脚本文件,而对后者的经一步处理可以由FPGA/CPLD开发工具QuartusII来完成。
信号发生器其它部分采用SOPC的方式设计,以嵌入式处理器NiosII为核心,将微处理器、总线、外设、DDS模块、存储器和I/O接口等硬件设备集成到单片FPGA上,创建一个可编程片上系统,产生一个软件开发平台,并完成以下功能:
①控制键盘和显示器;②根据输入的频率值,通过数据计算得到频率控制字;③实现数字频率合成器;④实现数字调制器;⑤实现对数模转换器的控制。
采用数字信号处理器技术,通过软件编程实现不同调制方式的选择,充分利用FPGA的资源,减少CPU与外设的接口,在很大程度上提高了系统的速度、可靠性并降低了系统成本。
片内正弦表ROM传出的数据经D/A转换器,完成数模转换,由调制系统完成幅度控制以及各种调制方式的实现,继而经过低通滤波器和宽带运算放大器,从而得到任意一种具有一定带负载能力的所需波形。
综上,本系统是在FPGA核心平台上,应用SOPC技术进行开发的多功能DDS信号发生器。
利用DSPBuilder实现DDS相关的相位累加等数字逻辑功能模块,应用嵌入在FPGA中的自定制NiosII软核处理器作为控制核心,通过外接矩阵键盘实现频率、幅度、相位和步进的数字设置,并且通过LCD显示频率、幅度等波形参数。
通过JTAG通信口重新下载任意波形数据或者自定制设计重构文件。
3硬件电路设计
3.1硬件系统总体设计
本系统的设计实现,由FPGA内部的自定制NiosII系统与在FPGA外围搭建的模拟子系统构成基本的硬件电路。
其中自定制NiosII系统,充分利用DE0开发平台上的FPGA系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 多功能 信号发生器