Практический опыт реверс-инжиниринга печатной платы: зачем, как и когда это нужно?
Привет, Хабр! Меня зовут Лена, и я работаю разработчиком программно-аппаратных решений в компании FPLUS, которая занимается выпуском электроники для корпоративного и государственного сектора. По сути моя статья дает старт публикациям в недавно запущенном блоге FPLUS, где я и мои коллеги будем делиться опытом о своей работе и новых проектах, создающихся в партнёрстве с НТЦ «Модуль» и другими игроками на рынке. В этом первом материале я решил поговорить об импортозамещении — явлении, ставшем в последние годы довольно актуальным, — и расскажу о собственных наработках в этом направлении.
Реалии нашего времени требуют активно использовать в производстве опыт, полученный при изучении импортных узлов и деталей — то, что называют обратным проектированием или реверс-инжинирингом. Почему-то эти понятия считаются чем-то модным и суперсовременным, однако такой подход к решению внезапно и остро встающих технических вопросов применяется уже довольно давно. Например, в 60-х годах прошлого века на основе швейцарского оригинала компании Gebrüder Sulzer Aktiengesellschaft советскими специалистами был создан бесчелночный ткацкий станок СТБ, а в самом начале 90-х годов в массовом порядке стихийно импортозамещались детали оборудования, ввезённого из стран, ранее входивших в Совет экономической взаимопомощи (СЭВ).
Но…, от лирики к делу: в этой публикации я поделюсь собственным опытом создания аналога имеющегося у меня образца печатной платы с использованием реверс-инжиниринга. Я покажу на примерах, как разобраться в работе устройства, составить его принципиальную электрическую схему и воспроизвести в материале. Для примера я использую разветвитель питания материнской платы серверного компьютера.
Запланированная работа разбивается на несколько этапов:
предварительное фотографирование платы и проведение замеров
демонтаж компонентов и их идентификация
снятие паяльной маски вместе с информационными обозначениями элементов схемы
сканирование печатной платы и последующее редактирование полученного изображения
перенос полученного изображения в редактор плат и его отрисовка
составление принципиальной электрической схемы
создание 3D-модели (при необходимости).
Этап 1: Фотографирование и предварительные замеры платы
Фотографии должны быть высокого качества. Для этого желательно использовать фотокамеру с разрешением матрицы не менее 15 Мпикс и объектив с минимальными оптическими искажениями. Для начала снимаем плату с обеих сторон при ярком и равномерном освещении. Затем делаем дополнительные фотографии под разными углами с обязательной фокусировкой на разных компонентах. Дополнительные фото в дальнейшем помогут нам распознать маркировку всех элементов. Затем замеряем и записываем габаритные размеры платы и её толщину. После этого в любом графическом редакторе обрабатываем фото платы и делаем его чёрно-белую распечатку, увеличив масштаб.
Этап 2: Демонтаж компонентов
Теперь можно снимать с платы электронные компоненты. Зачастую многие обозначения элементов на плате бывают закрыты разъёмами или другими компонентами. Чтобы увидеть полную картину, необходимо снять с платы все детали. Порядок демонтажа будет подробно описан ниже, но перед началом работы проверим, все ли необходимые инструменты под рукой! Нам понадобятся:
технический фен с температурой до 3200С
паяльная станция с нижним подогревом (термостол) с температурой до 1500С
два паяльника с тонким жалом
пинцет
паяльный флюс
припой ПОС-62 тонкий
оплётка для снятия припоя
антистатический коврик и антистатический браслет
мультиметр и LC-метр
Итак, всё на месте, и мы приступаем к работе. Включаем станцию нижнего подогрева и устанавливаем температуру стола 150–1550С, кладём на него плату и прогреваем 10 минут. За это время ее компоненты адаптируются к высокой температуре и при дальнейшем нагревании феном не получат резкий тепловой удар.
Мы должны понимать, что испортить компоненты в процессе работы мы не имеем права, так как в нашем распоряжении может быть единственный экземпляр данной платы, к тому же в дальнейшем может возникнуть необходимость вернуть компонент на место.
Кстати, если на подогреваемой стороне платы смонтированы какие-либо элементы, то нужно что-то подложить, чтобы исключить их непосредственный контакт с горячей поверхностью. Для этого я обычно кладу плату на стопку металлических шайб или закрепляю в ее отверстиях металлические «ножки». К счастью, на нашей плате детали смонтированы с одной стороны, поэтому я просто кладу плату на нижнюю сторону компонентами вверх.
Устанавливаем на нашем фене температуру 3000С, направляем горячий воздух на выбранный для демонтажа компонент и аккуратно снимаем его при помощи пинцета. Обычное время нагрева компонента — до 10 секунд. Этого вполне достаточно для того, чтобы снять его и не перегреть. При демонтаже компонентов более крупного размера (таких, как квадратные микросхемы с контактами на каждой стороне или длинные разъемы с контактными группами на каждой из сторон) требуется равномерный круговой нагрев феном всех сторон компонента, т.к. нагревая каждую из них последовательно, мы даем остыть остальным.
Казалось бы, ничего сложного, но есть нюанс. Встречаются компоненты, снять которые при помощи фена очень проблематично. Это связано с тем, что они располагаются на широких медных проводниках, которые ведут себя, как теплоотвод, и даже долгий прогрев феном не даёт результата. Я столкнулся с этим, когда у меня не снимались некоторые конденсаторы, поэтому я вынужден был греть обе стороны компонента двумя паяльниками одновременно.
Чтобы не потерять снятые компоненты, я приклеивал их на лист бумаги с помощью двустороннего скотча, а рядом подписывал обозначение. Если попадаются компоненты, на которых нет маркировки, то необходимо определить их номинал. Для этого нужно уметь визуально отличить конденсатор от резистора, правильно подобрать их номиналы, а также пользоваться измерительными приборами.
Параметры резисторов, снятых с платы, можно измерить обычным мультиметром, конденсаторов и разнообразных катушек и дросселей — LC-метром. Полученные при измерении результаты также фиксируем рядом с приклеенным элементом. В дальнейшем мы отмечаем расположение элементов на распечатанной фотографии платы и составляем электронную таблицу с их перечнем. После этого убираем снятые компоненты подальше и продолжаем работу.
Закончив демонтаж компонентов, счищаем с платы остатки паяльной пасты при помощи оплетки для снятия припоя и паяльника, затем очищаем её средством для чистки плат (FluxOff, Kontakt WL+ или Kontakt 60) и получаем чистую плату без компонентов. Далее сканируем её с обеих сторон. Я использовал офисный сканер для документов с максимально возможным разрешением. Не рекомендую использовать фотокамеру, поскольку малейшие искажение геометрии на этом этапе очень нежелательны. После этого переходим к следующему этапу.
Этап 3: Снятие паяльной маски и шелкографии
Снятие паяльной маски — прозрачного полимерного покрытия, защищающего токопроводящие элементы печатной платы — процесс довольно сложный и небыстрый. На этом этапе надо быть очень аккуратным и не испортить медные проводники. Наша задача — снять этот слой вместе с шелкографией (обозначения и надписи около элементов платы), сделав картину разводки платы более понятной. Делать это мы будем в несколько этапов, используя орбитальную шлифовальную машину (она же эксцентриковая). Обычно её используют для аккуратного удаления старого лака и краски со старых шкафов и полов, мы же будем удалять защитный слой платы, используя абразивные круги для финишной шлифовки.
Работая, нужно быть предельно аккуратным и постоянно контролировать процесс, иначе можно сточить все дорожки! Время от времени следует делать перерыв и протирать плату влажной тряпкой, чтобы убирать остатки пыли. В некоторых местах платы я удалял остатки маски вручную, чтобы аккуратно подобраться к медному слою печатной платы. Весь процесс шлифования визуально контролировался мной при помощи цифрового микроскопа с увеличением 45х.
И вот результат! Он, конечно, стоил затраченных усилий. Теперь, глядя на дорожки платы, мы легко можем понять, что с чем связано. На вид плата довольно простая. На всякий случай я решил проверить, сколько слоёв меди нанесено на неё — один или два. Оказалось, что один.
Верхняя сторона платы
Нижняя сторона платы
Этап 4: Сканирование и редактирование
Используя скан платы, который мы сделали на втором этапе, производим масштабирование: подгоняем отсканированное изображение под размер платы. Это делается для того, чтобы изображение в точности соответствовало реальным размерам. Я предпочитаю использовать графическую программу «Компас». Я к ней привык, но можно использовать и другие программы такого типа. Алгоритм работы:
Шаг 1. Создаем чертёж, рисуем контур платы и устанавливаем размеры.
Шаг 2. Рисуем отверстия печатной платы в соответствии с оригиналом.
Шаг 3. Накладываем поверх чертежа скан нашей платы (Меню→ Вставка→ Рисунок) и совмещаем по размерам. Для этого тянем рисунок мышкой.
После того как наш рисунок совпал с контуром платы, обозначения и размеры можно удалить, а чертеж как картинку в формате *.jpg или *.png. Измерения, кстати, я проводил штангенциркулем, держа в уме пословицу «Семь раз отмерь — один раз отрежь».
Этап 5: Перенос платы в редактор и её отрисовка.
Теперь мы подошли к самому главному этапу — будем создавать нашу плату. Нам потребуется программа для проектирования печатных плат. Существует множество разных систем проектирования, таких как Altium Designer, Kicad, EasyEDA, OrCAD, Delta Design и так далее. Я использую DipTrace.
Создаем проект и рисуем контур платы с крепежными отверстиями, аналогично тому, как мы это делали в программе «Компас». Затем расставляем на плату компоненты: сначала крупные — такие, как разъемы,
— потом остальные: микросхемы, резисторы, конденсаторы и так далее.
После подставляем нашу картинку и начинаем обрисовывать дорожки прямо по ней.
Плата довольно простая, толщину проводников подбираем в соответствии с рисунком. Наша задача — повторить оригинал, поэтому особо придумывать ничего не надо, мы рисуем проводники, как есть. Однако силовые дорожки питания, по которым идёт большой ток, рисуем широкими полигонами и обозначаем отдельными цветами. После этого подкладываем картинку нижнего слоя платы и делаем то же самое (рисуем проводники к компонентам). В итоге мы получаем готовую спроектированную плату.
Теперь из программы DipTrace можно выгрузить производственный файл Gerber (Файл → Экспорт → Gerber), который можно отправить подрядчику, принявшему наш заказ на изготовление печатной платы. Однако для заказа платы на производстве нам потребуется дополнительная информация:
Количество проводящих слоев, у нас их два (верх и низ).
Материал платы: (берём стандартный FR4 типовой).
Толщина платы: 1,6 мм. (мы её измеряли в самом начале).
Толщина медной фольги: указываем 18 микрометров (стандарт).
Защитная маска: заказываем нанесение с двух сторон.
Наличие маркировки (обозначение компонентов специальной краской на плате): отмечаем как «Да», с двух сторон.
После этого заказываем плату и компоненты, получаем их и паяем — изделие готово! Однако впереди ещё один этап работы.
Этап 6: Составление принципиальной электрической схемы
Мы знаем, что при создании печатной платы первым делом создается принципиальная схема, потом появляется плата. В реверс-инжиниринге всё наоборот. Схемы-то у нас нет, поэтому делать мы её будем на основе готовой платы.
Я сделал это так: открыл в DipTrace проект печатной платы и в пункте меню «Свойства платы» отключил полигоны, оставив только контур платы, компоненты и проводники. После чего я выбирал любую понравившуюся дорожку на плате и перекрашивал её в красный цвет. Становилось видно, с какими компонентами на плате соединяется данная дорожка, и можно было начинать чертить схему. Зарисовав связь, я менял её цвет, например, на коричневый, и переходил к следующей цепи, пока все не нарисовал.
В итоге получилась принципиальная схема устройства, но скажу сразу, придётся потрудиться, чтобы схема была компактная и красивая. Зато, имея такую схему и знания в области схемотехники, будет несложно разобраться в принципе работы данного устройства. Хорошо видно, что это устройство для питания нагрузки от двух источников, имеющее индикацию и звуковое оповещение.
А вот и фото готовой платы!
И вот ещё что добавлю, раз уж я упомянул в самом начале про создание 3D-модели. Делается она довольно просто: рисовать её вручную в том же «Компасе» не потребуется. Чтобы это сделать, в программе DipTrace необходимо для каждого компонента выбрать готовую модель из встроенной базы данных. Если модели в базе нет, её можно найти и скачать в интернете в форматах STEP или WRL. Затем подгрузить в программу, нажать кнопку 3D-просмотр и откроется наша модель.
Получилась вот такая модель. Теперь я могу её выгрузить и отредактировать в любой графической программе: например, в «Компасе».
Таким образом, в процессе работы мы получили и само изделие, и техническую документацию на него, и 3D модель. Надо отметить, что в приведённом примере я рассказал о довольно простом устройстве. Казалось бы, зачем тратить на него время и силы? Однако постоянно приходящие новости о проблемах с платежами и логистикой вынуждают создавать своеобразный «запас технологической прочности», чтобы избежать ситуации, описанной в старинном английском стихотворении:
For want of a nail the shoe was lost,
For want of a shoe the horse was lost,
For want of a horse the rider was lost,
For want of a rider the battle was lost,
For want of a battle the kingdom was lost,
And all for the want of horseshoe nail.
Его когда-то импортозаместил С.Я. Маршак –
Не было гвоздя — подкова пропала,
Не было подковы — лошадь захромала,
Лошадь захромала — командир убит,
Конница разбита — армия бежит,
Враг вступает в город, пленных не щадя,
Оттого, что в кузнице не было гвоздя.