楊澤宇,張艷花,楊 錄,李文強(qiáng)
(中北大學(xué)信息與通信工程學(xué)院,山西太原 030051)
超聲無損探傷系統(tǒng)設(shè)計(jì)中,超聲信號采集并處理是關(guān)鍵性的技術(shù)之一。數(shù)據(jù)采集卡作為前端模擬超聲信號和微機(jī)處理器的接口,在超聲探傷系統(tǒng)中擁有廣泛的應(yīng)用。傳統(tǒng)超聲采集系統(tǒng)采用ISA(Industrial Standard Architecture,工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)總線)總線傳輸數(shù)據(jù),其地址總線寬度為24位,數(shù)據(jù)總線寬度為16位,總線時(shí)鐘8MHz。隨著現(xiàn)代無損檢測技術(shù)的發(fā)展,對超聲探傷系統(tǒng)的要求也越來越高,采集卡技術(shù)也同樣隨之發(fā)展。PCI(Peripheral Component Interconnect)是一種由英特爾公司1991年推出的局部總線標(biāo)準(zhǔn)。PCI總線穩(wěn)定度高,通用性強(qiáng),傳輸速率可達(dá)132MB/s,符合現(xiàn)在超聲探傷系統(tǒng)對數(shù)據(jù)傳輸?shù)母咚?、高效、高穩(wěn)定性要求。然而PCI總線傳輸相對復(fù)雜,對板卡設(shè)計(jì)者的要求較高。采集卡的布線,驅(qū)動程序編寫,數(shù)據(jù)傳輸方式等諸多方面的因素都會對PCI的傳輸造成影響。
在普通超聲探傷中,對于某種試件的傷的判斷往往只需要判斷在觸發(fā)信號發(fā)出后某段或某幾段固定時(shí)間內(nèi)的回波,而不用將所有的回波采樣回傳。通過在超聲數(shù)據(jù)采集卡的前端對信號進(jìn)行一些處理以減少需要傳輸?shù)臄?shù)據(jù),不但減輕了PCI總線的負(fù)擔(dān)縮短上位機(jī)的數(shù)據(jù)處理時(shí)間,同時(shí)降低了探傷系統(tǒng)中總線傳輸設(shè)計(jì)難度,有效縮短了設(shè)計(jì)開發(fā)周期。
系統(tǒng)電路框圖如圖1所示。對于采集卡的數(shù)據(jù)采集,總體來說可以分成4個(gè)部分:信號的輸入、信號的采集、信號的存儲和信號的傳輸;在這其中,對信號的采集和處理是一個(gè)采集系統(tǒng)設(shè)計(jì)的重點(diǎn)[1]。
超聲檢測一般是由前端傳感器發(fā)射并接收超聲波,然后通過對回波信號進(jìn)行處理,對一個(gè)試件進(jìn)行檢測和判斷。在均勻的材料中,缺陷的存在會造成材料的不連續(xù),從而造成聲阻抗的不一致。超聲波入射后如果遇到缺陷,就會因?yàn)槁曌杩共灰恢露a(chǎn)生反射,這反射波信號被捕捉采集,就能判斷出缺陷。
大多超聲探傷是對大量同一型號試件的重復(fù)檢測。因?yàn)樾螤?、材質(zhì)都被固定,所以試件上缺陷回波信號的時(shí)間范圍及幅度是確定的,完全可以通過提取回波信號的時(shí)間特征和幅度特征來作為判傷參考依據(jù)[2,3]。依據(jù)上述原理,采用了如圖2所示的方法對信號進(jìn)行采集。
圖1 總體系統(tǒng)設(shè)計(jì)結(jié)構(gòu)
圖2 超聲信號采集圖示
前端接收的回波信號依次通過信號放大電路、峰值保持電路、通道選擇電路、AD采樣電路,最后通過CPLD傳入RAM中保存。
板卡模擬信號數(shù)據(jù)采集由程控放大電路、峰值保持電路、通道選擇電路及模數(shù)轉(zhuǎn)換電路實(shí)現(xiàn)。
程控放大采用8通道模數(shù)轉(zhuǎn)換芯片Tlc5628c與美國Analog Devices公司生產(chǎn)的壓控放大器 AD603來實(shí)現(xiàn)。Tlc5628c可以通過編程產(chǎn)生0~5 V的電壓信號,將由Tlc5628c得到的可控電壓連到AD603的增益控制端,即可實(shí)現(xiàn)對前端回波信號的增益可調(diào)放大。
將通過放大電路的模擬輸入信號連接到峰值保持電路,在門信號的控制下保持段時(shí)間內(nèi)回波信號的峰值,多路信號的采集全部完成以后再選通多路模擬開關(guān)分別連接到模數(shù)采樣芯片,對各路信號進(jìn)行逐一采集。如圖3所示。
圖3 峰值保持電路
在采集卡設(shè)計(jì)中,CPLD是系統(tǒng)重要組成部分之一。在控制本地端各芯片協(xié)調(diào)同步運(yùn)作的同時(shí),還為PCI橋芯片和本地端控制信號進(jìn)行譯碼、時(shí)序轉(zhuǎn)換等操作。
采集卡上的數(shù)據(jù)傳輸采用了乒乓傳輸?shù)哪J剑丛诓杉ㄉ吓渲秒pRAM對數(shù)據(jù)進(jìn)行緩存。乒乓傳輸可以使得數(shù)據(jù)的采集緩存和數(shù)據(jù)向上位機(jī)的傳輸能夠同步進(jìn)行:采集到的數(shù)據(jù)首先在存儲器A中保存,當(dāng)?shù)谝粋€(gè)存儲器數(shù)據(jù)放滿數(shù)據(jù)自動存放到存儲器B中,同時(shí)發(fā)起數(shù)據(jù)傳輸將第一塊存儲器中的數(shù)據(jù)向上傳輸,存儲器B滿了之后再存儲到存儲器A中,并將存儲器 B中的數(shù)據(jù)上傳,如此往復(fù)循環(huán)。IS64WV12816BLL是128Kx16高速 COMS型 SRAM,最快訪問時(shí)間可達(dá)12 ns、雙向三態(tài)傳輸,能夠滿足PCI傳輸?shù)囊螅?]。
在采集卡系統(tǒng)設(shè)計(jì)中,驅(qū)動設(shè)計(jì)也是一個(gè)難點(diǎn),一個(gè)好的驅(qū)動程序能有效提高傳輸速率、系統(tǒng)穩(wěn)定性和數(shù)據(jù)處理效率。
WinDriver10是Jungo公司為 PCI、USB、ISA等接口對驅(qū)動開發(fā)提供的WinDriver系列軟件的最新版本。能夠很好地支持Windows XP等多種操作系統(tǒng)的底層硬件驅(qū)動開發(fā)。雖然效率略低于利用DDK,DriverStdio等方式進(jìn)行開發(fā)的驅(qū)動程序,但更加簡單、方便,為驅(qū)動開發(fā)者節(jié)省了大量時(shí)間與精力。WinDriver10軟件為許多芯片廠商提供了專門的芯片支持文件。本設(shè)計(jì)中PCI接口芯片采用了PLX公司的PLX9054,驅(qū)動程序的開發(fā)利用了WinDriver10目錄下專門為Plx器件編寫的plx_lib.c和plx_lib.h文件,其中包含最基本的對Plx器件進(jìn)行操作的函數(shù)與方法。同時(shí),還給出了示例程序文件p9054_diag.c,驅(qū)動編寫者可以參考其進(jìn)行程序編寫。
上位機(jī)軟件使用VC 6.0(Visaulstudio 6.0)調(diào)用Win-Driver給出的函數(shù)進(jìn)行編寫,啟動軟件時(shí),首先要對采集卡進(jìn)行初始化操作,步驟如下:
· 使用WD_DriverName()和 WD_SetDeBugOption()函數(shù)設(shè)置驅(qū)動名稱和WDC庫的調(diào)試選項(xiàng)。
·使用WD_Licence()函數(shù)對驅(qū)動設(shè)備進(jìn)行注冊操作。
·使用WDC_DrvierOpen()函數(shù)打開驅(qū)動程序句柄并初始化WDC庫并使用 WDC_PciScanDevices()函數(shù)查找符合要求設(shè)備。
·使用WDC_PciGetDeviceInfo()獲取設(shè)備信息并對資源進(jìn)行分配。
· 使用WDC_PciDeviceOpen()打開WDC設(shè)備句柄。
·最后使用DeviceInit()函數(shù)對設(shè)備描述表等資源進(jìn)行初始化。
初始化設(shè)置完成后,就可以使用如PLX_ReadAddrLocal16(),PLX_WriteAddrLocal32()等函數(shù)對采集卡進(jìn)行控制操作了。上位機(jī)數(shù)據(jù)傳輸流程如圖4所示。
當(dāng)采集操作啟動后會建立一個(gè)數(shù)據(jù)接收線程等待中斷到來,每當(dāng)該線程接收到中斷,會查看該中斷類型。當(dāng)中斷為本地中斷,表示采集卡中一個(gè)緩存器數(shù)據(jù)滿,申請進(jìn)行數(shù)據(jù)傳輸,這時(shí)上位機(jī)啟動DMA模式進(jìn)行數(shù)據(jù)傳輸,在DMA傳輸結(jié)束之后又會產(chǎn)生DMA中斷,當(dāng)數(shù)據(jù)接收線程接收到該中斷時(shí),將會調(diào)用中斷調(diào)用函數(shù),中斷調(diào)用函數(shù)又會調(diào)用中斷處理子函數(shù)對數(shù)據(jù)進(jìn)行處理操作[5]。
圖4 上位機(jī)軟件流程圖
使用WinDriver開發(fā)驅(qū)動程序后,上位機(jī)用VC6.0結(jié)合其提供的函數(shù)庫,編寫了如圖5的測試程序,可以對硬件進(jìn)行控制,進(jìn)行多通道數(shù)據(jù)采集,進(jìn)行實(shí)時(shí)數(shù)據(jù)傳輸采集、規(guī)定采樣點(diǎn)數(shù)采集,控制壓控放大倍數(shù)等操作,數(shù)據(jù)傳輸最大速率達(dá)到了60 Mb/s,能夠滿足超聲檢測的需要。
本文較全面地介紹了基于PCI的超聲數(shù)據(jù)采集卡的設(shè)計(jì)與開發(fā)方法。在檢測的過程中能夠?qū)崟r(shí)地將超聲數(shù)據(jù)進(jìn)行上傳,并對前端進(jìn)行調(diào)節(jié)。通過時(shí)間特征和幅值特征對傷的判斷也能較好地保證系統(tǒng)的靈敏度和分辨率。實(shí)現(xiàn)了一種基于PCI總線的超聲采集卡設(shè)計(jì)。
圖5 VC檢測程序
[1]習(xí)俊梅,朱杰斌,黃良兵,等.便攜式數(shù)字化超聲檢測[J].儀表技術(shù)與傳感器,2007(9):18-19.
[2]韓焱,楊錄,王明泉.板波特征及其特征提取器[J].測試技術(shù)學(xué)報(bào),1996,10(2):79-82.
[3]楊錄,宋文愛.細(xì)銅棒內(nèi)部缺陷超聲自動檢測系統(tǒng)設(shè)計(jì)[J].測試技術(shù)學(xué)報(bào),2001,15(4):255-257.
[4]嚴(yán)其艷.基于PCI的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].企業(yè)技術(shù)開發(fā)2011,30(12):10-15.
[5]馬昕暉,杜勝,姚靜波.基于PCI總線的動態(tài)測試系統(tǒng)軟件設(shè)計(jì)研究[J].測試技術(shù)學(xué)報(bào),2010,24(6):491-496.