摘要:本文介绍了自动磁粉探伤系统的组成及裂纹识别流程,给出了系统基于DSP的裂纹图像处理与识别板卡的总体方案设计,并分别针对DSP主处理器、A/D转换模块、UART、存储空间扩展以及CPLD逻辑控制进行了方案分析和设计,进行系统调试的同时给出实验数据,并与PC软件进行效率比较。
关键词:磁粉探伤,图像处理,DSP
磁粉探伤是铁磁性材料表面及近表面探伤常用方法,自动磁粉探伤系统用计算机判断缺陷代替人眼,实现零件在线检测,降低操作者的劳动强度,提高零件检测的效率和可靠性。现有的自动磁粉探伤系统[1]的裂纹图像处理识别部分是基于PC机软件,虽然具有形式简单,通用性强等特点,但毕竟体积较大,非专用设备,因此实际系统集成有一定困难,应用现场较困难。抛开微机平台,以DSP为主处理器构成独立的图像处理系统对裂纹进行识别,由于独立系统设备体积小,应用灵活简便,且不用担心需要何种兼容的操作系统和无故死机的一系列问题,受到广泛关注。在自动磁粉探伤检测系统中,开发基于DSP的裂纹图像处理板卡对整个系统应用于实际意义重大。
1自动磁粉探伤系统
基于DSP 的裂纹自动磁粉探伤系统,采用以DSP为核心的专用板卡取代PC机,完成工件表面裂纹的采集、处理及识别,而PC机主要用于接收DSP上传的裂纹判别结果,进行数据归档。系统对微裂纹进行图像处理与识别的过程如图1所示。
图像预处理包括JPEG解码及转换为BMP文件和图像灰化,当采集到的微裂纹图像出现散焦现象时,采用基于参数辨识的Wiener滤波器进行复原处理[2]。
下面主要讨论DSP裂纹图像处理与识别板卡的设计。
2总体方案设计
基于DSP的微裂纹图像处理与识别系统需具备系统流程控制、现场图像数据采集、图像数据的处理、裂纹的识别、与PC通讯等功能。主要包括以下几个模块:存储器扩展模块、A/D转换模块、CPLD译码逻辑控制模块、UART模块、电源模块、TMS320VC5410主处理器模块、扩展接口模块、其他外围电路。总体结构框架如图3所示。
3系统硬件电路设计
硬件电路设计重点在于:主处理器及外围电路模块、图像信号采集及 A/D转换模块设计、UART模块、存储区扩展、CPLD逻辑控制模块设计。
3.1 DSP主处理器
系统采用的是TI公司的TMS320VC5410 高性能信号处理芯片,具有PGE封装形式,共有144条引脚,运算速度可达100MIPS,具有片内64K字的数据存储空间和16K字的程序存储空间。主要特点有[3]:(a)内部采用哈佛结构(b)流水线作业(c)具有专用的乘法器(d)片内自带DMA模块(e)多总线结构保证了在一个机器周期内,可以同时访问数据和程序空间。因此可以解决传统芯片的总线冲突问题,使系统的速度和效率大大提高。
C5410 DSP芯片的点源电压有3.3与1.8两种,其中3.3V供I/O接口用,1.8V主要供器件的内部,包括CPU和其他的外设逻辑。
电源一般由5V电源产生3.3V和1.8V,产生电源的芯片比较多,这些芯片又可分为线性和开关两种,本系统是在室内供电情况下工作,对功耗要求不苛刻,所以采用线性供电芯片TPS73HD318。
在本系统中,C5410 DSP的HPI(主机接口)和两个McBSP没有应用,所以对其进行了扩展,在扩展HPI时使用总线隔离芯片SN74LVTH16245进行总线驱动和电平转换。
3.2图像采集及A/D转换模块设计
1. 方案选择
视频图像采集的A/D转换方法基本上可分为2大类:自动图像采集和基于处理器的图像采集。这种方法的特点是图像数据采集不占用CPU的时间,实时性好,适合动态图像的采集,但电路较复杂、成本高。后者数据采集占用CPU的时间,对处理器的速度要求高,但电路简单、成本低、易于实现,能够满足某些图像采集系统的需要。针对本系统图像采集与转换的特点,选择后者。
AD转换器采用TI公司的T LC 5510芯片[4]。TLC 5510为5V电源、8bit、20Msps的高速并行A/D转换器,最大量程为2V。
仔细分析了TLC5510的工作原理和C5410的读写时序后, 没有将TLC5510作为C5402的扩展I/O口,而是将TLC5510通过FIFO数据缓存作为C5410 DSP的一个扩展的外部存储单元,用该单元的读选通信号(ADR)与TLC5510的CLK和OE相连,这样C5410读TLC5510时,1条读数指令完成2个操作:启动A/D转换并读取A/D转换数据。不过当前的A/D转换结果要等到第4次读该端口时才能得到。读选通信号(ADCS)是由CPLD经过一级译码得到。这种设计方案既简化了线路,又简化了数据采集的程序设计,减少了DSP参与A/D转换的时间。实验证明该设计方案性能优越——DSP在采集图像数据时只要直接读TLC5510就可以了。
3.3 UART模块设计
分析DSP应用系统扩展异步串行接口的方案,几种基本方法和优缺点如下:
(1)在DSP的并行总线上扩展UART芯片,用硬件实现异步数据传输。优点是软件实现简单,缺点是在总线上还需扩展其它设备,这样做使目标系统复杂化,增大系统体积。
(2)利用DSP的McBSP和DMA,在不扩展其它硬件的情况下,用软件实现异步数据传输格式。这种方法的优点在于硬件简单,但软件复杂,加大了CPU的负担,所以不适合通信数据量大的场合。
(3)利用DSP的McBSP同步串行接口,扩展适当的硬件,将同步数据变换为UART异步数据格式进行传输。这样,充分利用了DSP的片上资源,使硬件系统尽量简化。
综合考虑硬件连接和软件编程的方便性,系统采用第三种方案,应用美国MAXIM公司的MAX3111串行异步收发器,与DSP的McBSP口直接连接。硬件上无需任何其它外围器件,同时由于异步数据的发送和接收由MAX3111以硬件方式实现,所以软件编程需要考虑的也只是DSP与MAX3111之间的同步数据通信。这样,用最简单的硬件连接和软件编程就能实现同步到异步的串行数据格式转换。电路连接如图2所示。
3.4存储区扩展
系统采集到的图像数据超过256K字,加上程序所需的存储空间,C5410 DSP内部存储资源显然不够,必须进行外部扩展,这里采用程序和数据存储区相互独立的方法进行空间扩展[2],扩展了一片128K字的RAM和一片1M字的FLASH ROM,如图3所示。满足数据和程序存储空间的同时留有一定余地。
可扩展的数据空间为64K字,所以SMA16=0时有64K地址为0000h~FFFFh扩展到程序空间;SMA16=1时64K地址为10000h~1FFFFh扩展到数据空间;SMDCS片选信号,由CPLD逻辑控制;MOE、MWE为数据流向控制信号。
扩展1M字FLASH ROM,用分页扩展的方法,利用C5410特有的扩展计数器XPC作为页计数器,1M字空间分为16页。利用FMA16~FMA19进行高位寻址。FMCS为FLASH ROM的片选信号,由CPLD逻辑控制;MOE、MWE为数据数据流向控制。
3.5CPLD逻辑模块设计
CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)负责整个系统的逻辑控制,在C5410 DSP与外围器件之间起着上传下达的作用。根据系统逻辑功能要求,选择Altera公司EPM7128SLC84作为CPLD器件。EPM7128S LC84是MAX7000系列的高密度器件,它有128个逻辑宏单元和最大100个输入,具有在系统编程(ISP)特性,非常适合输入、输出端要求较多的逻辑复杂的控制密集型系统[5]。将EPM7128S用到微裂纹图像处理与识别系统的电路中,不仅使整个系统体积显著减小,且硬件故障率明显降低,调试工作也变得容易。
4系统运行及调试
DSP/BIOS是运行在DSP芯片上的固件,它为应用开发人员提供了软件接口及部分分析工具,使开发者能实时调试程序的性能[6]。
C5410 DSP上电后首先完成初始化工作,包括对EMIF(存储器接口模块)各控制寄存器、DMA通道控制寄存器、使能中断等初始化工作。
DSP在其中断服务子程序中完成工件表面微裂纹磁痕图像的采集、预处理、复原及识别过程。工件每旋转120ο由控制信号AD_CS开启A/D转换器,选通FIFO,数据进入缓存,启动DMA通道,DSP以DMA方式搬移采集到的图像数据块,从IFIO到RAM/FLASH中,分块进行数据处理,最后将将结果返回上位机,进行检测数据结果的归档,同时恢复现场,中断返回。经过3次(即工件旋转了360ο),工件检测完毕,继续检测下一工件。流程如图5。
图5 图像数据处理流程图
通过系统中设置的计时函数计算各程序段时间开销,对DSP和PC图像处理效率进行比较,从比较结果可以看出,基于DSP的图像处理系统效率远高于PC上软件系统。
5结束语
系统采用高性能数字信号处理芯片TMS320VC5410,集成专用裂纹图像处理与识别硬件系统,避免了PC机软件系统的效率、现场适应性问题,推动了自动磁粉探伤系统应用于实际生产,有助于市场的推广。
参考文献:
[1] 彭沛欣. 柴油机凸轮轴无损检测自动系统的研究[D]. 常州:河海大学, 2003.
[2] 潘树国,范永法,姚 俊. 磁粉探伤系统工件表面微裂纹散焦图像复原[J]. 河海大学常
州分校学报,2003,17(4):5-9.
[3] TMS320VC5410A Fixed-Point digital signal processor data manual. Texas Instruments,2001.
[4] 李 彩,王 安,刘 勇.8位高速A/D转换器TLC5510的应用[J].国外电子元器件,2003,
7(6):59-61
[5] Altera Data Book. Altera,1998.
[6] TMS320C5000 Code Composer Studio Tutorial. Texas Instruments,1999.