1引言
一般的雷达信号源实现主要有三种方式:第一种方式是采用DDS和MCU控制器件结合的方式;第二种是DDS、MCU控制器件和FPGA等可编程器件结合的方式:第三种是由FPGA等可编程器件实现DDS的方式。第一种方式利用专用DDS器件可以产生具有较好的杂散抑制和谐波抑制性能的雷达波形。控制简单。但不易于实现复杂波形的控制时序,灵活性差:第二种方式不仅可以产生有较好杂散抑制性能的雷达波形。还易于产生各种复杂的雷达信号,但附加了控制器和时序生成器,增大了电路的复杂性:第三种方式适用于产生特定要求的信号,但开发周期长,杂散抑制和谐波抑制指标难以达到专用DDS的水平。
随着FPGA工艺的不断发展,设计人员在FPGA上嵌入软核处理器成为可能,即所谓的SoPC(SystemonaProgrammableChip)解决方案,它是指在FPGA内部嵌入包括CPU在内的各种IP,组成一个完整系统.在单片FPGA内部实现一个完整系统功能。本文采用Altera公司提供的SoPCBuilder工具将NiosIICPU软核嵌入到CycloneII系列FPGA内部以控制高性能DDS器件AD9858,并采用该片FPGA产生其他控制时序。这样既充分利用了专用DDS的良好特性和完备功能,同时又大大减少处理器外围扩展元件数目,提高系统集成度,降低外围电路布局走线的复杂度,提高系统的抗干扰能力,便于今后升级扩展。
2器件简介
2.1CycloneⅡ系列FPGA及NiosⅡ简介
NiosII是Altera公司推出的第二代IP软核处理器,具有超过200DMIP的性能,并与其他IP核构成SOPC系统的主要部分。用户可以通过自定义逻辑的方法在SoPC设计中添加自己开发的IP核,充分体现了SoPC设计灵活和高效的优越性。NiosII系列嵌入式处理器包括三种CPU内核:高性能内核(NiosII/f,快速)、低成本内核(NiosII/e,经济)和性价比均衡内核(NiosII/s,标准)。采用QuartusII设计软件集成的SoPCBuilder工具,可以在系统中轻松嵌入NiosII处理器。本系统设计采用该系列EP2C8Q208C7。
2.2AD9858简介
AD9858是ADI公司推出的直接数字频率合成器(DDS),其10-bitDAC具有高达1GS/s模拟输出,频率高达400MHz。它具有快速调频和精细调谐分辨率的特性,可快速产生单频脉冲、线性调频及相位编码信号。AD9858的杂散抑制性能和谐波抑制性能也非常突出,当输出40MHz信号时,±1MHz带宽内的数模转换SFDR为一87dBc;输出180MHz信号时。±1MHz带宽内的数/模转换SFDR为-84dBc,能满足高性能雷达低杂散、低相位噪声的要求。AD9858内部集成有电荷泵(CP)、相频检测器(PFD)和模拟混频器,可以将高速DDS和锁相环(PLL)及混频器结合使用。AD9858具有对输入时钟二分频功能,外部时钟高达2GHz。对AD9858进行配置也非常容易,只需把控制字通过并行或串行方式写入片上的控制寄存器即可。AD9858比先前的解决方案速度提高了3倍,功耗却没有增加,还具有可编程的全睡眠模式,因而适应用于无线设备以及军事系统的设计。
AD9858的优势在于其具有四套频率调谐寄存器(FTW)及四个相位调整寄存器(POW),这使得它可以方便快速产生线性调频信号以及相位编码信号,而且这四个控制寄存器的选择是由外部选择信号PS1、PS0实现的,可大大减少了子码间的转换时间。
3系统设计方案
3.1硬件结构
本系统硬件框图如图1所示。FPGA和AD9858的并行数据/地址总线相连,提供读/写信号、复位信号和PS0、PS1信号。AD9858的输入时钟由外部时钟源电路提供,采用差分电平标准。AD9858的输出首先经过放大电路,使其满足功率要求,然后再经过滤波电路。FPGA接收主机的波形选择控制信号,产生各种同步时序,并为内嵌NiosIICPU提供中断信号。NiosIICPU响应不同的中断,通过并行方式为AD9858提供各种控制字和初始化,从而产生不同的雷达波形。
其中NiosIICPU是由QuartusII设计软件集成的SoPCBuilder工具生成。用户可以通过SoPCBuilder的图形用户界面从Ahera公司提供的IP元件库中选取一些组件,如NiosII、DMA、SRAM、Flash等等,并根据实际需要设置这些IP的配置参数。用户还可以自行编写HDL代码模块作为用户自定义逻辑添加到SoPCBuilder中。由于本系统功能相对简单,所以采用CycloneII片内的嵌入式RAM构成NiosII的数据和程序存储区。对于其他功能复杂、控制程序较大的设计,应扩展片外SRAM和Flash作为NiosII的数据和程序存储区。
对AD9858的控制实质就是通过其并行数据和地址总线传送控制字,可通过在SoPCBuilder中为AD9858生成一个用户自定义逻辑接口实现。但考虑到AD9858的读写时序比较简单,也可以直接采用NiosII现有IP元件库里的PIO来生成所需要的读写时序。PIO(ParallelInput/Output)是SoPCBuilder中最常用的IP之一,它有输入、输出以及双向口三种类型。另外,它还支持中断检测,不过中断检测及处理只在其作为输入设备时可用。AD9858并行总线的写时序如图2所示。
需要注意的是,写使能信号(低有效)的最小周期为9ns,为低电平的时间最少是3ns,为高电平的时间最少是6ns,而地址和数据信号的建立时间分别为3ns和3.5ns。图3为用嵌入式逻辑分析仪SignalTapII采样的一段用PIO生成的AD9858并行总线写时序。完全满足设计要求。
最终生成的NiosII系统如图4所示。其中,jtag_uart_0是为了调试时便于NiosII和主机通信而编写的,也可以省去。外部中断EX_IRQ0和EX_IRQ1也是用PIO实现。
DDS输出信号的质量取决于为AD9858提供工作时钟的外部时钟源,本系统采用40MHz高性能晶体振荡器,然后通过PLL倍频电路获得240MHz参考时钟。同时将时钟转换成符合AD9858要求的差分信号,以降低共模干扰。输出信号的滤波器设计好坏也直接影响到最终输出信号的质量。若采用单一的带通滤波器抑制DDS输出杂散,对频率合成器带内杂散性能并没有提高。采用滤波器组则会带来电路复杂、增大体积以及延长频率切换时间等问题。目前,一般是通过DDS输出驱动倍频器链,达到提高输出频谱和拓展频谱带宽的要求,但同时也会导致DDS输出带内频谱纯度恶化。印制板设计要满足高速数模混合电路电磁兼容方面的设计原则,以使系统性能更佳。
3.2软件设计
本系统的软件设计采用Altera公司提供的E-DA设计工具QuartusII,主要包括两个部分:首先是由OuartusII集成的SoPC++Builder工具生成NiosIICPU并进行相应的设置,用原理图和HDL语言设计。FPGA的其他时序控制程序;其次是用QuarusII集成的NiosIIIDE综合开发环境为NiosIICPU编写控制AD9858的程序,采用C/C++语言编写,分为主程序模块和中断响应程序模块。
因为本设计只采用片内RAM作为NiosII(CPU的程序和数据存储区,所以在NiosIIIDE综合开发环境下前先对项目进行一些编译设置,以使编译器编译出效率更高、占用空间更小的代码。在用户工程属性对话框内将OpTImizaTIonLevel设为“OpTI-mizesize(-Os)”,在系统库工程属性对话框内也做同样的设置,同时将Maxfiledescriptors设为4,清除“Cleanexit(flushbuffers)”和“Linkwithprofilingli-brary”前的选中框,选中“Reduceddevicedrivers”和“SmallCLibrary”。
AD9858有两种工作模式:单频模式和扫频模式。单频模式的配置比较简单,只需将控制寄存器(CFR)、频率调谐字(FTW)配置完毕,即可打开该功能。频率扫描模式需要配置的寄存器有控制寄存器(CFR)、频率调谐字(Frw)、增量频率调谐字(DFTW)、增量频率斜率控制字(DFRRW)和相位偏移字(POW)。其中,控制寄存器一共有4个字节,地址分别为0x00、0x01、0x02和0x03。在本设计中,未用到PLL功能.故与PLL有关的控制字均置为无效。0x01的Bit7为扫频使能位,将其置1打开扫频功能。上电复位以后,NiosIICPU处于等待中断状态,它根据FPGA的时序控制程序发出的中断信号执行相应的中断响应程序,通过对各种寄存器赋值可产生线性调频或相位编码信号。
关于采用AD9858产生线性调频信号还需进一步说明,其工作原理是:指定频率起始点和步进频率,频率以系统时钟的1/8或其整数倍累加,但是在没有指定上限频率的情况下,会一直扫到1/2参考时钟频率处,即奈奎斯特频率,所以需要外部定时器控制何时停止频率累加。通过FPGA的时序控制程序可以灵活地设定定时器,实现对上限频率精确控制。
NiosII的中断程序编程需要调用API函数alt_irq_register()向系统。ISR注册用户ISR。其原形为:
其中,id代表被服务的中断向量号;context是运行参数指针,作为第一个参数传给用户。ISR;isr是函数指针。指向用户。ISR入口。如果注册成功,函数返回0,并允许全局中断及被服务中断;如果不成功则返回非0值。
用户定义的用户ISR程序要符合统一的原形定义,即:
其中,入口参数与返回值要严格按标准形式定义。否则系统ISR,将不能正确对其调用。
中断程序的部分代码如下:
4结束语
系统通过一片FPGA实现内嵌CPU软核控制外围DDS,同时形成各种系统所需的同步控制时序。实验证明其调频性能和稳定精度等各项指标均达到设计要求。SoPC是目前嵌入式系统设计的一个新趋势,由于FPGA的可编程特性,可以在不改变任何外围电路的情况下灵活地对系统进行重新配置,软硬件升级。此外,还可以实现对NiosIICPU的RTOS操作系统的移植,以实现更丰富的功能和产生更为复杂的雷达波形,从而简化雷达信号源的设计,提高系统的集成度。
责任编辑:gt
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』