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