第1页共20页基于软核Nios的宽谱正弦信号发生器设计指导教师:邵舒渊参赛学生:李金晶,蔡雪君,刘杰摘要:本设计运用了基于NiosII嵌入式处理器的SOPC技术。系统以ALTERA公司的Cyclone系列FPGA为数字平台,将微处理器、总线、数字频率合成器、存储器和I/O接口等硬件设备集中在一片FPGA上,利用直接数字频率合成(DDFS)技术、数字调制技术实现所要求波形的产生,用FPGA中的ROM储存DDS所需的波形表,充分利用片上资源,提高了系统的精确度、稳定性和抗干扰性能。使用新的数字信号处理(DSP)技术,通过在Nios中软件编程解决不同的调制方式的实现和选择。系统频率实现1Hz~20MHz可调,步进达到了1Hz;完成了调幅、调频、二进制PSK、二进制ASK、二进制FSK调制和扫频输出的功能。关键词:片上可编程系统;NiosII;数字频率合成;数字调制技术AWide-bandSineWaveSignalGeneratorBasedonNiosThisdesignationusestheSOPCtechnologybasedonEmbeddedProcessorofNiosII.Thesystem,usingtheCycloneseriesFPGAasadigitalbench,connectstheMPU,BUS,DDFSCELL,MEMORYandI/OinterfaceandmakesthemallintoaFPGAchip.ItusesthetechnologiesofDDFS,DigitalModulate,andstoresthedatumoftheSinewaveintotheOnChipMemoryinordertogeneratetherequiredwave.Withfullusingofthechip’sresources,theprecision,stabilizationandinfluenceresistingweresignificantlyimproved.UsingthenewtechnologyofDSP,itcancarryoutandchoosethemodulationofdifferentmodebysoftware.Theprogrammablefrequencysynthesisisalsocarriedout.Thefrequencyoftheoutputwavecanrangefrom1Hzto20MHz,andthefrequencystepchangecanreducedto1Hz.Wealsoachievethefunctionsallinthedevelopmentsection.eg:AM,FM,2PSK,2ASK,theSinewaveof1KHzandthebinaryserialsof10Kbps.Fother,wealsoachievethefunctionof2FSKandfrequencysweep.第2页共20页Keyword:SOPC;NiosII;DDFS;digitalmodulatetechnologySOPC(SystemonaProgrammableChip片上可编程系统)是Altera公司提出来的一种灵活、高效的SOC解决方案。它将一个软核放入FPGA,占用片上资源少,成本很低;却扩展了目前世界上昀流行的软核嵌入式处理器的性能。可将处理器、存储器、I/O口等系统设计需要的功能模块集成到一个FPGA器件上,构建成一个可编程的片上系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。在可编程器件内,还具有小容量高速RAM资源和足够的可编程逻辑资源,用于实现其他的附加逻辑。正弦信号发生器以嵌入式处理器NiosII为核心,将微处理器、总线、外设、数字频率合成器、存储器和I/O接口等硬件设备集中在一片FPGA上,创建一个可编程单芯片上系统,实现了一个软件无线电开发平台,并完成五大方面的功能:z控制键盘和显示器;z根据输入的频率值,通过数据计算得到频率控制字;z实现数字频率合成器;z实现数字调制器;z实现对数模转换器的控制。这种设计方式使用数字信号处理器技术,通过软件编程实现不同调制方式的选择,充分利用了FPGA的资源,减少了CPU与外设的接口,在很大程度上提高了系统的速度、可靠性以及系统的成本。其中,片内正弦表ROM传出的数据经DAC904完成数模转换,由调制系统完成幅度控制,以及各种调制方式的实现,继而经过低通滤波器进行滤波,再经过宽带运算放大器,从而得到任意一种具有一定带负载能力的所需波形。系统总框图如下:第3页共20页图1系统总体框图自定义逻辑包括数字频率合成和数字调制IP核;数字调制部分包括正弦波产生模块和调制控制模块;其中调制控制又分为AM控制、FM控制、ASK控制、PSK控制模块等。以下我们将分别论述其产生的原理。1.各模块实现原理1.1正弦波产生模块实现原理图2正弦波产生框图相位累加器为32位累加器,输出为0~(232-1),作为正弦查询表的地址输入端。正弦表中存放一个周期的正弦波内的232个点的数据,输出0f为一正弦波,其频率由“频率控制字”进行调节,输出频率:2clkoutMffFTW=(1-1)频率控制字clkfofFTW[31..0]FACCResult[31..0]相位累加器FACCResult[31..24]正弦表查询CosWave[7..0]ALURegistersNiosII片上数据储存器自建立键盘与显模块键盘显示自定义数字频率合成和数字调制IP核AvalonBus片上程序储存器第4页共20页昀小频率分辨率:min2clkMff=(2-2)其中M为相位累加器的位数,FTW为频率步进控制字,clkf为时钟频率,输出信号频率主要取决于频率控制字FTW。当FTW增大时,outf可以不断增加,综合考虑Nyquist采样定理,昀高输出频率应小于/2outf。根据实验所得,实际工作频率应小于/3clkf。clkf的取值受D/A转换速率的限制,由于数模转换部分采用的是高速DAC904,其转换速率约为160MHz。则在昀高频率20MHz时,所产生的波形在一个周期内仍有8个点,经后级处理后效果很好,并无明显失真。8min321.6100.037252922clkMffHz×===(1-3)所以可以实现1Hz步进,当输出1Hz时,频率控制字FTW=1/fmin=26.8435465,在Nios内部浮点运算所占资源太多,所以把浮点运算改为定点运算。则当输出其他任意频率outf时Nios内部算法为:2684/10035/10000+46/10000005/10000000outoutoutoutoutFTWfffff=×+×+××+×1.2调制系统实现原理1.2.1AM硬件实现原理AMADDResult[15..0]1KHz调制波[15..8][15..0]CosROMBResult[7..0]CosWave[7..0]幅值放大CLK256KHzAM波调制波产生模块MACCResult[7..0]八位循环计数器正弦表查询0f直流叠加相乘器第5页共20页图3标准调幅产生硬件框图调制波产生模块中,在输入时钟频率为256KHz条件下,循环计数器的为数为八,则累加器为数为八,即M=8,根据公式(1-1),当clkf=256KHz,FTW=1时,outf=1KHz,且正弦表中存放的是正弦波一个周期的内256个点的数据,即输出调制波为频率为1KHz的正弦波。设8位的幅度控制字大小为Am,则经幅值放大后生成的调制频率表达式为:()cosmmftAtω=(mω=21KHzπ×)(1-4)经直流叠加,且与载波信号相乘后,得出已调波为:(1-5)变换表达式形式:0000()(cos)cos(1cos)cos(1cos)cosAMmmcmmcamcstAAttAAttAAmttωωωωωω=+=+=+幅值放大部分可进行调制度am的调节,则可得到调制度可调,载波可变的调幅波。1.2.2FM硬件实现原理00()[()]cosAMstftAtω=+第6页共20页图4调频波产生硬件框图频率调制就是载波信号的瞬时频率偏移随调制信号线性变化。根据调频波的表达式:(1-6)瞬时频率:(1-7)在幅频变换IP核的参数设计算时有:12()()22clkclkcfoutMMfffFTWtKftFTWFTWωω===+=+()(1-8)令:12clkcMfFTWω=2()2clkfMfFTWKft=(1-9)1FTW为载频频率控制字,2FTW为调制频率频率控制字,1FTW由输入载频计算得出。当昀大频偏ω∆为10K时。[15..0][7..0]FBWSwitch[31..0]CLK256KHz载波频率控制字FM波载波产生及调制模块调制波产生模块调频波10Khz调频控制字调频控制字clkf相加器FACCResult[31..0]相位累加器FACCResult[31..19]正弦表查询幅度常数[7..0]FTW[31..0]相乘器[7..0]八位循环计数器[7..0]正弦表查询[31..0]幅频变换2÷[31..0]调频控制字选择器])(cos[)(∫∞−+=tfccFMdttfKtAtSω()()cftKftωω=+第7页共20页32210K2()2268435.456160MMfclkKftFTWf×=== (1-10)调频波的瞬时频率偏移与调制信号的幅度成线性关系。因为累加器对误差有积累作用,所以为了同时达到精度与速度的要求,我们直接用其幅度去查它所对应的频偏。由于幅度累加器为8位,且正负对称。则昀小的频率控制字:2268435.456'2114127FTW==(1-11)要实现5KHz昀大频偏时,只要对fω∆进行二分频即可。这样,我们就实现了调频功能。1.2.3ASK硬件实现原理图5二进制ASK硬件框图设计中,二进制基带序列信号为m序列由八位移位寄存器产生,由于m序列一周期内的码元数大概相等(“1”比“0”只多一个),这个特征保证了在扩频系统中,用m序列作为平衡调制实现扩频是具有较高的载波抑制度,保证了在后续扩张其它功能的可能性。ASK信号由m序列和载波相乘实现,即移位寄存器输出为一随机1、0序列,当mResult(m序列输出值)为1时,幅值选择控制器输出幅值为昀大值,当mResult为0时,幅值选择控制器输出幅值为0。m序列是昀长线性移位寄存器序列,它是由带线性反馈的移位寄存器产生的ASK波mResult[7..0]幅值昀大幅值0幅值选择控制器ASK调制信号产生模块m序列产生器相乘器[15..0][7..0]载波频率控制字载波产生及调制模块FACCResult[31..0]FACCResult[31..19]正弦表查询FTW[31..0]相位累加器第8页共20页周期昀长的一种序列。一般来说,一个n级的反馈移存器可能产生的昀长周期为:21nm=−,则8位的移位寄存器能产生的昀长周期为127。能产生周期昀长的线性移位寄存器的结构由其本原多项式决定,该本原多项式应满足:(1)()fx是既约多项式,即不能再进行因式分解(2)()fx可除尽1mx+(21nm=+)(3)()fx整除不尽1qx+(qm)我们采用八级移位寄存器产生小m序列,由本原多项式84321xxxx++++可知移位寄存器的结构为:图16m序列产生框图1.2.4PSK硬件实现原理0C1C5C6C7C2C3C4C8C6S5S4S3S2S1S0S7Sm序列第9页共20页图6PSK硬件框图PSK调制信号产生模块中m序列产生器输出为一随机1、0序列,当mResult为1时,相位选择控制器输出0(对应00相位),当mResult为0时,相位选择控制器输出312(对应0180相位)。在频率累加器与正弦表查询之间添加一相位相加器,即可实现m序列输出为1时,已调波输出波形与载波波形一致,m序列输出为0时,输出波形出现0180相位的二进制PSK调制。1.3频率稳定度的实现我们采用20MHz,频