PatentDe  


Dokumentenidentifikation DE69326920T2 20.04.2000
EP-Veröffentlichungsnummer 0578816
Titel VERFAHREN ZUM PRÜFEN VON ARTIKELN
Anmelder Orbotech Ltd., Yavne, IL;
Orbotech Inc., Billerica, Mass., US
Erfinder SMILANSKY, Zeev, Kfar Meishar, IL;
NISSIM, Moshe, Raanana, IL;
HAREL, Eyal, Tel Aviv, IL
Vertreter derzeit kein Vertreter bestellt
DE-Aktenzeichen 69326920
Vertragsstaaten DE, GB
Sprache des Dokument En
EP-Anmeldetag 28.01.1993
EP-Aktenzeichen 939047171
WO-Anmeldetag 28.01.1993
PCT-Aktenzeichen US9300791
WO-Veröffentlichungsnummer 9315474
WO-Veröffentlichungsdatum 05.08.1993
EP-Offenlegungsdatum 19.01.1994
EP date of grant 03.11.1999
Veröffentlichungstag im Patentblatt 20.04.2000
IPC-Hauptklasse G01N 21/88
IPC-Nebenklasse G06K 9/64   H04N 7/18   

Beschreibung[de]
GEBIET UND HINTERGRUND DER ERFINDUNG

Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Inspizieren von Gegenständen auf Defekte und dgl. Die Erfindung ist besonders brauchbar in automatischen optischen Inspektionssystemen für Leiterplatten (printed circuit boards oder PCBs) und wird deshalb im folgenden mit Bezug auf diese Verwendung beschrieben.

Leiterplatten werden oft in bezug auf eine Referenz, nämlich eine rißlose oder fast rißlose Platte optisch inspiziert. Eine solche Referenz ist durch eine Liste von Merkmalen gekennzeichnet, die entweder durch Verarbeiten von einer Platte, von der bekannt ist, daß sie im wesentlichen rißlos ist, oder durch Verarbeiten von Daten der computerunterstützten Fertigung (computer aided manufacturing oder CAM) einer solchen Platte erzeugt werden. Die Liste von Merkmalen kann jede Zahl von Merkmalen beinhalten, üblicherweise von einigen tausend bis zu einigen zehntausend. Jedes Merkmal wird durch seine Koordinaten (x,y) identifiziert und durch einen Code, der den Merkmalstyp angibt und das Indizieren von so vielen verschiedenen Typen von Merkmalen ermöglicht, wie für irgendeine bestimmte Leiterplatte notwendig sind.

Zum Auffinden von Defekten in einer Leiterplatte, die inspiziert werden soll, wird eine Liste von Merkmalen, welche die inspizierte Leiterplatte kennzeichnen (gewöhnlich als On-line- Liste bezeichnet), angefertigt und dann mit einer Referenzliste der Merkmale verglichen, die früher angefertigt und für Vergleichszwecke gespeichert worden ist. Um die On-line-Liste anzufertigen, wird die Leiterplatte optisch gescannt, und ihr Bild wird verarbeitet, um die Merkmale darin zu erfassen. Jedes Merkmal, das in der On-line-Liste erscheint und kein übereinstimmendes Merkmal in der Referenzliste hat, wird als ein "überschüssiges Merkmal" bezeichnet und wird als ein Defekt festgehalten. Ebenso wird jedes Merkmal, das in der Referenzliste erscheint, ohne ein passendes Merkmal in der On-line-Liste zu haben, als ein "fehlendes Merkmal" bezeichnet und wird ebenfalls als ein Defekt festgehalten.

Wenn die On-line-Liste und die Referenzliste in perfekter geometrischer Deckung sind, ist die Angleichung ziemlich einfach, da es nur notwendig ist, die beiden Listen zu vergleichen und festzustellen, ob der Merkmalstyp und die Koordinaten von einer mit denen der anderen übereinstimmen. In der Realität sind die Koordinaten niemals in perfekter geometrischer Deckung, so daß eine einfache Vergleichsprozedur nicht vorgenommen werden kann: Es ist deshalb nicht erforderlich, daß die Koordinaten exakt dieselben sind, sie sollten aber nahe genug sein, wie durch den Benutzer festgelegt, um zu erlauben, einen Diskrepanzparameter, genannt "Referenztoleranz", bei der Angleichung zu verwenden. Die Referenztoleranz ist üblicherweise beträchtlich kleiner als das Entwurfsgitter der Leiterplatte. Wenn sie kleiner als die Fertigungsprozeßpräzision oder die Merkmalsdetektorpräzision des optischen Inspektionssystems ist, wird die Fehlalarmrate der Inspektion zunehmen.

Es dürfte somit klar sein, daß der Vergleich des inspizierten Gegenstands (der Probe) mit der Referenz sehr erleichtert wird, wenn die Probe auf dem Scanner so perfekt wie möglich in Deckung mit der Referenz platziert wird. Wichtig ist auch die geometrische Genauigkeit des Inspektionssystems selbst.

Verschiedene mechanische, optische oder elektronische Hilfen werden gegenwärtig verwendet, um Leiterplatten zur Deckung zu bringen, um ihre optische Inspektion in bezug auf eine Referenzliste von Merkmalen zu gestatten.

Mechanische Hilfen haben gewöhnlich die Form von Paßstiften, Seitenplatten und dgl., vgl. z. B. die US-Patente 4 783 826 und 4 799 175. Die Verwendung von solchen mechanischen Einrichtungen verlangt spezielle und unterschiedliche Vorbereitungen für verschiedene Typen von Leiterplatten. Zum Beispiel verlangt die Verwendung von Paßstiften das Anbringen der Stifte auf dem Scannertisch, das Stanzen von Löchern in die zu inspizierenden Gegenstände und die manuelle oder anderweitige mechanische Ausrichtung der Löcher mit den Paßstiften. Diese mechanischen Hilfen beinhalten somit beträchtliche zusätzliche Kosten und Zeit für diese zusätzliche mechanische Handhabung.

Eine rechenmäßige Deckung wird häufig erzielt, wenn leicht erfaßbare Bezugsmarkierungen in perfekter Deckung mit dem Leiterplattenmuster sind, vgl. z. B. die europäische Patentanmeldung 0 206 712. Dieses Verfahren verlangt ein zusätzliches Scannen für die Bezugsmarkierungen vor der Inspektion und verlängert deshalb die Gesamtinspektionszeit beträchtlich. Erst nachdem die Bezugsmarkierungen gescannt worden sind, kann die fehlende Deckung berechnet und festgehalten werden. Außerdem verlangen die Bezugsmarkierungen das Zuordnen von zusätzlichem Raum auf den Leiterplatten zusätzlich zu dem funktionalen Leiterplattenmuster.

Einige Systeme, z. B. das in dem US-Patent 4 805 123 beschriebene, stellen eine lokale Deckung her durch pixelweises Korrelieren eines Referenzbildes mit einem On-line-Bild. Das erfordert, daß Referenzbilder gespeichert werden statt lediglich der charakteristischen Merkmale. Wegen der extremen rechenmäßigen Komplexität der Ausführung von Korrelationen zwischen Bildern kann ein solches System nur kleinere Ausmaße an Fehldeckung kompensieren und kann aus praktischen Gründen nur auf Spezialhardware realisiert werden.

Noch andere Systeme, z. B. das in der europäischen Patentanmeldung 0 247 308 beschriebene, arbeiten mit dynamischer Verzerrungssteuerung, um lokale Verzerrungen zu kompensieren statt einer globalen Fehldeckung. Solche Systeme verlangen deshalb weiterhin eine vorausgehende Deckung. z. B. gemäß einer der oben beschriebenen Techniken.

Die US-A-4 926 489 beschreibt ein automatisches Inspektionssystem, das eine Ausrichtungsschaltung aufweist, die dafür ausgebildet ist, Deckungsfehler dynamisch zu kompensieren, wenn eine VLSI-Fotomaske oder ein VLSI-Retikel durch Vergleich mit einer Beschreibung des Originalentwurfs in einer Datenbank inspiziert wird. Das Inspektionssystem, das in dieser Druckschrift beschrieben ist, basiert auf einem pixelweisen Vergleich von zwei Bitkarten, von denen eine ein gescanntes Bild des zu inspizierenden Gegenstands und die andere eine zweidimensionale Darstellung ist, die aus der Entwurfsdatenbankbeschreibung erzeugt wird. Die US-A-4 926 489 beschreibt nicht oder schlägt nicht vor die dynamische Korrektur von Deckungsfehlern in einem automatischen Inspektionssystem auf der Basis des Prinzip des Vergleichens von einer erfaßten und einer Referenzfehlerliste, wie es in der vorliegenden Anmeldung offenbart ist.

ZIELE UND KURZE ZUSAMMENFASSUNG DER ERFINDUNG

Ein Ziel der vorliegenden Erfindung ist es, ein Verfahren zu schaffen, das in obiger Hinsicht Vorteile bietet bei dem Inspizieren eines Gegenstands in bezug auf eine gespeicherte Liste von Referenzmerkmalen.

Mehr insbesondere, ein Ziel der vorliegenden Erfindung ist es, ein Verfahren zu schaffen zum Inspizieren eines Gegenstands in bezug auf eine gespeicherte Liste von Referenzmerkmalen, das die Notwendigkeit einer vorhergehenden Deckungsherstellung des inspizierten Gegenstands, mechanisch, optisch oder rechenmäßig, vermeidet, ohne extra Hardware zu erfordern und mit wenig zusätzlicher Rechenbelastung, und welches darüber hinaus verschiedene Arten von geometrischen Vezerrungen von Scannern und von Produktionsfehlern der Skalierung bei dem Gegenstand kompensiert.

Gemäß der vorliegenden Erfindung wird ein Verfahren geschaffen zum Inspizieren eines Gegenstands in bezug auf eine gespeicherte Liste von Referenzmerkmalen, von denen jedes durch seine Koordinaten identifiziert wird, beinhaltend: Scannen des Gegenstands, um On-line-Daten zu erzeugen, die den Merkmalen entsprechen, sogenannte On-line-Merkmale, und deren Koordinaten, die während des Scannens des Gegenstands erfaßt werden; Transformieren der Koordinaten der erfaßten On-line-Merkmale gemäß Deckungstransformationsparametern, um eine Fehldeckung des Gegenstands zu korrigieren; und Vergleichen der transformierten Koordinaten der On-line-Merkmale mit denen der Referenzmerkmale auf Übereinstimmungen; dadurch gekennzeichnet, daß ein anfänglicher Schätzwert der verlangten Deckungstransformationsparameter geliefert wird und dynamisch verbessert wird durch ständiges Berechnen und periodisches Aktualisieren des Schätzwertes aus den Koordinaten der On-line-Merkmale, die während des Scannens des Gegenstands erfaßt werden, und der Koordinaten der entsprechenden Referenzmerkmale.

Die "Fehldeckung" des Gegenstands, die zu korrigieren ist, beinhaltet jegliche Disparität zwischen den Referenzmerkmalorten und den gescannten Merkmalorten, ungeachtet dessen, ob die Disparität durch die Artikelplatzierung, Scannerfehler oder Produktionsskalierfehler hervorgerufen wird.

Gemäß weiteren Merkmalen der bevorzugten Ausführungsform der Erfindung, die im folgenden beschrieben ist, wird der ursprüngliche Schätzwert der verlangten Deckungstransformationsparameter geliefert durch: Scannen einer anfänglichen kleinen Fläche des Gegenstands; Erfassen der On-line-Merkmale und der Koordinaten in der anfänglichen Fläche; und Berechnen des anfänglichen Schätzwertes der verlangten Deckungstransformationsparameter auf der Basis der Relation der erfaßten On-line-Merkmalskoordinaten in bezug auf die Referenzmerkmalkoordinaten.

Gemäß weiteren Merkmalen der beschriebenen bevorzugten Ausführungsform wird der anfängliche Schätzwert der verlangten Deckungstransformationsparameter dynamisch verbessert durch: Fortsetzen des Scannens von weiteren Flächen des Gegenstands nach der anfänglichen Fläche; Erfassen von weiteren On-line-Merkmalen und von deren Koordinaten; und Verwenden der Relation der weiteren On-line-Merkmale mit deren Koordinaten bei den Referenzmerkmalkoordinaten zum Aktualisieren des Schätzwertes der Deckungstransformationsparameter.

Gemäß noch weiteren Merkmalen der beschriebenen bevorzugten Ausführungsform beinhaltet das Berechnen des anfänglichen Schätzwertes der verlangten Deckungstransformati onsparameter: Bestimmen, für jedes erfaßtes On-line-Merkmal in der anfänglichen Fläche, von allen Referenzmerkmalen desselben Typs und mit einer maximalen Fehldeckungsdistanz von dem erfaßten On-line-Merkmal; Identifizieren dieser On-line- und Referenzmerkmale als übereinstimmende Paare; und Verwenden der übereinstimmenden Paare zum Berechnen des anfänglichen Schätzwertes der verlangten Deckungstransformationsparameter.

Gemäß noch weiteren Merkmalen der beschriebenen bevorzugten Ausführungsform wird der anfängliche Schätzwert der verlangten Transformationsparameter periodisch aktualisiert durch: Liefern einer Vielzahl von Deckungen zum Akkumulieren der Koordinaten der On-line- und der Referenzmerkmale; Inkrementieren der Deckungen für die Koordinaten für jedes übereinstimmende Paar; und Verwenden der laufenden Werte der Deckungen zum Aktualisieren der Transformationsparameter.

Gemäß der folgenden, mehr ins einzelne gehenden Beschreibung eliminiert ein solches Verfahren, bei dem die Koordinaten der erfaßten Merkmale durch dynamisches Ändern von Parametern transformiert werden, die Notwendigkeit von mechanischen Hilfen wie Paßstiften und auch die Notwendigkeit für eine extra Abtastung des Gegenstands, wenn die Deckung durch Bezugsmarkierungen bewirkt wird. Ein besonders wichtiger Vorteil des neuen Verfahrens nach der vorliegenden Erfindung besteht darin, daß es sehr wenig zusätzliches, in bezug auf Zeit sowie auf Resourcen, gegenüber dem Standardverfahren der Merkmalsübereinstimmung wie im Stand der Technik verlangt. Das Verfahren nach der vorliegenden Erfindung verlangt auch wesentlich einfachere Berechnungen im Vergleich zu den bekannten Systemen, die auf dem pixelweisen Korrelieren eines Referenzbildes mit einem On-line-Bild basieren, und es kann durch Software realisiert werden, die in Universalcomputern enthalten ist.

Das Inspektionssystem ist besonders vorteilhaft in den ansonsten schwierigen Situationen, wo die tatsächliche Fehldeckungsdistanz größer ist als die Distanz zwischen Merkmalen oder wo die Merkmale ein sich wiederholendes Muster mit einer Periode haben, die kleiner als die Fehldeckungsdistanz ist.

Ein weiterer wichtiger Vorteil ist, daß das System nicht auf die Existenz von Bezugsmarkierungen oder von anderen Markierungen an dem Gegenstand zurückgreift.

Die Fehldeckungsdaten, die durch das neue System ausgegeben werden, können auch verwendet werden, um Defekte in verschiedenen anderen Typen von Inspektionssystemen aufzufinden, wo eine gute Deckung benötigt wird.

Weitere Merkmale und Vorteile der Erfindung werden aus der folgenden Beschreibung deutlich werden.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

Die Erfindung wird hier, lediglich bespielshalber, unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:

Fig. 1 ein Blockschaltbild ist, das ein gesamtes automatisches optisches Inspektionssystem veranschaulicht, welches gemäß der vorliegenden Erfindung aufgebaut ist, zum optischen Inspizieren von Leiterplatten;

Fig. 2 eine inspizierte Leiterplatte veranschaulicht, auf der einige Merkmale markiert sind;

Fig. 3 Merkmale einer inspizierten Platte nach Fig. 2 als unvollkommen zur Deckung gebracht in bezug auf entsprechende Referenzmerkmale grafisch veranschaulicht;

die Fig. 4, 4a und 4b die Art und Weise des Scannens einer Leiterplatte veranschaulichen, wenn diese optisch inspiziert wird;

Fig. 5 eine Liste von Merkmalen veranschaulicht, die gemäß einer lexikographischen Ordnung angeordnet sind;

Fig. 6 ein Blockschaltbild ist, das die Hardware in der Komparatoreinheit in dem optischen Inspektionssystem nach Fig. 1 veranschaulicht;

Fig. 7 ein Flußdiagramm ist, welches das gesamte Inspektionsverfahren veranschaulicht;

Fig. 8 ein Flußdiagramm ist, das den Bootstrap-Betrieb (Grundladeprogramm) zum Herstellen der anfänglichen und der aktualisierten Schätzwerte der Transformationsparameter veranschaulicht;

die Fig. 9-12 Flußdiagramme sind, welche ausführlicher gewisse Schritte in dem Bootstrap- Betrieb veranschaulichen; der in dem Flußdiagramm von Fig. 8 gezeigt ist;

die Fig. 13a und 13b ein Flußdiagramm sind, welches den gesamten Inspektionsprozeß veranschaulicht; und

Fig. 14 ein Flußdiagramm ist, welches einen optionalen Betrieb veranschaulicht, wenn periodische Muster in der inspizierten Leiterplatte ermittelt werden.

BESCHREIBUNG EINER BEVORZUGTEN AUSFÜHRUNGSFORM Gesamtsystem

Fig. 1 ist ein Blockschaltbild, welches die verschiedenen Einheiten eines automatischen optischen Inspektionssystems zum optischen Inspizieren von Leiterplatten (printed circuit boards oder PCBs) veranschaulicht.

So wird die Leiterplatte 1 zuerst durch eine Scannereinheit 2 gescannt, die 8-Bit- Grauwertdaten liefert, die, nachdem sie durch einen Binärisierer 3 in binäre Daten (schwarz, weiß) umgewandelt worden sind, in eine Merkmalsdetektoreinheit 4 eingegeben werden. Die Einheit 4 erfaßt die verschiedenen Merkmale der inspizierten Leiterplatte und identifiziert jedes Merkmal nach seinem Typ (z. B. Verbindungsstellen, Kontaktstellen, offene Enden, Nadellöcher, Inseln, usw.) und nach seinen Koordinaten. Diese Daten werden in Form einer On-line-Merkmalsliste 5 gespeichert.

Die On-line-Merkmalsliste aus der Speichereinheit 5 und eine Referenzmerkmalsliste, die zuvor in einem Speicher 6 gespeichert worden ist; werden in einen Komparator 7 eingegeben, welcher die beiden Listen von Merkmalen auf überschüssige Merkmale und auf fehlende Merkmale hin in dem Lichte von vorher festgelegten Parametern vergleicht, die die Fehldeckungsgrenzen definieren, welche in den Komparator 7 über eine Eingangseinheit 8 eingegeben werden. Die vorher festgelegten Eingangsparameter beinhalten die Werte von Q, R, θmax, αmax, PXmax, PYmax und u&sub0;, wobei: Q die Referenztoleranz ist; R der maximale angenommene Fehldeckungsradius ist, bei welchem es sich um eine obere Grenze für die Distanz zwischen irgendeinem Punkt in dem gescannten Bereich der Leiterplatte und seiner Position in dem Referenzkoordinatensystem handelt; θmax ein maximaler angenommener Fehldeckungswinkel zwischen der inspizierten Leiterplatte und der Referenz ist; αmax die maximale angenommene Winkelabweichung zwischen der Lichtsensormatrix und der Y- Bewegung ist; PXmax und PYmax die maximalen angenommenen Skalierungsfehler sind; und u&sub0; der Positionsfehler ist. Diese Fehldeckungsgrenzen hängen von der Qualität der vorherge henden Ausrichtung zwischen der geladenen Leiterplatte und der Referenz ab, von der Scannerpräzision und von der Präzision der Produktions- und Meßwerkzeuge.

Der Komparator 7 gibt an einen Speicher 9 eine Liste von überschüssigen Merkmalen ab, nämlich Merkmalen, die in der On-line-Liste vorhanden sind, nicht aber in der Referenzliste, und auch von fehlenden Merkmalen, nämlich Merkmalen, die in der Referenzliste sind, nicht aber in der On-line-Liste.

Fig. 2 zeigt das Bild einer Leiterplatte, die inspiziert wird und zwei Typen von Merkmalen hat: Kontaktstellen (P) und Übergänge (J), mit einem Defekt D in Form eines offenen Endes (OE) an der zentralen Kontaktstelle (P). Fig. 3 ist eine grafische Darstellung der beiden Merkmalslisten: die Buchstaben "P" und "J" mit der geringeren Intensität sind die Referenzmerkmale, und die fetten Buchstaben sind die On-line-Merkmale der inspizierten Leiterplatte. Es ist zu erkennen, daß die On-line-Merkmalsliste auch zeigt, daß der Defekt D ein offenes Ende OE ist, der als ein überschüssiges Merkmal zu erkennen ist, das in der On-line-Liste, aber nicht in der Referenzliste vorhanden ist.

Das Scannen der Leiterplatte wird in einer Vielzahl von Scheiben durchgeführt, wie es in Fig. 4 gezeigt ist, wobei jede Scheibe die vorhergehende Scheibe teilweise überlappt. Die Überlappung wird gemacht, um sicherzustellen, daß ein vollständiges Merkmal erfaßt wird. Jede Scheibe wird gescannt, indem der Tisch TB (Fig. 4a, 4b), auf welchem der Gegenstand AR befestigt ist, in der Y-Richtung bewegt wird. Eine lineare Matrix von Lichtsensoren SA ist rechtwinkelig zu der Bewegungsrichtung positioniert. Zwischen den Scheiben wird die optische Vorrichtung in der X-Richtung bewegt (nach rechts). Die ersten wenigen Merkmale werden am Beginn der ersten Scheibe lokalisiert. Es kann erwartet werden, daß anschließende Merkmale relativ nahe beieinander liegen, zumindest in ihren Y-Koordinaten, da die zeitliche Ankunftsreihenfolge der Merkmale Parallelität zu ihrer geometrischen Reihenfolge aufweist. Eine zu erwartende Fehlausrichtung kann in der Größenordnung von 0,5-2,0 mm liegen und könnte sogar viel größer sein.

Als ein Beispiel ist ein Segment einer Merkmalsliste in Fig. 5 dargestellt. Es ist zu erkennen, daß die Liste mit der ersten Y-Koordinate 2000 beginnt, welche zwei Merkmalen mit den X- Koordinaten 12634 und 12644 entspricht. Die Typen dieser Merkmale (markiert mit T) sind identisch. Das bedeutet, daß zwei Merkmale desselben Typs auf derselben Linie gelegen sind.

Bei dem Vergleich in dem Komparator 7 (Fig. 1) werden, wie oben erwähnt, die beiden Typen und die geometrischen Positionen (x,y-Koordinaten) verglichen. Viele Algorithmen sind im Stand der Technik bekannt zum Vergleichen von Merkmalstypen gemäß dem besonderen Anwendungsfall, und deshalb wird hier kein spezieller Typübereinstimmungsalgorithmus beschrieben.

Fig. 6 veranschaulicht schematisch die Inspektionsvorrichtung mit einem Masterprozessor 10 zum Steuern des Scanbetriebes, welcher Bildverarbeitung, Merkmalserfassung und Merkmalsvergleich beinhaltet, wie es in Fig. 1 dargestellt ist. Das System weist außerdem einen weiteren Prozessor 11 auf, der als ein Nebenprozessor fungiert, um die Aufgaben zu erfüllen, die Referenzmerkmalslisten und die On-line-Merkmalslisten zu vergleichen und sie dynamisch zur Deckung zu bringen. Der Nebenprozessor 11 enthält einen Speicherbereich 12, der gemäß der Software programmiert ist, welche zum Vergleichen der Referenzliste und der Liste der erfaßten Merkmale sowie zum dynamischen Zur-Deckung-bringen derselben erforderlich ist. Der Speicherbereich 12 und der Nebenprozessor 11 haben einen Speicherbereich 5 (Fig. 1) zum Speichern der Referenzmerkmalsliste, einen Speicherbereich 6 zum Speichern der Liste der erfaßten Merkmale und einen Extraspeicherbereich, der mit 13 bezeichnet ist, zum Speichern des Programms, von Puffern, Registern, usw., um dem System zu ermöglichen, die Aufgabe zu erfüllen, die Referenz- und On-line-Merkmalslisten zu vergleichen und sie dynamisch zur Deckung zu bringen. Die Größe des Speichers 12 in dem Nebenprozessor 11 ist deshalb zu der erwarteten Zahl von Merkmalen auf einer einzelnen Leiterplatte proportional. Als ein Beispiel sei angegeben, daß der Nebenprozessor 11 ein digitaler Prozessor Intel 80386 sein kann, der einen Speicher von 1 Mb hat, was ihm ermöglicht, ungefähr 50 K Merkmale aufzunehmen.

Eine gewisse Zeit vor der Inspektion wird, wie weiter oben beschrieben, eine Referenzliste aus einer rißlosen Probe gemäß dem Typ von zu inspizierender Leiterplatte erzeugt. Vor der Einleitung einer Inspektionsabtastung wird der Speicherbereich 12 in dem Nebenprozessor 11 (welcher als die Komparatoreinheit 7 in Fig. 1 dient) mit der notwendigen Software, der Referenzliste und auch mit den Eingangsparametern (Q, R, θmax und u, Fig. 1), welche die Fehldeckungsgrenzen definieren und von der Qualität der vorherigen Ausrichtung zwischen der geladenen Leiterplatte und der Referenz abhängen, geladen.

Das System kann dann zum Scannen der Leiterplatte verwendet werden, um die On-line- Merkmalsliste zu erzeugen, die mit der gespeicherten Referenzliste verglichen wird, um Defekte zu lokalisieren (überschüssige Merkmale oder fehlende Merkmale), wie es durch einen Block 9 in Fig. 1 gezeigt ist.

Im folgenden wird noch ausführlicher beschrieben, daß das Verfahren zwei Stufen beinhaltet: (1) eine vorläufige Deckungsstufe, in welcher eine "Bootstrap-Prozedur" ausgeführt wird, um einen anfänglichen Schätzwert der relativen Koinzidenz der beiden Listen und die bei der On-line-Liste anzuwendende Transformation, um diese in das Referenzkoordinatensystem zu bringen, berechnet wird; und (2) eine Hauptanpassungsstufe, die zwei Aufgaben ("Prozesse") beinhaltet, nämlich: (α) Vergleichen der beiden Listen nach dem Eingeben des anfänglichen Schätzwertes der Transformationsparameter; und (b) dynamisches Verbessern der Transformationsparameter, wenn die On-line-Daten aus der Fortsetzung des Scannens der Leiterplatte nach dem anfänglichen Bereich ankommen.

Fig. 7 veranschaulicht mehr ins einzelne gehend das Komparatorflußdiagramm. Demgemäß tastet das System zuerst einen Anfangsbereich der Leiterplatte ab, bis "N" (z. B. 128) On-line- Merkmale erfaßt worden sind oder das Ende einer Scheibe erreicht worden ist (Block 20). Wenn bei dem Scannen des Anfangsbereiches die vorbestimmte Zahl (N) von On-line- Merkmalen nicht erfaßt worden ist (Block 21) wird der Inspektionsprozess beendet, da es nicht genug Daten gibt (Block 22).

Wenn N On-line-Merkmale erfaßt worden sind, wird die erste Stufe, nämlich die Bootstrap- Prozedur-Stufe aufgerufen (Block 23). In dieser Stufe wird ein anfänglicher Schätzwert der Deckungstransformationsparameter berechnet auf der Basis der Relation der erfaßten Online-Merkmalskoordinaten in bezug auf die Referenzmerkmalskoordinaten. Die Bootstrap- Prozedur, die durch einen Block 23 in Fig. 7 gezeigt ist, ist ausführlicher in den Fig. 8-12 dargestellt, welche weiter unten beschrieben sind.

Nachdem der anfängliche Schätzwert von Deckungstransformationsparametern berechnet worden ist, fährt das System fort, weitere Bereiche der Leiterplatte zu scannen, um weitere On-line-Merkmale und deren Koordinaten zu erfassen, und verwendet deren Relation zu den Referenzmerkmalkoordinaten zum Aktualisieren des Schätzwertes der Deckungstransformationsparameter. Die aktualisierten Parameter werden dann in einer Feindeckungsprozedur (ausführlicher in Fig. 13 gezeigt) verwendet, um die Koordinaten der weiteren On-line- Merkmale zu transformieren (Block 24). Das System gibt schließlich eine Liste der Defekte ab, d. h. der überschüssigen Merkmale und der fehlenden Merkmale (Block 25).

Zum Ausführen der obigen Berechnungen wird ein mathematisches Modell der Fehldeckungstransformation gebaut. Dieses erlaubt das Erstellen eines effizienten Algorithmus zum Berechnen der Modellparameter, bei gegebenen Inspektionsdaten, und auch das Steuern von Korrekturtransformationen, die in das System eingegeben werden (und die sich auf das erlaubte Modell beschränken), um so eine Defektfehlerfassung zu verhindern.

Das Fehldeckungstransformationsmodell ist gekennzeichnet durch die Gegenstandsproduktions- und -befestigungsfehler und durch die wiederholbare geometrische Scannerverzerrung, welche das geometrische System beeinflussen, das durch den Scanner produziert wird, einschließlich der folgenden Arten von Rissen/Fehlausrichtungen:

(a) Die Winkelabweichung (α), verursacht dadurch, daß die Lichtsensormatrix nicht exakt rechtwinkelig zu der Bewegung in Y-Richtung ist;

(b) der Fehldeckungswinkel (θ), der dadurch verursacht wird, daß der Gegenstand wegen der Befestigungsfehldeckung und/oder der Winkeldiskrepanz zwischen dem Tisch und der Bewegungsrichtung (Scannerverzerrung) zu der Referenz nicht exakt parallel ist;

(c) die Skalierfehler in beiden Richtungen (Px und Py) wegen der Gegenstandsproduktions- und/oder Scannerprobleme; und

(d) die optischen Verzerrungen längs der Sensorachse, insbesondere Variationen in der Vergrößerung (wegen der variierenden Distanz h (Fig. 4b) zwischen den Sensoren und der Gegenstandsoberfläche).

Die Bootstrap-Prozedur

Fig. 8 ist ein Flußdiagramm, das die Bootstrap-Prozedur veranschaulicht, die durch den Block 23 in Fig. 7 dargestellt ist, und die Fig. 9-12 sind Flußdiagramme, welche mehr ins einzelne gehend einige der Operationen veranschaulichen, die an der Bootstrap-Prozedur nach Fig. 8 beteiligt sind.

Es kann gezeigt werden, daß für eine einzelne Scheibe die Verzerrungseffekte (mit Ausnahme der optischen Verzerrung eines Scanners) als eine Affintransformation modelliert werden können, indem sechs Variable verwendet werden:

a, b, c, d, δx und δy:

xr = ax + by + δx,

Yr = cx + dy + δX

Gl. 1

wobei δx, δy Translationsteile von Fehldeckungskorrekturtransformationsparametern sind; a, b, c, d multiplikative Teile von Fehldeckungskorrekturtransformationsparametern sind; x, y die Koordinaten vor dem Zur-Deckung-bringen sind und xr und yr die Koordinaten nach dem Zur-Deckung-bringen (d. h. in dem Referenzraum) sind.

Die Funktion der Bootstrap-Prozedur ist es, einen ersten anfänglichen Schätzwert der Fehldeckungskorrekturtransformationsparameter zu produzieren, der kontinuierlich oder periodisch aktualisiert wird, nachdem die Bootstrap-Prozedur beendet ist und wenn mehr Online-Daten verfügbar werden.

In dem Fall, in welchem nur eine Gegenstandsplatzierungskorrektur erforderlich ist, berechnet die Bootstrap-Prozedur die Transformationsparameter der speziellen, einfacheren Form folgendermaßen:

a = cos θ, b = -sin θ, c = sin θ, d = cos θ Gl. 1a

In dem allgemeineren Fall kann die Verwendung zwischen den Modellparametern a, b, c, d und den physikalischen Scannerverzerrungs- und den Gegenstandsplatzierungsparametern θ, α, Sx, Sy folgendermaßen gezeigt werden:

a = SX cos θ/cos α b = -Sx sin θ/cos α

c = Sy sin (θ - α)/cos α d = Sy cos (θ - α)/cos α Gl. 1b

Es kann gezeigt werden, daß sich unterschiedliche Scheiben nur in ihren δx und δy unterscheiden, daß aber alle dieselben Parameter a, b, c und d haben.

Gemäß der Darstellung durch das Flußdiagramm in Fig. 8 besteht der erste Schritt in der Bootstrap-Prozedur darin, eine Verlagerungsvektorenliste für jedes On-line-Merkmal zu berechnen (Block 30). Das Flußdiagramm nach Fig. 9 zeigt mehr ins einzelne gehend, wie das gemacht wird.

So wird gemäß der Darstellung in dem Flußdiagramm in Fig. 9 für jedes der N On-line- Merkmale (Block 31) und für alle Referenzmerkmale innerhalb des Fehldeckungsradius R¹ (Block 32) festgestellt, ob eine Typübereinstimmung existiert (Block 33).

Danach muß, um festzustellen, ob eine Übereinstimmung existiert, zwischen einem On-line- Merkmal mit Koordinaten (xn, yn) und einem Typ Tn und einem Referenzmerkmal mit Koordinaten (x', y') und einem Typ T' folgendes gelten:

x' - xn ≤ R und y' - yn ≤ R Gl.2

und der Typ Tn muß mit dem Typ T' übereinstimmen. Das Paar aus dem On-line-Merkmal mit seinem übereinstimmenden Referenzmerkmal wird als ein übereinstimmendes Paar bezeichnet.

Typübereinstimmungsprozeduren sind je nach dem besonderen Anwendungsfall im Stand der Technikgut bekannt. Die Entscheidungsregeln werden üblicherweise heuristisch gewonnen, manchmal durch den Benutzer. Da das neue System sich nicht mit irgendeiner besonderen Typübereinstimmungsprozedur befaßt, wird ein besonderer Typ von Übereinstimmungsprozedur der Einfachheit halber nicht beschrieben.

Der nächste Schritt (Block 34, Fig. 9) besteht darin, für jedes gefundene Übereinstimmungspaar den Verlagerungsvektor gemäß der folgenden Gleichung zu berechnen und aufzuzeichnen:

(Δx, Δy) = (x' - xn, y' - yn) Gl. 3

Die so berechneten Verlagerungsvektoren werden bei dem Produzieren einer Verlagerungsvektorenliste der N On-line-Merkmale verwendet (Block 35, Fig. 9).

Die volle Referenzliste wird in aufsteigender lexikografischer Ordnung geordnet, hauptsächlich nach y und sekundär nach x, und deshalb wird die n-te Verlagerungsvektorenliste ähnlich geordnet, weil es sich um eine Unterliste der vollen Referenzliste handelt, von welcher ein konstanter Vektor (xn, yn) subtrahiert worden ist. Das vereinfacht sehr die Aufgabe des Produzierens einer sortierten Liste aus den N Verlagerungsvektorenlisten durch sukzessives. Vereinigen und Sortieren derselben (vgl. The Art of Computer Programming, D. H. Knuth, Reading, Mass., Addison-Wesley, 1968, Band 1, Abschnitt 2.3.3). Verlagerungsvektoren, die in mehr als einer Liste erscheinen, werden während der Vereinigungen gefunden und mit einer Populationszählung nur einmal aufgezeichnet. Die Verlagerungsvektorenlisten der Online-Merkmale werden so mit einer Liste von Verlagerungsvektoren vereinigt (Block 35).

Die nächste Operation, die durch die Bootstrap-Prozedur ausgeführt wird und in dem Flußdiagramm in Fig. 8 dargestellt ist, besteht darin, den Korrekturparameter δx, δy abzuschätzen, wie es durch einen Block 40 in Fig. 8 gezeigt ist. Das erfordert, daß eine Korrelationsfunktion, W(), berechnet wird. Das Flußdiagramm in Fig. 10 zeigt mehr ins einzelne gehend, wie das gemacht wird.

So wird gemäß der Darstellung durch einen Block 41 in Fig. 10 die Größe der Scanzone der ersten N On-line-Merkmale bestimmt, indem der Begrenzungsblock dieser Merkmale berechnet wird. Die Größe des Begrenzungsblockes wird mit bx x by bezeichnet, das heißt:

bx = max xn-min xn, by = max yn-min yn Gl. 4

Das Ausmaß des "zulässigen Rauschens" in dem korrekten Verlagerungsvektor (demjenigen, der die Fehldeckung in der Anfangsscanzone am besten beschreibt) wird dann ermittelt (Block 42). Dieses Ausmaß wird in den beiden Richtungen (x,y) separat definiert und wird als "Ungewißheitsblock" bezeichnet. Zu seiner Größe tragen zwei Faktoren bei: Der erste Faktor (und üblicherweise der größere) ist der Winkel (θ) zwischen der Leiterplatte und der Referenz, der als ein "Rauschen" in dieser Phase erscheint, wenn nur die Verlagerung und nicht der Winkel verwendet wird. Dieser Faktor wird durch die Größe des Begrenzungsblockes und einer oberen Grenze für den Winkel (Eingangsparameter θmax) abgeschätzt.

Der zweite Faktor umfaßt alles übrige Rauschen in den Berichten über die Position eines Merkmals einschließlich Bildquantisierung (Pixelgröße), Merkmalerfassungsmechanismusfehlern, Scannermechanik, unmodellierter geometrischer Scannerverzerrung, usw. Eine obere Grenze für diesen Faktor wird als "Positionsfehler" bezeichnet und durch den Eingangsparameter "u&sub0;" angegeben. Schließlich wird die Ungewißheitsblockgröße, die mit Mx x My bezeichnet wird, folgendermaßen berechnet:

Mx = byθmax + ux, My = bxθmax + uy Gl.5

ux = uox + (PXmax). bx Gl.5a

ux = uoy + αmaxbx + (Pymax) · by

wobei PXmax (Pymax) eine maximale angenommene Differenz zwischen Px (Py) und 1 ist.

Für jeden Vektor u = (ux, uy) in der Verlagerungsvektorenliste berechnen wir W(u), die Korrelationsfunktion, die für unsere Situation anwendbar ist. Die Korrelationsfunktion W(u) ist die Zahl von Verlagerungsvektoren v = (vx, vy), die in dem Ungewißheitsblock zentriert um u liegen, d. h. für welche gilt:

vx - ux ≤ Mx/2 und vy - uy ≤ My/2, Gl. 6

wobei die Population berücksichtigt wird. Diese Berechnung ist relativ intensiv, aber die Tatsache, daß die Verlagerungsvektorenliste sortiert ist, ergibt einen effizienten Algorithmus zum Berechnen der Funktion W(u) (Block 44).

Die Hauptschleife ist bei u (einem Vektor in der Verlagerungsvektorenliste) in der Reihenfolge der Verlagerungsvektorenliste. Daher kommen sukzessive Vektoren u in eine aufsteigende lexikografische Ordnung. Für jedes u berechnen wir W(u) (Block 44). Die Art und Weise, wie das getan wird, ist in dem Flußdiagramm in Fig. 11 ausführlicher veranschaulicht.

So definieren wir, wie es durch einen Block 45 in Fig. 11 gezeigt ist, zuerst zwei Zeiger, niedrig und , in der Verlagerungsvektorenliste. Während der gesamten u-Schleife zeigt niedrig aufi ein Element der Verlagerungsvektorenliste, dessen Wert y der kleinste in der Liste ist, welcher die Bedingung erfüllt y ≥ uy - My/2; und hoch zeigt auf ein Element der Liste, dessen Wert y der kleinste in der Liste ist, welcher die Bedingung erfüllt y > uy + My/2. Diese Zeiger brauchen nur akutalisiert zu werden, wenn uy ansteigt, d. h. dann, wenn auf das nächste u in der u-Schleife übergegangen wird (Block 46) und sich uy ändert.

Das Aktualisieren ist eine einfache Maßnahme des Inkrementierens jedes Zeigers, bis er wieder seine "normale" Bedingung erfüllt. u definiert eine Schar von Vektoren in der Verlagerungsvektorenliste, deren Wert y die Bedingung erfüllt uy - My/2 ≤ y ≤ uy + My/2. Wir werden diese Schar als y-Fenster bezeichnen (in einem gewissen Sinn ist es ein "Fenster" in der vollen Verlagerungsvektorenliste, das durch Begrenzen der y-Werte definiert wird). Rechenmäßig umfaßt diese Schar einfach alle Verlagerungsvektoren, deren Adresse (in der Verlagerungsvektorenliste) die Bedingung erfüllt niedrig ≤ Adresse ≤ hoch.

Wir werden den Begriff "y-Lauf" für die Schar von allen Verlagerungsvektoren mit dem y- Wert verwenden. Diese Verlagerungsvektoren sind aufeinanderfolgend in der Verlagerungsvektorenliste angeordnet und sind nach aufsteigenden x-Werten geordnet. Für jedes verschiedene y in dem y-Fenster halten wir ein Paar Zeiger, (y)niedrig und (y)hoch, fest. Während einer u-Schleifenphase, wenn uy konstant bleibt, erfüllen diese Zeigerpaare weiterhin die folgenden Bedingungen, ähnlich niedrig und hoch: (y)niedrig zeigt auf ein Element in dem y-Lauf, dessen Wert x der kleinste ist und die Bedingung erfüllt x ≥ ux - My/2; und (y)hoch zeigt auf ein Element in dem y-Lauf, dessen Wert x der kleinste ist und die Bedingung erfüllt x > ux + My/2. Immer dann, wenn uy

zunimmt, aktualisieren wir niedrig und hoch (Block 46) und wir setzen alle diese Zeigerpaare zurück, indem wir jedes Paar auf den Beginn seines Laufes zeigen lassen (Block 49). In jedem anschließenden Durchlauf durch die u-Schleife werden, wenn ux zunimmt und uy sich nicht ändert, alle diese Paare geeignet inkrementiert, und zwar auf dieselbe Art und Weise wie niedrig und hoch (Block 47).

Nun sind alle Verlagerurtgsvektoren v, welche zu W(u) beitragen und als diejenigen definiert worden sind, welche die Bedingung erfüllen vx - ux ≤ Mx/2 und vy - uy ≤ My/2, die Vereinigung von Scharen, welche allen y's in dem y-Fenster entsprechen. Jede derartige Schar besteht aus allen Verlagerungsvektoren, deren Adresse die Bedingung erfüllt (y)niedrig ≤ Adresse < (y)hoch. Das heißt, W(u) wird bestimmt durch Zählen von sämtlichen Verlagerungsvektoren (v) in dem Ungewissheitsblockfenster und Verwendung der Zeiger niedrig Und hoch und der Zeiger (y)niedrig und (y)hoch, (Block 48).

Nachdem W(u) berechnet worden ist (Block 44, Fig. 10), finden wir das beste u, welches W(u) maximiert (Block 50, Fig. 10). Für diesen Zweck wird ein Vektor v gefunden, für den gilt W(v) ≥ W(u)für alle u's. Dann bestimmen wir (Block 51) den Vektor, der W(t) maximiert, unter sämtlichen Vektoren t = (tx, ty), die außerhalb des Ungewißheitsblockes liegen, der um v zentriert ist, d. h. diejenigen, die die Bedingung erfüllen

tx - vx > Mx/2 oder ty - vy > My/2, Gl.7

Es ist hilfreich, sich v als den "populärsten Verlagerungsvektor" vorzustellen und w als den "zweitpopulärsten Verlagerungsvektor". Wenn gilt

W(v) - W(w)/W(v) + W(w) ≤ 0.1

stellen wir fest, daß sich der zweitpopulärste Vektor sehr wenig von dem populärsten Vektor unterscheidet, und wir vermuten deshalb, daß die Leiterplatte periodisch ist (Block 52) oder irgendeinen anderen schwierigen Aufbau hat; in einem solchen Fall können wir zu einem Spezialfallalgorithmus zurückkehren (Block 53), um w für periodische Muster zu berechnen. Dieser Spezialfall wird unten mit Bezug auf das in Fig. 14 dargestellte Flußdiagramm beschrieben.

Wir können nun den Translationsteil δx,δy der Deckungstransformationsparameter abschätzen (Block 54, Fig. 10). Für diesen Zweck berechnen wir den zweidimensionalen Gaußgewichteten Mittelwert, δ = (δx,δy), von allen Vektoren t, welche die Bedingung erfüllen

tx - vx < Mx/2 und ty - vy < My/2 Gl. 8.

Wir kehren zu dem Bootstrap-Flußdiagramm von Fig. 8 zurück. Nachdem die Translationsteile (δx, δy) abgeschätzt worden sind (Block 40, Fig. 8), werden nun die multiplikativen Teile (a, b, c, d) der Deckungstransformationsparameter bestimmt, und die Translationsteile werden erneut abgeschätzt (Block 60), womit die Bootstrap-Abschätzung der Fehldeckungsparameter abgeschlossen wird. Zu diesem Zweck passen wir jedes der N On-line-Merkmale (dessen Koordinaten mit xi, yi angegeben sind) an jedes Referenzmerkmal mit dem übereinstimmenden Typ und den Koordinaten (x', y') an, so daß gilt

x'-(xi + δx) < Mx/2 und y' - (yi + δy) > My/2. Gl. 9

Es sei beachtet, daß ein On-line-Merkmal mehr als ein übereinstimmendes Referenzmerkmal haben kann.

Der Speicherbereich 13 ((Fig. 6) des Nebenprozessors 11 enthält elf Akkumulierregister, genannt

S, Sx, Sy, Sx', Sy', Sxx', Syy', Sxy', Syx',

Diese Register werden bei dem erneuten Abschätzen der Deckungstransformationsparameter verwendet, wie es durch das Flußdiagramm in Fig. 12 gezeigt ist.

Somit werden gemäß dem Flußdiagramm von Fig. 12 die elf Register rückgesetzt (Block 61). Jedes der N On-line-Merkmale (Block 62) wird mit jedem der übereinstimmenden Referenzmerkmale gemäß der obigen Gleichung 9 gepaart, und die elf Register werden geeignet inkrementiert (Block 64).

Jedes der obigen Register enthält somit eine Summe, zu welcher ein Wert für jedes übereinstimmende Paar addiert wird. Die Register werden folgendermaßen akkumuliert: (x,y) und (x',y') bezeichnen ein besonderes übereinstimmendes Paar; die Summen reichen über alle, übereinstimmenden Paare, die insoweit angetroffen werden:

S = Σ1

Sx = Σx

Sy = Σy

Sy' = Σy' Gl. 10

Sxx' = Σxx'

Syy' = Σyy'

Sxy' = Σxy'

Syx' = Σyx'

Sxx = Σx²

Syy = Σy²

Eine bessere Approximation der Deckungstransformationsparameter (nur zum Korrigieren der Gegenstandsplatzierung) kann nun berechnet werden (Block 65), indem die laufenden Werte der elf Register verwendet werden, und zwar gemäß den folgenden Gleichungen:

Wxx' = Sxx' - SxSx'/S Gl. 11

Wyy' = Syy' - SySy'/S Gl. 12

Wxy' = Sxy' - SxSy'/S Gl. 13

Wyx' = Syx' - SySx'/S Gl. 14

Wxx = Sxx - Sx²/S Gl. 15

Wyy = Syy - Sy²/S Gl. 16

V = (Wxx' + Wyy')² + (Wyx' - Wxy')² Gl. 17a

cos θ = (Wxx' + Wyy')/S Gl. 17b

sin θ = (Wyx' - Wxy')/V Gl. 17c

δx = Sx' - (Sx cos θ - Sy sin θ)/S Gl. 17d.

δy = Sy' - (+Sx sin θ + Sy cos θ)/S Gl. 17e

Gemäß Gleichung 1a gilt: a = cos θ; b = -sin θ; c = sin θ; und d = cos θ.

In dem allgemeineren Fall kann ein Schätzwert für die volle Affintransformation gemäß den folgenden Gleichungen berechnet werden:

v = Wxx Wyy, - Wxy² Gl. 18a

a = wyy Xxx - Wxy Wyx'/v Gl. 18b

b = Wxx Wyx' - Wxy Wxx'/v Gl. 18c

c = Wyy Wxy' - Wxy Wyy'/v Gl. 18d

d = Wxx Wyy' - Wxy Wxy' Gl. 18e

Die obige mathematische Methode zum Berechnen der Deckungstransformation basiert auf der Theorie der Datenanpassung nach der Methode der kleinsten Quadrate, beschrieben z. B. in W. H. Press, BP. Flannery, S. A. Teukolsky und W. T. Vetterling, Numerical Recipes, Cambridge University Press, 1986.

Unsere Gleichungen ergeben sich durch Anwenden der Theorie auf das folgende Problem:

Gegeben sind (xi,yi) und (x'i,y'i), mit i = 1...n, und zu finden sind δx, δy und a, b, c, d, welche den folgenden Ausdruck minimieren:

Lediglich zur Gegenstandsplatzierung ist die Minimierung auf starre Transformationen beschränkt.

Die Hauptprozedur

Anschließend an die Vollendung der Bootstrap-Prozedur (Block 23, Fig. 7) zum Bestimmen der Deckungstransformationsparameter für den anfänglichen gescannten Bereich arbeitet das System gemäß der Hauptprozedur. Diese besteht aus zwei Prozessen, die gleichzeitig ablaufen, nämlich einem Vergleichsprozeß und einem Feindeckungsprozeß, wie es durch den Block 24 in Fig. 7 gezeigt ist. Die Hauptprozedur ist mehr ins einzelne gehend in dem Flußdiagramm in den Fig. 13a & 13b veranschaulicht.

So wird, wie es durch einen Block 70 in den Fig. 13a und 13b gezeigt ist, wenn ein On-line- Merkmal erscheint, mit Koordinaten (x,y), dessen Position transformiert, indem die verfügbaren Transformationsparameter verwendet werden, um sie mit den Referenzmerkmalen zur Deckung zu bringen, was unter Verwendung der Gleichung 1 die neuen Koordinaten (xr,yr) ergibt. Nun wird unter Verwendung dieser Koordinaten (xr,yr) die Referenzliste für jedes Merkmal mit den Koordinaten (x',y') abgesucht, welche die Bedingung erfüllen:

x' - xr ≤ Q und y' - yr ≤ Q, Gl. 20

wobei Q die Referenztoleranz und von einem Typ ist, der mit dem On-line-Merkmalstyp übereinstimmt (Block 71).

Die Transformation, die in der Bootstrap-Prozedur gefunden wird, richtet, wie weiter oben gezeigt, die On-line-Merkmale mit den Referenzmerkmalen in der anfänglichen Scanzone aus. Die Bootstrap-Prozedur arbeitet nur mit wenigen On-line-Merkmalen, so daß keine Zeit verlorengeht mit dem Warten, daß eine große Zahl von On-line-Merkmalen akkumuliert wird. Die Transformation, die durch die Bootstrap-Prozedur produziert wird, kann deshalb nicht die beste Transformation für die vollständige Scanzone sein. Glücklicherweise ist in der anfänglichen Scanzone eine bessere Ausrichtung noch nicht erforderlich. Wenn jedoch das Scannen über die vollständige Scanzone fortgesetzt wird, arbeitet ein Feindeckungsprozeß zusammen mit dem Hauptübereinstimmungsprozeß, um die Transformationsparameter zu verbessern.

So wird gemäß der Darstellung in dem Flußdiagramm nach den Fig. 13a & 13b, wenn jedes On-line-Merkmal während des Inspektionsprozesses erfaßt wird, dieses mit den gespeicherten Referenzmerkmalen verglichen, um festzustellen, ob es irgendwelche übereinstimmenden Paare gibt (Block 72). Wenn ein On-line-Merkmal keine Übereinstimmung mit einem gespeicherten Referenzmerkmal findet, wird das On-line-Merkmal als ein überschüssiges Merkmal aufgezeichnet (Block 73). Andererseits, wenn ein On-line-Merkmal mit einem gespeicherten Referenzmerkmal übereinstimmt (Block 72), werden die elf Register innerhalb des Speicherbereiches 13 aktualisiert (Block 75), wie oben beschrieben, und die übereinstimmenden Referenzmerkmale werden als "nicht zählend" markiert (Block 76). Dieses Aktualisieren verlangt sehr wenig Berechnung - nur elf Additionen und sechs Multiplikationen.

Immer dann, wenn beschlossen wird, die Transformationsparameter zu aktualisieren (Block 77), z. B. dann, wenn genug On-line-Merkmale gesammelt worden sind oder wenn das Scannen über eine große Distanz seit der letzten Aktualisierung vonstatten gegangen ist, kann das erfolgen (Block 78) gemäß dem laufenden Zustand der elf Register wie in den Gleichungen 10-18.

Am Ende des Scanvorganges (Block 74) werden alle Referenzmerkmale, die nicht als "nicht fehlend" markiert sind, als "fehlend" bezeichnet (Block 79). Das System liefert nun eine Liste der überschüssigen Merkmale und der fehlenden Merkmale (Block 25, Fig. 7).

Die Transformationsparameter werden ebenfalls festgehalten, um eine Steuerung auf hohem Niveau oder das Aufzeichnen der geometrischen Verzerrungsparameter des Scanners, die aus den Transformationsparametern gewonnen werden, zu erleichtern.

Es ist somit zu erkennen, daß nach der anfänglichen Bootstrap-Prozedur das Scannen weiter geht, um mehr On-line-Merkmale zu liefern, die auf der inspizierten Leiterplatte erfaßt werden. Diese Daten können zum Aktualisieren der anfänglichen Transformationsparameter verwendet werden, um deren Genauigkeit mit den neu ankommenden Daten zu erhöhen. Die Transformationsparameter, die auf den anfänglich gescannten Bereich angewandt wer den, sind zwar ungenau, im allgemeinen sind sie jedoch für die Beschreibung der Transformation an dem Ort des anfänglich gescannten Bereiches ausreichend, so daß es nicht notwendig sein wird, zurückzukehren und den anfänglich gescannten Bereich erneut zu scannen. Tatsächlich kann im Prinzip z. B. der Winkel θ nicht genau gemessen werden, indem nur eine kleine Zone verwendet wird. Andererseits ist der exakte Winkel zum genauen Vergleich der anfänglichen Zone mit der Referenz nicht notwendig. Nur dann, wenn das Scannen fortschreitet, wird eine bessere Approximation des Winkels benötigt und wird mit der Ankunft von mehr On-line-Daten erzielt. Der gesamte kombinierte Prozeß von Inspektion und Zur- Deckung-bringen kann somit in einem einzelnen Scanvorgang ausgeführt werden.

Wenn das Scannen der ersten Scheibe beendet ist, ist eine gute Approximation der ersten Scheibentransformation erzielt. Wenn jedoch, wie oben erwähnt, eine Scannerkompensation erforderlich ist, wird diese Transformation für die zweite Scheibe nur teilweise abgedeckt. Die Parameter a, b, c, d sind korrekt, aber δx und δy für die zweite Scheibe können etwas von denjenigen der ersten abweichen. Wenn eine Scannerkompensation verlangt wird, wird somit der Verarbeitung der Merkmale der zweiten Scheibe ebenfalls eine Boots-trap-Phase vorgeschaltet, bei welcher die Transformation aus der vorhergehenden Scheibe verwendet wird. Diese Boots-trap-Prozedur arbeitet mit einem viel kleineren Suchradius (R), nimmt keine Winkeldiskrepanz gegenüber der vorhergehenden Transformation an (θmax = 0, αmax = 0, PXmax = 0, PYmaX = 0) und beschränkt sich selbst auf das Auffinden von nur translatorischen Abweichungen, so daß sich nur δx und δy ändern.

Optionaler Algorithmus für periodische Muster

Es sollte, wie oben mit Bezug auf den Block 53 in dem Flußdiagramm nach Fig. 10 erwähnt, wenn eine periodische Leiterplatte gefunden wird (Block 52), ein spezieller Algorithmus für periodische Muster angewandt werden.

In dem periodischen Fall wird die Korrelationsfunktion W() mehr als eine signifikante Spitze haben. Diese Spitzen bilden geometrisch ein zweidimensionales Gitter. Die erste Phase analysiert die Korrelationsfunktion W(), um die kürzesten Gittergeneratoren zu finden. Generatoren eines zweidimensionalen Gitters G sind zwei linear unabhängige Vektoren g&sub1; und g&sub2;, so daß alle Vektoren in G als eine lineare Kombination von g&sub1; und g&sub2; erzielt werden können, mit Koeffizienten ng&sub1; + mg&sub2;, wobei n, m zu [... -2, -1, 0, 1, 2, 3, ....] gehören (es braucht nur einen Generator zu geben, wenn die Periodizität eindimensional ist). Das erfolgt, indem zuerst ein Schwellenwert auf W() angewandt wird, wobei der Wert von 80% der höchste Wert in W() ist. Dann werden die verbleibenden Verlagerungsvektoren gebündelt, um eine zwei dimensionale Schar von Punkten P&sub1; ....Pm zu bilden, welche sich in den Bündelzentren befinden. Danach wird für jeden Punkt in der Schar, P&sub1;, folgendes gemacht:

1. Der Punkt in der Schar P&sub1;....Pm, der am nächsten bei P&sub1; ist und nicht P&sub1; selbst ist, wird gefunden. Wir nennen ihn q&sub1;.

2. Die Unterschar von Punkten, die nicht fast kollinear mit P&sub1;-q&sub1; sind, wird gebildet, und aus ihr wird der Punkt, der am nächsten bei P&sub1; ist, ermittelt. Wir definieren "fast kollinear" als einen dritten Punkt V, der den Winkel zwischen V-P&sub1; und V-q&sub1; zwischen +15º und -15º oder zwischen 180º+15º und 180º-15º bildet. Wir nennen ihn q&sub2;. Die obige Unterschar kann leer sein, wobei in diesem Fall q&sub2; als nicht gefunden betrachtet wird.

3. q&sub1;-P&sub1; und P&sub1;-q&sub1; werden in eine Vektorliste eingegeben, die als "Generatorvektorliste" bezeichnet wird. Wenn q&sub2; gefunden wurde, werden q&sub2;-P&sub1; und P&sub1;-q&sub2; in die Liste eingegeben.

Nach dem Hinweggehen über alle Punkte (P&sub1;) und dem Ausführen des obigen ist die Generatorvektorliste vollständig.

Wir entnehmen nun aus dieser Liste den redundantesten Vektor und nennen ihn g&sub1;. Danach suchen wir die Liste nach dem redundantesten Vektor unter denjenigen ab, die nicht fast in der Richtung von g&sub1; sind (wiederum nach dem 15º-Kriterium). Wenn es keinen derartigen Vektor gibt, ist g&sub1; der einzige erzeugende Vektor. Andernfalls, wenn wir ihn g&sub2; nennen, sind g&sub1;, g&sub2; die beiden erzeugenden Vektoren.

Nachdem wir nun den Generator (die Generatoren) gefunden haben, wenden wir diese Kenntnis auf die Merkmalssätze (On-line und Referenz) an, um die eine Periode unterbrechenden Merkmale zu finden. In jeder der beiden Listen machen wir folgendes: für jedes Merkmal, das die Position f hat, suchen wir in seiner eigenen Liste nach Merkmalen in der Nähe der Positionen f+g&sub1; und f-g&sub1;, die einen Typ haben, der mit den f's übereinstimmt. Wenn eine (oder beide) dieser Positionen keine übereinstimmenden Merkmale hat und innerhalb der Inspektionszone (oder der Scheibengrenzen bei der On-line-Liste) ist, wird. f als ein Periodenbrecher des Typs 1 markiert. Dasselbe wird gemacht für g&sub2; (bei der Suche nach Positionen f+g&sub2; und f-g&sub2; und Markieren als Typ 2), wenn g&sub2; tatsächlich existiert. Wir fahren fort, die Liste zu verarbeiten, bis genug Periodenbrecher des Typs 1 gefunden worden sind, und, wenn g&sub2; existiert, genug Periodenbrecher des Typs 2 ebenfalls gefunden worden sind.

Wir definieren die folgenden Vektoren:

wenn g&sub2; existiert,

andernfalls,

und &sub1; = U&sub1;/ U&sub1; = U&sub1;/ U²1x + U²iy

&sub2; = U&sub2;/ U&sub2; = U&sub2;/ U²2x + U²2y

Der Vektor &sub1; wird als die Richtung dienen, in welcher eine eindimensionale Korrelation zwischen den On-line- und den Referenzperiodenbrechern des Typs 1 berechnet wird.

Für jedes On-line-Merkmal, welches ein Periodenbrecher des Typs 1 ist, der die Koordinaten (x,y) hat, suchen wir für alle Referenzmerkmale innerhalb der Distanz R von. (x,y), welche auch Periodenbrecher des Typs 1 sind und welche einen Typ haben, der mit dem der Online-Merkmale übereinstimmt. Für jedes Referenzmerkmal, das die Koordinaten (x¹,y¹) hat, berechnen wir:

Z = (x¹ - x)U1x + (y¹ - y)U1y

und inkrementieren den Zählwert für Z in der Korrelationsfunktion C&sub1;(), d. h. inkrementieren C1(Z), wobei Z der Bereich - 2R ... 2R ist (weshalb C1 ein Vektor in dem Bereich - 2R ... 2R ist). Wenn g2 existiert, konstruieren wir C&sub2;() auf demselben Wege (wobei wir nach Periodenbrechern des Typs 2 schauen und U2x und U2y verwenden).

Wenn g&sub2; nicht existiert, konstruieren wir C&sub2;() mit Periodenbrechnern des Typs 1, und zwar unter weiterer Verwendung von U2x und U2y.

Wir finden nun Z&sub1;, so daß C&sub1;(Z&sub1;) in C&sub1;() maximal ist, und Z&sub2;, so daß C&sub2;(Z&sub2;) in C&sub2;() maximal ist. Aus diesen berechnen wir den Verlagerungsvektor V:

Vx = Z&sub1;U1x + Z&sub2;U2x

Vy = Z&sub1;U1y + Z&sub2; U2y

Dieser Vektor V ist die Schätzung des korrekten Verlagerungsvektors unter den mehreren, die einen hohen Rang in der ursprünglichen Korrelationsfunktion W() hatten. Wir fahren fort mit V wie in dem nichtperiodischen Fall (vgl. GI. 8 und Block 54 in Fig. 10):

Optionaler Deckungsalgorithmus für Scanner-Sensor-Achse

Der Scanner ruft, wie oben erwähnt, Verzerrungen längs der Sensorachse hervor. Für eine gegebene Scheibe und Y-Koordinaten wird diese Verzerrung längs der Scanner-X-Achse Sensorachse als ein Polynom dritten Grades modelliert. Wenn sich der Schlitten längs der Scanner = Y-Achse bewegt, kann sich dieses Polynom langsam ändern. Ein Modell des Polynoms dritten Grades ist gerechtfertigt, wenn wir annehmen, daß die Distanz zwischen den Lichtsensoren und dem Gegenstand ein Polynom zweiten Grades als eine Funktion von X ist. Außerdem kann eine Linsenvergrößerungsverzerrung als eine Funktion von X als ein Polynom zweiten Grades beschrieben werden. In einer besonderen Scheibe ergibt sich für die Gesamtheit der Deckungstransformationen:

wobei x, y gescannte Merkmalskoordinaten, xr, yr-Referenz (zur Deckung gebrachte)- Koordinaten sind. Der Algorithmus zum Gewinnen dieser Extramodellparameter P&sub0;(y), P&sub1;(y), P&sub2;(y), P&sub3;(y)werden beschrieben.

Für den Moment nehmen wir an, daß a, b, c, d und δx1, δy bereits bekannt sind. Wir bezeichnen mit a¹, b¹, c¹, d¹, δx¹, δy¹ die Parameter, welche die inverse Affintransformation (Referenz zu On-line) darstellen:

a¹ = d/ad-bc b¹ = -b/ad-bc c¹ = -c/ad-bc d¹ = a/ad-bc

Wenn (xi, yi) (ui, vi) die Referenz-On-line-Übereinstimmungen sind, möchten wir den Fehler, der nach der Transformation (a¹ui + b¹vi + δ¹x) - xi verbleibt, als ein Polynom dritten Grades in xi modellieren. Wir machen das durch die Einpassung nach der Methode der kleinsten Quadrate, so daß wir folgendes benötigen:

Sxk = Σ[Xik], (0 ≤ k < 6)

Σ[xik(aiUi + b¹vi + δx¹)] = (0 ≤ k ≤ 3)

= a¹Σ[XikUi] + biΣ[XikVi] + δx¹Σxik =

= a¹Sxku + b¹Sxkv + δx¹Sxk

Und dann lösen wir das 4 mal 4 Linearsystem:

EP = F für unbekannte P = P&sub0; P&sub1; P&sub2; P&sub3;

Fk = a¹Sxku + b¹Sxkv + δx¹Sxk, 0 < k < 3

wobei

Eml = Sxm+1 0 ≤ m ≤ 3

0 ≤ 1 ≤ 3

Das ist die Prozedur zum Erzielen der Koeffizienten P&sub0;, P&sub1;, P&sub2;, P&sub3; des Polynoms dritten Grades, wobei die Übereinstimmungsdaten (Xi Yi Ui Vi) und die Affintransformation (a, b, c, d, δx, δy) bekannt sind.

Es ist zu erkennen, daß die Information, die aus den Übereinstimmungsdaten extrahiert wird, von der Affintransformation unabhängig ist und in fünfzehn Akkumulationsregistern zusammengefaßt werden kann:

0 = < k < = 6

0 = < k < = 3

0 = < k < = 3

wobei n die Zahl der laufenden Übereinstimmung in dieser Scheibe ist.

Es wurde zuvor erwähnt, daß das Polynom sich mit y während des Scannens der Scheibe langsam ändern kann. Wir berücksichtigen das, indem wir die Register veranlassen, Über einstimmungsdaten mit exponentiell abnehmendem Gewicht für weiter zurück in Y zu akkumulieren:

0 = < k < = 6

0 = < k < = 3

0 n < k < = 3

wobei OLqL1, q die spezielle Frequenz der Änderungen in der Distanz zwischen den Sensoren und diesem Gegenstand kennzeichnet.

Das kann auch in Akkumulatoren erreicht werden durch:

0 = < k < = 6

0 = < k < = 3

0 = < k < = 3

Dieser gesamte Prozeß des Übereinstimmungsdatenakkumulatorsammelns für das Polynom wird mit dem Anpassen und Sammeln von Formeln für die Affintransformation an dem Ende der Bootstrap-Prozedur und während des Scannens vereinigt. Während des Scannens wird der Bootstrap-Prozedur und während des Scannens vereinigt. Während des Scannens wird es, wenn jede Übereinstimmung gefunden wird, benutzt, um die elf "Affin"-Register und die fünfzehn "Polynom"-Register zu aktualisieren.

Periodisch wird die Affintransformation erneut abgeschätzt unter Verwendung der "Affin"- Register, und das Polynom wird erneut abgeschätzt unter Verwendung der "Polynom"- Register und der laufenden Affintransformation durch Lösen des obigen 4 · 4-Linearsystems.

Die Erfindung ist zwar mit Bezug auf eine bevorzugte Ausführungsform beschrieben worden, die sich nur auf die Kompensation für eine starre Bewegung bezieht, es ist jedoch klar, daß das neue Verfahren auch verwendet werden könnte zum Kompensieren irgendeines anderen Typs von Fehlausrichtung einschließlich einer Parallelverschiebung der X-Achse oder der Y-Achse oder von beiden; Rotation; volle starre Bewegung; Skalierungsfehler längs der X-Achse oder der Y-Achse oder von beiden; Rechtwinkeligkeitsfehler zwischen der X-Achse und der Y-Achse; und/oder volle lineare Verzerrung, allgemein ausgedrückt durch die folgende Gleichung, mit unbekannten Parametern:

xr = ax + by + c

yr = dx + cy + f

Viele andere Variationen, Modifikationen und Anwendungsfälle der Erfindung sind möglich.


Anspruch[de]

1. Verfahren zum Inspizieren eines Gegenstands (1) in bezug auf eine gespeicherte Liste von Referenzmerkmalen (6), wobei jedes Merkmal durch seinen Typ und seine Koordinaten identifiziert wird, beinhaltend:

Scannen des Gegenstands (1), um On-line identifizierende, erfaßte Merkmale und deren Koordinaten, die während des Scannens des Gegenstands (1) erfaßt werden, zu erzeugen;

Transformieren der Koordinaten der erfaßten Merkmale gemäß Deckungstransformationsparametern, um eine globale Fehldeckung des Gegenstands zu korrigieren; und

Vergleichen der erfaßten Merkmale und ihrer transformierten Koordinaten mit der Liste von Referenzmerkmalen (6) und mit deren Koordinaten auf Übereinstimmungen hin;

wobei die Transformationsparameter geliefert und dynamisch verbessert werden durch:

Scannen eines anfänglichen Bereiches des Gegenstands;

Erzeugen einer Liste von erfaßten Merkmalen (5) mit deren Koordinaten für den anfänglichen Bereich;

paarweises Anpassen der erfaßten Merkmale (5) und von deren Koordinaten an die Referenzmerkmale und deren Koordinaten für den anfänglichen Bereich;

Berechnen eines anfänglichen Schätzwertes der Deckungstransformationsparameter, was erforderlich ist, um Disparitäten zwischen den angepaßten Paaren von erfaßten Merkmalen und Referenzmerkmalen in dem anfänglichen Bereich zu minimieren;

fortschreitendes Vergrößern des gescannten Bereiches des Gegenstands (1) und fortschreitendes Aktualisieren des anfänglichen Schätzwertes der Transformationsparameter, um einen verbesserten Satz von Transformationsparametern für die erfaßten Merkmale (5) und die Referenzmerkmale (6) in bezug auf den vollständigen Bereich, der gescannt wird, zu liefern.

2. Verfahren nach Anspruch 1, wobei der verbesserte Satz von Transformationsparametern verbessert wird durch:

Erfassen von zusätzlichen Merkmalen und von deren Koordinaten während des fortschreitenden Vergrößerns des gescannten Bereiches; und

Verwenden der Relation zwischen den zusätzlichen Merkmalen und deren Koordinaten zum Anpassen von Referenzmerkmalen und von deren Koordinaten, um die Transformationsparameter zu aktualisieren und verbesserte Transformationsparameter zu lie fern, die mit den Koordinaten von angepaßten Paaren von Referenzmerkmalen für den vollständigen gescannten Bereich am engsten übereinstimmen.

3. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Berechnen des anfänglichen Schätzwertes der Transformationsparameter beinhaltet:

Bestimmen der Koordinaten von allen Referenzmerkmalen desselben Typs, die innerhalb einer maximalen Fehldeckungsdistanz von dem erfaßten Merkmal sind, für jedes erfaßte Merkmal in dem anfänglichen Bereich;

Identifizieren von übereinstimmenden Paaren unter diesen erfaßten Merkmalen und Referenzmerkmalen; und

Verwenden der übereinstimmenden Paare zum Berechnen des anfänglichen Schätzwertes der Deckungstransformationsparameter.

4. Verfahren nach Anspruch 3, wobei die übereinstimmenden Paare verwendet werden, um den anfänglichen Schätzwert der Transformationsparameter zu berechnen, durch:

Bestimmen des Verlagerungsvektors des übereinstimmenden Paares für jedes derartige Paar;

Sammeln aller Verlagerungsvektoren für den anfänglichen Bereich;

daraus Berechnen einer Korrelationsfunktion, die erfaßte Merkmale mit Referenzmerkmalen korreliert; und

Verwenden der Korrelationsfunktion zum Berechnen des anfänglichen Schätzwertes der Deckungstransformationsparameter.

5. Verfahren nach Anspruch 4, wobei das Berechnen der Korrelationsfunktion beinhaltet:

Definieren eines Begrenzungsblockes der Merkmale in dem anfänglich gescannten Bereich;

Definieren eines Ungewißheitsblockes des anfänglich gescannten Bereiches, um Rauschen darin zu gestatten; und

Zählen von sämtlichen Vektoren in dem Ungewißheitsblock, der um den betreffenden Vektor in der Verlagerungsvektorenliste zentriert ist, um die Korrelationsfunktion des Vektors in der Verlagerungsvektorenliste zu berechnen.

6. Verfahren nach einem der vorhergehenden Ansprüche, wobei der anfängliche Schätzwert der verlangten Transformationsparameter periodisch aktualisiert wird durch:

Bereitstellen einer Vielzahl von Registern zum Akkumulieren der Koordinaten der erfaßten Merkmale (5) und der Referenzmerkmale (6);

Inkrementieren der Register für die Koordinaten für jedes übereinstimmende Paar; und Verwenden der laufenden Werte der Register zum Aktualisieren der Transformationsparameter.

7. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Verfahren verwendet wird, um eine Fehldeckung des Gegenstands wegen Gegenstandsplatzierungsfehlern, Scannerfehlern und/oder Produktionsskalierfehlern zu kompensieren.

8. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Gegenstand optisch gescannt wird und seine Merkmale optisch erfaßt werden.

9. Verfahren nach einem der vorhergehenden Ansprüche, wobei infolge der Inspektion eine Liste von überschüssigen Merkmalen, die in dem inspizierten Gegenstand vorhanden sind, aber nicht in der gespeicherten Liste von Referenzmerkmalen, produziert wird sowie eine Liste von fehlenden Merkmalen, die in der gespeicherten Liste von Referenzmerkmalen vorhanden sind, aber nicht in dem inspizierten Gegenstand.

10. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Gegenstand eine Leiterplatte ist.







IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com