999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于NI-VISA的晶圓測試探針臺遠程控制軟件的設(shè)計與實現(xiàn)

2021-02-22 10:46:52杜開元盧旭坤
計算機測量與控制 2021年1期
關(guān)鍵詞:設(shè)備

杜開元,袁 俊,盧旭坤

(1.廣東利揚芯片測試股份有限公司,廣東 東莞 523041; 2.西安電子科技大學 微電子學院, 西安 710071)

0 引言

近年來,晶圓測試在整個芯片制造流程中有著重要的地位,測試的成本占芯片制造總成本的30%,wafer中性能異常的die通過人工測試是難以實現(xiàn)的,而探針臺(prober)作為一種在晶圓級芯片測試時必須的探針測試設(shè)備,通過探針測試,大大減少了測試時間以及后續(xù)流程中的成本與加工耗費[1]。隨著儀器自動化技術(shù)的發(fā)展,wafer測試設(shè)備的自動化程度越來越高,手動或半自動測試設(shè)備慢慢被淘汰,使用全自動探針臺的探針測試成為了晶圓測試的主要手段[2]。由于晶圓測試對工作環(huán)境和無塵條件的苛刻要求以及主流Prober探針臺只能通過自帶觸摸顯示屏進行操作的限制,使得芯片測試研發(fā)工程師對測試方案進行調(diào)試的過程變得繁瑣,并且耗費了大量時間在不必要的環(huán)節(jié)。

對GPIB通訊協(xié)議進行應(yīng)用編程時需要使用美國國家儀器NI公司所開發(fā)的NI-VISA接口。該接口適用于常用的多種儀器總線通信,并且自身有獨特的軟件架構(gòu),保證在驅(qū)動程序時不受設(shè)備平臺、通信總線和外部環(huán)境的限制。使用NI-VISA進行儀器控制的應(yīng)用開發(fā)可以通過一模一樣的方法與儀器通信,而不用考慮接口具體是哪一種類型,大大簡化儀器的控制應(yīng)用[3]。

Python編程語言有著豐富的庫以及GUI開發(fā)環(huán)境,Pyvisa庫搭配NI公司的gpib-32.dll動態(tài)鏈接時庫文件作為開發(fā)底層文件,再加上PyQt5作為GUI開發(fā)工具進行人機交互界面開發(fā),可以實現(xiàn)實時控制測試設(shè)備儀器的功能[4]。

本文通過python、NI-VISA以及GPIB提出探針臺無法進行遠程化、自動化操作現(xiàn)狀的解決方案,以本地局域網(wǎng)內(nèi)計算機測站終端為核心,GPIB接口作為端口,python編程實現(xiàn)友好的程控人機交互界面,NAT內(nèi)網(wǎng)穿透技術(shù)作為遠程控制橋梁,實現(xiàn)選擇儀器、探針臺的map圖顯示、儀器控制以及儀器狀態(tài)監(jiān)控等處理功能,控制探針臺Prober進行晶圓探針測試,實現(xiàn)研發(fā)中心對車間探針臺儀器的集中統(tǒng)一管理。

1 系統(tǒng)硬件結(jié)構(gòu)設(shè)計

1.1 系統(tǒng)硬件結(jié)構(gòu)

系統(tǒng)測試站部分由探針臺prober、GPIB-USB轉(zhuǎn)換接口、測試站終端、路由器組成,探針臺與測試站終端之間需要安裝連接GPIB-USB轉(zhuǎn)換接口來實現(xiàn)設(shè)備與終端的GPIB通信(如圖1),由于探針臺本身與測站終端的GPIB連接還承擔著與ATE通訊的任務(wù),所以在軟件進行連接的時候會先行釋放ATE與探針臺之間的GPIB連接句柄,以免造成GPIB總線忙的狀態(tài)。

圖1 系統(tǒng)硬件結(jié)構(gòu)圖

系統(tǒng)遠程控制部分由遠程控制服務(wù)器及遠程客戶端組成,使用frp內(nèi)網(wǎng)穿透的技術(shù),通過在遠程客戶端進行訪問IP和密鑰等設(shè)置,可以穿透連接控制內(nèi)網(wǎng)環(huán)境中的測站終端[5]。

1.2 與探針臺連接

NI GPIB-USB-HS+是NI公司開發(fā)的一款I(lǐng)EEE 488控制器和便攜式分析儀,用于采用USB插槽的計算機。使用該設(shè)備可將儀器集成到系統(tǒng)中,以及排除和解決GPIB硬件和軟件問題,由于不需要GPIB電纜,因此可使用高速USB端口控制最多14個GPIB儀器。

GPIB連接線可以連接測試站終端與探針臺Prober,適用于從Lab到工廠車間等不同環(huán)境內(nèi)的儀器控制應(yīng)用,多個GPIB連接線可以連接到同一測試終端,通過GPIB連接模塊的選擇來進行選擇性控制與監(jiān)測。

2 系統(tǒng)軟件設(shè)計

2.1 功能簡介

軟件設(shè)計分為測站終端與客戶端兩部分。測站終端部分通過GUI人機交互界面對GPIB總線上連接的設(shè)備進行連接、監(jiān)控、控制及測試結(jié)果顯示。測站終端模塊中的GPIB控制子模塊主要是實現(xiàn)測站終端與當前總線上prober設(shè)備的連接、控制權(quán)限句柄的獲取。測試進程獲取子模塊主要用于實時map圖的獲取以及測試結(jié)果的獲取。儀器狀態(tài)監(jiān)控子模塊主要用于實時監(jiān)控探針臺狀態(tài)與異常,便于及時處理。

遠程客戶端部分能夠使用frp內(nèi)網(wǎng)穿透技術(shù)通過內(nèi)網(wǎng)中連接了外網(wǎng)的主機作為中轉(zhuǎn),將測試站終端的端口連接到客戶電腦,再使用Windows自帶MSTAC遠程桌面連接進行訪問,就實現(xiàn)了遠程操控未連接外網(wǎng)的電腦并控制本地探針臺的功能。

2.2 測試站模塊設(shè)計

如圖2所示,客戶端人機交互界面能夠達到和實際操作探針臺一樣的交互體驗。

圖2 測試站模塊界面

顯示模塊是通過python的pillow庫顯示Map圖信息、BIN項信息、坐標信息、測試結(jié)果以及狀態(tài)監(jiān)控顯示。

儀器查詢連接模塊,能夠選擇不同公司不同型號探針臺,并通過GPIB連接線進行測試站終端與prober的連接。

儀器參數(shù)設(shè)施模塊通過界面修改OD等探針臺測試中的重要參數(shù),設(shè)置prober參數(shù)。

儀器交互控制模塊,通過人機交互界面的按鈕,對探針臺進行移動、扎針以及抬針等操作。

2.3 遠程客戶端模塊設(shè)計

使用frp內(nèi)網(wǎng)穿透的技術(shù)和Python編寫遠程客戶端GUI模塊,將frp的程序和config設(shè)置嵌入到遠程客戶端中,將內(nèi)網(wǎng)穿透需要的參數(shù)輸入框放置在遠程客戶端GUI界面,通過在遠程客戶端進行訪問IP和密鑰等設(shè)置,可以通過公網(wǎng)端口穿透內(nèi)網(wǎng)并與內(nèi)網(wǎng)環(huán)境中的測站終端PC端口連接。

圖3 遠程客戶端模塊界面

2.4 軟件設(shè)計流程圖

軟件基于Python編程語言來進行設(shè)計,啟動程序后通過選擇不同設(shè)備類型來選擇設(shè)備指令集,該選擇將決定后續(xù)收發(fā)指令階段的底層內(nèi)容,通過NI-VISA動態(tài)鏈接庫底層文件中的查詢函數(shù)查詢當前GPIB總線上連接的設(shè)備地址,選取prober設(shè)備地址后發(fā)送ibdev命令獲取handler,prober進入等待接收命令階段。讀取待測wafer的信息文件來提取map圖坐標系以及wafer基本信息,獲取坐標系后自動發(fā)送查詢指令并接受坐標信息,將坐標值返回到基于pillow庫的cavans模塊進行分析作圖,作圖完成后對GUI顯示框刷新并更新當前map圖,完成刷新后返回指令發(fā)送準備狀態(tài)等待新的操作。具體軟件設(shè)計流程圖如圖4。

圖4 遠程客戶端模塊界面

2.5 遠程控制流程

遠程控制流程由客戶端主機組織,配置完成并完成點對點內(nèi)網(wǎng)穿透連接后,由SSH技術(shù)實現(xiàn)本地主機端口與測站主機端口的互連,客戶端主機借用本地主機端口向測站探針臺發(fā)送指令進行測試,并使用同樣的端口接受并返回測試與控制的結(jié)果,具體流程如圖5所示。

圖5 遠程控制流程圖

3 系統(tǒng)關(guān)鍵技術(shù)實現(xiàn)

3.1 Python編程實現(xiàn)儀器連接與控制

使用NI公司開發(fā)的GPIB連接線,能夠滿足測站終端與多臺設(shè)備連接并進行控制的要求,同時將NI驅(qū)動文件中的gpib32.dll動態(tài)鏈接庫與Python自帶的Py-Visa庫結(jié)合并作為主程序中GPIB通訊協(xié)議的底層文件,再使用Python編程構(gòu)造GUI人機交互界面,將設(shè)備的程序控制模塊與GUI的模塊進行連接。

使用Python在Pycharm開發(fā)環(huán)境下與探針臺控制流程如下。

1)調(diào)用動態(tài)鏈接庫與Py-Visa庫:

編寫底層文件,通過import方法將兩個庫引用并封裝到函數(shù)中。

2)查詢并選擇儀器對象:

rm = pyvisa.ResourceManager();//查詢并返回當前GPIB連接的儀器信息

Device = self.rm.list_resources();//查詢到的儀器存入list

3)獲得儀器連接地址:

GPIB::XX::INSTR是被連接儀器的代號,其中“XX”就是GPIB通訊中的paddress,所以只要使用“paddress = int(machine.split('::')[1])”代碼獲得paddress。

4)儀器連接:

將獲得的paddress傳入封裝好的connect函數(shù)中:

Gpib.Gpib(0, self.paddress, 0, timeout=12, send_eoi=1, eos_mode=0);

檢查返回值,如果正確則完成儀器的連接。

Connect函數(shù)具體實現(xiàn)代碼如下:

if isinstance(name, str):

self.id = gpib.find(name)

self._own = True

else:

self.id = gpib.dev(name, pad, sad, timeout, send_eoi, eos_mode)

self._own = True

其中g(shù)pib.find與gpib.dev就是將gpib32動態(tài)鏈接庫與Py-visa對應(yīng)功能模塊封裝起來的函數(shù),例如:

def dev(board, pad, sad=NO_SAD, tmo=T30s, sendeoi=1, eos=0):

ud = _lib.ibdev(board, pad, sad, tmo, sendeoi, eos)

if ud < 0:

raise GpibError("dev")

return ud

5)儀器控制:

儀器控制通過GPIB通訊協(xié)議結(jié)合儀器控制標準指令來實現(xiàn),使用底層函數(shù)綜合出的write與read函數(shù),配合不同類型prober的標準CMD即可實現(xiàn)儀器控制,例如TEL公司UF系列prober的chunk移動代碼如下:

up_d = b'Y+01 '

self.my_instrument.write(up_d)

self.my_instrument.write(self.A_b)

try:

cCoor = self.my_instrument.read(1000)

except GpibError as e:

self.gpib_read_error()

6)接收儀器信息并顯示:

Prober設(shè)備在GPIB控制過程中接收到指令后會根據(jù)指令進行相應(yīng)動作,在操作結(jié)束后返回操控者期望的信息,同時根據(jù)返回信息中所包含的坐標和BIN項等信息,并在Pillow作圖模塊中刷新當前Map圖,然后將最新Map圖更新至顯示模塊。由于優(yōu)化了Pillow作圖模塊的代碼,使得在更新Map圖時只針對發(fā)生改變的Die進行改動,而不是重新讀取Map圖信息,大大的加快了顯示模塊更新的速度。

7)儀器狀態(tài)狀態(tài)監(jiān)控:

為了使測站終端能夠監(jiān)控prober設(shè)備狀態(tài),同時prober能向終端返回異常報警、發(fā)送準備完成等通知,為此GPIB通訊協(xié)議設(shè)置了SRQ(服務(wù)請求)功能。當已連接的設(shè)備向測站終端發(fā)出SRQ請求,那么GPIB總線上SRQ線為”TURE”,通知測站終端有連接在總線上的設(shè)備發(fā)出了服務(wù)請求。但是僅憑總線上的SRQ信號無法確定發(fā)出請求設(shè)備的地址,于是需要測站終端進行輪詢處理,查詢發(fā)出請求的地址并處理請求內(nèi)容。

在程序中狀態(tài)監(jiān)控分為兩部分,使用多線程的工作模式,其中監(jiān)控模塊通過while循環(huán)定時在總線上一臺一臺地查詢當前SRQ狀態(tài),被查詢的設(shè)備向測站終端反饋9 bit的數(shù)據(jù),其中包含最高位的狀態(tài)字節(jié)以及余下八位SRQ請求數(shù)據(jù)。測站終端通過分析返回的數(shù)據(jù),監(jiān)控哪一臺設(shè)備發(fā)出了SRQ,提出何種請求。而指令反饋模塊則是將SRQ請求查詢設(shè)置在向設(shè)備發(fā)送指令之后,這樣既有準確的設(shè)備地址和指令內(nèi)容,又可以快速監(jiān)控設(shè)備對指令的反應(yīng)情況。狀態(tài)監(jiān)控模塊的內(nèi)容都將實時顯示在GUI界面中的顯示模塊,便于使用者查看。具體SRQ請求如表1。

表1 P12機臺SRQ請求表

3.2 實現(xiàn)人機交互界面的設(shè)計

遠程控制人機交互界面GUI的設(shè)計通過使用Python提供的QtDesigner集成式套件。設(shè)計步驟如下:

在工具界面放置一個主窗口Mainwindow控件作為GUI的框架。

根據(jù)提前設(shè)計規(guī)劃好的功能模塊,通過layout布局合理的放置Frame作為模塊框架。

在相應(yīng)的功能模塊Frame中加入ListWidget、pushbutton和combox等控件。

通過信號槽的方式將button_click等事件與程序中的功能函數(shù)連接起來。

完成GUI的設(shè)計后會生成ui文件,通過配置external tools中的pyuic工具對ui文件進行轉(zhuǎn)換生成py文件,py文件中的Mainwindow就是GUI主界面,然后在軟件設(shè)計主程序中import主界面py文件,就可以將主界面中的各個模塊與主程序中的程序模塊通過信號槽連接,實現(xiàn)人機交互界面的設(shè)計。

3.3 內(nèi)外網(wǎng)NAT穿透的實現(xiàn)

從20世紀90年代開始,一種被稱作網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)的技術(shù)誕生,也叫做網(wǎng)絡(luò)地址偽裝或者IP地址偽裝(IP masquerading),這種技術(shù)廣泛應(yīng)用在解決由IPv4地址不足引起的保存IP地址困難問題。解決的方法是在IP數(shù)據(jù)包通過路由器或防火墻時重新編寫發(fā)出數(shù)據(jù)包的IP地址或被訪問的IP地址。這種技術(shù)的最佳使用場景是在內(nèi)網(wǎng)有多臺主機但只有一個公有IP地址訪問外網(wǎng)的情況。

NAT穿透,就是要在兩個處于不同類型NAT網(wǎng)絡(luò)下的節(jié)點之間建立起穩(wěn)定的直接連接,要實現(xiàn)這種直接連接,必須的條件是互連雙方互相知道對方的公網(wǎng)IP與端口,這樣才能互相發(fā)送數(shù)據(jù)包來建立連接[7]。通過分析可知,本軟件所在的公司網(wǎng)絡(luò)為圓錐形地址限制NAT(Address-Restricted cone NAT),也就是內(nèi)網(wǎng)各主機的客戶端必須首先發(fā)送數(shù)據(jù)包到對方IP地址,然后才能接收來自對方IP地址的數(shù)據(jù)包。在內(nèi)外網(wǎng)訪問方面,唯一的限制是要求數(shù)據(jù)包是來自對方IP地址。內(nèi)部地址和端口映射到外部地址和端口,所有發(fā)自內(nèi)網(wǎng)主機的數(shù)據(jù)包都經(jīng)由外部地址和端口向外發(fā)送。外網(wǎng)主機地址(不限制端口)能通過給外部地址和端口發(fā)包到達內(nèi)網(wǎng)。具體內(nèi)外網(wǎng)訪問類型如圖6所示。

圖6 圓錐形地址限制NAT

要想實現(xiàn)圓錐形地址受限NAT的穿透,需要能輕松獲得對方公網(wǎng)IP與端口,為了實現(xiàn)這種功能,選用FRP來安全地向?qū)Ψ奖┞蹲陨鞩P地址與端口。FRP(fast reverse proxy)是一個高效安全的可用于內(nèi)外網(wǎng)NAT穿透的反向代理(reverse proxy)應(yīng)用,支持tcp, udp協(xié)議,為 http和https應(yīng)用協(xié)議提供了額外的能力,且嘗試性支持了點對點穿透。對于公司來說,某些服務(wù)如果直接暴露在公網(wǎng)上將會存在一定的安全隱患,所以需要安全地暴露內(nèi)網(wǎng)服務(wù)。使用xtcp類型的代理可以避免讓任何人都能訪問要穿透的服務(wù),所以需要在客戶端訪問者也運行一個frp client。

Frp使用方法為在客戶端與本地端進行config的配置,并且搭建一個輔助服務(wù)器來使客戶端與本地端互相交換config中配置的IP和端口,服務(wù)器有著固定的公網(wǎng)IP與端口,所有本地端與客戶端都能連接到輔助服務(wù)器,服務(wù)器就獲得了所有本地端與客戶端的IP和端口。客戶端只要請求想穿透的本地端,服務(wù)器驗證雙方config配置中用戶名和密鑰然后就可以返回目標本地端的外網(wǎng)IP和端口,同時通知目標本地端即將進行FRP連接并發(fā)送客戶端的外網(wǎng)IP與端口,再運行frpc與frps時能夠通過本地主機轉(zhuǎn)發(fā)內(nèi)網(wǎng)測站終端的SSH服務(wù),客戶端就可以通過在兩邊都部署上frpc建立起客戶端與本地主機之間直接的連接,就實現(xiàn)了穿透NAT設(shè)備的需求,具體結(jié)構(gòu)如圖7所示。

圖7 Frp穿透模式

上述應(yīng)用情景是基于穿透雙方的NAT類型一致時,服務(wù)器僅作為輔助來實現(xiàn)數(shù)據(jù)中轉(zhuǎn)。但遇到P2P穿透的應(yīng)用情景時,往往雙方NAT類型并不相同,這個時候客戶端到服務(wù)器與客戶端到本地端的IP和端口都是不同的,但本地端的外網(wǎng)IP與端口卻沒有改變,所以客戶端到本地端的連接是可以實現(xiàn)的,只要通過UDP通訊中的recvfrom address結(jié)構(gòu)體,就能得到客戶端的外網(wǎng)IP和端口,即可實現(xiàn)P2P穿透的應(yīng)用。

4 系統(tǒng)應(yīng)用效果

該軟件針對晶圓測試探針臺遠程化自動化操作需求開發(fā),使用該系統(tǒng)進行晶圓測試方案開發(fā)調(diào)試的開發(fā)流程與原有開發(fā)流程對比,有效地縮短了測試方案開發(fā)周期,并且在探針臺管理、實時監(jiān)控等方面也更具優(yōu)勢,具體見表2。

表2 本軟件開發(fā)模式與原有開發(fā)模式應(yīng)用性對比

5 結(jié)束語

該軟件從2019年投入使用后,截至2020年4月,已經(jīng)參與近15個晶圓測試項目的開發(fā)流程,軟件運行良好、操作方便且效果顯著,具有良好的可靠性、可移植性、可交互性,其中內(nèi)網(wǎng)穿透效果良好,穿透率達到95%。

本文結(jié)合晶圓測試與探針臺設(shè)備的實際情況,基于現(xiàn)有探針臺設(shè)備以及GPIB等硬件資源的基礎(chǔ)上設(shè)計開發(fā)了一個探針臺的內(nèi)外網(wǎng)NAT穿透遠程控制管理軟件,由于該軟件與不同類型探針臺的標準指令相關(guān)度不高,在軟件開發(fā)過程中使用模塊化開發(fā),可以在后續(xù)使用中針對新的設(shè)備進行推廣[8]。軟件對多站點同步自動化管理、測試數(shù)據(jù)的統(tǒng)計分析還需要進一步的研究應(yīng)用。

猜你喜歡
設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
調(diào)試新設(shè)備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發(fā)射設(shè)備中平衡輸入與不平衡輸入的轉(zhuǎn)換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設(shè)備
500kV輸變電設(shè)備運行維護探討
HTC斥資千萬美元入股虛擬現(xiàn)實設(shè)備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設(shè)備篇
如何在設(shè)備采購中節(jié)省成本
主站蜘蛛池模板: 日韩一区精品视频一区二区| 国产精品99在线观看| 亚洲色精品国产一区二区三区| 东京热高清无码精品| 国产精品蜜芽在线观看| 青青操视频免费观看| 高清无码一本到东京热| 国产精品美女网站| WWW丫丫国产成人精品| 国产男女免费视频| 夜夜拍夜夜爽| 2020国产精品视频| 高清无码一本到东京热| 国产欧美在线视频免费| 一级片免费网站| 色噜噜狠狠色综合网图区| 色综合a怡红院怡红院首页| jizz亚洲高清在线观看| 国产成人福利在线视老湿机| 国产人在线成免费视频| 操国产美女| 亚洲第一区精品日韩在线播放| 极品尤物av美乳在线观看| 在线欧美日韩| 国产亚洲欧美另类一区二区| 天天摸夜夜操| 成人午夜免费视频| 72种姿势欧美久久久久大黄蕉| 伊人久热这里只有精品视频99| 亚洲成AV人手机在线观看网站| 欧美自慰一级看片免费| 人妻一区二区三区无码精品一区| 国产成人h在线观看网站站| 国产又粗又爽视频| 国产黄网站在线观看| 亚洲第一网站男人都懂| 久草视频中文| 亚洲综合婷婷激情| 欧美有码在线观看| 91在线精品免费免费播放| 国产欧美网站| 91麻豆精品视频| 免费女人18毛片a级毛片视频| 97av视频在线观看| 日本手机在线视频| 亚洲精品第1页| 亚洲另类第一页| 亚洲无码高清一区二区| 久久国产精品影院| 伊人色在线视频| 亚洲天堂.com| 亚洲欧洲自拍拍偷午夜色| 免费中文字幕一级毛片| 国产亚洲精品97在线观看| 日韩欧美国产综合| 日韩精品免费一线在线观看| 欧美不卡二区| 一个色综合久久| 在线亚洲小视频| 亚洲码在线中文在线观看| 国产在线观看第二页| 欧美国产在线看| 中文字幕乱码中文乱码51精品| 97视频精品全国在线观看| 国产欧美亚洲精品第3页在线| 亚洲日韩Av中文字幕无码| 亚洲福利视频一区二区| 亚洲国产日韩一区| 免费视频在线2021入口| 中文字幕一区二区人妻电影| 国产xx在线观看| 天堂岛国av无码免费无禁网站| 亚洲国内精品自在自线官| 在线不卡免费视频| 亚洲精品大秀视频| 99热亚洲精品6码| 色窝窝免费一区二区三区| 福利一区在线| 天天视频在线91频| 亚洲男人天堂网址| 国产区在线看| 午夜a级毛片|