1 引言
超声技术是无损检测的一种重要方法,很多数字探伤仪以单片机(MCU)为核心,单片机固有的性能瓶颈制约了仪器的性能指标和功能扩展,存在存储体积太小、实时性低等缺点。
嵌入式系统是以应用为中心,以计算机技术为基础,硬件和软件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统。
基于ARM的处理器具有良好的性能并在嵌入式系统中得到了广泛的应用。在超高速数据采集方面, FPGA (Field Programmable Gate Array现场可编程门阵列) 有着单片机和DSP 所无法比拟的优势。
FPGA 时钟频率高, 内部时延小,全部控制逻辑由硬件资源完成, 速度快, 效率高,提供了强大的信号处理能力,用于超声信号高速滤波和压缩。
基于ARM和FPGA的嵌入式数字超声探伤系统实现高速采集超声检测信号,拥有存储大量回波图像和数据的能力,而且实现了远程监控。
2 系统硬件结构
系统的硬件结构图如图1所示,由ARM中央处理器、FPGA、超声模拟前端和一些外设接口组成。本系统采用S3C2410A是一个由三星公司生产的32位的ARM920T核的微处理器,它是专门为手提设备设计,采用哈佛总线结构,具有MMU、AMBA总线。
图1 硬件结构图
S3C2410A提供了一套完备的外围接口,有利于系统的扩展[3]。FPGA用于对超声回波信号进行处理。尽管此系统自带的存储空间是有限的(共128MB),但是我们可以通过USB接口将超声图像和数据转存到U盘。RS232用于嵌入式系统调试阶段并可以查看调试信息。
DM9000是完全综合的、成本较低的单一快速以太网控制器芯片,具有通用的处理器接口,10/100M自适应,以及4K双字节静态存取存储器。通过DM9000,探伤数据可以传输到远程的计算机上。
Linux操作系统存储在Flash上,探伤数据和图像暂存在DOC(Disk On Chip)。液晶显示器LCD(Liquid Crystal Display)已经成为现代仪表用户界面的主要发展方向,它不仅省电,而且能显示大量的信息,如各种文字、曲线等等,本项目采用320 240的256色的真彩色液晶显示器。
当系统开始运行时,探伤工人首先设置仪器参数,然后ARM向FPGA的相应寄存器下载参数,FPGA产生一个窄的脉冲来触发超声探头发射超声。
FPGA控制ADC(Analog-Digital Converter)以60MHz的速度采集回波信号,超声信号经过FPGA滤波后,再被压缩成LCD屏幕的宽度,超声回波图像和检测结果在LCD屏幕上显示。
DAC(Distance Amplitude CompensaTIon)曲线和报警闸门也用于辅助探伤。图2(a)是我们设计的超声探伤仪样品,图2(b)内部结构图。
图2 超声探伤仪
3 信号处理
FPGA主要对信号进行滤波和压缩。前端回来的回波信号含有很多干扰噪声,因此必须先经过滤波处理。采用FIR滤波器来消除噪声,由公式(1)定义,x(n) 是输入的原始信号,y(n)是处理完的信号。FIR滤波器的优点是:系统总是稳定的,所有频率的输入信号产生同样的偏移,从而消除了相位扭曲。
(1) 数据压缩是从每帧数据中提取屏幕宽度(为320)的数据用来表示这帧数据。提取算法必须确保每帧中最大的和最小的数据不能被漏掉,因此我们首先将数据分成320段,然后分别在每段中寻找最大最小值作为该段代表值。
4 软件设计
由于Linux系统具有源码开放、内核可定制裁减、实时性能好等特点,在嵌入式工业控制领域得到了广泛的应用。本设计采用最新的Linux内核(Linux2.6.16),使得系统在响应速度,驱动功能等诸多方面都远远优于传统的2.4 内核。
超声探伤系统同时要处理的任务比较多,而且实时性要求高,因此在程序中使用多线程技术。和单线程相比,多线程程序可以并行执行多个操作,事件可以在他们到达后立刻得到处理。