印制电路板飞针测试机基准网络电测路径规划
2022-06-25黄韬
黄 韬
(南京泊纳莱电子科技有限公司,江苏 南京 211102)
董远川 王野平
(同济大学 机械与能源工程学院,上海 201804)
1 飞针测试的路径规划
飞针测试机用探针代替针床,在X-Y方向上装有多个由电机驱动可分别快速移动的探针,利用探针在Z方向的移动同印制电路板(PCB)焊盘接触来进行电气测量,四个探针布置如图1所示。测试人员把设计工程师的CAD数据转换成可使用的文件,这些文件包含了需要测试焊盘的点号、网络号、x、y坐标、正反面点属性信息,由此决定驱动各探针的X、Y、Z电机移动。文件信息中点号表示测试焊盘在PCB测试坐标系中的测试点编号;网络号表示该测试焊盘属于PCB上哪一网络;x、y坐标表示点号在坐标系中的横纵坐标位置;正反面点属性信息表示该测试焊盘在PCB正面或是背面或是通孔。根据被测试PCB的大小情况不同,一块PCB上会有几千甚至上万个测试焊盘,如果探针不按一种最优或较优的路径移动进行测试,可能会耗费数倍的测试时间,延误生产[1][2]。
图1 探针布置图
飞针测试路径规划本质上是一个旅行推销员问题(TSP,Traveling Saleman Problem)。TSP描述这样一种场景,一个推销员计划拜访多个地点,需要找到一条最短路线,使得所有地点都被访问一次且只有一次,其中每两个地点之间都可以到达。几十年前已找到一些指数级算法,虽然能精确地求解TSP,但随着问题规模变大,这些算法会出现组合爆炸而完全失效;近似算法或启发式算法如模拟退火算法,尽管不能精确求解,但能够把误差控制在可容忍范围内并快速得到答案[3][4]。
2 电容测试法的原理和步骤
公司目前采用的飞针测试机电测方法主要包括电容测试法和电阻测试法。电容测试法测试效率高,但测得的电容值容易受测试导线、电磁场等外部条件的干扰,测试结果不是十分可靠,而电阻测试法测试准确率高,所以对于一块PCB的电测试先采用电容法对全部焊盘进行故障排查,对于有问题的焊盘再采用电阻法进行复测确认。电阻测试法包括开路测试和短路测试,根据测试焊盘之间的导通关系可以将它们分为很多“子集”,每个“子集”内部之间应该互相导通,对应的测试方法为开路测试,也称导通性测试;任意两个不同“子集”之间应该互相绝缘,对应的测试方法为短路测试,也称绝缘性测试,业界习惯将这样的“子集”称为同一个网络。
电容测试法的基本原理为:电容量C=εS/L,ε为介质的介电常数,S为导电面积,L为待测焊盘与基准焊盘之间的距离,开路会导致导电面积S变小,电容值下降,短路会导致导电面积S增加,电容值上升;同一网络之间应该导通,不同网络之间应该绝缘;所以进行电容法测试时,同一网络中各焊盘相对基准点的电容值应近似相等,如果某一焊盘处的电容值变小,则在该焊盘周围存在开路情况;如果两相邻网络中各焊盘相对基准点的电容值近似相等,同时比标准板的对应电容值大,则两相邻网络间存在短路情况(是否为相邻网络由官方提供的PCB资料决定)。基于上述原理电容测试法基本不可能把有问题焊盘误测为无问题焊盘,但该法对电容太过依赖,易受电容因素的影响,所以有把无问题焊盘误测为有问题焊盘的可能,不过这可以通过电阻法复测来弥补[7][8]。电容测试法的步骤按先后包括:先测定基准网络电容值,保证基准网络各焊盘之间互相导通;再从基准网络中选取一个基准点,测定标准板电容值并记录;最后测定待测PCB各焊盘电容值,发现与标准板对应焊盘电容值不符时用电阻法进行复测确认[5][6]。
3 基准网络电容测试法路径规划
飞针测试机电容测试法的路径规划选定基准网络是一块PCB上面积最大的网络,一般来说是接地网络,在后续步骤中需要从该网络中选取基准点。基准网络电容测试法的编程思想如下,开发工具为编程语言C++。首先确定基准点和基准针分四种情况:只有正面有测试焊盘且通孔数不为零,无需考虑更换基准针问题,C探针选为基准针,通孔测试焊盘中选一个尽量靠边的作为基准点;只有反面有测试焊盘且通孔数不为零,无需考虑更换基准针问题,A探针选为基准针,通孔测试焊盘中选一个尽量靠边的作为基准点;只有正面有测试焊盘(通孔为零)或反面测试焊盘数大于等于正面(有无通孔无所谓),要考虑更换基准针问题,A探针先选为基准针,正面测试焊盘中选一个尽量靠边的作为基准点;只有反面有测试焊盘(通孔为零)或正面测试焊盘数大于反面(有无通孔无所谓),要考虑更换基准针问题,C探针先选为基准针,反面测试焊盘中选一个尽量靠边的作为基准点。基准针在电测过程中应保持不动,为其余三根探针进行路径规划[9]。
在用C++编写路径规划算法时,不能仅考虑使探针电测路径最短,因为四根探针是全部到达指定位置后同时落针的,所以会出现“小步等待大步”的问题,为使电测时间尽可能短,生成测试路径时应尽可能将相似步距的运动编排在一起。先将所有测试焊盘按照密度分为几个簇;再在每个簇中以中心线分界将测试焊盘分给同一面的左右两探针,这是为了防止撞针左探针横坐标要小于右探针横坐标;最后要考虑更换基准针的问题。编程中最核心的两个算法是聚类算法(KMeans)和模拟退火算法(SaAlgorithm),前者用来把测试焊盘按密集程度分为几个小簇,后者用来把属于每个探针的测试焊盘按照不重复遍历路径之和最短,重新排序[10]。图2是采用聚类算法后,将同一面的测试焊盘在PCB坐标系中,按照密集程度划分为4个小簇。为使对比效果明显,采用Pycharm绘图,为分类后不同簇的测试焊盘标注不同颜色。图3是在每一簇中以中心线分界将测试焊盘分给同一面的左右两探针。
图2 聚类算法分簇图
图3 将每一簇焊盘分给同面左右两探针
4 结束语
合理的路径规划关乎飞针测试机的电测效率,这一点在PCB板测试焊盘数上千上万时尤其明显,所以制定一套合理的路径规划算法是一个关键问题。不同的电测方法对应不同的路径规划算法,常用的电测方法主要包括电容测试法和电阻测试法,本文重点论述了基准网络电容测试法的路径规划算法。本文也可为飞针测试机其他电测方法的路径规划提供参考。