黃 韜
(南京泊納萊電子科技有限公司,江蘇 南京 211102)
董遠(yuǎn)川 王野平
(同濟(jì)大學(xué) 機(jī)械與能源工程學(xué)院,上海 201804)
飛針測(cè)試機(jī)用探針代替針床,在X-Y方向上裝有多個(gè)由電機(jī)驅(qū)動(dòng)可分別快速移動(dòng)的探針,利用探針在Z方向的移動(dòng)同印制電路板(PCB)焊盤(pán)接觸來(lái)進(jìn)行電氣測(cè)量,四個(gè)探針布置如圖1所示。測(cè)試人員把設(shè)計(jì)工程師的CAD數(shù)據(jù)轉(zhuǎn)換成可使用的文件,這些文件包含了需要測(cè)試焊盤(pán)的點(diǎn)號(hào)、網(wǎng)絡(luò)號(hào)、x、y坐標(biāo)、正反面點(diǎn)屬性信息,由此決定驅(qū)動(dòng)各探針的X、Y、Z電機(jī)移動(dòng)。文件信息中點(diǎn)號(hào)表示測(cè)試焊盤(pán)在PCB測(cè)試坐標(biāo)系中的測(cè)試點(diǎn)編號(hào);網(wǎng)絡(luò)號(hào)表示該測(cè)試焊盤(pán)屬于PCB上哪一網(wǎng)絡(luò);x、y坐標(biāo)表示點(diǎn)號(hào)在坐標(biāo)系中的橫縱坐標(biāo)位置;正反面點(diǎn)屬性信息表示該測(cè)試焊盤(pán)在PCB正面或是背面或是通孔。根據(jù)被測(cè)試PCB的大小情況不同,一塊PCB上會(huì)有幾千甚至上萬(wàn)個(gè)測(cè)試焊盤(pán),如果探針不按一種最優(yōu)或較優(yōu)的路徑移動(dòng)進(jìn)行測(cè)試,可能會(huì)耗費(fèi)數(shù)倍的測(cè)試時(shí)間,延誤生產(chǎn)[1][2]。
圖1 探針布置圖
飛針測(cè)試路徑規(guī)劃本質(zhì)上是一個(gè)旅行推銷(xiāo)員問(wèn)題(TSP,Traveling Saleman Problem)。TSP描述這樣一種場(chǎng)景,一個(gè)推銷(xiāo)員計(jì)劃拜訪多個(gè)地點(diǎn),需要找到一條最短路線,使得所有地點(diǎn)都被訪問(wèn)一次且只有一次,其中每?jī)蓚€(gè)地點(diǎn)之間都可以到達(dá)。幾十年前已找到一些指數(shù)級(jí)算法,雖然能精確地求解TSP,但隨著問(wèn)題規(guī)模變大,這些算法會(huì)出現(xiàn)組合爆炸而完全失效;近似算法或啟發(fā)式算法如模擬退火算法,盡管不能精確求解,但能夠把誤差控制在可容忍范圍內(nèi)并快速得到答案[3][4]。
公司目前采用的飛針測(cè)試機(jī)電測(cè)方法主要包括電容測(cè)試法和電阻測(cè)試法。電容測(cè)試法測(cè)試效率高,但測(cè)得的電容值容易受測(cè)試導(dǎo)線、電磁場(chǎng)等外部條件的干擾,測(cè)試結(jié)果不是十分可靠,而電阻測(cè)試法測(cè)試準(zhǔn)確率高,所以對(duì)于一塊PCB的電測(cè)試先采用電容法對(duì)全部焊盤(pán)進(jìn)行故障排查,對(duì)于有問(wèn)題的焊盤(pán)再采用電阻法進(jìn)行復(fù)測(cè)確認(rèn)。電阻測(cè)試法包括開(kāi)路測(cè)試和短路測(cè)試,根據(jù)測(cè)試焊盤(pán)之間的導(dǎo)通關(guān)系可以將它們分為很多“子集”,每個(gè)“子集”內(nèi)部之間應(yīng)該互相導(dǎo)通,對(duì)應(yīng)的測(cè)試方法為開(kāi)路測(cè)試,也稱(chēng)導(dǎo)通性測(cè)試;任意兩個(gè)不同“子集”之間應(yīng)該互相絕緣,對(duì)應(yīng)的測(cè)試方法為短路測(cè)試,也稱(chēng)絕緣性測(cè)試,業(yè)界習(xí)慣將這樣的“子集”稱(chēng)為同一個(gè)網(wǎng)絡(luò)。
電容測(cè)試法的基本原理為:電容量C=εS/L,ε為介質(zhì)的介電常數(shù),S為導(dǎo)電面積,L為待測(cè)焊盤(pán)與基準(zhǔn)焊盤(pán)之間的距離,開(kāi)路會(huì)導(dǎo)致導(dǎo)電面積S變小,電容值下降,短路會(huì)導(dǎo)致導(dǎo)電面積S增加,電容值上升;同一網(wǎng)絡(luò)之間應(yīng)該導(dǎo)通,不同網(wǎng)絡(luò)之間應(yīng)該絕緣;所以進(jìn)行電容法測(cè)試時(shí),同一網(wǎng)絡(luò)中各焊盤(pán)相對(duì)基準(zhǔn)點(diǎn)的電容值應(yīng)近似相等,如果某一焊盤(pán)處的電容值變小,則在該焊盤(pán)周?chē)嬖陂_(kāi)路情況;如果兩相鄰網(wǎng)絡(luò)中各焊盤(pán)相對(duì)基準(zhǔn)點(diǎn)的電容值近似相等,同時(shí)比標(biāo)準(zhǔn)板的對(duì)應(yīng)電容值大,則兩相鄰網(wǎng)絡(luò)間存在短路情況(是否為相鄰網(wǎng)絡(luò)由官方提供的PCB資料決定)?;谏鲜鲈黼娙轀y(cè)試法基本不可能把有問(wèn)題焊盤(pán)誤測(cè)為無(wú)問(wèn)題焊盤(pán),但該法對(duì)電容太過(guò)依賴(lài),易受電容因素的影響,所以有把無(wú)問(wèn)題焊盤(pán)誤測(cè)為有問(wèn)題焊盤(pán)的可能,不過(guò)這可以通過(guò)電阻法復(fù)測(cè)來(lái)彌補(bǔ)[7][8]。電容測(cè)試法的步驟按先后包括:先測(cè)定基準(zhǔn)網(wǎng)絡(luò)電容值,保證基準(zhǔn)網(wǎng)絡(luò)各焊盤(pán)之間互相導(dǎo)通;再?gòu)幕鶞?zhǔn)網(wǎng)絡(luò)中選取一個(gè)基準(zhǔn)點(diǎn),測(cè)定標(biāo)準(zhǔn)板電容值并記錄;最后測(cè)定待測(cè)PCB各焊盤(pán)電容值,發(fā)現(xiàn)與標(biāo)準(zhǔn)板對(duì)應(yīng)焊盤(pán)電容值不符時(shí)用電阻法進(jìn)行復(fù)測(cè)確認(rèn)[5][6]。
飛針測(cè)試機(jī)電容測(cè)試法的路徑規(guī)劃選定基準(zhǔn)網(wǎng)絡(luò)是一塊PCB上面積最大的網(wǎng)絡(luò),一般來(lái)說(shuō)是接地網(wǎng)絡(luò),在后續(xù)步驟中需要從該網(wǎng)絡(luò)中選取基準(zhǔn)點(diǎn)。基準(zhǔn)網(wǎng)絡(luò)電容測(cè)試法的編程思想如下,開(kāi)發(fā)工具為編程語(yǔ)言C++。首先確定基準(zhǔn)點(diǎn)和基準(zhǔn)針?lè)炙姆N情況:只有正面有測(cè)試焊盤(pán)且通孔數(shù)不為零,無(wú)需考慮更換基準(zhǔn)針問(wèn)題,C探針選為基準(zhǔn)針,通孔測(cè)試焊盤(pán)中選一個(gè)盡量靠邊的作為基準(zhǔn)點(diǎn);只有反面有測(cè)試焊盤(pán)且通孔數(shù)不為零,無(wú)需考慮更換基準(zhǔn)針問(wèn)題,A探針選為基準(zhǔn)針,通孔測(cè)試焊盤(pán)中選一個(gè)盡量靠邊的作為基準(zhǔn)點(diǎn);只有正面有測(cè)試焊盤(pán)(通孔為零)或反面測(cè)試焊盤(pán)數(shù)大于等于正面(有無(wú)通孔無(wú)所謂),要考慮更換基準(zhǔn)針問(wèn)題,A探針先選為基準(zhǔn)針,正面測(cè)試焊盤(pán)中選一個(gè)盡量靠邊的作為基準(zhǔn)點(diǎn);只有反面有測(cè)試焊盤(pán)(通孔為零)或正面測(cè)試焊盤(pán)數(shù)大于反面(有無(wú)通孔無(wú)所謂),要考慮更換基準(zhǔn)針問(wèn)題,C探針先選為基準(zhǔn)針,反面測(cè)試焊盤(pán)中選一個(gè)盡量靠邊的作為基準(zhǔn)點(diǎn)?;鶞?zhǔn)針在電測(cè)過(guò)程中應(yīng)保持不動(dòng),為其余三根探針進(jìn)行路徑規(guī)劃[9]。
在用C++編寫(xiě)路徑規(guī)劃算法時(shí),不能僅考慮使探針電測(cè)路徑最短,因?yàn)樗母结樖侨康竭_(dá)指定位置后同時(shí)落針的,所以會(huì)出現(xiàn)“小步等待大步”的問(wèn)題,為使電測(cè)時(shí)間盡可能短,生成測(cè)試路徑時(shí)應(yīng)盡可能將相似步距的運(yùn)動(dòng)編排在一起。先將所有測(cè)試焊盤(pán)按照密度分為幾個(gè)簇;再在每個(gè)簇中以中心線分界將測(cè)試焊盤(pán)分給同一面的左右兩探針,這是為了防止撞針左探針橫坐標(biāo)要小于右探針橫坐標(biāo);最后要考慮更換基準(zhǔn)針的問(wèn)題。編程中最核心的兩個(gè)算法是聚類(lèi)算法(KMeans)和模擬退火算法(SaAlgorithm),前者用來(lái)把測(cè)試焊盤(pán)按密集程度分為幾個(gè)小簇,后者用來(lái)把屬于每個(gè)探針的測(cè)試焊盤(pán)按照不重復(fù)遍歷路徑之和最短,重新排序[10]。圖2是采用聚類(lèi)算法后,將同一面的測(cè)試焊盤(pán)在PCB坐標(biāo)系中,按照密集程度劃分為4個(gè)小簇。為使對(duì)比效果明顯,采用Pycharm繪圖,為分類(lèi)后不同簇的測(cè)試焊盤(pán)標(biāo)注不同顏色。圖3是在每一簇中以中心線分界將測(cè)試焊盤(pán)分給同一面的左右兩探針。
圖2 聚類(lèi)算法分簇圖
圖3 將每一簇焊盤(pán)分給同面左右兩探針
合理的路徑規(guī)劃關(guān)乎飛針測(cè)試機(jī)的電測(cè)效率,這一點(diǎn)在PCB板測(cè)試焊盤(pán)數(shù)上千上萬(wàn)時(shí)尤其明顯,所以制定一套合理的路徑規(guī)劃算法是一個(gè)關(guān)鍵問(wèn)題。不同的電測(cè)方法對(duì)應(yīng)不同的路徑規(guī)劃算法,常用的電測(cè)方法主要包括電容測(cè)試法和電阻測(cè)試法,本文重點(diǎn)論述了基準(zhǔn)網(wǎng)絡(luò)電容測(cè)試法的路徑規(guī)劃算法。本文也可為飛針測(cè)試機(jī)其他電測(cè)方法的路徑規(guī)劃提供參考。