超声相控阵检测成像系统软件设计
2018-11-28杨艳
,, , , ,,杨艳
(1.江苏省特种设备安全监督检验研究院,南京 210036;2.南京航空航天大学 自动化学院,南京 211100)
超声相控阵技术的原理与概念源自相控阵雷达,该技术的核心在于若干压电晶片组合而成的相控阵阵列探头[1]。其通过控制探头中每个阵元被激发的时间,达到超声波的相控发射;通过各阵元回波信号的延时叠加,达到相控接收。由此,实现对超声波束的偏转和聚焦,可完成被检对象探测区的范围扫查及聚焦成像。
超声相控阵技术继承了传统超声检测的长处,具有探测范围可调、检测角度灵活、检测效率高、检测效果好、检测结果可视等突出优点[2]。
近年来,无损检测领域不断融合当下热门技术,结合人工智能、信息融合、自适应技术、相关技术等新思想,以精准客观的数据代替了人力劳动。在此趋势下,超声相控阵检测成像技术的相关性能也得到不断提升,并稳步向智能化、自动化、多功能化等方向前进[3]。
1 超声相控阵检测原理
超声相控阵检测时,为了得到预期焦点位置与不同入射角的超声波束,需要通过电子技术控制阵列换能器采用一定的时间延迟发射超声脉冲。按照该延迟规则产生的超声波束,具有人为预设的确定相位,且所有阵元在被检元件中产生的声场相干叠加。根据实际情况改变延迟时间或激励序列,可得到不同的入射角度以及焦点位置,以满足各种检测的需求[4]。图1为相控阵发射原理示意。
图1 相控阵发射原理示意
图2为相控阵接收原理示意,该过程为相控阵发射的逆过程。
图2 相控阵接收原理示意
2 软件设计
超声相控阵检测成像系统的硬件部分基于嵌入式平台,采用FPGA(现场可编程门阵列)与ARM(先进精简指令集计算机处理机)结合的架构。其中,FPGA选用Cyclone VI系列EP4CE15F17C8N,实现系统前端发射与接收电路的控制,ARM选用三星公司蜂鸟系列的S5PV210,负责控制整个系统的运行以及与FPGA通信,并下发配置参数、接收回传数据、显示检测成像结果等。
系统工作时,由用户人工设置一系列检测参数,随后ARM处理器根据相应的聚焦法则,计算激励每一个探头阵元所需要的发射延时,并通过通信总线传输给FPGA,由FPGA负责后续的脉冲激励等工作。一轮检测之后,反射回多路超声波束,由前端电路对其进行采集接收,并交由FPGA完成一系列数据处理,得到各路检测回波信号,通过通信总线将其传输至ARM处理器,进而完成更进一步的处理或成像。
软件系统的设计分为驱动层及应用层两部分,驱动层为Linux内核的重要组成部分,是底层硬件与上层软件之间的接口;应用层作为用户与系统之间的交互中介,包括人机界面的显示与回波数据的处理、成像等。
2.1 驱动程序设计
Linux内核源码中,包含了70%以上的设备驱动程序[5]。驱动程序将硬件设备的具体结构进行屏蔽,对其进行了一种抽象,使设备在系统中以文件的形式存在。虚拟文件系统(VFS)中,淡化了设备与文件的区别,将所有的硬件操作看成是对普通文件的操作。
在系统中,硬件设备与操作系统内核以设备驱动程序作为中间接口,操作系统内核与用户应用程序以系统调用作为中间接口,用户从应用程序的角度看硬件设备仅如同普通文件一般的设备文件,通过如打开(open)、读取(read)、写入(write)或是关闭(close)等系统调用,即可操作设备。
驱动程序的设计中,涉及到以下两个关键问题。
(1) 配置参数的下发
系统涉及到两种方式的扫查,其中:A扫只有一维数据,只需要通过配置参数计算一次延时;而S扫相当于进行多次不同偏转角度的A扫,在各项检测参数配置后,对应每一次A扫,需要重新计算延迟时间。
设置S扫驱动层工作流程(见图3),每次进行一个角度的扫查,由软件计算所需的控制数据,下发给FPGA并启动一线数据的检测。声束返回后,通过中断配合DMA(直接内存存取)方式将数据进行回传,结束后,重复此过程进行下一个角度的扫查,直至达到检测参数的配置。
图3 S扫驱动层工作流程
(2) 检测数据回传
结合中断方式,设计FPGA与ARM通信,编写Linux下相应的中断程序。系统中有两种中断,二者中断入口的跳转方式不同。对于中断服务程序的入口地址,由软件提供的为非向量中断,由硬件提供的为向量中断。文中使用S5PV210处理器,提供向量中断。
Linux下的设备驱动中,中断设计的基本流程为设置中断、申请中断、进入中断服务程序,并最终在结束后释放中断。
中断申请函数的返回值通常有3种情况,成功为0,中断被占用为EBUSY,而处理函数指针为空或中断号无效为INVAL。
相控阵超声检测时,经过前端处理的多路超声回波信号被送入FPGA中的M9K存储器,存储器接收到所配置深度的数据后,向ARM处理器发出中断申请,通知其读取FPGA中存储的数据。ARM处理器响应中断后,通过相应的中断处理程序进行FPGA M9K中数据的读取。为了使处理器能够尽快响应各中断,以处理更多事件,在中断处理程序中,优先清除S5PV210中的各中断相关寄存器的相应位。
在中断后,使用DMA方式进行FPGA与ARM之间的数据传输,在数据量较多的情况下,快速完成交互,不影响CPU(中央处理器)的工作。S5PV210采用PL330 DMA控制器,提供24通道,支持内存与内存、外设与内存间的相互通信,使用时需要指定通道号。该控制器基于PrimeCell技术标准,提供高性能总线接口。
图4 DMA传输的软件配置流程
由于FPGA挂载于ARM的SROM Bank5,处于S5PV210处理器的内存空间,对于DMA控制器而言,二者之间的数据交互属于内存-内存模式。在该模式下,可以通过程序主动发起DMA数据传输,而无需依赖控制器进行申请。DMA传输的软件配置流程如图4所示。
在DMA相关的驱动程序中,先进行必要的初始化工作,配置相应寄存器,包括该传输方式下的源地址寄存器、传输方向以及目标地址寄存器等[6]。在FPGA完成前端回波数据的处理并存储进M9K后,申请IRQ_DMA0中断服务程序,对DMA中断请求进行响应。中断请求由应用程序响应,之后启动DMA,读取目标地址中的数据至源地址。
2.2 应用程序设计
系统的应用层采用Qt/Embedded(嵌入式系统的图形界面开发工具)进行开发,其功能设计主要分为6个模块:主控部分、数据管理、数据通信、数据处理、界面显示以及参数设置等。模块间的相互关系如图5所示。
图5 模块间的相互关系
主控模块作为应用层的核心,对内协调各模块工作,对外接收用户信息,掌控着程序的整体运行;数据管理模块主要进行成像或配置数据的存储;界面显示为人机交互的部分,内含窗口以及各功能部件,通过Qt提供的事件与信号/槽机制和其他模块进行交互;参数设置模块根据用户配置进行发射延时量的计算;数据通信模块与驱动层沟通,提供数据读写接口;数据处理模块负责对前端回波数据进行成像显示前所需要采取的一系列操作。
应用程序设计的关键在于成像显示部分,对于检测系统的S扫成像,涉及以下问题。
(1) 坐标变换
S扫在极坐标系中按角度增量进行扫查,而显示界面则以直角坐标系绘制图形,两者之间需要软件处理来进行相应转换。通过数字扫描变换(DSC)进行坐标变换,其流程如图6所示。
成像时,获取显示器像素在平面D中的坐标(xD,yD),将其在平面S中投影并获得(xS,yS),对照极坐标系,找出该点在平面P中的位置,通过平面P中的数据计算其像素,此数值即为最终显示的像素。
设(m,n)为待显示像素,该像素在D、S、P平面的坐标分别为(x,y)、(u,v)、(R,θ),则三者之间的关系如式(1)所示。其中,Δx,Δy为x轴及y轴在显示平面中各自方向的数字量化单位长度。
(1)
图6 数字扫描变换流程
(2) 插值处理
对于最终成像的点,坐标变换之后,也许并不在S扫的原始扫描线上,也不在各采样点所处的深度,从而需要进行插值处理,以避免显示结果与实际存在过多偏差。采用双线性插值的方法得到所显示点对应的像素值,其原理如图7所示,通过距离该点最近的4个点来进行计算。
图7 双线性插值原理示意
设P为极坐标系中对应于显示平面(xD,yD)的点,Pi,j、Pi,j+1、Pi+1,j、Pi+1,j+1是原始数据点中与该点最近的4个坐标点。则P的像素值如式(2)所示
(2)
式中:Δθ为S扫的角度步进;Δθ′为P与Pi,j间的夹角;ΔR为一线扫描中两相邻点之间的距离;ΔR′为梯度距离。
将极坐标进行数字量化处理,则对于该坐标系中的点(R,θ)有
(3)
式中:i′与j′不一定为整数;I为扫描线数。
令int()代表取整,并设i=int(i′),j=int(j′),i′=i+di,j′=j+dj,则式(2)可转化为
Pi,j=(1-di)(1-dj)Pi,j+dj·(1-di)Pi,j+1+
di·(1-dj)Pi+1,j+di·djPi+1,j+1
(4)
(3) 色彩映射
数字图像有多种色彩显示方式,其中最简单的即为二值图像,以0和1分别表示黑白两色。该类显示只有两种颜色,难以分辨图像细节,成像效果较差。灰度图像在黑白之间增加了许多亮度级别,以0和255对应黑白两色,并在其中通过254个数值扩展了渐变的灰度。但此显示方法的色彩区分度不高,不适于进行超声成像。
采用彩色图像对S扫结果进行显示,将回波信号的幅值映射为红绿蓝(RGB)三色分量,以颜色来区分幅值大小,在相应缺陷处得到较为明显直观的成像。在Qt中建立颜色表,通过向量容器进行色值的存储。
设置256种颜色,以0~255分别表示。幅值代表颜色,其由小至大变化表示颜色的渐变。相应色表通过数组color[256]进行存储。将插值处理后的像素幅值进行色彩映射,设像素插值的幅值及最大幅值分别为a和amax,则该像素点所对应的颜色值为
(5)
式中:└┘为向下取整。
3 试验过程
选用铝制材料的标准试块IIW-V1(见图8)进行系统测试,对距离上表面50 mm与60 mm的孔进行成像测试。
对采集到的数据进行二维成像。设置-20°~20°扫查范围,步进为1°,采集多条A扫数据以进行S扫成像。对采集到的回波数据进行坐标变换、插值及色彩映射一系列处理,得到如图9所示成像结果。对照图8,S扫呈现了试块IIW-V1在50 mm与60 mm处的两个缺陷。
图8 IIW-V1试块外观
图9 S扫成像结果
4 结语
系统基于Linux与Qt/Embedded,采用模块化思想,结合Linux的实时性与Qt的丰富资源,设计了超声相控阵检测成像系统的软件部分,包括驱动程序与应用程序。对系统进行测试,结果表明系统运行正常,显示界面的检测成像结果正确。