Wiren Board 6: снова на Хабре с новой версией контроллера для автоматизации

Всем привет!

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

lngt35xgm_uycfbrizl8votbmki.jpeg

Кратко о контроллерах Wiren Board
Контроллер Wiren Board — устройство, которое работает как центральный контроллер в системе автоматизации или мониторинга.
Например, в «умном здании» контроллер может управлять освещением и климатикой, снимать показания с датчиков климата и охранных датчиков. Для этого контроллер поддерживает разные внешние устройства, выполняет правила и сценарии, хранит и красиво отображает данные.

Контроллер работает под управлением Linux, имеет множество встроенных проводных и беспроводных интерфейсов для связи с внешними устройствами и внешним миром.
Контроллер модульный — сбоку пристыковываются модули ввода-вывода (реле, входы для сухих контактов), внутрь вставляются модули расширения — дополнительные порты RS-485, RS-232 и т. д.
Естественно, всё это industrial-grade: корпус на DIN-рейку, большой диапазон входного питания, широкий температурный диапазон, надёжная память, защита всех портов и т. д.

Зачем мы выпустили новую версию


Времена нынче тяжелые: чтобы помигать светодиодом, без гигагерца тактовой частоты часто не обойтись. Если серьёзно, то производительности нашего предыдущего Wiren Board 5 с ARM9 хватало практически для всех задач, но только с нашим ПО, написанным на C++ и Go.

Мы хотели дать пользователям больше гибкости — чтобы без проблем можно было использовать требовательные к памяти и процессору приложения.

Главное изменение в Wiren Board 6 — новый процессор NXP i.MX 6ULL с одним ядром Cortex A7 на частоте 800 МГц и 512 Мбайт оперативной памяти DDR3 (в WB5 был Freescale i.MX28 454 МГц ARM9 и DDR2 128 Мбайт).

Контроллер стал быстрее в несколько раз: кроме собственно увеличения тактовой частоты, играет роль и использование более производительной (в пересчёте на МГц) архитектуры ядра. В i.MX 6ULL есть аппаратный FPU — в некоторых приложениях, сохраняющих и обрабатывающих данные, это дало существенный прирост в производительности.

Новый процессор позволил использовать свежие версии Node.js (архитектура предыдущего процессора не поддерживалась в движке V8), использовать Node-RED и устанавливать готовое ПО для Raspberry Pi без перекомпиляции.

В целом, с точки зрения разработки и выбора ПО Wiren Board 6 перешёл из категории «встраиваемое железо» в категорию «обычный компьютер с Linux, но со множеством интерфейсов».

Пара слов про то, почему не 8xCortex A53@2.2GHz мы выбрали процессор медленнее, чем в новых ТВ-приставках или в свежей Raspberry Pi. i.MX 6ULL — это современный (2017 год) процессор для индустриальных встраиваемых систем. Он имеет очень низкое энергопотребление — и поэтому почти не греется. Но при этом допустимая рабочая температура ядра составляет целых 105 °C. Для нас это важно, потому что Wiren Board обычно стоят в закрытых шкафах без всякого охлаждения. На холоде контроллеры тоже работают, минимальная температура всех компонентов — минус 40 °C.
А ещё этот процессор имеет отличную поддержку в mainline ядре Linux, и производитель гарантирует его производство минимум до 2026 года.

j5rdtpkodksucvdkxpvi-wyb5te.jpeg

Другие изменения в контроллере


У контроллеров Wiren Board 5 было несколько аппаратных ревизий, по которым можно проследить эволюцию устройства. Отличий последней ревизии от первой довольно много:

  • добавлен клеммник Vout — выход напряжения питания. Удобно для подключения периферийных устройств по RS-485 — можно взять линии данных и питания от единого устройства;
  • отладочная консоль выведена на интерфейс Micro-USB вместо UART;
  • добавлен второй порт Ethernet. Используется как резервный канал, для подключения к изолированным сетям и для подключения других контроллеров;
  • изменена схема питания. Использовали синхронный step down (выше КПД — меньше нагрев платы), диапазон входного питания до 40 вольт, избавились от электролитических конденсаторов (теперь только керамические) — это увеличивает срок службы;
  • добавлены джамперы для включения терминирующих резисторов на линиях RS-485/CAN;
  • убран интерфейс цифрового звука S/PDIF — не пользовался популярностью;
  • убран порт для ИК-приёмопередатчика — использовать оказалось не очень удобно, поэтому выпустили отдельное устройство WB-MIR с RS-485;
  • ограниченная поддержка 3G модема: его можно устанавливать вместо модуля Wi-Fi.


В Wiren Board 6 добавились еще изменения:

  • добавили поддержку двух SIM-карт. Страна большая, качество связи не всегда на высоте, а теперь сразу есть резерв;
  • реализовали полноценную поддержку 3G модуля и даже NB-IoT (про это будет отдельная статья). 3G честно выдаёт 5 Мбит/с. SSH не тормозит, в целом более стабильное соединение, можно забирать любое количество параметров с удалённых объектов;
  • температурный датчик на плату контроллера. Недорого, а людям полезно посмотреть, в каких условиях работает контроллер. Ещё один датчик измеряет температуру ядра процессора, чтобы контроллер автоматически сбрасывал частоту при перегреве;
  • второй порт USB. Потому что можем.


Внутренние изменения:

  1. Переделали схему питания (опять? сколько можно, Карл?). Теперь выглядит так:
    ipm8l7h2o5qq4yvf8defl-48u9i.png
    Плюсы такой схемы:
    — основное потребление в контроллере идет по линии 5В. КПД при большой нагрузке (много боковых модулей, внешние датчики и т.д.) получается выше;
    — если внутрь контроллера установить наш модуль резервного питания, то при отсутствии внешнего напряжения на клеммник Vout подается 11 вольт. Это позволяет работать нескольким подключенным по RS-485 устройствам;
    — выход можно программно включать и выключать, что полезно, чтобы удалённо перезагружать по питанию подключенную периферию разных производителей.
  2. Программно отключаемая растяжка линий RS-485. Слабая резисторная «растяжка» линий нужна, чтобы задавать на шине фиксированный логический уровень, когда ни одно устройство не передаёт данные. Отключать «растяжку» (failsafe bias по-умному) нужно, если к шине подключено несколько контроллеров, например, когда Wiren Board работает как Modbus slave.
  3. «Умные» ключи вместо транзисторов на клеммах A1-A4: с защитой от КЗ и перегрева, и ограничением тока.


Модули расширения


Модули ввода-вывода (это модули с дополнительными входами-выходами, подключающиеся к контроллеру сбоку) оставили такими же как раньше, а вот модули расширения решили переделать.
lz7kw54yg51qzsbjygope3t7kkc.png
Распиновка разъема расширения. Слева — как было, справа — как стало.

В WB5 вывели сигналов с запасом — питание, UART, I2C, SPI. За три года придумали только один модуль использующий SPI — модуль SD карты, и для него не требуются внешние клеммники. А I2C достаточно программного на GPIO. Поэтому лишнее убрали, и освободилось место под третий слот для модулей расширения, не требующих внешних клеммников (это GPS, слот microSD, в перспективе разные модули с радио).

dgx8ma82tszftljcaxoeqoyio38.jpeg

Сами модули расширения сделали с ключом — выступающая часть платы вставляется в прорезь в плате контроллера. Это добавляет жесткости соединению — платки не болтаются в разъеме, и вставить неправильно невозможно.

Криптопроцессор


В Wiren Board 6 мы добавили криптопроцессор. Это специальный чип, который хранит в себе пользовательские приватные ключи шифрования и использует их, чтобы делать криптографическую цифровую подпись данных.

Если просто, то это аналог смарт-карт или USB-свистков, которые выдают банки и госорганы для подтверждения личности пользователя.

Зачем нужен криптопроцессор
Криптопроцессор в контроллере используется для его аутентификации в системах мониторинга и управления верхнего уровня.

Раньше для подключения контроллеров, допустим, к VPN-серверу нужно было использовать общий логин и пароль (небезопасно) или выдавать каждому контроллеру отдельные реквизиты (неудобно). Кроме сложностей с управлением реквизитами, оба решения потенциально небезопасны: и реквизиты, и файл сертификата при желании можно было скопировать с одного контроллера на другой и получить доступ к системе.

С криптопроцессором всё сильно упрощается: на сервере нужно только прописать список серийных номеров (common name) разрешённых контроллеров. Сервер при этом проверяет криптографическую подпись сертификата контроллера, которую невозможно подделать и скопировать.

Мы реализовали поддержку крипточипа в стандартной системной библиотеке OpenSSL, поэтому почти любое стандартное ПО, использующее SSL, TLS или HTTPS, сможет работать с защищёнными аппаратными ключами.

Сейчас мы работаем с партнёрами — поставщиками систем верхнего уровня над тем, чтобы Wiren Board подключался к этим системам без паролей и предварительной настройки. Поддержка также запланирована для IoT-платформ ведущих вендоров: Amazon, Google и прочих.

Софт


В целом, обновления ПО Wiren Board выходят одновременно для всех поддерживаемых версий и ревизий контроллеров.
Однако к выходу Wiren Board 6 мы приурочили несколько важных изменений в софте.

Debian 9


Новые контроллеры поставляются с последней стабильной версией Debian — Debian Stretch. Процесс перехода с Debian Wheezy оказался долгим и болезненным, в первую очередь, из-за использования systemd вместо sysvinit в новых Debian.
Зато теперь наши пользователи получают современный дистрибутив с относительно свежими версиями стороннего ПО. Более того, дистрибутив и сам WB6 совместимы с пакетами для Raspbian.

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


Предыдущие версии контроллеров можно было обновлять через пакетный менеджер APT, или перезаписывать целиком всю прошивку через веб-интерфейс. Если неосторожные действия пользователя привели к неработоспособности системы, то полное восстановление заводской прошивки выполнялось через USB-порт с использованием компьютера или виртуалки с Linux и специальной программы mxsldr.
В Wiren Board 6 мы реализовали ещё и обновление с помощью загрузчика. Для восстановления прошивки достаточно вставить в USB-порт контроллера флешку с файлом новой прошивки и нажать на кнопку обновления.
Похожим образом можно сбросить все настройки контроллера на заводские.

Call To Action


Нужно больше технической информации? Здесь можно найти полные характеристики.

Есть другие вопросы по устройству и его применениям? Ждём вас на нашем сайте https://wirenboard.com/ и в гостях в нашем офисе.

Хотите попробовать новый контроллер в работе? Купить контроллер в розницу можно прямо у нас на сайте. Мы отправляем оборудование курьером через 1–2 дня после заказа.

© Habrahabr.ru