Для конструктора печатных плат технологический формат Gerber является этакой «точкой невозврата». Этот формат предназначен для преобразования в него электронной модели печатной платы и передачи на производство. Разработка печатной платы на этом этапе заканчивается. Однако иногда возникают обратные ситуации — когда электронную модель печатной платы необходимо восстановить из данных формата Gerber.

Для начала уточним терминологию. Электронную модель печатной платы будем для краткости называть моделью платы, а словосочетание печатная плата сократим до одного слова — плата. Словосочетание Altium Designer сократим до AD. Назначение слоя (слой металлизации, слой маркировки, слой маски и так далее) назовем типом слоя. Для работы над моделью платы в AD предназначен формат PcbDoc. Все форматы, с которыми имеет дело разработчик плат, можно разделить на две категории: конструкторские форматы и технологические форматы. Формат PcbDoc относится к первой категории, Gerber — ко второй.

Форматы

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

Gerber

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

Таблица 1. Наиболее распространенные расширения gerber-файлов
Тип слоя Расширение
Верхний слой металлизации *.art01, *.cmp, *.top, *.gtl, *.layerl, *.soldcom, *.comp
Нижний слой металлизации *.art02, *.gbl, *.bottom, *.sld, *.bot, *.GBL, *.layer2, *. soldsold,*.sol
Внутренний слой *.art, *.in, *.internal, *.gtl, *.gt2, *.gt3, *.gt4, *.gt5, *.gt6, *.gl, *.g2, *.g3, *.g4, *.g5, *.g6
Негативный экранный слой *.pgp, *.pwr, *.gpl, *.gp2, *.gp3, *.gp4, *.gp5, *.gp6, *.gnd, *.ground
Позитивный экранный слой *.pgp, *.pwr, *.gnd, *.ground
Слой сверловки *.dd01, *.gdl, *.ggl, *.drill, *.drl, *.tap, *.ncl, *.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, *.maskl, *. 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-файлы передают ему данные следующих типов:

  • коды действий (описывают, ЧТО делать);
  • координаты (описывают, ГДЕ делать);
  • данные апертур (описывают, ЧЕМ делать).

Апертура — это графический элемент, которым фотоплоттер рисует тот или иной элемент топологии. Например, линию толщиной 1 мм фотоплоттер рисует апертурой в виде окружности с диаметром 1 мм, перемещая ее из начальной точки в конечную. Апертуры могут быть как простой формы (окружность, квадрат, прямоугольник), так и сложной.

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

Пример блока данных:
G02X40Y30150J0D01*

Он состоит из кода действия (G02), координат (X40Y30150), дополнительных модификаторов (J0D01) и заканчивается символом конца блока (*).

Существует два самых распространенных протокола формата Gerber — RS274D и RS274X. Первым был разработан протокол RS274D. Наиболее важное для нас отличие этих протоколов в том, что gerber-файлы, сформированные по протоколу RS274D, не имеют в своем составе данных об апертурах. Поэтому при использовании таких файлов необходимо формировать файл апертур. Соответственно, при использовании протокола RS274X файл апертур формировать не нужно, данные об апертурах уже заложены в gerber-файлах слоев.

При формировании gerber-файлов задаются параметры координат:

  • Units: English/ Metric;
  • Digits: Integer, Decimal;
  • Type: Absolute / Incremental;
  • Zero Suppression: Leading / Trailing / None.

Units — система измерений, она указывает, в каких единицах заданы координаты: в миллиметрах (Metric) или в дюймах (English). Digits используется вместо точки или запятой, отделяющих целую часть числа от дробной, а также определяет точность координат. Этот параметр указывает, сколько знаков составляет целая (Integer) и дробная (Decimal) части координаты. И целая, и дробная части могут составлять от одного до шести знаков. Type — режим координат. Указывает, каким образом задаются координаты: absolute — все координаты отсчитывают от одной начальной точки, incremental — каждая последующая координата отсчитывается от предыдущей. Zero Suppression — подавление нулей: leading — подавляются ведущие нули, trailing — подавляются замыкающие нули, none — нули не подавляются. Пример задания координат:
X00001606708Y00000689082*

Координаты задаются раздельно по осям X и Y, в конце ставится символ конца блока данных. В данном примере представлена абсолютная координата в метрической системе, количество знаков целой части — 5, дробной — 6, подавления нулей не производится.

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

  • FS — начало строки объявления параметров.
  • L/T/D — подавление нулей:
    • L — ведущих,
    • T — конечных,
    • D — нули не подавляются.
  • А/I — режим координат:
    • A — абсолютный,
    • I — относительный.
  • [Nn] — длина последовательности.
  • [Gn] — функциональный код.
  • Xa, Yb, [Zc] — количество знаков целой и дробной частей (подставляется вместо a, b или c).
  • [Dn] — код черчения.
  • [Mn] — дополнительный код.

Параметры, взятые в квадратные скобки, не являются обязательными и зачастую отсутствуют. Пример подобной строки:
%FSDAX56Y56*%

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

Более подробную информацию о данном формате можно получить из документа The Gerber File Format Specifications, разработанного компанией Ucamco.

Таблица 2. Коды параметров координат
Параметр Варианты кодов
Units
Миллиметры М71 METRIC
Дюймы М72 М70 INCH
7 УРе
Абсолютные координаты G90 10, OFF
Относительные координаты G91 га on
Zero Suppression
Подавляются ведущие нули TZ
Подавляются замыкающие нули LZ
Версия формата
Excellon FMAT, 1
Excellon 2 FMAT, 2

Excellon

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

Существует несколько форматов файлов сверления, наиболее распространенный из которых — Excellon (все форматы файлов сверления относятся к технологическим форматам). Данный формат имеет две версии — Excellon и Excellon 2.

Во многом этот формат подобен формату Gerber: все данные записываются в текстовом виде и используются параметры координат Units, Type и Zero Suppression. Расширение файлов сверления — *.drl.

Если в gerber-файлах параметры координат объявляются в пределах двух строк, то в случае формата Excellon 2 они объявляются в заголовке файла в виде отдельных кодов. Кроме того, в заголовке объявляется список используемых отверстий. Заголовок файла сверления представляет собой набор строк, начинающийся кодом M48 и заканчивающийся кодом M95 или символом %. В таблице 2 приведены основные коды параметров координат.

Пример заголовка файла сверления формата Excellon 2:

M48
METRIC, TZ
FMAT, 2
ICI, OFF
T01C.6F042B423S6H2000
T02C.8F042B423S6H2000
T03C.9F042B423S6H2000
%

В данном примере объявляется: M48 — начало заголовка, METRIC, TZ — координаты в метрической системе с подавлением ведущих нулей, FMAT, 2 — формат Excellon 2, ICI, OFF — абсолютные координаты, далее следует объявление используемых инструментов.

Процесс

В общем случае восстановление модели платы из технологических файлов состоит из следующих этапов:

  1. Загрузка gerber-файлов в среду CAMtastic.
  2. Подготовка загруженных gerber-данных к экспорту:
    1. настройка типов слоев,
    2. настройка физической последовательности проводящих слоев,
    3. настройка наборов сверления,
    4. извлечение списка цепей.
  3. Экспорт gerber-данных в формат PcbDoc.
  4. Доработка модели платы до полноценного проекта Altium.

Необходимость выполнения пункта 2 обусловлена тем, что ни gerber-файлы, ни файлы сверления не содержат соответствующей информации.

Для технологической подготовки плат в AD предназначена среда CAMtastic. Эта среда работает непосредственно с gerber-файлами. Она же нужна для подготовки gerber-файлов к экспорту в формат PcbDoc. Но прежде чем приступить непосредственно к восстановлению модели платы, нелишне будет выполнить настройку среды CAMtastic.

Настройка CAMtastic

Настройки среды CAMtastic доступны в окне системных настроек в разделе CAM Editor. Для доступа к ним необходимо выполнить команду DXP>Preferences. В рамках этой статьи нас интересуют две закладки: Import/Export и Miscellaneous. Рассмотрим их подробнее.

Import/Export (рис. 1). В поле Gerber Import (Default) задаются по умолчанию протокол и параметры координат загружаемых gerber-файлов. В строке Start Units отображается текущая настройка. Протокол переключается кнопкой RS-214-Х. Параметры координат задаются в окне Gerber Import Settings (рис. 2), доступном по нажатию кнопки Import Data. По нажатию на кнопку Advanced Options откроется окно настройки дополнительных параметров Import Gerber Options (рис. 3). В этом окне галочка Use 360 Degree Arcs as default указывает, что в загружаемых файлах используются радиальные команды полного круга. Галочка End Gerber Block at Newline указывает на то, что каждый блок данных начинается с новой строки. В окошке End of Gerber Block Character указывается символ конца блока данных.

Рис. 1. Закладка Import/Export раздела CAM Editor окна системных настроек
Рис. 1. Закладка Import/Export раздела CAM Editor окна системных настроек
Рис. 2. Окно параметров координат gerber-файлов
Рис. 2. Окно параметров координат gerber-файлов
Рис. 3. Настройка дополнительных параметров gerber-файлов
Рис. 3. Настройка дополнительных параметров gerber-файлов

Настройки в поле Export 2 РСВ — Options указывают, каким образом должны быть преобразованы полигоны. При активации пунктов Create Elatched Polygons и Create Solid Polygons становятся доступны стандартные для AD настройки полигонов.

Miscellaneous (рис. 4). В поле File Extensions перечисляются расширения, опираясь на которые AD осуществляет выбор файлов для загрузки. Если предполагается загрузка gerber-файлов или файлов сверления с иными расширениями, то их стоит прописать в соответствующие окошках. В поле Quick Load настраиваются опции одноименной команды — максимальный размер платы и тип загружаемых данных. В поле Custom Aperture (s) Accuracy указывается по умолчанию, какая используется точность в файлах апертур — одна цифра после запятой (1 Digit (e.g. NNN.N)) или две (2 Digits (e.g. NNN.NN)).

Рис. 4. Закладка Miscellaneous раздела CAM Editor окна системных настроек
Рис. 4. Закладка Miscellaneous раздела CAM Editor окна системных настроек

Загрузка данных в среду CAMtastic

Прежде чем загружать gerber-файлы, нужно создать новый САМ-документ. Для этого необходимо выполнить команду Fiie>New>CAMdocument.

Как уже упоминалось выше, gerber-файлы зачастую не предоставляют информации о типах слоев, на это указывают лишь расширения файлов. По таким расширениям AD определяет типы слоев загружаемых gerber-файлов. Список расширений, с которыми «знаком» AD, доступен в таблице окна Layer Types Detection Template (рис. 5), открывающегося командой Tables>Layer Type Detection. В графе Layer Туре этой таблицы перечислены типы слоев, а в графе Layer Type String Template — соответствующие им расширения. Если первая графа недоступна для изменений, то вторую можно редактировать. Соответственно, если предполагается загрузка файлов, расширения которых отсутствуют в таблице, имеет смысл их туда прописать.

Рис. 5. Окно Layer Types Detection Template - список расширений, знакомых AD
Рис. 5. Окно Layer Types Detection Template — список расширений, знакомых AD

Quick Load

AD предлагает два варианта загрузки технологических файлов: либо сразу группы файлов различных форматов одной командой, либо раздельно по форматам. Для начала рассмотрим первый вариант. Для его реализации предназначена команда File>Import>Quick Load. В результате ее выбора откроется окно File Import — Quick Load (рис. 6).

Рис. 6. Окно загрузки технологических файлов
Рис. 6. Окно загрузки технологических файлов

Данная команда предназначена для пакетной загрузки технологических файлов. В окошке Select Import Directoiy необходимо указать папку, содержащую нужный набор данных. Путь к ней можно задать как вручную, так и нажав расположенную справа кнопку. После указания папки ее содержимое отобразится в окне Fiie (s) in Directoiy. По умолчанию в данном окне отображаются файлы, выбранные программой AD в соответствии с системными настройками (см. рис. 4). При необходимости открыть в этом окне все содержимое выбранной папки, можно воспользоваться расположенным внизу выпадающим меню. Команда Quick Load загружает в среду CAMtastic все файлы, выделенные в окне File (s) in Directory. Если какие-то файлы загружать не нужно, с них необходимо снять выделение.

Опции в поле Loading Options предназначены для указания параметров загружаемых файлов. При загрузке файла апертур с помощью выпадающего меню Detect Aperture Formats (RS-274-D) можно указать программу, в которой они были сформированы. По умолчанию выставлено значение Auto-Detect Apertures — автоматическое определение апертур. Кнопки Gerber Options и Default Units вызывают окна настроек дополнительных параметров (см. рис. 3) и параметров координат (см. рис. 2) gerber-файлов.

После нажатия кнопки OK начинается загрузка выбранной группы файлов. Если среди них имеются файлы сверления, откроется еще одно окно — Import Drill Data (рис. 7). Нажатие кнопки Units приводит к открытию окна NC Drill Import Settings. Это окно полностью аналогично изображенному на рис. 2 — с той лишь разницей, что его настройки указывают на параметры координат загружаемых файлов сверления. В файлах сверления не всегда присутствуют данные об используемых отверстиях, на этот случай предусмотрены опции в поле Shape/Default Hole Size.

Рис. 7. Окно параметров файлов сверления
Рис. 7. Окно параметров файлов сверления

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

Import Gerber

Команда Quick Load не всегда адекватно загружает одновременно и gerber-файлы и файлы сверления даже при условии их полноценности. Например, gerber-файлы загружаются и отображаются без проблем, а файлы сверления — нет. В этом случае можно воспользоваться специализированными командами. При этом gerber-файлы и файлы сверления загружаются в CAM-документ по отдельности.

Для загрузки gerber-данных предназначена команда File>Import>Gerber. После запуска этой команды откроется окно выбора файлов. Можно выбрать как один файл, так и группу. На следующем шаге откроется окно параметров gerber-файлов Import Gerber (s) — Options (рис. 8). Все параметры, доступные в данном окне, уже описаны выше, за исключением кнопки Aperture File. Эта кнопка открывает диалог выбора Файл апертур в случае загрузки gerber-файлов, выполненных по протоколу RS274D.

Рис. 8. Окно параметров gerber-файлов
Рис. 8. Окно параметров gerber-файлов

Import Drill

Для загрузки файлов сверления предназначена команда File>Import>Drill. Как видно на рис. 9, данная команда аналогична команде Quick Load. Отличие в том, что по этой команде происходит загрузка только файлов сверления. После выбора загружаемых файлов и нажатия кнопки OK открывается окно параметров gerber-файлов, изображенное на рис. 7.

Рис. 9. Окно загрузки файлов сверления
Рис. 9. Окно загрузки файлов сверления

Настройка типов слоев

Для настройки типов слоев предусмотрена команда Tables>Layers. В результате ее выбора откроется окно Layers Table (рис. 10), представляющее собой таблицу слоев. Каждая строка соответствует одному из загруженных файлов. В графе Name отображаются его имя, а в графе Type — соответствующий ему тип слоя. Для каждого из загруженных файлов необходимо в графе Type щелкнуть левой клавишей мыши и выбрать из выпадающего списка соответствующий ему тип слоя (см. рис. 10). Кроме того, данная таблица позволяет менять цвета слоев (графы Draw и Flash), их отображение (графа On), блокировку (графа Lock), а также удалять слои (графа Delete). Для применения изменений нужно нажать кнопку Apply.

Рис. 10. Настройка типов слоев
Рис. 10. Настройка типов слоев

Настройка физической очередности проводящих слоев

После нажатия кнопки OK в окне Layers Type автоматически откроется окно Create / Update Layers Order (рис. 11). Его также можно вызвать из меню командой Tables>Layers Order… Это окно отображает таблицу, каждая строка которой соответствует одному из проводящих слоев. В графе Layer Name отображается имя слоя, в графе Layer Logical Order — его логический номер, а в графе Layer Physical Order — его физический номер. Для каждого проводящего слоя необходимо щелкнуть левой клавишей мыши в графе Layer Physical Order и из выпадающего списка выбрать соответствующий ему порядковый номер (см. рис. 11). Слои нумеруются сверху вниз.

Рис. 11. Настройка очередности проводящих слоев
Рис. 11. Настройка очередности проводящих слоев

Настройка наборов сверления

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

  1. 1−2−3−4;
  2. 1−2−3;
  3. 2−3−4;
  4. 1−2;
  5. 2−3;
  6. 3−4.

Для каждой такой группы существует отдельный файл сверления. Данные файлы зачастую не содержат информации о слоях. В таких случаях для восстановления правильной модели платы эту информацию нужно задавать вручную. В AD это происходит путем определения наборов сверловки, то есть настройки соответствия между файлом сверления и слоями. Для настройки таких наборов предназначена команда Tables>Layers Sets. В результате ее выбора откроется окно Create / Update Layers Sets (рис. 12). Оно отображает таблицу, каждая строка которой предназначена для определения отдельного набора сверловки. В графе Layers Set Name отображается имя набора, в графе Assigned Drill Layer — имя соответствующего файла сверления, в графе Signal/ Plane Layers In Set — соответствующие слои. Если команда Tables>Layers Sets для текущего CAM-документа выполняется впервые, то таблица откроется пустой. Для каждого набора нужно:

Рис. 12. Установка наборов сверления
Рис. 12. Установка наборов сверления
  • в графе Layers Set Name вручную прописать имя набора сверловки;
  • в графе Assigned Drill Layers выбрать из выпадающего списка соответствующий файл сверления;
  • в графе Signal / Plane Layers In Set щелкнуть левой клавишей мыши по ячейке и в открывшемся окне Select Layer Pairs выбрать соответствующие слои (см. рис. 12), можно также воспользоваться кнопкой Select Layer Pairs.

При выборе слоев вовсе не обязательно выбирать все слои, через которые проходят отверстия текущего набора сверловки, достаточно выбрать крайние слои (см. рис. 12, на нем показан выбор крайних слоев для сквозных отверстий). Для определения нового набора сверловки нужно нажать кнопку Insert Layers Set, для удаления существующего — Delete Layers Set.

Извлечение списка цепей

Для того чтобы такие элементы топологии, как проводники, представляли собой не набор примитивов, а полноценные цепи, программе AD необходим список цепей. Если среди файлов импортируемого набора такой список отсутствует, AD сам его построит на основе импортируемой графической информации. Для выполнения этой процедуры запустите команду Tools> Netlist>Extract. Данная процедура не является моментальной. В случае сложных плат и не очень быстрого компьютера она может занимать несколько десятков минут, а в исключительных случаях даже больше часа. Поэтому нужно набраться терпения и дождаться окончания ее выполнения.

Экспорт gerber-данных в формат PcbDoc

Все описанное выше является хоть и обязательной, но все же подготовкой к последнему, главному действию — экспорту gerber-данных в формат PcbDoc. Для выполнения этого действия необходимо запустить команду File>Export> Export to PCB. Данную процедуру можно проводить только после выполнения всех вышеописанных действий. Более того, пока не будет выполнено извлечение списка цепей, команда экспорта вообще недоступна. В результате выполнения данной процедуры AD откроет среду трассировки плат и отобразит в ней результат — плату в формате PcbDoc.

Доработка модели платы до полноценного проекта Altium

Gerber-файлы и файлы сверления в сумме содержат данные только о топологии слоев, отверстиях и форме платы. Для полноценной модели платы и, тем более, для полного проекта AD этого определенно недостаточно. Поэтому принципиальную электрическую схему, библиотеку компонентов, содержащую как УГО, так и посадочные места, и остальные аспекты полноценного проекта необходимо восстанавливать вручную. Тем не менее, благодаря отмене необходимости заново трассировать плату, описанный процесс позволяет значительно сэкономить время. При этом чем выше уровень сложности платы, тем время экономится больше.

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

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

Алексей Якубенко
E-mail: