数字式超声波探伤仪中高速数据采集模块技术
由于超声波检测具有穿透力强,检测灵敏度高等优点,因而在航空航天、冶金造船、石油化工、铁路等领域起着广泛的作用。一般采用超声无损检测技术的超声探伤仪有模拟式和数字式之分,随着计算机技术、微电子技术及数字信号处理技术的发展,传统的模拟式超声探伤仪正逐渐被功能先进的数字式超声探伤仪所取代。
超声波的回波信号是高频信号,其中心频率最高达到20 MHz以上,常用的超声波探头中回波信号的频率一般为2.5~10 MHz,要使这样的高频信号数字化,系统就对模/数转换电路提出了很高的要求。根据Shannon采样定理和Nyquist采样准则,在理想的数据采集系统中,为了使采样信号不失真地复现输入信号,采样频率至少是输入信号最高频率的两倍。在实际使用中,为保证数据采集的准确度,应增加在每个输入信号周期内的采样次数,一般每周期采样7~lO次。有些系统对采样信号频率的要求更高。现有的模/数转换电路方案在可靠性、功耗、采样速度和精度上都存在诸多不足,不能满足某些实际情况的需要,而大规模集成电路技术的发展为设计高速、高精度、高可靠性、低功耗的超声信号采集方案提供了可能性。本文设计了一种采样速率达100 MHz的超声波采集模块,并通过FPGA对采样数据进行压缩后进行数据缓存。
1 数字式超声探伤仪原理
数字式超声探伤仪结构框图如图1所示
数字化超声探伤仪一般包括超声发射单元、超声接收单元、信号调理单元(包括放大、检波、滤波等模拟信号处理环节)、模数(A/D)转换单元、数据缓冲单元、数据处理单元、波形显示单元以及系统控制与输入/输出单元(包括通信、键盘操作、报警等)。本文主要讨论数字式超声探伤仪中高速采集的关键技术与实现方法,涉及到A/D转换单元和数据缓冲单元。
2 高速度、高精度采样硬件结构
2.1 数据采集模块的结构框图
图2给出本文数据采集模块的硬件结构框图,它由高速A/D数据转换器、FPGA、时钟电路、复位电路及电源电路组成。其中,A/D数据转换器负责对模拟信号进行采集转换;FPGA负责采集控制、数据压缩及数据缓冲。下面对A/D数据转换器及FPGA进行介绍。
2.2 AD9446简介
AD9446是一种16 b ADC,具有高达100 MSPS的采样率,同时集成有高性能采样保持器和参考电压源。同大多数高速大动态范围的ADC芯片一样,AD9446也是差分输入,这种输入方式能够很好地抑制偶次谐波和共模信号的干扰。AD9446可以工作在CMOS模式和低电压差分信号(LVD-S)模式,通过输出逻辑控制引脚进行模式设置。另外,AD9446的数字输出也是可选择的。可以为直接二进制源码或二进制补码方式。在实际电路的PCB设计中,由于AD9446是对噪声敏感的模拟器件,所以在具体PCB设计时需做到以下几个方面:A/D模拟电源单独供电,模拟地与数字地单点接地,差分输入线等长,采用精确的参考电压源等。
2.3 采集控制、数据压缩及数据缓冲的FPGA实现
FPGA主要实现整个模块的数据采集控制、数据压缩及数据缓冲等功能。文中FPGA采用Xilinx公司的Spartan3E系列(XC3S500E)。这款FPGA芯片功能强大,I/O资源丰富,能够满足很多实际场合的需要。下面对其中数据采集控制、数据压缩及数据缓冲FIFO的设计做出介绍。
2.3.1 数据采集控制
AD9446芯片的控制时序与传统的低速A/D有所不同,它完全依靠时钟来控制其采样、转换和数据输出。AD9446通常在CLK第一个时钟的上升沿开始采样转换,并在经过延迟tpd后,开始输出数据。而数据则在第13个时钟到来时才出现在D15~D0端口上。图3是AD9446工作在CMOS模式下的时序图。
数字时钟管理单元(DCM)是FPGA内部管理、掌控时钟的专用模块,能完成分频、倍频、去抖动和相移等功能。通过FPGA的DCM可以很方便地对AD9446的时钟输入信号进行掌控。在实际电路中需要注意的是要做到DCM倍频输出的时钟信号与AD9446的时钟输入信号保持电平匹配。
下面给出调用DCM后时钟输出的VHDL语言描述:
2.3.2 数据压缩
数据压缩处理是对射频信号高速采样后进行前置处理的重要环节之一,需要在保持超声回波信号基本特征前提下对采样数据进行在线压缩,而且要求压缩后的数据与原始采样信号的包络相吻合。为此,在每次压缩过程中,只取采样所得的最大值,而舍弃其他采样值。FPGA将计算所得采样数据的压缩比、探头前沿延时计数值等数据送入相应的锁存器,然后发出时序复位命令并发射,启动探头延时计数,延时到后启动A/D采样,同时压缩比计数器开始计数,在时钟信号的控制下,每采样一次,压缩比计数器减1,并将当前采样值与前次采样值比较,如大于则保存,否则舍弃,直至压缩比计数到零后,得到一个有效的采样数据。同时压缩比计数器自动复位,重新开始计数,其工作流程如图4所示。
2.3.3 数据缓冲
为了解决前端数据采集与后端数据传输在速率上的不匹配问题,在FPGA内部设置一块数据缓冲FIFO,大小为8K×16 b,压缩后的数据直接存储到FIFO中,而微处理器对FIFO中数据的读取通过中断方式完成。数据缓冲FIFO通过core generator例化,只需要少量的读/写控制逻辑就可以使FIFO正常工作,而且FIFO的大小可以在FPGA提供的RAM位数范围内灵活设置。下面给出例化后的FIFO的VHDL语言描述:
保存在FIFO中的数据通过这些逻辑控制端口便于微处理器对其进行读取、清零等操作。
3 结语
设计的基于AD9446的数据采集模块采用FPGA实现数据采集控制、数据压缩及数据缓冲等功能,简化了硬件电路,提高了模块的可靠性和稳定性,并有利于模块的功能升级。同时采用高速高精度模/数转换器满足了数字式超声波探伤系统对数据采集精度方面的要求。另外,FP-GA对数据进行的预处理,方便了微处理器对数据的调用和后处理。