0 引言
随着雷达数据处理技术的快速发展,需要高速采集雷达回波信号。然而激光雷达的发射波及回波信号经光电器件转换后,形成的电信号脉宽窄,幅度低,而且背景噪声大,如采用低速的数据采集系统进行采集,存在数据精度不高等问题。同时,为避免数据传输不及时,发生数据丢失,影响系统的可靠性和实时性,需设计开发高速数据采集系统。
设计中针对前端输出约-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为高速数据采集系统结构框图。
图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。
图2 A/D转换电路
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 读FIFO数据时序
3.2 异步FIFO接口时序
AD9235与FPGA接口设计应仔细考虑ADC转换时钟、FIFO写时钟及所选中间逻辑器件的时序和延时特性,以保证正确地设置采样时钟。AD-9235的采样数据在延时7个采样周期后出现在数据线上,图4为A/D与FIFO接口时序。
图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的读逻辑关系为;。
图5为异步FIFO仿真图,输入数据宽度12位,输出数据宽度为24位。读时钟为50置MHz,写时钟为30 MHz。
图5 异步FIFO仿真图
4 设计应注意问题
若用异步FIFO中的FULL信号作为中断源,满信号位FULL有效,触发DMA开始传输,在满信号和DMA传输之间,A/D采集时钟仍然驱动A/D转换器,会覆盖之前存储的采集数据,造成数据丢失;若采用HALF-FULL信号作信号标志位,半满时候,开始DMA传输,不用中断数据采集,由于A/D写入速度低于EMIF读出速度,也不会造成数据覆盖。
FPGA内部的异步FIFO数据总线与TMS320C6201的数据总线相连,应注意数据采集与TMS320C6201访问外设间的总线冲突。应保证没有长时间占用数据总线的外部设备,否则造成采集数据丢失。
5 结论
针对雷达的回波信号,设计基于FPGA与DSP的高速数据采集系统,介绍了雷达前端信号A/D外围转换电路,利用DCM和异步FIFO实现ADC与高速DSP间的数据缓冲,以保证采集数据的有效传输。系统采样率为30 MHz,采样精度为12位,异步存储缓冲FIFO大小为6 kbits,能较好地满足高速采集要求。FIFO与DSP采用24位数据接口,读取FIFO采用DMA数据传输,较充分利用DSP资源,提高了系统实时处理的能力。