基于SoPC的超聲導(dǎo)波激勵(lì)信號(hào)發(fā)生器設(shè)計(jì)
在管道缺陷檢測(cè)當(dāng)中,超聲導(dǎo)波檢測(cè)技術(shù)與傳統(tǒng)無(wú)損檢測(cè)方法相比具有沿傳播路徑衰減小,傳播距離遠(yuǎn),引起的質(zhì)點(diǎn)振動(dòng)能遍及構(gòu)件內(nèi)部和表面的特點(diǎn),因此表現(xiàn)出更大優(yōu)勢(shì)[1]。超聲導(dǎo)波在傳播過(guò)程中存在多模態(tài)和頻散特性,若激勵(lì)源選擇不當(dāng),導(dǎo)波發(fā)生嚴(yán)重頻散,會(huì)使回波信號(hào)變得極為復(fù)雜,不利于缺陷分析。根據(jù)導(dǎo)波頻散特性曲線可知,在50 kHz~500 kHz范圍內(nèi),L(0,2)模態(tài)超聲導(dǎo)波傳播速度最快最穩(wěn)定,幾乎不發(fā)生頻散。用漢寧窗調(diào)制該頻段內(nèi)一定周期數(shù)的單音頻信號(hào),形成窄帶脈沖作為激勵(lì)源,激勵(lì)出L(0,2)模態(tài)占主導(dǎo)的超聲導(dǎo)波,可最大限度地避免頻散帶來(lái)的不利影響[2]。
目前出現(xiàn)了多種超聲導(dǎo)波激勵(lì)信號(hào)發(fā)生器設(shè)計(jì)方案。一是利用多功能函數(shù)發(fā)生器如HP33120A[3]實(shí)現(xiàn)。由于HP33120A存儲(chǔ)長(zhǎng)度有限,長(zhǎng)距離檢測(cè)時(shí)脈沖間會(huì)出現(xiàn)干擾,最高調(diào)制頻率不高[4]。二是采用單片機(jī)控制DDS芯片設(shè)計(jì),精度較高,但定制性較弱,且一般需要兩片以上DDS芯片,成本昂貴。還有一種方法是用高速單片機(jī)控制D/A轉(zhuǎn)換芯片直接輸出信號(hào),方便易行,然而精度較低,激勵(lì)頻率受到單片機(jī)頻率限制,而且很難做到連續(xù)可調(diào)。為了解決上述設(shè)計(jì)方案的不足,本設(shè)計(jì)在Xilinx公司FPGA(現(xiàn)場(chǎng)可編程門陣列)上,以MicroBlaze軟核處理器為控制核心,借鑒直接數(shù)字頻率合成DDS(Direct Digital Frequncy Synthesis)技術(shù),給出了一種產(chǎn)生L(0,2)模態(tài)超聲導(dǎo)波激勵(lì)信號(hào)源的SoPC(System on Programmable Chip)實(shí)現(xiàn)方法。所得激勵(lì)源精度高,漢寧窗調(diào)制下的單音頻正弦波周期數(shù)可調(diào),頻率連續(xù)可調(diào)。
1系統(tǒng)整體方案設(shè)計(jì)
本系統(tǒng)以Xilinx公司Spartan 3E-Starter開發(fā)板為硬件平臺(tái)。此開發(fā)平臺(tái)外設(shè)資源較為豐富,通過(guò)增加少量的外圍設(shè)備即可實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)。Spartan 3E系列FPGA是Xilinx 公司性價(jià)比最高的FPGA芯片,可較好地滿足產(chǎn)品的高集成化與低成本化[5]。其內(nèi)部MicroBlaze軟核處理器采用功能強(qiáng)大的32位流水線RISC結(jié)構(gòu),包含32個(gè)32位的通用寄存器、2個(gè)32位特殊寄存器,可具有3/5級(jí)流水線。時(shí)鐘頻率高達(dá)150 MHz。以IBM CoreConnect技術(shù)為基礎(chǔ),提供了豐富的接口資源。其中PLB(處理器本地總線)總線提供對(duì)片上外設(shè)、外部存儲(chǔ)器以及基于硬件描述語(yǔ)言編寫的算法模塊的訪問(wèn) ,和其他外設(shè)IP核一起,完成嵌入式的SoPC開發(fā)。超聲導(dǎo)波激勵(lì)源的SoPC實(shí)現(xiàn)結(jié)構(gòu)如圖1所示。
FPGA實(shí)現(xiàn)所有數(shù)字電路部分。MicroBlaze軟核處理器是系統(tǒng)的控制核心,通過(guò)LMB(本地存儲(chǔ)器總線)訪問(wèn)程序存儲(chǔ)空間BRAM,PLB總線掛載所需IP核。例化GPIO接口連接鍵盤,負(fù)責(zé)激勵(lì)信號(hào)的頻率設(shè)置。LCD1602用于當(dāng)前頻率值顯示。自主編寫的DDS IP為系統(tǒng)波形發(fā)生的核心,直接產(chǎn)生激勵(lì)源波形。MDM為系統(tǒng)的調(diào)試模塊,RS232用于和PC機(jī)通信或程序調(diào)試。使用Xilinx嵌入式開發(fā)套件EDK自帶的數(shù)字時(shí)鐘管理DCM(Digital Clock Manager) IP核,把50 MHz輸入時(shí)鐘分頻,分別為DDS模塊和外部高速數(shù)模轉(zhuǎn)換芯片DAC902提供穩(wěn)定的5 MHz和50 MHz時(shí)鐘信號(hào)。程序通過(guò)JTAG下載到FPGA內(nèi)部的BRAM,或者片外PROM中存儲(chǔ)。FPGA產(chǎn)生的數(shù)字信號(hào)經(jīng)過(guò)DAC902轉(zhuǎn)換為模擬信號(hào),再經(jīng)過(guò)低通濾波器去噪,即可獲得高質(zhì)量的超聲導(dǎo)波激勵(lì)信號(hào)源。
2 超聲導(dǎo)波DDS IP核設(shè)計(jì)
2.1 DDS算法原理
DDS是根據(jù)采樣定理,通過(guò)查找表方法產(chǎn)生波形。通常為正弦波、余弦波、三角波或方波等。完整的DDS結(jié)構(gòu)示意圖如圖2所示。在參考時(shí)鐘的驅(qū)動(dòng)下,N bit相位累加器對(duì)頻率控制字K進(jìn)行相位累加,得到的相位碼對(duì)波形存儲(chǔ)器尋址,使之輸出相應(yīng)的波形幅度值。將該值送給DAC和低通濾波器LPF,實(shí)現(xiàn)量化幅值到一個(gè)平滑信號(hào)的轉(zhuǎn)換。當(dāng)相位累加值大于2N時(shí),相位累加器產(chǎn)生一次溢出,溢出頻率就是DDS的輸出頻率。輸出信號(hào)頻率fout可表示為:
由DDS原理可知,相位累加器的位數(shù)N決定 DDS 的精度。N值越大,DDS的頻率間隔?駐f就越細(xì)。但N值增加,所需ROM 容量也將成指數(shù)增加。實(shí)際上在一般系統(tǒng)中,D/A轉(zhuǎn)換器的位數(shù)m是一定的,通常選取累加器的輸出位數(shù)N=m+2,即可滿足需要[6]。設(shè)計(jì)中DAC902為12 bit,取累加器為14 bit,調(diào)制脈沖最大幅值為212, 即4 096。借助 Matlab,生成由漢寧窗調(diào)制10個(gè)周期正弦波的窄帶脈沖波形,如圖3所示。
本設(shè)計(jì)基于DDS技術(shù),采用Verilog HDL 硬件描述語(yǔ)言設(shè)計(jì)直接產(chǎn)生導(dǎo)波激勵(lì)波形的DDS模塊,頂層原理如圖4所示。
L(0,2)模態(tài)超聲導(dǎo)波的50 kHz~500 kHz頻率是指單音頻信號(hào)頻率(如圖3所示,10個(gè)周期, 設(shè)單音頻率為f0),而非DDS輸出頻率fout。由Tout=10T0,得fout=f0/10。所以DDS輸出fout應(yīng)為5 kHz~50 kHz。系統(tǒng)主時(shí)鐘為50 MHz,在DDS輸出最高頻率為50 kHz時(shí),為實(shí)現(xiàn)0.3 kHz(單音頻3 kHz) 步進(jìn)值,10周期窄帶脈沖取樣點(diǎn)數(shù)不少于100點(diǎn),以減小失真,則時(shí)鐘頻率必須大于4.9 MHz。將系統(tǒng)主時(shí)鐘10分頻,得到5 MHz DDS時(shí)鐘頻率。頻率控制字取8 bit就可滿足要求。
累加器模塊Accu對(duì)頻率控制字K累加,并將結(jié)果的低14位sum[13:0]送給下一級(jí)Reg寄存器,作為ROM地址。Accu的最高位sum[14]為判斷位。在累加過(guò)程中,當(dāng)相位sum[14]為1時(shí),累加器清零,完成一次脈沖發(fā)射。然后通過(guò)一個(gè)計(jì)數(shù)器實(shí)現(xiàn)延時(shí)功能,使激勵(lì)脈沖每隔1 ms發(fā)射一次。
ROM模塊采用ISE中ROM IP核直接定制。如果在系統(tǒng)中添加多個(gè)ROM,每個(gè)ROM中分別載入不同周期的調(diào)制脈沖,可實(shí)現(xiàn)激勵(lì)源的周期可調(diào)。借助Matlab,把圖3窄帶脈沖量化成 12 bit 的定點(diǎn)波形數(shù)值,形成.coe 文件并加載到ROM中。
將頻率控制字K設(shè)為23時(shí),輸出頻率fout等于7 kHz,對(duì)應(yīng)單音頻信號(hào)為70 kHz。Modelsim仿真波形如圖5所示。
3系統(tǒng)硬件實(shí)現(xiàn)
3.1 外設(shè)IP核掛載
利用EDK的XPS,創(chuàng)建MicroBlaze硬件平臺(tái)。通過(guò)Base System Builder Wizard快速添加配置,如RS232、GPIO、BRAM等。對(duì)于自主編寫的DDS模塊,使用Create/Import Peripheral工具,適當(dāng)修改user logic 和IPIF兩個(gè)自動(dòng)生成文件,可將自己的邏輯模塊掛接在PLB總線上,無(wú)需過(guò)多關(guān)心自定義IP與PLB總線的協(xié)議和接口邏輯。在XPS中添加自帶的DCM時(shí)鐘管理模塊,為DDS IP和DAC提供精確穩(wěn)定的時(shí)鐘輸入。最后為所有外設(shè)分配地址,建立端口連接。
評(píng)論