基于FPGA的高速数据采集控制模块设计

2020-02-24 20:35发布

在雷达、通信、气象、军事监控及环境监测等领域,现场信号具有重要的作用。这些信号的主要特点是:实时性强、数据速率高、数据量大、处理复杂。为能够完整、准确地捕获到各种信号并及时进行处理,需要临测系统能够具备任意长度连续采集和存储的功能,且具有较高的数据传输率。考虑到FPGA拥有丰富的可编程I/O引脚、时钟频率高、时序控制精确、运行速度快、编程配置灵活等特点,采用其作为核心控制模块。因为光纤通信使用简单的点到点互连,具有传输损耗低、传输频带宽、速率高和抗电磁干扰等优点,在增加可靠性的同时降低了电缆连接的复杂程度,所以采用光纤作为信号传输媒介。这里设计的数据采集控制模块能够对8通道模拟信号进行两种不同频率的采集,采集时间的长短町以进行控制,并对数据进行了编帧,编解码处理,利用光纤进行数据传输。模块结构设计方案
8通道的模拟信号经过信号调理、A/D模数转换电路后进入FPGA。上位机发送的控制帧经光收发模块、串并转换器后进入FPGA,作为采集数据的帧头部分,该帧中有1 Byte决定了采样的频率。上位机向FPGA发送采样控制信号:采样导前信号以及采样时间长度信号。在FPGA中将8通道采集的数据以两通道为一组分成4份分别与帧头打包组帧,存入双口RAM,编码处理后经过并串转换器、光收发模块发送出去。模块结构设计框图如图1所示。

硬件设计
该数据采集控制模块主要由3部分组成,分别为模拟信号处理部分、逻辑控制部分和光纤通信部分。
采用AD8036实现对模拟信号的调理,将其控制在ADC转换的电压范围内。该芯片为单位增益稳定型箝位放大器,具有异常快速且精确的脉冲响应特性,是快速及高分辨率ADC的理想驱动器及缓冲器。ADC选用AD10242,它是一种高速度、高性能、低功耗的双通道模数转换器。40M Hz采样速率,12位分辨率,片内带有跟踪/保护放大器(T/H)、基准电源和输出缓冲器。片内两个通道完全独立,均有各自的泽码和模拟输入,采用激光修正增益和偏移匹配,可保证两个通道之间的串扰<80 dB。ADC的输出为TTL电平,经过电平转换器件SN74LVCC3245A转换为LVT TL电平后送至FPGA。
FPGA采用Xilinx公司Spartan-3E系列的XC3S1200E,它有120万系统门、136 kB分布式RAM、504 kB块RAM、8个数字时钟管理模块(Digital ClockManager,DCM)、最大可用I/O数为304。其内部资源以及管脚数量能够满足本模块的设计需要。本模块用两种方式配置FPGA,在调试中使用JTAG口配置,在最终产品中使用PROM配置,选用XCF04S芯片。MXP-123MD-F是HC Genuine公司生产的一种支持热插拔的高速小型光收发模块,用于光电转换,其信号传输率为622 Mbit·s-1,输入输出电平为差分LVPECL电平。在光纤数据接收端通过MAX9376将信号转换为LVDS电平后再通过串并转换器SN65LV1224B送至FPGA。FPGA将采集数据输出给并串转换器SN65LV1023A后经过MAX9376转换为LVPECL电平再通过光纤发送出去。软件设计
FPGA编程软件为Xilinx公司的ISE,分别采用原理图方式和VHDL硬件编程语言编写,顶级文件为原理图方式。
时钟的管理与控制采用DCM模块实现。DCM的功能包括消除时钟的延时、频率的合成、时钟相位的调整等;并能映射到PCB上,用于同步外部芯片,将芯片内、外的时钟控制一体化。在模块设计中,DCM将晶振提供的40 MHz时钟信号,经频率合成为12 MHz、60 MHz时钟进行逻辑处理;并将时钟映射在PCB上用于同步并串转换器。
数据的缓存使用双口RAM,利用FPGA内部的逻辑资源实现。其中大容量的缓存使用块RAM,使用它们可以达到较高的读写速度,同时不会占用逻辑资源。小容量的缓存使用分布式RAM。8B/10B编码技术具有很好的直流平衡特性,具有一定的抗干扰和检错能力,适用于高速串行光纤传输系统。它将8 bit的基带数据按照3B/4B和5B/6B两个编码映射成10 bit的数据进行发送,防止在基带数据中有过多的0码流或1码流,保证输出码流的直流平衡。该技术能够有效地检测错误;提供有效的比特变化密度用于时钟恢复;可以抵抗较差传输信道的干扰;实现相对简单,以廉价的方式制造可靠的收发器。

FPGA的逻辑框图如图2所示。输入数据包括8组12位的A/D数字信号;串并转换器的输出恢复时钟及10位并行数据;上位机发送的采样导前信号(DQ)以及采样时间长度信号(ES)。FPGA的输出数据包括4路并串转换器的参考输入时钟及4组10位的并行信号。

为提高信道利用率,每两组A/D数据组合在一起。如图3所示,24 bit数据以20 MHz速率缓存后再通过60 MHz的计数器分为3 Byte。
FPGA收到的10位并行数据,经过10B/8B解码、数据判断、帧提取后得到12 MHz速率的数据帧。根据系统通信协议,取出数据帧的一部分缓存入双口RAM作为采集数据的帧头。数据帧第2个Byte的第3位确定采样频率,当其为1时采样频率为20 MHz,当其为0时采样频率为2MHz。FP GA接收到上位机发送的采样导前信号后将帧头以60 MHz速率缓存,当采样时间长度信号到来后按照所需的采样频率开始进行采样,同样以60 MHz速率缓存。然后将帧头和采集数据经过组帧、8B/10B编码后发送出去。

图4为经光纤收到的数据在解码后的处理结果。其中clk12为12 MHz的时钟;dina为解码后的数据帧;st与数据帧的第1个Byte对齐,方便后续编程工作的进行。由于数据帧的第2个Byte AE的第3位为1,所以采样频率为20 MHz。

5为采样数据处理结果。其中es为采样时间长度信号;clk为40 MHz的时钟;d为40 MHz采样数据;clk60为60 MHz时钟;dz为d经20 MHz采样,转换为3个Byte后的数据。例如示例中d为A6F56E,287E11,E9AA14,41F19C,CF9D0D,448E4F等,dz取其中的隔项,如:A6F56E,E9AA14,CF、9DOD等,将每项转换为3 Byte,如A6,F5,6E,E9,AA,14,CF,9D,0D等。
结束语
文中所设计的高速数据采集控制模块以FPGA为核心,配以信号调理、模数转换、光收发模块等电路,实现了高速数据采集和光纤传输。该模块具有精度高,处理速度快,实时性好等特点,已经成功应用于某项目中,经试验验证,完全满足系统对信号采集和处理的实际要求。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。