基于FPGA函数信号发生器的设计与实现
姓名:黄振华申请学位级别:硕士专业:控制理论与控制工程
指导教师:李正明
20090606
江苏大学硕士学位论文摘要任意波形发生器已成为现代测试领域应用最为广泛的通用仪器之一,代表了信号源的发展方向。直接数字频率合成(DDS)是二十世纪七十年代初提出的一种全数字的频率合成技术,其查表合成波形的方法可以满足产生任意波形的要求。由于现场可编程门阵列(FPGA)具有高集成度、高速度、可实现大容量存储器功能的特性,能有效地实现DDS技术,极大的提高函数发生器的性能,降低生产成本。本文首先介绍了函数波形发生器的研究背景和DDS的理论。然后详尽地叙述了用FPGA完成DDS模块的设计过程,接着分析了整个设计中应处理的问题,根据设计原理就功能上进行了划分,将整个仪器功能划分为控制模块、外围硬件、FPGA器件三个部分来实现。最后就这三个部分分别详细地进行了阐述。在实现过程中,本设计选用了Altera公司的EP2C35F672C6i笛片作为产生波形数据的主芯片,充分利用了该芯片的超大集成性和快速性。在控制芯片上选用了三星公司的上¥3C2440作为控制芯片。本设计中,FPGA芯片的设计和与控制芯片的接口设计是一个难点,本文利用A1tera的设计工具QuartusII并结合Verilog-HDL语言,采用硬件编程的方法很好地解决了这一问题。论文最后给出了系统的测量结果,并对误差进行了一定分析,结果表明,可输出步进为0.01Hz,频率范围0.01Hz'---20MHz的正弦波、三角波、锯齿波、方波,或0.01Hz'--'20KHz的任意波。通过实验结果表明,本设计达到了预定的要求,并证明了采用软硬件结合,利用FPGA技术实现任意波形发生器的方法是可行的。关键词:函数发生器,直接数字频率合成,现场可编程门阵列江苏大学硕士学位论文ABSTRACTArbitraryWaveformGenerator(AWG)isdomains,whichrepresentsoneofthemostpopularinstrumentsindevelopingdirectionofsignalamodemtestingthesources.DirectDigitalfrequencySynthesis(DDS)advancedearlyin1970sisfulldigitaltechnologyforfrequencysynthesis,itsLUTmethodforsynthesizingwaveformadaptstogeneratearbitrarywaveform.FieldProgrammableGatefeaturesArray(FPGA)hascantheoflargescaleintegration,highworkingfrequencyandcanrealizelargememory,soFPGAeffectivelyrealizeDDS.TheEP2C35F672C6ofCorporationAlteraischosentodothemaindigitalprocessingwork,whichisbasedischosenasaonitslargescaleandhighspeed.The¥3C2440MCUcontrolchip.Inthisdesign,howtodesigntheFPGAchipandtheinterfacebetweentheFPGAandthecontrolchipistheproblem.Withthemethodofsoftwareandhardwareprogramming,thedesignusedthesoftwareQuartusIIandlanguageverilog—HDLsolvesitsuccessfully.Inthispaper,theprincipleofDDSandbasisofEDAtechnologyisintroducedfirstly.Theproblemsmetinthedesignarethreeparts:masterchip,FPGAanalyzeddeviceandthewholefunctionispartitionedintoandperipheralhardware.Thethreepartsaredescribedindetailindependently.Thedisadvantageandthingsneedtoadvancearealsolisted.Attheendofthedissertation,themeasurementresultofthesystemisgivenanalyzed.Itisshownthewave,oraanditserrorisAWGCanoutputasinewave,atrianglewave,asawteethwiththesquarewavewithinthefrequencyrangefrom0.01Hzto20MHzstepof10mHz,oroutput20kHz.Throughananarbitrarywaveformwithintherangefrom0.01Hztoexperiment,itistestifiedthatthedesignmeetstherequirementuseplanedandthewaytosoftwareandhardwareprogrammingmethodandDDSGeneratorisavailable.technologytorealizeFunctionalWaveformKeywords:DDS;FPGA;FunctionalWaveformGeneratorU学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权江苏大学可以将本学位论文的全部内容或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编木学位论文。保密口,本学位论文属于在年解密后适用本授权书。不保密圈。学位论文作者签名董獬签字日期:加1年‘月7日翮虢如眨签翱期冲;7日独创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容以外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均己在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名:萎啦甲日期:矽t,1年易月江苏大学硕士学位论文第一章绪论1.1背景与意义波形发生器uo即通常所说的信号发生器是一种常用的信号源,广泛应用于通信[2I,雷达[3][4l,测控[5|,电子对抗[6][7]以及现代化仪器仪表[8]等领域,是一种为电子测量工作提供符合严格技术要求的电信号设备,和示波器、电压表、频率计等仪器一样是最普通、最基本也是应用最广泛的电子仪器之一,几乎所有电参量的测量都要用到波形发生器。随着现代电子技术的飞速发展,现代电子测量工作对波形发生器的性能提出了更高的要求,不仅要求能产生正弦波、方波等标准波形,还能根据需要产生任意波形,且操作方便,输出波形质量好,输出频率范围宽,输出频率稳定度、准确度及分辨率高,频率转换速度快且频率转换时输出波形相位连续等。可见,为适应现代电子技术的不断发展和市场需求,研究制作高性能的任意波形发生器(ArbitraryWaveformGenerator,简称AWG)十分有必要,而且意义重大。一般传统的信号发生器都采用谐振法,即用具有频率选择性的回路来产生正弦振荡,获得所需频率。这种信号发生器虽然具有输出信号频率范围宽,结构简单等优点,但输出波形单一,不能产生任意波形,且频率稳定度和准确度较差,频率稳定度一般劣于10。/分,频率准确度一般在0.5%以下,对于作为精密测量用的信号发生器,其频率稳定度一般要求达到10一一10~。因此传统的信号发生器已经越来越不能满足现代电子测量的需要,正逐步退出历史舞台[16]。而基于频率合成技术制成的信号发生器,由于可以获得很高的频率稳定度和精确度,因此发展非常迅速,尤其是最近随着现代电子技术的不断发展,其应用更是有了质的飞跃。1.2国内外动态1.2.1波形发生器的发展状况波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高江苏大学硕士学位论文稳定性、可重复性和易操作性的电子仪器。函数波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、振动激励、通讯和仪器仪表领域¨引。在70年代前,信号发生器主要有两类:正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。同时,主要表现为两个突出问题,一是通过电位器的凋节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。在70年代后,微处理器的出现,可以利用处理器、A/D和D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形瞄4|。这时期的波形发生器多以软件为主,实质是采用微处理器对DAC的程序控制,就可以得到各种简单的波形。90年代木,出现几种真正高性能、高价格的函数发生器心…、但是HP公司推出了型号为HP770S的信号模拟装置系统,它由HP8770A任意波形数字化和HPl776A波形发生软件组成。HP8770A实际上也只能产生8中波形,而且价格昂贵。不久以后,Analogic公司推出了型号为Data.2020的多波形合成器,Lecroy公司生产的型号为9100的任意波形发生器等。到了二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过GHz的DDS-心H-"片[38][39l,同时也推动了函数波形发生器的发展,2003年,Agilent的产品33220A能够产生17种波形,最高频率可达到20M,2005年的产品N6030A能够产生高达500MHz的频率,采样的频率可达1.25GHz。由上面的产品可以看出,函数波形发生器发展很快近几年来,国际上波形发生器技术发展主要体现在以下几个方面:1.过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的函数段把2江苏大学硕士学位论文波形数据存入存储器。同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成V:f(t)形式的波形方程的数学表达式产生。从而促进了函数波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如VisualBasic,VisualC等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。2.与VXI资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。在民用方面,VXI模块远远不如台式仪器更为方便瞄圳。3.随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不过现在新的台式仪器的形态,和几年前的己有很大的不同。这些新一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类似产品减少了一半。1.2.2国外波形发生器产品介绍早在1978年,由美国Wavetek公司和日本东亚电波工业公司公布了最高取样频率为5MHz,可以形成256点(存储长度)波形数据,垂直分辨率为8bit,主要用于振动、医疗、材料等领域的第一代高性能信号源,经过将近30年的发展,伴随着电子元器件、电路、及生产设备的高速化、高集成化,波形发生器的性能有了飞速的提高。变得操作越来越简单而输出波形的能力越来越强。波形操作方法的好坏,是由波形发生器控制软件质量保证的,编辑功能增加的越多,波形形成的操作性越好[31]。以下给出了几种波形发生器的性能指标,从中可以看出当今世界上重要电子仪器生产商在波形发生器上的研制水平。3江苏大学硕士学位论文袁1-1波形发生器产品比较公司TektronixTektronix横河电机AG5100肋yetek295型号最高采用频率通道数垂直分辨率存储容量输出电压AG320AWG7104GMS/s216MS/s2lGMS/S250MS/S412bit8bit8bit12bit64K8MlM64K10V2.5V2V15V1.3函数波形发生器的几种实现方式任意波形发生器得实现方案主要有程序控制输出、DMA输出、可变时钟计数器寻址和直接数字频率合成等多种方式。1.3.1程序控制输出方式计算机根据波形的函数表达式,计算出一系列波形数据瞬时值,并定时地逐个传送给D/A转换器,合成出所需要的波形。这种方式具有电路简单、实现方便等特点。但数据输出定时不准确,会影响信号的频率和相位;波形数据输出依靠指令的执行来完成,当需要同时输出多个信号时,相邻信号通道的输出存在时间差;受计算机运行速度的限制,输出信号的频率较低。1.3.2DNA输出方式DMA(directmemo巧access)方式输出不依赖于程序的执行,由DMA控制器申请总线控制权,通过地址总线给出存储器的地址信号,同时选通存储器和D/A转换器,在两者之间建立直接的数据通道,使存储器相应单元中的波形数据传送给D/A转换器转换后输出信号。DMA方式输出信号,可以大大提高信号的数据输出速率。但也存在一些问题,如波形输出期间,微处理器因为失去了总线控制4江苏大学硕士学位论文权,无法进行其他操作;在一个DMA操作中,只能在一个D/A转换器和存储器之间传送数据,无法实现多通道的信号输出。1.3.3可变时钟计数器寻址方式采用可变时钟计数器寻址波形存储器表,该方法是一种传统型任意波形发生器。原理框图如图1.1所示。图卜1可变时钟计数器寻址的任意波形发生图中的计数器实际上是一个地址发生器,计数器的触发时钟脉冲由一个频率可以控制的频率发生器产生,通过改变频率发生器的频率设置值,实现调整计数器产生的地址变化速率,从而改变输出的任意波形的频率。计数器产生的地址码提供读出存储器中波形数据所需要的地址信号,波形数据依次读出后送至高速D/A转换器,将之转变为模拟量,经低通滤波器后输出所需的波形。可见传统的任意波形发生器采用可变时钟和计数器寻址波形存储器表,此方法的优点是产生的地址连续,输出波形质量高。但其取样时频率较高,对硬件的要求也较高,而且常需多级分频或采用高性能的锁相环,其中分频式的任意波形发生器频率分辨率低,锁相式的任意波形发生器频率切换速度慢。1.3.4直接数字频率合成方式DDS(directdigitalsynthesizer)[9]是在一组存储器单元中按照信号波形数据点的输出次序存储了将要输出波形的数据,在控制电路的协调控制下,以一定的速率,周而复始地将波形数据依次发送给D/A转换器转换成相应的模拟信号。由于用硬件电路取代了计算机的控制,信号输出稳定度高。如需更新输出信号,不必改动任何线路和元器件,只需改写存储器中的波形数据即可。更主要的是,可以将微处理器从信号输出的负担中解脱出来。如图1—2为其工作流程图。江苏大学硕士学位论文图卜2直接数字频率合成方式的任意波形发生器1.4本设计的主要工作本课题主要包括波形发生器硬件电路设计与实现和任意波形数据产生,本人主要完成工作如下:1.基于FPGA的DDS模块电路的实现采用A1tera公司的EP2C35F672C6芯片作为产生波形数据的主芯片,通过硬件编程语言实现DDS模块电路,这部分工作需要熟悉DDS原理,FPGA的开发流程,verilog语言编程和QuartusII的开发环境。2.ARM控制模块的设计ARM控制芯片与键盘和显示电路的设计,这部分工作需要熟悉嵌入式系统,理解ARM接口电路的原理和功能,PROTEL工具的使用。3.系统软件设计系统软件设计主要包括嵌入式LINUX操作系统的移植,相关驱动程序的移植,应用程序主要包括:键盘处理程序的编写,频率及相位控制程序的编写,液晶显示控制程序的设计,波形数据更新控制程序的设计,这部分工作需要深入理解单片机的硬件环境和指令系统,熟练使用ARM与LINUX环境下的C语言及仿真器,了解QT的开发环境。6江苏大学硕士学位论文第二章直接数字频率合成器的原理及性能2.1频率合成器简介2.1.1频率合成技术概述频率合成器是现代电子系统的重要组成部分,它作为电子系统的“心脏”,在通信、雷达、电子对抗、导航、仪器仪表等许多领域中得到广泛的应用。频率合成理论早在30年代就丌始提出,迄今为止已有70年的发展历史。所谓的频率合成就是将一个高精度和高稳定度的标准参考频率,经过混频、倍频与分频等对它进行加、减、乘、除的四则运算,最终产生大量的具有同样精确度和稳定度的频率源。频率合成大致经历了三个主要阶段:直接频率合成;采用锁相技术的间接频率合成;直接数字频率合成。早期的频率合成方法称为直接频率合成。它利用混频器、倍频器、分频器与带通滤波器来完成四则运算。直接频率合成能实现快速频率变换、几乎任意高的频率分辨力、低相位噪声及很高的输出频率。缺点是直接合成由于使用了大量硬设备如混频器、倍频器、分频器、带通滤波器等,因而体积大、造价高。此外寄生输出大这是由于带通滤波器无法将混频器产生的无用频率分量滤尽。而且频率范围越宽,寄生分量也就越多。而这些足以抵消其所有优点。直接频率合成技术的固有缺点在间接频率合成技术中得到了很到的改善。间接频率合成又称锁相频率合成,采用锁相环路(PLL)技术对频率进行四则运算,产生所需频率。锁相环路(PLL)是一个能够跟踪输入信号相位的闭环自动控住系统。早在1932年DeBellescize提出的同步检波理论中首次公布发表了对锁相环路的描述。但是由于其复杂的技术原理直到1947年锁相环路才第一次用于电视接收机水平和垂直的同步扫描。它的跟踪性能及低噪声性能得到人们的重视得到迅速发展。它在无线电技术的各个领域得到了很广泛的应用。但是锁相频率合成器也存在一些问题,以致难于满足合成器多方面的性能要求。主要表现在高频率分辨率与快速转换频率之间的矛盾。直接数字频率合成即DDS,它是目前最新的产生频率源的频率合成技术。这种技术是用数字计算机和数模变换器来产生信号。完成直接数字频率合成的办7江苏大学硕士学位论文法,或者是用计算机求解一个数字递推关系式。或者是查阅表格上所存储的波形值。目前用的最多的是查表法。这种合成技术具有相对带宽很宽,频率切换时问短(ns级),分辨率高(uHz),相位变化连续,低相位噪声和低漂移,数字调制功能,可编程及数字化易于集成,易于调整等一系列性能指标远远超过了传统频率合成技术所能达到的水平,为各种电子系统提供了优于模拟信号源性能的高质量的频率源。目前它正朝着系统化,小型化、模块化和工程化的方向发展,性能越来越好,使用越来越方便,是目前应用最广泛的频率合成器之一。2.1.2频率合成器主要指标信号源的一个重要指标就足能输出频率准确町调的所需信号。一般传统的信号发生器采用谐振法,即用具有频率选择性的正反馈州路来产生正弦振荡,获得所需频率信号,但难以产生大量的具有同一稳定度和准确度的不同频率。利用频率合成技术制成的信号发生器,通常被称为频率合成器。频率合成器既要产生所需要的频率,又要获得纯净的信号。频率合成器的主要指标[10][11]如下:1.输出频率范围(fmin~fm舣):指的是输出的最小频率和最大频率之问的变化范围。2.频率稳定度:指的是输出频率在一定时间间隔内和标准频率偏差的数值,它分长期、短期和瞬时稳定度三种。3.频率分辨率:指的是输出频率的最小间隔。4.频率转换时问:指的是输出由一种频率转换成另一频率的时间。5.频谱纯度:频谱纯度以杂散分量和相位噪声柬衡量,杂散分量为谐波分量和非谐波分量两种,主要由频率合成过程中的非线性失真产生,相位噪声是衡量输出信号相位抖动大小的参数。6.调制性能:指的是频率合成器是否具有调幅(AM)、调频(FM)、调相(PM)等功能。2.2DDS原理DDS是一种全数字的频率合成方法,其基本结构主要由相位累加器、波形8江苏大学硕士学位论文ROM、D/A转换器和低通滤波器四个部分构成,如图2.1所示。图2-1DDS结构原理图图2-1中相位累加[11]器结构如图2-2所示。列图2-2相位累加器结构图相位累加器由一个N位的加法器和一个N位的寄存器构成,通过把上一个时钟的累加结果反馈回加法器的输入端而实现累加功能。从而使输出结果每一个时钟周期递增K。这里N为相位累加器的字长,K称为频率控制字。波形ROM示意图如图2.3所示。相位量化序列地址数据波形幅度量化序列波形ROM图2-3波形ROM示意图其中相位累加器字长为N,DDS控制时钟频率为£,频率控制字为K。DDS直接从“相位”的概念出发进行频率合成。相位累加器由加法器与累加寄存器级联构成。每来一个时钟脉冲£,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使q江苏大学硕士学位论文加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。DDS的核心就是相位累加器,利用它来产生信号递增的相位信息,整个DDS系统在统一的参考时钟下工作,每个时钟周期相位累加器作加法运算一次。加法运算的步进越大,相应合成的相位值变化越快,输出信号的频率也就越高。对于幅值归一化的jF弦波信号的瞬时幅值完全由瞬时相位来决定,因为缈=dO(t)/at,所以相位变化越快,信号的频率越高。ROM表完成将累加器相位信息转换为幅值信息的功能。再由D/A完成数字抽样信号到迮续时域信号的转换,D/A输出的台阶信号再经低通滤波器平滑可以得到精确的连续正弦信号波形。相位累加器利用Nbit二进制加法器的模溢出特性来模拟理想jF弦波的2Ⅱ相位周期。相位累加器输出和ROM输出可分别理解为理想正弦波相位信号和时域波形的时钟抽样。用相位累加器输出的数据作为波形存储器的相位取样地址,这样就可以把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的J下弦波信号。假设,相位累加器字长为N,DDS控制时钟频率为fc,时钟周期为Tc-1/£,频率控制字为K。系统工作时,累加器的单个时钟周期的增量值为Atp=Kx2n/2N,相应角频率为m=Ag/At=Ag/T。=29xKx2Nxf。,所以DDS的输出频率为fODs=o/2n=Kxf,J2N,DDS输出频率步进间隔为△fDDs=fd2N。因DDS输出信号是对正弦波的抽样合成的,所以应满足Niqust定理要求,即foDs≤fd2,也就是要求K<2N’1,根据频谱性能要求,一般取foDS≤O.4fc。当DDS相位累加器采用32位字长,时钟频率为30MHz时,它的输出频率间隔可达到AfoDs=re/2N=30x106/232≈10mHz。可见,DDS基于累加器相位控制lO江苏大学硕士学位论文方式给它带来了微步进的优势。DDS频率合成器具有以下优点:(1)频率分辨率高,输出频点多,可达2N个频点(假设DDS相位累加器的字长是N);(2)频率切换速度快,可达US量级;(3)频率切换时相位连续;(4)可以输出宽带正交信号;(5)输出相位噪声低,对参考频率源的相位噪声有改善作用;(6)可以产生任意波形;(7)全数字化实现,偏于集成,体积小,重量轻。但DDS也有比较明显的缺点:(1)输出信号的杂散比较大;(2)输出信号的带宽受到限制。DDS输出杂散比较大,这是由于信号合成过程中的相位截断误差、D/A转换器的截断误差和D/A转换器的非线性造成的。当然随着技术的发展,这些问题正在逐步得到解决。如通过增长波形ROM的长度也减小相位截断误差;通过增加波形ROM的字长和D/A转换器的精度以减小D/A量化误差等。在比较新的DDS芯片中普遍都采用了12bit的D/A转换器。当然一味靠增加波形ROM的深度和字长的方法来减小杂散对性能的提高总是有限的。已有研究在对DDS输出的频谱做了大量的分析后,总结出了误差的领域分布规律建立了误差模型,在分析DDS频谱特性的基础上又提出了一些降低杂散功率的方法;可以通过采样的方法降低带内误差功率,可以通过随机抖动法提高无杂散动态范围,在D/A转换器的低位上加扰打破DDS输出的周期性,从而把周期性的杂散分量打散使之均匀化。江苏大学硕士学位论文第三章基于FPGA的DDS模块的实现3.1现场可编程门阵列(FPGA)简介FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(AsJC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有町编程器件门电路数有限的缺点。FPGA采用了逻辑单元数组LCA(Logic包括可配置逻辑模块CLB(ConfigurableCellArray)这样一个新概念,内部Block)、输出/输入模块lOBLogic(Input/OutputBlock)和内部联机(Interconnect)三个部分。FPGA的基本特点主要有:(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。(2)FPGA可做其他全定制或半定制ASIC电路的中试样片。(3)FPGA内部有丰富的触发器和I/O引脚。(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。因此,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA具有静态可重复编程和动态在系统重构的特性,使得硬件功能可以像软件一样通过编程来修改。在FPGA实际应用中,设计的保密和设计的可升级是十分重要的,用单片机束配置FPGA可以很好的解决上述问题。用单片机配置FPGA器件时,关键在于产生合适的时序。单片机可选用常用的如MCS51系列、MCS96系列、AVR系列等均可。Cyclone.1l[12]系列FPGA主要山输入输出单元IOE、掩埋数组EAB、逻辑数组LAB及内部联机组成。EAB是在输入和输出埠加有寄存器的RAM块,其容量可灵活变化。所以,EAB不仅可以用于内存,还可以事先写入查表值来用它构成如乘法器、纠错逻辑等电路。当用于RAM时,EAB可配制成多种形式的字宽和容量。Altera公司FPGA器件Cyclone.II系列的组成主要包括:(1)逻辑12江苏大学硕士学位论文数组,由多个逻辑数组块’(LogicArrayBlocks,LABs)排列而成,用于实现大部分逻辑功能;(2)在芯片四周分布着可编程的输入输出单元(Input/OutputElements,IOEs),提供封装引脚与内部逻辑之间的连接接口;(3)丰富的多层互连结构的可编程联机;(4)片上的随机1竽取块状RAM;(5)锁相环(PLL),用于时钟的锁定与同步、能够实现时钟的倍频和分频;(6)高速的硬件乘法器,有助于实现高性能的DSP功能。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成以后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须争用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的的电路功能。因此,FPGA的使用灵活。FPGA的编程技术。目前有三种基本的FPGA编程技术:SRAM、反熔丝、Flash。其中,SRAM是迄今为止应用范围最广的架构,主要因为它速度快且具有可重编程能力,而反熔丝FPGA只具有一次可编程(OneTimeProgrammable,OTP)能力。基于Flash的FPGA是FPGA领域比较新的技术,也能提供可重编程功能。基于SRAM的FPGA器件经常带来一些其他的成本,包括:启动PROMS支持安全和保密应用的备用电池等等。基于Flash和反熔丝的FPGA没有这些隐含成本,因此可保证较低的总系统成本[13]。3.2OuartusII5.0㈨开发基本步骤Altera公司上一代的PLD丌发软件使用者众多[12|。目前Altera已经停止开发MaxplusII,而转向QuartusII软件平台。而Altera公司新一代PLD丌发软件Quartus11webedition更是适合大规模FPGA的丌发。OuartusII开发流程基本分成4个步骤:13江苏大学硕士学位论文1.设计输入OuartusII软件的设计文件可以来自OuartusII设计输入工具或各种工业标准的EDA设计输入工具QuartusII强大的集成功能允许信息在各种应用程序间自由交流,设计者可在一个工程内直接从某个设计文件转换到其他任何设计文件,而不必理会设计文件是图形格式、文本格式,还是波形格式。QuartusII具有如下的多种设计输入方法:原理图输入与符号编辑、硬件描述语言、波形设计输入、平面图编辑以及层次设计输入。如此众多的设计方法帮助设计者轻松地完成设计输入。2.项目处理OuartusII处理一个设计时,软件编译器读取设计文件信息,产生用于器件编程、仿真、定时分析的输出文件。消息处理器可以自动定位编译过程中发现的错误,编译器还可以优化设计文件。项目处理包括以下基本步骤:(1)消息处理器自动定位错误;(2)逻辑综合与试配;(3)定时驱动编译;(4)设计规则检查;(5)多器件划分;本设计主要采用Verilog_HDL语言描述方法。硬件描述语言HDL(HardwareDescriptionLanguage)是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。它可以使数字逻辑电路设计者利用这种语言来描述自己的设计思想,然后利用电子设计自动化(EDA)工具进行仿真,自动综合到门级电路,再利用ASIC或FPGA实现其具体功能。在硬件描述语言出现之前,已经有很多成功的软件设计语言,比如:Fortran、Pascal和C等,为什么不用这些语言描述硬件?因为这些软件设计语言较合适描述顺序执行的程序,却难以描述硬件的并发行为;软件设计语言中没有时序概念,难以描述信号间的时序关系。硬件描述语言自出现起,发展非常迅速,已经成功应用在数字逻辑设计的各个阶段,包括设计、仿真、验证、综合等,它ffJx,t设计自动化起到了极大的推动14江苏大学硕士学位论文作用。VefilogHDL语言[15]是硬件描述语言中的一种,它是在1983年由GateWayDesignAutomation公司的PhilMoorby首创。在1984年一1985年,Moorby设计出第一个关于Verilog-XL的仿真器,1986年,他对VerilogHDL的发展又做出了另一个巨大的贡献,即提出了用于快速门级仿真的XL算法,使仿真速度有了很大提高。随着这种仿真器的流行,VerilogHDL语言得到迅速发展。1989年,Cadence公司收购了GateWay公司,VerilogHDL语占成为Cadence公司的私有财产。由于Verilog私有性,妨碍了使用者之间的交流与共享,为与VHDL语言竞争,1990年,Cadence公司决定公开VeriiogHDL语言。基于VerilogHDL的优越性,IEEE于1995年制定了VerilogHDL的IEEE标准,即VerilogHDLl364.1995。采用Verilog语言设计的优点有以下几点:(1)作为一种通用的硬件描述语言,Verilog易学易用,因为在语法上它与C语言非常类似,有C语言编程经验的人很容易发现这一点。(2)同一个设计,Verilog语言允许设计者在不同层次上进行抽象。Verilog语言中提供开关级、门级、RTL级和行为级支持,一个设计可以先用行为级语法描述它的算法,仿真通过后,再用RTL级描述,得到可综合的代码。(3)Verilog语言支持广泛,基本上所有流行的综合器、仿真器都支持Verilog。(4)所有的后端生产厂商都提供Verilog的库支持,这样在制造芯片时,可以有更多的选择。(5)能够描述层次设计,可使用模块实例结构描述任何层次,模块的规模可以是任意的,语言对此没有任何限制。(6)VerilogHDL语言的描述能力可以通过使用编程语言接口(PLI)机制进一步扩展。PLI允许外部函数访问Verilog模块内部信息、允许设计者通过软件程序与仿真器进行交互。(7)Verilog语言对仿真提供强大的支持,虽然现在出现了专门的用于验证的语言,但用Verilog语占直接对设计进行测试任然是大部分工程师的首选。江苏大学硕士学位论文基于Verilog的FPGA的设计有两种方法:自顶向上(top-down)和自低向上(bottom.up)。图3.1为基于Verilog的FPGA的设计流程示意图。对于简单的只有逻辑设计的系统,可以不需要虚线所示的步骤;若对于一些很复杂的系统,如视频编解码芯片,则还需在系统设计规范完成后开发行为级模型,并进行仿真,检奄是否能满足系统需求。系统需求i系统设计规范i确定软件,硬件划分I逻辑总体设计方案I软件总体设计方案l逻辑详细设计方案i软件详细设计方案l逻辑编码i软件编码i功能验证l软件验证软硬件协同验证i综合布局布线时序验证i主板调试图3-1FPGA设计流程示意图16江苏大学硕士学位论文3.3任意波形发生器的FPGA实现早期的DDS系统使用分离的数字器件搭接,随着整个电路系统运行频率的升高,采用分离器件构建的DDS电路有其自身无法克服的缺点,主要表现在电磁兼容和系统工作频率上。后来出现的专用DDS芯片极大的推动了DDS技术的发展,但专用DDS芯片价格昂贵,且无法实现任意波形输出,近来,CPLD及FPGA的发展为实现DDS提供了更好的技术手段。FPGA的应用不仅使得数字电路系统的设计非常方便,并且还大大缩短了系统研制的周期,缩小了数字电路系统的体积和所用芯片的品种。而且它的时钟频率已可达到几百兆赫兹,加上它的灵活性和高可靠性,非常适合用于实现波形发生器的数字电路部分。用FPGA设计DDS电路比采用专用DDS芯片更为灵活。因为,只要改变FPGA中的ROM数据,DDS就可以产生任意波形,因而具有相当大的灵活性。相比之下FPGA的功能完全取决于设计需求,可以复杂也可以简单,而且FPGA芯片还支持在系统现场升级,虽然在精度和速度上略有不足,但也能基本满足绝大多数系统的使用要求。另外,将DDS设计嵌入到FPGA芯片所构成的系统中,其系统成本并不会增加多少,而购买专用j吝片的价格则是前者的很多倍。因此,采用FPGA来设计DDS系统具有很高的性价比。用FPGA可以非常方便的实现DDS系统的数字电路环节,且可现场编程进行电路的修改。在DDS系统中,FPGA的主要完成:(1)保存频率字;(2)保存相位字;(3)构成相位累加器,产生波形RAM的地址;(4)形成波形RAM。17江苏大学硕士学位论文3.3.1FPGA设计流程波形选择控制字波形选择寄存器相位控制字相位字寄存器频率控制字频率字寄存器II频率字累加器I寻址累加器l波形数据存储外部时钟PI,l,倍频PLL倍频输出图3-2FPGA设计框图FPGA的主要功能是:(1)产生与¥3C2440的接口电路,使其能够接受ARM处理器控制信号;(2)保存频率字,并构成相位累加器,产生与主时钟相同频率的RAM寻址字;(3)用内部的存储块构成存放多种波形数据的ROM,并通过相应的控制线进行选择;(4)构造出两个多波形选择输出的输出通道,其中的一路通道可具备移相功能;(5)用内部的PLL倍频外部低频品振源,并输出与主时钟同频的时钟,驱动片外高速D/A。该系统可实现常规固定波形输出和任意波形输出。其中相位累加器是一个带有累加功能的32位加法器,它以设定的频率控制字K作为步长来进行加法运算,当其和满时清零,并进行重新运算。相位寄存器是一个8位寄存器,它接受ARM处理器发送来的相位控制字数据并进行寄存,当下一个时钟到来时,输入寄存的数据,对输出波形的频率和相位进行控制。波形查找表ROM及RAM是DDS的关键部分,设计时首先需对时域波形进行采样,将采样的波形数据储存到波形查找表ROM及RAM中,每一位地址对应一个波形点的数值,任意波形数据寄存器接受ARM处理器送来的任意波形数据数据。整个系统各模块是在同步时钟信号CLK的控制下协调工作的。18江苏大学硕士学位论文3.3.2FPGA设计模块划分图3-3FPGA设计模块流程图整个设计有一个项层模块,按照功能要求划分成三个功能模块,其中第二个模块足DDS核心模块,比较复杂,又划分成6个模块。如图3-3所示:任意波形发生器的FPGA的电路设计主要是用FPGA设计DDS的核心部分最IJ)cH位加法器、控制字输入寄存器、流水线累加器,波形查找表、任意波形数据寄存器。3.3.3时钟模块图3-4时钟倍频模块根据耐奎斯特采样定理要得到输出频率为20MHz的信号,其所输入的信号时钟频率必须达50MHz以上。采样频率越高,输出波形的平坦度越好,同时19江苏大学硕士学位论文波形的的采样点数也越多,那么获得的波形质量也就越好。本设计中的DDS模块是一高速模块,所以对系统时钟就有很高的要求,不仅需要有较高的频率,而且还要有非常高的稳定性,如果在FPGA的时钟端直接加一高频晶振,不仅时钟不稳定,而且功耗大,费用高,在本设计中,直接调用Altera公司的PLL核,在FPGA时钟端只需加一低频晶振,通过FPGA内部PLL倍频达到系统时钟要求。图3-4为用MegaWizardPlug—InManager生成的PLL的实例图,图中输入端,外接系统时钟,两个输出端,一个是内部DDS的系统时钟,另一个为数模转换的控制时钟,两个时钟都足都一个PLL产生的,所以,输出的时钟相位偏移在允许范围内。3.3.448位寄存器设计本设计采用了48位寄存器,用来存储从ARM处理器读取的48位控制信号。其中控制信号的低16位用于作波形的选择,相位的偏移。控制信号的高32位当作频率控制字使用,结合FPGA的累加器产生32位地址数据。利用这个地址从波形存储器罩将波形调用出来,输出相应的波形。VerilogHDL程序:moduleR—SYDFF(RB,D,CLK,Q):inputinputRB,CLK;【47:0】D;output【47:0】Q;reg【47:0】Q;always@(posedgeCLKornegedgeRB)Q<=(!RB)?O:D;Endmodule将上述程序利用QuartusII5.0仿真出来图形。20江苏大学砸士学位论五圈3548位寄存嚣仿真图从仿A结果lJr以石…从外卉|;输入的恼I)已经被存放稿FPGA划分}“水的寄存器Q、j巾。实现r481l,寄存器的功能。335地址发生器设计地址发牛器模块包含柏位累加器和帕位控制器,片·|-柑化累JJu器足个带打祟加功能的32他加I法器。它接l收ARM处理器送来的频率控制+,数据并进行寄存,它以世定的32化频牢控制7K作为步长米进行加法运饽,当其和满时,畦数器清零爿逊jr晚新运并,¨|DDS原则可知,堪过控制频率摔制字K就rⅡ以力恒地控制输…频毕;,当F卟f时钟到米时,输出寄存的频率和相位数据,对输}{{波彤的频二年和相位进行控制。改漠块输出32位的地址数赫!:,m由j设计的波形数捌存储器椿度为1024点,存储容黾有限,只能取高10位作为波J口RAM的地址。按照设¨要求,任意波形发生器的频率分辨率要达刮10mHz,输出最大捌半坚达刮15MHz,…叫考虑到FPGA本身的特陛(时』:多位的累加器,FPGA的j作速度足受到限制的),政任意波形发生嚣采州的系统时钟是40MHz,相位累_jJ|l器为32bit,这样m△矗。.=L,2”uJ得△£¨.,=931x103llz,lDmHz。小设汁选用的FPGA*#件是EP2C35F672C6,通过仿真,当直接聚州32bit累加柞㈨¨候.系统时钟最大只能达到约25Mtlz。显然是达小到改¨要求的,』新以必须改进牛¨似累加器的结构,他之达至】.史高的T作迷度。在削J≯电路世汁中为了提高I。作述2l江苏大学硕士学位论文度,流水线结构是一种常用的设计方法。累加器采用流水线结构来实现,简单而言,就是把一个位数很长的加法,拆成N个位数较短的加法,在N个时钟周期内做完,然后输出结果,N就是流水线的级数。采用流水线结构以后,由于加法器的字长变短了,对于FPGA来讲,加法器字长变短,对于提高工作频率是十分有帮助的。当然,流水线结构的使用,并不能无限制地提高电路的工作速度,这是因为,流水线结构是一种用电路规模换取工作速度的设计方法,提高工作速度的代价是电路设计的复杂化。流水线结构累加器要比普通的累加器结构复杂得多,由于累加不在一个时钟周期内完成,内部需要大量的寄存器保存中间变量。随着流水级数的提高,电路复杂程度将大大增加,当电路的复杂程度达到一定量级的时候,流水线所带来的性能改进,和电路本身由于结构复杂所带来的性能下降相抵消的时候,流水线结构就不再具有提高电路工作频率的作用了。对于不同的器件米说,采用多少级流水对性能的提升比较大要通过仿真试验才能得到一个比较肯定的值。下面是基于流水线技术的加法器与寄存器结合在一起的相位累加器设计。八位相位累加器的四级流水线设计,加法器采用5级锁存,4级加法,最前的一级实现2位数的相加,后面3级加法器实现2位数与一个进位的相加,整个加法器的速度由2位加法器决定,VerilogHDL源程序如下所示。VerilogmoduleHDL程序:acc_pipeline4j(sum,ina,clk);output[7:0]sum;input[7:0]ina;inputclk;reg[7:0]tempa,inb,sum;reg[8:0]tempc;regfirstco,secondco,thirdco;reg[1:0]firsts;,thirda,thirdb;江苏大学硕士学位论文reg[5:O]firsta,firstb,thirds;reg【3:O】seconds,seconda,secondb;always@(posedgeclk)//第0级锁存begintempa=ina;endalways@(posedgeclk)//第一级加法(第0、1位相加)及锁存begin{firstco,firsts}=tempa[1:O]+inb[1:0】;firsta--tempa[7:2];firstb=inb[7:2];endalways@(posedgeclk)//第四级加法(第6、7位相加)及锁存begintempc2{thirda[1:O]+thirdb[1:O]+thirdco,thirds};sum--tempc[7:O];inb--tempc[7:0];endendmodule23江苏大学硕士学位论文仿真结果如下gmD“kb№l口}目mDoⅫ蚺*nife%‰whtg吐一ls8“型M蚶’o}:洲卜l口l口.吐m}∞嘲矗IB{””}¨∞ot!149“l”9”邶}M2”9M泖9Ⅱo9Ⅱ”9“400oⅡ“9M{”,M一一——几1nnnlnnln叽mnnlnnnlnrnnnn1nlllnrnnln眦nnfnnnnnn『∞m∞【∞ll嘲1∞.0110:Ⅲtnm』—』__—上』—L上jL!J—5_』』—L三上UJUJL上刖罔3—6采用流水线姑蕞的累加器32何相位累加器的流水线泼训n勺仿真结粜如H3-6所不,是由4个8位加法器半联而成。其中inam为相位累加器的输入控制’,,在澄训饩接数牛频率合成器时根_【Il}所需的捌率拧制,’力¨以世定。q为裂加后的输出结粜。336波形数据存储器的设计蕊翅逍碰姑龃勤拦越誓毯丝盔砬泌琏茹越拦垃菠蕊盔适誊若澎盔盆警警醢篁翟裔i:■}一d…。tmchh…鲤tg§§§l一}:最窘嚣:::艘.翟盛b招。ml毒可—]=篡篇4基纛。㈡:““山“。…““”叫肿““…*。l1“二竺“}‘。。。。1。。。…m“小’m“1’m1’“‘i*?+!。。。:c…,一,。。。,。。“.【波形数据ROll就是存放波形数据的存储器,大多波形发生器产品都将波形数据存放在外部的RoM中,这样使得各部分结构清晰,测试、维护更加方便但由于ROM本身读取速度慢的缺点,使得整个系统性能下降,工作频率F降,为了解决以上问题,本设计使用的是用FPGA设计出ROM,在FPGA中存放波形数据,这罩又一次用到了QuartusII中的MegaWizardPlug—InManager来生成一个ROM。MegaWizardPlug—InManager的设置图如图3—7。根据设计的要求,经过七步的设置,就可以生成一个ROM的IP核。当在波形ROM中固化所需波形的一个周期的幅度值后,由地址发生器产生的地址对波形ROM寻址,依次可取出送至D/A转换及滤波后即可得到所需的模拟波形输出。计算波形数据可以有两种方法:C语言与matlab计算。这里列举一种利用C语言编程计算正弦波、方波、三角波、锯齿波等四种固化波形的一个周期的1024点的幅度数据的程序及结果。以正弦波为例:计算公式如下for(n=0;n<=N.1;n++){y:127.5+127.5母sin(n卡3.1415936535/128);产生的数据如图3.8所示。图3-8波形数据存储表25江苏大学硕士学位论五2、VerilogIIDL程序:moduleROM8(address,inclock,q1'inputoutput[7:0】address;inputf7:0】qTSUbwire0;inclock;wire【7:0Jwire【7:0]qⅧbIpmtomIpmwire0[7:0];10lllcomponent(.address(address)inclock(inclock),q(subwircO),memenab(),oulclock());defparamIpmtomcomponenlimcndeddeviceIhmily=“ACEXlK”,lpmromcomponentIpmwidth28.3ipm—rom—componentlpmx~idthad8,[pm—tomcomponentIpmaddressconlml’1REGISTERED”,lpmromcomponenttpmoutdala2”LⅢREGISTERE∥.IpmtomcomponcntIpmtile2”SlNI)AlnMIF”,Ipmronl—componenlIpmtype一“LPMROM”,endmodule凋川上述羊!l!序,将ROM表中的数据蛹…,可形成最后的被膨。下而以lF弦波为例r。32位n:弦波仍真图如F:㈨…Ti静k158ns型‰i∽.49.nⅡIⅡl"al1"”PS8“53347MSt口t:n:18Pm2蚰pⅡE锄pM埘p一4”PⅡ560P6{。9“画社——田l吐1nu铆00。(田q1u128咖哪0唧叽朋唧唧叽彻删唧咖帅舢哪0叽邢叭mm叽眦mE8㈣J!垫^!i!X!苎M!塑X!塑I图3-932位正弦波仿真囤露陲33图3-1O使用signalTapII生成的正弦波仿真目7任意波形模块设计这是一个¥11X十简币的模块。首先掣确定波形RAM的深度和’}:K,IfIf仟意波形发牛器设m巾选择的DAC的宁K是8位,仪明显波形RAMf一7K也应浚足8位:山r选扦的地址线何数为12化(即相位累加器输出的岛12忙),.,址。≯|11.为4K(4096)个单元,则改训的RAM存储卒nU心为4096×8bii=32768bits,…于本蹬if所选择的FPGA内椰RAM蛀人川配胃为59904bits,完伞可以满足32768bils的RAM空¨醴计。』衍以波形RAM设计为宁长8俯,地川线12忙。针对任意波形发牛器与竹通DDS的小M,波形RAM的设计主璎要求,RAMH订读。,j两个端口,这样IⅡ以通过曲套地址系统,力便地进行RAM内容业新,即刈RAM的写操作;波形缸度量化数据的输H{,即时RAM的读操作。结台AISIERA公·dFPGA的特一j,,选择了E112C35F672C6这个芯片内部的毅f来实现这个功能,如罔3—11所示。RAM闱3一11双口RAM示意图江苏大学硕士学位论文芯片内部的双口RAM具有读地址和写地址两组地址线,数据线也分成了读数据线和写数据线两组。这样波形RAM的设计就非常简单了,将写数据线、写地址线和单片机的数据线、地址线相连,用单片机更新RAM中的数据;将读地址线和读数据线分别与丰H位累加器的输出和DAC的数据输入相连,读数据线上即输出了波形幅度量化数据。3.3.8FPGA实现串口设计FPGA通过串口和ARM进行通信,所以在FPGA上需要实现串口模块。RS一232使用异步通讯协议。数据的传输没有时钟信号,接收端必须有某种方式,使之与接收数据同步。对于RS一232是这样处理的:1串行线缆的两端事先约定好串行传输的参数(传输速度、传输格式等)。2当没有数据传输的时候,发送端向数据线上发送”l”。3每传输一个字节之前,发送端先发送一个”0”来表示传输已经开始。这样接收端便可以知道是否有数据。4开始传输后,数据以约定的速度和格式传输,所以接收端可以与之同步。5每次传输完成一个字节之后,都在其后发送一个停止位(”i”)。系统使用串行连接的最大速度115200波特,FPGA通常运行在远高l15200Hz的时钟频率上,这就意味着需要用一个较高的时钟来分频产生尽量接近于l15200Hz的时钟信号。从1.8432MHz的时钟产生通常RS一232芯片使用1.8432MHz的时钟,这个时钟很容易产生标准的波特率,所以只需要将1.8432MHz16分频便可得到115200Hz的时钟。代码如下:reg[3:0]BaudDivCnt:always@(posedgeclk)BaudDivCnt<=BaudDiwirevCnt+1:BaudTick=(BaudDivCnt==15):所以”BaudTick”每16个时钟周期需要置位一次,从而从1.8432MHz的时钟得到115200Hz的时钟。江苏大学硕士学位论文设计目的如下,1RxDIL1.当RxD线上有数据时,接收模块负责识别RxD线上的数据irdeSerIa7●。●L7R’二7data:IiZclk-Lrerd甜a—ready-72.当收到一个字节的数据时,锁存接收到的数据到”data”总线,并使”data_ready”有效一个周期。图3-12RS232接受模块只有当”data_ready”有效时,”data”总线的数据才有效,其它的时间罩不要使用”data”总线上的数据,因为新的数据可能已经改变了其中的部分数据。异步接收机必须通过一定的机制与接收到的输入信号同步(接收端没有办法得到发送断的时钟)。这罩采用如下办法。1.为了确定新数据的到来,即检测开始位,使用几倍于波特率的采样时钟对接收到的信号进行采样。2.一旦检测到”开始位”,再将采样时钟频率降为己知的发送端的波特率。典型的过采样时钟频率为接收到的信号的波特率的16倍,系统使用8倍的采样时钟。当波特率为115200时,采样时钟为921600Hz。首先,接受到的”RxD”信号与时钟没有任何关系,所以采用两个D触发器对其进行过采样,并且使之时钟同步。reg[1:0]RxD—sync:always@(posedgeclk)if(Baud8Tick)RxD_sync<={RxD—sync[0],RxD):首先对接收到的数据进行滤波,这样可以防止毛刺信号被误认为是开始信号。reg[1:olregRxD—cnt;RxD_bit:always@(posedgeclk)if(Baud8Tick)江苏大学硕士学位论文begil3if(RxD_sync[1]&&RxD—cnt!=2’b11)RxD—cnt<=ltxD—cnt+1:elSeif(、RxD_sync[1]&&RxD—cnt!=2’bOO)RxD—cnt<=RxD—cnt一1:if(RxD—cnt==2’bOO)RxD—bit<=0:elseif(RxD—cnt==2’b11)RxD—bit<=1:end一旦检测到”开始位”,使用如下的状态机可以检测出接收到每一位数据。reg[3:O]state:always@(posedgeclk)if(Baud8Tick)case(state)4’b0000:if(’RxD—bit)state<=4’b1000://startbitfound?4’b1000:if(next_bit)state<=4’b1001://bit04’b1001:if(next—bit)state<=4’b1010://bit14’b1010:if(next—bit)state<=4’b1011://bit24’b1011:if(next—bit)state<=4’b1100://bit34’b1100:if(next—bit)state<=4’bl101://bit44’b1101:if(next—bit)state<=4’b1110://bit54’b1110:if(next—bit)state<=4’b1111://bit64’b1111:if(next—bit)state<=4’b0001://bit74’b0001:if(next—bit)state<=4’b0000://stopbitdefault:state<=4’b0000:endcasereg[2:0]bit—spacing:30江苏犬学硕士学位话z,11ways@(posedgeClk)1f(state--O)biteIspacLng<0selr(Baud81ick)hI【一spacing(2h¨一spacIng}I,w【renexLbIt(bitspaI:Ing=7),最后使用一个移位寄存嚣来存储接受到的数据。reg【7:0]RxI)data;always@(pesedgeclk)if(Baud8Tick&&nextbit&&sl。iIl】【3j)Rxl)【l,¨。I<{RxDj¨L,N驯data[71]],339FPGA设计结果报告在编潆器进行编洋时,j川-的适配器模块(Fitter)会Jm生改汁报告文什,它钍示了所编谱工程rfI使用器件资溉㈣情况。设计荇可以对编译器c"的适配模块做槲火世定,川叫还”r为编洋器指定报0,文件中脚专包含的信息。目3—13FPCA资鼎使用圈江苏大学硕士学位论文图3—13显示器件的资源使用情况,可以看到输入脚使用了10个,使用率为2%;PLL使用了1个,使用率为25%;逻辑单元使用了1197个,使用率3%;存储单元使用了65536个,使用率为13%,在EP2C35F672C6中存储单元,是一种专用化的资源,只能用于存储。3.4本章小结本章首先介绍了现场可编程门阵列FPGA,以及开发环境QuartusII5.0的优点,设计语言VerilogHDL的优点。在此犟础上介绍了FPGA的开发设计流程,然后针对本科题要求对DDS机构进行分析,完成整体结构的设计,当中又将每一个模块的设计进行了详细的描述。最后给出了设计的结果报告。验证了FPGA设讨‘的DDS模块的性能。32江苏大学硕士学位论文第四章系统硬件设计4.1系统硬件总体框图图4-1系统硬件结构图系统硬件结构如图4-1所示。图中ARM控制核心板由¥3C2440处理器、HY57V561620CTP—H2块(64MSDRAM)、K9F1208UOC(64MFlash)构成ARM9最小IIC系统外接DM9000A完成100Mbit/s网卡接口、外接RS一232接口、ZLG7290键箍接口、和LCD显示接口。ARM和FPGA采用串口通信方式将相应控制数据发送至FPGA内部寄存器,再由FPGA内部DDS模块输出相应的数字波形,经过D/A转换成模拟信号,最后由滤波器滤波后输出模拟波形。4.2控制模块设计控制系统由ARM芯片¥3C2440模块,LCD显示模块,矩阵键盘输入模块和其他辅助模块组成。4.2.1ARM芯片¥3C2440的特点¥3C2440是韩国三星公司的一款基于ARM920T内核的16/32位RISC嵌入33江苏大学硕士学位论文式微处理器,主要面向手持设备以及高性价比,低功耗的应用。运行的频率可以达到203MHz。ARM920T核由ARM9TDMI,存储管理单元(删U)和高速缓存三部分组成。其中MMU可以管理虚拟内存,高速缓存由独立的16KB地址和16KB数据高速Cache组成。ARM920T有两个协处理器:CPl4和CPl5。CPl4用于调试控制,CPl5用于存储系统控制以及测试控制。¥3C2440的资源包括:1个LCD控制器(支持STN和TFT带有触摸屏的液晶显示屏)SDRAM控制器。3个通道的UART。4个通道的DMA。·4个具有PWM功能的计时器和一个内部时钟。·8通道的10位ADC。·触摸屏接口。IIS总线接口。1个USB主机接口,1个USB设备接口。·2个SPI接口。·SD接口和MMC卡接口。·看门狗计数器。117个通用i/o口和24位外部中断源。·8通道10位AD控制器。¥3C2440集成了一个具有同历功能的RTC和具有PLL(MPLL和UPLL)的芯片时钟发生器。MPLL产生主时钟,能够使处理器工作频率最高达到203MHz。¥3C2440将系统的存储空间分为8组(Bank),每组的大小是128MB,共1GB。BankO到Bank5的开始地址是固定的,用于ROM或SRAM。Bank6和Bank7用于ROM,SRAM或SDRAM,这两个组可编程且大小相同。Bank7的开始地址是Bank6的结束地址,灵活可变。所有内存块的访问周期都可编程。¥3C2440采用Ngcs[7:0]8个通用片选信号选择这些组。¥3C2440支持从NANDFLASH启动,NANDFLASH具有容量大,比NORFlash价格低等特点。系统采用NANDFlash与SDRAM组合,可以获得非常高的性价比。¥3C2440具有三种启动方式,可以通过oM[1:0]管脚进行选择:江苏大学硕士学位论文OM[1:0]=00‘时处理器从NANDFlash启动;oM[1:o]:Ol时处理器从16位宽的ROM启动;OM[1:0]=10时处理器从32位宽的ROM启动。用户可以将引导代码和操作系统镜像存放在外部的NANDFlash中,并从NANDFlash启动。当处理器在这种启动模式下复位时,内置的NANDFlash将访问控制接口,并将代码自动加载到内部SRAM。之后,SRAM中的引导程序将操作系统镜像加载到SDRAM中,操作系统就能够在SDRAM中运行。启动完毕后,4KB的启动SRAM就可以用于其它用途。如果从其它方式启动,启动ROM就要定位于内存的起始地址空间Ox00000000,处理器直接在ROM上运行启动程序,而4KB启动SRAM被定位于内存地址的Ox40000000处。¥3C2440对于片内的各个部件采用了独立的电源供给方式:内核采用1.8V供电;存储单元采用3.3V独立供电,对于一般SDRAM可以采用3.3V,对于移动SDRAM可以采用Vdd等于1.8/2.5V:Vddq等于3.O/3.3V;I/O采用独立3.3V供电。4.2.2主控制模块主控ARM处理器是整个系统的控制核心,它主要实现频率相位设置及键盘显示控制,还要协调着其它各个模块工作。主控ARM处理器与其余模块的接口如图所示。SDRAMHY57V56l62OCTP频率控制控制面板ZLG7290ARLCD相位控制MS3C2440FPGAEP2C35F672C6波形数据面9F208回UOCKl图4-2主控模块图江苏大学硕士学位论文ARM处理器将频率控制信号,相位控制信号和波形数据发送至FPGA交由其运算产生相应波形。4.2.3键盘电路本系统采用Zl。G729012C接口芯片,ZLG7290键盘/LED驱动器是周立功公司针对仪器仪表行业的需要自行研制的一款芯片。该芯片能自动完成8位LED数码管的动态扫描和(最多)64按键检测扫描,大大减轻单片机的用于显示/键盘的工作时问和程序负担,可使集中资源用于信号的检测和控制。由于采用12C总线方式使得芯片与单片机间的通讯只用2个I/O口便可完成,节省了单片机有限的口资源。该芯片为工业级芯片,抗干扰能力强,在工业测控中已有大量应用。它可采样64个按键或传感器可检测每个按键的连击次数其基本功能如下:1、键箍去抖动处理当键被按下和放开时可能会出现电平状态反复变化称作键盘抖动若不作处理会引起按键盘命令错误所以要进行去抖动处理以读取稳定的键盘状态为准。2、双键互锁处理当有两个以上按键被同时按下时ZLG7290只采样优先级高的按键优先顺序为S1>S2>…>S64如同时按下S2和S18时采样到S2。3、连击键处理当某个按键按下时输出一次键值后如果该按键还未释放该键值连续有效就像连续压按该键~样这种功能称为连击连击次数计数器RepeatCnt可区别出单击某些功能不允许连击如开关或连击判断连击次数可以检测被按时间以防止某些功能误操作如连续按5秒经入参数设置状态。4、功能键处理功能键能实现2个以上按键同时按下来扩展按键数目或实现特殊功能如PC机上的ShiftCtr]A1t键。江苏大学硕士学位论文键盘电路原理图如下:图4-3键盘控制电路4.2.4显示电路显示模块采用AT050TN22,分辨率为640*480,部分连接图如图4-4所示:图4-4显示电路37江苏大学硕士学位论文4.2.5SDRAM连接电路使用两块HY57V561620CTP-H组成64M的SDRAM和¥3C2440连接。位氆泛e磁*∞/o,}。w々厂o’:W档嘲娩凇泓娩,娃弘,硒,一越“一以/蚴∞’0∞,C域7^谚,捞’§’7/∽Ⅷ/■☆《/E&’a∥M”硒触D∞O饼m住一’“,—o舫/硒/.”’弘蚴糊瞄瓣Ⅺ协L一^“1/。[二一硒旃O镭蚴“^叼00{0/江“H’日砧∞∞"/U屹&糍“∞麓48硒∞t3壮o*“1。/钠“r一一{3/∞{二酿L.#~《』7岛"00{:∞{4弘耀:j卜———一u{翻《3i砒《Z:硭S雠ⅢE0淄U)伽嘲蕊爱流装二釜鞫蒸!:滋蹲n∞“∞!:矾t二罅掣1/L£铆采怒S雠臣——-2呈_Ⅵ强Ⅵ渤VD0{VS鬣嘲2_j4——确e饿盘j∥然醛墨墉捌癌黼蜊X越砸臣}_卫V38∞V00‘1讫002VS3j∞V0∞0瞄j矗_崔寻‘H¥57姗∞越亨嚣≯嘲图4—5SDRAM连接图匿Ⅵ锄髓,Asc缁lⅥ磁V谨V0∞0讫9∞V0Ⅻ%涮V00。2彳蟹驻“*∞VOO,∞菪|嚣i丑籀《№64M4.2.6FLASH连接电路l磊巷’7l彩汽移{魉图4-6NANDFLASH连接图FLASH采用K9F1208UOMNANDFLASH做为系统存放程序,内核,文件系统的存储之用。和主控芯片¥3C2440的连接图如图4—6所示。38江苏大学硕士学位论文4.3模数转换电路DAB的设计从ROM中读出的波形幅度值,最终要经过D/A转换成相应的模拟阶梯波形,然后再通过低通滤波器输出。理想的DAC是一个采样保持系统,一个数码被转换为一个模拟值并在整个采样周期内保持其值,在输出瞬问从一个模拟值变化到另一个模拟值。然而DAC并不足理想的,它的输出具有有限的转换时间,存在相关码突变,这是一个短暂的输出误差,其幅度和宽度是输入编码的变化函数。本课题使用的DAC器件是AD公司的9713B100MSPS高速芯片,它有以下几个优点:速度快(100M的转换速率)、精度高(12位分辨率)、转换噪声低(SFDR1Mttz:70dbc)、功耗低;ECL/TTL电平兼容。在数据输入时序上,其锁存信号是低电平有效,即在锁存信号LATCH=0时,输入通道足透明的。锁存信号与输入数据应符合一定的时序关系才能被正确锁存。如下图所示,从图中可以看出,数据要被正确地接收,必须满足一定的数据建立时间和数据保持时问。ts—INPUTSETUPTIME图4-7AD9713输入数据时序图39江苏大学硕士学位论文图4—8AD9713芯片连接示意图幅度调节电路是利用两个双极性的放大器AD708,AD9617和AD9713组成电路来调节D/A输出波形的幅度。电路如下图所示,这是一个电流反馈的高速放大电路。它把DAC输出的电流转化成电压,通过反馈电阻RPB的DAC电流决定9617输出的幅度。RL和RFF起分流作用,限制用于i/v转换的电流,同时在9617内部提供一个输出电压幅度。通过R2的电流给9617输出端提供一个直流偏置,调节R1的阻值可以调整偏置电流的大小。整个放大电路最大的幅度是±4.096V,这里的±相对于参考电平。4.4滤波电路模块的设计在典型的DDS应用[16]中,DDS后通常接有一个低通滤波器LPF,用它来滤除一阶镜像。而实际中LPF都有一个过渡带的问题,所以为了更好的去除一阶镜像带来的杂散[17][18J,一般将DDS的输出频率限制在0"---40%fc内。滤波器的传输特性可以用工作衰减、相移、群延迟及插入衰减等参数来表征。其中,衰减特性和群延迟特性是设计滤波器时考虑的重点。通常衰减特性和群延迟特性成互斥关系。在滤波器设计时,首先根据给定的技术指标,选择某一型式的低通滤波器,查出归一化元件值,然后用所要求的截止频率和负载电阻进行标江苏大学硕士学位论文定,便得到所需的低通滤波器。1.滤波器的传输特性[19]电路中滤波器接到实际的信号源Es和负载RL之间。当信号源电压Es的频率改变时,则负载电阻RL(负载电压为EL)所吸收的功率大小将发生变化,这就显示出滤波器的频率选择性来。通常滤波器的工作衰减用分贝来表示,即州%sm㈦c招,舯巴墨4Rs咒:譬Fh于,(4-。墨≥l因此把式(4—1)写成只A=lOlog。o(1+IDJ2)(础)(4—2)式中,D称为特征函数,D是它的模数。在滤波器的设计中,有时还用到插入衰减的概念。我们定义当未接滤波器时负载所吸收的功率,与接入滤波器之后负载所吸入的功率之比为插入衰减函数。未接滤波器而把负载电阻R。直接接在信号源Es上时,负载所吸收的功率为伽(彘卜插入滤波器后,负载所吸收的功率为(4-3)P:咝R(4-4)插入衰减函数也用分贝来表示,即川o.o‰㈦c扭,比较式(4—1)与式(4-5)可得(4—5)彳=.4,+lOlog,o%等c如,41(4-6)江苏大学硕士学位论文显然,当RL等于Rs时,则A=4即工作衰减等于插入衰减,当RL不等于Rs时,则有可能得到负的插入损耗,即滤波器接入后使负载得到的功率比介入前大,这时所得到的不是损耗而是增益。称电压转移函数的相角与频率的关系为滤波器的相位特性,即咖,=ars㈦用乃表示群延迟,则d够(4-7)乃2■二-d缈(4-8)在传输单一频率信号的电子设备中,多采用相位延迟的概念。而在传输具有一定带宽信号的电子设备中,则多采用群延迟的概念。通常群延迟特性简称为时延特性。2.归一化低通原型滤波器的设计将低通原型滤波器的阻抗和频率作归一化处理,简化了滤波器的设计。阻抗归一化是以负载电阻RL为l来转换滤波器的各元件值的。当我们已知归一化元件值后,各元件要标定的实际阻抗电平可由以下公式表示:R=R+RL(4—9)L=LRL(4—10)C=C’/R(4—11)式中尺’,上,C。表示归一化元件值,其它的量表示实际元件值。频率归一化是以截止频率叹为1来转换滤波器中各电抗元件的阻抗值。即归一化频率为42江苏大学硕士学位论文Q:旦(4—12)q将频率归一化后的元件值标定为实际频率时的元件值应为C=Q咏(4—13)C=Cq(4—14)在工程计算中,查表得到的是频率和阻抗都已经归一化了的元件值,要标定成我们实际需要的截止频率和负载电阻时的元件值,应按以下综合标定公式进行计算:R=RR,(4-15)三:旦Z(4-16)%C:J|一C(4-17)唆.局C=Q%(4—18)在实际电路中,由于分布参数和寄生参数的影响,综合标定后的元件还是需要经过进一步的微调,才能达到最佳的效果。3.DDS函数发生器中的低通滤波器设计滤波器的选型主要根据DDS系统中输出波形的频谱结构和滤波器的传输特性共同决定的。FPGA内部集成了两种波形正弦波形和三角波形。其波形频谱特点不同因此需选用不同的滤波器。正弦波形的频谱分量单一,输出频率较高主要考虑的是在通带内要有一定的平坦度,在阻带内要保障足够的衰减来抑制谐波以满足输出要求。针对这些要求,采用了7阶椭圆滤波器[20]来实现对正弦波的滤波,由于DDS的输出频谱被Sa函数加权过,在滤波器的入口加了个谐振pl路,这样当输出频率比较高的时候由于谐振输入幅度会加大,以起到对所虑波形的补43江苏九学硕士学位论文偿作用。根据指标要求,正弦波信弓输出的最高频率是20、1IIzt蚓此-需要为【F弦波设计的低通滤波器的截止频率为设¨为205Mllz。具体泌波电路设计川图49所小,完成对连续的丁F弦波形进行滤波。它的频谱特。陀如图4嵋10所示。图49正弦泣滤波电路圈410椭圆滤波器的频谱特性埘r二伯波形柬院,…j。它的L皆波分壁十富,女_J聚也采川椭圆滤波器,它的陡峭度好会将一些有用的谐波分量滤除掉,托戗】r频率范[!I内H能保留基波而形成I‘弦波。并且一角波形输出频率不高,幽此针对这Ⅱ8特点设计了个具有良灯叫延特一陆的7阶的叭塞尔滤波器。它的叫延特性比巴特沃斯、肋比雷夫、椭网函数型滤波器都要好些,它的}¨位特|生史逼近J‘线性,通带边缘的陡度也要比元件江苏大学鳓士学位论t数日4t州情况l、的向斯i{!;波器奸ⅡE,具体设¨lU路圳鹌4—1性蚰l蚓4ll所小。它的频潜特2所示。通,日我们对卜一f『J波滤波,考虑把儿寒尔的戡lr频半设作二二角波在最高频半时耳x10次谐波处,既lOMIIz处。图4-117阶的见塞尔滤波嚣时412盟塞^:鹿波嚣频谱特性45本章小结本壮依次介绍了组成仪器系统硬¨的控制部分、键韶输入和钞不输…部分、D^幅度调节部分、滤波器ii|5分。r乜路蛮验结果表明,秉川以l’JJJ能-乜蹄丛小寅现j’项H刘模拟迎道的i5}¨嘤求,第五章系统软件设计系统的软fl醴计卜要包括构建嵌八式ITNIIX操作系统,键盘,叫卡,IcD驸一J程序和抖丽J哑川捌午。心川111J一主要包括|i‘l』始化程序设计,以放光成函数发生器命令的接收解释、发送、数宁训暂,完成肘I)DS系统、模拟通道的撺制程序世训,还包捂信号参数的校碓等功能设¨。软什的设计采川结构化,模块化的程序结构设计,使样序便f维护和进步的开发。51嵌入式LlNUX操作系统在嵌入武系统rf-,III十远{__的硬件环境干u软件蟹求差别根人,所以It特定的J训玑r特贾根据硬什改计柬埘软件环境进行=|=|I应的配斤,H时|_}王足为了满足心用的其体蛭求。埘J‘本系统米I兑,山j‘功能已确jE,所以需要按j!{l功能需求刊c,TIUX操作系统进行哉鲫以满足文际的硬件和软件需篮。511系统bootIoadlnux存运行前,需要个Bootl,0;vler(BIOS)术充成硬件的配胃和内棱的引导。交目kEditView锄ti扪5Ⅱan女er_soriptTookwjndow也b臼田…,翘。固q茵’‘囟1留麓。雷P…r…一t………………*…………………………)Env.0s目uLo—F16921<*(*<。Http舢//w—lab—t…………………………………………*)s3C2410BIOSV2007o>*)f*B…d+)*>*)<*I'IAIIDFIaslPl—ed…nlFl…hFI…h4:[一e5:Hritel40Rflashmhd…nt6:setIoootIo…no0:USBdounloadt1…Ud…nlselectB呲f…u0|]:onadflleF11eFiash2:H’1teHand3:LoadP……Fromr{andwlthadNandnd…F儿oe譬lonjadfile7:Set自mB呲……t…1:11nux2:…ce≈eadv5erial:CoHl204620图5—1bootload运行界面圉江苏大学硕士学位论文叉编译器选择gcc3.3.2,交叉编译环境是RedHat9.0。BootLoader运行界面如图5—1所示:Bootload的功能主要有:·通过USB下载数据·通过UART下载数据·将下载的数据写入NandFlash·加载NandFlash中的程序并运行·擦除NandFlash将下载的数据写入NOIUlash·设置引导参数·设置自动引导参数·硬件检测(SDRAM、FLASH、UART等)5.1.2系统内核内核由BootLoader引导,它是0S的核心,此外还包括一些模块,用于支持系统的外围设备模块,如USB、LCD、声卡等。本系统采用的是Linux2.6.13成熟内核,性能稳定,功能强大。按照考勤机系统的要求,我们需要内核具有如下功能:可加载模块:外围功能设备足通过模块的方式来进行工作的,所以此项必须。支持¥3C2440:它是ARM920T的核。·支持热插拔:为了支持常见的热插拔设备必须要选择此功能。·支持网络:选择TCP/IP协议栈。·支持ELF格式可执行文件:此系统使用此格式的可执行文件。支持MTD:它主要用于实现对NANDFlash的访问控制。支持文件系统:我们选择的是CompressedRomFileSystem和Yaffs2。前一个做为root文件系统,后一个做为读写文件系统用于保存本机配置信息。为了便于调试,还需要选择NFS。支持FrameBuffer:由于GUI使用Qt来实现,所以需要FrameBuffer的支持。为了支持LCD,也必须要选择此功能。·支持Sound:主要用于实现系统播放声音文件。·支持USB:主要包括¥3C2440USB控制器、USB摄像头。47江苏走学硕士学位论t套活躺辑篮茸¨墨l冀置帮助图5-2配置内植的界面L述功能·Ⅱ以通过使用…dkc、IIⅢ呲洲fiE配RI…ux内核时进行选择。内桉配1酣完成后,川以生成zlm,Lg。和棚训内模块。然厉将ZInl;lge。,;八虹mel分区,模块文件放入文件系统的1I})下即川,这样半系统引甘内核厉,可以按婪求加城指定模块米完成相心功能。513文件系统st文件系统选择使用c“tmh只读立件系统。此文件系统保存系统们动脚奉、配置foi义件、系统命令等只读义竹,这此文件小需要修改。对r需要柏读巧功能的目求和文件,町吼将它训挂接到ⅢnIsr,{I【】elCH求、lrnpH求等,它刑小.篇要保存。配霄信息保存文什系统使用varIs可读丐义件系统。此文件系统’=要H{r仪存本机的配青信息,它们需晏修改,而凡在掉电后还需要舡保存.所以使用vaIIS这样的·叮读写文什系统。江苏大学硕士学位论文5.2系统驱动程序本系统需要驱动的设备主要有IIC键盘,LCD显示屏,DM9000A。由于系统使用的是嵌入式LINUX操作系统,所以所以驱动必须以此操作系统的架构来进行编写。操作系统已经附带LCD显示驱动和DM9000A的驱动程序,所以只需按照原理图进行相关移植即可。IIC键盘的驱动按照标准的IIC协议和¥3C2440进行通信。5.3界面应用程序GUI采用Qt/Embedded2.3.7作为用户操作图形接口。所有的开发在Linux中完成,最终交叉编译后烧入终端运行。图5-3压用程序流程图应用程序流程图如图5.3所示。首先对系统进行初始化设置,接下来通过按键选择进入不同模式,若选择固化波,则进入频率和相位的数据输入状态,输入数据送到LCD显示出来,并为当前的频率/相位输出值。按下数据发送键,频率值转换成频率控制字送进FPGA,再从其输出想要的任何频率值的正弦波。若选择任意波,则通过通信接口从上位机下载任意波形数据到RAM,再从RAM读取任意波形数据送给FPGA进行处理。49江苏大学硕士学位论工第六章系统性能测试与误差分析61硬件电路安装及调试根据电路设计思路,画山电原理图,绘出J>Cg扳罔,存札局巾线的时候注意了咀f、问题:(1)数宁部分和模拟部分赴枷局上注意尽量分”,(2)数宁地和模拟地分Jr,仪亿点相连:(。{)刘jI高速信‘j线尽最不止K的下{r线。安装叫耍¨意脱家组装宽一的IU路板,榆盘儿器件是台安装正确,包把ib容类7L川的Jf负极、H。成lU蹄引脚『fJ化胃’J—m硷A电路足雨有漏焊,虚焊、越蹄或,F路等脱臻。阿先进行电源部分的曩蝼,舟_(1_,接所柏芯¨之前先爱保证电源J.作iI-常,先将焊上电源芯片,并梭陵计俯焊k#I-…器件,然肝加f乜,圈61哥装完的硬件电路曰榆盘再个电源的输出iUJli是否lI:常,当所白电源输出J州}后,彳能七旱拨其它,出¨。f乜源检荫先以后先焊接生芯片,即FPGA芯片,将FPGA芯片和其外㈣乜路焊核完以后首先检查其l作足甭lr常。接r米的■作是硬件调试。第步调电源,通过榆壹电路无谍后【!|】可加电调试.确怍江苏大孝硕士学位论五该电源输…lr负12伏及lr瓠j伏后,再¨继删试I:POA部分和洲M部分,阿先匹榆奁芯片引脚电压,特别足电源和地,然后试试是台uJr哉样序。最后检奁D/A电蹿和放人搜滤波电路。然后将编蚶的FPGA的内容F找到FPGA芯卅h插r杠片机们真器,渊试波形发7E器。“1系统各个部分都能JF常丁作完成相应功能以后,调试完成后就璀本达到了改‘l要求了。FPGAi皂掉模块采川ALTERA公州的怯^卅发扳DE2,在此J,£础r措建控制}*块删外m接【J模块包捕LCD罹小,键需输八,网IA,USB接n等。l划中LCD昂qi的为系统擀㈣。62系统性能测试根据项日所要求的指标,对改系统性能进行测试。其测试方案如F:1输出波形删试图6220M正弦坡江苏大学硕士学位论疋旧63lM三角放团6-4方波江苏大学硕士学位论‘母61{扫频测试力浊:函数发生裕依次输山诈{点波如图6—2,--,fJ波盘¨图63,力波如幽61。th^911ent公刊的54624A示波器进行删察。2频率利榭位测试删试方法:信号发‘I器产生频半ur训节的输m波形,州IIP53l{^*j』牢LI对输出信q的寅惭、输“:频牢进行,测量,向键盘输入的值为实际输入颅强1值,两者比较即可甜卅输卅精度以Il‘弦波J,j例,输…频率晌测试数据及误井蜘I衷6】所示。江苏大学硕士学位论文表6-1输出频率的测试数据及误差频率10lK20I{zHzkHz实际值9.91664ttz误差(%)0.8330.6760.5450.3330.4340.1060.0330.038O.1030.6380.022O.156O.1460.4331.00676kHz19.891kHz30kHz120kltz200kHz1000kHz2000ktlz29.90lkHz1l9.479kHz199.788kHz999.667kHz1999.228kttz9.989627MHz10.929768MHz11.997294MHz12.979607MHz13.979508MHz14.934989Mttz10MHzl1MHz12MlIZ131415MHzMHzMttz输出相位的测试数据及误差如表6—2所示。表6-2输出相位的测试数据及误差预置(度)06090120180实测值(度)O5988117184误差(%)01.62.22.52.2江苏大学硕士学位论文3.正弦波的谐波失真测试测试方法:通过键盘控制使函数发生器分别产生不同频率幅度为lV的正弦波信号,在频谱分析仪上分析读出相应的输入频率的谐波分量、非谐波分量、总谐波分量。正弦波信号的非线形失真程度,用谐波电压总有效值的平方根与基波电压有效值之比表示:。:正驻Ⅷ。%值,Vl一基波电压有效值。频率谐波失真20MHz46dB睁,)式中:卜失真度,V2、V3、V4……Vn一为各次谐波分量电压有效40MllZ6.5dB60MHz1.5dB6.3误差分析1、输入误差引起的误差由/淼=X*fc/2Ⅳ其中K为DDS输入频率控制字,N为相位累加器字长。fc为DDS时钟频率,由晶体振荡器提供,稳定度很高,可忽略fc的误差,则输出频率主要取决于频率控制字K,而K是由单片机通过软件实现算法产生的,是以二进制方式传给DDS,因相位累加器字长的限制必定产生误差,所以可以通过增DH,t<N位累加器字长减小误差,但不能完全克服。2、测量误差在测试中,被测正弦信号会不可避免地混入噪声,噪声信号叠加于正弦信号之上,使正弦波的过零点发生偏移,使频率计测量结果出现偏差。55江苏大学硕士学位论文第七章结论与展望本文完成DDS函数波形发生器的设计和实现,从理论和实际两个方面,对数字直接频率合成技术进行了研究。经过一年多的研究,完成了实验样机的制作及测试,输出波形稳定。可输出步进为10mttz,频率范围0.01Hz-'-"15Mtlz的正弦波、三角波、锯齿波、方波,以及0.01Hz,--一20KHz的任意波,频率稳定度依赖于所选用的晶振。本系统采用三星公司的¥3C2440作为本设计的主控芯片并选用了一款性价比很高的ALTERA公司的CYCI.ONE系列FPGA芯片EP2C35F672C6作为运算单元,设计用FPGA非常方便的实现了DDS系统的数字电路环节,且可现场编程进行电路的修改。设计周期短、开发费用低、风险小。通过通信接口下载任意波形数据实现波形数据更新,就可以产生所需波形输出,具有相当大的灵活性。因此,本设计具有较高的性价比。本设计完成了预定的所有功能,但由于时间仓促和本人能力有限,本设计还有许多需要完善和改进的地方。下面列出几条改进意见:1本设计采用的是LINUX操作系统,启动时间为比一般的函数发生器要长,所以应该进一步对该系统进行裁剪。使其更适合整个系统的运行。2本设计涉及到ARM控制,FPGA硬件编程,滤波、功放以及嵌入式软件编程等众多知识,尤其本人在滤波及模拟倍频方面知识的欠缺,所以设计的各项功能指标还有待完善。但是,通过实验证明了本设计的设计思想和设计方法是切实可行的。3本设计中所选用FPGA的存储容量未充分利用,可以进一步扩充波形RAM的存储深度或字长,以减小任意波形生成过程中的误差,提高任意波形发生器的精度。56江苏大学硕士学位论文致谢本课题的顺利完成与老师和同学的指导与帮助是分不开的。首先我要把最诚挚的感谢献给我的指导老师李正明教授。李教授不仅以他渊博的学识、敏锐超前的学术意识使我在学术方面受益匪浅,而且,他谦逊待人、严谨治学的作风以及对工作认真负责的态度还给我树立了做人的榜样。在过去一年多的设计工作中,李教授不仅在方案的制定方面提出了很多宝贵的意见,而且帮我解决了很多设计中所遇到的困难,使我能够顺利地完成课题。同时,还要感谢潘天红博士。在我完成设计和写作论文的过程中,在解决许多具体问题上他们给与了我热情的帮助。另外还要感谢与我同专业的刘宝森师兄他经常与我交流探讨,使我在解决很多问题中受到启发。同时,我还要感谢我实习工作单位的领导和同事,在完成学业的过程中,他们给予了我真诚地关心、支持和鼓励,在日常生活中,他们给予了我极大的帮助。我还要特别感谢我的女友,是她的鼓励和支持才使我能够顺利地完成学业。最后,感谢其他所有关心和帮助过我57参考文献【1]朱立锋.传统的和基于DDS的AWG之间的区别.国外电子测量技术,1996,(1)-12—17【2】乔红.一种通用数字中频正交扩频调制器的实现.电讯技术,2003,V01.43,No.5:56.67【3】靳学明,谭剑美.基于DDS的通用雷达波形产生器的实现和性能.雷达科学与技术,2004,Vr01.2,No.3:124。13l【4】冯小平.基于DDS技术的雷达波形发生器的研究.西安电子科技大学硕士论文,2004:35.37【5】王征.遥控遥测数字调制解调的软件化设计与实现.西安电子科技大学硕士论文,2001:42.43[6]张成伟.宽带高速新型ECM干扰源.电子对抗技术,2002,V01.17,No.6-71-82【7】王群.复杂雷达信号波形设计与仿真.西安电子科技大学硕士论文,2004:22—24【8】袁振东.一种高效率智能电子实验仪的设计与实现.电气电子教学学报,2000,(1):55.62【9】JiereyJ,RadarCM,RadarConM,GoldB.Adigitalfrequencysynthesizer.IEEETransAudioEltroacount,1971,auguSt1971:48-57【10】迟忠君,徐云,常飞.频率合成技术发展概述【J】.现代科学仪器,2006,(3):2l-24,28【11】GraveyJF,andBubitchD.AnExactAnalysisofNumberControlledOscillatorBasedonSynthesizer.Proceedingsof44thAnnualFrquencyControlSymposium,1990:511-521【12】Altera【13】IEEECorporation.CycloneDeviceHandbook,1999:307-345l149.1.(JTAG)Boundary--scanTestinginAlteraDevices,1998:39【14】任艳颖,王彬.IC设计基础.西安电子科技大学出版社,2003:33—49【15】夏宇闻.Verilog数字系统设计教程.北京:北京航空航天大学出版社,2003:369·374[16】J.Vankka.MethodsofMappingfromPhasetoSineAmplitudeinDirectDigitalSynthesis.IEEEProc.50thAFCS,1996:942—950【17】NicholasHT,SamueliHandkimB.AnAnalysisoftheoutputSpectrumofDirectDigitalFrequencySynthesizerinthePresenceofPhaseAccumulatorTruncation.Proceedingsof41StAnnualFrequencyControlSymposium,1987:495—502【18]NicholasHT,SamueliHandkimB.TheOptimizationofDirectDigital江苏大学硕士学位论文FrequencySynthesizerPerformanceinthePresenceofFiniteProc.42ndSTCS,1988:357—363WordLengthEffects.IEEE【19】成都电讯工程学院七系。LC滤波器和螺旋滤波器的设计。北京:人民邮电出版社,1978【20】阿瑟.B.威廉斯.电子滤波器设计手册一匕京:电子工业出版社,1986【21]Jessen,K.,Fractional—NsimplifiesMay-·August|977:98--99FrequencySynthesisHewlett—packard,BenchBriefs,【22】TEXASINSTRUMENTSInc.TMS320VC5416Manual.2005.Fixed—PointedDigitalProcessorData【23】MaximCorp.MAX3100【24】MayD.DirectColloquiumTechnicalManual,2001application[J].IEEdigitalsynthesis-aspectsofoperationandonDirectDigitalFrequencySynthesis.1991,6(9):1-7ofdirectdigitalFrequencysynthesizer【25】NCHOLASH,SAMUELIH,KMB.Theoptimizationperformanceinthepresenceoffinitewordlengtheffects[J].42ndannualfrequencyControlSymposium.1988:357—363【26】TexasInstrumentcorporated.DIGITAL—TO-ANALOGCONVERTER(DAC904).www.ti.com【27]WayneWolf.FPGA-BasedSystemDesign.PublishedbyasPearsonEducation,inc,PublishingPrentjiceHallPTR,2004:11.73[28】AlterCorporation.ConfiguringCycloneFPGA.August2005:15.19DigitalDesignwiththeVerilogHDLbyMichaelD.Ciletti.Publishing【29】AdvancedHouseofElectronicsIndustry,2004:46—165【30】AlteraCorporation.AvalonInterfaceSpecification.April2005:11.15【3l】王建校,危建国.SOPC设计基础与实践.西安电子科技大学出版社,2006:28.35【32】ARMLimited,AMBA2002:11.13InterconnectionSchemesARM.TechnicalPublications.【33】徐欣,温广翔.可编程片上系统设计技术.2003年嵌入式世界研讨会论文集.天津,2003:46.51【34】JaakkoKairus,JuhaForsten,MattiTommiska,JormaSkytta.BridgingtheGapbetweenFutureSoftwareandHardwareEngineers:ACaseStudyUsingtheNiosSofl.coreProcessor.33’d59江苏大学硕士学位论文ASEE/IEEEFrontiersinEducationConference,2003【35】MIPSBusBridge2ModuleUsersManual,MIPSTechnologies,Rev02.02,2005:7-8【36】SamsungElectronics,S3C44BOXRISCMicroprocessor【Z】,2004.10.【37】R.Schutz.ArbitraryWaveformGeneratorsProvideVersatilityandUtility【J】.EDN,1984,4(5):199-208.[38】AnalogDevices,Inc.ATechnicalTutorialonDigitalSignalSynthesis[Z].1999:5—11.【39】L.Cordesses.DirectDigitalSynthesis:aToolforPeriodicWaveGeneration.SignalProcessingMagazine,IEEE,2004,21(5):110-112.【40】TOSHIBACorporation.TOSHIBACMOSSTATICRAMTC55V16256[Z].1998.5.60江苏大学硕士学位论文攻读学位期间发表的学术论文1基于图像犁森林火灾无线远程监控系统《传感器与微系统》见刊61基于FPGA函数信号发生器的设计与实现
作者:
学位授予单位:
黄振华江苏大学
1.学位论文 于鸿洲 基于DDS技术的函数波形发生器设计 2006
直接数字频率合成(DDS)是七十年代初提出的一种新的频率合成技术,其数字结构满足了现代电子系统的许多要求,因而得到了迅速地发展。现场可编程门阵列器件(FPGA)的出现,改变了现代电子数字系统的设计方法,提出了一种全新的设计模式。本设计结合这两项技术,并利用单片机灵活的控制技术,开发了一种新的函数波形发生器。
在实现过程中,本设计选用了Altera公司的EPlC6Q240C8芯片作为产生波形数据的主芯片,充分利用了该芯片的超大集成性和快速性。在控制芯片上选用了ATMAL的AT89C51单片机作为控制芯片。本设计中,FPGA芯片的设计和与控制芯片的接口设计是一个难点,本文利用Altera的设计工具QuartusⅡ并结合verilog-HDL语言,采用硬件编程的方法很好地解决了这一问题。
本文首先介绍了函数波形发生器的研究背景和DDS的理论。然后详尽地叙述了用EPlC6Q240C8完成.DDS模块的设计过程,这是本设计的基础。接着分析了整个设计中应处理的问题,根据设计原理就功能上进行了划分,将整个仪器功能划分为控制模块、外围硬件、FPGA器件三个部分来实现。然后就这三个部分分别详细地进行了阐述。最后,通过系列实验,详细地说明了本设计的功能、性能、实现和实验结果。并结合在设计中的一些心得体会,提出了本设计中的一些不足和改进意见。
通过实验说明,本设计达到了预定的要求,并证明了采用软硬件结合,利用DDS技术实现函数波形发生器的方法是可行的。
本文链接:http://d.wanfangdata.com.cn/Thesis_Y1451603.aspx
授权使用:杭州电子科技大学(hzdzkj),授权号:06ae87e3-4c94-46f3-8c7d-9edb012e4d6a
下载时间:2011年5月6日
因篇幅问题不能全部显示,请点此查看更多更全内容