摘要:激光雷达的发射波及回波信号经光电器件转换形成的电信号具有脉宽窄,幅度低,背景噪声大等特点,对其进行低速数据采集存在数据不高等问题。同时,A/D转换器与数字信号处理器直接连接会导致数据传输不及时,影响系统可靠性、实时性。针对激光雷达回拨信号,提出基于FPGA与DSP的高速数据采集系统,利用FPGA内部的异步FIFO和DCM实现A/D转换器与DSP的高速外部存储接口(EMIF)之间的数据传输。介绍了ADC外围电路、工作时序以及DSP的EMIF的设置参数,并对异步FIFO数据读写进行仿真,结合硬件结构详细地分析设计应注意的问题。系统采样率为30 MHz,采样为12位。
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资源,提高了系统实时处理的能力。
[1]. AD9235 datasheet https://www.dzsc.com/datasheet/AD9235_122791.html.
[2]. XC2V250 datasheet https://www.dzsc.com/datasheet/XC2V250_904311.html.
[3]. TMS320C6201 datasheet https://www.dzsc.com/datasheet/TMS320C6201_891029.html.
[4]. AD8138 datasheet https://www.dzsc.com/datasheet/AD8138_1055531.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。