鄧長開,唐明津,胡義平
(英飛凌科技(無錫)有限公司,江蘇無錫 214028)
GPIB通信在電容測試儀表校準中的應用
鄧長開,唐明津,胡義平
(英飛凌科技(無錫)有限公司,江蘇無錫 214028)
安捷倫電容測試儀表(E4980A,4279A)每年需要做年度校準,人工手動校準操作非常復雜且耗時過長。但是運用電容儀表通信協(xié)議,年度校準完全可以實現(xiàn)自動化。通過VB編程加GPIB通信的方法編寫測控軟件,可以實現(xiàn)軟件自動發(fā)送所有的校準指令,自動判斷儀表返回校準數(shù)值正確與否,自動保存校準數(shù)據(jù)為Excel文件同時錄入數(shù)據(jù)庫,實現(xiàn)了快速高效的電容測試儀表的校準。
電容測試儀表;GPIB;校準
當前PC技術和GPIB通信技術已發(fā)展成熟,測試儀表的校準卻依舊處于人工手動操作儀表面板、手動記錄校準數(shù)據(jù)的階段。通常一臺電容測試儀表例如E4980A需要校準的項目高達50條,每條項目需操作儀表面板按鈕多次,對于半導體企業(yè)測試車間的數(shù)百臺測試儀表而言,人工手動輸入操作必然是復雜且耗時耗力的。借助PC和GPIB通信,計算機控制校準標準流程,自動發(fā)送每條校準項目的指令,自動記錄并判斷儀表返回的測試值是否正確,可以快速高效準確地完成校準,耗時從30~40 min/set降至5 min/set。
工業(yè)中電容測試儀表主要是安捷倫的4279A(如圖1)和E4980A(如圖2)。
安捷倫4279A 1 MHz C-V表測量半導體的電容和偏置電壓特性,其在掃描直流偏置電壓的同時,可測量0.00001~1280.00 pF范圍的電容,基本精度為0.1%,顯示分辨率為6位。
安捷倫E4980A在20 Hz~2 MHz范圍內(nèi)提供4位分辨率顯示,對高低阻抗的高精度重復性測量基本精度為0.05%,廣泛應用于各種元件測量。無論是低阻抗范圍還是高阻抗范圍,E4980A均能提供極快的測量
圖1 安捷倫4279A
圖2 安捷倫E4980A
電容-電壓(C-V)測試廣泛用于測量半導體參數(shù),尤其是MOSCAP和MOSFET結構。此外利用C-V測量還可以對其他類型的半導體器件和工藝進行特征分析,包括雙極結型晶體管(BJT)、JFET、III-V族化合物器件、光伏電池、MEMS器件、有機TFT顯示器、光電二極管、碳納米管(CNT)和其他多種半導體器件[2]。
GPIB是一種工程控制用的協(xié)議,最初由HP公司提出,目前成為一種國際標準,遵守的協(xié)議為IEEE488。它一般被用來使用任意編程語言如VB、VC、C++實現(xiàn)電腦對儀器的控制。當然也有某些儀器制造商自己開發(fā)的語言支持GPIB,如NI公司的Labview等。實現(xiàn)這種控制首先需要被控儀器支持GPIB,其次工控機要安裝IEEE488卡,并通過GPIB線連接兩個設備。
GPIB比串口控制提高了傳輸速率和同時支持的設備總數(shù),但是目前已經(jīng)被傳輸速率更快、支持設備總數(shù)更多的LAN接口替代。GPIB網(wǎng)絡實際上可以理解為早期的多個儀器組合后建立一個小型網(wǎng)絡,通過一定的信號傳輸方式和遵循一定的語言(編程規(guī)范)協(xié)議互相通訊。在小型網(wǎng)絡中,多個儀器各自有一個唯一的與其他設備不重合的號碼,通常是32個設備以下(地址編碼1~32);每個程序開頭會指定調(diào)用的ID,如果是該ID的設備開始接受指令并執(zhí)行到結束,其他不是該ID的設備保持沉默[3]。
4.1 系統(tǒng)硬件組成
C-V自動校準系統(tǒng)的硬件組成如圖3所示,包含有:
(1)一臺安裝Keysight Connection Expert的筆記本電腦;
(2)一根82357B USB/GPIB線;
(3)E4980A或4279A C-V電容測試儀表;
(4)3458A數(shù)字多用表;
(5)GPIB通信線;
(6)16380A標準空氣電容器套件(1~1000 pF)。
圖3 系統(tǒng)硬件組成
4.2 連接原理
連接原理圖見圖4,通過GPIB線型連接或者星型連接均可。
圖4 連接原理圖
4.3 校準內(nèi)容(全部按照安捷倫廠家標準和格式)
4.3.1 電容儀表頻率校準
電容儀表頻率校準,范圍1000±0.2kHz,如表1所示。
表1 測試頻率校準
VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設置指令
Call selectLCR(defrm,Agte4980a)
viSetAttribute (Agte4980a, VI_ATTR_TMO_ VALUE,30)viVPrintf(Agte4980a,"*RST;*CLS"+ vbLf,0)
viVPrintf(Agte4980a,"FORM ASC"+vbLf,0)
viVPrintf(Agte4980a,"APERSHORT,1"+vbLf,0)
viVPrintf(Agte4980a,"FREQ 1000000"+vbLf,0)
viVPrintf(Agte4980a,"TRIG:SOUR BUS"+vbLf, 0)’將測試頻率設定為1000 kHz
viClose(defrm)
viOpenDefaultRM(videfaultRM)'打開 3458A GPIB通信,端口22
viOpen (videfaultRM,"GPIB0::22::INSTR",0,2500,vi)
viWrite(vi,"FREQ",Len("FREQ"),actual)
viRead(vi,readbuf,4800,actual)
ReturnedData=readbuf
If ReturnedData<=UpperLimit And testvalue>= LowerLimit Then‘數(shù)據(jù)合格判定
Cell(i,6).text=“Pass”‘測試值在范圍內(nèi)判定合格
Cell(i,6).BackColor=&HFFFFFF‘判定合格單元格涂白
Else
Cell(i,6).text="Fail"‘測試值不在范圍內(nèi)判定失效
Cell(i,6).BackColor=&HFF‘判定失效單元格涂紅
End If
viClose(vi)
viClose(videfaultRM)
4.3.2 信號電平精度校準
信號電平精度校準共6檔,如表2所示。
表2 測試信號電平精度校準
以測試信號電平20 mV為例,VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設置指令
Call selectLCR(defrm,Agte4980a)
viSetAttribute(Agte4980a,VI_ATTR_TMO_VALUE, 30)
viVPrintf(Agte4980a,"*RST;*CLS"+vbLf,0)
viVPrintf(Agte4980a,"FORM ASC"+vbLf,0)
viVPrintf(Agte4980a,"APER SHORT,1"+vbLf,0)
viVPrintf(Agte4980a,"BIAS:STAT 0"+vbLf,0)
viVPrintf(Agte4980a,"FREQ 1000000"+vbLf,0)
viVPrintf(Agte4980a,"VOLT 0.02"+vbLf,0)’將測試信號電壓設定為20 mV
viClose(defrm)
viOpenDefaultRM(videfaultRM)
viOpen(videfaultRM,"GPIB0::22::INSTR",0,2500, vi)'打開3458A GPIB通信,端口22
viWrite(vi,"ACV",Len("ACV"),actual)
viRead(vi,readbuf,4800,actual)
ReturnedData=readbuf
Cell(i,4).text=Returned Data‘測試數(shù)據(jù)填寫到“As Found”單元格
If ReturnedData<=UpperLimit And testvalue>= LowerLimit Then‘數(shù)據(jù)合格判定
Cell(i,6).text=“Pass”‘測試值在范圍內(nèi)判定合格
Cell(i,6).BackColor=&HFFFFFF‘判定合格單元格涂白
Else
Cell(i,6).text="Fail"‘測試值不在范圍內(nèi)判定失效
Cell(i,6).BackColor=&HFF‘判定失效單元格涂紅
End If
viClose(vi)
viClose(videfaultRM)
4.3.3 直流偏置精度校準
直流偏置精度校準共17檔,如表3所示。
表3 測試直流偏置精度校準
以直流偏置電壓1 V為例,VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設置指令
Call selectLCR(defrm,Agte4980a)
viSetAttribute (Agte4980a, VI_ATTR_TMO_ VALUE,30)
viVPrintf(Agte4980a,"*RST;*CLS"+vbLf,0)
viVPrintf(Agte4980a,"FORM ASC"+vbLf,0)
viVPrintf(Agte4980a,"APER SHORT,1"+vbLf,0)
viVPrintf(Agte4980a,"FREQ 1000000"+vbLf,0)
viVPrintf(Agte4980a,"BIAS:STAT 1"+vbLf,0)
viVPrintf(Agte4980a,"VOLT 2E-2"+vbLf,0)
viVPrintf(Agte4980a,"FUNC:SMON:VDC1"+vbLf,0)
viVPrintf(Agte4980a,"BIAS:VOLT 1"+vbLf,0)‘將直流偏置電壓設定為1 V
viClose(defrm)
viOpenDefaultRM(videfaultRM)
viOpen(videfaultRM,"GPIB0::22::INSTR",0,2500, vi)'打開3458A GPIB通信,端口22
viWrite(vi,"DCV",Len("DCV"),actual)
viRead(vi,readbuf,4800,actual)
ReturnedData=readbuf
Cell(i,4).text=Returned Data‘測試數(shù)據(jù)填寫到“As Found”單元格
If ReturnedData<=UpperLimit And testvalue>= LowerLimit Then‘數(shù)據(jù)合格判定
Cell(i,6).text=“Pass”‘測試值在范圍內(nèi)判定合格
Cell(i,6).BackColor=&HFFFFFF‘判定合格單元格涂白
Else
Cell(i,6).text="Fail"‘測試值不在范圍內(nèi)判定失效
Cell(i,6).BackColor=&HFF‘判定失效單元格涂紅
End If
viClose(vi)
viClose(videfaultRM)
4.3.4 開路偏移校準
開路偏移校準如表4所示。
表4 開路偏移校準
VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設置指令
Call selectLCR(defrm,Agte4980a)
viSetAttribute (Agte4980a, VI_ATTR_TMO_ VALUE,30)
viVPrintf(Agte4980a,"*RST;*CLS"+vbLf,0)
viVPrintf(Agte4980a,"FORM ASC"+vbLf,0)
viVPrintf(Agte4980a,"APER MED,1"+vbLf,0)
viVPrintf(Agte4980a,"FREQ 1000000"+vbLf,0)
viVPrintf(Agte4980a,"VOLT 1E-1"+vbLf,0)
viVPrintf(Agte4980a,"CORR:LENG 0"+vbLf,0)
viVPrintf(Agte4980a,"FUNC:IMP CPG"+vbLf,0)
viVPrintf(Agte4980a,"CORR:OPEN:STAT 1"+ vbLf,0)‘啟動開路偏移修正
viVPrintf(Agte4980a,"CORR:OPEN"+vbLf,0)
viVPrintf(Agte4980a,"TRIG:SOUR BUS"+vbLf,0)
viVPrintf(Agte4980a,"TRIG:IMM"+vbLf,0)
Sleep 5000
viVPrintf(Agte4980a,"FETCh?"+vbLf,0)
viVScanf(Agte4980a,"%t",Result)
Res=Split(Result,",")
ReturnedData=Val(Res(0))
Cell(i,4).text=Returned Data‘測試數(shù)據(jù)填寫到“As Found”單元格
If ReturnedData<=UpperLimit And testvalue>= LowerLimit Then‘數(shù)據(jù)合格判定
Cell(i,6).text=“Pass”‘測試值在范圍內(nèi)判定合格
Cell(i,6).BackColor=&HFFFFFF‘判定合格單元格涂白
Else
Cell(i,6).text="Fail"‘測試值不在范圍內(nèi)判定失效
Cell(i,6).BackColor=&HFF‘判定失效單元格涂紅
End If
viClose(vi)
viClose(videfaultRM)
4.3.5 量程變化精度校準
量程變化精度校準,依次連接16380A標準套件1PF、10PF、100PF、1000PF,如表5所示。
表5 量程變化精度校準
VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設置指令
Call selectLCR(defrm,Agte4980a)
viSetAttribute (Agte4980a, VI_ATTR_TMO_ VALUE,30)
viVPrintf(Agte4980a,"*RST;*CLS"+vbLf,0)
viVPrintf(Agte4980a,"FORM ASC"+vbLf,0)
viVPrintf(Agte4980a,"APER MED,1"+vbLf,0)
viVPrintf(Agte4980a,"FREQ 1000000"+vbLf,0)
viVPrintf(Agte4980a,"VOLT 1E-1"+vbLf,0)
viVPrintf(Agte4980a,"CORR:LENG 0"+vbLf,0)
viVPrintf(Agte4980a,"TRIG:SOURBUS"+vbLf,0)
viVPrintf(Agte4980a,"FUNC:DCR:RANG:Auto"+ vbLf,0)‘量程設定為自動
viVPrintf(Agte4980a,"COMP ON"+vbLf,0)
viVPrintf(Agte4980a,"INIT:CONT OFF"+vbLf,0)
viVPrintf(Agte4980a,"INIT:IMM"+vbLf,0)
viVPrintf(Agte4980a,"TRIG:IMM"+vbLf,0)
viVPrintf(Agte4980a,"FETCh?"+vbLf,0)
viVScanf(Agte4980a,"%t",Result)
Res=Split(Result,",")
ReturnedData=Val(Res(0))
Cell(i,4).text=Returned Data‘測試數(shù)據(jù)填寫到“As Found”單元格
If ReturnedData<=UpperLimit And testvalue>= LowerLimit Then‘數(shù)據(jù)合格判定
Cell(i,6).text=“Pass”‘測試值在范圍內(nèi)判定合格
Cell(i,6).BackColor=&HFFFFFF‘判定合格單元格涂白
Else
Cell(i,6).text="Fail"‘測試值不在范圍內(nèi)判定失效
Cell(i,6).BackColor=&HFF‘判定失效單元格涂紅
End If
viClose(vi)
viClose(videfaultRM)
4.3.6 測試時間變化精度校準
用16380A1PF標準件進行測試時間變化精度的校準,如表6所示。
表6 測試時間變化精度校準
以Short為例,VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設置指令
Call selectLCR(defrm,Agte4980a)
viSetAttribute (Agte4980a,VI_ATTR_TMO_ VALUE,30)
viVPrintf(Agte4980a,"*RST;*CLS"+vbLf,0)
viVPrintf(Agte4980a,"FORM ASC"+vbLf,0)
viVPrintf(Agte4980a,"FREQ 1000000"+vbLf,0)
viVPrintf(Agte4980a,"APER SHORT,1"+vbLf,0) '將測試時間設置為short
viVPrintf(Agte4980a,"BIAS:STAT 0"+vbLf,0)
viVPrintf(Agte4980a,"VOLT 1E-1"+vbLf,0)
viVPrintf(Agte4980a,"TRIG:SOUR BUS"+vbLf,0)
viVPrintf(Agte4980a,"TRIG:IMM"+vbLf,0)
viVPrintf(Agte4980a,"FETCh?"+vbLf,0)
viVScanf(Agte4980a,"%t",Result)
Res=Split(Result,",")
ReturnedData=Val(Res(0))
Cell(i,4).text=Returned Data‘測試數(shù)據(jù)填寫到“As Found”單元格
If ReturnedData<=UpperLimit And testvalue>= LowerLimit Then‘數(shù)據(jù)合格判定
Cell(i,6).text=“Pass”‘測試值在范圍內(nèi)判定合格
Cell(i,6).BackColor=&HFFFFFF‘判定合格單元格涂白
Else
Cell(i,6).text="Fail"‘測試值不在范圍內(nèi)判定失效
Cell(i,6).BackColor=&HFF‘判定失效單元格涂紅
End If
viClose(vi)
viClose(videfaultRM)
4.3.7 電纜長度補償精度校準
電纜長度補償精度校準如表7所示。
表7 電纜長度補償精度校準
以線長1 m為例,VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設置指令
Call selectLCR(defrm,Agte4980a)
viSetAttribute (Agte4980a, VI_ATTR_TMO_ VALUE,30)
viVPrintf(Agte4980a,"*RST;*CLS"+vbLf,0)
viVPrintf(Agte4980a,"FORM ASC"+vbLf,0)
viVPrintf(Agte4980a,"APER LONG,1"+vbLf,0)
viVPrintf(Agte4980a,"FREQ 1000000"+vbLf,0)
viVPrintf(Agte4980a,"BIAS:STAT 0"+vbLf,0)
viVPrintf(Agte4980a,"VOLT 1E-1"+vbLf,0)
viVPrintf(Agte4980a,"CORR:LENG 1"+vbLf,0)‘設置線長為1 m
viVPrintf(Agte4980a,"TRIG:SOURBUS"+vbLf,0)
viVPrintf(Agte4980a,"TRIG:IMM"+vbLf,0)
viVPrintf(Agte4980a,"FETCh?"+vbLf,0)
viVScanf(Agte4980a,"%t",Result)
Res=Split(Result,",")
ReturnedData=Val(Res(0))
Cell(i,4).text=Returned Data‘測試數(shù)據(jù)填寫到“As Found”單元格
If ReturnedData<=UpperLimit And testvalue>= LowerLimit Then‘數(shù)據(jù)合格判定
Cell(i,6).text=“Pass”‘測試值在范圍內(nèi)判定合格
Cell(i,6).BackColor=&HFFFFFF‘判定合格單元格涂白
Else
Cell(i,6).text="Fail"‘測試值不在范圍內(nèi)判定失效
Cell(i,6).BackColor=&HFF‘判定失效單元格涂紅
End If
viClose(vi)
viClose(videfaultRM)
4.4 軟件界面
軟件界面如圖5所示。
測控軟件含有4279A和E4980A兩種儀表的自動校準界面。菜單里有一鍵自動校準全部項目,也有各個項目單個校準。各個校準項目都是軟件自動發(fā)送GPIB指令去E4980A和3458A,讀取返回值,判斷和記錄在表格當中,校準值有錯時表格自動涂紅。校準完成后沒有任何校準錯誤,數(shù)據(jù)方可導出生成Excel。
圖5 軟件界面
4.5 手動和自動校準數(shù)據(jù)的對比
整個自動校準過程就是計算機將校準指令發(fā)送到儀表、自動讀取儀表返回數(shù)值的過程,替代人手動在儀表面板按鍵輸入指令、人眼讀取數(shù)值,對于儀表而言實際上兩者是一樣的。以直流偏置精度校準為例(見圖6),手動與自動校準數(shù)據(jù)幾乎重合。
圖6 直流偏置精度校準手動與自動操作對比
4.6 自動校準允許的距離
在自動校準過程中,多次測試值上下浮動只能在標準值1%之內(nèi),因為儀表在實際生產(chǎn)測試過程中穩(wěn)定性是一個重要的指標。以16380A標準套件里10PF標準件測試為例(見圖7),儀表多次測試值上下浮動均在標準值的1%之內(nèi)。
圖7 10PF標準件校準數(shù)據(jù)
整個測控軟件校準過程無須人手工操作儀表面板,僅需根據(jù)軟件提示連接相應組件即可。單臺儀表完成校準和導出Excel數(shù)據(jù)耗時從30 min降至5 min,同時自動保存校準數(shù)據(jù)為Excel文件的同時錄入數(shù)據(jù)庫,使得電容校準更加高效、準確、標準化和通用化。
[1]Keysight product introduction[EB/OL].www.keysight.com
[2]呂強福.電子技術基礎[M].北京:機械工業(yè)出版社,2010.
[3]耿東華.GPIB接口[J].電光系統(tǒng),2005(1):56-58.
GPIB Communication Application for C-V Meter Calibration
DENG Changkai,TANG Mingching,HU Yiping
(Infineon Technologies(Wuxi)Co.,Ltd.Wuxi214028,China)
Agilent C-V Meter(E4980A,4279A)needs yearly calibration.Manual calibration is complex and time-consuming.However the calibration procedure can be done automatically via Agilent C-V meter protocol command.The communication software developed using VB and GPIB is capable of sending calibration command to C-V meter,making automatically judgments,and saving calibration data into database in.xlsx format.The auto C-V calibration software significantly improves speed and calibration efficiency.
C-V Meter;GPIB;calibration
TN307
A
1681-1070(2017)04-0039-06
2016-12-18速度和出色的測量性能[1]。
鄧長開(1986—),男,江蘇南京人,工學學士,測試設備工程師,現(xiàn)任職于英飛凌科技(無錫)有限公司。