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