Привет, Хабр! Меня зовут Андрей, и я работаю разработчиком программно-аппаратных решений в компании FPLUS, которая занимается выпуском электроники для корпоративного и государственного сектора. По сути моя статья дает старт публикациям в недавно запущенном блоге FPLUS, где я и мои коллеги будем делиться опытом о своей работе и новых проектах, создающихся в партнёрстве с НТЦ «Модуль» и другими игроками на рынке. В этом первом материале я решил поговорить об импортозамещении – явлении, ставшем в последние годы довольно актуальным, — и расскажу о собственных наработках в этом направлении.
Реалии нашего времени требуют активно использовать в производстве опыт, полученный при изучении импортных узлов и деталей – то, что называют обратным проектированием или реверс-инжинирингом. Почему-то эти понятия считаются чем-то модным и суперсовременным, однако такой подход к решению внезапно и остро встающих технических вопросов применяется уже довольно давно. Например, в 60-х годах прошлого века на основе швейцарского оригинала компании Gebrüder Sulzer Aktiengesellschaft советскими специалистами был создан бесчелночный ткацкий станок СТБ, а в самом начале 90-х годов в массовом порядке стихийно импортозамещались детали оборудования, ввезённого из стран, ранее входивших в Совет экономической взаимопомощи (СЭВ).
Но…, от лирики к делу: в этой публикации я поделюсь собственным опытом создания аналога имеющегося у меня образца печатной платы с использованием реверс-инжиниринга. Я покажу на примерах, как разобраться в работе устройства, составить его принципиальную электрическую схему и воспроизвести в материале. Для примера я использую разветвитель питания материнской платы серверного компьютера.
Запланированная работа разбивается на несколько этапов:
предварительное фотографирование платы и проведение замеров
демонтаж компонентов и их идентификация
снятие паяльной маски вместе с информационными обозначениями элементов схемы
сканирование печатной платы и последующее редактирование полученного изображения
перенос полученного изображения в редактор плат и его отрисовка
составление принципиальной электрической схемы
создание 3D-модели (при необходимости).
Этап 1: Фотографирование и предварительные замеры платы
Фотографии должны быть высокого качества. Для этого желательно использовать фотокамеру с разрешением матрицы не менее 15 Мпикс и объектив с минимальными оптическими искажениями. Для начала снимаем плату с обеих сторон при ярком и равномерном освещении. Затем делаем дополнительные фотографии под разными углами с обязательной фокусировкой на разных компонентах. Дополнительные фото в дальнейшем помогут нам распознать маркировку всех элементов. Затем замеряем и записываем габаритные размеры платы и её толщину. После этого в любом графическом редакторе обрабатываем фото платы и делаем его чёрно-белую распечатку, увеличив масштаб.
Этап 2: Демонтаж компонентов
Теперь можно снимать с платы электронные компоненты. Зачастую многие обозначения элементов на плате бывают закрыты разъёмами или другими компонентами. Чтобы увидеть полную картину, необходимо снять с платы все детали. Порядок демонтажа будет подробно описан ниже, но перед началом работы проверим, все ли необходимые инструменты под рукой! Нам понадобятся:
технический фен с температурой до 320°С
паяльная станция с нижним подогревом (термостол) с температурой до 150°С
два паяльника с тонким жалом
пинцет
паяльный флюс
припой ПОС-62 тонкий
оплётка для снятия припоя
антистатический коврик и антистатический браслет
мультиметр и LC-метр
Итак, всё на месте, и мы приступаем к работе. Включаем станцию нижнего подогрева и устанавливаем температуру стола 150-155°С, кладём на него плату и прогреваем 10 минут. За это время ее компоненты адаптируются к высокой температуре и при дальнейшем нагревании феном не получат резкий тепловой удар.
Мы должны понимать, что испортить компоненты в процессе работы мы не имеем права, так как в нашем распоряжении может быть единственный экземпляр данной платы, к тому же в дальнейшем может возникнуть необходимость вернуть компонент на место.
Кстати, если на подогреваемой стороне платы смонтированы какие-либо элементы, то нужно что-то подложить, чтобы исключить их непосредственный контакт с горячей поверхностью. Для этого я обычно кладу плату на стопку металлических шайб или закрепляю в ее отверстиях металлические «ножки». К счастью, на нашей плате детали смонтированы с одной стороны, поэтому я просто кладу плату на нижнюю сторону компонентами вверх.
Устанавливаем на нашем фене температуру 300°С, направляем горячий воздух на выбранный для демонтажа компонент и аккуратно снимаем его при помощи пинцета. Обычное время нагрева компонента – до 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.
Его когда-то импортозаместил С.Я. Маршак –
Не было гвоздя – подкова пропала,
Не было подковы – лошадь захромала,
Лошадь захромала – командир убит,
Конница разбита – армия бежит,
Враг вступает в город, пленных не щадя,
Оттого, что в кузнице не было гвоздя.
Комментарии (24)
vilgeforce
21.11.2024 15:42А можно было бы рентген сделать...
homeles
21.11.2024 15:42Можно было бы.... Только на моей практике была пара-тройка случаев, когда ребята из центра аттестации по ИБ покупали новые железки взамен (сервер был и пара роутеров-коммутаторов) после просветки на рентгене аттестуемых железок....
Hlad
21.11.2024 15:42Фигня получится. На ДПП-шке ещё куда ни шло, а разобраться, что и куда идёт в шестислойной плате, на рентгене вообще не вариант, проверено.
Qoragar
21.11.2024 15:42Работа, несомненно, достойна уважения.
Но грустно как-то — тупо "реверс" вместо собственного, как ни крути. А нужно бы действительно своё. Или вся отрасль ушла в только "реверс", никаких других новостей нет?..
vesowoma
21.11.2024 15:42В СССР в 80-ые (а наверное и раньше) этим занимались целые отделы в П/Я. Платы конечно были в разы сложнее, и практически все вручную. Долго и тщательно, в несколько параллельных потоков для выявления ошибок. У товарища родители работали в таком отделе, много интересного рассказано было...
kenomimi
21.11.2024 15:42"Своё" должно быть на переднем крае науки. Колесо изобретать не нужно заново, оно уже изобретено, бери и пользуйся. А текущая маразматичная система патентов - выкидыш торговой войны, когда лидер отрасли закрывает путь конкурентам нерыночными методами и покупкой законов (лоббированием)...
Китай именно копировал поначалу, потом накопилась экспертиза, развилось инженерное сообщество - начал успешно лепить своё. Сходу делать своё - пустая трата денег и сил, поскольку выйдет все равно хуже из-за отсутствия опыта.
victor_1212
21.11.2024 15:42интересно, как Вы себе представляете жизнь без патентов, предположим Вы изобрели что-то типа транзистора потратив пару лет, к Вам приезжает делегация из Китая, просит показать документацию и производство, что Вы ответите?
kenomimi
21.11.2024 15:42предположим Вы изобрели что-то типа транзистора потратив пару лет, к Вам приезжает делегация из Китая, просит показать документацию и производство, что Вы ответите?
Стандартные торги, мы вам эту технологию, вы нам другую. Или деньгами. Вы можете внедрить шпионов, сами разреверсить технологии, понять, как это продать - но это будет едва ли дешевле, чем купить у автора готовенькое. Просто автор уже не сможет сказать от фонаря "я хочу миллиард золотом в секунду и твою душу" или "не продам, потому что ты негр", его скотские желания уймёт свободный рыночек.
victor_1212
21.11.2024 15:42торги нормально когда простой обмен, типа товар - товар, заплатили и разбежались, но предположим за "транзистор" Вашу цену платить и не собираются, а посмотрят, и дадут немного песо ночному сторожу или шоферу, чтобы принес образец, дальше у Вас нет защиты, т.е. вообще никакой, через пару месяцев узнаете, что они уже рекламируют Ваше изобретение, что будете делать?
Qoragar
21.11.2024 15:42"Своё" должно быть на переднем крае науки.
Ну так и надо делать своё. В чём проблема?
Копирование чужого (особенно ещё и нелицензированное) — никак не является "достижением науки". Достижение копировальщиков — но никак не науки. Пустой пшик.
kenomimi
21.11.2024 15:42Достижение копировальщиков - это старт инженерного сообщества, появление культуры производства и построение своих процессов. А дальше тупые копипастеры постепенно вымирают, уступая место нормальным производствам.
Нет, по одельным направлениям копирование никогда не умрет - это, в основном, направления продажи понтов - лакшери бренды. Но тут их проблемы, понты для общества в целом вредны...
Newbilius
21.11.2024 15:42Это в идеале. В реальности "нормальные" могут и не появиться, так и останутся только "копировальщики" - иллюстрации в истории найти не сложно.
ABRogov
21.11.2024 15:42Как раз изначально Китай плотно сидел на контрактах, и до сих пор сидит на абсолютно легальных лицензионных производствах. А все эта мелочевка уже потом пошла как побочный эффект.
Дело даже не в том что реверс, дело в том, что это абсолютно вторичный род деятельности. А с первичным созиданием в СССР все было очень туго. По сути никак. Даже утюги и пылесосы были цельно тянутые с филипсов и прочих грюндиков.
"Кто сдает продукт вторичный, тот питается отлично!".
QwertyOFF
21.11.2024 15:42Свое в стране делается, но опять же насколько глубоко это должно быть "свое"? Схемы, топологию, софт много кто вполне успешно делает. Компоненты, увы, импортные, и тут с моей точки зрения все очень плохо и в ближайшее время ничего не изменится. Да, на оборонку что-то делают, но для гражданских целей там и цены совсем непригодные, и в целом нежелание производителей работать в этом направлении.
Общался на какой-то выставке с производителем отечественных смд конденсаторов, цены были на два порядка выше хороших импортных, сроки поставки полгода-год (склада с запасом нет). И я даже не удивлюсь, если на самом деле они покупают импорт и лепят на него свой шильдик по канонам нашего "импортозамещения".
Грустно, но много таких импортозаместителей, говорящих что их условный трактор на 98% сделан из отечественных деталей, но на самом деле там импортный двигатель, импортная коробка и 98 отечественных болтов.
MinimumLaw
21.11.2024 15:42Свое много кто делает. В самых разных отраслях. Больше того - своего на порядки больше, и именно реверс исключение. Просто про "свое" писать или грустно, или нельзя. Вот тут цикл был про процессорный модуль на RK3568. Чем не свое?
А реверс платы - да, отдельный навык. И как многие навыки в реальном производстве радиоэлектроники по сути уникальный. Нет специалистов, нет спроса. И неизвестно что первично, а что вторично. Но уж если понадобилось... То хочешь не хочешь а решать придется. Что до здесь, то полагаю это скорее освоение нового навыка, чем практическая необходимость. И с этой позиции все хорошо и правильно.
AxGxP
21.11.2024 15:42Почему не смыть маску раствором гидроксида натрия, или диметилсульфоксидом? Это безопаснее получается для дорожек, чем вручную наждачной тереть. В любом случае это все достаточно просто получается, можно даже не смывать, а поиграться со светом при фотографировании. А как быть если плата многослойная? Можно рентгеном просветить? Какой рентген для этих целей нужен, подозреваю, что медицинский слишком мягкий и медные полигоны не просветит. Ну или вот так стирать каждый слой, и фотографировать. Но тут думаю лучше каким-то фрезерным станком это делать. Так-же видел видео как плату лазером "травили", но мне как-то с трудом в это верится, как так медь испаряется, а текстолит при этом не обугливается, думаю это какой-то обман. Или может быть лазер, с подходящим для этого излучением?
alexhott
21.11.2024 15:42Плата то простая, куда приятнее было бы сделать самому.
Характеристики описать по требуемым входным и выходным напряжениям, токам, пульсациям. Изучить типовые варианты реализации, доступные компоненты и их даташиты, нарисовать схему, погонять ее в эмуляторе, почитать книжку по разводке плат, нарисовать плату изготовить, испытать, отладить.
В итоге сами бы знали как работает и в случае чего могли бы быстро подправить, полученный опыт позволил бы перейти на уровень выше и разрабатывать более сложные вещи. А так построите сервер на иной комплектухе чем та на которую рассчитана эта плата и не заработает и никто не знает даже откуда начинать искать проблему.ЗЫ: а так вообще статья - признание в преступлении как-бы
poulch
21.11.2024 15:42построение функционального аналога по анализу реакций черного ящика гораздо интересней и полезней... у меня как-то был опыт с dll библиотекой визуализации. есть api и есть пример. и вот пишешь аналог с таким api, а ньюансы реализации разгадываешь по скорости отрисовки, реакции на ресайз окна итп...
Duxlab
В тексте градусы поехали все. Например «150-1550С» вместо 150° А потому что не надо использовать вместо значка градуса ноль в режиме верхнего индекса. Берите что-то типа «раскладки Бирмана» для исправления (градус там на Alt+D), в целом достаточно по шагам пройтись по тексту с автозаменой 0C на °С
Дочитал, любопытно, спасибо.
Вопрос по 3д-модели. Она получается разборная? В смысле один компонент == один объект? Или всё в одну свалку без группировки? Интересует преобразование для визуала в полигональную модель.
AuthorsFplus Автор
Спасибо, что заменили, что поехали градусы( Поправили! По 3D-модели вернёмся в скором времени!
QwertyOFF
Про DipTrace рассуждать не берусь, но в нормальных средах выгруженная модель разбирается на компоненты.