基于FPGA与DSP的雷达高速数据采集系统
随着雷达数据处理技术的快速发展,需要高速采集雷达回波信号。然而激光雷达的发射波及回波信号经光电器件转换后,形成的电信号脉宽窄,幅度低,而且背景噪声大,如采用低速的数据采集系统进行采集,存在数据精度不高等问题。同时,为避免数据传输不及时,发生数据丢失,影响系统的可靠性和实时性,需设计开发高速数据采集系统。
设计中针对前端输出约-25~25 mV,带宽为20 MHz的信号,采用高带宽,低噪声,高数据传输率,高分辨率数模转换芯片AD9235;利用XC2V250内部的大小为6 KB的异步FIFO实现AD9235转换器与TMS320C6201间的高速数据传输。采集系统的采样率为30 MHz,分辨率为12位,内部异步缓存FIFO为6 KB,满足高速数据采集要求。
1 系统设计
如果A/D直接与DSP的外部存储接口EMIF连接,会使DSP的负荷过重,另一方面DSP还需扩展外设,与采样输入共用一条外部总线,进行外部设备的读写,不允许数据采集始终占用外部总线。如果不能及时接收数据,上次存储的数据会被覆盖,造成数据丢失。异步FIFO能实现不同时钟域的数据传输,可将它作为A/D转换器和EMIF之间的桥梁,每写入一块数据,便通知EMIF从FIFO取走数据。基于以上分析,图1为高速数据采集系统结构框图。
FPGA内部DCM为A/D转换器和DSP提供采样时钟和外部振荡源,A/D转换器与DSP工作在不同时钟,在FPGA内部生成一个异步FIFO作为数据传输缓存。A/D转换器把采样值写入FIFO,FIFO写使能WR_EN一直有效,系统上电后,A/D转换器一直处于工作状态,每写入一块数据便向DSP发出中断信号,在中断中读取FIFO中的数据。FIFO输入数据宽度12位,输出数据宽度为24位,FIFO读时钟高于写时钟,DSP读取数据比A/D向FIFO写数据快,而且DSP内部数据处理时间较快,可保证系统高速实时采集。
2 A/D转换电路
A/D转换电路是整个系统的重要组成部分。对前端输出约-25~25 mV,带宽为20 MHz的射频信号数字化,设计采用模数转换器芯片AD9235,最大采样率40 Mb/s,12 bit数据输出,信噪比RSN=70 dB。AD9235是差分输入,单端信号输入需要A/D驱动芯片,选用低失真差分A/D驱动芯片AD8138,图2为A/D转换电路,AD9235模拟输入设置在2VPP,参考电压VREF采用内部1 V参考电压,同时还作为驱动芯片AD8138的共模电压。利用AD8138对输入信号进行放大,放大倍数RF/RG=2.49 kΩ/820 Ω≈3。因此,经过AD8138单端差分转换及放大输入信号范围为25~175 mV。
3 FPGA接口设计
3.1 时钟设计
采用30 MHz外部晶振作为整个系统的时钟源,利用XCV250内部的时钟管理器DCM,分别为AD9235、异步FIFO、TMS320C6201提供时钟源。 DCM输出CLK0的30 MHz时钟作为AD9235采样时钟和异步FIFO的写周期WR_CLK。
利用DCM数字频率合成器输出CLKFX作为TMS320C6201的时钟源。公式:DCM输出CLKFX的频率=输入时钟CLKIN的频率×(M/D),取M/D=5/3。这样DCM为TMS320C6201提供50 MHz时钟,经过4倍频,DSP系统时钟为200 MHz,外部存储EMIF时钟CLKOUT1为200 MHz。设置CE0空间控制寄存器的参数,使FIFO读时序SETUP、HOLD等于一个CLKOUT1周期,STROPE等于两个CLKOUT1周期,读时序如图3所示,读第一个数时,EMIF会自动维护最小2个时钟周期的建立时间,后续数据读取,建立时间为1个时钟周期。FIFO读时钟周期约为50 MHz,比A/D向FIFO写数据时间快,保证系统实时采集。
3.2 异步FIFO接口时序
AD9235与FPGA接口设计应仔细考虑ADC转换时钟、FIFO写时钟及所选中间逻辑器件的时序和延时特性,以保证正确地设置采样时钟。AD-9235的采样数据在延时7个采样周期后出现在数据线上,图4为A/D与FIFO接口时序。
读FIFO操作,利用EMIF外部存储器的控制信号,包含有:输出使能位和读使能以及外部空间片选信号。读写时序如图3,输出使能和外部空间片选信号低时,异步FIFO读使能RD_EN有效,当读使能位为低时,待读出的数据进行初始化,随后会跳变为高电平,异步RD_CLK端产生上升沿,此时异步FIFO中数据被读出。图1中的HALF_FULL位直接与TMS320C6201外部存储区域中断EXT-INT5触发连接,当FIFO缓存达到半满时,上升沿触发DSP外部中断,DSP启动DMA(直接数据存储)以突发方式读取FIFO数据,在时钟CLOCKOUT1下读取FIFO存储数据。EMIF与FIFO的读逻辑关系为RD_CLK=!;RD_EN=!。
图5为异步FIFO仿真图,输入数据宽度12位,输出数据宽度为24位。读时钟为50置MHz,写时钟为30 MHz。
4 设计应注意问题
若用异步FIFO中的FULL信
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)