Готовый модуль стал точкой риска для всего продукта
Компания проектирует приборы управления освещением для коммерческих и промышленных применений. В одном из решений использовался готовый модуль-преобразователь между шиной DALI и интерфейсом RS-485 — он связывал светильники и датчики с системой управления верхнего уровня.
Стабильно закупать этот модуль стало сложно, а его дальнейшая доступность оставалась неопределённой. Для компании, которая выпускает собственное оборудование, зависимость от одного закрытого импортного модуля означала риск для всей линейки.
Не скопировать плату, а восстановить и заново спроектировать систему
Исходной схемы, прошивки и описания внутреннего протокола у команды не было. Задачу нельзя было решить заменой пары компонентов — требовалось понять устройство как систему и создать собственную платформу, которую заказчик сможет производить, развивать и встраивать в свои продукты.
Собрали стенд и наблюдали устройство с двух сторон
Работа началась не с новой платы, а с исследования исходной системы в реальных условиях. Оригинальный модуль подключили к системе на базе Niagara Framework, собрали DALI-линию с источниками освещения и датчиками, а анализаторы установили одновременно на шину DALI и на интерфейс RS-485.
Через систему верхнего уровня последовательно вызывали команды — включение, выключение, изменение яркости, запросы состояния — и параллельно фиксировали, что модуль принял по RS-485 и какую команду сформировал в DALI. Так же исследовали обратный путь: ответ устройства и его преобразование обратно в RS-485.
Восстановили логику закрытого обмена экспериментально
Внутренний формат обмена не был документирован — его восстанавливали серией контролируемых экспериментов. В каждом меняли ровно один параметр — адрес, код команды, значение яркости, тип запроса — и сравнивали записанные пакеты на обеих сторонах.
Сопоставление показало структуру команд, назначение полей, способ адресации, формат ответов и — главное — соответствие между командой RS-485 и командой DALI, которую модуль из неё делал.
Схема соответствия пакетов (обезличенная): каждому пакету RS-485 сопоставлена команда DALI. Реальные значения протокола не публикуются.
Разобрали устройство и восстановили его электрическую архитектуру
Параллельно исходный модуль разобрали. По элементной базе и трассировке платы восстановили принципиальную электрическую схему: цепи питания, физический интерфейс DALI, интерфейс RS-485, подключение микроконтроллера, защитные и сервисные узлы.
Это позволило понять не только программное поведение модуля, но и физический принцип его работы — и увидеть, какие решения исходной схемы можно использовать, а какие ограничены устаревшим 8-битным контроллером.
Перешли с 8-битного контроллера на STM32F103
Устаревшую архитектуру решили не повторять буквально. Основой нового устройства стал 32-битный STM32F103 — он дал ресурс для собственной реализации протоколов, диагностики, доработок и последующего перехода к DALI-2.
Сначала макет, затем собственная плата под новый корпус
На основе восстановленных принципов разработали собственную электронную схему — не копию исходной: отдельные узлы переработали и дополнили с учётом нового микроконтроллера, выбранного корпуса и требований к производству.
Сначала собрали макет и проверили на нём работу интерфейсов и базовую логику прошивки. Затем разработали печатную плату, адаптировали под корпус, изготовили несколько опытных экземпляров и выполнили аппаратную отладку.
- 1Исходный модуль
- 2Разобранное устройство
- 3Восстановленная схема
- 4Макет
- 5Первая своя плата
- 6Плата в корпусе
- 7Финальный DALI-2-модуль

С нуля написали встроенное ПО для DALI и RS-485
Прошивка состояла из двух контуров. Один работал с шиной DALI: формирование команд, тайминги, приём и разбор ответов, обработка состояний устройств. Второй — с RS-485: приём команд системы верхнего уровня, разбор пакетов, преобразование в действие DALI и формирование ответа.
принять команду по RS-485 → интерпретировать → выполнить действие на DALI → получить результат → преобразовать в ответ RS-485.
Схема архитектуры прошивки, а не реконструкция исходного кода: прошивка исходного модуля не анализировалась.
Проверили устройство на реальном оборудовании
Собранные платы испытывали на стенде с источниками освещения, датчиками и системой управления — проверяли всю цепочку передачи команд и получения состояний.
Развили первую версию до поддержки DALI-2
Первая версия воспроизводила функции исходного DALI-1-модуля. Затем заказчику потребовался DALI-2 — прошивку расширили, дополнили реализацию протокола, адаптировали обмен по RS-485.
Здесь и проявилось раннее архитектурное решение: запас STM32F103 позволил развить устройство программно, без разработки новой платы с нуля. Если бы 8-битный контроллер просто скопировали, модернизация была бы существенно сложнее. Поддержка DALI-2 реализована в необходимом для проекта объёме.
Из зависимого компонента — в собственную технологическую платформу
Заказчик получил не временную замену недоступного компонента, а собственное устройство, архитектуру которого можно контролировать, производить, изменять и развивать — без привязки к закрытой архитектуре исходного модуля.
Для интеграции устройства с программной платформой заказчика позднее был разработан отдельный Java-модуль — это самостоятельная программная история.