[go: up one dir, main page]

DE4111490C2 - Verfahren zur Prüfung von gedruckten Leiterplatten - Google Patents

Verfahren zur Prüfung von gedruckten Leiterplatten

Info

Publication number
DE4111490C2
DE4111490C2 DE4111490A DE4111490A DE4111490C2 DE 4111490 C2 DE4111490 C2 DE 4111490C2 DE 4111490 A DE4111490 A DE 4111490A DE 4111490 A DE4111490 A DE 4111490A DE 4111490 C2 DE4111490 C2 DE 4111490C2
Authority
DE
Germany
Prior art keywords
current
series
state
minus
tolerance value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE4111490A
Other languages
English (en)
Other versions
DE4111490A1 (de
Inventor
Scott Philip Snietka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gerber Systems Corp
Original Assignee
Gerber Scientific Instrument Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gerber Scientific Instrument Co filed Critical Gerber Scientific Instrument Co
Publication of DE4111490A1 publication Critical patent/DE4111490A1/de
Application granted granted Critical
Publication of DE4111490C2 publication Critical patent/DE4111490C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30141Printed circuit board [PCB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Investigating Materials By The Use Of Optical Means Adapted For Particular Applications (AREA)

Description

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 en­ coded = RLE-Format) und das Abtastlinienaktualisierungs-Format (scan line update = SLU-Format). Letzteres wird von Firmen wie der American Telephone and Telegraph Company (AT) 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 zwei­ ten Serie auf der aktuellen Abtastlinie gebildet wird, und einer dritten Vorrichtung zur Zustandsbestimmung der Se­ rien. 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 Vor­ richtung 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 Serien­ grenzenpixel deckungsgleiche Abtastlinie sich in einem an­ deren Zustand befindet. Die sechste Vorrichtung schaltet außerdem die Pixel einschließlich einer vorgewählten Tole­ ranz-Anzahl von Pixeln, die mit der aktuellen Abtastlinien­ grenze zusammenfallen, in den dritten Zustand um.
Abb. 1 zeigt eine vereinfachte schematische Darstellung einiger Bausteine, die in der Leiterplattenfertigung ver­ wendet 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 Pi­ xelserien gleicher Farbe dargestellt werden.
Abb. 5 zeigt die erfindungsgemäße Abbildung eines Leiterplattenmerkmals, die durch innere und äußere Toleran­ zen 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 ein­ zelne 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-Ein­ richtung (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 eingege­ ben. 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 wer­ den muß. Die entsprechende Datei ist sehr groß, weshalb die meisten Systeme ein oder mehrere bekannte Datenkompres­ sionsverfahren 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 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 be­ wegt den Abtastpunkt des belichtenden Laserstrahls bezüg­ lich einer Schreibwalze und moduliert den Laserstrahl durch Ein- und Ausschalten entsprechend den durch die Eingabeda­ ten gegebenen Kommandos. Nachdem die Linie gezeichnet ist, wird die Schreibwalze um 1/1000 Zoll (0,025 mm) weiterbe­ wegt 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 Ab­ tastzyklen 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 Einrich­ tungen gefertigt.
Zur Prüfung der Leiterplatte auf Defekte wird die kom­ primierte Datei auch an ein Fehlererkennungssystem 20 für gedruckte Leiterplatten übergeben, wie zum Beispiel an das oben erwähnte Fehlererkennungssystem Modell 1850. Wie nach­ stehend ausführlich beschrieben wird, dekomprimiert das Mo­ dell 1850 die Daten wieder zu einem Rasterformat, um ein vollkommen fehlerfreies Vergleichsbild der Leiterplatte zu erzeugen. Dieses Bild kann dann zum Vergleich mit einem Ab­ tastbild der Leiterplatte verwendet werden, um Fehler zu lokalisieren, die anschließend in der Prüfstation 22 veri­ fiziert werden können.
Abb. 2 zeigt eine schematische Darstellung der Ar­ beitsweise eines Teils des erfindungsgemäßen Fehlererken­ nungssystems 24, das zur Lokalisierung von Fehlern in einer gedruckten Leiterplatte oder einer Leiterplatten-Druckvor­ lage 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 vorzugs­ weise 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 ei­ ner Raster-Datenbasis mit drei Zuständen verarbeitet werden können.
Komprimierte Daten, die den Merkmalen auf einer gedruck­ ten 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 Fehlererkennungs­ system 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 Ra­ sterbild im Arbeitsspeicher zu halten. Beispielsweise benö­ tigt ein Leiterplattenbild von 18′′×24′′ (46×61 cm) bei 5/1000′′ (ca. 0,1 mm) Auflösung mehr als 200 MB-Speicher. Infolgedessen wandelt das System das RLE-Bild in einer wei­ ter unten ausführlich beschriebenen Weise in ein Hybridra­ sterformat in Abtastlinienblöcke um. Jeder Abtastlinien­ block wird nun durch eine Serienliste und einen Rasterda­ tenblock beschrieben.
Das Datentoleranzgerät empfängt in Block 34 die RLE-Da­ ten im Hybridformat und modifiziert die Daten in einer wei­ ter unten genau beschriebenen Weise, um jedem Leiterplat­ tenmerkmal 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 erzeug­ ten Daten mit einer Dichte von 1600 Bytes pro Zoll auf in­ dustriekompatibles neunspuriges phasencodiertes Magnetband geschrieben. Die Datenbytes sind auf dem Band in einem nor­ malen IBM-Format so organisiert, daß das höchstwertige Byte zuerst erscheint. Ein vollständiges Magnetband enthält eine oder mehrere Bilddatenmengen mit den entsprechenden Kenn­ sätzen an den Hardware-Abschnittsmarken. Die Bandkennsätze verwenden eine Variante des ANSI-Standardkennsatzes, die ausführlich in der IBM-Veröffentlichung "OS/VS-Bandkenn­ sätze, Dokument Nr. GC26-3795, beschrieben wird. Jeder Satz des Kennsatzes ist ein im 7-Bit-ASCII-Code geschriebe­ ner 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 (Dateianfangs­ kennsatz 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 Datensatz­ längen von 4096 Bytes unterteilt. Jeder physische Datensatz wird ohne Berücksichtigung der logischen Satzgrenzen voll­ ständig aufgefüllt. Logische Datensätze können daher physi­ sche Datensatzgrenzen überlappen und irgendwelche durch Da­ tensatzlü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 Bildanfangseti­ kett 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 Abtastzy­ klus, die Zahl der Abtastlinien, die Zeichenzahl in einer optionalen Operatormeldung und die Operatormeldung. Das er­ ste Wort 48, das der Abtastlinie 1 entspricht, gibt die Zahl der Wiederholungsabtastungen für die betreffende Ab­ tastlinie an. Das zweite Anfangswort 50 beschreibt die Se­ rienzahl pro Linie. Bekanntlich ist eine Serie eine Anzahl zusammenhängender Zeichen (Pixel) des gleichen Zustands in­ nerhalb 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 Fehler­ kontrolle verwendet und enthält einen Zähler, der die An­ zahl der komprimierten Datenwörter im Abtastlinien-Daten­ satz angibt. Die Datenbasis wird durch die Zählung aufein­ anderfolgender Farbbits innerhalb jeder Abtastlinie kompri­ miert. Die komprimierten Datenwörter sind im wesentlichen eine Reihe von Ein/Aus-Zählerständen. Jedes 16-Bit-Daten­ wort 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 effizien­ ter, 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 über­ schreitet, kann eine monotone Abtastlinie zu einem Daten­ wort 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 Farbzu­ stä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 Daten­ wort 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 Zu­ stand) an. Bit 7 ist ein Farbsynchronisationsbit, das zu Fehlerkontrollzwecken dient. Es sollte die Farbe wiederge­ ben, 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 synchroni­ siert 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 an­ zeigt, dann wäre statt zweier Farbübergänge ein Farbüber­ gang erfolgt, wodurch die Synchronisation der Farbzustände verloren ginge. Dies würde erkannt werden, wenn der Farbzu­ stand der Hardware nicht dem Bit 7 des nächsten Datenworts im Modus 1 entspricht. Bei der Abbildung der Datenbasis er­ folgt 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 op­ tischen System des Laser-Direktbilderzeugers (LDI) im An­ schluß an die Präambel in ihrem Leerlaufmuster eingefügt.
Das in bezug auf die bevorzugte Ausführungsform be­ schriebene 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 wei­ tere 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 Co­ des 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 dar­ gestellt. Eine ausführlichere Beschreibung der zu jedem Code gehörigen Wortgruppen ist in dem Dokument "Model 588 AT Tape Format Specification for the LDI 1500 Laser Plot­ ter" (Modell 588 AT für den LDI 1500 Laserplotter) der Gerber Scientific Instrument Co. zu finden.
Zwei Codes im AT verändern einzelne Bits in der vorhergehenden Abtastlinie, um die nächste Ab­ tastlinie 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än­ derten Bits codiert werden. Die "1"-Bits werden auf 0 ge­ setzt und die "0"-Bits werden auf 1 gesetzt. Das ist im we­ sentlichen ein Inversionsprozeß, so daß statt zwei Codes nur einer benötigt wird. Das andere Verfahren zur Implemen­ tierung 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 En­ den einer Kette Änderungen auftreten.
Abb. 4 zeigt eine Draufsicht auf einen Teil eines Lei­ terplatten-Druckvorlagenmerkmals 55, das einen Baustein auf einer gedruckten Leiterplatte darstellt. Auf die Leiter­ platten-Druckvorlage sind die Abtastlinien 56, 57, 58, 59 und 60 zu schreiben. Jede Abtastlinie besteht aus einem li­ nearen Pixelfeld. Die Abtastlinie 56 liegt außerhalb des Merkmals 61 und besteht daher aus lauter "leeren" Bildele­ menten in der Abbildung bzw. aus "weißen" Pixeln im Daten­ basisbild. Die Abtastlinien 57-59 enthalten das Leiter­ plattenmerkmal, und jede von ihnen besitzt eine weiße Pi­ xelserie 62, an die sich eine "schwarze" Pixelserie 63 an­ schließt, gefolgt von einer weißen Pixelserie 64. Die Ab­ tastlinie 60 besteht aus lauter weißen Pixeln, da sie außerhalb des Leiterplattenmerkmals 60 liegt. Die Abtastli­ nien 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 Über­ gangsdatenbasis bereitgestellt, in der die in einer Stan­ dard-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 vor­ definiert. Die lauflängencodierten Bilddaten mit drei Zu­ stä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 Leiterplatten­ merkmal 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 stel­ len einen Bildbereich dar, wo das Erscheinen oder Nichter­ scheinen des Musters (des schwarzen Pixels) unwichtig ist. Diese "grauen" Pixel treten an Musterrändern auf und stel­ len innere/äußere Toleranzen oder akzeptierbare Musterab­ weichungen 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 Abtastlinien­ blö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 Algorith­ mus 68, der vom System 24 bei der Erzeugung der Hybrid-Ra­ sterdatenbasis angewendet wird. Die in den Abb. 6-9 verwendeten Abkürzungen sind in der folgenden Liste auf­ gefü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 Ab­ tastlinie. 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 die­ sen Block eingegeben worden sind. Sind alle Linien eingege­ ben, 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 Pi­ xel wird im Block 74 auf 0 gesetzt, und die Anzahl der Se­ rien wird im Block 76 auf 0 gesetzt. Das Abtastlinien-An­ fangsetikett für Wort Nummer 2 wird eingelesen, um die An­ zahl der Wörter zu ermitteln, welche die Serien auf der Ab­ tastlinie 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 fest­ gestellt, 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 Endpixelnum­ mer für die aktuelle Serie gleich der Summe aus der aktuel­ len Pixelnummer und der Pixelzahl der Serie minus 1 ge­ setzt. 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 ak­ tuelle 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 Se­ rie 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, ermit­ telt 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 Se­ rie minus 1 gesetzt (Block 114). Der Algorithmus schaltet den aktuellen Zustand um, indem er den Zustand für die ak­ tuelle Serie entgegengesetzt zum aktuellen Zustand ein­ stellt (Block 116). Der Algorithmus erhöht dann die Serien­ zahl 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 Bild­ verarbeitung durch den Algorithmus 68 in Abtastlinien­ blö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 Al­ gorithmus 122 dargestellt wird, der vom System bei der Er­ zeugung 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 ver­ gleicht 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 Se­ rien auf benachbarten Abtastlinien zeigt entweder den An­ fang oder das Ende eines Merkmals in vertikaler Richtung an. Der Algorithmus verändert Pixelzustände für eine ausge­ wählte Anzahl von Pixeln, die auf der aktuellen Abtastlinie dem Merkmalsanfang und -ende benachbart sind. Beim Ver­ gleich benachbarter vertikaler Serien verändert der Algo­ rithmus außerdem die Farbe oder den Zustand von Pixeln ent­ lang mehrerer Abtastlinien sowohl innerhalb als auch außer­ halb 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 be­ nachbarten Abtastlinien und benachbarten Pixeln auf der ak­ tuellen Abtastlinie durch. Stattdessen wird ein Vergleich zwischen dem Ort des Pixels oder, was gleichwertig ist, seiner Nummer entweder auf der aktuellen oder der vorherge­ henden Abtastlinie durchgeführt, wobei der Ort bzw. die Nummer dem Ende einer "Serie" des gleichen Zustands ent­ spricht. 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 Abtastli­ nien 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 Algo­ rithmus 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 ver­ gleicht 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 aktu­ ellen Linie, dann kontrolliert der Algorithmus den Zustand der benachbarten Serien auf der aktuellen und der vorherge­ henden 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 Se­ rie auf der aktuellen Linie und anschließend zu einem ande­ ren 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ühr­ lich beschrieben wird (Block 136).
Ist die Endpixelnummer der Serie auf der vorhergehenden Linie kleiner als die Endpixelnummer der Serie auf der ak­ tuellen Linie, was im Block 138 festgestellt wird, kontrol­ liert der Algorithmus den Serienzustand auf der vorherge­ henden Linie im Vergleich mit dem Serienzustand auf der ak­ tuellen 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 vorherge­ henden 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 Bezug­ nahme auf Abb. 9 beschrieben wird (Block 146).
Wenn der Vergleich in Block 138 negativ ausfällt, ermit­ telt 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 Algo­ rithmus im Block 150, ob das Endpixel der Serie auf der vorhergehenden Linie dem letzten Pixel der Abtastlinie ent­ spricht. 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 be­ schrieben wird (Block 158).
Die vorliegende Erfindung liefert sowohl eine innere als auch eine äußere Merkmalstoleranz, die um die Nennabmessun­ gen 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 fest­ gelegt. Unter Bezugnahme auf Abb. 8 ist ersichtlich, daß ein Algorithmus 158 dargestellt wird, der von dem erfin­ dungsgemäß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 be­ stimmt. 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 Zu­ stä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 Startpi­ xelnummer 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 Startpi­ xelnummer 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 Algo­ rithmus in den Blöcken 166 bzw. 168 ausgeführten Schritte die innere bzw. äußere Merkmalstoleranz für das Merkmal­ sende ein.
Abb. 9 zeigt eine schematische Darstellung eines Algo­ rithmus 170, der vom System 24 zur Einstellung der Merkmal­ stoleranzen in vertikaler Richtung oder in Richtung benach­ barter 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 be­ schrieben 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 ak­ tuellen 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 aktu­ ellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert für alle Abtastlinien von der aktu­ ellen Liniennummer minus Toleranzwert bis zur aktuellen Li­ niennummer minus 1 die Zustände auf grau. Die in den Blöc­ ken 174 bzw. 176 ausgeführten Schritte stellen die innere bzw. äußere vertikale Merkmalstoleranz am Anfang des Merk­ mals ein.
Wenn jedoch der ermittelte Serienzustand nicht schwarz ist, setzt der Algorithmus im Block 178 vom Start der aktu­ ellen Serie minus Toleranzwert bis zum Ende der aktuellen Serie plus Toleranzwert für alle Abtastlinien von der aktu­ ellen Liniennummer minus Toleranzwert bis zur aktuellen Li­ niennummer 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 Tole­ ranzwert für alle Abtastlinien von der aktuellen Liniennum­ mer 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. 180 ausgeführt werden, die innere bzw. äußere Merkmalstoleranz für das Merkmalsende ein. Fachleute auf diesem Gebiet wer­ den 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 To­ leranzen 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 Leiter­ platte in eine Vergleichs-Datenbasis mit Toleranzen für je­ des einzelne Leiterplattenmerkmal (55). Die Erfindung ist charakterisiert durch eine Übergangsdatenbasis mit drei Zu­ ständen schwarz, weiß und grau, die Bereichen entsprechen, wo die Leiterplattenmerkmale erscheinen müssen, nicht er­ scheinen dürfen bzw. erscheinen können oder nicht.

Claims (3)

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. 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. 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.
DE4111490A 1990-04-10 1991-04-09 Verfahren zur Prüfung von gedruckten Leiterplatten Expired - Fee Related DE4111490C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/508,093 US5157762A (en) 1990-04-10 1990-04-10 Method and apparatus for providing a three state data base for use with automatic optical inspection systems

Publications (2)

Publication Number Publication Date
DE4111490A1 DE4111490A1 (de) 1991-10-17
DE4111490C2 true DE4111490C2 (de) 1995-04-27

Family

ID=24021356

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4111490A Expired - Fee Related DE4111490C2 (de) 1990-04-10 1991-04-09 Verfahren zur Prüfung von gedruckten Leiterplatten

Country Status (5)

Country Link
US (1) US5157762A (de)
JP (1) JP2527501B2 (de)
DE (1) DE4111490C2 (de)
FR (1) FR2660772B1 (de)
GB (1) GB2243682B (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751594A (en) * 1993-03-16 1998-05-12 Emc Corporation Aperture control system for printed circuit board fabrication
US5781447A (en) * 1993-08-13 1998-07-14 Micron Eletronics, Inc. System for recreating a printed circuit board from disjointly formatted data
US5517234A (en) * 1993-10-26 1996-05-14 Gerber Systems Corporation Automatic optical inspection system having a weighted transition database
US5506793A (en) * 1994-01-14 1996-04-09 Gerber Systems Corporation Method and apparatus for distortion compensation in an automatic optical inspection system
GB2307547B (en) * 1995-11-22 2000-02-16 Europ Gas Turbines Ltd A method of detecting manufacturing errors in an article
US6477266B1 (en) * 1998-12-11 2002-11-05 Lucent Technologies Inc. Vision comparison inspection system graphical user interface
JP3787456B2 (ja) * 1999-04-26 2006-06-21 キヤノン株式会社 カラー画像処理装置、カラー画像処理方法及び記憶媒体
US7248733B2 (en) * 1999-04-26 2007-07-24 Canon Kabushiki Kaisha Color-image processing apparatus and method, and storage medium
US6920624B2 (en) * 2002-01-17 2005-07-19 Seagate Technology, Llc Methodology of creating an object database from a Gerber file
AU2009251147B2 (en) * 2009-12-23 2012-09-06 Canon Kabushiki Kaisha Dynamic printer modelling for output checking
JP5917964B2 (ja) 2012-03-19 2016-05-18 富士ゼロックス株式会社 錠剤、錠剤の製造方法、錠剤管理装置、錠剤照合装置及びプログラム
CN112131821B (zh) * 2020-09-23 2024-05-17 惠州市金百泽电路科技有限公司 一种应用于pcb加工的文字处理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4500202A (en) * 1982-05-24 1985-02-19 Itek Corporation Printed circuit board defect detection of detecting maximum line width violations
US4720803A (en) * 1983-05-13 1988-01-19 Kabushiki Kaisha Toshiba Display control apparatus for performing multicolor display by tiling display
US4578810A (en) * 1983-08-08 1986-03-25 Itek Corporation System for printed circuit board defect detection
JPS60138924A (ja) * 1983-12-27 1985-07-23 Fujitsu Ltd パタ−ン検査方法及びその装置
US4776022A (en) * 1985-04-09 1988-10-04 Aoi Systems, Inc. System for printed circuit board defect detection
JP2602201B2 (ja) * 1985-04-12 1997-04-23 株式会社日立製作所 被検査パターンの欠陥検査方法
US4668982A (en) * 1985-06-17 1987-05-26 The Perkin-Elmer Corporation Misregistration/distortion correction scheme
EP0246145B1 (de) * 1986-05-10 1993-07-28 Fujitsu Limited System zur Untersuchung von Mustern
DE3800820A1 (de) * 1988-01-14 1989-07-27 Bosch Gmbh Robert Verfahren zur rechnergestuetzten darstellung zu untersuchender probe-graphiken in form von punktmatrixdarstellungen mit zwei unterschiedlichen soll-helligkeitswerten unter vergleich mit einer abgespeicherten muster-graphik
US4912487A (en) * 1988-03-25 1990-03-27 Texas Instruments Incorporated Laser scanner using focusing acousto-optic device

Also Published As

Publication number Publication date
FR2660772B1 (fr) 1994-11-18
GB9105492D0 (en) 1991-05-01
GB2243682B (en) 1993-10-20
FR2660772A1 (fr) 1991-10-11
JP2527501B2 (ja) 1996-08-28
JPH04225149A (ja) 1992-08-14
GB2243682A (en) 1991-11-06
DE4111490A1 (de) 1991-10-17
US5157762A (en) 1992-10-20

Similar Documents

Publication Publication Date Title
DE68920229T2 (de) Verfahren zum Aufzeichnen bzw. Wiedergeben von Bildpunktmustern und Gerät hierfür.
DE69032344T2 (de) Verfahren zum Messen von Neigungswinkeln
DE69511507T2 (de) Verfahren und Vorrichtung zur automatischen Bildsegmentierung unter Verwendung von Standardvergleichsmustern
DE69323919T2 (de) Graphik-Koprozessor
DE2801536C2 (de) Zeichenformkodiervorrichtung
DE4111490C2 (de) Verfahren zur Prüfung von gedruckten Leiterplatten
DE69015235T2 (de) Vorrichtung und Methode zur Umwandlung eines punktorganisierten einfarbigen Bildes in ein Grauwertbild mittels Operationen in einer Suchtabelle.
EP0111026B1 (de) Verfahren und Einrichtung zur kopierenden Retusche bei der elektronischen Farbbildreproduktion
DE69611573T2 (de) Auflösungserhöhung mit Standardvergleichsmustern
DE3110222C2 (de) Verfahren zur partielle glättenden Retusche bei der elektronischen Farbbildreproduktion
DE3615906C2 (de)
DE4430369A1 (de) Verfahren und Einrichtung zum Erzeugen eines Dokumenten-Layouts
DE19500382A1 (de) Verfahren und Einrichtung zum Kompensieren von Substratverzerrungen in einem automatischen optischen Prüfsystem für Leiterplatten
DE2653288A1 (de) Verfahren und anordnung zur entfernung von vorgebbarer hintergrundinformation aus einem bild
DE4002179A1 (de) Verfahren und vorrichtung zum wiederauffinden von bilddaten
DE3416795C2 (de) Bilddaten-Kompressionssystem
WO1996031837A1 (de) Verfahren zur generierung einer contone-map
EP0153584A2 (de) Verfahren und Einrichtung zum Aufzeichnen von Schriftzeichen
Ramachandran Coding method for vector representation of engineering drawings
DE3486075T2 (de) Bildverkleinerungsverfahren.
DE69020174T2 (de) Verfahren und Gerät zur Umwandlung der Auflösung eines Bildes mit Muster aus bivalenten Pixeln.
DE69429562T2 (de) Ein Detektionssystem in einem Durchlauf für Bildbereiche, die von einer Markierung umschlossen sind und Verfahren für einen Photokopierer
DE69219647T2 (de) Verfahren und Vorrichtung zum Einfärben einer Bildfläche
DE3688919T2 (de) Verfahren und Vorrichtung zur Bilddatenkompression.
DE3714011A1 (de) Verfahren und anordnung zum bildvergleich

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06K 9/03

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee