Программируемый беспроводной IIoT-модуль WM2000

Введение
WM2000 - первый программируемый беспроводной IIoT-модуль Tibbo. В устройстве есть интерфейсы Wi-Fi и Bluetooth Low Energy (BLE), которые дали несколько новых возможностей: автоматическое подключение к Wi-Fi (автоассоциация), отладку по беспроводной связи, обновление по воздуху (OTA) и защиту транспортного уровня (TLS).
Аппаратная часть WM2000 включает два высокоскоростных последовательных порта. Кроме того, у модуля есть программные порты I²C/SPI, встроенные флеш-память и EEPROM, часы реального времени и десять линий GPIO, две из которых работают как внешние прерывания. Девять линий можно настроить на выход широтно-импульсной модуляции (PWM).
WM2000 полностью поддерживается средой Tibbo IDE (TIDE) и специальной платформой программирования, которая охватывает все аппаратные возможности модуля.
Два приложения Tibbo BASIC/C
WM2000 - первое устройство Tibbo, способное хранить до двух скомпилированных бинарных файлов Tibbo BASIC/C - «APP0» и «APP1» (в любой момент выполняется только один из них).
Все прежние изделия хранят одно приложение, которое может занять всю флеш-память, не занятую Monitor/Loader (M/L) и TiOS. В WM2000 флеш-памяти как минимум в четыре раза больше, чем у любого предшественника, поэтому второе приложение - APP1 - можно хранить в пространстве, оставшемся после M/L, TiOS и APP0.
Блок конфигурации устройства Device Configuration Block (DCB), хранящийся во флеш-памяти, позволяет определить, какое из двух приложений запускается при включении питания или перезагрузке WM2000 (есть и принудительный запуск APP0 через линию MD). Для работы с новой консолью BLE, дающей доступ к DCB, Tibbo подготовила удобное веб-приложение BLE Terminal.
Приложения Tibbo BASIC/C могут работать с DCB через предоставленный API (новые свойства и методы нескольких объектов). В частности, APP0 и APP1 могут читать и записывать данные DCB, а также переключаться друг на друга.
В Tibbo считают, что APP0 будет играть роль «вторичного Monitor/Loader», а APP1 - реализовывать основные функции изделий на базе WM2000. Например, такой «вторичный M/L» может предоставлять способы настройки параметров изделия, обновления его кода из облака или выполнения других функций управления. С этой целью Tibbo разработала «сопутствующее» приложение, которое поставляется с WM2000 как APP0. Это сопутствующее приложение позволяет просматривать и изменять конфигурацию устройства через смартфонное приложение L.U.I.S. (доступно для iOS и Android). Поскольку сопутствующее приложение написано на Tibbo BASIC, пользователи могут изменять его код под свои нужды.
Упрощённое подключение к Wi-Fi
В платформе WM2000 значительно улучшен объект wln.: он поддерживает автоматическую ассоциацию с заданной беспроводной сетью. Благодаря этому интерфейсом Wi-Fi в WM2000 пользоваться так же просто, как портом Ethernet в устройствах Tibbo, ориентированных на проводную связь. Задайте SSID и пароль целевой сети Wi-Fi, включите «autoconnect» - и WM2000 автоматически подключится к сети и будет оставаться подключённым, пока сеть в зоне досягаемости! Это же даёт возможность беспроводной отладки приложений Tibbo BASIC/C.
Все параметры автоматической ассоциации с Wi-Fi хранятся в DCB и настраиваются через консоль BLE или из кода Tibbo BASIC/C. Интерфейс Wi-Fi можно настроить и с помощью сопутствующего приложения, которое поставляется с модулем.
Аппаратные особенности
- 32-битная архитектура
- Хранит до двух скомпилированных бинарных файлов (приложений) Tibbo BASIC/C(1)
- Блок конфигурации устройства Device Configuration Block (DCB)(2) определяет, какое из двух приложений обычно запускается при включении питания
- Принудительный запуск APP0 через линию MD
- Встроенный интерфейс Wi-Fi (802.11a/b/g/n)
- TLS1.2 с криптосистемой RSA-2048(3)
- Необязательный режим «autoconnect» - автоматическая ассоциация с заданной сетью Wi-Fi, определённой в DCB(2)
- Необязательная отладка приложений Tibbo BASIC/C через интерфейс Wi-Fi(4)
- Встроенный интерфейс Bluetooth Low Energy (BLE 4.2)
- Доступ к DCB через новую консоль BLE(2)
- Два высокоскоростных последовательных порта (уровни CMOS)
- Скорость до 921,600bps
- Режимы чётности: нет/чёт/нечёт/маркер/пробел
- 7/8 бит на символ
- Полнодуплексный режим с управлением потоком RTS/CTS и XON/XOFF
- Полудуплексный режим с управлением направлением
- Кодирование и декодирование потоков Wiegand и «тактовый сигнал/данные»
- Один из портов может работать как последовательный порт отладки(5)
- Десять линий ввода-вывода общего назначения
- Две линии могут работать как прерывания
- Девять линий могут давать выход широтно-импульсной модуляции (PWM)
- Три линии могут работать как входы АЦП
- Поддержка внешних матричных клавиатур и клавиатур с двоичным выходом
- RTC с отдельным входом резервного питания(6)
- Вход резервного питания потребляет всего 30µA(7)
- 58KB SRAM для переменных и данных Tibbo BASIC/C
- 4MB флеш-памяти для хранения кода
- Monitor/Loader, TiOS и DCB(2) занимают вместе 2,408KB
- 1,688KB доступно для хранения до двух бинарных файлов приложений - APP0 и APP1(1)
- Дополнительные 4MB флеш-памяти для защищённой отказоустойчивой файловой системы
- 2048 байт EEPROM для хранения данных
- Три встроенных светодиода состояния и линии управления внешними светодиодами состояния
- Зелёный и красный основные светодиоды/линии состояния
- Жёлтый светодиод/линия соединения Wi-Fi/BLE
- Надёжный сброс при включении питания (без контроля просадки напряжения)
- Потребление в активном режиме: 150mA @ 3.3V (Wi-Fi включён и сканирует эфир)
- Предусмотрен «спящий» режим с глубоким отключением питания
- Размеры (Д x Ш x В): 45.1 x 28.15 x 3.5mm
- Шаг выводов 2.54mm (100mil), удобный для макетирования
- Диапазон рабочих температур: -40°C ... +85°C
- Прошивку и скомпилированные приложения Tibbo BASIC/C можно загружать через:
- последовательный порт
- интерфейс Wi-Fi
- интерфейс Bluetooth Low Energy (BLE)
- Приложения Tibbo BASIC/C можно отлаживать через интерфейс Wi-Fi(4) или последовательный порт(5)
- Поставляется с сопутствующим приложением, предзагруженным как APP0
Примечания:
- Хотя во флеш-памяти WM2000 можно хранить два независимых скомпилированных бинарных файла (приложения) Tibbo BASIC/C, одновременно может выполняться только один.
- Несколько параметров конфигурации WM2000 хранятся в DCB, доступ к которому есть через консоль BLE. Веб-приложение BLE Terminal от Tibbo использует Web Bluetooth API (совместим с браузерами Chrome, Chromium, Edge и Opera) для подключения к консоли BLE модуля WM2000. Параметры конфигурации можно также читать и задавать из кода Tibbo BASIC/C.
- TLS поддерживается на одном исходящем TCP-соединении.
- Чтобы включить отладку по Wi-Fi, нужно включить autoconnect - автоматическую ассоциацию с заданной сетью Wi-Fi. Это можно сделать через консоль BLE, сопутствующее приложение или в коде.
- В режиме отладки через последовательный порт приложениям Tibbo BASIC/C доступен только один последовательный порт. Если нужны оба порта, используйте вместо этого отладку по Wi-Fi. Режим отладки выбирается через консоль M/L или сопутствующее приложение.
- Для нормальной работы модуля питание RTC должно быть подключено всегда. Если резервной батареи нет, подключите вход резервного питания к VCC. Вход резервного питания потребляет ток, даже когда модуль активен.
- Ток, потребляемый входом резервного питания, может изменяться в пределах ±15% в зависимости от конфигурации подключённого оборудования.
Возможности программирования
На WM2000 работает Tibbo OS (TiOS). Ниже перечислены возможности, которые поддерживает его платформа программирования:
- Объекты:
- adc - даёт доступ к трём каналам АЦП
- beep - формирует сигналы зуммера(1)
- bt - отвечает за интерфейс BLE (Bluetooth Low Energy)(1)
- button - отслеживает линию MD (настройки)
- fd - управляет файловой системой во флеш-памяти и прямым доступом к секторам(1)
- io - работает с линиями ввода-вывода, портами и прерываниями
- kp - работает с матричными клавиатурами и клавиатурами с двоичным выходом
- pat - «проигрывает» шаблоны на пяти парах светодиодов
- ppp - обеспечивает доступ в Интернет через последовательный модем (GPRS и др.)
- pwm - управляет каналами широтно-импульсной модуляции(1)
- romfile - облегчает доступ к файлам ресурсов (постоянным данным)
- rtc - отсчитывает дату и время
- ser - управляет последовательными портами (режимы UART, Wiegand, «тактовый сигнал/данные»)(1)
- sock - обмен данными через сокеты (до 32 сеансов UDP, TCP и HTTP) и поддержка TLS(2)
- ssi - управляет каналами последовательного синхронного интерфейса (SPI, I²C)
- stor - даёт доступ к EEPROM
- sys - отвечает за общие функции устройства(1)
- wln - работает с интерфейсом Wi-Fi(1)
- Группы функций: строковые функции, тригонометрические функции, функции преобразования даты и времени, функции шифрования и вычисления хэшей и другие
- Типы переменных: byte, char, integer (word), short, dword, long, real и string, а также пользовательские массивы и структуры
Примечания:
- Эти объекты платформы либо новые, либо получили новые возможности (по сравнению с EM2000).
- TLS1.2 с криптосистемой RSA-2048, поддерживается на одном исходящем TCP-соединении.