基于GPIB的車載音響自動測試系統(tǒng)
基于GPIB的自動測試系統(tǒng)是計算機技術(shù)和自動測試技術(shù)相結(jié)合的產(chǎn)物,目前廣泛應(yīng)用于眾多領(lǐng)域。本文在介紹基于GPIB的自動測試系統(tǒng)組成和GPIB技術(shù)原理和特點的基礎(chǔ)上,著重介紹了已在工程實際應(yīng)用中使用的車載音響測試系統(tǒng),該系統(tǒng)大大提高了測試的自動化程度,使測試人員從繁重的測試任務(wù)中解脫出來,只需將精力集中于測試方案的設(shè)計和測試序列編寫上,從而凸顯了自動化測試系統(tǒng)的優(yōu)越性。
1 自動測試系統(tǒng)
一個測試項目就是計算機向若干臺測試儀表發(fā)送消息,計算機和測試儀表之間通過GPIB線來連接,這就要求所用的測試儀表必須支持CPIB所發(fā)送的消息實際上就是SCPI(Standard Command for Program—ming Instrument)語言。近年來,新型的測試儀表上具備了GPIB接口,從而可以把它與計算機連接起來,組成一個自動測試系統(tǒng)。該系統(tǒng)不但提高了儀器的測量精度,而且具有數(shù)據(jù)處理能力,并能用軟件來取代硬件甚至完成硬件無法完成的功能。一般來說,一個完整的測試系統(tǒng)由控制器、測試儀表、測試軟件和接口總線組成,如圖1所示。
2 GPIB技術(shù)特點及工作原理
2.1 GPIB的特點
(1)GPIB接口板置于設(shè)備內(nèi)部,設(shè)計者不用考慮設(shè)計接口的問題,此接口適用于該設(shè)備所能參與構(gòu)成的任何系統(tǒng)。其通用性是不言而喻的。
(2)GPIB具有高級特性,進行操作時僅需搬動設(shè)備和插拔電纜插頭,并不涉及接頭的具體硬件設(shè)計,這是因為GPIB引入了一些高級接口的概念,而且功能、電氣和機構(gòu)上的規(guī)定制定的相當(dāng)完善,保證了充分的兼容性。GPIB的這種特性表現(xiàn)在編程上,就是減輕了軟件設(shè)計的負(fù)擔(dān),可使用高級語言編程。
(3)GPIB系統(tǒng)組建和拆散靈活,使用方便,用具有GPIB接口設(shè)備組建的系統(tǒng)是真正的“積散型”系統(tǒng),它們“積”成為自動測試系統(tǒng),“散”可以各自單獨使用,表現(xiàn)出無以倫比的靈活性。
(4)GPIB接口比一般接口的價格約貴10%,但考慮到組建測試系統(tǒng)連接多個外設(shè),GPIB接口比一般接口要便宜。因此,從通用性、兼容性、靈活性及經(jīng)濟性等方面來看,GPIB接口是其他接口所無法比擬的。
2.2 GPIB母線
GPIB系統(tǒng)為了進行有效的信息傳輸,一般要求3種不同的元素:講者、聽者和控者。其數(shù)據(jù)傳輸采用位并行,字節(jié)串行,雙向掛鉤和雙向異步的方式進行。總線共24條,可分為3類:16條信號線,1條屏蔽線,7條地線。信號線又分為3組:第一組是8位的數(shù)據(jù)總線,用于傳輸數(shù)據(jù),命令或狀態(tài)字。第二組是接口管理總線,由5條信號線組成:ATN,IFC,REN,SRQ,EOI用于控制總線進程,起總線指揮作用。最后一組是3條掛鉤線(DAV,NRFD,NDAC),用于數(shù)據(jù)的通訊聯(lián)絡(luò),保證異步傳送順利進行。
2.3 三線掛鉤過程
數(shù)據(jù)傳送在講者和聽者間以三線掛鉤方式進行。其基本過程是:
(1)發(fā)送者向數(shù)據(jù)母線上發(fā)送數(shù)據(jù),但并不宣布數(shù)據(jù)有效,即令DAV=0;
(2)接收者相繼準(zhǔn)備接收數(shù)據(jù),共同用NRFD=0向發(fā)送者表示已準(zhǔn)備好接收數(shù)據(jù);
(3)當(dāng)發(fā)送者確認(rèn)所有接收者均已做好接收數(shù)據(jù)的準(zhǔn)備,就發(fā)出DAV=1的信息,示意接收者放在數(shù)據(jù)母線上的數(shù)據(jù)可以接收;
(4)當(dāng)接收者確認(rèn)數(shù)據(jù)可以接收時,信號NRFD=O已不必再保留下去,因而恢復(fù)NRFD=1的狀態(tài),為下一次循環(huán)做準(zhǔn)備;
(5)接收者開始接收數(shù)據(jù);
(6)由于接收數(shù)據(jù)速度不同,接收者相繼收到數(shù)據(jù),當(dāng)接收速度最慢的那一段設(shè)備接收完畢時,使母線NDVC=0,表示所有接收者均已接收完畢;
(7)當(dāng)發(fā)送者確認(rèn)各接收者都已接收數(shù)據(jù)完畢,原來發(fā)的“數(shù)據(jù)有效”信息DAV=1已不必保留了,故發(fā)DAV=0,同時將數(shù)據(jù)母線上的數(shù)據(jù)撤掉;
(8)各接收者根據(jù)收到的DAV=1信息而恢復(fù)NDVC=l,到此DAV,NRFD,NDAC三線均已恢復(fù)原狀態(tài),表示一次互鎖聯(lián)絡(luò)循環(huán)的結(jié)束,并為下一次循環(huán)做好了準(zhǔn)備。
3 基于GPIB的車載音響測試系統(tǒng)
3.1 硬件系統(tǒng)
3.1.1 測試系統(tǒng)介紹
本項目為車載音響集成機架式測試自動化系統(tǒng)??紤]到系統(tǒng)將來的擴充性,將全面采用測試自動化系統(tǒng)的統(tǒng)一平臺結(jié)構(gòu),在此結(jié)構(gòu)上,實現(xiàn)音響部分的功能。車載音響測試系統(tǒng),主要分為5個部分:雙通道音頻信號發(fā)生器與雙通道音頻信號分析儀,標(biāo)準(zhǔn)信號發(fā)生器,音頻切換開關(guān),控制器、標(biāo)準(zhǔn)直流電源和軟件體系。共同承擔(dān)起完整的系統(tǒng)功能。其中音頻分析儀、信號發(fā)生器、直流電源均采用德國的高性能測試儀表,能夠完成精準(zhǔn)的測試要求。
音頻分析儀包含雙通道的音頻信號產(chǎn)生和信號分析,具有極高的靈敏度和豐富的聲學(xué)測試專用功能,其并行工作模式完全符合立體聲等測試的要求。信號發(fā)生器 射頻信號發(fā)生器配合UPV可以產(chǎn)生FM信號和立體聲信號,并且可以作為接收測試的干擾源來用。
音頻切換開關(guān) 音頻切換開關(guān)由兩部分組成:開關(guān)箱和開關(guān)箱主機。開關(guān)箱用于音頻信號通路間的矩陣切換,比如:立體聲與其他測試項目間的切換;開關(guān)箱主機通過PCI板卡來控制開關(guān)箱,確保任何測試項目不需要人工介入音頻線路連接。
控制器控制器采用普通的PC機,主要完成控制各個儀表及運行相關(guān)軟件。
直流電源 標(biāo)準(zhǔn)直流供電電源,主要用來給被測的音響設(shè)備供電,它可以滿足車載音響的供電需求。
軟件體系 軟件是使用微軟公司的Visual C++來完成的,運行在Windows XP環(huán)境下。測試人員所有的測試工作均是在該軟件下來完成,包括測試項目的選擇、測試序列的控制、測試結(jié)果的顯示(包括圖表的顯示等)、測試結(jié)果的保存、輸出報告等。測試人員的工作僅僅是選擇相應(yīng)的測試項目啟動測試,儀表的控制、最后結(jié)果的顯示和保存均由軟件來進行。
3.1.2 測試原理
標(biāo)準(zhǔn)信號發(fā)生器SML模擬電臺產(chǎn)生射頻信號,音頻分析儀UPV產(chǎn)生調(diào)制信號通過SML的Modulation口對SML產(chǎn)生的射頻信號進行調(diào)制,調(diào)制后的信號通過SML的RF口輸出給被測音響,被測音響通過一系列變換產(chǎn)生音頻信號后再輸出到UPV,音頻分析儀UPV對被測音響產(chǎn)生的音頻信號進行分析,產(chǎn)生出測試需求的結(jié)果。
3.1.3 系統(tǒng)拓?fù)浣Y(jié)構(gòu)
系統(tǒng)的拓?fù)浣Y(jié)構(gòu)是整個系統(tǒng)的連接示意圖,如圖2所示??刂破髋c測試用儀表之間通過GPIB線連接,音頻分析儀與開關(guān)箱之間通過音頻連接線進行連接,標(biāo)準(zhǔn)信號發(fā)生器與開關(guān)箱之間通過射頻連接線進行連接,收音機與開關(guān)箱之間通過音頻連接線進行連接,開關(guān)箱主機與控制器之間通過網(wǎng)線連接,開關(guān)箱與開關(guān)箱主機之間通過PCI進行連接。
3.2 軟件系統(tǒng)
系統(tǒng)選用Windows XP操作系統(tǒng)為系統(tǒng)的運行環(huán)境,用微軟公司的Visual C++作為系統(tǒng)軟件開發(fā)平臺,開發(fā)了應(yīng)用程序界面。根據(jù)測試用儀表的SCPI命令來使用Visual C++。來編寫硬件驅(qū)動庫。
軟件采用模塊化程序設(shè)計方法,劃分為不同的功能模塊:硬件驅(qū)動程序部分、系統(tǒng)界面部分和數(shù)據(jù)管理部分。
3.2.1 軟件設(shè)計思想
系統(tǒng)軟件的設(shè)計主要采用面向?qū)ο蟮脑O(shè)計思想,基于面向?qū)ο蠹夹g(shù)的應(yīng)用軟件結(jié)構(gòu)容易理解、修改和重用,能明顯提高軟件開發(fā)和維護的效率。
軟件設(shè)計中根據(jù)各種不同的設(shè)備及其功能將各個測試儀表封裝成類,即信號源類、信號分析類、電源類等,將對各儀表操作的函數(shù)及變量作為類的方法和屬性封裝到各個類中。這些類描述了具有公共方法和一般特性的一組相同對象,如信號源類表征了信號源的共有性質(zhì),如波形種類選擇、波形參數(shù)設(shè)定等。并采用CObject類來派生一個測量數(shù)據(jù)類,將采樣數(shù)據(jù)作為測量數(shù)據(jù)類的主要屬性,將各種測量采樣方法、數(shù)據(jù)處理方法、數(shù)據(jù)表現(xiàn)方法都作為測量數(shù)據(jù)類的接口方法。使用這種方法并結(jié)合設(shè)計模式和多態(tài)性有助于接口的規(guī)范化和自由擴展。
構(gòu)造測量數(shù)據(jù)類,采用直接封裝結(jié)構(gòu)和數(shù)組,由于測量的數(shù)據(jù)量一般都比較大,全局對象和共享內(nèi)存文件也是常用的辦法。也可以使用模板類,如CArray類、CList類等。它們都支持復(fù)雜類的動態(tài)添加。
軟件使用COM組件技術(shù)封裝各種數(shù)據(jù)處理算法,如快速傅里葉變換、濾波等,對數(shù)據(jù)進行處理,再供用戶界面使用。組件對象模型(Component Object Model,COM)定義了各種不同的對象如何利用一種公共約定的協(xié)議相互之間進行通信,是一種獨立于語言和平臺的標(biāo)準(zhǔn)。COM組件最重要的特點是具有面向?qū)ο蟮奶匦?。通過面向?qū)ο蠹夹g(shù),用戶界面不需理會它現(xiàn)在操作的是什么樣的硬件,它只需通過公共接口使用約定的協(xié)議,向組件收發(fā)數(shù)據(jù)和命令,而具體操作由組件去完成,從而實現(xiàn)設(shè)備無關(guān)性。
在用戶界面中,界面元素之間的制約關(guān)系可以用Win32API函數(shù)LoadCurroe調(diào)用等待光標(biāo)來暫時封鎖其他交互操作,也可以用CWnd::EnableWindow,CWnd::ShowWindow設(shè)置相應(yīng)界面控件來屏蔽部分交互操作。這樣可以容易地實現(xiàn)進行某項操作時屏蔽
其他操作的功能。
軟件設(shè)計使用了VC++多線程編程技術(shù),多線程是為了使多個線程并行工作,以完成多項任務(wù),提高系統(tǒng)的效率。本測試系統(tǒng)中,由于數(shù)據(jù)采集和數(shù)據(jù)處理并行,因此需要在軟件中設(shè)計2個線程:一個線程進行測試及讀取測試結(jié)果的工作;另一個線程進行測試結(jié)果的界面顯示工作。并行任務(wù)可用CWinThread類線程來實現(xiàn)。線程之間是通過消息來通信,用全局變量來傳遞數(shù)據(jù)的。此外,還要解決兩線程間的協(xié)調(diào)同步,從而實現(xiàn)測試與顯示的同步,并及時響應(yīng)用戶對實驗進程的控制。
而且,為了測試的需要,有時需要從某個類別的類發(fā)送自定義消息。消息發(fā)送有兩種形式:SendMessage和PostMessage,還可以用系統(tǒng)注冊消息RegisteWin—dowMessage供多個儀表協(xié)作。事件響應(yīng)技術(shù)是消息驅(qū)動的,通過響應(yīng)用戶界面上的交互事件可以形成控制指令,測量控制動作則放在消息響應(yīng)函數(shù)中來實現(xiàn)。以消息機制觸發(fā)測量數(shù)據(jù)對象的采樣方法,去操作儀表驅(qū)動程序來獲取測量數(shù)據(jù);測量數(shù)據(jù)到達后,經(jīng)過數(shù)據(jù)處理、表達,最后呈現(xiàn)給用戶,這就是系統(tǒng)軟件的工作流程。它是通過用戶界面、測量數(shù)據(jù)兩個中心對象以消息作為媒介來實現(xiàn)的。軟件測試流程圖如圖3所示。
3.2.2 硬件驅(qū)動程序
亦即接口板的驅(qū)動程序,是系統(tǒng)控制軟件的最低層,它直接對GPIB接口板進行控制,實現(xiàn)對信號的I/O操作。按照功能設(shè)計接口庫函數(shù),并將接口庫函數(shù)包裝在動態(tài)連接庫DLL中(動態(tài)鏈接庫是包含函數(shù)集和數(shù)據(jù)的一些模塊,它提供了一種模塊化應(yīng)用方式)。硬件驅(qū)動的編寫是根據(jù)測試儀表提供的SCPI命令來完成的,使用Visual C++進行編寫。用VC++編譯產(chǎn)生的.exe文件,直接放人到應(yīng)用程序中。通過應(yīng)用軟件產(chǎn)生XML文件,該文件中包含了所寫的硬件驅(qū)動庫信息,用戶可以從該文件中查找有關(guān)的驅(qū)動信息。
3.2.3 系統(tǒng)界面
軟件部分的核心,它直接面向用戶,是系統(tǒng)控制軟件的最上層。系統(tǒng)具有良好的人機界面,一方面,可以使用戶靈活地選擇所要進行的測試項目,并通過適時的對話框提示告訴用戶應(yīng)該完成的操作,而且能夠?qū)崟r顯示目前的測試狀態(tài),如:測試開始,測試正在進行,測試完成。另一方面,用戶可以通過界面來完成各種功能,如:選擇要測試的項目,包括幅度調(diào)制(AM),頻率調(diào)制(FM),立體聲調(diào)制(STEREO)以及CD的測試等。每個測試項目都會有若干個子測試項目,例如:AM中就包括限噪靈敏度測試,干擾頻率測試,自動放大器測試等。當(dāng)用戶選中測試項目后,它相應(yīng)的子測試項目會全部羅列出來,供用戶進行靈活選擇。此外,測試的結(jié)果可以在測試完成之后,馬上在界面中顯示出來。在顯示結(jié)果的同時所有的結(jié)果也被保存下來,用戶可以通過界面上的操作按鈕來查看保存的結(jié)果。這種方式使用戶可以實時地監(jiān)測測試指標(biāo)是否符合要求,也可以使用戶在事后對結(jié)果進行分析,為用戶提供了極大的方便。同時,還可以根據(jù)用戶的需求產(chǎn)生輸出報告,報告是以Word的方式給出。
3.2.4 數(shù)據(jù)管理
數(shù)據(jù)的管理可以是實時的也可以是非實時的。實時是指在測試完成后,測試的結(jié)果會馬上在界面上顯示出來,非實時是指所有的測試結(jié)果都能夠保存下來,供用戶事后使用。對于數(shù)據(jù)的管理提供了兩種方式:一種是以數(shù)字方式給出的結(jié)果,另一種是以圖表方式給出的結(jié)果。數(shù)字形式的結(jié)果會自動保存在文本文檔中,圖表方式的結(jié)果可以由用戶自己選擇保存的路徑,這種方式更加靈活。所有的操作都可以通過界面上的操作來完成。
3.3 測試方法舉例
3.3.1 基于GPIB的FM的限噪靈敏度測試
(1)首先將被測收音機調(diào)諧到94.1 MHz;
(2)用計算機控制將標(biāo)準(zhǔn)信號發(fā)生器提供FM調(diào)制、94.1 MHz、頻偏75 kHz、高頻電平設(shè)為4 dBμV的信號收音機的天線接口,調(diào)制頻率1 kHz由音頻分析儀產(chǎn)生。
(3)軟件選擇的FM的限噪靈敏度測試項目就可以開始測試了。
測試的結(jié)果依據(jù)TL972標(biāo)準(zhǔn)進行判斷,TL972標(biāo)準(zhǔn)規(guī)定FM的限噪靈敏度應(yīng)在4~8 dBμV。
3.3.2 基于GPIB的CD的頻率響應(yīng)測試
(1)首先播放測試曲目(通常是掃頻的曲目,播放20 Hz~20 kHz的掃頻曲目)。
(2)每變換一次頻率就通過計算機讀取音頻分析儀的輸出,也即相應(yīng)頻率下的輸出電平(單位為dBμV)。將每一次的頻率和相應(yīng)的輸出記錄下來,待所有頻率播放完畢,軟件界面上會自動畫出頻響圖,并將相應(yīng)的頻率和輸出同時以列表方式給出。
(3)保存頻響圖和列表方式的數(shù)據(jù),以便日后查用。
用計算機通過GPIB控制測試儀表來完成測試比,通過手動測試大大提高了測試人員的工作量,使測試工作完全自動化,減少人工干預(yù),大大增加了測試速度和準(zhǔn)確度。
4 結(jié) 語
基于GPIB的自動測試系統(tǒng),充分發(fā)揮了虛擬儀器的優(yōu)越性,測試結(jié)果準(zhǔn)確,實時性好,同時軟件采用面向?qū)ο蟮脑O(shè)計思想,有利于進一步擴展或修改。本系統(tǒng)已成功應(yīng)用于汽車音響測試,經(jīng)實踐檢驗可靠性高,測試結(jié)果準(zhǔn)確度高,系統(tǒng)穩(wěn)定,軟件升級方便快捷,可移植性好。