Platine mit bedrahteten Bauteilen
Die Enstehungsgeschichte im Überblick
JahrBeschreibung
01/2013Ideenfindung
02/2013Erstellung der Hauptseite
02/2013Neue Artikel hinzugefügt
05/2013Viele neue Gestaltungsmerkmale ergänzt
Shop el~pa~bo wird integriert
Das Ende der Tabelle ist noch lange nicht erreicht

Gerber

zurück zum Index

Der leichte Einstieg


Es ist schon einige Zeit vergangen, als die einzelnen Lagen einer fertig designten Platine noch als Film bzw. Folien dem Hersteller übergeben wurden. Auch heute werden zur Herstellung immer noch diese Folien fertigungstechnisch genutzt. Bei der Übergabe der Datensätze vom Leiterplattendesigner zum Hersteller spielen Folien allerdings kaum noch eine Rolle. Daraus kann man schliessen, dass sich irgendwann eine neue Art der Datenübergabe etabliert hat. Wie die Kapitelüberschrift vermuten lässt, handelt es sich um das Gerber-Format. Auch wenn es bereits längst neue und teilweise auch umfangreichere Prozesse zur Datenübergabe gibt, gilt das Gerberformat immer noch als unbestrittener Standard und wird es Dank seiner neutralen Formatgestaltung auch noch eine lange Zeit bleiben. Sehen wir uns die einzelnen Lagen einer Platine einmal genauer und separat an. Man erkennt, dass Leiterbildstrukturen - egal ob Leiterbahnen, runde oder eckige Pads, Kupferflächen, Texte oder grafiken im Bestückungsdruck, Flächen der Lötstoppmaske oder was auch immer, immer auch einen Koordinatenbezug besitzen. Das bedeutet die Leiterbahn verläuft mit einer bekannten Breite von Koordinate (x1, y1) zu Koordinate (x2, y2) oder die rechteckige GND-Fläche hat vier Eckkoordinaten. Nichts anderes beinhaltet nun eine Gerberdatei. Sie fasst alle verfügbaren Koordinatenangaben so zusammen, dass man daraus mit entsprechender Software die gleichen Leiterbildstrukturen und sonstigen vorhandenen Lagen wieder so erzeugen kann, wie diese vom Designer erstellt worden sind. Es handelt sich also um ein Datenübergabeformat, welches Plattformunabhängig (bzgl. der erstellenden EDA-Software) arbeitet. Daraus kann man folgern, dass für jede vorhandene Lage auch eine separate Datei benötigt wird. Da nun ein Einstieg gegeben ist, fangen wir aber mit dem jetzigen Wissen von vorne an.

Wir wissen also, dass das Gerberformat als Medium zum Datenaustausch zwischen Design/Entwicklung (CAD) und Hersteller (CAM) genutzt werden kann. Die Historie des Gerberformats beinhaltet verschiedene Entwicklungsschritte - heute gilt das RS-274X (Extended Gerber Format) als Standard. Das bereits angesprochene einheitliche Datenformat ist der Träger der im ASCII-Format hinterlegten Informationen. Das ASCII-Format ist für den Menschen leicht lesbar - daher wäre es theoretisch möglich eine Gerberdatei auch lediglich in einem Texteditor zu verfassen. Zugegebenermassen eine Arbeit für Enthusiasten heißt es aber auch, dass man es leicht in einem Texteditor lesen, bearbeiten oder durch andere Software weiterverarbeiten kann. Wie bereits erwähnt, werden innerhalb einer jeden Gerberdatei (eine pro physikalischer Lage) die darin enthaltenen Elemente mittels x und y-Koordinate eindeutig positionert. Einzige Bedingung dabei ist die Angabe, ob es sich um Absolutwerte oder Inkrementalwerte handelt, ob es sich um metrische oder imperiale Angaben handelt und die Zahlenformatierung muss in der Datei zwingend angegeben sein. Auf diese Weise ist es beiden Seiten (Entwickler und Hersteller) möglich zu wissen, wie die Daten zu interpretieren sind. Wer jetzt vermutet, dass das doch noch nicht alles gewesen sein kann, liegt mit seiner Annahme absolut richtig. Deshalb sei an dieser Stelle auf die Institution "Ucamco" verwiesen. Ucamco übernahm seit einigen Jahren die Format(weiter)entwicklung und gilt als Herausgeber der "Gerber File Format Specification". Will man also mehr über das Format erfahren, als es in diesem Anriss und Rahmen Sinn macht darzustellen, möge sich an den dort erreichbaren Downloadbereich begeben.

Ein erstes Beispiel


Es folgt ein kurzes Beispiel, wie eine Gerberdatei aussehen könnte. Die Datei wurde mit dem EDA-Tool 'eagle™' der Firma Cadsoft erstellt. Es soll damit kein Anspruch auf einen genauen Aufbau einer Gerberdatei geltent gemacht werden. Manche der hier verwendeten Codecs gelten bereits als abgekündigt oder verzichtbar. Die automatische Erstellung des verwendeten EDA-Tools brachte dies allerdings wie abgebildet hervor und es erfüllt an dieser Stelle den anerdachten Lerneffekt und AHAA-Effekt. Codecs ändern sich, Programmroutinen der EDA-Programme sind unterschiedlich oder ändern sich mit neuen Versionsständen. Ich überlasse es also dem Nutzer sich mit den Angaben eventuell etwas auseinanderzusetzen und so einen willkommenen Lerneffekt zu haben und erspare mir außerdem eine wiederkehrende Anpassung der Gerberdatei.

Trotzdem: Vielen Dank für die gegebenen Hinweise an die Institution '"Ucamco"':

  • G75* -> OK
  • G70* -> G70 is deprecated. Please use %MOIN*%
  • %OFA0B0*% -> Deprecated and superfluous. Please remove.
  • %FSLAX24Y24*% -> We recommend 6 decimals in inch. Best adapt example.
  • %IPPOS*% -> Deprecated and superfluous. Please remove.
  • %LPD*% There is no default on the interpolation mode, the header in this file must contain a G01*


  • Übung: Wer bis hierher aufgepasst hat und beweisen möchte, dass er das oben Geschriebene verstanden hat, kann nun gern herausfinden, was die Gerberdatei tatsächlich beinhaltet. Kleiner Tipp: Ein Texteditor und ein frei erhältlicher Gerber Viewer helfen dabei. Und nein - man muß dazu nicht alle Gerberdaten abtippen!

    Was gibt es noch zu erwähnen...


    Doch auch wenn die Quelle ["Ucamco"] im Downloadbreich eine grossartige Darstellung des Gerberformates abliefert und in seiner Gänze darstellt, soll sich an dieser Stelle nicht komplett um den Schritt eines Minimalabrisses gedrückt werden. Die Suchmaschine der Wahl bietet übrigens ebenfalls umfassende Einblicke in den Aufbau des Gerberformates. An dieser Stelle will ich jedoch versuchen, möglichst prägnante Fakten zusammenzutragen, welche eine schnelle Übersicht ermöglichen - es wird also nicht ausufernd und bei einem Minimalabriss bleiben.
    Mit Hilfe weniger Maschinenbefehle und einiger Koordinatenangaben ist es möglich alle Daten einer Leiterplatte, welche zum Herstellungszeitpunkt benötigt werden, abzubilden. Um allen Einsteigern einer eventuellen Fehlinterpretation zu begegnen, sei aber auch explizit darauf hingewiesen, dass schaltungsspezifische Eigenschaften wie Bibliotheks-/Bauteilinformation oder Netznamen nicht Bestandteil der Gerberdaten sind.

    Beschreibung des Prozessablaufes oder was mit den Gerberdaten geschieht


    Grundsätzlich besteht ein Gerberfile aus einer Abfolge von Maschinencodes (stream of commands). Die bereitgestellten Gerberdaten werden zumeist einem Fotoplotter zugeführt. Dieser generiert daraus die entsprechenden Bildvorlagen / Schablonen für den späteren Belichtungsprozess des Basismaterials während der Herstellung. Wir sind nun also an dem Punkt angekommen, an welchem wir verstehen, dass die Maschinencodes und Koordinatenangaben eine Auflistung oder besser Abfolge graphisch-geometrischer Bildinformationen darstellen. Die graphischen Information besitzen gewisse Attribute, beispielsweise zu Größe, Form, ihre Positionsangabe und ihren Füllstatus/Polarität (dunkel oder klar). Viel mehr, gibt es da im Prinzip nicht zu verstehen, wenn da nicht die seltsam anmutenden Maschinencodes wären. Doch diese sind auch kein Hexenwerk - schauen wir uns zumindest einige davon in den nächsten Abschnitten ein wenig näher an. Um die Aussagen einfacher verstehen zu können, müssen vorab ein paar Begrifflichkeiten benannt werden.



    BegriffBedeutung
    Aperturedeutsch: Blende / Lochmaske, eine Öffnung bzw. ein Ausschnitt in einer Folien-Schablone (Stencil). Verschiedene Arten von Öffnungen werden im Gerberfile definiert.
    ShutterBegriff aus der Fototechnik und bezeichnet einen mechanisch beweglichen Verschluss, welcher im Strahlengang der Optik sitzt. Für die Dauer der Belichtungszeit ist dieser geöffnet.
    Graphische Objekte
    drawDefiniert ein Linienstück bzw. gerades Liniensegment mit einer bestimmten Linienbreite und kreisrundem oder quadratischem Querschnitt. Es wird benutzt um Leiterbahnen zu definieren.
    arcDefiniert einen Kreisbogen mit bestimmter Breite und kreisrundem Querschnitt. Es wird benutzt um Leiterbahnen zu definieren.
    flashAbbildung einer aperture (Lochmaskenöffnung) auf einem definiertem Punkt. Die Aneinanderreihung von aperture's vermag demzufolge jede geometrische Form zu kreieren. Es wird benutzt um Pads zu definieren.
    regionEine geometrische Fläche, welche durch eine Kontur begrenzt ist. Die Kontur kann geradlinige und gebogene Formen annehmen. Es wird benutzt um Kupferbereiche (engl.:Copper pours/areas) zu definieren.
    ......


    Der Aufbau einer Gerberdatei


    Wir haben bereits feststellen können, wie einfach eine Gerberdatei im Grunde genommen gestrickt ist. Eine Handvoll Maschinenanweisungen, gefolgt von mehr oder weniger vielen Koordinatenangaben. Schauen wir uns nun also den allgemeinen Aufbau an.
    Der einleitende Headerbereich wird zumeist gefolgt von mehr oder wenigen operation-codes, function-codes bzw. von Koordinaten-Angaben. Schon können wir uns vor unserem inneren Auge eine derartige Struktur vorstellen und machen uns auf den Weg zur nächsten Abstraktionsebene.
    Ein Headerbereich schreit geradezu danach, wahrgenommen zu werden. Hier bietet das Format eine gewisse Möglichkeit zur Informationsübergabe. Ausgewählte Angaben zu den Designeigenschaften oder Herstellerhinweisen fühlen sich hier wohl. Doch woraus bestehen diese wichtigen Designeigenschaften? Stellen wir uns ein Mal vor, man erhält die Koordinatenangabe X00340Y00120. Ohne einen minimalen Schlüssel (Angabe, wie die Koordinaten zu lesen sind) ist die Angabe nicht eindeutig benannt und wozu gibt es die Nullen am Anfang? Es könnte sich sowohl um x=3,40 und y=1,20 handeln, aber auch um x=340 und y=120. Wäre der Schlüssel nicht bekannt, wäre das Ergebnis bei der Herstellung katastrophal oder gerade noch mal gut gegangen. Derlei Informationen stehen nun also im Headerbereich.
    Die unterschiedlichen Maschinenbefehle beginnen mit den Buchstaben G, D, x oder y als Koordinatenangabe oder M und haben unterschiedliche Einsatzzwecke. Jedem Blockelement (Anweisung) wird eine eigene Zeile zur Verfügung gestellt, welche mit einem Sternchen * (Asterisk) abgeschlossen werden muß. Zusätzlich zum Blockendekennzeichen gibt es noch einen Parameterkennzeichner (alles außer Koordinatenangaben). Üblicherweise wird hierfür das Prozentzeichen '%' verwendet und umrahmt wie eine öffnende und schließende Klammer den Parameterblock. Nun sind wir doch schon mitten drin. Doch bevor wir in die Erklärungen der einzelnen Kommandos versinken, sollte jedem Leser verständlich sein, was mit den Daten eigentlich passiert.

    Wie in der obigen Tabelle angegeben gibt es sogenannte apertures, was nichts anderes als vorab zu definierende zweidimensionale geometrische Formen sind - im einfachsten Fall ein Quadrat, Rechteck oder auch ein Kreis (Das Kommando dafür fängt mit AD...aperture definition an). Man stelle sich einfach diese Form als Ausschnitt in einem Blech vor. Richtet man auf diesen Ausschnitt ein Lichtstrahl erscheint auf der anderen Seite des Bleches das Abbild dieses Ausschnittes - man spricht hier von einer Blende. Bewegt man nun die Blende (und den Lichtstrahl) entlang einer gedachten Linie über ein Fotolaminat hinweg, wird es in Abhängigkeit von Blendenform und Verlauf entlang dieses Weges belichtet. Weganfang und Ende markieren Koordinatenpunkte. Es gibt nun zwei Möglichkeiten diese Abfolge zu nutzen. Einerseits kann man einen einzelnen Punkt anfahren und mittels der ausgewählten aperture einen begrenzten Bereich belichten. Dieses Verfahren nennt man flashing (aufleuchten, blenden, einbrennen). Der Koordinatenpunkt wird in der Gerberdatei durch das "Flash-Kommando: D03" erstellt und als sogenannter flash point bezeichnet.
    Ebenfalls möglich ist es mit offener Blende / aperture eine Strecke abzufahren und so ganze Bereiche zu belichten. Dieses Verfahren nennt man stroking (über einen Bereich streichen...). Dies geschieht durch den operation Code: D02" und entsprechender Koordinatenangabe. Man stelle sich vereinfacht das Zeichnen einer Linie auf einem Blatt Papier mit unterschiedlich dicken Stiften oder Stempelaufsätzen vor.
    Markant ist also, dass neben Verfahrweg auch die Form der aperture-Figur die Geometrie entscheidend beeinflußt, da der Flash-Punkt lediglich den Mittelpunkt der aperture-Figur markiert.

    Fast unbemerkt, haben wir also die wichtigsten operation codes kennen gelernt:

    operation codeBedeutung
    D01Mit offener Blende wird ein geradliniges oder kreisförmiges Teilstück vom aktuellem Koordinatenpunkt zu einem bestimmten Koordinatenpunkt abgefahren.Im englischen Sprachgebrauch nennt man dies: "lights-on move". Eine Besonderheit ist der hierbei zusätzlich wählbare "Bereichsmodus (engl.: region mode)". Ist dieser Aus, entspricht das erzeugte Abbild dem der abgefahrenen Strecke mit der überlagerten gewählten Blende / aperture. Ist der Modus jedoch aktiv, beschreiben die abgefahrenen Teilstücke einen bestimmten Bereich (z.B. für copper pours) und erzeugen eine Kontur.
    D02Erzeugt Bewegungen vom aktuellem Koordinatenpunkt zu einem neuen Koordinatenpunkt und dient demnach einer reinen Verfahrbewegung. Wichtig hierbei, dass nichts erzeugt / belichtet wird. Es ist also keine Blende / aperture in Gebrauch. Im englischen Sprachgebrauch nennt man dies: "lights-off move".
    D03Flash-Point Modus: Ein einzelner Koordinatenpunkt wird angefahren. An genau diesem Punkt wird mit der gewählten Blende / aperture ein Abbild erzeugt. Die Form des Abbildes entspricht der Blende.

    Diese 3 operation Codes (D-Codes) dürfen vom User nicht anderweitig benutzt oder überschrieben werden. Wir werden noch sehen, dass es weitere D-Codes geben kann.


    Weitere Gerber-Anweisungen


    Neben den D-Codes gibt es selbstverständlich auch weitere Codecs. Mit deren Hilfe erhält man ein bewährtes Werkzeug, um die Designdaten in ein zur weiteren Bearbeitung verwendbares Format zu wandeln. Speziell die Kommandocodes sind hier besonders erwähnenswert. Diese Kommandocodes beinhalten mindestens einen sogenannten Datenblock. Jeder Datenblock wird mit einem 'end-of-block' Zeichen - dem Asterisk (*) abgeschlossen. Das bedeutet, sollten innerhalb eines Kommandocodes mehrere Datenblöcke vorhanden sein, wird auch jeder dieser Datenblöcke mit einem Sternchen abgeschlossen. Doch auch wenn mehrere Datenblöcke aufeinanderfolgen können, hat dies den Nachteil der erschwerten Lesbarkeit für uns Menschen. Daher sollte dies nach Möglichkeit und Bedarf vermieden werden und jedem Datenblock eine eigene Zeile reserviert werden. Die Datenblöcke selbst bestehen im Übrigen aus Funktionsaufrufen, Koordinatenangaben oder anderen Codes.

    • Kommando mit einzelnem Datenblock: X144Y123D01*
    • Kommando mit mehreren Datenblöcken: %AMDONUTFIX*1,1,0.120,0,0*1,0,0.090,0,0*%

    Man unterteilt Kommandocodes in 3 Kategorien:

    • Function codes
    • Parameter codes
    • Coordinate data ( Koordinatenangaben)

    Alle Codes mit einem einzelnen Buchstaben sind function codes, z. B. G01*. Wie der Name schon sagt, lösen sie bestimmte Funktionen aus. Wir erinnern uns, Gerberdaten wurden historisch betrachtet benötigt, um Maschinen Steuerbefehle zu erteilen - also drehe links, drehe rechts, fahre gerade aus usw. Sie können überall in der Datei verwendet werden. Abgeschlossen werden alle function codes von einem Asterisk (Sternchen).
    Parameter codes beginnen mit 2 Buchstaben und auch hier ist der Name Programm. Man kann bei jedem Code aus einem Parametersatz auswählen. Der wohl gebräuchlichste ist die Auswahl für den Parameter "MO". Die Parameter dafür lauten "IN" oder "MM", so dass sich entweder %MOIN*% oder %MOMM*% ergibt. Dieser Parameter definiert in welchem Format die Koordinaten zu lesen sind - inch oder mm. Parameter codes bestimmen die Eigenschaften und Zusammenhänge des Gerberfiles und gelten für die gesamte Datei. Aus diesem Grunde sind Parameter codes am Anfang, also im Headerbereich einer Gerberdatei zu finden.
    Bleiben noch die Koordinatencodecs. Jeder der sich ein Gerberfile näher betrachtet, erkennt sicher die Koordinatenangaben relativ schnell, so das diese selbsterklärend sein sollten, wenn es beispielsweise heißt: X444Y888D02 (Verfahrbewegung vom aktuellem, zum angegebenen Koordinatenpaar).


    Der Ausklang


    Das soll uns an dieser Stelle genügen, allerdings nicht ohne den Hinweis, dass noch weitere codecs existieren - beispielweise zur Übergabe von Dateiattributen, Kommentaren, Variablendeklaration und so weiter. Es würde uns allerdings hier zu viel Zeit und Platz kosten. Es macht auch keinen Sinn bereits gut formuliertes unbedingt nochmals an dieser Stelle zu wiederholen. Wer es doch wissen möchte, kann sich gern beim Gerberformat-Betreuer Quelle: ["Ucamco"] schlau machen. Stattdessen soll an dieser Stelle noch eine Übersicht der wichtigsten Kommandocodes folgen. Mit deren Hilfe kann man die meisten Gerberdateien bereits gut erfassen. Danach soll noch mals ein kurzes Beispiel dargestellt werden.

    Darstellung einiger wichtiger Kommandocodes und deren Syntax (mit kurzen Beispielen)

    Koordinatenangabe
    SyntaxBedeutung
    X, YKennzeichnung von Koordinatenpunkten, Jede Koordinatenangabe endet mit einem Operation Code (D01, D02, ...)
    BeispielKommentar
    X500Y100D02reine Verfahrbewegung zum angegebenen Koordinatenpunkt
    X-100D03Koordinatenangabe gilt nur für x-Wert, y-Wert bleibt der im Voraus gesetzte Wert bestehen, D03 weißt auf das Anfahren eines Flash-Points hin (einzelner Belichtungspunkt)

    Koordinatenangabe
    SyntaxBedeutung
    I, JKennzeichnung eines Offsets in X bzw. Y-Richtung
    BeispielKommentar

    SyntaxBedeutung
    FS
    BeispielKommentar

    SyntaxBedeutung
    MO
    BeispielKommentar

    SyntaxBedeutung
    AD
    BeispielKommentar

    SyntaxBedeutung
    SR
    BeispielKommentar

    SyntaxBedeutung
    LP
    BeispielKommentar

    G-Codes - Auf zur Arbeitsvorbereitung


    Da gibt es zum Einen die ...

    to be continued...Inhalte werden eingefügt!





    Quickinfo Designtipps:







Nach oben