基于SoPC的超声导波激励信号发生器设计
扫描二维码
随时随地手机看文章
在管道缺陷检测当中,超声导波检测技术与传统无损检测方法相比具有沿传播路径衰减小,传播距离远,引起的质点振动能遍及构件内部和表面的特点,因此表现出更大优势[1]。超声导波在传播过程中存在多模态和频散特性,若激励源选择不当,导波发生严重频散,会使回波信号变得极为复杂,不利于缺陷分析。根据导波频散特性曲线可知,在50 kHz~500 kHz范围内,L(0,2)模态超声导波传播速度最快最稳定,几乎不发生频散。用汉宁窗调制该频段内一定周期数的单音频信号,形成窄带脉冲作为激励源,激励出L(0,2)模态占主导的超声导波,可最大限度地避免频散带来的不利影响[2]。
目前出现了多种超声导波激励信号发生器设计方案。一是利用多功能函数发生器如HP33120A[3]实现。由于HP33120A存储长度有限,长距离检测时脉冲间会出现干扰,最高调制频率不高[4]。二是采用单片机控制DDS芯片设计,精度较高,但定制性较弱,且一般需要两片以上DDS芯片,成本昂贵。还有一种方法是用高速单片机控制D/A转换芯片直接输出信号,方便易行,然而精度较低,激励频率受到单片机频率限制,而且很难做到连续可调。为了解决上述设计方案的不足,本设计在Xilinx公司FPGA(现场可编程门阵列)上,以MicroBlaze软核处理器为控制核心,借鉴直接数字频率合成DDS(Direct Digital Frequncy Synthesis)技术,给出了一种产生L(0,2)模态超声导波激励信号源的SoPC(System on Programmable Chip)实现方法。所得激励源精度高,汉宁窗调制下的单音频正弦波周期数可调,频率连续可调。
1系统整体方案设计
本系统以Xilinx公司Spartan 3E-Starter开发板为硬件平台。此开发平台外设资源较为丰富,通过增加少量的外围设备即可实现系统设计。Spartan 3E系列FPGA是Xilinx 公司性价比最高的FPGA芯片,可较好地满足产品的高集成化与低成本化[5]。其内部MicroBlaze软核处理器采用功能强大的32位流水线RISC结构,包含32个32位的通用寄存器、2个32位特殊寄存器,可具有3/5级流水线。时钟频率高达150 MHz。以IBM CoreConnect技术为基础,提供了丰富的接口资源。其中PLB(处理器本地总线)总线提供对片上外设、外部存储器以及基于硬件描述语言编写的算法模块的访问 ,和其他外设IP核一起,完成嵌入式的SoPC开发。超声导波激励源的SoPC实现结构如图1所示。
FPGA实现所有数字电路部分。MicroBlaze软核处理器是系统的控制核心,通过LMB(本地存储器总线)访问程序存储空间BRAM,PLB总线挂载所需IP核。例化GPIO接口连接键盘,负责激励信号的频率设置。LCD1602用于当前频率值显示。自主编写的DDS IP为系统波形发生的核心,直接产生激励源波形。MDM为系统的调试模块,RS232用于和PC机通信或程序调试。使用Xilinx嵌入式开发套件EDK自带的数字时钟管理DCM(Digital Clock Manager) IP核,把50 MHz输入时钟分频,分别为DDS模块和外部高速数模转换芯片DAC902提供稳定的5 MHz和50 MHz时钟信号。程序通过JTAG下载到FPGA内部的BRAM,或者片外PROM中存储。FPGA产生的数字信号经过DAC902转换为模拟信号,再经过低通滤波器去噪,即可获得高质量的超声导波激励信号源。
2 超声导波DDS IP核设计
2.1 DDS算法原理
DDS是根据采样定理,通过查找表方法产生波形。通常为正弦波、余弦波、三角波或方波等。完整的DDS结构示意图如图2所示。在参考时钟的驱动下,N bit相位累加器对频率控制字K进行相位累加,得到的相位码对波形存储器寻址,使之输出相应的波形幅度值。将该值送给DAC和低通滤波器LPF,实现量化幅值到一个平滑信号的转换。当相位累加值大于2N时,相位累加器产生一次溢出,溢出频率就是DDS的输出频率。输出信号频率fout可表示为:
由DDS原理可知,相位累加器的位数N决定 DDS 的精度。N值越大,DDS的频率间隔?驻f就越细。但N值增加,所需ROM 容量也将成指数增加。实际上在一般系统中,D/A转换器的位数m是一定的,通常选取累加器的输出位数N=m+2,即可满足需要[6]。设计中DAC902为12 bit,取累加器为14 bit,调制脉冲最大幅值为212, 即4 096。借助 Matlab,生成由汉宁窗调制10个周期正弦波的窄带脉冲波形,如图3所示。
本设计基于DDS技术,采用Verilog HDL 硬件描述语言设计直接产生导波激励波形的DDS模块,顶层原理如图4所示。
L(0,2)模态超声导波的50 kHz~500 kHz频率是指单音频信号频率(如图3所示,10个周期, 设单音频率为f0),而非DDS输出频率fout。由Tout=10T0,得fout=f0/10。所以DDS输出fout应为5 kHz~50 kHz。系统主时钟为50 MHz,在DDS输出最高频率为50 kHz时,为实现0.3 kHz(单音频3 kHz) 步进值,10周期窄带脉冲取样点数不少于100点,以减小失真,则时钟频率必须大于4.9 MHz。将系统主时钟10分频,得到5 MHz DDS时钟频率。频率控制字取8 bit就可满足要求。
累加器模块Accu对频率控制字K累加,并将结果的低14位sum[13:0]送给下一级Reg寄存器,作为ROM地址。Accu的最高位sum[14]为判断位。在累加过程中,当相位sum[14]为1时,累加器清零,完成一次脉冲发射。然后通过一个计数器实现延时功能,使激励脉冲每隔1 ms发射一次。
ROM模块采用ISE中ROM IP核直接定制。如果在系统中添加多个ROM,每个ROM中分别载入不同周期的调制脉冲,可实现激励源的周期可调。借助Matlab,把图3窄带脉冲量化成 12 bit 的定点波形数值,形成.coe 文件并加载到ROM中。
将频率控制字K设为23时,输出频率fout等于7 kHz,对应单音频信号为70 kHz。Modelsim仿真波形如图5所示。
3系统硬件实现
3.1 外设IP核挂载
利用EDK的XPS,创建MicroBlaze硬件平台。通过Base System Builder Wizard快速添加配置,如RS232、GPIO、BRAM等。对于自主编写的DDS模块,使用Create/Import Peripheral工具,适当修改user logic 和IPIF两个自动生成文件,可将自己的逻辑模块挂接在PLB总线上,无需过多关心自定义IP与PLB总线的协议和接口逻辑。在XPS中添加自带的DCM时钟管理模块,为DDS IP和DAC提供精确稳定的时钟输入。最后为所有外设分配地址,建立端口连接。
4 软件设计
软件部分在SDK中通过C语言编写完成,主要包括初始化、GPIO口键盘值读取、LCD显示、DDS频率字输入和调节等。由于导波频率在50 kHz~500 kHz,跨度较大。为方便实际检测,设计了频率粗调和微调功能。系统键盘包括设置键(Set)、粗调键(Adjust)、微调键(Fine)、确认键(OK)以及复位键(Reset)。上电后,频率控制字K为初始值16,系统产生50 kHz默认频率激励信号。每按一次粗调键(Adjust),K值增加,分别对应70 kHz、120 kHz、170 kHz等基数频率。用微调键(Fine)以3 kHz为步进值进行细调。通过写寄存器语句DDS_IP_mWriteReg将K值赋给DDS模块,产生相应频率激励信号。程序流程如图8所示。
5 实验结果分析
系统上电后,在键盘上选择激励频率值为70 kHz,使用NI PCI-5102数字化仪的虚拟示波器对输出信号进行采集和分析。捕捉到的激励信号如图9所示。由面板参数可知,波形最高幅值1.5 V,包含10个周期单音频信号的窄带脉冲宽度约为0.142 ms。改变键盘输入,对输出信号进行FFT频谱分析,如表1所示。实验结果表明,此设计产生的激励信号精度高,波形纯净,性能良好,频率连续可调,较好地满足了设计要求。
利用SoPC技术,给出了一种新的超声导波激励信号发生器的设计方法。重点论述了导波专用DDS模块的实现过程。把系统的主要功能集成在单片FPGA内,减少了外围电路,体积小,功耗低,抗干扰能力强,易于扩展和升级,有效降低了设计成本。产生的激励信号精度高,稳定性好,频率连续可调。本设计可方便地应用到管道超声导波缺陷检测中,并为开发小型化、集成化的导波检测系统提供了可能。
参考文献
[1] 吴斌,邓菲,何存富. 超声导波无损检测中的信号处理研究进展[J].北京工业大学学报,2007,33(4):342-348.
[2] 王军阵,王建斌,王帅. 基于DS89C430的超声导波激励信号源的设计[J].电子设计工程,2010,18(10):136-138.
[3] 吴斌,王智,金山,等.用于激励超声导波的任意波形发生器[J].北京工业大学学报,2002,28(4):389-393.
[4] 金传喜,武新军,夏志敏,等.导波检测用激励源的设计与应用[J].制造业自动化,2006,28(10):79-81.
[5] 田耘,胡彬,徐文波,等.Xilinx ISE Design Suite 10.xFPGA开发指南——逻辑设计篇[M].北京:人民邮电出版社,2008:27-29.
[6] 王金明.数字系统设计与Verilog HDL(第三版)[M].北京:电子工业出版社,2009:285-286.