基于GPIB總線的虛擬儀器信號自動(dòng)測試系統(tǒng)設(shè)計(jì)
隨著測控技術(shù)的發(fā)展,要求測試的項(xiàng)目和測試參數(shù)日益增多,對自動(dòng)化測試速度和測試準(zhǔn)確度也提出了較高的要求。虛擬儀器是基于計(jì)算機(jī)和標(biāo)準(zhǔn)總線技術(shù)的模塊化系統(tǒng),通常由控制模塊、儀器模塊和軟件組成。由軟件將計(jì)算機(jī)硬件資源與儀器硬件有機(jī)的融合為一體,從而把計(jì)算機(jī)強(qiáng)大的計(jì)算處理能力和儀器硬件的測量、控制能力結(jié)合在一起,大大縮小了儀器硬件的成本和體積,并通過軟件對數(shù)據(jù)進(jìn)行顯示、存儲(chǔ)以及分析處理,廣泛應(yīng)用于民用和軍用測量領(lǐng)域Ⅲ。作為虛擬儀器技術(shù)的一種,GPIB總線儀器以其良好的可靠性和高精度性使基于該總線的虛擬儀器在自動(dòng)化測試領(lǐng)域中得到廣泛的研究與應(yīng)用。
GPIB總線是一個(gè)數(shù)字式的24線并行總線。它由16條信號線和8條接地返回線組成。GPIB的16條信號線分為8條數(shù)據(jù)線,5條接口管理線,3條握手線等三大組??梢詫?shí)現(xiàn)諸如總線初始化、設(shè)備尋址或地址釋放以及為遠(yuǎn)程或本地編程設(shè)置設(shè)備模式的任務(wù)。GPIB使用8位并行的異步數(shù)據(jù)傳輸方案。
由于某弱信號處理模塊需要測試的性能指標(biāo)繁多,傳統(tǒng)的手動(dòng)測量的方法效率較低,人為因素的影響較大,操作失誤情況下容易損壞模塊,不適用于批量生產(chǎn)的產(chǎn)品測試。研制針對該模塊的自動(dòng)測試設(shè)備在批量的產(chǎn)品測試中可以有效的節(jié)省人力和時(shí)間,減少由于人為因素而產(chǎn)生的差錯(cuò),提高測試準(zhǔn)確性,對于產(chǎn)品的批量生產(chǎn)具有很大的促進(jìn)作用,并有利于對產(chǎn)品的質(zhì)量控制。
1 系統(tǒng)的主要功能
該自動(dòng)測試系統(tǒng)主要應(yīng)用在對某型弱信號處理模塊的自動(dòng)化檢測中,實(shí)現(xiàn)對7個(gè)大項(xiàng),100多個(gè)小項(xiàng)的自動(dòng)化檢測,取代使用分立的儀器逐項(xiàng)手動(dòng)測試。測試系統(tǒng)需具備以下幾個(gè)主要功能。1)為模塊提供+12V、-12V直流電源及可變頻變幅的正弦及脈沖信號輸入;2)測試模塊的交流噪聲及直流偏置;3)測試交流通道輸出波形失真度;4)進(jìn)行模塊的跨阻、高低端截止頻率、AGC、隔離度等多項(xiàng)性能參數(shù)的自動(dòng)測試;5)測試直流通道跨阻等性能指標(biāo);6)提供高低溫測試夾具并實(shí)現(xiàn)常溫及高低溫狀態(tài)下的測試;7)對結(jié)果以波形及數(shù)據(jù)表等方式記錄顯示和打印輸出;8)自檢功能及過流保護(hù)功能。測試系統(tǒng)應(yīng)具有良好的圖形用戶界面,友好的人機(jī)對話環(huán)境。軟件界面上應(yīng)包括電源自檢和信號源自檢以及自校準(zhǔn)功能。輸入模塊的激勵(lì)信號的頻率和幅值可以調(diào)節(jié)。測試系統(tǒng)應(yīng)有兩種工作方式,可以按照測試項(xiàng)目順序依次進(jìn)行測試,也可以對選中的單個(gè)或多個(gè)測試項(xiàng)目進(jìn)行程控測試。測試過程中界面上實(shí)時(shí)顯示測試系統(tǒng)的工作狀態(tài)、測試項(xiàng)目和測得的數(shù)據(jù)。具有產(chǎn)品測試數(shù)據(jù)實(shí)時(shí)記錄、儲(chǔ)存及打印功能,能自動(dòng)生成規(guī)范的測試報(bào)告、測試曲線。測試過程可隨時(shí)終止,并可查看自動(dòng)生成的測試表格,自動(dòng)標(biāo)識不合格項(xiàng)。測試系統(tǒng)的組成框圖如圖1所示。測試系統(tǒng)的設(shè)計(jì)包括硬件沒計(jì)和軟件設(shè)計(jì)兩部分。
2 測試系統(tǒng)硬件設(shè)計(jì)
測試系統(tǒng)的硬件部分由專用夾具、采集控制板、GPIB接口卡、數(shù)字I/O卡、函數(shù)信號發(fā)生器、數(shù)字萬用表、數(shù)字存儲(chǔ)示波器及工控機(jī)等組成。工控機(jī)通過采集控制板對模塊的各引腳通道進(jìn)行選擇并發(fā)送信號,待測量通道的信號輸入到相應(yīng)儀器進(jìn)行測量。工控機(jī)與各儀器通過GPIB總線相連,將控制命令發(fā)送到各儀器,測得的數(shù)據(jù)被發(fā)送到工控機(jī)進(jìn)行分析處理等工作。采用GPIB總線星型連接方式,可以避免因某個(gè)儀器的關(guān)閉或非正常工作而影響工控機(jī)與其他儀器間的通信。
圖2為該系統(tǒng)的硬件組成框圖。其中直流穩(wěn)壓源提供模塊的工作電壓,通過采集控制板向模塊專用夾具提供。函數(shù)信號發(fā)生器、數(shù)字萬用表和數(shù)字存儲(chǔ)示波器本身帶有GPIB接口,在工控機(jī)擴(kuò)展槽中插入GPIB卡獲得工控機(jī)的GPIB接口,通過GPIB電纜線連接在一起,可以進(jìn)行數(shù)據(jù)和信號的傳輸。工控機(jī)通過GPIB卡和數(shù)字I/O卡實(shí)現(xiàn)對采集控制板和其他設(shè)備的實(shí)時(shí)控制,向被控對象發(fā)出命令,協(xié)調(diào)它們之間的動(dòng)作,從測量設(shè)備讀出數(shù)據(jù),并對數(shù)據(jù)進(jìn)行分析和處理,將完整的測量結(jié)果進(jìn)行保存或制成報(bào)表打印輸出。
函數(shù)信號發(fā)生器采用Agilent 33220A,用來向模塊提供正弦信號和脈沖波信號。Agilent 33220A所能提供的正弦波的頻率范圍為1μHz~20MHz,幅度范圍為10mVpp~10Vpp,精度為1mVp-p。Agilent 33220A函數(shù)信號發(fā)生器帶有IEEE488.2標(biāo)準(zhǔn)的GPIB端口,可以和工控機(jī)進(jìn)行通信,并由工控機(jī)對其輸出波形參數(shù)進(jìn)行設(shè)置。數(shù)字示波器采用Tektronix公司生產(chǎn)的TDS1002,帶寬為60MHz,采樣率1.0GS/s,可以滿足測試要求;TDS1002示波器帶有滿足IEEE488.2標(biāo)準(zhǔn)的GPIB端口,可以和工控機(jī)進(jìn)行通信,將測試結(jié)果傳遞給工控機(jī)。數(shù)字萬用表采用Agilent 34401A,具有6位半數(shù)字分辨率,最高精度為1μV,交流電壓測量量程為15mV~750V,頻率測量范圍為5Hz~1MHz,最高精度為0.01Hz,帶有滿足IEEE488.2標(biāo)準(zhǔn)的GPIB端口,可以和工控機(jī)進(jìn)行通信,用來完成模塊各通道輸出波形的頻率和交直流幅值的測量,并檢測直流穩(wěn)壓源和函數(shù)信號發(fā)生器的輸出。
2.1 直流穩(wěn)壓電源單元
直流穩(wěn)壓電源為模塊提供+12V和-12V電壓,為控制板和模塊夾具板上的GPLD和繼電器提供+5V工作電壓。采用DH1718G-4型直流穩(wěn)壓源,此電源有0~+36V和0~-36V兩路可調(diào)直流電壓輸出和一路十5V固定電壓輸出,輸出電流分別為0~+3.5A和0~-3.5A,紋波電壓有效值為0.5mV。
2.2 主控計(jì)算機(jī)系統(tǒng)
主控計(jì)算機(jī)系統(tǒng)由工控機(jī)主機(jī)、GPIB總線接口卡和數(shù)字I/O卡構(gòu)成。計(jì)算機(jī)主機(jī)采用研華科技有限公司生產(chǎn)的工控機(jī),內(nèi)存在軟件計(jì)算和顯示中對容量要求比較大,內(nèi)存容量配置為1Gbytes。GPIB總線接口卡選用了National Instruments公司生產(chǎn)的PCI-GPIB接口卡,該接口卡支持“Plug and Play"標(biāo)準(zhǔn),接插件采用IEEE488.1的標(biāo)準(zhǔn)24針接頭,數(shù)據(jù)傳輸支持標(biāo)準(zhǔn)IEEE488和HS488兩種模式。數(shù)字I/O卡采用National Instruments公司生產(chǎn)的PCI-6503,是PCI總線接口的數(shù)字I/O卡,兼容性強(qiáng),支持“Plug and Play"標(biāo)準(zhǔn),采用5V TTL/CMOS控制電平,具有3通道共24位輸入/輸出。
2.3 采集控制板
采集控制電路板分為電源處理、信號輸入、信號輸出和CPLD控制4個(gè)部分。電源處理部分負(fù)責(zé)8塊待測模塊工作電源以及增益控制引腳的選通;信號輸入部分將信號發(fā)生器輸出的信號提供給模塊待測的一路;信號輸出部分把模塊待測的一路輸出信號送給數(shù)字萬用表或示波器進(jìn)行測量。CPLD另設(shè)了5個(gè)輸出引腳A~E用來控制模塊夾具板上的繼電器通斷。為了適合產(chǎn)品和夾具的需要,選用了超小型高靈敏度的電流動(dòng)作型信號繼電器,其導(dǎo)通電阻小,絕緣電阻大,壽命長(開關(guān)數(shù)可達(dá)千萬次),體積小,重量輕。
工控機(jī)首先向數(shù)字I/O卡寫控制字,數(shù)字I/O卡將8位的命令數(shù)據(jù)傳送給采集控制板上的CPLD,CPLD將接收到的控制命令經(jīng)過譯碼產(chǎn)生各繼電器的控制信號,在CPLD每個(gè)輸出引腳采用驅(qū)動(dòng)電路提高電流驅(qū)動(dòng)能力以實(shí)現(xiàn)對繼電器的控制,從而實(shí)現(xiàn)某個(gè)待測模塊的相應(yīng)通道的選通。除了采集控制板上的繼電器陣列以外,夾具板上還有5個(gè)繼電器,用以實(shí)現(xiàn)模塊輸入通道的就近接地。CPLD模塊采用的是Xilinx公司的XC9572-15PC84,XC9572是Xilinx公司XC9500系列CPLD的一種,采用了先進(jìn)的Fast FLASH ISP技術(shù),可提供10000次以上編程擦除周期,并提供了先進(jìn)的系統(tǒng)內(nèi)部編程及測試功能。
3 測試系統(tǒng)軟件設(shè)計(jì)
整個(gè)軟件系統(tǒng)設(shè)計(jì)分為4個(gè)模塊:人機(jī)界面、數(shù)據(jù)處理、儀器控制和數(shù)據(jù)傳輸,如圖3所示。其中,儀器控制和數(shù)據(jù)傳輸是在測試過程中聯(lián)合作用的,作為底層的程序進(jìn)行開發(fā),并按照功能整合成子程序,劃分為多個(gè)子模塊分別進(jìn)行設(shè)計(jì),供測試主程序進(jìn)行調(diào)用,提高了軟件的可靠性、可維護(hù)性和可擴(kuò)展性。前臺是人機(jī)界面,檢測并判斷用戶輸入的測試相關(guān)信息,形成測試流程并調(diào)用相應(yīng)子程序。后臺數(shù)據(jù)處理部分,將儀器傳回的測量數(shù)據(jù)進(jìn)行分析判斷,形成報(bào)表存檔。測試軟件的工作方式分為兩種:自動(dòng)測試和程控測試。自動(dòng)測試模式可按順序依次進(jìn)行全部項(xiàng)目的測試;程控測試模式可以對選中的單項(xiàng)或多項(xiàng)測試項(xiàng)目進(jìn)行單獨(dú)測試。通過軟件功能更改可以兼容不同設(shè)計(jì)的弱信號處理模塊。測試系統(tǒng)的軟件開發(fā)平臺采用美國NI公司的LabVIEW8.2。
根據(jù)功能需要設(shè)置了5個(gè)主要界面,分別為登陸、用戶管理、參數(shù)設(shè)置、測試和報(bào)表管理。登錄界面通過校驗(yàn)屏幕輸入的用戶名及密碼,判斷相應(yīng)的權(quán)限。軟件系統(tǒng)控制實(shí)際儀器對被測模塊進(jìn)行7個(gè)大項(xiàng)的測試??刂菩盘柤皽y得數(shù)據(jù)均通過GPIB總線傳輸。在測試過程中,在底層進(jìn)行數(shù)據(jù)的處理和分析,判斷是否符合指標(biāo)要求,并進(jìn)行整理匯總。該測試系統(tǒng)軟件將所有硬件資源的驅(qū)動(dòng)程序以驅(qū)動(dòng)程序庫的形式加以組織,使測試應(yīng)用程序通過訪問驅(qū)動(dòng)程序庫函數(shù)實(shí)現(xiàn)對各種硬件資源的操作,提高了系統(tǒng)的計(jì)算能力。
3.1 登陸界面的實(shí)現(xiàn)
通過對用戶名和密碼的判斷可得出對應(yīng)的權(quán)限。如果是系統(tǒng)管理員,則進(jìn)入Case框的“True"條件,通過對登陸界面上的功能可視屬性的設(shè)置,顯示數(shù)據(jù)管理、參數(shù)修改、測試等所有功能。如果是普通用戶登錄,則進(jìn)入Case框的“False'’條件。在內(nèi)層Case框內(nèi),程序?qū)λ膫€(gè)功能按鈕的Visible屬性進(jìn)行設(shè)置,并對右下方的布爾型全局變量“是系統(tǒng)管理員”進(jìn)行賦值。該全局變量的賦值是為了與數(shù)據(jù)管理界面進(jìn)行通信,在數(shù)據(jù)管理界面上對不同的用戶權(quán)限進(jìn)行功能區(qū)分。
用戶登錄后,程序不斷檢測屏幕上各個(gè)功能按鈕的狀態(tài),一旦有按鈕按下,則進(jìn)入其相應(yīng)的子界面。子界面均做成VI,存放在于登錄界面同一根目錄下。在程序中,運(yùn)用Call By Reference Node函數(shù),對子界面進(jìn)行動(dòng)態(tài)調(diào)用,實(shí)質(zhì)上就是對VI進(jìn)行動(dòng)態(tài)控制。子界面動(dòng)態(tài)調(diào)用程序中,首先分別使用Refnum函數(shù)和Open VI Reference函數(shù)生成和打開被調(diào)用子界面VI的Reference(參考號),再使用Invoke Node函數(shù)中的Open FP動(dòng)作打開子界面的前面板窗口,并通過Property Node函數(shù)設(shè)置被調(diào)用VI的屬性。設(shè)置被調(diào)用的子界面狀態(tài)為Activate,即可對被調(diào)用的子界面上的控件進(jìn)行操作。使用Call By Refer-ence Node函數(shù)進(jìn)行調(diào)用,在調(diào)用完畢之后,再使用Invoke Node關(guān)閉子界面前面板窗口。最后釋放Reference。在整個(gè)軟件系統(tǒng)中,將相關(guān)功能集成在1個(gè)子界面中,通過動(dòng)態(tài)調(diào)用子界面,使程序運(yùn)行合理,使用方便。
3.2 測試主界面的實(shí)現(xiàn)
測試主界面是整個(gè)測試軟件中最復(fù)雜和功能最集中的部分,對操作者輸入的測試信息進(jìn)行判別并形成測試流程,通過測試流程調(diào)用相應(yīng)測試功能的子VI完成測試任務(wù)。需要通過程序?qū)た貦C(jī)上的數(shù)字I/O卡和GPIB接口卡進(jìn)行控制,使其按照程序的設(shè)置進(jìn)行輸入輸出;測試過程中實(shí)時(shí)顯示測試進(jìn)度和測試數(shù)據(jù),對于部分測試項(xiàng)目按照要求在界面上顯示測得的信號波形;要對測試過程中測得的數(shù)據(jù)講行判別。在豐界面設(shè)計(jì)時(shí),將各個(gè)測試項(xiàng)目獨(dú)立編寫形成子VI以便調(diào)用。測試項(xiàng)目完成后進(jìn)行一系列報(bào)表整理和數(shù)據(jù)庫的插入等操作,及時(shí)更新測量的數(shù)據(jù)。
由于模塊針對不同的溫度的合格指標(biāo)不同,因此主界面上設(shè)計(jì)了常溫、低溫和高溫三個(gè)選項(xiàng)。使用While循環(huán)框及Event Structure(事件結(jié)構(gòu))實(shí)現(xiàn)上述功能。外層的While框是令程序循環(huán)等待操作者的選擇動(dòng)作的發(fā)生,Event Structure框中是響應(yīng)該動(dòng)作的程序。
操作者按下“初始化”按鈕,系統(tǒng)運(yùn)行初始化子程序,檢測萬用表、信號發(fā)生器、示波器、穩(wěn)壓電源等是否工作正常,并檢查夾具選定測試位置上是否裝有模塊。初始化程序還測量被測模塊的電源電流,并進(jìn)行測試所需激勵(lì)信號的自適應(yīng)校正。以上各項(xiàng)均通過后,初始化程序結(jié)束。程序等待操作者按下“開始測試”按鈕。取得所測模塊的信息和所測項(xiàng)目,形成測試程序流程,按照流程分別進(jìn)入各測試項(xiàng)目子程序中。
3.3 交流噪聲測試
某弱信號處理模塊的交流噪聲主要于熱噪聲、散粒噪聲和1/f噪聲等。交流噪聲測試測量各交流通道的交流噪聲電壓值Vn,測量過程中需要觀察噪聲波形,應(yīng)為帶寬型非周期性波形。程序通過I/O卡輸出控制字,驅(qū)動(dòng)繼電器,選通被測芯片,并連通其輸入輸出管腳和實(shí)際儀器之間的電路。被測芯片的各交流輸入通道均接GND,被測芯片的輸出經(jīng)過低噪聲放大電路放大30倍后,由萬用表測得并通過GPIB總線傳輸?shù)匠绦?。子程?ldquo;顯示波形30s”調(diào)用示波器,采集放大30倍后的噪聲波形數(shù)據(jù),通過GPIB總線傳輸?shù)匠绦蚝蠼缑鎸?shí)時(shí)顯示,持續(xù)30s。
3.4 參數(shù)指標(biāo)的修改
可以由系統(tǒng)管理員修改參數(shù)指標(biāo)并及時(shí)存儲(chǔ)作為合格判據(jù)。指標(biāo)參數(shù)以二進(jìn)制文件形式存儲(chǔ)在計(jì)算機(jī)的指定路徑,每次運(yùn)行參數(shù)修改界面時(shí)先讀出該二進(jìn)制文件,將這些參數(shù)初始化到界面的各個(gè)相應(yīng)控件上,向操作者顯示出最近的修改結(jié)果。操作者修改完成后,將最新的修改情況更新存儲(chǔ)到指定路徑的二進(jìn)制文件上,覆蓋原有文件,保持指標(biāo)參數(shù)的為最新。
3.5 波形失真度計(jì)算
Distortion Measurements.vi是計(jì)算波形失真度的程序。諧波失真是指用信號源輸入時(shí),輸出信號比輸入信號多出的額外諧波成分。諧波失真由系統(tǒng)不是完全線性造成,它通常用百分?jǐn)?shù)來表示??傊C波失真度THD計(jì)算公式如下:
式中,V2至Vx是基波V1的諧波。X限制在奈奎斯特頻率范圍。
3.6 測試記錄功能設(shè)計(jì)
程序通過對界面上操作者輸入的報(bào)表管理信息,形成相應(yīng)的程序流程。程序可實(shí)現(xiàn)對6個(gè)模塊的測試報(bào)表的打印和保存。程序主要使用File I/O類函數(shù)中的Write File函數(shù)結(jié)合格式控制程序進(jìn)行報(bào)表的生成。程序中首先設(shè)置報(bào)表的頭尾顯示信息,使用Initialize Report函數(shù)初始化成標(biāo)準(zhǔn)報(bào)表。使用Append Report Text函數(shù)添加打印報(bào)表的內(nèi)容。第1個(gè)Append Report Text函數(shù)添加報(bào)表對應(yīng)模塊的信息,如測試時(shí)間,模塊序號及批號等。第2個(gè)Append Report Text函數(shù)添加測試者簽名,落款日期及QC簽名等備注信息。報(bào)表生成后,使用Print Report函數(shù)將格式整理好的報(bào)表送至聯(lián)機(jī)打印機(jī)進(jìn)行打印輸出。使用Append Text Table with diff column widthto Report生成不同列寬表格的報(bào)表函數(shù)。在For循環(huán)結(jié)構(gòu)中,通過層疊型順序框執(zhí)行報(bào)表格式的整理,通過For結(jié)構(gòu)的循環(huán)計(jì)數(shù)器在測試結(jié)果數(shù)組中提取數(shù)據(jù),并進(jìn)行重排及插入報(bào)表相應(yīng)位置等操作。
4 實(shí)現(xiàn)結(jié)果
表1為用測試系統(tǒng)測標(biāo)準(zhǔn)模塊的主要參數(shù)得到的測試結(jié)果。從表1中可以看出,各參數(shù)的測試結(jié)果準(zhǔn)確,且重測一致性較好。本測試系統(tǒng)研制完成后經(jīng)批量的模塊產(chǎn)品測試檢驗(yàn),很好地滿足了某弱信號處理模塊的測試需求,各種測試參數(shù)的指標(biāo)均達(dá)到了設(shè)計(jì)要求,并且使用方便,用戶界面友好,軟件功能更改方便靈活。目前已經(jīng)應(yīng)用于某紅外跟蹤產(chǎn)品的批量生產(chǎn)中。