文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)04-0088-04
在現(xiàn)代自動(dòng)測(cè)試行業(yè)中,大量采用可程控儀器來(lái)搭建測(cè)試系統(tǒng)。早期的不同程控儀器采用不同的程控語(yǔ)言導(dǎo)致程控儀器與計(jì)算機(jī)之間的接口語(yǔ)言非標(biāo)準(zhǔn)化,使得如何控制每一臺(tái)儀器成為了第一要?jiǎng)?wù),一體化測(cè)試系統(tǒng)難以短期搭建。因此,建立在IEEE 488.2規(guī)范基礎(chǔ)上的SCPI (Standard Commands for Programmable Instruments) 應(yīng)運(yùn)而生。SCPI確定了計(jì)算機(jī)與程控儀器之間接口語(yǔ)言標(biāo)準(zhǔn)化,縮短自動(dòng)測(cè)試儀器的開發(fā)時(shí)間,并提高了集成系統(tǒng)的效率。目前SCPI應(yīng)用的領(lǐng)域包括數(shù)字萬(wàn)用表、示波器、可控電源、負(fù)載等,沒有涉及到功率半導(dǎo)體測(cè)試行業(yè)。
本文在探討SCPI命令的創(chuàng)建和命令解析器設(shè)計(jì)的基礎(chǔ)上,將其應(yīng)用到IGBT可靠性測(cè)試設(shè)備,針對(duì)該設(shè)備設(shè)計(jì)符合要求的程控命令以及擴(kuò)展性好的解析器。該應(yīng)用下,程控命令由主機(jī)通過(guò)以太網(wǎng)發(fā)送給測(cè)試設(shè)備,測(cè)試設(shè)備接收并且對(duì)其進(jìn)行解析,轉(zhuǎn)化為設(shè)備可以識(shí)別的目標(biāo)代碼,從而完成主機(jī)所要求的操作;在設(shè)備運(yùn)行過(guò)程中,被測(cè)器件(DUT)的所有測(cè)試參數(shù)也均通過(guò)以太網(wǎng)返回給主機(jī),由主機(jī)對(duì)其分析處理。通過(guò)以太網(wǎng)傳輸SCPI命令及測(cè)量數(shù)據(jù)不僅有效節(jié)約了硬件資源,也使整個(gè)系統(tǒng)的穩(wěn)定性能得以提升。
1 SCPI簡(jiǎn)介
SCPI是測(cè)量?jī)x器程控命令的業(yè)界標(biāo)準(zhǔn),定義標(biāo)準(zhǔn)化的SCPI命令只與測(cè)試儀器的功能及其性能、精度有關(guān),而與儀器硬件組成、制造廠家、通信物理連接硬件環(huán)境和測(cè)試程序編寫環(huán)境等均無(wú)關(guān)。它是建立在IEEE 488.2標(biāo)準(zhǔn)代碼和格式基礎(chǔ)之上的,基于ASCII碼,依附BASIC、C、C++等編程語(yǔ)言,可以在LabVIEW、MATLAB、Visual Studio、Keil 等環(huán)境下使用。由于具有硬件獨(dú)立性,可以通過(guò)任何儀器接口發(fā)送,如RS232、GPIB、VXIbus、LAN口等。同時(shí)SCPI編程具有橫向一致性和縱向一致性。不同測(cè)試儀器的相同功能具有相同的命令形式,在橫向上使測(cè)試儀器兼容;同時(shí)使用相同的命令可以控制同一類儀器中的相同功能,使得儀器在縱向上兼容。
2 SCPI語(yǔ)法分析
SCPI命令關(guān)鍵字通常是有意義的英文單詞,也稱助記符,分長(zhǎng)短型兩種。短型助記符由長(zhǎng)型助記符的前4個(gè)字符構(gòu)成,如CONFigure的短型為CONF。當(dāng)助記符長(zhǎng)度大于4,并且第4個(gè)字符為元音時(shí),則取前3個(gè)字符表示為短格式,如POWer的短型為POW,而FREE的短型為FREE。
SCPI可以分為兩類,一是IEEE 488.2公共命令,另一部分是儀器特定命令。公共命令是IEEE 488.2規(guī)定的必須要執(zhí)行的命令,一般不涉及到具體操作,但是有整體控制功能,如復(fù)位、狀態(tài)和同步,其語(yǔ)法格式為:‘*關(guān)鍵字’或‘*關(guān)鍵字?’。問(wèn)號(hào)表示查詢,主要用來(lái)獲取儀器的設(shè)置或狀態(tài)。常用的公共命令有 *RST、*IDN?、*CLS等。儀器特定命令是與儀器相關(guān)的,針對(duì)不同的儀器,命令不同。該命令包括關(guān)鍵字和可選的一個(gè)或多個(gè)參數(shù),格式如下:
<關(guān)鍵字>[:<關(guān)鍵字>[…] <空格> [<參數(shù) 1>[, <參數(shù)2>[…]]]
其中,冒號(hào)(:)用于分離關(guān)鍵字,方括號(hào)([])用于包含可選關(guān)鍵字。關(guān)鍵字之后是參數(shù),由空格符隔開,不同參數(shù)之間使用逗號(hào)(,)進(jìn)行隔開。儀器命令關(guān)鍵字具有分層結(jié)構(gòu),其中第一級(jí)關(guān)鍵字級(jí)別最高,后續(xù)的關(guān)鍵字級(jí)別較低;儀器特定執(zhí)行命令通常后帶參數(shù),參數(shù)類型包括數(shù)值型、布爾型、字符型、字符串等。
SCPI命令實(shí)際使用時(shí),習(xí)慣將命令字符串逐個(gè)發(fā)送;也可以將多個(gè)命令組合成一個(gè)命令串發(fā)送。SCPI命令組合使用,其具有模塊化強(qiáng)、使用更便捷等優(yōu)勢(shì),但針對(duì)特定儀器,對(duì)命令解析器的設(shè)計(jì)要求較高。
3 SCPI命令解析器設(shè)計(jì)
測(cè)試儀器接收SCPI命令,能否準(zhǔn)確地識(shí)別并進(jìn)行下一步動(dòng)作關(guān)系列測(cè)試系統(tǒng)整體性能的好壞,因此SCPI命令解析器的設(shè)計(jì)至關(guān)重要。
3.1 SCPI命令的創(chuàng)建
根據(jù)SCPI命令層次結(jié)構(gòu)的特點(diǎn),可以對(duì)命令節(jié)點(diǎn)采用順序結(jié)構(gòu)存儲(chǔ)和鏈?zhǔn)浇Y(jié)構(gòu)存儲(chǔ)等。本文針對(duì)該半導(dǎo)體測(cè)試系統(tǒng)的命令,采用較容易實(shí)現(xiàn)的單鏈表結(jié)構(gòu)來(lái)存儲(chǔ)命令節(jié)點(diǎn),該結(jié)構(gòu)便于命令節(jié)點(diǎn)的存儲(chǔ)和擴(kuò)展。命令節(jié)點(diǎn)關(guān)鍵字的存儲(chǔ)結(jié)構(gòu)如下:
struct SCPIcmd {
char Keyword[15]; //長(zhǎng)型助記符
int ShortNum; //短型助記符字符個(gè)數(shù)
int CommandType; //命令類型
char ParType; //參數(shù)類型
int ParNum; //期望的參數(shù)個(gè)數(shù)
struct StrPar *SzStr; //參數(shù)結(jié)構(gòu)體
int (*CmdFunc)(); //執(zhí)行儀器功能函數(shù)
int (*QueFunc)(); //執(zhí)行查詢功能
bool DefNode; //該結(jié)點(diǎn)是否為默認(rèn)節(jié)點(diǎn)
struct SCPIcmd *Next; //指針指向下一關(guān)鍵字
};
3.2 SCPI命令的解析
由SCPI命令樹形結(jié)構(gòu)的特點(diǎn)可知, IEEE 488.2公共命令的深度為1,不需要進(jìn)行下一個(gè)關(guān)鍵字結(jié)點(diǎn)的查找;而儀器特定命令的深度具有不確定性,隨著系統(tǒng)逐漸龐大,深度值也會(huì)隨之增大;如果存在下一級(jí)關(guān)鍵字結(jié)點(diǎn),就必須對(duì)其進(jìn)行查找。本文采用單鏈表算法順序查找關(guān)鍵字結(jié)點(diǎn),從時(shí)間上考慮,處理速度相對(duì)較慢,不適合大量數(shù)據(jù)的操作;但是由于程控儀器的可程控命令關(guān)鍵字結(jié)點(diǎn)數(shù)有限,并且儀器采用的處理器的速度很快,單鏈表算法完全可以滿足解析器的設(shè)計(jì)要求。
對(duì)于本文解析器的設(shè)計(jì),首先從整體上確定SCPI命令的解析過(guò)程,規(guī)定解析過(guò)程中相應(yīng)的執(zhí)行函數(shù),然后結(jié)合二維數(shù)組共同實(shí)現(xiàn)解析,該數(shù)組中行表示由特殊連接符(冒號(hào)、分號(hào)等)分解出字符串的不同的首字符,列表示執(zhí)行函數(shù)的標(biāo)號(hào),數(shù)組中存儲(chǔ)的亦為將要執(zhí)行的函數(shù)標(biāo)號(hào)。針對(duì)公共命令和半導(dǎo)體測(cè)試儀器命令,規(guī)定的解析過(guò)程執(zhí)行函數(shù)如下:
char (*RoutineFunc[9])(int) = {
ErrAlert, //0錯(cuò)誤提示
CurCommRoot, //1公共命令關(guān)鍵字賦入口地址
CurDevRoot, //2儀器命令關(guān)鍵字賦入口地址
Common488, //3 公共命令關(guān)鍵字查找
DevCmdSearch, //4 儀器命令關(guān)鍵字查找
CurDevNext, //5儀器命令下一關(guān)鍵字查詢
SaveCurNode, //6存儲(chǔ)當(dāng)前結(jié)點(diǎn)
Quit, //7退出解析
ErrAlert //8錯(cuò)誤提示
};
存儲(chǔ)執(zhí)行函數(shù)標(biāo)號(hào)的二維數(shù)組如下:
int StateTable[7][6]=
{ /*0 1 2 3 4 5 */
/*STATE *: alpha ; EOM unknown */
/* 0 */ {1, 2, 2, 8, 0, 8},
… … … … … … …
/* 6 */ {1, 2, 2, 0, 0, 8}
};
SCPI命令整體的解析流程如圖1所示。解析器收到SCPI命令字符串后,首先判斷首字符是否為星號(hào)、冒號(hào)或者字母,如果不是,提示輸入錯(cuò)誤;如果是,則結(jié)合二維數(shù)組,通過(guò)初始狀態(tài)零和首字符判定將要執(zhí)行的函數(shù)(其中首次執(zhí)行的函數(shù)是為命令根節(jié)點(diǎn)提供入口地址)。然后存儲(chǔ)該函數(shù)標(biāo)號(hào),該標(biāo)號(hào)同時(shí)也作為新的狀態(tài)量提供給下一個(gè)關(guān)鍵字查找使用。查找關(guān)鍵字并判斷該關(guān)鍵字節(jié)點(diǎn)是否存在指向下一關(guān)鍵字的指針,如果存在,保存當(dāng)前的節(jié)點(diǎn)信息并繼續(xù)查找余下字符串的首字符;如果不存在,則表明關(guān)鍵字查找結(jié)束,根據(jù)該節(jié)點(diǎn)定義的命令類型來(lái)執(zhí)行半導(dǎo)體測(cè)試系統(tǒng)相應(yīng)的功能函數(shù);若該命令為查詢類型,則返回狀態(tài)值;若為功能執(zhí)行類型,則根據(jù)命令有無(wú)參數(shù)作進(jìn)一步處理。
本文解析器在功能上進(jìn)一步加強(qiáng),使得組合命令能夠有效地得到解析。當(dāng)?shù)谝粋€(gè)關(guān)鍵字功能函數(shù)執(zhí)行完畢后繼續(xù)查找字符,若遇到分號(hào),則表明輸入的SCPI命令為組合命令,應(yīng)存儲(chǔ)當(dāng)前節(jié)點(diǎn)并重復(fù)該命令關(guān)鍵字查找函數(shù);若遇到結(jié)束符,則解析結(jié)束,退出解析過(guò)程。
4 IGBT可靠性測(cè)試中SCPI的應(yīng)用
IGBT可靠性測(cè)試主要是結(jié)合IGBT額定的電參數(shù)值對(duì)其進(jìn)行失效分析,從而完成對(duì)它的評(píng)估和篩選。測(cè)試方法有多種,本文測(cè)試系統(tǒng)兼容兩種常用的測(cè)試,包括高溫反偏測(cè)試(HTRB)和高溫柵偏測(cè)試(HTGB)。
4.1 系統(tǒng)硬件電路設(shè)計(jì)
如圖2所示,測(cè)試系統(tǒng)主要由溫度控制、測(cè)試模式選擇、DUT被測(cè)參數(shù)采集和通信四部分電路構(gòu)成。溫度控制部分為閉環(huán)反饋網(wǎng)絡(luò),DUT置于高溫箱中,根據(jù)測(cè)試要求控制高溫箱溫度,通過(guò)反饋網(wǎng)絡(luò)來(lái)保持DUT結(jié)溫恒定。DUT的測(cè)試模式由繼電器進(jìn)行控制選擇(如圖3所示),HTRB模式下短接?xùn)艠O-發(fā)射極,繼電器K1、K4、K5閉合,K2、K3打開,根據(jù)測(cè)試需求由直流電壓源向DUT的集電極-發(fā)射極兩端提供最高3 kV的電壓。系統(tǒng)對(duì)器件參數(shù)VCES和由分流器RSHRB產(chǎn)生的ICES進(jìn)行測(cè)試;為了保證系統(tǒng)支持測(cè)試3 kV高壓等級(jí)的IGBT器件,K1則采用能承受至少3 kV的高壓繼電器來(lái)導(dǎo)通大電壓。HTGB模式短接集電極和發(fā)射極,繼電器K2、K3閉合,K1、K4、K5打開,根據(jù)要求向柵極-發(fā)射極兩端施加最高100 V的電壓,K3采用能承受電壓最高100 V的繼電器即可。該模式下系統(tǒng)對(duì)器件參數(shù)VGES和RSHGB由分流器產(chǎn)生的IGES進(jìn)行測(cè)試。
由于器件被測(cè)參數(shù)值VCES、VGES很大,為滿足A/D轉(zhuǎn)換器輸入要求,將其通過(guò)比例縮放電路,縮小到A/D參考電壓的范圍之內(nèi),再對(duì)其進(jìn)行采樣以及合理的校正。所有被測(cè)參數(shù)均對(duì)應(yīng)著不同的測(cè)試通道,由選通器決定哪個(gè)通道與A/D轉(zhuǎn)換器輸入端相連。系統(tǒng)通信部分采用以太網(wǎng)總線替代廣泛使用的RS232、GPIB和VXI總線,上位機(jī)發(fā)送的命令和經(jīng)過(guò)A/D采樣得到的數(shù)據(jù)均通過(guò)以太網(wǎng)進(jìn)行傳輸。
4.2 系統(tǒng)解析功能測(cè)試
通過(guò)對(duì)測(cè)試系統(tǒng)硬件電路及器件參數(shù)基本測(cè)試過(guò)程的分析,制定一系列與該系統(tǒng)相關(guān)的程控命令,并使用Keil開發(fā)工具編寫命令解析程序,使命令轉(zhuǎn)化為設(shè)備可以識(shí)別的目標(biāo)代碼。文中根據(jù)SCPI命令的語(yǔ)法要求創(chuàng)建幾條針對(duì)該測(cè)試系統(tǒng)的基本命令:
(1)顯示測(cè)試系統(tǒng)信息
<*IDN?>
(2)配置測(cè)試模式為HTRB或者HTGB
<CONF:MODE HTRB|HTGB>
(3)配置為高壓或者低壓測(cè)試模式
<CONF:HVPS ON|OFF>
(4)測(cè)量門極電流值
<MEAS:GATE:CURR? >
將這些命令進(jìn)行測(cè)試,由主機(jī)依次發(fā)送,解析器接收并處理,解析結(jié)果借助串口打印到超級(jí)終端上顯示,如圖4所示,解析順序通過(guò)執(zhí)行函數(shù)標(biāo)號(hào)顯示。
結(jié)果表明命令解析器設(shè)計(jì)成功,測(cè)試系統(tǒng)可以準(zhǔn)確識(shí)別主機(jī)發(fā)送過(guò)來(lái)的命令,根據(jù)這一命令及時(shí)執(zhí)行相應(yīng)的中斷響應(yīng)函數(shù),完成主機(jī)所要求的操作。解析器中單鏈表算法與數(shù)組的結(jié)合使用不僅使解析順序清晰可見,而且增強(qiáng)解析器的可擴(kuò)展性。若測(cè)試系統(tǒng)接收到的命令為CONF:MODE HTRB,系統(tǒng)繼電器K1、K4、K5閉合,K2、K3打開;若命令為MEAS:GATE:VOLT,采樣的柵極電壓值通過(guò)以太網(wǎng)傳輸?shù)缴衔粰C(jī)進(jìn)行實(shí)時(shí)顯示。測(cè)試實(shí)驗(yàn)充分表明將SCPI命令應(yīng)用到IGBT測(cè)試系統(tǒng)具有可行性。
隨著自動(dòng)測(cè)試行業(yè)的逐步發(fā)展,可程控測(cè)試儀器越來(lái)越多,本文開拓半導(dǎo)體測(cè)試領(lǐng)域,成功實(shí)現(xiàn)了SCPI命令在功率半導(dǎo)體可靠性測(cè)試系統(tǒng)中的應(yīng)用,使得儀器操作更便捷,測(cè)試效率更高。應(yīng)用中命令解析器的設(shè)計(jì)完全適用于該系統(tǒng),并且具有很好的可讀性與擴(kuò)展性;同時(shí)該應(yīng)用還成功采用以太網(wǎng)總線進(jìn)行通信,充分利用以太網(wǎng)的高性能及成本低廉的優(yōu)勢(shì),實(shí)現(xiàn)SCPI命令遠(yuǎn)程控制測(cè)試儀器,也為多臺(tái)可程控半導(dǎo)體測(cè)試儀器組網(wǎng)奠定了堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn)
[1] SCPI Consortium. Standard commands for programmable in struments[EB/OL]. http://www.scpiconsortium.org.
[2] 賴小紅,鐘秀蓉. SCPI命令解釋程序設(shè)計(jì)在數(shù)據(jù)結(jié)構(gòu)教學(xué)中的應(yīng)用[J].實(shí)驗(yàn)科學(xué)與技術(shù),2011,9(5):250-252.
[3] 鄧闖,明靈. 使用SCPI語(yǔ)言實(shí)現(xiàn)計(jì)算機(jī)與設(shè)備儀器通訊[J]. 集成電路通訊, 2010,28(1):36-39.
[4] 井濤,郭永瑞. 一種實(shí)用的SCPI語(yǔ)法分析設(shè)計(jì)方法[J].國(guó)外電子測(cè)量技術(shù), 2006,25(2):42-44.
[5] 石雪松. SCPI語(yǔ)言在自動(dòng)測(cè)試系統(tǒng)中的應(yīng)用[J].宇航計(jì)測(cè)技術(shù),1997,17(2):62-64.
[6] 張岐寧,王曉寶. IGBT模塊的測(cè)試[J]. 電力電子技術(shù),2005,39(1):112-114.
[7] 王正元,由宇義珍, 宋高升. IGBT技術(shù)的發(fā)展歷史和最新進(jìn)展[J]. 電力電子技術(shù), 2004(5):7-12.
[8] 嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)[M]. 北京:清華大學(xué)出版社,1996.