PatentDe  


Dokumentenidentifikation DE4111490C2 27.04.1995
Titel Verfahren zur Prüfung von gedruckten Leiterplatten
Anmelder The Gerber Scientific Instrument Co., South Windsor, Conn., US
Erfinder Snietka, Scott Philip, Plantsville, Conn., US
Vertreter Richter, J., Dipl.-Ing., 10719 Berlin; Gerbaulet, H., Dipl.-Ing., Pat.-Anwälte, 20354 Hamburg
DE-Anmeldedatum 09.04.1991
DE-Aktenzeichen 4111490
Offenlegungstag 17.10.1991
Veröffentlichungstag der Patenterteilung 27.04.1995
Veröffentlichungstag im Patentblatt 27.04.1995
IPC-Hauptklasse G06K 9/03
IPC-Nebenklasse G06F 19/00   G06K 9/64   H05K 3/00   

Beschreibung[de]

Die Erfindung geht aus von einem Verfahren zur Prüfung von gedruckten Leiterplatten, wobei die Leiterplatten nach Maßgabe einer ersten Datenbasis von Signalen hergestellt worden sind, die eine Abbildung von Leiterplattenmerkmalen bilden, wobei die Abbildung aus einem Feld von Pixeln mit einem ersten Zustand oder einem zweiten Zustand besteht, wobei die Pixel in einer Folge von Abtastlinien angeordnet sind, und die genannten Pixel mit dem ersten Zustand den genannten Leiterplattenmerkmalen entsprechen, und wobei die Pixel innerhalb jeder Abtastlinie in abwechselnden Serien gleichen Zustands angeorndet sind.

Gedruckte Leiterplatten werden heute nach einem Prozeß gefertigt, der nahezu vollautomatisiert ist. Die Schaltungen für eine bestimmte Leiterplatte werden unter Verwendung einer rechnergestützten Konstruktionsmaschine (CAD-Maschine) erzeugt, die nicht nur einen Schaltplan der Leiterplatte generiert, sondern auch die Anordnung (Layout) aller auf der Leiterplatte befindlichen Bausteine festlegt. Die Anordnungsinformationen werden an ein Gerät wie z. B. einen Laserplotter übergeben, der die zur Fertigung der Leiterplatte benötigte Druckvorlage belichtet. Die Druckvorlage umfaßt eine Reihe durchsichtiger und undurchsichtiger Bereiche, die den Leiterplattenbausteinen entsprechen.

In der Leiterplatte oder der Leiterplatten-Druckvorlage können jedoch Defekte auftreten, welche die gedruckte Leiterplatte unbrauchbar machen würden. Es ist daher wünschenswert, einen Vergleichsstandard zu besitzen, mit dem die Druckvorlage oder die gedruckte Leiterplatte verglichen werden kann. Diese Defekte können eine Vielzahl von Ursachen haben, darunter eine Schrumpfung in der Druckvorlage oder Fehler im Fertigungsprozeß. Bekannte Systeme zur Fehlererkennung in gedruckten Leiterplatten haben oft einfach eine vorgegebene Leiterplatte mit einer fehlerfreien Standard-Leiterplatte verglichen (einer sogenannten goldenen Leiterplatte), um während des Fertigungsprozesses entstandene Fehler zu erkennen. Dieser einfache Vergleich ergibt jedoch eine große Anzahl zu geringfügiger Defekte, welche die Leiterplatte nicht unakzeptierbar machen. Darüberhinaus würden globale Merkmalsänderungen der Leiterplatte, die durch eine Schrumpfung der Druckvorlage verursacht werden, dazu führen, daß in einem System, das auf einem einfachen Vergleich mit einer goldenen Platte basiert, alle Merkmale als Defekte nachgewiesen werden.

Einige bekannte optische Leiterplattenprüfsysteme sind so angelegt, daß sie Prüfmarken untersuchen, die außerhalb der Merkmale auf der Leiterplatte angebracht werden. Die Maße der Paßmarken auf der gedruckten Leiterplatte werden mit einem Standard verglichen, um den Grad der Schrumpfung zu bestimmen. Falls die Schrumpfung eine bestimmte Größe überschreitet, wird die Leiterplatte als defekt angesehen.

Die Informationen, die den Merkmalen der gedruckten Leiterplatte entsprechen, werden digitalisiert und auf einem magnetischen Medium gespeichert, beispielsweise auf Magnetband. Die bloße Größe der entstehenden (X, Y)-Rasterdatei oder -Datenbasis macht es jedoch erforderlich, die Daten zu komprimieren, um den Speicherumfang zu verringern und die Verarbeitungsgeschwindigkeit zu erhöhen. Im Fachgebiet gibt es eine Vielzahl komprimierter Datenbasisformate; dazu gehören das lauflängencodierte Format (run length encoded = RLE-Format) und das Abtastlinienaktualisierungs-Format (scan line update = SLU-Format). Letzteres wird von Firmen wie der American Telephone and Telegraph Company (AT&T) verwendet.

Zur Erzeugung einer Abbildung der Leiterplattenmerkmale muß die Datei zum Rasterformat dekomprimiert und einem Laser-Direktbilderzeuger (laser direct imager = LDI) wie z. B. dem LDI 1500 zugeführt werden, der von der Gerber Scientific Instrument Company, dem Zedenten der vorliegenden Erfindung, vertrieben wird. Der Vergleich der Bausteine auf der Leiterplatte mit den Merkmalen der Standardabbildung erfolgt durch ein Gerät wie z. B. das Fehlererkennungssystem Modell 1800, das ebenfalls von der Gerber Scientific Instrument Company vertrieben wird.

In der US-A-4 673 816 ist ein Verfahren zur Prüfung eines sehr dicht gedrängten und sich häufig wiederholenden Musters auf einem Maskensubstrat beschrieben, bei welchem Verfahren in Bereichen ohne sich wiederholende Muster die Originaldaten sequentiell und synchron mit der Abtastung des Substrats umgewandelt und mit den Abtastdaten verglichen werden, während bei sich wiederholenden Mustern das Grundmuster nur einmal umgewandelt und abgespeichert und anschließend wiederholt für den Vergleich mit den Abtastdaten ausgespeichert wird. Es werden hier zwar an den Mustergrenzen auch einzelne Grau-Pixel (als Zwischenwerte) verwendet, jedoch ist weder von definierten Toleranzbereichen die Rede, noch wird ein Verfahren angegeben, wie aus den Originaldaten die Grau-Pixel abgeleitet werden.

In der DE-A-38 00 820 wird ein Verfahren offenbart, wie bei der Darstellung von Graphiken in Form von Punktmatrixdarstellungen der für die Binärumwandlung notwendige Binarisierungs-Schwellenwert innerhalb eines Bildausschnittes als Mittelwert bestimmter Grauwerte ermittelt werden kann. Ziel ist hier eine Umwandlung von Pixeln mit variierenden Grauwerten in eine vollkommen eindeutige Schwarz-Weiß- bzw. Binärdarstellung. Übergangs- oder Toleranzbereiche, wie sie bei dem Verfahren nach der Erfindung zwischen den schwarzen und weißen Bereichen in vorgegebener Weise zwischengeschaltet werden, sollen durch diese Art des Vorgehens gerade ausgeschlossen werden.

Bei derartigen Prüfverfahren sind verschiedene Probleme zu lösen: Eines dieser Probleme ist die Berücksichtigung bestimmter Toleranzbereiche, damit nicht jede unwesentliche Abweichung der hergestellten Leiterplatte von der Vorlage zur Qualifizierung der Platte als Ausschuß führt. Ein anderes dieser Probleme ist die große Datenmenge einer CAD/CAM-Datenbasis, die üblicherweise durch Datenkompression besser handhabbar gemacht wird.

Es wäre vorteilhaft, ein Verfahren und ein Gerät zur Erzeugung einer Datenbasis aus komprimierten Rasterdaten für den Einsatz bei der Fehlererkennung an Leiterplatten zu besitzen, das Toleranzen für Einzelmerkmale gedruckter Leiterplatten vorgeben würde.

Der Erfindung liegt daher die Aufgabe zugrunde, ein Prüfungsverfahren für Leiterplatten zu schaffen, welches Toleranzbereiche für die einzelnen Leiterplattenmerkmale berücksichtigt und vor allem mit gängigen Formaten der Datenkompression (RLE bzw. SLU) problemlos kompatibel ist.

Diese Aufgabe wird durch die in Anspruch 1 angegebenen Merkmale gelöst.

Die Toleranzbereiche werden dabei durch Umwandlung des ersten (Ausgangs-)Datensatzes in einen modifizierten zweiten Datensatz mitberücksichtigt. Die Durchführung mittels Vergleich ganzer Abtastlinien und Pixelserien anstelle der Verarbeitung einzelner Pixel stellt sicher, daß gerade die gängigen Kompressionsformate, welche die Bildinformation nur in Form von Abtastlinien und Pixelserien speichern, ohne Schwierigkeiten verarbeitet werden können.

Ein weiteres Ziel der Erfindung ist die Bereitstellung eines Verfahrens und Geräts für den Einsatz bei automatisierten optischen Prüfsystemen für gedruckte Leiterplatten, das eine Datenbasis mit Toleranzen für Einzelmerkmale gedruckter Leiterplatten erzeugt.

Ein weiteres Ziel der Erfindung ist die Bereitstellung eines Verfahrens und Geräts vom obigen Typ, die durch eine Datenbasis mit drei Zuständen gekennzeichnet sind.

Erfindungsgemäß wird weiterhin ein Gerät zur Erzeugung einer Datenbasis geschaffen, die aus Signalen besteht, die eine Abbildung von Leiterplattenmerkmalen wiedergeben, welche in der Leiterplattenfertigung bei den Druckvorlagen verwendet werden; die Abbildung besteht dabei aus einer Anordnung von Pixeln, die entweder einen ersten Zustand (schwarz) oder einen zweiten Zustand (weiß) annehmen und in einer Reihe von Abtastlinien angeordnet sind, wobei die schwarzen Pixel den Leiterplattenmerkmalen entsprechen und jede Abtastlinie mindestens eine Pixelserie vom gleichen Zustand enthält. Das Gerät besteht aus einer ersten Vorrichtung zur Aufnahme von Signalen, die einer aktuellen und einer vorhergehenden Abtastlinie entsprechen, einer zweiten Vorrichtung zur Identifikation einer Seriengrenze, die durch ein Pixel am Ende einer ersten Serie und ein Pixel am Anfang einer zweiten Serie auf der aktuellen Abtastlinie gebildet wird, und einer dritten Vorrichtung zur Zustandsbestimmung der Serien. Das Gerät enthält außerdem eine vierte Vorrichtung zur Zustandsbestimmung einer Serie in der vorhergehenden Abtastlinie, deren Seriengrenze mit der Seriengrenze der aktuellen Abtastlinie deckungsgleich ist; eine vierte Vorrichtung zur Zustandsänderung einer vorgewählten Toleranz- Pixelzahl in Grenznähe der ersten und der zweiten Serie in einen dritten Zustand (grau). Eine sechste Vorrichtung schaltet die Pixel in den benachbarten Abtastlinien, die mit denen in der ersten oder zweiten, aus Pixeln im ersten Zustand bestehenden Serie übereinstimmen, in den dritten Zustand um, falls die vorhergehende, mit einer der Seriengrenzenpixel deckungsgleiche Abtastlinie sich in einem anderen Zustand befindet. Die sechste Vorrichtung schaltet außerdem die Pixel einschließlich einer vorgewählten Toleranz-Anzahl von Pixeln, die mit der aktuellen Abtastliniengrenze zusammenfallen, in den dritten Zustand um.

Abb. 1 zeigt eine vereinfachte schematische Darstellung einiger Bausteine, die in der Leiterplattenfertigung verwendet werden.

Abb. 2 zeigt eine vereinfachte schematische Darstellung eines Fehlererkennungssystems für gedruckte Leiterplatten, das ein Gerät nach der vorliegenden Erfindung enthält.

Abb. 3 zeigt eine vereinfachte schematische Darstellung eines Datensatzformats für komprimierte Datensätze, die in dem System gemäß Abb. 2 verwendet werden.

Abb. 4 zeigt eine vereinfachte Darstellung einer Folge von Abtastlinien, in denen Leiterplattenmerkmale als Pixelserien gleicher Farbe dargestellt werden.

Abb. 5 zeigt die erfindungsgemäße Abbildung eines Leiterplattenmerkmals, die durch innere und äußere Toleranzen gekennzeichnet ist.

Abb. 6 zeigt eine schematische Darstellung eines Algorithmus, der von dem Gerät nach Abb. 2 zur Aufnahme komprimierter Abtastlinien-Datensignale und zur Umwandlung dieser Signale in ein Hybrid-Rasterformat angewendet wird.

Abb. 7 zeigt eine schematische Darstellung eines Algorithmus, der von dem Gerät nach Abb. 2 zur Erzeugung eines Drei-Zustände-Rasterbildes mit Toleranzen für einzelne Leiterplattenmerkmale angewendet wird.

Abb. 8 zeigt eine schematische Darstellung eines Algorithmus, auf den der Algorithmus gemäß Abb. 7 bei der Erzeugung von Toleranzen für Leiterplattenmerkmale entlang einer aktuellen Abtastlinie zugreift.

Abb. 9 zeigt eine schematische Darstellung eines Algorithmus, auf den der Algorithmus gemäß Abb. 7 bei der Erzeugung von Toleranzen für Leiterplattenmerkmale in den einer aktuellen Abtastlinie benachbarten Abtastlinien zugreift.

Unter Bezugnahme auf Abb. 1 ist ersichtlich, daß dort in vereinfachter schematischer Form eine Reihe von Bausteinen dargestellt sind, die ein System 10 repräsentieren, das bei der Fertigung einer gedruckten Leiterplatte eingesetzt wird. Typischerweise werden die auf der Leiterplatte zu fertigenden Schaltungen unter Verwendung einer CAD/CAM-Einrichtung (Block 12) erzeugt, die eine den Schaltplan der Schaltkreise enthaltende Datei generiert. In Block 14 wird diese Datei in ein Programm zur Erzeugung der physischen Baugruppenanordnung (Layout) für die Leiterplatte eingegeben. Der Datenumfang ist beträchtlich, da jeder Bildpunkt oder jedes Pixel auf der Leiterplatte durch zwei räumliche Koordinaten (X, Y) und eine Koordinate, die den schwarzen bzw. weißen Zustand dieses Pixels angibt, beschrieben werden muß. Die entsprechende Datei ist sehr groß, weshalb die meisten Systeme ein oder mehrere bekannte Datenkompressionsverfahren anwenden. Diese Verfahren umfassen eine Vielzahl von lauflängencodierten Formaten oder ein Format mit Abtastlinien-Aktualisierung (SLU-Format), wie z. B. das obenerwähnte AT&T-Format. Diese Datei wird dann einer Reihe von Geräten übergeben, zu denen ein Photoplotter 16 gehört, der zur Herstellung der für die Leiterplattenfertigung benötigten Druckvorlage dient. Der Photoplotter ist vorzugsweise ein Laserdirektbilderzeuger (LDI). Der LDI bewegt den Abtastpunkt des belichtenden Laserstrahls bezüglich einer Schreibwalze und moduliert den Laserstrahl durch Ein- und Ausschalten entsprechend den durch die Eingabedaten gegebenen Kommandos. Nachdem die Linie gezeichnet ist, wird die Schreibwalze um 1/1000 Zoll (0,025 mm) weiterbewegt und die nächste Linie wird gezeichnet. Der Prozeß läuft weiter, bis das gesamte Bild auf den Film abgelichtet ist. Für ein Leiterplattenbild voller Größe sind 24200 Abtastzyklen von je 17800 Bits, 2225 Bytes oder 1112,5 16- Bit-Wörtern erforderlich. Schließlich wird in Block 18 die gedruckte Leiterplatte unter Verwendung bekannter Einrichtungen gefertigt.

Zur Prüfung der Leiterplatte auf Defekte wird die komprimierte Datei auch an ein Fehlererkennungssystem 20 für gedruckte Leiterplatten übergeben, wie zum Beispiel an das oben erwähnte Fehlererkennungssystem Modell 1850. Wie nachstehend ausführlich beschrieben wird, dekomprimiert das Modell 1850 die Daten wieder zu einem Rasterformat, um ein vollkommen fehlerfreies Vergleichsbild der Leiterplatte zu erzeugen. Dieses Bild kann dann zum Vergleich mit einem Abtastbild der Leiterplatte verwendet werden, um Fehler zu lokalisieren, die anschließend in der Prüfstation 22 verifiziert werden können.

Abb. 2 zeigt eine schematische Darstellung der Arbeitsweise eines Teils des erfindungsgemäßen Fehlererkennungssystems 24, das zur Lokalisierung von Fehlern in einer gedruckten Leiterplatte oder einer Leiterplatten-Druckvorlage dient. Das System 24 enthält ein Datentoleranzgerät, das in einer weiter unten ausführlich beschriebenen Weise aus lauflängencodierten (RLE-)Daten mit zwei Zuständen (schwarz, weiß) eine Übergangsdatenbasis (TDB) 26 erzeugt, die aus RLE-Daten mit drei Zuständen (schwarz, weiß, grau) besteht. Obwohl nach der vorliegenden Erfindung vorzugsweise RLE-Daten mit zwei Zuständen in RLE-Daten mit drei Zuständen umgewandelt werden, werden Fachleute auf diesem Gebiet feststellen, daß bei geeigneten Veränderungen an der Software Zweizustandsdaten im Rasterformat ebenfalls zu einer Raster-Datenbasis mit drei Zuständen verarbeitet werden können.

Komprimierte Daten, die den Merkmalen auf einer gedruckten Leiterplatte entsprechen, werden von einem CAD-System im SLU-Format als lauflängencodierte Daten bereitgestellt (Block 28). Die Daten werden dann in ein 16-Bit-RLE-Format übersetzt (Block 30), vorzugsweise in das 16-Bit-Format der Gerber Scientific Instrument, das für das Fehlererkennungssystem Modell 1850 charakteristisch ist. Die Daten werden in Rasterform dekomprimiert (Block 32). Die meisten Computer haben nicht genügend Kapazität, um ein großes Rasterbild im Arbeitsspeicher zu halten. Beispielsweise benötigt ein Leiterplattenbild von 18&min;&min;×24&min;&min; (46×61 cm) bei 5/1000&min;&min; (ca. 0,1 mm) Auflösung mehr als 200 MB-Speicher. Infolgedessen wandelt das System das RLE-Bild in einer weiter unten ausführlich beschriebenen Weise in ein Hybridrasterformat in Abtastlinienblöcke um. Jeder Abtastlinienblock wird nun durch eine Serienliste und einen Rasterdatenblock beschrieben.

Das Datentoleranzgerät empfängt in Block 34 die RLE-Daten im Hybridformat und modifiziert die Daten in einer weiter unten genau beschriebenen Weise, um jedem Leiterplattenmerkmal voreingestellte Maßtoleranzen zuzuordnen. Die Merkmalstoleranzen werden durch den dritten, grauen Zustand repräsentiert. Die Toleranzdaten werden dann in bekannter Weise wieder zum RLE-Format komprimiert und vom System 24 zur Erkennung von Leiterplattendefekten angewendet (Block 36).

Wie oben festgestellt, werden die vom CAD-System erzeugten Daten mit einer Dichte von 1600 Bytes pro Zoll auf industriekompatibles neunspuriges phasencodiertes Magnetband geschrieben. Die Datenbytes sind auf dem Band in einem normalen IBM-Format so organisiert, daß das höchstwertige Byte zuerst erscheint. Ein vollständiges Magnetband enthält eine oder mehrere Bilddatenmengen mit den entsprechenden Kennsätzen an den Hardware-Abschnittsmarken. Die Bandkennsätze verwenden eine Variante des ANSI-Standardkennsatzes, die ausführlich in der IBM-Veröffentlichung "OS/VS-Bandkennsätze, Dokument Nr. GC26-3795, beschrieben wird. Jeder Satz des Kennsatzes ist ein im 7-Bit-ASCII-Code geschriebener physischer Satz von 80 Bytes Länge. Die ersten vier Bytes jedes Satzes bilden den Bezeichner eines bestimmten Kennsatzbandes. Es kann einer der fünf Bandkennsatztypen VOL. 1 (Datenträger-Anfangskennsatz), HDR 1 (Dateianfangskennsatz Nr. 1), HDR 2 (Dateianfangskennsatz Nr. 2), EOF 1 (Dateinachsatz Nr. 1) und EOF 2 (Dateinachsatz Nr. 2) auftreten.

Die Dateien werden in Blöcke mit physischen Datensatzlängen von 4096 Bytes unterteilt. Jeder physische Datensatz wird ohne Berücksichtigung der logischen Satzgrenzen vollständig aufgefüllt. Logische Datensätze können daher physische Datensatzgrenzen überlappen und irgendwelche durch Datensatzlücken ausgelöste Hardware-Überlegungen ignorieren. Zwei aufeinanderfolgende Hardwaremarken schließen sich an den letzten EOF2-Kennsatz des Bandes an und bezeichnen das logische Bandende.

Abb. 3 ist eine schematische Darstellung des logischen Datensatzformats des oben beschriebenen Bandes. Das Band 38 besteht aus mehreren Abschnitten, die das Bildanfangsetikett 40, die Abtastlinie 1(42), die Abtastlinie 2(44) und die Abtastlinie N(46) enthalten. Das Bildanfangsetikett enthält Informationen über die Zahl des Bytes pro Abtastzyklus, die Zahl der Abtastlinien, die Zeichenzahl in einer optionalen Operatormeldung und die Operatormeldung. Das erste Wort 48, das der Abtastlinie 1 entspricht, gibt die Zahl der Wiederholungsabtastungen für die betreffende Abtastlinie an. Das zweite Anfangswort 50 beschreibt die Serienzahl pro Linie. Bekanntlich ist eine Serie eine Anzahl zusammenhängender Zeichen (Pixel) des gleichen Zustands innerhalb einer Abtastlinie. Dann folgen der komprimierte Bilddatensatz 52 und ein Kontrollsummen-Nachsatz 54. In den übrigen Abtastlinien wird die gleiche Wortkonfiguration verwendet. Das erste Anfangswort definiert den anfänglichen Farbzustand der Abtastlinie (schwarz/weiß), das Ende des Bildzeigers und den Stand des Wiederholungszählers für die Abtastungsdaten. Beispielsweise bezeichnet Bit 14 = 1 den letzten Abtastlinien-Datensatz des aktuellen Bildes. Die vertikale Kompression erfolgt durch Komprimieren von zwei genau gleichen Abtastlinien. Die Bits 0 bis 13 enthalten einen Zähler, der angibt, wieviel mal die Abtastliniendaten in diesem Datensatz abzubilden sind; dabei bedeutet eine 1, daß ein einziges Exemplar der Abtastlinie zu erzeugen ist. Typischerweise wird das zweite Anfangswort für die Fehlerkontrolle verwendet und enthält einen Zähler, der die Anzahl der komprimierten Datenwörter im Abtastlinien-Datensatz angibt. Die Datenbasis wird durch die Zählung aufeinanderfolgender Farbbits innerhalb jeder Abtastlinie komprimiert. Die komprimierten Datenwörter sind im wesentlichen eine Reihe von Ein/Aus-Zählerständen. Jedes 16-Bit-Datenwort wird als einer von zwei möglichen Modi interpretiert. Der erste Modus, Modus 0, ist in Bildbereichen geringer Dichte optional. Der zweite Modus, Modus 1, ist effizienter, wenn der Bildbereich dichter oder komplexer wird. Bit 15 gibt den Modus für jedes Datenwort an. Sein Wert ist gleich 0 für Modus 0 und gleich 1 für Modus 1. Da eine 15- Bit-Zählung die maximale Abtastbreite von 17800 Bits überschreitet, kann eine monotone Abtastlinie zu einem Datenwort komprimiert werden. Daher sind zusätzliche Datenwörter nur dann notwendig, wenn eine Änderung der Farbe bzw. des Zustandes eintritt. Im Modus 0 steht ein Datenwort für jede Änderung.

Der anfängliche Farbzustand ist im Anfangsetikett der Abtastlinie angegeben. Im Modus 1 stellen zwei 7-Bit-Zähler (Bits 8 bis 14) und (Bits 0 bis 6) entgegengesetzte Farbzustände dar. Der Modus 1 wird nur dann verwendet, wenn zwei aufeinanderfolgende Zählungen existieren, die größer als 0, jedoch kleiner als 128 sind. Die Bits 8 bis 14 stellen die erste Zählung dar, die immer den zum vorhergehenden Datenwort entgegengesetzten Farbzustand angibt. Die Bits 0 bis 6 stellen eine zweite Zählung dar und geben immer die zum Zähler 1 entgegengesetzte Farbe (den entgegengesetzten Zustand) an. Bit 7 ist ein Farbsynchronisationsbit, das zu Fehlerkontrollzwecken dient. Es sollte die Farbe wiedergeben, die der Zähler 2 erzeugt. Bit 7 kontrolliert nicht den Farbzustand des Zählers 2, sondern dient zur Bestätigung, daß die Laser-Abbildungshardware mit den Daten synchronisiert ist. Wenn zum Beispiel das vorhergehende Datenwort im Modus 1 war und durch irgendeinen Datenübertragungsfehler das Bit 15 verloren gegangen ist und fälschlich Modus 0 anzeigt, dann wäre statt zweier Farbübergänge ein Farbübergang erfolgt, wodurch die Synchronisation der Farbzustände verloren ginge. Dies würde erkannt werden, wenn der Farbzustand der Hardware nicht dem Bit 7 des nächsten Datenworts im Modus 1 entspricht. Bei der Abbildung der Datenbasis erfolgt dann eine Fehlermeldung. Es existiert außerdem ein "Langsamkeitsfaktor", der zum Dekompressionsprozessor des Systems 24 übertragen wird, welcher anzeigt, wie oft jede Abtastlinie bei der Ausgabe wiederholt werden muß. Dieser Parameter wird ebenfalls in einer Ausgabedatenbasis zum optischen System des Laser-Direktbilderzeugers (LDI) im Anschluß an die Präambel in ihrem Leerlaufmuster eingefügt.

Das in bezug auf die bevorzugte Ausführungsform beschriebene Kompressionsformat basiert auf eine Gruppe von Codes, die zur Anzeige von Unterschieden und Ähnlichkeiten zwischen Abtastlinien verwendet werden. Jedes Codewort ist 16 Bits lang und so formatiert, daß die höchstwertigen vier Bits die Codenummer enthalten. Die niedrigstwertigen 12 Bits enthalten die auf den Code bezogene Information. Je nach dem verwendeten Code können sich an das Codewort weitere Wörter anschließen.

Von den 16 verfügbaren Codenummern sind gegenwärtig 11 definiert:

Codenummer Beschreibung 1 Binäre Abtastlinie 2 Vorhergehende Abtastlinie wiederholen 3 Abtastlinie 4 Volle Abtastlinie 5 Bytekette löschen 6 Bytekette setzen 7 Ende der Aktualisierungen 8 Meldung/Kommentare 11 Bildende 13 Achse einstellen 14 y einstellen


Die Codes 1 bis 7 dienen zur eigentlichen Darstellung der Leiterplattenmerkmalsbilder. Zusätzlich werden die Codes 8, 11, 13 und 14 zur Definition der Bildgröße und für irgendwelche notwendigen Kommentare verwendet. Bilder von voller Größe werden nur unter Verwendung dieser Codes dargestellt. Eine ausführlichere Beschreibung der zu jedem Code gehörigen Wortgruppen ist in dem Dokument "Model 588 AT&T Tape Format Specification for the LDI 1500 Laser Plotter" (Modell 588 AT&T-Bandformatspezifikation für den LDI 1500 Laserplotter) der Gerber Scientific Instrument Co. zu finden.

Zwei Codes im AT&T-SLU-Bandformat verändern einzelne Bits in der vorhergehenden Abtastlinie, um die nächste Abtastlinie zu erzeugen. Der Code "5" löscht die Bits (?), die an der angegebenen Adresse beginnen. Der Code "6" setzt diese Bits. Diese Codes können auf zwei Arten implementiert werden. Bei der ersten wird angenommen, daß nur die geänderten Bits codiert werden. Die "1"-Bits werden auf 0 gesetzt und die "0"-Bits werden auf 1 gesetzt. Das ist im wesentlichen ein Inversionsprozeß, so daß statt zwei Codes nur einer benötigt wird. Das andere Verfahren zur Implementierung dieser Codes läßt sich als eine Lauflängencodierung von Bitketten mit Änderungen auffassen. Wenn an einem Ende einer Bitkette eine Zustandsänderung auftritt, wird die Kette über ihre gesamte Länge codiert. Diese Änderung kann zur Verwendung eines Codes anstelle von zwei Codes führen, um eine bessere Kompression zu erzielen, wenn an beiden Enden einer Kette Änderungen auftreten.

Abb. 4 zeigt eine Draufsicht auf einen Teil eines Leiterplatten-Druckvorlagenmerkmals 55, das einen Baustein auf einer gedruckten Leiterplatte darstellt. Auf die Leiterplatten-Druckvorlage sind die Abtastlinien 56, 57, 58, 59 und 60 zu schreiben. Jede Abtastlinie besteht aus einem linearen Pixelfeld. Die Abtastlinie 56 liegt außerhalb des Merkmals 61 und besteht daher aus lauter "leeren" Bildelementen in der Abbildung bzw. aus "weißen" Pixeln im Datenbasisbild. Die Abtastlinien 57-59 enthalten das Leiterplattenmerkmal, und jede von ihnen besitzt eine weiße Pixelserie 62, an die sich eine "schwarze" Pixelserie 63 anschließt, gefolgt von einer weißen Pixelserie 64. Die Abtastlinie 60 besteht aus lauter weißen Pixeln, da sie außerhalb des Leiterplattenmerkmals 60 liegt. Die Abtastlinien 56 und 60 kann man sich so vorstellen, daß sie aus nur einer weißen Pixelserie bestehen, während die Abtastlinien 57-59 als aus je drei Serien bestehend aufgefaßt werden können: einer weißen Serie, an die sich eine schwarze Serie anschließt, gefolgt von einer weißen Serie.

Wie oben festgestellt, wird erfindungsgemäß eine Übergangsdatenbasis bereitgestellt, in der die in einer Standard-Datenbasis enthaltenen Merkmale der Leiterplatten- Druckvorlage so modifiziert werden, daß sie Maßtoleranzen für die Druckvorlage enthalten. Für das System 24 wird die Größe einer globalen inneren/äußeren Merkmalstoleranz vordefiniert. Die lauflängencodierten Bilddaten mit drei Zuständen, die als Ausgabe vom System 24 erzeugt werden, sind durch Pixel mit den Zuständen Ein/Aus/Beliebig bzw. durch die zur Veranschaulichung benutzten Darstellungen schwarz/weiß/grau charakterisiert.

Abb. 5 zeigt das in Abb. 4 dargestellte Leiterplattenmerkmal nach der Verarbeitung entsprechend der vorliegenden Erfindung. Schwarze Pixel stellen Bildbereiche dar, wo das Muster erscheinen muß, weiße Pixel stellen Bildbereiche dar, wo das Muster nicht erscheinen darf. Graue Pixel stellen einen Bildbereich dar, wo das Erscheinen oder Nichterscheinen des Musters (des schwarzen Pixels) unwichtig ist. Diese "grauen" Pixel treten an Musterrändern auf und stellen innere/äußere Toleranzen oder akzeptierbare Musterabweichungen dar. In Abb. 5 entspricht das Gebiet 65 dem Teil des Merkmals, der erscheinen muß. Das Gebiet 66 ist ein Nennbereich dieses Merkmals, während das Gebiet 67 den größten Bereich darstellt, den das Merkmal einnehmen kann.

Wie oben festgestellt, wird das Bild in Abtastlinienblöcken verarbeitet; die Abb. 6 und 7 stellen die Verarbeitung eines Blocks dar. Fachleute auf diesem Gebiet werden feststellen, daß man besondere Aufmerksamkeit auf die Ränder zwischen den Blöcken verwenden muß und daß diese Randbedingungen in bekannter Weise gehandhabt werden.

Abb. 6 ist eine schematische Darstellung eines Algorithmus 68, der vom System 24 bei der Erzeugung der Hybrid-Rasterdatenbasis angewendet wird. Die in den Abb. 6-9 verwendeten Abkürzungen sind in der folgenden Liste aufgeführt.

prev-end = Nummer des Endpixels der Serie auf der vorhergehenden Linie curr-end = Nummer des Endpixels der Serie auf der aktuellen Linie prev-start = Nummer des Startpixels der Serie auf der vorhergehenden Linie curr-start = Nummer des Startpixels der Serie auf der aktuellen Linie prev-state = Zustand der Serie auf der vorhergehenden Linie curr-state = Zustand der Serie auf der aktuellen Linie final-pixel = Letztes Pixel auf der Abtastlinie num-runs = Anzahl der Serien auf der Abtastlinie curr-pixel = Aktuelle Pixelnummer auf der Abtastlinie curr-state = Aktueller Zustand (schwarz oder weiß) run-start = Nummer des Startpixels der aktuellen Serie run-end = Nummer des Endpixels der aktuellen Serie run-state = Zustand der aktuellen Serie


Der Algorithmus 68 skizziert die Umwandlung der Datei im RLE-Format in Listen von Rasterformat-Serien für jede Abtastlinie. Jede Serie besitzt eine Startpixel-Nummer, eine Endpixel-Nummer und einen Zustand oder eine Farbe. Im Block 69 ermittelt der Algorithmus, ob alle Abtastlinien für diesen Block eingegeben worden sind. Sind alle Linien eingegeben, dann verläßt das System den Algorithmus im Block 70. Wenn nicht, wird in Block 71 das Abtastlinien-Anfangswort Nummer 1 eingelesen. Der aktuelle Pixelzustand wird im Block 72 aus dem Wort Nummer 1 ermittelt. Das aktuelle Pixel wird im Block 74 auf 0 gesetzt, und die Anzahl der Serien wird im Block 76 auf 0 gesetzt. Das Abtastlinien-Anfangsetikett für Wort Nummer 2 wird eingelesen, um die Anzahl der Wörter zu ermitteln, welche die Serien auf der Abtastlinie beschreiben (Block 78).

Im Block 80 ermittelt der Algorithmus 68, ob alle Wörter für die Abtastlinie eingelesen worden sind. Wenn ja, kehrt das Programm zum Block 69 zurück. Anderenfalls wird das nächste Wort eingelesen (Block 82). Im Block 84 wird festgestellt, ob das betreffende Wort ein Langwort ist. Wenn ja, wird die Pixelzahl in der Kontrollserie aus Bit 0 bis 14 des ersten Worts bestimmt (Block 86). Im Block 88 wird das Startpixel für die aktuelle Serie auf das Startpixel der Abtastlinie gesetzt. Im Block 90 wird die Endpixelnummer für die aktuelle Serie gleich der Summe aus der aktuellen Pixelnummer und der Pixelzahl der Serie minus 1 gesetzt. Im Block 92 wird der Zustand für die aktuelle Serie auf den aktuellen Zustand gesetzt, d. h. entweder auf schwarz oder auf weiß. Als nächstes erhöht der Algorithmus im Block 94 die Serienzahl auf der Abtastlinie um 1, und im Block 96 wird die aktuelle Pixelnummer auf der Abtastlinie um die Pixelzahl der aktuellen Serie erhöht.

Wenn im Block 80 das Wort kein Langwort ist, tritt der Algorithmus 68 in den Block 98 ein, ermittelt die Pixelzahl in der aktuellen Serie aus Bit 8 bis 14 des Wortes und setzt die Startpixelnummer für die aktuelle Serie gleich der aktuellen Pixelnummer auf dieser Abtastlinie (Block 100). Der Algorithmus setzt die Endpixelnummer für die aktuelle Serie gleich der Summe aus der aktuellen Pixelnummer und der Pixelzahl in der Serie minus 1 (Block 102). Als nächstes wird im Block 104 der Zustand für die aktuelle Serie entgegengesetzt zum aktuellen Zustand eingestellt, d. h. das Programm "schaltet" den Zustand "um". Die Serienzahl auf der Abtastlinie wird dann um 1 erhöht (Block 106) und die aktuelle Pixelnummer auf der Abtastlinie wird um die Pixelzahl der aktuellen Serie erhöht (Block 108).

Der Algorithmus 68 setzt sich in Block 110 fort, ermittelt die Pixelzahl für die aktuelle Serie aus Bit 0 bis 7 des Worts und setzt in Block 112 die Startpixelnummer für die aktuelle Serie gleich der aktuellen Pixelnummer. Die Endpixelnummer für die aktuelle Serie wird gleich der Summe aus der aktuellen Pixelnummer und der Pixelzahl in der Serie minus 1 gesetzt (Block 114). Der Algorithmus schaltet den aktuellen Zustand um, indem er den Zustand für die aktuelle Serie entgegengesetzt zum aktuellen Zustand einstellt (Block 116). Der Algorithmus erhöht dann die Serienzahl auf der Abtastlinie um 1 (Block 118) und erhöht die aktuelle Pixelnummer auf der Abtastlinie um die Pixelzahl der aktuellen Serie (Block 120).

Fachleute auf diesem Gebiet werden feststellen, daß der Algorithmus 68, wie er in Abb. 6 dargestellt wird, einen Teil der Verarbeitungsoperationen ausläßt, die gleichzeitig im System 24 ablaufen. Ebenso wie die Liste der Serien für eine Abtastlinie füllt der Algorithmus auch die Rasterliste für die Abtastlinie aus, die den Zustand jedes Pixels anzeigt. Wie oben festgestellt, wird die Bildverarbeitung durch den Algorithmus 68 in Abtastlinienblöcken ausgeführt. Das Anfangswort Nummer 1 der Abtastlinie spezifiziert, wie oft die Abtastlinie wiederholt werden muß. Wenn die Abtastlinie fünfmal wiederholt werden muß, werden infolgedessen die Serienliste und die Rasterliste fünfmal kopiert. Nach dem Ausfüllen der Serienliste und der Rasterliste für jede Abtastlinie im Block werden die Listen als Eingabe für einen weiteren Algorithmus verwendet, der im folgenden ausführlich dargestellt wird.

Unter Bezugnahme auf Abb. 7 ist ersichtlich, daß ein Algorithmus 122 dargestellt wird, der vom System bei der Erzeugung eines Rasterbildes mit drei Zuständen gemäß der vorliegenden Erfindung angewendet wird. Der Algorithmus 122 geht, kurz gesagt, schrittweise auf zwei Abtastlinien vor, der aktuellen und der vorhergehenden Abtastlinie, und vergleicht die Zustände vertikal benachbarter Serien, wenn auf der aktuellen Abtastlinie ein Zustandsübergang festgestellt wird. Ein Zustandsübergang auf der aktuellen Abtastlinie zeigt entweder den Anfang oder das Ende eines Merkmals in horizontaler Richtung an. Ein Zustandsübergang zwischen Serien auf benachbarten Abtastlinien zeigt entweder den Anfang oder das Ende eines Merkmals in vertikaler Richtung an. Der Algorithmus verändert Pixelzustände für eine ausgewählte Anzahl von Pixeln, die auf der aktuellen Abtastlinie dem Merkmalsanfang und -ende benachbart sind. Beim Vergleich benachbarter vertikaler Serien verändert der Algorithmus außerdem die Farbe oder den Zustand von Pixeln entlang mehrerer Abtastlinien sowohl innerhalb als auch außerhalb des ursprünglichen Merkmals, wie in Abb. 4 dargestellt ist.

Wie oben festgestellt, besteht das Hybrid-Rasterbild aus einer Folge von Abtastlinien, die aus einer entsprechenden Folge von Abtastlinien, die aus einer entsprechenden Folge von Abtastliniendaten im RLE-Format gebildet werden. In der bevorzugten Ausführungsform führt der Algorithmus 122 gemäß Abb. 7 keinen pixelweisen Vergleich zwischen vertikal benachbarten Abtastlinien und benachbarten Pixeln auf der aktuellen Abtastlinie durch. Stattdessen wird ein Vergleich zwischen dem Ort des Pixels oder, was gleichwertig ist, seiner Nummer entweder auf der aktuellen oder der vorhergehenden Abtastlinie durchgeführt, wobei der Ort bzw. die Nummer dem Ende einer "Serie" des gleichen Zustands entspricht. Dieser Serienvergleich ist wesentlich rationeller als ein gewöhnlicher Pixelvergleich.

Im Block 124 nimmt der Algorithmus 122 Signale auf, die zwei benachbarten Abtastlinien entsprechen. Diese Abtastlinien sind nach dem Algorithmus erzeugt worden, der unter Bezugnahme auf Abb. 6 kurz beschrieben wurde. Zu beachten ist, daß für die erste Abtastlinie in einem Bild der Algorithmus als Teil des Initialisierungsprozesses eine "Linie 0" liefert, die nur aus weißen Pixeln besteht und mit der die erste Linie zu vergleichen ist. Im Block 125 stellt der Algorithmus fest, ob die Verarbeitung von Abtastlinien im Block erfolgt ist. Wenn ja, endet der Algorithmus im Block 27. Anderenfalls verläßt das Programm diesen Algorithmus und geht zu dem Algorithmus über, der weiter unten unter Bezugnahme auf Abb. 8 beschrieben wird. Im Block 126 vergleicht der Algorithmus die Endpixelnummer der Serie auf der vorhergehenden Linie mit der Endpixelnummer der Serie auf der aktuellen Linie.

Ist die Endpixelnummer der Serie auf der vorhergehenden Linie größer als die Endpixelnummer der Serie auf der aktuellen Linie, dann kontrolliert der Algorithmus den Zustand der benachbarten Serien auf der aktuellen und der vorhergehenden Abtastlinie (Block 128). Sind die Zustände gleich, dann geht der Algorithmus zum Block 130 über und setzt die Startpixelnummer der Serie auf der vorhergehenden Linie gleich der Endpixelnummer der Serie auf der aktuellen Linie plus 1. Im Block 132 geht der Algorithmus zur nächsten Serie auf der aktuellen Linie und anschließend zu einem anderen Algorithmus über, der weiter unten unter Bezugnahme auf Abb. 8 ausführlich beschrieben wird (Block 134). Falls vorher im Block 128 der Vergleich negativ ausfällt, verläßt das Programm den Algorithmus und geht zu einem Algorithmus über, der weiter unten unter Bezugnahme auf Abb. 9 ausführlich beschrieben wird (Block 136).

Ist die Endpixelnummer der Serie auf der vorhergehenden Linie kleiner als die Endpixelnummer der Serie auf der aktuellen Linie, was im Block 138 festgestellt wird, kontrolliert der Algorithmus den Serienzustand auf der vorhergehenden Linie im Vergleich mit dem Serienzustand auf der aktuellen Linie (Block 140). Sind die Zustände gleich, dann setzt der Algorithmus im Block 142 die Startpixelnummer der Serie auf der aktuellen Linie gleich der Endpixelnummer der Serie auf der vorhergehenden Linie plus 1. Im Block 144 geht der Algorithmus zur nächsten Serie auf der vorhergehenden Linie über. Wenn der Vergleich im Block 140 jedoch negativ ausfällt, geht das Programm von diesem Algorithmus zu einem Algorithmus über, der weiter unten unter Bezugnahme auf Abb. 9 beschrieben wird (Block 146).

Wenn der Vergleich in Block 138 negativ ausfällt, ermittelt der Algorithmus in Block 148, ob der Zustand der Serie auf der vorhergehenden Linie gleich dem Zustand der Serie auf der aktuellen Linie ist. Wenn ja, ermittelt der Algorithmus im Block 150, ob das Endpixel der Serie auf der vorhergehenden Linie dem letzten Pixel der Abtastlinie entspricht. Wenn ja, führt das Programm den Algorithmus aus, der weiter unten unter Bezugnahme auf Abb. 8 beschrieben wird (Block 152) und geht zur nächsten Abtastlinie über (Block 154). Wenn das Ende der Abtastlinie nicht erreicht wurde, geht der Algorithmus in Block 156 zur nächsten Serie auf der vorhergehenden und der aktuellen Abtastlinie über und fährt mit dem Algorithmus fort, der weiter unten unter Bezugnahme auf Abb. 8 beschrieben wird (Block 157). Wenn im Block 148 der Serienzustand auf der vorhergehenden Linie nicht gleich dem Zustand der aktuellen Serie ist, verläßt das Programm den Algorithmus und geht zu dem Algorithmus über, der weiter unten unter Bezugnahme auf Abb. 8 beschrieben wird (Block 158).

Die vorliegende Erfindung liefert sowohl eine innere als auch eine äußere Merkmalstoleranz, die um die Nennabmessungen des Merkmals verteilt sind. Die bei der bevorzugten Ausführungsform der Erfindung angewendeten Algorithmen, die unter Bezugnahme auf die Abb. 8 und 9 beschrieben werden, werden zur Erzeugung dieser Merkmalstoleranzen in horizontaler Richtung (entlang der Abtastlinie) bzw. in vertikaler Richtung (benachbarte Abtastlinien) angewendet. Als Merkmalstoleranz wird eine vorgewählte Pixelzahl festgelegt. Unter Bezugnahme auf Abb. 8 ist ersichtlich, daß ein Algorithmus 158 dargestellt wird, der von dem erfindungsgemäßen System 24 verwendet wird. Der Zugriff auf den Algorithmus 158 erfolgt entsprechend den Entscheidungen, zu denen das System im Algorithmus 122 gelangt, der weiter oben unter Bezugnahme auf Abb. 7 beschrieben wurde.

Im Block 160 wird der Zustand der aktuellen Serie bestimmt. Ist der Zustand schwarz, dann setzt der Algorithmus im Block 162 von der Startpixelnummer bis zu einer Nummer, die gleich der Summe aus der Startpixelnummer und der dem Toleranzwert entsprechenden Pixelzahl minus 1 ist, die Zustände auf grau. Im Block 164 setzt der Algorithmus als nächstes von der Nummer, die gleich der Differenz aus der Startpixelnummer und dem Toleranzwert ist, bis zur Startpixelnummer minus 1 die Zustände auf grau. Die in den Blöcken 162 bzw. 164 ausgeführten Schritte stellen die innere bzw. die äußere Merkmalstoleranz am Anfang des Merkmals ein.

Wenn jedoch der ermittelte Serienzustand nicht schwarz ist, setzt der Algorithmus im Block 166 von der Nummer, die gleich der Differenz aus Startpixelnummer und Toleranzwert ist, bis zur Startpixelnummer minus 1 die Zustände auf grau. Im Block 168 setzt der Algorithmus von der Startpixelnummer bis zu der Nummer, die gleich der Summe aus Startpixelnummer und Toleranzwert minus 1 ist, die Zustände auf grau. In ähnlicher Weise wie oben stellen die vom Algorithmus in den Blöcken 166 bzw. 168 ausgeführten Schritte die innere bzw. äußere Merkmalstoleranz für das Merkmalsende ein.

Abb. 9 zeigt eine schematische Darstellung eines Algorithmus 170, der vom System 24 zur Einstellung der Merkmalstoleranzen in vertikaler Richtung oder in Richtung benachbarter Abtastlinien ausgeführt wird. Wie oben festgestellt, ist jeder Abtastlinie eine Abtastliniennummer zugeordnet. Der Zugriff auf den Algorithmus 170 erfolgt entsprechend den Entscheidungen, zu denen das System im Algorithmus 122 gelangt, die weiter oben unter Bezugnahme auf Abb. 7 beschrieben wurden. Im Block 172 wird der Serienzustand auf der aktuellen Abtastlinie ermittelt. Ist der Zustand schwarz, dann setzt der Algorithmus im Block 174 vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert für alle Abtastlinien von der aktuellen Liniennummer bis zur aktuellen Liniennummer plus Toleranzwert minus 1 die Zustände auf grau. Im Block 176 setzt der Algorithmus als nächstes vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert für alle Abtastlinien von der aktuellen Liniennummer minus Toleranzwert bis zur aktuellen Liniennummer minus 1 die Zustände auf grau. Die in den Blöcken 174 bzw. 176 ausgeführten Schritte stellen die innere bzw. äußere vertikale Merkmalstoleranz am Anfang des Merkmals ein.

Wenn jedoch der ermittelte Serienzustand nicht schwarz ist, setzt der Algorithmus im Block 178 vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert für alle Abtastlinien von der aktuellen Liniennummer minus Toleranzwert bis zur aktuellen Liniennummer minus 1 die Zustände auf grau. Im Block 180 setzt der Algorithmus vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert für alle Abtastlinien von der aktuellen Liniennummer bis zur aktuellen Liniennummer plus Toleranzwert minus 1 die Zustände auf grau. Ähnlich wie oben stellen die Schritte; die vom Algorithmus in den Blöcken 178 bzw. 180ausgeführt werden, die innere bzw. äußere Merkmalstoleranz für das Merkmalsende ein. Fachleute auf diesem Gebiet werden feststellen, daß der Algorithmus, der weiter oben unter Bezugnahme auf die Abb. 7 und 8 beschrieben wurde, gewährleistet, daß die Datenbasis mit den zugeordneten Toleranzen das Merkmal umfaßt, wie in Abb. 4 dargestellt.

Das Verfahren und Gerät (26), das zusammen mit einem Fehlererkennungssystem (20) für gedruckte Leiterplatten (PCB) eingesetzt wird, erzeugt eine Abbildung der Leiterplatte in eine Vergleichs-Datenbasis mit Toleranzen für jedes einzelne Leiterplattenmerkmal (55). Die Erfindung ist charakterisiert durch eine Übergangsdatenbasis mit drei Zuständen schwarz, weiß und grau, die Bereichen entsprechen, wo die Leiterplattenmerkmale erscheinen müssen, nicht erscheinen dürfen bzw. erscheinen können oder nicht.


Anspruch[de]
  1. 1. Verfahren zur Prüfung von gedruckten Leiterplatten, wobei die Leiterplatten nach Maßgabe einer ersten Datenbasis von Signalen hergestellt worden sind, die eine Abbildung von Leiterplattenmerkmalen bilden, wobei die Abbildung aus einem Feld von Pixeln mit einem ersten Zustand oder einem zweiten Zustand besteht, wobei die Pixel in einer Folge von Abtastlinien angeordnet sind und die genannten Pixel mit dem ersten Zustand den genannten Leiterplattenmerkmalen entsprechen, und wobei die Pixel innerhalb jeder Abtastlinie in abwechselnden Serien gleichen Zustands angeordnet sind, dadurch gekennzeichnet, daß aus der ersten Datenbasis eine zweite Datenbasis erzeugt wird, in welcher jedem der Leiterplattenmerkmale ein vorgegebener Toleranzbereich zugeordnet ist, daß zur Zuordnung der Toleranzbereiche jeweils zwei benachbarte Abtastlinien und die in ihnen jeweils enthaltenen Pixelserien miteinander verglichen werden, und daß die zweite Datenbasis mit einer Abbildung der fertigen Leiterplatte verglichen wird.
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Signale, die einer aktuellen und einer vorhergehenden Abtastlinie entsprechen, zum Vergleich bereitgestellt werden, daß eine Seriengrenze, die von einem Pixel am Ende einer ersten Serie und einem Pixel am Anfang einer nachfolgenden zweiten Serie auf der genannten aktuellen Abtastlinie gebildet wird, identifiziert wird, daß die Zustände der genannten Serien bestimmt werden; daß der Zustand eines Pixels in der genannten vorhergehenden Abtastlinie bestimmt wird, dessen Position mit der genannten Seriengrenze auf der genannten aktuellen Abtastlinie zusammenfällt, daß der Zustand einer vorgewählten Toleranz-Pixelzahl in der Umgebung der genannten Seriengrenze in der genannten ersten und zweiten Serie in einen dritten Zustand umgeschaltet wird, welcher den Toleranzbereich bestimmt, daß der Zustand von solchen Pixeln in den zur aktuellen Abtastlinie benachbarten Abtastlinien, deren Positionen mit einer der genannten ersten oder zweiten Serien zusammenfallen, die aus Pixeln im ersten Zustand bestehen, in den genannten dritten Zustand umgeschaltet wird, falls das Pixel in der genannten vorhergehenden Abtastlinie, das mit einem der genannten Seriengrenzenpixel zusammenfällt, sich in einem anderen Zustand befinden sollte, und daß der Zustand derjenigen Pixel, die zu einer vorgewählten Toleranz-Pixelzahl gehören, die mit der genannten Seriengrenze auf der genannten aktuellen Abtastlinie zusammenfallen, in den genannten dritten Zustand umgeschaltet wird.
  3. 3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die erste Datenbasis ein lauflängenkodiertes Raster-Hybridformat aufweist, und folgende Schritte vorgesehen sind: Bereitstellung (125) von Signalen, die einer aktuellen und einer vorhergehenden Abtastlinie entsprechen, zum Vergleich; Vergleich (126) der Endpixelnummer einer ersten Serie auf der vorhergehenden Abtastlinie mit der Endpixelnummer einer ersten Serie auf der aktuellen Linie; wenn die Endpixelnummer der Serie auf der vorhergehenden Abtastlinie größer ist als die Endpixelnummer der Serie auf der aktuellen Abtastlinie: Zustandskontrolle (128) benachbarter Serien auf der aktuellen und der vorhergehenden Abtastlinie; bei gleichen Zuständen Einstellung (130) der Startpixelnummer der Serie auf der vorhergehenden Abtastlinie auf die um 1 erhöhte Endpixelnummer der Serie auf der aktuellen Abtastlinie; Übergang (132) zur nächsten Serie auf der aktuellen Abtastlinie und danach Zustandsbestimmung (134) der Serie auf der aktuellen Abtastlinie: bei Feststellung des ersten Zustandes (160) Einstellung (162) der Pixel auf der aktuellen Abtastlinie von der Startpixelnummer bis zur Startpixelnummer plus Toleranzwert minus 1 auf einen dritten Zustand, welcher den Toleranzbereich bestimmt; Einstellung (164) der Pixel auf der aktuellen Abtastlinie von der genannten Startpixelnummer minus Toleranzwert bis zur Startpixelnummer minus 1 auf den dritten Zustand; bei Feststellung des zweiten Zustandes Einstellung (166) der Pixel auf der aktuellen Abtastlinie von der Startpixelnummer minus Toleranzwert bis zur Startpixelnummer minus 1 auf den dritten Zustand; Einstellung (168) der Pixel auf der aktuellen Abtastlinie von der Startpixelnummer bis zur Startpixelnummer plus Toleranzwert minus 1 auf den dritten Zustand; wenn (136) die Zustände benachbarter Serien auf der aktuellen und der vorhergehenden Abtastlinie nicht gleich sind, Zustandsbestimmung (172) der aktuellen Serie: bei Feststellung des ersten Zustandes Einstellung (174) der Pixel auf der aktuellen Abtastlinie vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert auf den dritten Zustand für die aktuelle Abtastlinie und für die Abtastlinien mit einer Liniennummer gleich der aktuellen Liniennummer plus Toleranzwert minus 1; Einstellung (176) der Pixel vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert auf den dritten Zustand bei Abtastlinien von der aktuellen Liniennummer minus Toleranzwert bis zur aktuellen Liniennummer minus 1; bei Feststellung des zweiten Zustandes Einstellung (178) der Pixel vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert auf den dritten Zustand bei Abtastlinien von der aktuellen Liniennummer minus Toleranzwert bis zur aktuellen Liniennummer minus 1, wenn der ermittelte Zustand der aktuellen Serie nicht gleich dem ersten Zustand ist; Einstellung (180) der Pixel vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert auf den dritten Zustand bei Abtastlinien von der aktuellen Liniennummer bis zur aktuellen Liniennummer plus Toleranzwert minus 1; wenn (138) die Endpixelnummer der Serie auf der vorhergehenden Abtastlinie kleiner ist als die Endpixelnummer der Serie auf der aktuellen Abtastlinie: Vergleich (140) des Serienzustandes auf der vorhergehenden Abtastlinie mit dem Serienzustand auf der aktuellen Abtastlinie, und bei gleichen Zuständen Einstellung (142) der Startpixelnummer der Serie auf der aktuellen Abtastlinie auf die um 1 erhöhte Endpixelnummer der Serie auf der vorhergehenden Abtastlinie; Übergang (144) zur nächsten Serie auf der vorhergehenden Abtastlinie; wenn (146) die genannten Zustände nicht gleich sind, Zustandsbestimmung (172) der aktuellen Serie: bei Feststellung des ersten Zustandes Einstellung (174) der Pixel vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert auf den dritten Zustand bei Abtastlinien von der aktuellen Liniennummer bis zur aktuellen Liniennummer plus Toleranzwert minus 1; Einstellung (176) der Pixel vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert auf den dritten Zustand bei Abtastlinien von der aktuellen Liniennummer minus Toleranzwert bis zur aktuellen Liniennummer minus 1; bei Feststellung des zweiten Zustandes Einstellung (178) der Pixel vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert auf den dritten Zustand bei Abtastlinien von der aktuellen Liniennummer minus Toleranzwert bis zur aktuellen Liniennummer minus 1, wenn der ermittelte Zustand der aktuellen Liniennummer minus 1, wenn der ermittelte Zustand der aktuellen Serie nicht gleich dem ersten Zustand ist; Einstellung (180) der Pixel vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert auf den dritten Zustand bei Abtastlinien von der aktuellen Liniennummer bis zur aktuellen Liniennummer plus Toleranzwert minus 1; wenn (148) die Endpixelnummer der Serie auf der vorhergehenden Abtastlinie nicht größer ist als die Endpixelnummer der Serie auf der aktuellen Abtastlinie: Vergleich des Serienzustandes auf der vorhergehenden Abtastlinie mit dem Serienzustand auf der aktuellen Abtastlinie und bei gleichen Zuständen Feststellung (150), ob das Endpixel der Serie auf der vorhergehenden Abtastlinie dem letzten Pixel der aktuellen Abtastlinie entspricht; wenn (152) das genannte Endpixel der aktuellen Serie das letzte Pixel auf der aktuellen Abtastlinie ist, Zustandsbestimmung (160) der aktuellen Serie: bei Feststellung des ersten Zustandes Einstellung (162) der Pixel vom Start plus Toleranzwert minus 1 an auf den dritten Zustand; Einstellung (164) der Pixel von der Startpixelnummer minus Toleranzwert bis zur Startpixelnummer minus 1 auf den dritten Zustand; bei Feststellung des zweiten Zustandes Einstellung (166) der Pixel von der Startpixelnummer minus Toleranzwert bis zur Startpixelnummer minus 1 auf den dritten Zustand; Einstellung (168) der Pixel von der Startpixelnummer bis zur Startpixelnummer plus Toleranzwert minus 1 auf den dritten Zustand; Übergang (154) zur nächsten Abtastlinie; wenn (158) der Serienzustand auf der vorhergehenden Linie nicht gleich dem aktuellen Serienzustand ist: Zustandsbestimmung (172) der aktuellen Serie und bei Feststellung des ersten Zustandes Einstellung (174) der Pixel vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert auf den dritten Zustand bei Abtastlinien von der aktuellen Liniennummer bis zur aktuellen Liniennummer plus Toleranzwert minus 1; Einstellung (176) der Pixel vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert auf den dritten Zustand bei Abtastlinien von der aktuellen Liniennummer minus Toleranzwert bis zur aktuellen Liniennummer minus 1; bei Feststellung des zweiten Zustandes Einstellung (178) der Pixel vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert auf den dritten Zustand bei Abtastlinien von der aktuellen Liniennummer minus Toleranzwert bis zur aktuellen Liniennummer minus 1, wenn der ermittelte Zustand der aktuellen Serie nicht gleich dem ersten Zustand ist; Einstellung (180) der Pixel vom Start der aktuellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert auf den dritten Zustand bei Abtastlinien von der aktuellen Liniennummer bis zur aktuellen Liniennummer plus Toleranzwert minus 1; wenn die Endpixelnummer der vorhergehenden Linie nicht gleich der genannten letzten Pixelnummer der Abtastlinie ist; Übergang (156) zu den nächsten Serien auf der vorhergehenden und der aktuellen Abtastlinie, Zustandsbestimmung (157) der aktuellen Serie und bei Feststellung des ersten Zustandes Einstellung (162) der Pixel vom Start plus Toleranzwert minus 1 auf den dritten Zustand; Einstellung (164) der Pixel von der Startpixelnummer minus Toleranzwert bis zur Startpixelnummer minus 1 auf den dritten Zustand; bei weißem Zustand Einstellung (166) der Pixel von der Startpixelnummer minus Toleranzwert bis zur Startpixelnummer minus 1 auf den dritten Zustand; Einstellung (168) der Pixel von der Startpixelnummer bis zur Startpixelnummer plus Toleranzwert minus 1 auf den dritten Zustand; und Bereitstellung (154) von Signalen, die der nächsten benachbarten Abtastlinie entsprechen.






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