鄧長開,唐明津,胡義平
(英飛凌科技(無錫)有限公司,江蘇無錫 214028)
GPIB通信在電容測試儀表校準(zhǔn)中的應(yīng)用
鄧長開,唐明津,胡義平
(英飛凌科技(無錫)有限公司,江蘇無錫 214028)
安捷倫電容測試儀表(E4980A,4279A)每年需要做年度校準(zhǔn),人工手動(dòng)校準(zhǔn)操作非常復(fù)雜且耗時(shí)過長。但是運(yùn)用電容儀表通信協(xié)議,年度校準(zhǔn)完全可以實(shí)現(xiàn)自動(dòng)化。通過VB編程加GPIB通信的方法編寫測控軟件,可以實(shí)現(xiàn)軟件自動(dòng)發(fā)送所有的校準(zhǔn)指令,自動(dòng)判斷儀表返回校準(zhǔn)數(shù)值正確與否,自動(dòng)保存校準(zhǔn)數(shù)據(jù)為Excel文件同時(shí)錄入數(shù)據(jù)庫,實(shí)現(xiàn)了快速高效的電容測試儀表的校準(zhǔn)。
電容測試儀表;GPIB;校準(zhǔn)
當(dāng)前PC技術(shù)和GPIB通信技術(shù)已發(fā)展成熟,測試儀表的校準(zhǔn)卻依舊處于人工手動(dòng)操作儀表面板、手動(dòng)記錄校準(zhǔn)數(shù)據(jù)的階段。通常一臺電容測試儀表例如E4980A需要校準(zhǔn)的項(xiàng)目高達(dá)50條,每條項(xiàng)目需操作儀表面板按鈕多次,對于半導(dǎo)體企業(yè)測試車間的數(shù)百臺測試儀表而言,人工手動(dòng)輸入操作必然是復(fù)雜且耗時(shí)耗力的。借助PC和GPIB通信,計(jì)算機(jī)控制校準(zhǔn)標(biāo)準(zhǔn)流程,自動(dòng)發(fā)送每條校準(zhǔn)項(xiàng)目的指令,自動(dòng)記錄并判斷儀表返回的測試值是否正確,可以快速高效準(zhǔn)確地完成校準(zhǔn),耗時(shí)從30~40 min/set降至5 min/set。
工業(yè)中電容測試儀表主要是安捷倫的4279A(如圖1)和E4980A(如圖2)。
安捷倫4279A 1 MHz C-V表測量半導(dǎo)體的電容和偏置電壓特性,其在掃描直流偏置電壓的同時(shí),可測量0.00001~1280.00 pF范圍的電容,基本精度為0.1%,顯示分辨率為6位。
安捷倫E4980A在20 Hz~2 MHz范圍內(nèi)提供4位分辨率顯示,對高低阻抗的高精度重復(fù)性測量基本精度為0.05%,廣泛應(yīng)用于各種元件測量。無論是低阻抗范圍還是高阻抗范圍,E4980A均能提供極快的測量
圖1 安捷倫4279A
圖2 安捷倫E4980A
電容-電壓(C-V)測試廣泛用于測量半導(dǎo)體參數(shù),尤其是MOSCAP和MOSFET結(jié)構(gòu)。此外利用C-V測量還可以對其他類型的半導(dǎo)體器件和工藝進(jìn)行特征分析,包括雙極結(jié)型晶體管(BJT)、JFET、III-V族化合物器件、光伏電池、MEMS器件、有機(jī)TFT顯示器、光電二極管、碳納米管(CNT)和其他多種半導(dǎo)體器件[2]。
GPIB是一種工程控制用的協(xié)議,最初由HP公司提出,目前成為一種國際標(biāo)準(zhǔn),遵守的協(xié)議為IEEE488。它一般被用來使用任意編程語言如VB、VC、C++實(shí)現(xiàn)電腦對儀器的控制。當(dāng)然也有某些儀器制造商自己開發(fā)的語言支持GPIB,如NI公司的Labview等。實(shí)現(xiàn)這種控制首先需要被控儀器支持GPIB,其次工控機(jī)要安裝IEEE488卡,并通過GPIB線連接兩個(gè)設(shè)備。
GPIB比串口控制提高了傳輸速率和同時(shí)支持的設(shè)備總數(shù),但是目前已經(jīng)被傳輸速率更快、支持設(shè)備總數(shù)更多的LAN接口替代。GPIB網(wǎng)絡(luò)實(shí)際上可以理解為早期的多個(gè)儀器組合后建立一個(gè)小型網(wǎng)絡(luò),通過一定的信號傳輸方式和遵循一定的語言(編程規(guī)范)協(xié)議互相通訊。在小型網(wǎng)絡(luò)中,多個(gè)儀器各自有一個(gè)唯一的與其他設(shè)備不重合的號碼,通常是32個(gè)設(shè)備以下(地址編碼1~32);每個(gè)程序開頭會(huì)指定調(diào)用的ID,如果是該ID的設(shè)備開始接受指令并執(zhí)行到結(jié)束,其他不是該ID的設(shè)備保持沉默[3]。
4.1 系統(tǒng)硬件組成
C-V自動(dòng)校準(zhǔn)系統(tǒng)的硬件組成如圖3所示,包含有:
(1)一臺安裝Keysight Connection Expert的筆記本電腦;
(2)一根82357B USB/GPIB線;
(3)E4980A或4279A C-V電容測試儀表;
(4)3458A數(shù)字多用表;
(5)GPIB通信線;
(6)16380A標(biāo)準(zhǔn)空氣電容器套件(1~1000 pF)。
圖3 系統(tǒng)硬件組成
4.2 連接原理
連接原理圖見圖4,通過GPIB線型連接或者星型連接均可。
圖4 連接原理圖
4.3 校準(zhǔn)內(nèi)容(全部按照安捷倫廠家標(biāo)準(zhǔn)和格式)
4.3.1 電容儀表頻率校準(zhǔn)
電容儀表頻率校準(zhǔn),范圍1000±0.2kHz,如表1所示。
表1 測試頻率校準(zhǔn)
VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設(shè)置指令
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)’將測試頻率設(shè)定為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‘?dāng)?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 信號電平精度校準(zhǔn)
信號電平精度校準(zhǔn)共6檔,如表2所示。
表2 測試信號電平精度校準(zhǔn)
以測試信號電平20 mV為例,VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設(shè)置指令
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)’將測試信號電壓設(shè)定為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‘?dāng)?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 直流偏置精度校準(zhǔn)
直流偏置精度校準(zhǔn)共17檔,如表3所示。
表3 測試直流偏置精度校準(zhǔn)
以直流偏置電壓1 V為例,VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設(shè)置指令
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)‘將直流偏置電壓設(shè)定為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‘?dāng)?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 開路偏移校準(zhǔn)
開路偏移校準(zhǔn)如表4所示。
表4 開路偏移校準(zhǔn)
VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設(shè)置指令
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)‘啟動(dòng)開路偏移修正
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‘?dāng)?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 量程變化精度校準(zhǔn)
量程變化精度校準(zhǔn),依次連接16380A標(biāo)準(zhǔn)套件1PF、10PF、100PF、1000PF,如表5所示。
表5 量程變化精度校準(zhǔn)
VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設(shè)置指令
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)‘量程設(shè)定為自動(dòng)
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‘?dāng)?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 測試時(shí)間變化精度校準(zhǔn)
用16380A1PF標(biāo)準(zhǔn)件進(jìn)行測試時(shí)間變化精度的校準(zhǔn),如表6所示。
表6 測試時(shí)間變化精度校準(zhǔn)
以Short為例,VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設(shè)置指令
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) '將測試時(shí)間設(shè)置為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‘?dāng)?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 電纜長度補(bǔ)償精度校準(zhǔn)
電纜長度補(bǔ)償精度校準(zhǔn)如表7所示。
表7 電纜長度補(bǔ)償精度校準(zhǔn)
以線長1 m為例,VB代碼指令如下:
viOpenDefaultRM(defrm)‘打開E4980A GPIB通信,端口17,發(fā)送設(shè)置指令
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)‘設(shè)置線長為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‘?dāng)?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兩種儀表的自動(dòng)校準(zhǔn)界面。菜單里有一鍵自動(dòng)校準(zhǔn)全部項(xiàng)目,也有各個(gè)項(xiàng)目單個(gè)校準(zhǔn)。各個(gè)校準(zhǔn)項(xiàng)目都是軟件自動(dòng)發(fā)送GPIB指令去E4980A和3458A,讀取返回值,判斷和記錄在表格當(dāng)中,校準(zhǔn)值有錯(cuò)時(shí)表格自動(dòng)涂紅。校準(zhǔn)完成后沒有任何校準(zhǔn)錯(cuò)誤,數(shù)據(jù)方可導(dǎo)出生成Excel。
圖5 軟件界面
4.5 手動(dòng)和自動(dòng)校準(zhǔn)數(shù)據(jù)的對比
整個(gè)自動(dòng)校準(zhǔn)過程就是計(jì)算機(jī)將校準(zhǔn)指令發(fā)送到儀表、自動(dòng)讀取儀表返回?cái)?shù)值的過程,替代人手動(dòng)在儀表面板按鍵輸入指令、人眼讀取數(shù)值,對于儀表而言實(shí)際上兩者是一樣的。以直流偏置精度校準(zhǔn)為例(見圖6),手動(dòng)與自動(dòng)校準(zhǔn)數(shù)據(jù)幾乎重合。
圖6 直流偏置精度校準(zhǔn)手動(dòng)與自動(dòng)操作對比
4.6 自動(dòng)校準(zhǔn)允許的距離
在自動(dòng)校準(zhǔn)過程中,多次測試值上下浮動(dòng)只能在標(biāo)準(zhǔn)值1%之內(nèi),因?yàn)閮x表在實(shí)際生產(chǎn)測試過程中穩(wěn)定性是一個(gè)重要的指標(biāo)。以16380A標(biāo)準(zhǔn)套件里10PF標(biāo)準(zhǔn)件測試為例(見圖7),儀表多次測試值上下浮動(dòng)均在標(biāo)準(zhǔn)值的1%之內(nèi)。
圖7 10PF標(biāo)準(zhǔn)件校準(zhǔn)數(shù)據(jù)
整個(gè)測控軟件校準(zhǔn)過程無須人手工操作儀表面板,僅需根據(jù)軟件提示連接相應(yīng)組件即可。單臺儀表完成校準(zhǔn)和導(dǎo)出Excel數(shù)據(jù)耗時(shí)從30 min降至5 min,同時(shí)自動(dòng)保存校準(zhǔn)數(shù)據(jù)為Excel文件的同時(shí)錄入數(shù)據(jù)庫,使得電容校準(zhǔn)更加高效、準(zhǔn)確、標(biāo)準(zhǔn)化和通用化。
[1]Keysight product introduction[EB/OL].www.keysight.com
[2]呂強(qiáng)福.電子技術(shù)基礎(chǔ)[M].北京:機(jī)械工業(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—),男,江蘇南京人,工學(xué)學(xué)士,測試設(shè)備工程師,現(xiàn)任職于英飛凌科技(無錫)有限公司。