- PVSM.RU - https://www.pvsm.ru -
Всем привет!
Сегодня мы расскажем про совершенно новую версию нашего контроллера для автоматизации, умного дома и всего такого. Ниже — подробный технический обзор устройства.

Например, в «умном здании» контроллер может управлять освещением и климатикой, снимать показания с датчиков климата и охранных датчиков. Для этого контроллер поддерживает разные внешние устройства, выполняет правила и сценарии, хранит и красиво отображает данные.
Контроллер работает под управлением Linux, имеет множество встроенных проводных и беспроводных интерфейсов для связи с внешними устройствами и внешним миром.
Контроллер модульный — сбоку пристыковываются модули ввода-вывода (реле, входы для сухих контактов), внутрь вставляются модули расширения — дополнительные порты RS-485, RS-232 и т. д.
Естественно, всё это industrial-grade: корпус на DIN-рейку, большой диапазон входного питания, широкий температурный диапазон, надёжная память, защита всех портов и т. д.
Времена нынче тяжелые: чтобы помигать светодиодом, без гигагерца тактовой частоты часто не обойтись. Если серьёзно, то производительности нашего предыдущего Wiren Board 5 с ARM9 хватало практически для всех задач, но только с нашим ПО, написанным на C++ и Go.
Мы хотели дать пользователям больше гибкости — чтобы без проблем можно было использовать требовательные к памяти и процессору приложения.
Главное изменение в Wiren Board 6 — новый процессор NXP i.MX 6ULL [1] с одним ядром Cortex A7 на частоте 800 МГц и 512 Мбайт оперативной памяти DDR3 (в WB5 был Freescale i.MX28 [2] 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 года.

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

Плюсы такой схемы:
— основное потребление в контроллере идет по линии 5В. КПД при большой нагрузке (много боковых модулей, внешние датчики и т.д.) получается выше;
— если внутрь контроллера установить наш модуль резервного питания, то при отсутствии внешнего напряжения на клеммник Vout подается 11 вольт. Это позволяет работать нескольким подключенным по RS-485 устройствам;
— выход можно программно включать и выключать, что полезно, чтобы удалённо перезагружать по питанию подключенную периферию разных производителей.
Модули ввода-вывода (это модули с дополнительными входами-выходами, подключающиеся к контроллеру сбоку) оставили такими же как раньше, а вот модули расширения решили переделать.

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

Сами модули расширения сделали с ключом — выступающая часть платы вставляется в прорезь в плате контроллера. Это добавляет жесткости соединению — платки не болтаются в разъеме, и вставить неправильно невозможно.
В Wiren Board 6 мы добавили криптопроцессор. Это специальный чип, который хранит в себе пользовательские приватные ключи шифрования и использует их, чтобы делать криптографическую цифровую подпись данных.
Если просто, то это аналог смарт-карт или USB-свистков, которые выдают банки и госорганы для подтверждения личности пользователя.
Раньше для подключения контроллеров, допустим, к VPN-серверу нужно было использовать общий логин и пароль (небезопасно) или выдавать каждому контроллеру отдельные реквизиты (неудобно). Кроме сложностей с управлением реквизитами, оба решения потенциально небезопасны: и реквизиты, и файл сертификата при желании можно было скопировать с одного контроллера на другой и получить доступ к системе.
С криптопроцессором всё сильно упрощается: на сервере нужно только прописать список серийных номеров (common name) разрешённых контроллеров. Сервер при этом проверяет криптографическую подпись сертификата контроллера, которую невозможно подделать и скопировать.
Мы реализовали поддержку крипточипа в стандартной системной библиотеке OpenSSL, поэтому почти любое стандартное ПО, использующее SSL, TLS или HTTPS, сможет работать с защищёнными аппаратными ключами.
Сейчас мы работаем с партнёрами — поставщиками систем верхнего уровня над тем, чтобы Wiren Board подключался к этим системам без паролей и предварительной настройки. Поддержка также запланирована для IoT-платформ ведущих вендоров: Amazon, Google и прочих.
В целом, обновления ПО Wiren Board выходят одновременно для всех поддерживаемых версий и ревизий контроллеров.
Однако к выходу Wiren Board 6 мы приурочили несколько важных изменений в софте.
Новые контроллеры поставляются с последней стабильной версией Debian — Debian Stretch. Процесс перехода с Debian Wheezy оказался долгим и болезненным, в первую очередь, из-за использования systemd вместо sysvinit в новых Debian.
Зато теперь наши пользователи получают современный дистрибутив с относительно свежими версиями стороннего ПО. Более того, дистрибутив и сам WB6 совместимы с пакетами для Raspbian.
Предыдущие версии контроллеров можно было обновлять через пакетный менеджер APT, или перезаписывать целиком всю прошивку через веб-интерфейс. Если неосторожные действия пользователя привели к неработоспособности системы, то полное восстановление заводской прошивки выполнялось через USB-порт с использованием компьютера или виртуалки с Linux и специальной программы mxsldr.
В Wiren Board 6 мы реализовали ещё и обновление с помощью загрузчика. Для восстановления прошивки достаточно вставить в USB-порт контроллера флешку с файлом новой прошивки и нажать на кнопку обновления.
Похожим образом можно сбросить все настройки контроллера на заводские.
Нужно больше технической информации? Здесь можно найти полные характеристики [3].
Есть другие вопросы по устройству и его применениям? Ждём вас на нашем сайте https://wirenboard.com/ [4] и в гостях в нашем офисе.
Хотите попробовать новый контроллер в работе? Купить контроллер в розницу можно прямо у нас на сайте [5]. Мы отправляем оборудование курьером через 1-2 дня после заказа.
Автор: Лесничий Яков
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/avtomatizatsiya/283345
Ссылки в тексте:
[1] NXP i.MX 6ULL: https://www.nxp.com/products/processors-and-microcontrollers/applications-processors/i.mx-applications-processors/i.mx-6-processors/i.mx-6ull-single-core-processor-with-arm-cortex-a7-core:i.MX6ULL
[2] Freescale i.MX28: http://www.freescale.com/products/arm-processors/i.mx-applications-processors-based-on-arm-cores/i.mx28-processors/multimedia-applications-processors-dual-ethernet-dual-can-lcd-touch-screen-arm9-core:i.MX287
[3] полные характеристики: https://contactless.ru/wiki/index.php/Wiren_Board_6
[4] https://wirenboard.com/: https://wirenboard.com/ru/
[5] у нас на сайте: https://wirenboard.com/ru/product/wiren-board-6/
[6] Источник: https://habr.com/post/414411/?utm_source=habrahabr&utm_medium=rss&utm_campaign=414411
Нажмите здесь для печати.