Top menu

Формат Gerber. Общий обзор

G1I0

Несмотря на многообразие оборудования для производства печатных плат, его производители как-то умудряются найти общий язык между собой, с производителями печатных плат и конструкторами. В результате, в отличие от программ для трассировки печатных плат, каждая из которых использует свой собственный формат данных, количество форматов для управления таким оборудованием, то есть технологических форматов, описывающих топологию печатных плат, можно буквально «по пальцам пересчитать». Наибольшее распространение получил формат под названием Gerber. Его ещё иногда называют «хребтом электронной промышленности». К сожалению, русскоязычной информации на эту тему не так уж и много. А она необходима. Больше всего она необходима технологам, занимающимся подготовкой печатных плат к производству. Но и конструкторам она тоже частенько нужна. Например, для того, что бы правильно сформировать gerber-файлы перед отправкой на производство. Попробуем слегка приоткрыть завесу сей «стра-а-ашной тайны».

 Немного истории

Формат Gerber взял своё имя от несуществующей ныне компании Gerber Systems Corporation, бывшей в своё время ведущим производителем фотоплоттеров. Этот формат был задействован в далёком 1980-м году, и его первоначальная итерация представляла собой, так называемый, Standart RS-274-D. Так же, он стал известен под названием Standart Gerber – стандартный Gerber.

С течением времени аппаратура для производства плат развивалась, а платы становились всё сложнее и сложнее. Соответственно этому, развивался и Gerber. В результате он превратился в целое семейство форматов. В целях стандартизации в 1997-м году всё это семейство было сведено в один формат, и, таким образом, появился так называемый расширенный Gerber (Extended Gerber), или RS-274X. Фактически, новый формат стал стандартом для данных, описывающих топологию печатных плат. С 1997 года было произведено несколько изменений данного формата с целью его адаптации к развивающимся технологиям.

Ну, а компания Gerber Systems Corporation в 1998 году прекратила своё независимое существования. Она вошла в состав группы компании Barco в качестве подразделения Barco ETS, занимающегося вопросами технологии производства печатных плат. В настоящее время она носит название Ucamco.

 Ещё немного истории, но уже другой…

Что бы было проще понять «идеологию» формата Gerber, рассмотрим, от чего отталкивались его разработчики. Первые фотоплоттеры представляли собой, по сути, графопостроители с ЧПУ. Следовательно, и формат Gerber представляет собой программу для управления такими графопостроителями. Рассмотрим, принцип действия первых фотоплоттеров.

Принцип действия фотоплоттеров

Рис.1 Принцип действия фотоплоттеров

Апертура – отверстие определённой формы. Луч света, проходя через апертуру на апертурном колесе, затвор и систему оптики, попадает на расположенный на координатном столе фотошаблон и оставляет на нём пятно. Это пятно по форме повторяет форму апертуры. Если при этом координатный стол двигается относительно осей X и Y, то на фотошаблоне «вычерчивается» линия, толщина и форма концов которой зависят от выбранной апертуры. Нужная апертура выбирается поворотом апертурного колеса таким образом, что бы она оказалась ровно напротив источника света. Открываясь или закрываясь, затвор «включает» или «выключает» «вычерчивание».

Для данной системы программа управления состоит из команд, которые управляют затвором, положением координатного стола и выбором апертуры. Опираясь на этот относительно нехитрый набор, на фотошаблоне можно построить практически любое изображение. Первоначальный стандартный Gerber как раз и состоит из подобного набора команд. Слегка забегая вперёд, необходимо отметить, что в отличие от расширенного Gerber, стандартный не имеет в своём составе файлов данных об апертурах. Для них формируется отдельный файл.

Фотоплоттер

Рис.2 Фотоплоттер

И последний «исторический факт», на который стоит обратить внимание. Первые фотоплоттеры управлялись при помощи программ, записанных на перфоленты или магнитные ленты. Как следствие – данные устройства были чувствительны к объёму программ, что наложило свои особенности на задание координат. Вместо запятой, отделяющей дробную часть числа, используются такие параметры, как «количество цифр перед запятой»  (Digits Integer) и «количество цифр после запятой» (Digits Decimal). Каждый из них представляет собой по две цифры. Суть в следующем: запятая – определённый символ, занимающий определённое место в памяти. Количество запятых равняется сумме количества координат по оси X и количества координат по оси Y. Соответственно, в программе убираются все запятые, а вместо них один раз используется запись о положении запятой, что значительно сокращает размер программы.

Магнитная лента

Рис.3 Магнитная лента

Вторая особенность – отсечение относительно ненужной информации – ведущих или замыкающих нулей. Суть в том же – символ нуля занимает определённое место в памяти. Поэтому из координат удаляются все ведущие или все замыкающие нули, а вместо этого делается одна запись, представляющая собой один символ, что так же значительно сокращает объём программы. И, наконец, третья особенность – возможность не указывать одну или обе координаты. Такой подход позволяет сократить объём программы за счёт случаев, когда последующая координата не меняется или меняется только по одной из осей. В этом случае неизменяющееся значение можно вообще не указывать.

Перфолента

Рис.4 Перфолента

Естественно, с течением времени аппаратура для производства плат постоянно развивалась. В настоящее время фотоплоттеры представляют собой скорее принтеры, чем графопостроители. Однако идеология и терминология программ для построения рисунка топологии печатной платы осталась неизменной.

 Gerber с точки зрения файловой системы

Модель печатной платы в формате Gerber представляет собой набор файлов. Каждый файл описывает только один слой платы, независимо от его назначения. То есть, и для каждого слоя металлизации, и для каждого слоя шелкографии, и так далее, формируется отдельный gerber-файл. Иными словами, будут одновременно верны оба определения: «для описания одного слоя печатной платы нужен один gerber-файл» и «один  gerber-файл описывает один слой печатной платы».

Стоит обратить внимание на то, что gerber-файлы используются не только для вычерчивания топологии слоёв, но и для обработки контуров плат, и для создания трафаретов для паяльной пасты. Более того, формат файлов сверления является прямым наследником Gerber.

С точки зрения расширенного Gerber, каждый gerber-файл – законченная программа, не требующая дополнительных файлов или иных внешних параметров. В то же время при применении gerber-файлов старого образца – RS-274-D – требуется дополнительный файл апертур, поскольку сами gerber-файлы в данном случае не содержат данных об апертурах.

Каждая программа является «однопроходной». То есть, структура управляющих кодов построена таким образом, что при создании изображения коды считываются и выполняются последовательно и при этом не происходит возвратов в начало программы или на какую-либо её строку.

Gerber-формат является векторным форматом, то есть по его данным формируется изображение, не зависящее от разрешения.

Каждый gerber-файл является текстовым файлом. При этом расширение *.txt используется крайне редко. Как правило, расширение gerber-файла соответствует типу его слоя. Каждый разработчик программного обеспечения, оперирующего gerber-данными, закладывает свои правила определения расширений. В таблице 1 приведены наиболее распространённые расширения.

Таблица  1. Наиболее распространённые расширения gerber-файлов

Тип слоя Расширение
Верхний слой металлизации *.art01, *.gtl, *.cmp, *.top, *.gtl, *.layer1, *.soldcom, *.comp
Нижний слой металлизации *.art02, *.gbl, *.bottom, *.sld, *.bot, *.GBL, *.layer2, *.soldsold,*.sol
Внутренний слой *.art, *.in, *.internal, *.gt1, *.gt2, *.gt3, *.gt4, *.gt5, *.gt6, *.g1, *.g2, *.g3, *.g4, *.g5, *.g6
Негативный экранный слой *.pgp, *.pwr, *.gp1, *.gp2, *.gp3, *.gp4, *.gp5, *.gp6, *.gnd, *.ground
Позитивный экранный слой *.pgp, *.pwr, *.gnd, *.ground
Слой сверловки *.dd01, *.gd1, *.gg1, *.drill, *.drl, *.tap, *.nc1, *.dd02, *.gd, *.gg, *.drill, *.drl, *.tap, *.nc2, *.dd, *.gd, *.gg, *.drill, *.drl, *.tap, *.nc3, *.nc4, *.nc5
Верхний слой шелкографии *.sst01, *.gto, *.top silk, *.silk, *.slk, *.sst, *.ts, *.skt
Нижний слой шелкографии *.sst, *.bsilk, *.gbo, *.ssb, *.bot silk, *.silk, *.bs, *.skb
Верхний слой маски *.sm01, *.cmask, *.gts, *.tmask, *.tmk, *.smt, *.mask1, *.maskcom, *.tr, *.top mask, *.mst
Нижний слой маски *.sm, *.gbs, *.bmask, *.bmk, *.smb, *.mask2, *.masksold, *.br, *.bot mask, *.msb
Верхний слой пасты *.sp01, *.gtp, *.tm, *.top paste, *.paste, *.pst
Нижний слой пасты *.sp02, *.gbp, *.bm, *.bot paste, *.paste, *.psb
Периметр платы  *.BDR, *.gko, *.border, *.out
Список цепей *.ipc, *.net

 

Пример реального набора gerber-файлов, сформированных средствами Altium Designer

Рис.5 Пример реального набора gerber-файлов, сформированных средствами Altium Designer

Немного подробнее про апертуры

Апертура – основной инструмент формирования топологического рисунка, она представляет собой «пятно» определённой формы. С её помощью фотоплоттер прорисовывает все элементы топологии за исключением полигонов (а в случае формата RS-274-D – и полигоны тоже). Можно сказать, что это аналог карандашей, но с той разницей, что апертуры отличаются друг от друга не цветом, а формой. Апертуры делятся на два типа – стандартные и макроапертуры.

Стандартные апертуры

Рис.6 Стандартные апертуры

Чаще всего используются стандартные апертуры. Макроапертуры могут быть любой формы.

Пример макроапертур

Рис.7 Пример макроапертур

Для формирования линии, как правило, используется апертура круглой формы с диаметром, соответствующим ширине линии. Данная апертура «передвигается» из одной точки в другую по определённой траектории. Аналогичным образом могут использовать как стандартные апертуры, так и макроапертуры любой формы.

Пример "вычерчивания" линии

Рис.8 Пример «вычерчивания» линии

 Синтаксис

Допустимым набором символов в gerber-файлах являются символы с 32 по 126 7-битной ASCII-таблицы, а так же символы под номерами 10 (LF, Line Feed) и 13 (CR, Carriage Return). Все остальные символы являются недопустимыми. LF и CR могут использоваться как разделители строк. Разделители строк могут использоваться только между блоками данных и в составе макроапертур. Символы «*» и «%» зарезервированы. Первый может быть использован только в качестве символа конца блока данных, второй – только как ограничитель параметров. Символ пробела может быть использован лишь в комментариях. Разработчики формата gerber настоятельно рекомендуют каждый новый блок данных начинать с новой строки, что улучшает «читабельность» программы, никак не влияя при этом на построение изображений.

В составе программ допускается применять имена для идентификации макросов, изображений и уровней. В именах можно использовать все допустимые символы, за исключением пробела, CR, LF, «%» и «*». Длина имён не должна превышать 255 символов. Имена не могут начинаться с цифр и символов «+» и «-».

Описание платы в формате Gerber состоит из блоков данных и объявлений. Блоки данных – это низшие синтаксические элементы, из которых строится программа. Каждый блок данных должен заканчивать символом конца блока данных, как правило – «*». Каждый блок данных может содержать один или несколько параметров, кодов или координат. Примеры блоков данных:

X2Y0D02*

G01X5000Y0D01*

Несколько блоков данных могут объединяться в высшие синтаксические элементы – объявления. По сути, gerber-программа представляет собой последовательность объявлений. Объявления могут содержать как один блок данных, так и группу. Если в объявлении присутствуют параметры, то оно представляет собой «объявление параметров» и заключается между символами «%». Примеры объявлений:

G02X0Y100I-400J100D01*

%AMDONUTFIX*1,1,0.100,0,0*1,0,0.080,0,0*%

Gerber оперирует тремя типами данных:

  1. параметры
  2. функциональные коды;
  3. координаты.

Параметры определяют характеристики gerber-файлов. Параметры, определяющие характеристики всего gerber-файла, должны располагаться в его начале, остальные – в соответствующем месте. Блоки данных, содержащие параметры, являются «объявлениями параметров», заключаются между символами «%», и их длина не может быть более 4096 символов. Объявления параметров состоят из двух-символьного параметрического кода, определяющего назначение параметра, и следующих за ним параметрических данных. В большинстве случаев параметры состоят из одного блока данных. При этом символ конца блока данных должен располагаться непосредственно перед символом «%». Параметры макроапертур могут состоять из нескольких блоков данных. Для хорошей читаемости, разработчики gerber рекомендуют каждый блок данных начинать с новой строки. Примеры объявлений параметров:

%FSLAX23Y23*%

%LPD*%

%AMA1bo*

1,1,0.00591,-0.02829,0.02477*%

Функциональные коды определяют действия, необходимые для прорисовки топологии слоя. Они состоят из буквенного символа D, G или M и двух цифр. Например, D01 или M02.

Координаты определяют текущую точку, в которой необходимо совершить текущее действие. Координаты записываются в форме:

[X(число)][Y(число)][I(число)][J(число)].

«X» и «Y» – координаты по осям X и Y, «I» и «J» — сдвиг по тем же осям. Квадратные скобки указывают на то, что каждую из координат или сдвигов возможно опустить. Вместо опущенной координаты подразумевается соответствующая координата из предыдущего блока данных. Вместо опущенного смещения подразумевает ноль. Примеры задания координат:

X5298Y5923

X5303

Y5924

X+100I-50

X200Y200I50J50

Как определить систему измерений и способ задания координат

В практике любого инженера иногда возникает необходимость определить такие параметры gerber-файлов, как система измерений и способ задания координат. Данное действие несложно, достаточно лишь открыть gerber-файл как текст в любом текстовом редакторе, найти в его начале описанные ниже строки и расшифровать их.

Система измерения и способ задания координат определяют характеристики всего gerber-файла, поэтому, как уже говорилось выше, они объявляются в начале файла. Строка, объявляющая способ задания координат, выглядит следующим образом:

%FS(L/T/D)(А/I)(Xa)(Yb)*%, где

FS – начало строки объявления параметров.

L/T/Dподавление нулей:

  • L – ведущих,
  • T – конечных,
  • D– нули не подавляются.

А/I – режим координат:

  • A – абсолютный,
  • I – относительный.

Xa, Yb – количество знаков целой и дробной частей (подставляется вместо a, b).

Пример подобной строки:

%FSDAX56Y56*%

В данном примере объявляется следующее: FS – начало строки объявления параметров, D – нули не подавляются, A – абсолютный режим координат, X56Y56 – 5 цифр целой части и 6 – дробной, * – конец строки объявления параметров.

Строка объявления системы измерений бывает двух видов: %MOMM*% – координаты заданы в миллиметрах, %MOIN*% – координаты заданы в дюймах.

В качестве заключения

Мы рассмотрели лишь общие вопросы, связанные с форматом Gerber. На самом деле, тема гораздо более обширна. Для более глубоко изучения данного формата можно обратиться к документуThe Gerber File Format Specifications, разработанного компанией Ucamco. Его можно найти здесь — The Gerber File Format Specification, или — пройдя по ссылке  http://www.ucamco.com/en-us/downloads.aspx.