基于DDS和FPGA的多制式数字调制源的设计
2022-10-11
来源:好走旅游网
第15卷第2期 2011年6月 扬州职业大学学报 ournal of Yan ̄zhou Polytechnic Colle ̄ Vo1.15 No.2 Jun.201l 基于DDS和FPGA的多制式数字调制源的设计 周 晓 旭 (山西机电职业技术学院,山西长治046011) 摘要:介绍了DDS芯片AD9852和FPGA(现场可编程f1阵列)相结合的全数字方法,直接在70MHz中 频上实现多制式信号调制。通过FPGA编程实现对DDS所产生的多种不同调制信号的控制,从而实现远距 传输信息的目的。 关键词:DDS;FPGA;多制式调制 中图分类号:TN 83 文献标识码:A 文章编号:1008—3693(2011)02—0021—04 The Design of Multi-system Digital Modulation Source Based on DDS and FPGA ZH0U Xiao.XU (Shanxi Vocational College of Engineering and Electronics,Changzhi 04601 1,China) Abstract:With the development of DSP(digital signal process)and IC(integrated circuit)technology,DDS (Direct Digital Synthesizer)is applied more and more widely.This paper mainly introduces a method that can directly realize the multi-system digital modulation in the 70 MHz.through the digital combination of AD’S high-performance DDS chip—AD9852 and FPGA(Field programmable Gate Array).The long-distance trans— portation of signals will come true through FPGA programming which can control the diverse modulation signals produced by DDS AD9852. Key words:Direct Digital Synthesis(DDS);Field Programmable Gate Array(FPGA);multi—system modu— lation 近20年,通信、雷达、宇航和遥感遥测技术飞 种波形,可以实现多种数字式调制,也可以实现雷 达工作波形的快速捷变 J。所以,采用高性能的 速发展,对信号源的频率稳定度、频谱纯度、频率 范围和输出信号的频率提出了越来越高的要求。 而常见的信号发生器主要由一些世界知名的测试 DDS电路构成的直接数字频率合成器可以产生 满足各种高指标要求的雷达信号和通信信号。同 时采用现场可编程门阵列(FPGA)来控制DDS产 生各种调制信号的数字调制源信号,可以实现在 线编译,操作起来也更加简单。随着FPGA芯片 和DDS技术的更加成熟和成本的不断降低,基于 这两种技术的全数字式调制源具有更加广阔的发 展空间和市场前景。 设备公司(如HP,斯迈特等)生产,其价格昂贵, 操作繁琐,不能满足实际工程,特别是突发信号的 工程的需要。为了满足现代通信、先进雷达的高 指标要求,人们采用了一种新的频率合成技 术——直接数字频率合成(DDS)。DDS具有非 常宽的调谐范围,采用DDS数字方法可以产生多 收稿日期:2011—02—14 作者简介:周晓旭(1984一),女,山西机电职业枝术学院助教,硕士研究生。 22 扬州职业大学学报 第15卷 1 总体思路及硬件设计 1.1 总体思路 总体设计思路:调制源的硬件设计FPGA和DDS 两部分来实现。PFGA部分主要由电源、I/0口和 配置三个模块构成。配置有用于实时在线控制的 基于能灵活产生调制信号以及可在线编程的 考虑。确定采用FPGA和专用DDS器件结合的 方式来进行调制源的设计。FPGA器件采用的是 由ALTERA公司生产的Cyclone系列芯片EP1C 6T144,DDS芯片采用AD公司生产的AD9852。 JTAG和用于烧写ROM的AS。配置电路见网1。 DDS部分模块电路包含一个运算放大器和4个滤 波器(AD826),运算放大器用于放大从FPGA输 人的信号,滤波器用于控制带外抑制。 Q r_———1= TDO 3;1 4i j4 D3.3V ——1 —I c — /L ——-,—————————。 一二亘二 ) 7 O——百———————一。 8二==1 0二 GND 鱼 些 :r百——— :4 D3 3V :8 nCSO S DATA0 2 I Dn‘‘CSATAVCC VCC D3.3V 3 ]vccDcLK GND 4 I …ASD—I .8 D3 3V 7 D3.3V 6 S DCLK 5 ASⅨ §旦£ ! }l 丽面丽 —丁_- CONF DONB : S DATA0 —7 : ASDI 9 I 1 10 GND— ASHEAD 图1 FPGA的配置电路 1.2硬件设计 在代码编写过程中首先是对参数的配置。最 重要的就是锁相环的配置和控制寄存器各位状态 参数的设置。AD9852共有40个寄存器,需要配 置的锁相环在第33(21:十六进制)个字,而控制 调制源电路分为晶振、电源、FPGA和DDS芯 片AD9852四大块。晶振用于产生FPGA的工作 时钟信号。电源提供5V的电压,为外围提供3. 3V电压,内核提供1.5V电压。FPGA所产生的 控制信号送到AD9852的数据缓冲区后,还必须 通过一个更新时钟才能将数据缓冲区中的数据送 到相位累加器,成为有效数据后进行输出。 AD9852有两种更新时钟产生方式,一种由芯片 锁相环范围的控制限在第34(22:十六进制)个 字。锁相环控制限选择锁相环参考时钟增益的频 率范围,当选择内部系统时钟频率在200~300M 之间时锁相环控制限置1,选择低于200M的时钟 频率时锁相环控制限置0。当锁相环置0的时 候,锁相环开,系统时钟频率是参数时钟频率的N 倍(N的范围在4到20之间),如果锁相环置1, 锁相环关,则系统时钟频率就是参数时钟频率。 前四个字(+00~+03:十六进制)控制相位 实现BPSK/QPSK调制。+04~+0f产生控制频 率。+10—1C处于默认状态(置0),+21~+27 处于默认状态(置0),见表1。 表1各地址位参数设置 内部自动产生,另一种由外部提供。基于准确性 和灵敏度的考虑,必须使用外部I/O口更新时钟, 同时必须使参考时钟信号(REF CLK)与外部I/0 口更新时钟(UPDATE CLK)上升沿之间满足一定 的时序关系。即更新时钟的上升沿必须在参考时 钟的下降沿的0.3ns之后与下一个下降沿的1. 5ns之前之间产生,这样可以使AD9852工作在相 同的系统时钟(参考时钟乘以一定倍数)下,且它 们的系统时钟脉冲数相差不能超过1个脉冲。在 第一次传送数据之前必须先使AD9852复位,以 保证AD9852的输出相位可知。 2模块代码设计 OO O8 0O AC 0O 47 OO 3F OO FF 40 58 OO 3A A7 53 B8 B8 10 18 20 0O 00 40 OO O0 00 00 O0 00 00 OO 00 OO OO 00 0O 14 00 00 66 00 00 O2 00 代码设计分为代码的编写和上板调试。在编 写过程中采用的是Verilog HDL语言 。 考虑到器件的性能和实际的可行性,在代码 第2期 周晓旭:基于DDS和FPGA的多制式数字调制源的设计 23 编写过程中采用并行设计代码的思路。 。 这样可 用如下程序来实现时钟的二分频 以节约资源和时间,具体流程见图2。 reg clk4; reg clk2; 一reg clk8; wire clk一5m; 40M时钟信号 always@(posedge i—clk) 』 』 』 』 』 begin if(O—rst=:1’b 0) 地 数 址 据 begin 。 clk2<=!clk2; end end 图2代码编写流程 always@(posedge clk一2) begin 其次是函数的调用,由于开发平台Quartus 1I elk4<=!clk4; 具有强大的函数调用功能,所以在编写过程中很 end 多函数直接调用就可以了,只需要在调用过程中 laways@(posedge clk一4) 改变它的一些输入输出参数就可以了。如锁相环 begin 就是直接调用的库函数,只需根据需要设置输入 clk8<=!clk8; 输出参数就行。如果要得到一些与输入信号不成 end 比例或倍数的输出信号用这个方法是很方便的, 这个程序的作用是输入一个40M的时钟信 而且相比与自己编写的程序具有更好的可控性。 号,经过分频得到一个5M的调制信号。同理可 调用锁相环的程序编写如下: 以得到12M的更新时钟信号。 //术术木generate4OMHzclock木水半 水木水// 图3给出了AD9852并行端口的写入时序 pll40m pill( 图,6位地址和8位数据同时输入。下降沿把数 .inclk0(i—clk), 据连到buffer缓存区,在上升沿正式存数据。同 .cO(t—clk) 时也给出了设置和保持的最小时间。 ); //水木木术木木术 木木半术术水水术术木木// ’● —— ‘, < < ) ( D2 / 、 ( ∞ \ /一 T^ 岫 _————一T*ll—————--- r 一 ^DDRES●SEl ̄tp T潮ETO骶¥tQM^t^CT^ :I3 ̄TP,SETUP T—E T0 限¥ ̄NAL^CTrvE IT_札.怒 ow WR SKI■At.Ml^31OADRTAH0E§t“)T H0U ■E’_ⅢUM LoW TiTl■Er W曩I TO WR■|aME MLI H●^●^L■ICTwE^CT Iv ; 哪¥mml1lGu■WRHAL M嘲瑚UM¨jTE I'1■£ IGH t瑚E 图3并行端口写入时序 3调试及结果分析 编写初始化复位代码的时候就先给它一个和结果 波形相同的信号。具体操作为在本应输入低电平 在调试过程中发现,仿真的结果显示总是不 复位信号的时候输人一个高电平,然后再输入低 能得到很好的输出结果。经过仔细分析和调试发 电平信号。最后再取反,这样就能很好的实现初 现原因在于程序本身具有一定的启动时间,从而 始化复位。由于初始化复位在程序的执行过程中 导致系统不能实时的初始化复位。解决方法为在 只需要执行一次就可以了,所以能很好的得出结 24 扬州职业大学学报 begin cnt<=6’d 60: tapr第15卷 果输出和仿真结果。具体程序代码如下: module rstgen( iclk, —rst<=1’b l; OrSt end else begin ); input iclk; output O—rst; cnt<=cnt+6’d 1: trapreg[5:0]cnt; reg trap—rst; rst<=1’b 0; end end assign Oalways@(posedge i—clk) begin rst=!tmprst if(cnt==6’d 60) endmodule( 图4 2~4M FSK频率仿真波形 图5 GMSK仿真波形 经过调试和修改能正确的输出2~4M FSK, GMSK等调制信号,达到了设计的要求。调试过 程中发现带外抑制不是很好,在输出波形前加一 个深表滤波器进行了改进;由于在设计中未考虑 人机交互性,故在调试和实际运用中每改变一种 参考文献: [1]潘松.现代DSP技术[M].西安:西安电子科技大 学出版社,2003. [2] 夏宇闻.Verilog HDL数字设计与综合[M].北京: 电子工业出版社,2004. 调制方式就得重新烧入程序,实现起来就比较麻 烦。经过实践,最好的解决方式就是在外部加一 个切换开关以此来实现人机交互功能。 [3]刘凌.字信号处理的FPGA实现[M].北京:清华大 学出版社,2003. [4] 王秋生,王祁,孙圣和.直接数字合成调频信号的研 究[J].仪器仪表学报,2000(4):428—430. 由于Quartus11支持多种仿真方法,运用其波 形方式输入的方法得出结果。图4和图5给出了 部分仿真波形。 (责任编辑:吴萍江涌)