Тестируем новые возможности модулей MBee c ПО SerialStar

Новости в области маломощных беспроводных сетей

14.04.2017

Тестируем новые возможности модулей MBee c ПО SerialStar

В 3-м номере журнала "Новости Электроники" вышла новая статья о модулях MBee-868: "Тестируем новые возможности модулей MBee c ПО SerialStar".


Денис Бушунов (СМК), Николай Неудобнов (СМК)

Радиомодули MBee производства российской компании «Системы, Модули и Компоненты» (СМК), работающие в диапазонах 868 МГц и 2,4 ГГц, позволяют организовать беспроводную передачу данных топологии «точка-точка» на расстояние до нескольких километров либо, например, построить сеть, сбора данных со счетчиков энергии в многоквартирном доме. Новое бесплатное программное обеспечение SerialStar существенно расширяет возможности радиомодулей по созданию беспроводных систем с топологиями «точка-точка» и «звезда».

Новое программное обеспечение SerialStar (далее – прошивка, firmware) предназначено для простого управления модулем MBee (рисунок 1) с помощью AT-команд, API-фреймов либо для автономной работы модуля без использования внешнего управляющего микроконтроллера. В прошивке реализованы сетевые топологии «точка-точка» и «звезда». При этом как для центрального узла, так и для конечных точек используется один и тот же файл Firmware. Модули MBee с прошивкой SerialStar готовы к работе прямо «из коробки» – после подачи питания все данные, поступающие на UART одного модуля, будут отправляться по эфиру на выход UART другого модуля в прозрачном режиме без какой-либо дополнительной настройки. Полное управление процессом приема и отправки пакетов производится с помощью простых текстовых AT-команд. Для продвинутых разработчиков рекомендуется пакетный режим управления модулем с помощью API-фреймов, который позволяет изменять параметры в процессе работы и иметь больше информации при приеме эфирных пакетов. В этом смысле новая прошивка похожа на встроенное ПО радиомодулей XBee производства компании Digi – теперь модулем MBee управлять так же просто, как и популярными XBee-модулями. Модули MBee работают в диапазоне 868 МГц, что позволяет обеспечить дальность связи до нескольких десятков километров.

ris_1_opt-5-300x159.png

Рис. 1. Модули MBee-868-2.0

При первом включении модули MBee с прошивкой SerialStar полностью готовы к работе в режиме прозрачного удлинителя UART, однако возможности модуля намного шире. Благодаря гибкой настройке параметров можно организовать уникальную адресацию каждого модуля, установить любой частотный канал, управлять выходной мощностью, скоростью передачи данных в радиоканале и параметрами UART. Разработчик имеет доступ ко всем линиям модуля, кроме GPIO. Возможно также использовать АЦП и ШИМ. Доступ к портам ввода-вывода можно осуществлять и по эфиру, отправляя команды на удаленный модуль по его индивидуальному адресу. Более того, благодаря специальному режиму «Отображение портов» можно организовать автономную (без внешнего микроконтроллера) работу двух или более модулей, когда, например, состояние линии входа на модуле-источнике («0» или «1») автоматически повторяется на цифровом выходе модуля-приемника. Связать между собой можно не только порты входа-выхода, но и линии АЦП и ШИМ. Введенные один раз на этапе настройки параметры сохраняются в энергонезависимой памяти и далее автоматически применяются при последующих включениях модуля. В отличие от прошивок Serial Extender RS-485 и Sensor Network [5], новое ПО SerialStar не делит модули на роли «ведущий» и «ведомый» (Master и Slave), поэтому каждый модуль прошивается одним и тем же бинарным файлом Firmware.

Технические параметры модулей MBee-868-x.x c ПО SerialStar

Основные технические параметры модулей MBee-868-x.x остаются неизменными вне зависимости от загружаемой прошивки, поэтому подробно с ними можно ознакомиться в технической документации на модуль [6] или статье [7]. В таблице 1 приведены лишь те технические характеристики, которые связанны именно с диапазоном настроек параметров в прошивке SerialStar [8].

Таблица 1. Технические параметры модулей MBee-868-x.x c ПО SerialStar

ПараметрЗначение
Настройки радиоканала по умолчаниюЦентральная частота 868,75 МГц; модуляция 2GFSK; девиация 19 кГц; битовая скорость 38,3835 кбит/с
Выходная мощность передатчика по умолчанию10 дБм для модулей MBee-868-3.0; 14 дБм для модулей MBee-868-2.0
Диапазон программной регулировки выходной мощности
передатчика
-30…10 дБм для модулей MBee-868-3.0; -32…27 дБм для модулей MBee-868-2.0
Дальность связи для модуля MBee-868-2.0 при заданной эфирной скорости, выходной мощности 14 дБм и антеннах с усилением 2 дБм21 км при 1200 бит/с; 15 км при 4800 бит/с;13 км при 9600 бит/с; 10 км при 38400 бит/с; 6 км при 57600 бит/с; 4 км при 115200 бит/с; 1 км при 500000 бит/с
Дальность связи для модуля MBee-868-3.0 при заданной эфирной скорости, выходной мощности 10 дБм и антеннах с усилением 2 дБм3,8 км при 1200 бит/с; 2,7 км при 4800 бит/с; 2,4 км при 9600 бит/с;
1,7 км при 38400 бит/с; 1 км при 57600 бит/с; 0,7 км при 115200 бит/с; 0,2 км при 500000 бит/с
Фиксированные радиоканалы, находящиеся в полосе, разрешенной Приложением 11 крешению ГКРЧ от 07.05.2007 г.
№ 07-20-03-001 для систем без ограничения рабочего цикла
868,75 МГц (1 канал); 868,85 МГц (2 канал); 868,95 МГц (3 канал);
869,05 МГц (4 канал); 869,15 МГц (5 канал)
Программная перестройка частотыВ диапазоне 779…928 МГц (точность установки – около 400 Гц)
Настройки UART по умолчаниюСкорость 9600 кбит/с; число стоповых бит – 1; уетности нет; аппаратное управление потоком – CTS/RTS; размер приемного буфера – 400 байт; размер буфера на передачу – 400 байт
Потребление тока в режиме сна2…4 мкА
Число GPIO-цифровых линий ввода-вывода25
Число линий АЦП 10 бит5
Число линий ШИМ (> 13 бит; диапазон десятичных значений 0…13000)4
Число счетных входов2
Число независимых UART-интерфейсов1 (TX, RX; CTS и RTS – опционально)
Выводы контроля и управленияСистемный светодиод; индикация режима сна; сигнал управления режимом сна; служебная кнопка (вход в режим конфигурирования); сигнал пробуждения; аппаратный сброс модуля

Типовая схема включения модуля приведена на рисунке 2. Прошивка SerialStar позволяет задействовать практически все выводы модуля. Причем имеется возможность гибкой конфигурации выводов. Любой интерфейс, – GPIO, UART, ADC, PWM, – может быть перенаправлен на тот или иной физический вывод модуля. Режим работы того или иного вывода задается с помощью соответствующей AT-команды. Например, разработчик может назначить на физический вывод 29 функцию «Цифровой выход в состоянии 1»,, или «Вход АЦП», или «Выход PWM», или какой-либо другой из таблицы 2. По умолчанию большинство интерфейсных пинов модуля находится в состоянии «отключено» (таблица 3).

ris_2-6-600x482.png

Рис. 2. Типовая схема включения модуля

Таблица 2. Диапазон настроек функций для пинов модуля

Режим работыОбозначениеПараметр в теле AT-командыВыводы модуля, на которые можно назначить данный режим работы
ОтключенDISABLED02…4, 6, 7, 9, 11…19, 24, 27…35
Вход АЦПADC229, 30, 33…35
Цифровой входDIGITAL INPUT32…4, 6, 7, 9, 11…19, 24, 27…35
Цифровой выход в состоянии «0»DIGITAL OUTPUT, LOW42…4, 6, 7, 9, 11…19, 24, 27…35
Цифровой выход в состоянии «1»DIGITAL OUTPUT, HI52…4, 6, 7, 9, 11…19, 24, 27…35
Выход данных UARTUART TX62…4, 6, 7, 9, 11…15, 24, 27…35
Вход данных UARTUART RX72…4, 6, 7, 9, 11…15, 24, 27…35
Управление UARTUART CTS82…4, 6, 7, 9, 11…19, 24, 27…35
Управление UARTUART RTS92…4, 6, 7, 9, 11…19, 24, 27…35
Светодиод состоянияSYSTEM LED102…4, 6, 7, 9, 11…19, 24, 27…35
Ручное управление режимом снаSLEEP REQUEST112…4, 6, 7, 9, 27…35
Индикация состояния режима снаSLEEP STATUS122…4, 6, 7, 9, 11…19, 24, 27…35
Счетный вход 1COUNTER INPUT1132…4, 6, 7, 9, 27…35
Счетный вход 2COUNTER INPUT2142…4, 6, 7, 9, 27…35
Сигнал на пробуждение модуляWAKEUP INPUT152…4, 6, 7, 9, 27…35
Выход ШИМ 1PWM1162…4, 6, 7, 9, 11…15, 24, 27…35
Выход ШИМ 2PWM2172…4, 6, 7, 9, 11…15, 24, 27…35
Выход ШИМ 3PWM3182…4, 6, 7, 9, 11…15, 24, 27…35
Выход ШИМ 4PWM4192…4, 6, 7, 9, 11…15, 24, 27…35

Таблица 3. Настройка выводов модуля по умолчанию

Вывод модуляПараметр/значениеКомментарий
1VDDНапряжение питания модуля 2,4…3,6 В
2L0 = 6Выход TX UART
3L1 = 7Вход RX UART
4L2 = 0Отключен
5RESETВход аппаратного сброса модуля
6L3 = 0Отключен
7L4 = 0Отключен
8Служебный
9L5 = 11Вход модуля. Управление режимом сна (Sleep Request)
10GNDЗемля
11L6 = 0Отключен
12L7 = 0Отключен
13L8 = 0Отключен
14B0 = 0Отключен
15B1 = 0 (MBee-868-3.0); B1 = 1 (MBee-868-2.0)Отключен (только для MBee-868-3.0); не используется (только для MBee-868-2.0)
16B2 = 0Отключен
17B3 = 0Отключен
18B4 = 0Отключен
19B5 = 0Отключен
20Служебный
21RESETВход аппаратного сброса модуля
22VDDНапряжение питания модуля 2,4…3,6 В
23GNDЗемля
24R9 = 0Отключен
25Выход RF TXСветодиод индикации включения передатчика
26Выход RF RXСветодиод индикации включения приемника
27R8 = 0Отключен
28R7 = 8Вход CTS UART (при SM1 или SM5 линия работает как Sleep Request)
29R6 = 12Выход модуля. Индикация режима «сон»
30R5 = 0Отключен
31R4 = 0Отключен
32R3 = 9Выход RTS UART
33R2 = 0Отключен
34R1 = 0Отключен
35R0 = 10Выход модуля. Системный светодиод
36Вход BUTTONСлужебная кнопка (переход в командный режим или в режим Bootloader для обновления firmware)

Диапазон рабочих напряжений модуля составляет 2,4…3,6 В.

Режимы работы модулей MBee-868-x.x c ПО SerialStar

Модуль может находиться в одном из нескольких режимов:

  • Режим обновления прошивки. Это специальный режим для загрузки Firmware c помощью Windows-программы SysmcBootloader. Переход в данный режим происходит, если при подаче питания или при нажатии кнопки Reset удерживать нажатой кнопку Button. Режим индицируется миганием LED-светодиода, подключенномго к выводу 35.
  • Прозрачный режим передачи данных. Модуль принимает данные по UART-интерфейсу и отправляет их в эфир. Данные отправляются конкретному модулю или всем модулям, имеющим общий идентификатор сети (см. раздел «Адресация модулей и формат API-фреймов»). Все поступающие данные накапливаются в буфере размером 400 байт. Отправка радиопакета происходит, если в потоке поступающих данных возникает пауза длительностью более 2 символов или при приближении к верхней границе буфера. При отправке данных из программы-терминала в одном радиопакете будет уходить только один символ из-за пауз между нажатиями клавиш.
  • Командный режим. В данный режим модуль переводится из режима прозрачной передачи данных для того, чтобы с помощью AT-команд изменить настройки модуля, установить адрес получателя, перезагрузить модуль и так далее. Переход в командный режим осуществляется отправкой последовательности символов из трех «+» в течение 2 секунд с паузой между символами не менее двух символов. Выход осуществляется также тремя «+» либо кнопками “Button” или “Reset”. Можно принудительно перевести модуль в командный режим нажатием кнопки “Button” (на пине 36), при этом настройки UART-интерфейса будут приведены к значениям 9600 8N1. Кнопка “Button” будет служить своеобразной «палочкой-выручалочкой», если в процессе работы модуля его параметры были изменены случайным образом, и он перестал реагировать на команды по UART.
  • Пакетный режим передачи данных. Модуль получает по UART структурированный набор данных («API-фрейм») и, в зависимости от его наполнения, выполняет различные действия:
    • отправляет данные по эфиру;
    • исполняет полученную АТ-команду для изменения (отображения) собственных настроек; управляет режимами сна и процессом автоматической отправки пакетов с данными о состоянии портов ввода-вывода;
    • отправляет AT-команду по эфиру для ее применения на удаленном модуле;
    • выводит принятые из эфира данные с дополнительной информацией – адресом отправителя и уровнем сигнала RSSI.
  •  Режим пониженного энергопотребления (режим сна) – отключение на определенный промежуток времени ядра модуля, неиспользуемой периферии и приемопередатчика. Управление режимом сна может происходить по внешнему выводу либо по внутреннему настраиваемому таймеру самого модуля. При нахождении модуля в режиме сна невозможно отправлять или принимать данные по эфиру либо вести обмен по UART. Вся активность модуля происходит только во время его пробуждения. С помощью специальных AT-команд можно гибко настраивать время нахождения модуля в режиме сна (10 мс…8 дней) и в режиме пробуждения (1 мс…2 с). При каждом пробуждении модуль отправляет специальный пакет по адресу, указанному в поле TX. В этот пакет включено 2 байта данных – температура чипа и напряжение питания батареи. Если на модуле активированы один или несколько портов ввода, – GPIO input, ADC, – то при пробуждении модуля значения с этих портов добавляются в этот специальный пакет. Механизм автоматической отправки данных (после пробуждения) о состоянии портов ввода позволяет модулю работать автономно, без применения внешнего управляющего микроконтроллера.Этот режим по умолчанию отключен. Для его включения используется команда SM с параметром от 0…5. Можно установить следующие варианты сна:
    • SM 0 (значение по умолчанию) – режим сна отключен, модуль постоянно находится в режиме приема данных по эфиру, UART активен;
    • SM 1 – режим управления сном с помощью пина 11 (Sleep Request) модуля. Перевод в сон осуществляется низким уровнем на линии. Высокий уровень пробуждает модуль.
    • SM 4 – циклический режим сна. Сон и пробуждение происходят по внутреннему таймеру модуля. Период сна задается командой ST, продолжительность бодрствования – командой SP;
    • SM 5 – комбинированный режим сна. Сон по таймеру и выводу 11. Объединение режимов SM1 и SM4.

Адресация модулей и формат API-фреймов

Для того чтобы два модуля, работающих в режиме «точка-точка», не реагировали на сторонние пакеты, а также для объединения модулей в сеть, в прошивке SerialStar реализована мощная система адресации модулей. Каждый модуль имеет три типа адреса: ID сети (1 байт), ID системы (2 байта) и ID модема (2 байта), что в сумме дает практически бесконечную адресную емкость. Параметр ID сети позволяет логически развести несколько радиосетей, работающих на одном и том же частотном канале. Сигналы соседствующих сетей, разумеется, будут мешать друг другу, однако модули будут отфильтровывать чужие пакеты по параметру «ID сети» уже на уровне радиоядра. Адрес ID системы позволяет организовать несколько подсетей в пределах одной географической зоны. Оба адреса – ID сети и ID системы – задаются одной AT-командой ATID с параметром длиной 3 байта.

Индивидуальная адресация модуля в пределах подсети осуществляется с помощью адреса ID модема. Специальное значение ID модема, равное 0xFFFF, используется для широковещательной (одновременной) рассылки всем модулям в пределах одной сети и подсети. Индивидуальный адрес модуля задается с помощью AT-команды ATMY.

Все три типа адреса выбираются произвольно разработчиком системы. Для отправки данных на другой модуль в модуле-источнике требуется установить адрес модуля-получателя с помощью команды AT TX. При управлении модулем с помощью API-фреймов можно не задавать адрес получателя отдельной AT-командой, а включать этот адрес вместе с отправляемыми данными в единый структурированный набор байтов, отправляемых по UART. В этом случае можно отправлять пакеты разным получателям без необходимости использования отдельных АТ-команд о смене адресов.

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

Наиболее гибкое управление радиомодулем производится при использовании API-фреймов. API-фрейм – это определенный формат посылаемых по UART данных. Предусмотрено несколько типов API-фреймов, позволяющих выполнять AT-команды на локальном модуле и отправлять данные или AT-команды на удаленный модуль по эфиру. Все типы API-фреймов приведены в таблице 4. В зависимости от фактической версии прошивки в модуле могут не работать некоторые типы API-фреймов. Также по мере совершенствования прошивки SerialStar могут добавляться новые фреймы, реализующие тот или иной полезный функционал.

Таблица 4. Типы API-фреймов

Код фреймаТип фреймаНаправление по UARTОписание
0x01 либо* 0x10Transmit requestОт хоста к модулюПередача данных другому модулю. Кроме собственно данных во фрейме указывается ID модема получателя. Отправляемые данные будут выведены через UART модуля-получателя
0x0FTransmit request no optionОт хоста к модулюАналогично фрейму 0x01, с увеличенной емкостью под полезные данные (не используется байт опций)
0x90Receive packetОт модуля к хостуПринятые данные от другого модуля. Фрейм содержит также информацию об адресе модуля-отправителя и силу сигнала RSSI
0x07Local AT command Immediate ApplyОт хоста к модулюОтправка AT-команды для исполнения на локальном модуле. AT-команда применяется без сохранения во Flash-памяти
0x08Local AT commandОт хоста к модулюОтправка AT-команды для исполнения на локальном модуле. Запись обновленных параметров во Flash-памяти с их незамедлительным применением
0x09Local AT command QueueОт хоста к модулюОтправка AT-команды в виде очереди для последующего исполнения на локальном модуле. Запись параметра в теневой регистр для последующего применения с помощью команд AC или CN
0x88Local AT command ResponseОт модуля к хостуРезультат выполнения команды на локальном модуле. Данный фрейм приходит как ответ на переданный ранее фрейм 0x07, 0x08 или 0x09. Если был отправлен фрейм AT-команды для установки порта ввода-вывода без параметра, то в ответе будет присутствовать текущее значения параметра порта
0x17Remote AT commandОт хоста к модулюОтправка AT-команды для исполнения на удаленном модуле. Указывается адрес модуля-получателя команды по эфиру и способ актуализации – запись параметра в теневой регистр, без применения; применение сделанных изменений без записи во Flash-память или применение сделанных изменений с записью во Flash-память обновленных параметров
0x97Remote AT command ResponseОт модуля к хостуРезультат выполнения команды на удаленном модуле. Данный фрейм приходит как ответ на переданный ранее фрейм 0x17
0x8AModem StatusОт модуля к хостуМодуль посылает хосту информацию о некотором системном событии, например, перезагрузке или о срабатывании сторожевого таймера
0x92IO Data SampleОт модуля к хостуМодуль принял специальный пакет, который содержит данные о состоянии портов ввода-вывода на удаленном модуле. При соответствующей настройке портов и режимах сна данный пакет автоматически отправляется удаленным модулем при каждом пробуждении. Во фрейме содержится адрес модуля-отправителя, состояние цифровых портов ввода и отсчеты АЦП
* – Два разных типа для одного и того же фрейма введены для совместимости с API-фреймами модулей XBee разных серий.

Структура API-фрейма «Прием эфирных данных для UART» типа 0x81 представлена в таблице 5. С помощью данного фрейма модуль выводит принятый по эфиру стандартный пакет данных для UART. Модули могут обмениваться радиопакетами вне зависимости от текущего режима работы – прозрачного режима или режима API-фреймов. Если модуль-приемник на момент приема находился бы в прозрачном режиме, то на выходе UART мы бы увидели только данные «Data», которые расположены в синем поле API-фрейма (таблица 5). При этом информация об адресе модуля-отправителя была бы недоступна. Преимущество API-режима в данном случае заключается в наличии дополнительной информации «здесь и сейчас».

Таблица 5. Структура API-фрейма 0x90 «Прием эфирных данных для UART»

Стартовый
байт
Длина API-фреймаДанныеКонтрольная сумма
Тип фреймаАдрес отправителя78910mm + 1
123456
0x7EMSBLSB0x90MSB Source IDLSB Source IDRSSIOptionData
MSB – старший байт длины.
LSB – младший байт длины.
MSB Source ID – старший байт адреса MY отправившего пакет модуля.
LSB Source ID – младший байт адреса MY отправившего пакет модуля.
RSSI – сила сигнала для данного принятого пакета (возможный диапазон -116…-21 дБм).
Option – дополнительная информация о формате данных в пакете.
Data – собственно полезная информация, отправленная удаленным модулем.

Следует учитывать, что не все возможности модулей в режиме API-фреймов можно реализовать с помощью AT-команд в прозрачном режиме.

В таблице 6 приведен формат API-фрейма 0x17, с помощью которого происходит отправка AT-команды на удаленный модуль (по эфиру).

Таблица 6. Структура API-фрейма 0x17 «Отправка AT-команды удаленному модулю»

Стартовый байтДлина
API-фрейма
ДанныеКонтрольная сумма
Тип фрейма567891011mm+1
1234
0x7EMSBLSB0x17Frame IDMSB Destination IDLSB Destination IDOptionsAT commandAT commandParameter
MSB, LSB – старший и младший байт длины API-фрейма.
Frame ID – порядковый номер фрейма. Выбирается произвольно модулем-отправителем.
MSB Destination ID, LSB Destination ID – старший и младший байт адреса MY модуля-получателя.
Option – дополнительная информация о применении данных в пакете на стороне удаленного модуля:
• 0 – запись параметра в теневой регистр, без применения;
• 1 – применение сделанных изменений без записи во Flash;
• 2 – gрименение сделанных изменений с записью во Flash обновленных параметров.
AT command – два символа имени AT-команды (ASCII-коды, например, «CH», «SM», «FR», «B4» и так далее).
Parameter – устанавливаемое с помощью AT-команды значение. Длина поля Parameter зависит от конкретной команды.

При написании программы обработки API-фреймов на стороне управляющего микроконтроллера программист должен предусмотреть обработку ситуации, когда в потоке данных от модуля присутствуют фреймы с неизвестным значением в поле «Тип фрейма». В этом случае необходимо просто пропустить количество байт, указанное в поле «Длина API-фрейма». В принципе, можно даже проверить контрольную сумму принятых данных, чтобы убедиться, что был принят именно фрейм неизвестного типа, а не произошла, например, ошибка при передаче данных по UART.

Подробное описание всех структуры всех возможных API-фреймов можно найти на сайте производителя в документации на программное обеспечение SerialStar.

Формат и описание AT-команд

АТ-команды служат для управления настройками модуля при работе как в прозрачном режиме, так и в режиме API-фреймов. AT-команды состоят из двух текстовых символов ASCII. Для отправки AT-команд сначала необходимо перевести модуль из прозрачного режима в командный. Это можно сделать с помощью однократного нажатия системной кнопки или передачи в UART стандартной последовательности трех символов «+++». Системная кнопка позволяет перейти в командный режим даже когда модуль находится в состоянии сна, и работа UART приостановлена.

AT-команды могут отправляться в UART как управляющим микроконтроллером, так и оператором в любой программе-терминале (с клавиатуры ПК). Изменения, вносимые с помощью AT-команд, применяются не сразу после отправки команды, а только после специальной команды AC («Применить изменения»). Это позволяет передать несколько взаимосвязанных команд, а затем одновременно применить все внесенные изменения. Для сохранения внесенных изменений во Flash существует отдельная команда. Если не сохранить внесенные изменения в энергонезависимой памяти – после отключения и повторного включения питания модуль будет работать с предыдущими установками.

Если в процессе работы необходимо быстро вернуться к значениям параметров модуля по умолчанию, то для этого достаточно нажать системную кнопку четыре раза в течение 2 секунд. Этот способ является хорошим выходом из непонятных ситуаций при знакомстве с работой модуля, когда после введения различных настроек он перестает работать ожидаемым образом.

В зависимости от выполняемых действий все AT-команды можно разделить на несколько групп (таблица 7).

Таблица 7. Основные группы AT-команд

Группа AT-командИспользуемые AT-команды*Описание
Специальные AT-командыWR, CN, AC, DC, RE, FR, VR, HV, APПрименение, отмена и сохранение внесенных изменений во Flash; чтение версии программного и аппаратного обеспечения; выбор режимов работы модуля (прозрачный или API-фреймы); возврат к заводским настройкам и рестарт модуля
Команды настройки сетевых параметровMY, ID, TX, DMУстановка адреса сети, подсети и собственного адреса; установка адреса получателя отправляемых данных; выбор режима приема широковещательных пакетов (принимать или нет)
Команды настройки радиочастотных параметровCH, CF, RB, PLВыбор рабочей частоты; установка эфирной скорости; установка выходной мощности
Команды управления режимами снаSM, SP, STВыбор режима сна (отключен, циклический по внутреннему таймеру, по пину или комбинированный); временные параметры для продолжительности сна и бодрствования
Команды управления линиями ввода-выводаATLx, ATBx, ATRx, ATMxНазначение вывода рабочей функции (таблица 2); установка значения цифрового выхода; установка значения ШИМ-выхода; чтение состояния линии
* – Список AT-команд может расширяться.

Практический пример работы с модулем

Для знакомства с работой прошивки SerialStar выполним несколько простых действий с модулем MBee-868-2.0. Для управления модулем со стороны ПК используем переходную плату MB-USBridge (рисунок 3) и программу Bray’s Terminal v1.9b. Для автономной работы модуля удобно пользоваться платой MB-Tag (рисунок 3). Предварительно подготовим AT-команды в виде макросов, чтобы легко отправлять их нажатием одной кнопки. Для повторения экспериментов вы можете загрузить в используемый файл макросов MBee.tmf (рисунок 4) и саму программу-терминал в виде архива mbeetest.zip.

ris_3_opt-4-300x194.png

Рис. 3. Интерфейсные платы MB-Tag и MB-USBridge

ris_4_opt-4-360x600.png

Рис. 4. Файл макросов для отправки AT -команд одной кнопкой

При испытании работы модулей была использована бета-версия прошивки SerialStar, поэтому при повторении аналогичных действий возможны некоторые отличия в работе по сравнению с приведенными здесь скриншотами и ответами модуля. На рисунке 5 приведено рабочее окно программы SysMC Bootloader – показан результат процесса загрузки прошивки SerialStar в модуль MBee-868-2.0.

ris_5_opt-2-600x291.png

Рис. 5. Загрузка прошивки SerialStar в модуль MBee

Для работы с модулем запускаем программу-терминал, устанавливаем значение скорости 9600 и подключаемся к модулю MBee, установленному на переходной плате MB-USBridge-1.2-micro. Переключаем модуль в командный режим нажатием кнопки (“Button”).

При переходе в командный режим модуль выводит следующее сообщение:

Command mode.

>

Ниже представлены ответы модуля на различные AT-команды. Отправляемые в модуль команды показаны зеленым цветом, ответы модуля – синим.

Команда ATVR позволяет увидеть текущую версию программного обеспечения модуля:

ATVR

Manufacturer: «Systems, modules and components», Moscow, Russia, www.sysmc.ru.

Target module: MBee-868-2.0.

Project: SerialStar-868.

Build type: Modem.

Build time: 2.2.2017 21:2:30.

OK.

>

Команда ATHW показывает аппаратную конфигурацию модуля:

ATHV

Target module: MBee-868-2.0.

Non configurable pins:

RF TX indication. Pin #25.

RF RX indication. Pin #26.

System button. Pin #36.

Reconfigurable pins:

L0 = 6. UART TX output. Pin #2.

L1 = 7. UART RX input. Pin #3.

L2 = 0. Disabled. Pin #4.

L3 = 0. Disabled. Pin #6.

L4 = 0. Disabled. Pin #7.

L5 = 4. Digital output with default LOW state. Pin #9.

L6 = 0. Disabled. Pin #11.

L7 = 0. Disabled. Pin #12.

L8 = 0. Disabled. Pin #13.

B0 = 0. Disabled. Pin #14.

B1 = 1. Not available. Pin #15.

B2 = 0. Disabled. Pin #16.

B3 = 0. Disabled. Pin #17.

B4 = 0. Disabled. Pin #18.

B5 = 0. Disabled. Pin #19.

R0 = 10. System LED output. Pin #35.

R1 = 0. Disabled. Pin #34.

R2 = 4. Digital output with default LOW state. Pin #33.

R3 = 9. UART RTS output. Pin #32.

R4 = 4. Digital output with default LOW state. Pin #31.

R5 = 0. Disabled. Pin #30.

R6 = 4. Digital output with default LOW state. Pin #29.

R7 = 8. UART CTS input. Pin #28.

R8 = 4. Digital output with default LOW state. Pin #27.

R9 = 0. Disabled. Pin #24.

Команда чтения собственного адреса модуля:

ATMY

>1

>

Команда чтения адреса сети в десятичном и HEX-виде:

ATID

65537

>

ATID0x

>0x10001

>

Команда чтения адреса получателя, которому будут отправляться данные по эфиру:

ATTX0x

>0xFFFF

>

Здесь мы видим, что адрес получателя установлен в 0xFFFF, что означает рассылку широковещательного сообщения, которое будет приниматься всеми модулями, имеющими единый сетевой адрес (ATID).

Чтение рабочей частоты модуля:

ATCF

868749756

>

Рабочая частота модуля равна 868,750 МГц (точное значение – 868,749756 МГц).

Настроим модуль, работающий в прозрачном режиме, на формирование ШИМ-сигналов на выводах 27 (R8) и 31 (R4) c разными значениями скважности:

АTR8 16 < назначаем порт R8 в качестве выхода ШИМ-модуля 1 (PWM1) >

ATM1 3000 < назначаем скважность для ШИМ-модуля 1 равной 3000 (макс. 13000) >

АTR4 17 < назначаем порт R4 в качестве выхода ШИМ-модуля 2 (PWM2) >

ATM2 10000 < назначаем скважность для ШИМ-модуля 1 равной 10000 (макс. 13000) >

ATAC < применяем установленные значения >

Результат операции приведен на рисунке 6. При изменении значений скважности командами ATM1 1000, ATM2 6500 и ATAC, соответственно, меняется и картинка на осциллографе (рисунок 7).


ris_6_opt-2-551x600.png

Рис. 6. Работа портов модуля MBee в режиме ШИМ

Установку значений ШИМ можно производить не только локально, по UART, но и c другого модуля по эфиру, используя API-фрейм типа 0x17. Возможность удаленного доступа ко всем портам модуля (UART, GPIO, ADC, PWM) позволяет дистанционно управлять светильниками, считывать значения с аналоговых датчиков и управлять оборудованием по последовательным протоколам.

ris_7_opt-2-600x360.png

Рис. 7. Установка разной скважности ШИМ -сигналов

Заключение

Развитый и дружественный командный интерфейс программного обеспечения SerialStar позволяет простым образом реализовать беспроводную систему архитектуры «точка-точка» или «звезда». В этих обеих топологиях все устройства равнозначны, что заметно упрощает ввод сети в эксплуатацию и ее последующее обслуживание. Расширенные возможности командного API-интерфейса, автономный режим отправки состояния линий входа-выхода и поддержка батарейных спящих узлов предоставляют разработчику полную техническую свободу при создании беспроводной системы связи различной сложности.

Литература

  1. Денис Бушунов, Николай Неудобнов. «Радиомодули MBee-868 от компании СМК: быстрый старт», .
  2. Александр Калачев. «Российский Интернет вещей: беспроводные ZigBee-модули диапазона 2,4 ГГц от компании СМК». Новости электроники № 3\2016.
  3. Денис Бушунов, Николай Неудобнов. «Модули MBee-868 в системах сбора показаний с приборов учета». Новости электроники № 8\2015.
  4. Денис Бушунов. «Замена проводов радиоканалом при работе с промышленным оборудованием».
  5. Программное обеспечение Serial Extender RS232, Serial Extender RS485, Sensor Network. http://sysmc.ru/.
  6. Беспроводные модули MBee-868-3.0, Техническое описание. http://sysmc.ru/.
  7. Денис Бушунов, Николай Неудобнов. «Радиомодули MBee от компании «Системы, модули и компоненты (СМК)». Новости электроники № 8\2015.
  8. Техническое описание программного обеспечения SerialStar. http://sysmc.ru/.

Возврат к списку