反向技术
研究中心

当前位置:首页 > 技术支持与下载 > PCB软件

如何对MCM-D基板上的图形进行光学检测

更新时间:2015-11-05 11:41:45  点击次数:1113次 打印
MCM-D基板形貌自动光学检测(AOI)系统是由电子部电子科学研究院下达的军工预研项目,其目的是对MCM-D基板上以聚酰亚胺材料为介质制作的图形质量进行光学检测。检测的重点是对图形的凸出、缺损、断裂、多余物等进行判断,为制造MCM-D基板过程中剔除不合格品或进行修补提供可靠的依据。

MCM-D基板形貌自动光学检测(AOI)系统是由电子部电子科学研究院下达的军工预研项目,其目的是对MCM-D基板上以聚酰亚胺材料为介质制作的图形质量进行光学检测。检测的重点是对图形的凸出、缺损、断裂、多余物等进行判断,为制造MCM-D基板过程中剔除不合格品或进行修补提供可靠的依据。

九十年代初,美国已掌握了MCM-D的自动光学检测技术,并研制出相应的AOI检测设备。我国的AOI技术发展也比较快,但AOI用于MCM-D,目前尚未见报导。

本文介绍了MCM-D自动光学检测系统研制过程中计算机软件的研究。MCM-D基板线条精细,布线密度高,介质层采用透明介质,上下层图形均可见,给自动检测带来很大困难。软件着重研究了顶层图形分离、故障提取和识别技术以及对精密移动系统的控制。

本项目解决了对MCM-D基板上的图形进行光学检测的主要技术问题,并研制成功一台实现上述技术要求的功能样机。

2 主要技术指标

MCM-D自动光学检测系统的技术指标如下:

⑴测试面积:≥25mm×35mm

⑵最小像素:5μm

⑶测试速度:≥4.5cm/min

⑷水平方向分辨率:1024个像素

3 设计原理及总体软件设计

3.1 系统原理框图

MCM-D基板形貌检测系统由以下几部分组成:

a.主控计算机及外围设备 b.平场显微摄像系统

c.高速图像采集系统 d.载片台及精密移动系统

e.步进电机控制及驱动系统

系统原理框图见图1。

3.2 设计原理

MCM-D多层布线基板线条精细,布线密度很高。由于介质层采用聚酰亚胺,上下层布线图形都是可见的,给自动检测带来很大困难。因此该系统除了涉及到常规的图像采集、处理、识别技术外,还要研究显微摄像技术、图像分离技术及精密光学移动控制技术。

本系统设计原理如下:

放置在载片台上的被测MCM-D基板通过平场光学显微镜放大后,经CCD摄取送入高速图像采集卡,图像采集卡将图像送入计算机处理。

通过计算机软件,将被测板图像进行滤波、灰度校正和顶层分离,形成被测板顶层布线的二值化图形。此二值化图形与同位置的标准板顶层二值化图形进行比较,其差值图形即为故障图形。

根据故障图形的大小和位置,对故障图形进行判别、分类和剔除,并记录下来。同时显示在计算机屏幕上。

因为显微镜视野和CCD面积所限,每幅图像实际面积很小。为了检测整块板,必须通过扫描的方法,一幅一幅处理。因此,检测完一幅后,载片台必须精确地移动一幅的距离,以便对下一幅图像进行采集处理。计算机软件必须通过步进电机控制卡控制载片台的精密移动,使图像采集、图像处理和载片台移动协调工作,实现整块基板的自动检测。

3.3 总体软件设计

整个检测系统的协调工作都是由软件控制的。总体软件采用VC++5.0语言在中文WIN98环境下编程,具有直观方便的图形操作界面[1]。

该软件具有如下功能:

a. 图像操作功能

① 图像采集:标准板图像和被测板图像通过显微镜放大、摄像头采集,显示于计算机屏幕上,并能以BMP格式图像文件存储。

② 图像处理:本系统能对图像进行灰度校正并二值化、与标准图像比较、边缘跟踪等处理。

③ 故障识别:本系统能根据标准图像对被测图像上的故障进行识别,确定其故障类型和位置。

b. 文件操作功能

为了对检测图像及数据进行管理,对每一种被测板建立一个工程文件及文件夹,在该文件夹下建立标准图像文件夹、被测图像文件夹和故障文件夹,分别用来存放标准图像、被测图像和故障数据。

文件操作具有新建、打开、存储文件功能。满足了检测所需的文件操作功能。

c. 工作台操作功能

① 自动定位:工作台能自动回到其机械原点。

② 被测板原点定位:工作台自动定位于被测板上所定义的原点。

③ 工作台单步、单帧和连续移动:工作台可根据需要单步、单帧(按一帧图像的大小)、连续移动,精确定位于某一位置。

d. 检测功能

① 自动检测:系统可自动将检测区域划分为一定帧数,对各帧连续进行检测,并显示检测结果。

② 手动检测:系统可按用户要求对检测区域内的某一帧图像进行检测,并显示检测结果。

e. 故障统计功能

系统可显示出任意一幅故障图像,并在该幅图像上标出故障的类型和性质。可统计被测板上所发现故障的类型、位置和数量,并统计出的故障结果和故障图像通过打印机输出。

f. 拼图功能

系统可将位置相邻的四幅图像拼成一幅大的图像显示,便于观察。

4 解决的关键技术

4.1 顶层图形分离技术

本项目要检测的是多层图形中的顶层图形,从多层图形中把顶层图形分离出来,是本项目的关键技术之一。
几何光学中的“朗伯定律”指出,当光线透过媒质时,部分光线会被媒质吸收变为热能,一部分光线也可能会发生散射,从而使入射光线的光强受到损耗而减弱。朗伯定律的数学表达式是[2]:

I=I0e-α·L 式(4-1)

式中, I0——入射平行光束的强度 α——媒质的吸收系数

I——透过媒质后光束的光强 L——媒质的的厚度

由式4-1可知,虽然聚酰亚胺材料是透明的,但其α值远大于空气的α,所以入射光I0穿透与聚酰亚胺后,其光强I减弱的较多。实验结果也表明,上下层金属图形的灰度有一定差异(见图3),这就为利用灰度差异来分离图形提供了可能性。

图3 MCM-D多层图形

另外,由于显微镜的内光源提供的光线不可能是完全平行的光线,造成了摄取的图像的灰度的不均匀性,给采用同一灰度阈值将多层图形中的顶层图形分离出来带来困难,所以要对摄取图像进行灰度校正。

经过多种方案研究,我们最终确定了模板辅助的方法。即在MCM-D基板上制作一块模板,该模板由纯金属膜构成,其材料、制造工艺与多层图形中的金属图形完全一样,且尺寸应大于一幅图像的实际尺寸,以保证CCD能摄取到一幅全金属图像。只要该金属平面的材料和光洁度不变,入射光束的强度不变,周边光的环境不变,CCD摄取的模板图像各点灰度总是恒定的值。而且由式4-1及实验结果可知,金属图形的灰度值总是大于相邻周边的非金属图形的灰度值,顶层金属图形的灰度值总是大于相近的下层金属图形的灰度值。

设摄取的待检测的多层图形板的图像为S1,模板图像为S2,摄取S1时的光强略大于摄取S2时的光强。这样,S1上位于顶层金属图形上点的灰度应略大于S2上对应点的灰度。对S1、S2进行图像的相减运算[3],即可将S1中顶层图形分离出来。

设被测图像平面S1上任意点xn的图像灰度为θxn,

设全金属图形平面S2与S1对应点xn'图像灰度为θxn',

设S1和S2图像中对应点的灰度差为θy,则

θy=θxn -θxn' 式(4.2)

当xn落在被测多层图形的顶层金属图形上时,θy =θxn -θxn'>0

当xn落在被测板非顶层金属图形区时,θy=θxn -θxn'<0

由上面结果可反过来确定,当θy>0时,该点必定在顶层金属图形上;当θy <0 时,该点必定不在顶层金属图形上。所有θy>0的xn点的坐标位置集合,则描绘出了多层图形的顶层金属的形貌。

为了最后把多层图形的顶层图形清晰地分离出来,在做S1和S2对应点灰度相减的同时,对各点灰度值进行了重新赋值,将θy>0的点,赋以灰度值为255;θy<0的点,赋以灰度值为0。这样,图像上所有点的灰度值只有两个:0或255,显示出来只有黑白两色,白色图形为多层图形的顶层金属图形,其余为黑色。这样就实现了多层图形的顶层图形分离。我们将顶层分离算法称为“二值化”。

二值化算法的源代码如下:

void WINAPI BinaryMMX(LPSTR lpBits, LPSTR lpBitsAdjust, int nWidth, int nHeight)//参数:被测图像数据,模板图像数据,图像宽度,图像高度

{

BYTE* cpBits = (BYTE*) lpBits;

BYTE* cpBitsAdjust = (BYTE*) lpBitsAdjust;

int nSize = nWidth * nHeight;

__asm //MMX代码,同时处理8字节(即8个像素)数据

{

mov edx, cpBits

mov eax, cpBitsAdjust

mov ecx, nSize

shr ecx, 3 //循环计数器置初值

LOOP1:

movq mm0, [edx]

movq mm1, [eax]

psubusb mm1, mm0 //无符号饱和减,若结果为负则强制为0

pxor mm0, mm0 //异或,使mm0为0

pcmpeqb mm0, mm1 //通过比较进行二值化

movq [edx], mm0

add edx, 8

add eax, 8

loop LOOP1

emms

}

}

二值化前后的图像效果见图4、图5。

图4 多层图形 图5 多层图形二值化后的图像

4.2 顶层图形故障提取和判别技术:

为了检测被测板顶层图形的故障,我们采用了与标准顶层图形对比的方法,对比的结果,两图形不同的部分即为故障。

4.2.1 故障图形的提取

在检测之前,从标准板上摄取标准图像,再采用顶层分离技术将其处理为二值化标准图像,预先存入计算机。检测时,从被测板的同一位置摄取被测图像,再处理为二值化被测图像,将其与预先存储的二值化标准图像比较。

设二值化的被测图形任意点为Xm,该点的灰度值为θXm

设二值化的标准图形上与被测图形对应点为Xm’,其灰度值为θXm’

取被测二值化图形上点的灰度值与标准二值化图形上对应点的灰度值的差的绝对值即

θYm=|θXm -θXm'| 式(4.3)

如果θYm全部等于0,则被测图形等于标准图形,该被测图形无故障。

凡是θYm≠0的点,肯定是被测图形上存在的多余的金属图形(凸出、短路等)上的点,或是被测图形发生缺损(缺损、开路等)部分图形上的点。连续的θYm≠0的点的集合,组成凸出类型或缺损类型的故障图形。

故障提取算法的源代码如下:

void WINAPI SubAbsUSMMX(LPSTR lpBits, LPSTR lpBitsSub, int nWidth, int nHeight)//参数:被测图像数据,标准图像数据,图像宽度,图像高度

{

int nSize = nWidth * nHeight;

__asm {

mov edx, lpBits

mov eax, lpBitsSub

mov ecx, nSize

shr ecx, 3

LOOP1:

movq mm0, [edx]

movq mm1, [eax]

movq mm2, mm0

psubusb mm0, mm1 //被测图像数据减去标准图像数据

psubusb mm1, mm2 //标准图像数据减去被测图像数据

por mm0, mm1 //两结果或,取得绝对值

movq [edx], mm0

add edx, 8

add eax, 8

loop LOOP1

emms

}

}

由于被测图像和标准图像都为二值化图像,θXm 和θXm'都为0或255,θYm≠0的点的灰度值也为255。所以无论是凸出类还是缺损类故障,其灰度值均为255,显示时均为白色图形。区分凸出还是缺损,在最后判定故障时进行。

4.2.2 链码跟踪

由上一节讨论可知,所有θYm=0和θYm=255的点组成了一幅记录故障图形的二值化数字信息“图”,记为Sx。为了记录故障图形的大小和位置,我们采用了“链码跟踪”[4]算法 。

数字信息图形Sx上的所有“凸出类故障图形”和“缺损类故障图形”一般都不是单像素,而是占据一定的区域。设该区域为△Sx.

链码跟踪算法采用边缘跟踪的方法,将△Sx的边缘勾勒出来。这样就形成了把“故障图形”包围起来的、灰度值为255的像素组成的闭合的像素链,设该像素链为Lx。由于一幅图中故障图形可能有多个,像素链也不只一条。此时得到了又一幅数字信息图Sx'。Sx'中除了包络“故障图形”的像素链Lx的灰度值为255外,其余像素点的灰度全部都等于0。数字信息图Sx'以“闭合链”的形式勾画出了所有故障图形的外围轮廓和坐标位置。链码跟踪算法流程图见图6。
图6 链码跟踪算法流程图
上述以灰度值为255的像素链描述出故障的形状、大小和坐标位置的过程,称为链码跟踪技术。数字信息图Sx'的形成,为下一步确定故障图形准备了充分条件。

4.2.3 故障图形的判别

链码跟踪的结果描述了故障的位置、大小,但是它是否是真实的故障,是否能对产品构成危害,不同领域对故障判别的标准并不相同。我们参照GJB 548A-96标准对故障判别的标准规定了如下故障判别条件:

a.短路、断路均指贯穿性连续或断开。

b.金属化突出或金属多余物。当其与邻近图形垂直方向的尺寸大于或等于相邻两图形的间距的1/3以上时,判为不合格,即故障图形。

c.当线条缺损或空洞的故障图形沿故障点原图窄方向的尺寸大于或等于原图窄方向尺寸的1/3时,判定为缺损故障图形。

d.由上述三点以及判别的算法,又认定:凡像素链Lx的长度(像素数)≤10时,该图形不计为故障图形。

首先把故障粗分类为 “凸出型”和“缺损型”两种。链码跟踪后的故障图像与二值化标准图像进行对比,如果故障图像落在二值化标准图像的金属区,则认定为该故障是“缺损型”故障;如果故障落在二值化标准图像的非金属区,则认定为该故障是“凸出型”故障。

缺损型故障细分类,首先要根据二值化标准图像上与链码对应的点是完全处于金属区内部还是处于黑白交界处,将链码分段,连续的处于金属区内部的点为一段,连续的处于黑白交界处的点为一段。再按链码的分段情况将缺损型故障细分为以下四种故障:

a. 待定金属缺损:链码为一段,且所有点位于二值化标准图像的黑白交界处,说明标准图像中有一块孤立金属物,而被测图像中没有,错误类型为待定金属缺损。

b. 空洞:链码为一段,且所有点位于二值化标准图像的金属区内部,说明缺损发生在金属区内部,根据故障判别标准c,判断是否计为故障,错误类型为空洞。

c. 线条缺损:链码为两段,一段位于二值化标准图像的金属区内部,一段位于黑白交界外,说明缺损并未完全使金属区断开,根据故障判别标准c,判断是否计为故障,错误类型为线条缺损;

d. 断路:链码为两段以上,说明缺损使金属区完全断开,错误类型为断路。

凸出型故障细分类,根据二值化标准图像上与链码对应的点是完全处于非金属区还是处于黑白交界处,将链码分段。按链码的分段情况将缺损型故障细分为四种:

a.待定多余金属:链码为一段,且所有点位于二值化标准图像的黑白交界处,说明标准图像中在金属区内部有一块空洞,而被测图像中没有,错误类型为待定多余金属。;

b.金属多余物:链码为一段,且所有点位于二值化标准图像的非金属区,说明在非金属区有多余物,根据故障判别标准b,判断是否计为故障,错误类型为空洞。;

c.金属化突出:链码为两段,一段位于二值化标准图像的非金属区,一段位于黑白交界外,说明金属区有突出部分,根据故障判别标准b,判断是否计为故障,错误类型为线条缺损;

d.短路:链码为两段以上,说明突出部分把几块金属区连接在一起,错误类型为短路。
根据细分类的结果,将各个故障的性质、位置、大小记录下来,并编明序号,存入计算机中。并把所有确定的故障序号标明

在二值化之前的原摄像图中

至此,完成了被测基板上多层图形的一幅图的检测。

4.3 高速检测技术:

MCM-D自动光学检测系统的检测速度是主要技术指标之一,因而高速检测技术是项目的一项关键技术。

该项目下达的测试速度是:线速度≥4.5cm/min。

本课题处理的图像大小为512×512(像素数),现以指标规定的最小像素5μm计算,CCD摄取的每幅图的宽度应该是:

5μm×512=2560μm=0.256cm

设每分钟最少要检测 4.5÷0.256=17.58幅

按一般检测程序,图像采集后,需进行图形信号滤波、顶层分离、故障提取和判别、存储、显示、X-Y平台驱动控制等一系列工作。完成上述一系列工作对于单CPU、只能按程序串行工作的微机很难胜任。国外到九六年底所用主机仍是多CPU工作站(一般是四CPU)。虽然速度达到了要求,但造价昂贵。

为了达到项目的指标要求,我们采取了如下措施:

a.研制高速图像采集处理卡。

为了提高采集速度,对专用图像卡的电路和线路板采用了优化设计,并选用超高速、低噪声器件,同时采取了一系列滤波措施,并和软件配合,使采集的图形准确、快速、失真度小。采集卡的采集速度达到25帧/秒,实现了高速采集。
常用图像卡是把视频信号变为数字信号后传送给计算机的屏幕(即直接写屏),如果需要处理该数字信号则需要计算机另外发指令将其读入内存,由计算机再进行数字化处理。本图像卡具有把视频信号处理为数字信号后直接送入计算机内存的功能,不需要计算机再发指令去读取,从而减少了计算机软件的工作时间。

专用图像卡的研制,不仅获得了清晰的图像,而且使采集、处理速度比常用图像卡大大提高。

b.采用MMX技术编程

由于本系统图像处理信息量大,常规处理速度不能满足自动光学检测的速度要求,因而图像处理部分都尽可能地采用了MMX技术[5]。该技术由于专为图像处理而设计,具有并行处理数据的功能,因此,用MMX技术做图像处理,非常简洁、快速,大大缩短了图像处理的时间。

c.优化系统软件设计,精练图像处理软件

通过软件优化,剔除冗长的重复,缩短指令运行时间,降低了程序运行中一些不必要的时间损耗。

总体软件布局时,采用并行处理方式,使图像采集、处理、识别、存储等工作,基本上在X-Y平台进行换幅移动过程中执行完毕。

由于采取了以上诸条措施,大大提高了检测速度。目前整机系统检测速度已达到100幅/min以上。

5 结语

MCM-D自动光学检测系统样机已试运行一年,对样片进行了测试,可分辨的最细线条为15μm,测试功能正常,未发现漏判。一年来,样机软硬件运行正常,完全达到了预计的性能指标,并通过了指标测试。目前该系统达到的技术指标与下达指标对比见表1。

表1 技术指标

指标内容

下达指标

已达到指标

⑴测试面积

25mm×35mm

50mm×50mm

⑵测试速度

4.5cm/min

17cm/min

⑶最小像素

5μm

2.85μm

⑷水平方向分辨率

1024像素

1024像素

现在MCM-D自动光学检测系统常用的基本像素大约2.85μm,此时最高测试速度可达17cm/min。如果折算成5μm像素,则综合测试速度已近30cm/min,为原下达指标的5倍以上。

(编辑:admin)