Платы для Matter-шлюза: что купить и как проверить оборудование

Выбор Linux-платы, Silicon Labs Mesh NCP, устройств Telink и USB–UART: управление потоком, совместимость, синхронизация состояния и восстановление.

Список покупок для шлюза быстро разрастается: Linux-плата, Bluetooth-комплект, отладчик, USB–UART, сниффер, блоки питания, кабели и переходники. Всё кажется полезным.

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

Наш проект соединяет Bluetooth Mesh с Matter. Linux-хост отвечает за Matter и отображение устройств, модуль Silicon Labs выполняет стек Bluetooth Mesh, а светильники и выключатели используют решения Telink. Прототип на ПК уже подключается к Apple Home, и образ Linux собран. Запись на целевую плату, реальная совместимость Mesh и устойчивость всей системы ещё требуют проверки.

Поэтому главный вопрос при покупке такой: какую конкретную неизвестность позволит устранить эта вещь?

Сначала нарисовать цепочку связи

Команда из Apple Home должна пройти следующий путь:

Apple Home
    ↓ Matter по локальной сети
Linux-хост: устройства, команды, синхронизация состояния
    ↓ UART / BGAPI
Модуль Silicon Labs: Bluetooth Mesh NCP
    ↓ Bluetooth Mesh
Устройство Telink: светильник или выключатель

Если состояние меняется физической кнопкой, сообщение должно вернуться в обратную сторону и обновить Apple Home.

В нашей схеме Matter использует Ethernet или Wi-Fi. Нижняя сеть — Bluetooth Mesh. Bluetooth Mesh и Thread являются разными протоколами, хотя оба поддерживают ячеистые сети.

Само использование Matter здесь не требует покупки Thread-платы и пограничного маршрутизатора Thread. Они понадобятся для соответствующих задач с устройствами Matter over Thread. Контроллеры Apple Home, домашние центры и версии ПО нужно подбирать по актуальным требованиям Apple.

Встроенный Bluetooth Linux-платы также не заменяет наш NCP автоматически: у него обычно другая организация драйверов и ПО хоста. Мы выполняем Mesh на отдельном модуле и управляем им через BGAPI. Замена этой части требует оценки стека и программного интерфейса.

Первая покупка — для проверки Bluetooth

Прототип на ПК и телефоне позволил заранее заняться Matter. Теперь полезнее всего проверить, может ли модуль Silicon Labs управлять устройствами Telink так, как нам нужно.

Хостом пока останется имеющийся ПК. Подключим комплект через поддерживаемый последовательный интерфейс или подходящий USB–UART. Сначала проверим включение устройств в сеть, управление и сообщения состояния, затем перенесём хост на Linux-плату. Причины неисправностей будет проще локализовать.

Что купить На что смотреть Что проверяем
Комплект Silicon Labs Точный чип и номер платы, пример Mesh NCP, программирование и UART Совместимость SDK, прошивки и оборудования
Плату Telink или управляемый образец светильника Перепрошивка, известные Mesh-модели, сброс к заводским настройкам Включение в сеть, управление, состояние и совместимость
Программатор и отладчик Комплектность и поддержка целевой платы Прошивку, восстановление и отладку
USB-кабель данных, питание, провода Передачу данных, питание, разъёмы и уровни сигналов Качество питания и соединений
USB–UART при необходимости Выводы управления потоком и логические уровни Связь хоста с NCP

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

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

Сопоставить плату Silicon Labs и прошивку

По запросу «плата xG24» находятся комплекты с разными чипами, интерфейсами и принадлежностями. Записи «модуль BG24» в проекте недостаточно для заказа.

Мы планируем семейство BGM240. Нужно сопоставить целевой модуль, чип оценочной платы, версию SDK и пример проекта. Число «24» в названии не означает совместимость с одним бинарным образом.

Я уточнил бы пять пунктов:

  1. Можно ли создать нужный NCP-проект для этой конкретной платы в выбранном Bluetooth Mesh SDK?
  2. Есть ли примеры или документированные настройки для provisioner и необходимых клиентских моделей?
  3. Хватает ли Flash, RAM и возможностей конфигурации компонентов?
  4. Входит ли отладчик или основная плата в комплект? Что ещё понадобится при покупке отдельной радиоплаты?
  5. Доступны ли внешнему хосту UART, управление потоком, reset и отладочные выводы?

Рабочий Bluetooth-пример подтверждает поддержку именно этого примера. Нам нужен Bluetooth Mesh NCP, поэтому у поставщика стоит запросить точное сочетание платы и проекта.

Приложение NCP и загрузчик — отдельные компоненты. Успешная запись отладчиком проверяет этот путь программирования. Если Linux-хост впоследствии будет обновлять модуль через UART, надо проверить загрузчик, выводы, вход в режим обновления и совместимость прошивок.

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

USB–UART: важно исполнение адаптера

Некоторые платы на FT232 или CP2102 выводят только TX, RX, землю и питание. Поддержка дополнительных сигналов самим чипом бесполезна, если готовая плата не даёт к ним доступа.

Для нашего проекта я выбрал бы адаптер с TX, RX, RTS, CTS и GND, проверив драйвер и нужную скорость. Смотреть нужно на распиновку и схему готового изделия.

RTS/CTS согласует передачу между сторонами. Соединять сигналы следует по направлению и документации обеих плат. Настройки NCP, хоста и физическая проводка должны совпадать: ожидание неподключённого сигнала управления потоком способно остановить связь совсем.

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

Нужно проверить и напряжение. UART может работать с уровнями 1,8 В или 3,3 В. Перемычка «3,3 В / 5 В» на некоторых адаптерах меняет только выход питания, оставляя уровни TX/RX прежними.

До покупки выясните логические уровни, доступность выводов потока и скорости. TTL UART и RS-232 нельзя напрямую смешивать. Если плата питается отдельно, подключение питающего вывода адаптера определяется схемой питания платы.

Linux-плата: SDK, интерфейсы и восстановление

Процессоры мы уже сравнивали в статье о RK3506, RK3562, RK3576 и RDK X5. При покупке важнее условия разработки.

Вариант Назначение Что выяснить
RK3562 Планируемая стандартная платформа шлюза BSP, мультиплексирование UART, поток, Wi-Fi и поставки модулей
RK3506 Более компактная конфигурация после проверки функций 32-битные инструменты, измеренное потребление памяти, хранение и безопасность
RDK X5 Продолжение работы с имеющимся SDK и образом Ревизия платы, совместимый образ, прошивка и интерфейсы
Имеющийся Linux-компьютер Программа хоста и последовательный протокол Совместимость программы и подходящий UART или USB

Все варианты покупать не нужно. RK3562 остаётся планом для стандартной модели, а работу над образом мы начали с X5 SDK. Доступное оборудование позволяет проверить часть системы до окончательного выбора.

От поставщика я хочу четыре вещи.

SDK для самостоятельной сборки: доступ, версия, окружение, инструменты и конфигурация платы. Готового предустановленного образа недостаточно для изменения системы и драйверов.

Реально доступный рабочий UART: большое число UART у SoC не гарантирует выведенные TX/RX/RTS/CTS. Проверяются совместно используемые функции выводов и дерево устройств. Отладочную консоль лучше отделить, чтобы загрузочные сообщения не попадали в поток NCP.

Путь восстановления: интерфейс прошивки, recovery mode, консоль и описание разделов. При неудачной сборке они полезнее дополнительной производительности процессора.

Подходящие сеть и постоянное хранилище: IPv6, локальное обнаружение, драйверы Wi-Fi, сохранение настроек и информации об устройствах. Обнаружению могут мешать маршрутизатор, VLAN, изоляция клиентов и межсетевой экран. Это отдельный вопрос от покупки услуги публичного IPv6.

В предыдущей работе с Buildroot мы обнаружили отключённый по умолчанию IPv6. Успешная загрузка и доступ в интернет ещё не подтверждают готовность Matter-шлюза.

Сниффер и логический анализатор можно купить позже

В плане статьи был nRF52840 Dongle, но в первую обязательную закупку я бы его не включал.

nRF Sniffer for Bluetooth LE помогает наблюдать радиообмен. Поддерживаемые платы, прошивки и способы захвата нужно сверять с версией инструмента. Для Mesh также важны способ переноса сообщений, шифрование, ключи и декодер.

Bluetooth-донгл не делает всё содержимое Mesh автоматически читаемым. Покупка оправданна, когда возник вопрос к радиоканалу и подтверждена поддержка нужного трафика. Такой донгл также не становится автоматически Thread-сниффером или NCP шлюза.

Логический анализатор полезен для UART: наличие передачи, переходы RTS/CTS, байты до и после сбоя. Входные уровни, число каналов и частота выборки должны соответствовать сигналам.

Вначале сохраняем последовательный журнал, ответы, события состояния Mesh и временные отметки. Если останется конкретный вопрос к электрическим сигналам или радиообмену, добавим нужный прибор.

Проверять по одному уровню

Этап Действия Критерий
Комплект разработки Совместимая прошивка, UART, reset, отладчик Устойчивая связь, ожидаемые события загрузки или версия
Минимальная Mesh-сеть Поддерживаемый пример хоста для включения в сеть и настройки Устройство действует и возвращает состояние
Двустороннее состояние Нажатие физической кнопки Хост получает изменение
Собственная программа Команды, ответы, события Добавление, управление, запрос и удаление устройства
Matter-мост Отображение устройства в endpoint Управление из Apple Home и обратные обновления
Linux-интеграция Перенос на плату, автозапуск, сеть, UART После перезапуска правильно восстанавливаются идентичность и данные
Восстановление Отдельный перезапуск хоста, модуля, устройства; отключение сети и питания Понятное состояние при отказе и восстановление управления и синхронизации

Отправленная команда и выполненное действие — разные результаты. Успешная запись в UART означает передачу байтов последовательной подсистеме. Ответ NCP нужно трактовать по тому, какую операцию он подтверждает. Фактическое состояние проверяется по соответствующему Mesh Status, реальному устройству и отображению Matter.

Если Apple Home показывает включённый свет, а лампа не горит, проверка не пройдена. При оптимистическом обновлении интерфейса следует отключить устройство и проверить тайм-ауты, чтобы неверное состояние не оставалось навсегда.

Восстановление после перезагрузки хоста не доказывает возможность замены модуля. Сохранённый список устройств не подтверждает правильность ключей, номеров последовательности и состояния сети. Это отдельные задачи проверки надёжности.

Как разделить заказы

Сначала — комплект Silicon Labs для нужного NCP и одна управляемая плата Telink. Дополняем питание, кабели и средства программирования; на ПК проверяем включение в сеть, модели и состояние.

Затем — целевая Linux-плата и перенос уже работающего хоста. Подтверждаем SDK, полный UART и восстановление. Предпочтителен поставщик, способный поддерживать и будущий серийный модуль.

После этого увеличиваем разнообразие и число устройств, проверяем несколько каналов, яркость, отключения и восстановление. Специализированные приборы приобретаем по выявленным потребностям. Поставщику можно отправить такой запрос:

Мы разрабатываем шлюз с Linux-хостом и Bluetooth Mesh NCP. Нужны точная модель и ревизия платы, совместимые SDK и пример проекта, принадлежности для прошивки и отладки, распиновка и уровни UART, RTS/CTS, reset и отладочных интерфейсов. Для Linux-платы также нужны настройка UART в дереве устройств, инструкции по пересборке системы и восстановительной прошивке.

Чёткие ответы делают плату реальным кандидатом. Хороший набор оборудования позволяет последовательно проверить прошивку, совместимость, обратное состояние и работу после перезапуска. Тогда снижение стоимости и собственная плата будут опираться на результаты.

Если вы работаете с Silicon Labs NCP, Telink или Linux UART, буду рад обсудить опыт.

Источники: Silicon Labs Bluetooth Mesh API, RDK, Luckfox Lyra RK3506, nRF Sniffer for Bluetooth LE.

Чтение и отправка через WeChat

QR-код статьи

Отсканируйте и поделитесь через меню WeChat.