ЭМУЛЯТОР ZIGBEE ETRX357 СТЕНДА
ОБЛАЧНЫХ РОЗЕТОК БЕСПРОВОДНОГО УПРАВЛЕНИЯ РОБОТАМИ


ВВЕДЕНИЕ | МЕТОДИЧКА ПО WPAN | PDF | ETRX2 | МОТОРЫ


ИНИЦИАЛИЗИРОВАТЬ КООРДИНАТОР
AT+EN
ОБРАЗОВАТЬ СЕТЬ
AT+SN
КОМАНДА ВПЕРЕД
ATREMS:E627,18=00000040
КОМАНДА НАЗАД
ATREMS:E627,18=00000080





Набор КИТ со склада WLESS




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



ОБЛАЧНЫЙ РОБОТ | УПРАВЛЕНИЕ КЛАПАНОМ | ЧИП и ДИП


В сочетании с компьютерным стиком, позволяющим дотянуться до сервера, умная пыль превращается в элементарный источник управляемых с облака беспроводных розеток.

Распространенный в робототехнике XBee координатор стоит 24.5 бакса (улей), USB-кроватка – 9 баксов. Приемник Bee (пчела) – 16.6 баксов. Напаянные реле с кроваткой для приемника – 25 баксов (с 4-мя реле стоит 28 баксов).

ЛАБОРАТОРНЫЙ ПРАКТИКУМ



УМНАЯ ПЫЛЬ | ДОКУМЕНТАЦИЯ | ETRX357 KIT





Конечное устройство: моторы робота


Раздел 1.1. Изучаем координатор

Для использования координатора следует скачать с сайта Telegesis.com его драйвер и установить на компьютер, после чего новому устройству (рис. 1), вставленному в USB-разъем будет присвоен номер COM-порта. Этот номер виден в стандартной программе Windows, обозревающей свойства аппаратуры системы. Он применяется для связи с модулем через терминал – специальную программу, обменивающуюся через выделенный COM-порт кодами символов (на частоте 19200 бод в секунду).



Рисунок 1. ZigBee модуль ETRX2USB


Помимо того, что такая программа обязательно есть в составе стандартных средств операционной системы, в сети Интернет довольно легко найти наработки аналогичных программ с более или менее удобным интерфейсом, например, comport.exe.



Интел Стик и координатор ZigBee – для облачной версии


Для того, чтобы координатор воспринимал последовательность символов как текстовую команду, необходимо, чтобы она завершалась кодом перевода каретки (кодом клавиши Enter). Терминальные программы содержат, как раз, окно для ввода таких текстов, и окно, на котором отображаются присылаемые в ответ символы. С их помощью изучим работу координатора.

ATI (с кодом перевода каретки CR) USB-координатор отвечает: TELEGESIS ETRX3 R304X 0021ED00000468C9 OK.

Сообщается номер модуля ETRX, номер прошивки R304X и фабричный номер устройства 0021ED00000468C9. Это первая команда, с которой стоит начинать диалог.

ATS04? возвращает прописанный заводом в регистре S04 номер 0021ED00000468C9. Аналогично читается любой другой регистр модуля.

AT+EN создает сеть координатора, координатор первым присоединяется к собственной сети: следует сообщение JPAN:25,3D84,7E04AEF1821F433C. Указан номер 25 выбранного для связи наименее зашумленного канала, короткий и длинный идентификаторы (адреса, имена) координатора в сети: "имя" 3D84 и "фамилия" 7E04AEF1821F433C. Довольно очевидно, что пользоваться именем проще.

AT+N выдает отмеченные выше параметры (если их забыли): функциональное назначение (COO), канал, питание, пару адресов: +N=COO,25,03,3D84,7E04AEF1821F433C.

AT+DASSL вынуждает модуль покинуть (свою) сеть. ATZ соответствует Reset. AT&F возвращает модулю начальные фабричные настройки, если их меняли. AT+N возвращает новый статус (не в сети): +N=NoPAN OK. В таком виде устройство готово к образованию новой сети.

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

В ходе набора текстовых команд нетрудно ошибиться, в таком случае модуль сообщает коды ошибок. Распространенные коды ошибок: 02 - неправильная команда, 05 - неверный параметр, 26 - не присоединиться, 27 - не найдена сеть, 28 - устройство уже в сети и команда (присоединения к сети) не может быть выполнена.

Раздел 1.2. Изучаем минимальную сеть

Включаем в работу координатор и один из модулей (рис. 2), (на отладочной плате предусмотрено питание модуля шнуром от блока питания, от USB кабеля или от батарей, переключение джампером power), который, будучи не подключенным к сети, начинает искать сеть.


Рисунок 2. Модуль ETRX3



AT+PANSCAN инициирует поиск новых еще не присоединившихся модулей, выдавая сообщение о них в виде NEWNODE: E627,000D6F00005C4AB7,0000 SR:00,000D6F00005C4AB7,E627 FFD:000D6F00005C4AB7,E627. В сообщении присутствует тип FFD (маршрутизатор) короткий адрес E627 и длинный 000D6F00005C4AB7.

В том случае, когда новых модулей нет, отклик +PANSCAN:25,3D84,7E04AEF1821F433C,02,01 выдает атрибуты координатора (адрес 3D84). Если в окрестностях координатора нет ни одного включенного модуля, то и этой информации нет (сеть не функционирует). Найденный модуль не присоединяется к сети.

AT+SN сканирования сети с присоединением к сети найденных новых модулей, рапорт о работе координатора возвращает атрибуты подключившихся к сети модулей, в частности, их короткие адреса (формата XXXX).

ATREMS:E627,04? возвращает номер уведомления о запросе ACK:13 содержимого регистра S04, в котором хранится заводской номер изделия, далее следует сгенерированный удаленным модулем ответ SREAD:E627,000D6F00005C4AB7,04,00=000D6F00005C4AB7. Если удаленный модуль выключен, то приходит NACK (уведомление о том, что сообщение не дошло до модуля).

ATREMS:E627,0A? интересуется типом удаленного модуля в его регистре S0A, ответ 0000 означает, что модуль - маршрутизатор FFD. Собственно, это было видно на момент присоединения этого модуля, смотрите первое сообщение, выше.

Раздел 1.3. Меняем тип модуля


Рисунок 3. Отладочная плата


Теперь осталось назначить модуль конечным устройством, меняя содержимое регистра типа S0A, для того, чтобы он мог экономить энергию батарей, размещенных у отладочного комплекта под платой и включаемых джампером.

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

ATS0A=4000:password назначает модуль спящим устройством SED.

Если проблемы питания нас не волнуют, то можно употребить код 8000, в таком случае модуль интерпретируется как конечное устройство ZED. Что и стоит делать на первых порах. Пароль password – заводской, он хранится в отведенном для пароля регистре, его можно при желании сменить.

Менее хлопотный путь, тем не менее, связан с изменением типа модуля при помощи ресурсов сети. В таком случае модуль сначала присоединяется к беспроводной сети, выясняется его сетевой адрес E627 (например), далее меняется его тип.

ATREMS:E627,0A=4000:password назначает модуль спящим устройством SED.

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

Отметим, что так как при перезагрузке меняется адрес координатора (это уже не 3D84), прибегать к ней следует в крайнем случае. Самое простое, если не вдаваться в более тонкие методы, попросить координатор осуществить деструкцию сети по AT+DASSL и начать все заново по AT+EN. При этом возникнет длинная пауза, связанная с потерей конечным модулем прежней сети, и началом (по соглашению) поиска сети новой, нового хозяина. На все про все уйдет, в худшем случае, несколько минут. В момент присоединения модуля придет сообщение, причем адрес конечного модуля не изменится, но изменится его тип.

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

На самом деле, оно условно спит: функции первых четырех таймеров конечного модуля фабрично ориентированы на организацию работы сети. Их настройки трогать не стоит. Модуль действительно спит, но между проверками запросов из сети. Во время штатных проверок он бодрствует. Иначе в памяти координатора или маршрутизатора накопятся невостребованные сообщения и со временем (довольно кратким) сеть их утратит.

Раздел 1.4. Меняем режим экономии энергии

Существует четыре режима mode 0,1,2,3 активности конечного модуля, с порядковыми номерами 1,2,3,4.

В начальном режиме конечный модуль не спит. Два последующих режима 1-й и 2-й означают разные степени экономии энергии процессором: режим полубодрствования и глубокого сна (с отключением процессора). Самый последний 3-й режим без особой на то нужды никогда не употребляется, он предназначен на активацию работы процессора со стороны внешней причины (допустим, кнопки), а не таймера.

ATREMS:E627,3A=0000 - обеспечивает режим активного питания на старте, регистр S3A содержит начальное значение регистра режима сна S39.

Режим 003 нельзя использовать, поскольку пробудить такой модуль от сна при помощи радиоканала или проводной связи, при отсутствии специально предусмотренных внешних воздействий, можно будет только при помощи аварийных мероприятий. Глупости натворить легко, этот путь никак не защищен, будьте осторожнее.

ATREMS:E627,39=0002 меняет при помощи регистра S39 текущий режим на режим максимально возможный для радиоканала.

Можно предусмотреть пробуждение от сна (в первых двух безопасных режимах 0001 и 0002) при наличии активности в канале UART - регистр S11, 9 бит. После чего по последовательному каналу (по проводной связи) можно управлять модулем также, как и по радиоканалу, например, для изменения конфигурации, режима работы и т.п. По умолчанию S11=0005, установка 1 в 9-м бите приведет к S11=205.

Внимание. Стоит обратить особое внимание, что при указании режима сна в регистрах пробуждающих модуль таймеров используется порядковый номер режима 1,2,3,4. Это связано с тем, что значение 0000 занято отключением таймера.

Раздел 1.5. Отключаем и зажигаем светодиоды

Рядом с микроконтроллером расположена пара светодиодов на выходах: PA7 - красный, PA6 - зеленый. В сброшенном состоянии выходов регистра (нулевом) они горят.


Рисунок 23. Схема отладочной платы



Ножки PC7, PC6, ... , PC0, PB7, PB6, ... , PB0, PA7, PA6, ... , PA0 образуют число в двоичном представлении, используемом для реконфигурации значений на выходах микроконтроллера с помощью регист23ра S18. Не все из них определены как выходы, и только часть снабжена светодиодами.

ATREMS:E627,18=00000040 отключает красный светодиод PA7, 00000080 - зеленый PA6, 000000С0 - оба этих светодиода.

На монтажной плате установлено еще два зеленых светодиода: LED2 связан с PС0, LED1 связан с PB6. Их тоже можно включать и выключать, переворачивая биты S18.

ATREMS:E627,18=00004000 отключает зеленый светодиод LED1, 00010000 - зеленый светодиод LED2.

Регистр S19 содержит стартовое значение регистра S18, изменение его битов приведут к изменению свечения светодиодов после отключения и включения модуля. Пара соседних регистров S16-S17 служат для назначения и инициализации конфигурации входов-выходов микроконтроллера на старте, по умолчанию S17=000142CC. Функционально часть светодиодов служит, отражая подачу питания на плату, часть связана с некоторыми фабрично заложенными реакциями. В режиме сна для экономии батарей их стоит отключить все.

Раздел 1.6. Считываем значения датчиков

Модуль ETRX3 имеет четыре аналоговых входа, ETRX2 – только два. У учебного комплекта c ETRX2 питание датчиков не отключается. Температурный датчик - National Semiconductor LM61 подпаян через джампер к 9 входу: первому АЦП A/D1.

У ETRX3 сенсоры температуры и света подключены к первому и последнему (четвертому) АЦП. За активацию АЦП отвечает регистр S15: это биты с порядковыми номерами D и 11 в шестнадцатиричной системе счисления.

ATREMS:E627,15D=1 и ATREMS:E627,1511=1 активирует оба интересных нам канала АЦП.

С помощью регистра S18 на ножки сенсоров подается питание: отвечают биты 2 и 3, соответственно, тогда назначения

ATREMS:E627,182=1 и ATREMS:E627,183=1 включают сенсоры.

Стартовое значение S18 комментировалось ранее, оно содержится в регистре S19. Для экономии энергии желательно включать датчики только на время проведения измерений. Остается считать значения обоих АЦП (температуру и освещенность) из регистров S1F и S22

ATREMS:E627,1F? и ATREMS:E627,22? возвращает показания сенсоров температуры и света.

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

Раздел 1.7. Использование таймера

Точкой сбора данных, ульем или стоком (sink), в автоматических системах сбора данных естественно назначить координатор.

ATS104=1 взводит 4-й бит регистра S10 координатора, назначая его точкой сбора.

С помощью регистра S15 АЦП конечного модуля активированы, с помощью регистра S18 питание датчиков обеспечено. Первые четыре таймера, как отмечалось, обеспечивают функционирование сети. У микроконтроллера их восемь. Программируются они назначением периода, причем значение 0004 отвечает 1 секунде.

ATREMS:E627,31=0008 задает в регистре S31 период 2 секунды первого свободного таймера (пятого).

Для того, чтобы просыпание микросхемы от этого таймера имело смысл, в соседнем регистре S32 задается функция из перечня функций. Например, функция за номером 0110 вынуждает передать на приемник (точку стока) данные с первых двух АЦП. Для того, чтобы перезапустить таймер, надо взвести старший знаковый разряд, выйдет 8110.

ATREMS:E627,32=8110 обеспечивает циклическую передачу данных от первых двух АЦП в точку сбора данных, улей.

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

Автоматический режим имеет тот недостаток, что обязывает компьютер с координатором ожидать и регистрировать приходящие сообщения, притом питание сенсоров представляет собой отдельную заботу, их надо включать и выключать особо. Учитывая, что спящий модуль по радиоканалу (благодаря таймерам) бодрствует, проще опрашивать модули по инициативе компьютера.

Раздел 1.8. Передача данных

В ряде практических случаев модуль беспроводной связи может использоваться для передачи на расстояние команд на подсоединенный через UART микроконтроллер. В тестовом режиме подключим UART (ножки PB1, PB2) модуля ETRX через USB-переходник к компьютеру.

В Windows новообразованному каналу связи будет присвоен номер COM-порта, отличающийся от номера координатора. Частота обмена информацией та же самая: 19200 бод в секунду. Запустим вторую терминальную программу. Теперь мы обрели возможность отслеживать передаваемую информацию в канале связи: не только факт передачи, но и факт приема.

AT+UCAST:E627=Hello передает через координатор адресованную модулю E627 текстовую информацию "Hello". На выходе UART фиксируется прием сообщения в формате UCAST:000D6F000026C5A9,05=Hello.

Принимаемое модулем частное сообщение (unicast) от 000D6F000026C5A9 (идентификатор координатора) содержит, помимо прочего, количество символов 5 передаваемого текста и сам текст "Hello".

Данные можно передавать более широковещательно, безадресно (broadcast).

AT+BCAST:00,Hello передает через координатор сообщение безадресно (режим 00). На выходе UART фиксируется прием сообщения в формате BCAST:000D6F000026C5A9,05=Hello.

Существуют более гибкие методы адресации, когда адрес уточняется обращением к справочной таблице адресов (косвенная адресация MultiCast). Потребность в них возникает при увеличении размера сети, ведущего к увеличению трафика.

AT+DMODE:E627 переводит модуль в режим последовательной передачи данных, при котором приемный модуль принимает (без отклика о доставке) любые переданные в канал данных сообщения, скажем, Hello.

+++ закрытие канала передачи данных на обеих сторонах помечается сообщением CLOSED.



Глава 5. Справочная информация

В таблице 1 приведен обзор устройств типа ZigBee, упомянутых в настоящем документе.

Таблица 1: Обзор устройств

Тип устройства Наименование ZigBee наименование
COOКоординаторZigBee Coordinator координатор (ZC)
FFDМаршрутизаторZigBee Router (ZR)
ZEDКонечное устройство (не спящее)ZigBee End Device (ZED)
SEDСпящее конечное устройствоZigBee End Device (ZED)
MEDМобильное конечное устройствоZigBee End Device (ZED)


Наименования "полно-функциональное устройство" (FFD) и "редуцированное устройство" (RFD) устарели, хотя эти аббревиатуры встречаются в технических описаниях. Каждый координатор или маршрутизатор (роутер) может поддерживать до 16 или 32 (ETRX3) оконечных спящих или мобильных устройств. Мобильное устройство исчезает из сети ввиду перемещения его, в остальном оно сходно со спящим. В состояние низкого энергопотребления вводятся только спящие конечные модули, координатор и маршрутизаторы поддерживают связность такой сети. Сообщения конечных устройств не буферизируются, отсылаются в сеть немедленно.

5.1. Топология сети

Сеть состоит из координатора (ZC), который создает сеть, маршрутизаторов-роутеров (ZR) и конечных устройств (ZED). Координатор совмещает в себе функции маршрутизатора, каждый маршрутизатор поддерживает до 16-ти конечных устройств (32 на ETRX3 серии) в любом сочетании спящих и мобильных (подвижных). Подвижное устройство исчезает из поля зрения маршрутизатора не по причине сна, а вследствие своего перемещения. По умолчанию модуль присоединяется к PAN как маршрутизатор, но изменением содержимого S0A его можно сделать конечным устройством. Невозможно сменить роль координатора или траст центра.

В соответствии с ZigBee PRO стандартом доступна сеточная, но не древовидная структура. Структура типичной сети ZigBee показана на рисунке. Она включает три типа узлов: координатор, маршрутизаторы и конечные узлы (спящие и мобильные). Уникальной функцией координатора является задача образования сети, которая заключается в сканировании эфира и выборе наименее загруженного частотного канала. Маршрутизаторы в простейшем случае должны иметь стационарное питание и стационарное положение в пространстве. Они ретранслируют пакеты данных от других узлов и сами могут быть источниками информации.

Важной особенностью технологии ZigBee для систем коммерческого учета является возможность защиты передаваемых данных. Шифрование данных осуществляется при помощи алгоритма AES-128 c симметричным ключом, как во время передачи данных в сети, так и во время ее образования. Предварительное занесение ключей шифрования во все узлы позволяет, с одной стороны, не допустить в сеть посторонние устройства и подменить передаваемые данные, а с другой стороны – делает невозможной расшифровку информации, полученной путем прослушивания эфира.

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

Способность находить оптимальный маршрут и функционировать при выходе из строя отдельных узлов, малое энергопотребление, возможность защиты информации – важнейшие достоинства ZigBee-сети, позволяющие построить недорогую и надежную систему сбора данных с конечными устройствами, питающимися от батарей.

5.2. АТ-стиль команд

Для упрощения общения с модулями используется текстовой AT-стиль команд, похожий на стандартный Hayes-язык управления модемами.

Каждой команде должно предшествовать "AT" префиксе. Любые иные данные не принимаются или вызывают сообщение об ошибке. Команды не могут быть объединены в группу: последовательности AT команд в одну строку не поддерживаются. Команда завершается кодом перевода каретки CR. Команде следуют: необязательный ответ, который включает в себя CR-LF-отклик-CR-LF, в том же формате идет сообщение об ошибке или совет (promt).

Пример чтения нулевого регистра S00:

ATS00? CR
CR LF FFFF CR LF
CR LF ОК CR LF

Далее, для простоты, будем опускать коды CR и LF. Перед подачей следующей команды рекомендуется подождать финальное "OK" или "ОШИБКА: XX". Изменением содержимого регистров S0E или S0F можно отключить информационное сопровождение операций, снижая трафик сети.

У ETRX2 размер самой длинной команды диктует 128-байтовый FIFO-буфер входящих символов. Существуют меры для предотвращения переполнения буфера входной последовательности, этот режим контролируется регистром S12.

Сток (улей, слив, sink) - особенность Telegesis-модулей. Когда узел определяется как сток установкой 4-го бита регистра S10, его адрес транслируется остальной части сети. Другие узлы могут отправлять сообщения на сток-узел с помощью AT + SCAST или различных встроенных функций. Это упрощает разработку прикладного программного обеспечения, поскольку нет нужды знать EUI64-адрес стока заранее. Устройства узнают о стоке, когда (1) они получают регулярные трансляции из стока (2) их принуждают послать запрос на адрес стока установкой бита 8 регистра S10 (первое сообщение в сток теряется) (3) используется AT + SSINK команда. Чтобы уменьшить трафик к конечным устройствам, в работе они не получают рекламные трансляции стока, а информируются об адресе стока на момент присоединения к PAN. В противном случае необходимо установить бит 8 регистра S10 на конечном устройстве.

5.3. Общая информация об ETRX-модулях

Миниатюрные ETRX-модули могут быть встроены практически в любое техническое устройство. Они имеют низкую стоимость и низкое энергопотребление. Основываются на лидирующем в отрасли EmberZNet ZigBee-стеке. Интеграция в широкий спектр приложений облегчена современным дизайном и простым стилем текстовых AT-команд управления. Сколь-нибудь серьезный опыт работы с модулями не требуется. Интеграция Telegesis ZigBee модулей существенно сокращает выход продукции на рынок. Стоит отметить, что хотя текстовые АТ-команды действительно весьма востребованы потребностью производства в уменьшении времени разработки новых устройств, ничто не мешает опытному специалисту, использующему технологии фирмы Ember, задать свою собственную версию прошивки. Прошивка R3XX была протестирована и сертифицирована для MSP (производителя определенного профиля) согласно требованиям и тестам ZigBee Альянса. Данная сертификация гарантирует, что:

- Модули под управлением Telegesis AT-команд не будут вмешиваться (нанося вред) в уже существующие ZigBee-сети.
- Модули под управлением Telegesis AT-команд могут присоединяться к маршрутизаторам сторонней ZigBee PRO сети.
- Модули под управлением Telegesis AT-команд могут давать использовать свои возможности маршрутизации.

Для того, чтобы использовать термин ZigBee или логотип ZigBee в документации по продукту, необходимо быт членом альянса ZigBee в год выпуска продукции и придерживаться общего профиля приложения. Можно обращаться в фирму Telegesis для дополнительной информации о сертификации.

АТ-команды ETRX2 и ETRX3 модулей серии ZigBee PRO комментируемой ниже прошивки R304 несколько отличаются (незначительно) от команд прошивок предыдущих серий. Стандарт R3XX не соотносим с более ранними версиями ZigBee, которые не выполняют ZigBee PRO (набор ZigBee 2007 года) соглашений. Имеет место частичная аппаратная совместимость: R3XX прошивка будет работать на серии модулей ETRX2, тогда как R2XX прошивка не будут работать на серии модулей ETRX3. Прошивку большинства модулей можно обновлять, это ETRX2USB, ETRX2, ETRX2-PA, ETRX2HR, ETRX2HR-PA, ETRX351, ETRX357, ETRX351-LR, ETRX357-LR, ETRX351HR, ETRX357HR, ETRX351HR-LR, ETRX357HR-LR, ETRX2CF, ETRX2EAP и ETRX2RTR. У ETRX2 загрузчик вызывается командой AT + BLOAD (ETRX2) или, на аппаратном уровне, заземлением контакта A/D2 – полезно убедиться, что этот вывод не заземлен во время пуска и сброса (по Reset). По аналогии, у ETRX3 загрузчик программы инициируется заземлением вывода PA5: с ним стоит быть осторожней.

Устройство, присоединившееся к сети (координатор, маршрутизатор или конечное устройство) сохраняет параметры, даже если оно временно выключено. Оно является участником своей первоначальной PAN-сети, предполагая (при включении), что PAN по-прежнему существует. При этом не стоит забывать, что у конечного устройства есть объективные потребности обновления S-регистров сбросом их к начальным значениям для смены режима сна, например, или поиска "новых родителей", если оно зевнуло смену сетевого ключа.

Таблица 2: Типы AT команд

ATXXX?Команды чтения параметров c "?".
ATXXX=[…]Команды записи параметров включают знак "=".
ATXXXПрочие команды управления модулем.


Когда бит 7 регистра S12 установлен в 1, каждый ответ или приглашение (совет) начинается с STX и заканчивается ETX, что упрощает их поиск и интерпретацию обрабатывающим команды процессором.

Каждый параметр должен быть введен в формате, отвечающем стилю написания AT-команды. Необязательные параметры ниже помечаются квадратными скобками [...].

Таблица 3: Различные форматы параметров

nЧисла от 0-9
sЗнаки
bБиты (0 or 1)
cСимволы
dataДанные
channelДесятичный канал (IEEE 802.15.4 канал 11-26)
password8-символьный пароль
XXШестнадцатеричное число имеет цифры 0-9, a-f или A-F (8 бит)
XXXXШестнадцатеричное число имеет цифры 0-9, a-f или A-F (16 бит)
PIDШестнадцатеричный идентификатор PAN ID (0000 to FFFF)
EPIDШестнадцатеричное расширенный PAN ID (64 бит)
EUI6464-битный шестнадцатиричный адрес
ioread32-битный шестнадцатиричное число для S1A
ClusterListСписок кластерных идентификаторов
FirmwareRevisionНомер прошивки


Следующие сообщения (prompts) могут появляться во время работы ETRXn модулей. Большинство их можно отключить с помощью регистров S0E и S0F.

Таблица 4: Обзор сообщений

OKOK terminator
ERROR:XXПроизошла ошибка с номером XX
ACK:XXСообщение XX получено
NACK:XXСообщение XX не прошло
SR:XX,EUI64,NodeID,…Получено сообщение Route Record
BCAST:[EUI64,]XX=dataСообщение из XX символов получено (Broadcast)
MCAST:[EUI64,]XX=dataСообщение из XX символов получено (Multicast)
UCAST:[EUI64,]XX=dataСообщение из XX символов получено (Unicast)
SDATA:[EUI64,],ioread,A/D1,A/D2,sequenceNo,VccПришли данные АЦП A/D1 и A/D2 или ADC0 и ADC1
FN0130:[EUI64],NodeID,ioread,sequence no,
S46,[A/D1],[A/D2],[A/D3],[A/D4]
Пришли данные от активированных АЦП
COO:EUI64,NodeIDОтклик координатора
FFD:EUI64,NodeIDОтклик маршрутизатора
SED:EUI64,NodeIDОтклик конечного устройства SED
MED:EUI64,NodeIDОтклик конечного устройства MED
ZED:EUI64,NodeIDОтклик конечного устройства ZED
NEWNODE: NodeID,EUI64,Parent NodeIDПодсоединение нового модуля сети
LeftPANЛокальный модуль покинул сеть
LostPANКонечное устройство потеряло контакт с родителем
JPAN:channel,PID,EPIDЛокальный модуль присоединился к сети с заданными параметрами
SINK:EUI64,NodeIDВыбрана новая точка слива (Sink)
ADSK:EUI64,NodeIDПолучено сообщение от точки слива (Advertisement)
SREAD:NodeID,EUI64,Register,errorcode[=Data]Данные S-регистра
SWRITE:NodeID,EUI64,errorcodeОтклик на запись в S-регистр
DataMODE:NodeID,EUI64Режим передачи данных открыт удаленно
DataMODE:NodeID,EUI64,errorcodeОтклик на попытку открыть режим передачи данных
OPENРежим передачи данных открыт
CLOSEDРежим передачи данных закрыт
TRACK:EUI64 R,EUI64 S,RSSI,i/o read,
AD1,AD2,Vcc,S46
Трэк: EUI источника и получателя, RSSI, входные данные, Vcc & S46-контур источника
TRACK2:EUI64 R,EUI64 S,RSSI,I/O read,S46Трэк: EUI источника и получателя, RSSI, I/O данные, и S46-контур источника
PWRCHANGE:XXXXЛокальное устройство сменило режим питания на XXXX
AddrResp:errorcode[,NodeID,EUI64]Отклик на запрос адреса (или на поиск роутера)
RX:EUI64,NodeID,profileID,destinationEndpoint,
SourceEndpoint,clusterID,length:payload
Входящее сообщение не адресовано финальной точке AT-команды. EUI64 показывается, будучи включенным в заголовок фрейма
NM:ES REPORT WARNINGПревышен порог 16-ти энергетических посылов, потерян пакет
ENTERING BLOADТекущая загрузка инициирована другим модулем


Следующая таблица дает краткий справочник всех доступных команд.

Таблица 5: Обзор Команд

Конфигурирование и управление модулем
ATIОтобразить идентификатор продукции
ATZКоманда перезагрузки Reset
AT&FВосстановить фабричные настройки
AT+BLOADВойти в меню загрузчика
AT+CLONEКлонировать с модуля на модуль (ETRX2)
AT+PASSTHROUGHЗакачать прошивку (ETRX3)
AT+RECOVERRecover FromFailed Clone Attempt
ATSДоступ к S-регистру
ATREMSУдаленный доступ к S-регистру
ATSALLУдаленный доступ к S-регистру
AT+TOKDUMPОтобразить все S-регистры
Конфигурирование и управление сетью
AT+ESCANСканировать энергию всех каналов
AT+PANSCANСканировать неподключенные модули
AT+ENСоздать Personal Area Network (PAN)
AT+JNПрисоединиться к сети
AT+JPANПрисоединиться к выделенной сети
AT+SJNПрисоединиться молча
AT+DASSL</td>Отсоединить локальный модуль от сети
AT+DASSRОтсоединить удаленный модуль от сети (ZDO)
AT+NОтобразить информацию о сети
AT+NTABLEОтобразить Neighbour-таблицу (ZDO)
AT+RTABLEОтобразить Routing-таблицу (ZDO)
AT+IDREQЗапрос ID модуля (ZDO)
AT+EUIREQЗапрос EUI модуля (ZDO)
AT+NODEDESCЗапрос описания модуля (ZDO)
AT+POWERDESCЗапрос описания питания (ZDO)
AT+ACTEPDESCЗапрос Active Endpoint List модуля (ZDO)
AT+SIMPLEDESCЗапрос Endpoint’s Simple Descriptor модуля (ZDO)
AT+MATCHREQНайти модуль по совпадению Specific Descriptor (ZDO)
AT+ANNCEАнонсировать локальный модуль (ZDO)
AT+SRУстановить Source Route для удаленного модуля
AT+FNDSRНайти Source Route к удаленному модулю
AT+POLLЗапрос родительских данных (parent)
AT+REJOINПереприсоединить сеть
AT+SNСканировать сеть
AT+KEYUPDОбновить ключ сети (ZDO)
AT+BECOMETCНазначить trust-центр локальных модулей
AT+BECOMENMНазначить менеджер локальных модулей
AT+CCHANGEСменить канал сети
Сообщения
AT+ATABLEОтобразить таблицу адресов
AT+ASETЗаписать строку таблицы адресов
AT+MTABLEОтобразить Multicast таблицу
AT+MSETЗаписать строку Multicast таблицы
AT+BCASTПередать сообщение Broadcast
AT+BCASTBПередать бинарные данные (Broadcast)
AT+UCASTПередать сообщение Unicast
AT+UCASTBПередать бинарные данные (Unicast)
AT+SCASTПередать данные в точку слива (Sink)
AT+SCASTBПередать бинарные данные (Sink)
AT+SSINKИскать точку слива Sink
AT+MCASTПередать сообщение Multicast
AT+MCASTBПередать бинарные данные (Multicast)
AT+DMODEВойти в режим передачи данных (Serial Link Mode)
+++Покинуть режим передачи данных
AT+IDENTНастройка Remote Devboard
AT+RDATABПослать бинарные Raw Data





Таблица 6: AT команды

Выполнить команду:
ATI

Примечание: модули до 2007 года отличаются форматом вывода DeviceName.
Реакция:
Telegesis DeviceName
Firmware Revision EUI64 OK


DeviceName – код устройства, Firmware Revision – версия прошивки и EU164 - имя (идентификатор) модуля.
Выполнить команду:
ATZ
Реакция:
Перегрузка (reset)
Все не сбрасываемые (non-volatile) S-регистры сохраняют назначенные значения: если модуль был частью сети, он остается в ней
Выполнить команду:
AT&F

Реакция:
Полная перезагрузка, все не сбрасываемые (non-volatile) S-регистры приобретают фабричные значения, модуль покидает сеть, к которой он присоединился.
Команда чтения:
ATSXX[x[x]]?

Примеры:
ATS00?
ATS0AE?
ATS1812?

XX – номер считываемого S-регистра. В качестве опции разрешается добавлять номер [x] бита линейки из 16 бит, шестнадцатеричный формат [xx] применяется для 32-битовых регистров.
Реакция:
ДАННЫЕ OK
или ERROR:КОД ОШИБКИ

Модуль передает содержимое выбранного S-регистра или выдает сообщение об ошибке.

Все 16- или 32-битные регистры доступны с точностью до бита, указываемого опцией [x[x]], значение бита 0 или 1.
Команда записи:
ATSXX[x[x]]=ДАННЫЕ[,ПАРОЛЬ]

Примеры:
ATS00=3FFC
ATS0AE=1:password

Примечание: запись в некоторые S-регистры подпаролена. Пароль, по определению, "password". Некоторые регистры предназначены только для чтения, при попытке записи в них следует сообщение об ошибке. Опцией можно указывать индивидуальный бит [x[x]], имеющий значение 0 или 1.
Реакция:
OK
или ERROR:КОД ОШИБКИ

Данные записываются в S-регистр номер XX и, если разрешено, также в non-volatile память (сохраняющую значение при выключении питания). Формат данных индивидуален для каждого S-регистра и приводится в описании регистров. Опцией можно указывать индивидуальный бит [x[x]], имеющий значение 0 или 1.
Команда удаленного чтения:
ATREMS:АДРЕС,XX[X[x]]?

Примеры:
ATREMS:000D6F00000AAC93,00?
ATREMS:000D6F00000AAC93,0AE?
ATREMS:000D6F00000AAC93,1812?

АДРЕС может быть идентификатором модуля EUI64, NodeID или индексом адресной таблицы, XX – номер читаемого S-регистра. В качестве опции разрешается добавлять номер [x] бита линейки из 16 бит, шестнадцатеричный формат [xx] применяется для 32-битовых регистров, значение бита 0 или 1.
Реакция:
SEQ:XX OK
или ERROR:КОД ОШИБКИ

Модуль выдает значение удаленного S-регистра, опираясь его адрес (unicast-сообщение). Это значит, что высылается также порядковый номер сообщения (предваряется символами ACK или NACK).

Сообщение:
SREAD:NodeID,EUI64,РЕГИСТР,КОД ОШИБКИ[=ДАННЫЕ]

NodeID и EUI64 - идентификаторы удаленного модуля, РЕГИСТР – номер запрошенного регистра, КОД ОШИБКИ равен 00 (при успешном чтении) или значению, раскрывающему суть затруднений. Содержимое регистра передается только при успешном чтении.
Команда удаленной записи:
ATREMS:АДРЕС,XX[x[x]]=ДАННЫЕ[,ПАРОЛЬ]

Примеры:
ATREMS:000D6F0000012345,00=3FFC
ATREMS:000D6F0000012345,0AE=1:password

АДРЕС может быть идентификатором модуля EUI64, NodeID или индексом адресной таблицы, XX – номер читаемого S-регистра. В качестве опции разрешается добавлять номер [x] бита линейки из 16 бит, шестнадцатеричный формат [xx] применяется для 32-битовых регистров, значение бита 0 или 1.

Примечание: некоторые S-регистры требуют пароль для записи. Пароль, по умолчанию, "password". Опцией можно указывать индивидуальный бит [x[x]], имеющий значение 0 или 1.

Реакция:
SEQ:XX OK
или ERROR:КОД ОШИБКИ

Данные записываются в S-регистр номер XX и, если разрешено, также в non-volatile память (сохраняющую значение при выключении питания). Формат данных индивидуален для каждого S-регистра и приводится в описании регистров. Высылается порядковый номер сообщения (предваряется символами ACK или NACK).

Сообщение:
SWRITE:NodeID,EUI64,КОД ОШИБКИ

NodeID и EUI64 - идентификаторы удаленного модуля, КОД ОШИБКИ равен 00 (при успешной записи) или значению, раскрывающему суть затруднений.
Выполнить команду:
AT+PANSCAN

Используется: любые модули

Примечание: сканирование активных сетей может занять до 4 секунд времени.
Реакция:
+PANSCAN:КАНАЛ,PID,EPID,XX,b OK
или ERROR:КОД ОШИБКИ

Указывается список всех найденных сетей. Данный КАНАЛ содержит код выделенного канала связи, PID - идентификатор сети (PAN ID), EPID – расширенный идентификатор (extended PAN ID), XX – профиль ZigBee-стека (00 = Custom, 01 = ZigBee, 02 = ZigBee PRO) и b отражает готовность присоединить модуль (1 отвечает готовности). Модуль не присоединяется ни к одной из найденных сетей.
Выполнить команду:
AT+EN

Используется: любые не присоединившиеся к сети модули.

Примечание: выполнение этой команды приводит к назначению локального устройства координатором COO (или доверительным центром – Trust Centre), на организацию сети тратится до 16 секунд. Команда выполняется только на модуле, еще не ставшем частью сети.
Реакция:
JPAN:КАНАЛ,PID,EPID OK
или ERROR:КОД ОШИБКИ

Локальный модуль становится координатором и определяет энергетические уровни каналов, указанных в S00. Затем образует сеть PAN с оригинальным PAN ID и расширенным extended PAN ID идентификаторами на наиболее спокойном канале. Если PAN ID и/или extended PAN ID указаны в S02 или S03, они используются вместо случайно назначаемых, если они ранее не засветились в прочих сетях.
Выполнить команду:
AT+DASSL

Используется: на всех устройствах

Примечание: осторожнее с координатором, иначе дезорганизуем сеть PAN.
Реакция:
OK или ERROR: КОД ОШИБКИ

Сообщение: LeftPAN

Вынуждает устройство покинуть сеть PAN.
Команда чтения:
AT+N?

Используется: на всех устройствах

Реакция:
+N=ТИП,КАНАЛ,ЭНЕРГИЯ,PID,EPID
или +N=NoPAN затем следует OK

ТИП отвечает функциональности модуля (COO, FFD, ZED, SED, MED), ЭНЕРГИЯ – выходной энергетический отклик модуля в дБм, КАНАЛ отвечает IEEE 802.15.4 номеру радио-канала (11-26), PID – идентификатор PAN ID и EPID – расширенный идентификатор extended PAN ID.
Выполнить команду:
AT+SN[:nn]

Сканирование nn звеньев (hops) цепочки присоединенных модулей. Если nn = 01, тогда выдаются только прямые соседи, значение nn = 00 отвечает всей сети.

Используется: COO, SINK

Примечание: по умолчанию длина цепочки nn=30. Команда имеет смысл только для координатора COO или стока (sink)
Реакция:
OK или ERROR:КОД ОШИБКИ

Сообщения:
FFD:EUI64,NodeID [,syy,zz]
MED:EUI64,NodeID [,syy,zz]
SED:EUI64,NodeID [,syy,zz]
ZED:EUI64,NodeID [,syy,zz]


Параметры: nn ранжируется 00 до 30.

Если бит C регистра S10 установлен, то передается RSSI-уровень (syy в дБм) и LQI (шестнадцатеричное zz) последнего звена. Источники сообщений тоже отображаются.
Выполнить команду:
AT+BCAST:nn,ДАННЫЕ

Example:
AT+BCAST:00,Hello world

Используется: на всех устройствах

Примечание: безадресные broadcast-сообщения не экономны! Спецификация ZigBee разрешает любому модулю ретранслировать до 8 таких сообщений в течении каждых 8-ми секунд.
Реакция:
OK или ERROR:КОД ОШИБКИ

Параметры: nn ранжируется от 00 до 30.

Передается максимум до 82 байт (с адресом EUI только 74 байт). Отклик OK отвечает успешному посылу, что не гарантирует прием сообщения на приемной стороне. Чтобы гарантированно передать данные конкретному модулю, используйте адресные unicast-сообщения. Только nn-звеньев в цепочке модулей получат сообщение. Случай nn = 01 отвечает рассылке соседям, вариант n = 00 рассчитан на всю сеть (максимум до 30 звеньев).

Сообщение:
BCAST:[EUI64,]ДЛИНА=ДАННЫЕ

Каждый модуль PAN, получающий широковещательное broadcast-сообщение, получит адрес источника EUI64, ДЛИНУ сообщения и пересланные ДАННЫЕ. Адрес EUI64 отображается, если разрешено присоединять такие заголовки (бит 0 регистра S10 не разрешает рассылку EUI64).
Выполнить команду:
AT+UCAST:АДРЕС=ДАННЫЕ

Example:
AT+UCAST:000D6F0000012345,Hello

Используется: на всех устройствах

Примечание: адресное сообщение (unicast) использует идентификатор EUI64, NodeID или индекс адресной таблицы приемника. Передается до 82 байт, срезанных на 8 байт расширенного идентификатора заголовка сети EUI (по умолчанию) и еще на 2 байта на звено в случае предвычисления источника. Последнее обстоятельство трудно учитывается, при том, что его нельзя вполне игнорировать.

Реакция:
SEQ:XX OK
или ERROR:КОД ОШИБКИ

Уведомление:
ACK:XX или NACK:XX

Сообщение длиной до 82 байт распространяется вдоль цепочки длиной до 30 звеньев (hops). Успешный прием помечается номером сообщения и "OK", помимо того генерируется уведомление "ACK" или "NACK", если сообщение не воспринято. NACK не связан с фактом утраты сообщения в сети, это информация о его неприятии конечным модулем.

Сообщение:
UCAST:[EUI64,]ДЛИНА=ДАННЫЕ

EUI64 – адрес источника, ДЛИНА сообщения задается шестадцатиричным числом. Адрес EUI64 отображается только, если он присутствует в заголовке (бит 0 регистра S10 не разрешает присоединять адрес EUI64 к исходящему сообщению).
Выполнить команду:
AT+SCAST:ДАННЫЕ

Example:
AT+SCAST:Hello world

Используется: на всех устройствах

Примечание: если бит 8 регистра S10 установлен и сток (sink) не откликается на три последовательные трансмиссии, он полагается недостижимым (и новый ищется). Уведомления ACK и/или NACK могут быть дезактивированы регистром S0E. Адрес EU164 укорачивает длину сообщения до 74 байт: максимальная длина сообщения в 82 байта сокращается 8-ю байтами расширенного EUI заголовка (по умолчанию) и 2 байтами на звено в случае предвычисления источника. Последнее обстоятельство трудно учитывается, при том, что его нельзя вполне игнорировать.

Реакция:
SEQ:XX OK или ERROR: КОД ОШИБКИ

Уведомление:
ACK:XX или NACK:XX

Параметры: до 82 байт передаются на сток (sink). Сообщению присваивается номер и "OK". Успешный прием помечается номером сообщения и "OK", помимо того генерируется уведомление "ACK" или "NACK", если сообщение не воспринято. NACK не связан с фактом утраты сообщения в сети, это информация о его неприятии конечным модулем.

Сообщение:
UCAST:[EUI64,]ДЛИНА=ДАННЫЕ

EUI64 – адрес источника, ДЛИНА сообщения задается шестнадцатеричным числом. Адрес EUI64 отображается только, если он присутствует в заголовке (бит 0 регистра S10 не разрешает присоединять адрес EUI64 к исходящему сообщению).
Команда чтения:
AT+SSINK

Поиск стока (sink) в сети рассылкой безадресных сообщений (broadcast), вынуждающие все точки стока отвечать. По умолчанию, если сток уже известен и не нашлось более выгодной точки, никаких сообщений не генерится. Индекс заранее известной точки стока в таблице адресов равен 05.

Используется: на всех устройствах
Реакция:
OK или ERROR: КОД ОШИБКИ

Сообщение:
SINK:EUI64,NodeID или ADSK:EUI64,NodeID

Выполнить команду:
AT+DMODE:АДРЕС

Где АДРЕС-ом могут быть EUI64, NodeID или индекс таблицы адресов.

Используется: на всех устройствах

Примечание: переход в режим последовательной передачи данных на конечные устройства, скорость зависит от их настроек. В этом режиме отклики сети отключены. Отмечаются идентификаторы удаленного устройства по DataMODE:NodeID,EUI64 OPEN.

Реакция:
SEQ:XX OK
или ERROR:КОД ОШИБКИ

Сообщение: ACK:XX или NACK:XX

Сообщение: DataMODE:NodeID,EUI64,КОД ОШИБКИ [OPEN]

Система переходит в режим передачи данных при нулевом коде ошибки.
Выполнить команду:
+++

Сигнал покинуть режим передачи данных +++ должен следовать не ранее 500 мс после приема последнего символа последнего сообщения. Если сообщение содержит +++, то режим передачи данных гарантированно сохранится, если между +++ и предыдущим переданным символом прошло менее 250 мс.

Используется: на всех устройствах
Реакция:
CLOSED




Таблица 7: S-регистры

SXXОбзор S-регистровЛокальный R/WУдаленный R/W
S00Маска канала(•/•)(•/•)
S01Уровень энергии передачи(•/•)(•/•)
S02Предпочитаемый PAN ID(•/•)(•/•)
S03Предпочитаемый расширенный PAN ID(•/•)(•/•)
S04Локальный EUI(•/–)(•/–)
S05Локальный NodeID(•/–)(•/–)
S06Родительский EUI(•/–)(•/–)
S07Родительский NodeID(•/–)(•/–)
S08Ключ сети Network Key(∼/•)(∼/•)
S09Ключ связи Link Key(∼/•)(∼/•)
S0AОсновная функция(•/•)(•/•)
S0BСчитываемое пользователем имя(•/•)(•/•)
S0CПароль password(•/•)(•/•)
S0DИнформация об устройстве(•/∼)(•/∼)
S0EАктивация сообщений 1(•/•)(•/•)
S0FАктивация сообщений 2(•/•)(•/•)
S10Расширенная функция(•/•)(•/•)
S11Специфика устройства(•/•)(•/•)
S12Настройка UART(•/•)(•/•)
S13Возможность Pull-up(•/•)(•/•)
S14Возможность Pull-down(•/•)(•/•)
S15Конфигурация входов-выходов I/O(•/•)(•/•)
S16Направление I/O Port (volatile)(•/•)(•/•)
S17Начальное значение S16(•/•)(•/•)
S18Буфер порта выходов I/O (volatile)(•/•)(•/•)
S19Начальное значение S18(•/•)(•/•)
S1AБуфер порта входов I/O (volatile)(•/∼)(•/∼)
S1BСпециальная функция Pin 1 (volatile)(•/•)(•/•)
S1CНачальное значение S1B(•/•)(•/•)
S1DСпециальная функция Pin 2 (volatile)(•/•)(•/•)
S1EНачальное значение S1D(•/•)(•/•)
S1FАЦП A/D1 (ETRX3: ADC0)(•/∼)(•/∼)
S20АЦП A/D2 (ETRX3: ADC1)(•/∼)(•/∼)
S21АЦП A/D3 (ETRX3: ADC2)(•/∼)(•/∼)
S22АЦП A/D4 (ETRX3: ADC3)(•/∼)(•/∼)
S23Функциональность прерывания IRQ0(•/•)(•/•)
S24Функциональность прерывания IRQ1(•/•)(•/•)
S25Функциональность прерывания IRQ2(•/•)(•/•)
S26Функциональность прерывания IRQ3(•/•)(•/•)
S27Функциональность загрузки 1 Boot-up(•/•)(•/•)
S28Функциональность при присоединении к сети(•/•)(•/•)
S29Пауза Timer/Counter 0(•/•)(•/•)
S2AФункциональность для Timer/Counter 0(•/•)(•/•)
S2BПауза Timer/Counter 1(•/•)(•/•)
S2CФункциональность для Timer/Counter 1(•/•)(•/•)
S2DПауза Timer/Counter 2(•/•)(•/•)
S2EФункциональность для Timer/Counter 2(•/•)(•/•)
S2FПауза Timer/Counter 3(•/•)(•/•)
S30Функциональность для Timer/Counter 3(•/•)(•/•)
S31Пауза Timer/Counter 4(•/•)(•/•)
S32Функциональность для Timer/Counter 4(•/•)(•/•)
S33Пауза Timer/Counter 5(•/•)(•/•)
S34Функциональность для Timer/Counter 5(•/•)(•/•)
S35Пауза Timer/Counter 6(•/•)(•/•)
S36Функциональность для Timer/Counter 6(•/•)(•/•)
S37Пауза Timer/Counter 7(•/•)(•/•)
S38Функциональность для Timer/Counter 7(•/•)(•/•)
S39Режим питания/сна (volatile)(•/•)(•/•)
S3AНачальный режим питания(•/•)(•/•)
S3BТекст стартовой функциональности A(•/•)(•/•)
S3CТекст стартовой функциональности B(•/•)(•/•)
S3DПодведенное напряжение(•/∼)(•/∼)
S3EНачало Multicast Table 00(•/•)(•/•)
S3FНачало Multicast Table 01(•/•)(•/•)
S40Источник и точки назначения xCASTs (volatile)(•/•)(•/•)
S41Начальное значение S40(•/•)(•/•)
S42Идентификатор Claster ID xCASTs (volatile)(•/•)(•/•)
S43Начальное значение S42(•/•)(•/•)
S44Идентификатор Profile ID xCASTs (volatile)(•/•)(•/•)
S45Начальное значение S44(•/•)(•/•)
S46Стартовая функциональность 32-битовое число (volatile)(•/•)(•/•)
S47Дескриптор питания(•/•)(•/•)
S48Конечная точка 2 Profile ID(•/•)(•/•)
S49Конечная точка 2 Device ID(•/•)(•/•)
S4AКонечная точка 2 Device Version(•/•)(•/•)
S4BКонечная точка 2 Input Cluster List(•/•)(•/•)
S4CКонечная точка 2 Output Cluster List(•/•)(•/•)
S4DПауза для мобильного устройства(•/•)(•/•)
S4EПауза для конечного устройства(•/•)(•/•)
S4FЗадержка MAC(•/•)(•/•)


С некоторыми исключениями S-регистры сохраняются в энергонезависимой памяти (non-volatile) и сохраняют назначенные пользователем значения до перезагрузки настроек по команде AT&F. Регистры S16, S18, S1A, S1B, S1D, S39, S40 и S42 непосредственно соединены с I/O регистрами для предохранения сбоя памяти на входах-выходах. Регистры S17, S19, S1C, S1E, S3A, S41 и S43 представляют энергонезависимые регистров, сохраняющие содержание S16, S18, S1B, S1D, S39, S40 и S42 после перепрошивки или перезагрузки по reset.

Таблица 8: S-регистры настройки

Регистр типа
S0A

Энергонезависимый (non-volatile). Перезаписываемый R/W непосредственно или удаленно. Активизируется при организации или присоединении к сети (биты F-E) и начально (биты B-0).

Пример записи:
ATS0A=XXXX:password
ATREMS:АДРЕС,0A=XXXX:password

Примечание: подпаролен
Содержание:
XXXX 16-тиричное число.

Диапазон: 0000FFFF

Биты F-E: Назначение устройства

F-E биты
0 0 Router (FFD)
1 0 End Device
0 1 Sleepy End Device
1 1 Mobile End Device

Bit D: Резервирован
Bit C: Резервирован

Bit B: Включить custom endpoint 2
Bit A: Не запрашивать Trust Centre link key
Bit 9: Не использовать Central Trust Centre
Bit 8: Использовать предконфигурационный Link Key

Bit 7: Использовать кэшированный Link Key
Bit 6: Резервирован
Bit 5: Не разрешать устройствам соединение
Bit 4: Высылать Network key (предписанный Link Key)

Bit 3: Не позволять незащищенным устройствам соединяться
Bit 2: Высылать Network key незащищенным устройствам
Bit 1: Резервирован
Bit 0: Не позволять присоединяться к сети (через)

Фабричная настройка: 0000
Функциональность модуля:
S10

Энергонезависимый (non-volatile). Перезаписываемый R/W непосредственно или удаленно (бит 8, если трансмиссии в сток редки!)
Содержание:
XXXX 16-тиричное число.

Диапазон: 0000FFFF

Bit F: Не покидать режим передачи данных (при потере связи)
Bit E: Не входить в режим передачи данных
Bit D: Концентратор High RAM вместо Low RAM
Bit C: Отражать RSSI и LQI последнего звена для AT+SN или AT+ANNCE
Bit B: UCASTs и SCASTs дожидаются ACK
Bit A: Дезактивировать играющие настройки при получении AT+IDENT
Bit 9: Включить задержку одного символа входных данных xCASTB.
Bit 8: Активизировать поиск стока (sink) если его нет
Bit 7: Не заменять сток на лучший (lower cost)
Bit 6: Не заменять сток sink после трех безуспешных попыток смены
Bit 5: Точка слива не должна отвечать на поисковые сигналы для нее
Bit 4: Устройство является стоком (sink)
Bit 3: Изменения S01 отражаются немедленно
Bit 2: Высылать BCAST[B]-сообщения только роутерам
Bit 1: Высылать UNICAST сообщения безадресно
Bit 0: Кадрировать посылку сообщений (frame)

Заводская установка: 0000


КОД ОШИБКИ представлен в таблице кодов.


Таблица 9: Обзор функций

0000Нет операций прерывания/таймера/цикла
0001Задать режим питания (сна) 0
0002Задать режим питания (сна) 1
0003Задать режим питания (сна) 2
0004Задать режим питания (сна) 3
... Зарезервировано
0010Конечное устройство запрашивает данные
0011Обновить Network key (рандомизировать)
0012Проверить с трех попыток наличие сети, если нет, то попытаться соединиться к иной, используя ключ сети (network key) – подцикливается с этой точки. Не для COO.
0013Проверить с трех попыток наличие сети, если нет, то попытаться соединиться к иной, используя ключ сети (network key), и при неудаче пытаться присоединиться незащищено (ключом) – подцикливается с этой точки. Не для COO.
0014Проверить с трех попыток наличие сети, если нет, то попытаться соединиться к иной, используя ключ сети (network key), и при неудаче пытаться присоединиться current link key – подцикливается с этой точки. При неудаче – в следующий раз покинуть сеть и подцикливаться с этой точки. Не для COO.
0015Неприсоединенное к сети устройство пытается присоединиться к лучшей сети.
0016Зарезервировано.
0017Разрешить соединение через локальное устройство в течение 60 секунд (если запрещено бито 0 регистра S0A).
0018Копировать локальные входы на удаленные выводы: считать локальные данные с регистра S1A и если они изменились, записать на удаленный регистр S18, чей адрес содержится в S3B.
001DВыйти из режима передачи данных (если активирован режим Data Mode).
003xПереключить входы-выходы I/O.
004xВременно притянуть вниз входы-выводы I/O в течение 250 мс.
005xУстановить входы-выходы I/O в 0.
006xУстановить входы-выходы I/O в 1.
0108The unit sends the contents of S3B to the networks sink
0109The unit sends the contents of S3C to the networks sink
0110Выслать данные с I/O, A/D1 и A/D2 или ADC0 и ADC1, V и также 8-битовый нарастающий номер счетчика в точку стока, если сток не задан, устройство начнет искать его, как только будет установлен бит 8 регистра S10.
0111То же самое, что и 0110, но (чтобы подтолкнуть внешний RC-таймер) идет импульс вверх у высокоимпедансной ножки ETRX2:I/O7 или ETRX3:PA3 в момент посыла данных.
0112Посылка трекового сообщения всем ближайшим роутерам, передающим это сообщение, и чтение RSSI-послания ближайшей точки стока.
0113То же самое, что и 0112, но (чтобы подтолкнуть внешний RC-таймер) идет импульс вверх у высокоимпедансной ножки ETRX2:I/O7 или ETRX3:PA3 в момент посыла данных.
0114То же самое, что и 0112, но трековое сообщение не включает данные АЦП для сохранения энергии в цепочке (TRACK2 Prompt)
0115То же самое, что и 0114, но (чтобы подтолкнуть внешний RC-таймер) идет импульс вверх у высокоимпедансной ножки ETRX2:I/O7 или ETRX3:PA3 в момент посыла данных.
0120Выслать содержимое S3B как RAW-передачу.
0121Выслать содержимое S3C как RAW-передачу.
0130Послать в точку стока данные I/O, и 8-битовый нарастающий номер счетчика, содержимое S46 и содержимое любых A/D [1..4], активированных через S15 (ETRX3) или S11 (ETRX2), если сток не задан, устройство начнет искать его, как только будет установлен бит 8 регистра S10.
0131То же самое, что и 0130, но (чтобы подтолкнуть внешний RC-таймер) идет импульс вверх у высокоимпедансной ножки ETRX2:I/O7 или ETRX3:PA3 в момент посыла данных.
02XXДля точки стока: разослать данные о себе вдоль цепочки модулей длиной x (max. 30 звеньев). Для координатора COO активизировать роутеры центра (Trust Centre). NB-сообщение не рассылается конечным устройствам.
0300Увеличить S46
0301Уменьшить S46
0302Очистить S46
0400Показать статус при помощи ножки ETRX2:I/O3 или ETRX3:PA7. Светодиод LED зажигается (при низком уровне на ножке) = нет соединения. Быстрое мигание = поиску PAN. Медленное мигание = соединенный с PAN. Соответствующий регистр счетчика определяет интервал обновления. Заметим: ножка I/O3/PA7 должна быть объявлена выходом.
0401Показать статус (как в случае 0400, но иной выводной ножкой) при помощи ножки ETRX2:I/O10 или ETRX3:PB7.
2000При последовательных срабатываниях содержимое соответствующего счетчика посылается в точку стока, вместе с данными входов-выходов. Заметим: для подцикливания установить S23, S24, S25 или S26 в 24XX.
2001При активации этого действия завершается командная строка, и, как только число байтов сообщения в канале последовательного порта сравняется с числом N, содержащимся в соответствующем регистре таймера/счетчика, SCAST из этих символов будет отправлен в точку стока. Заметим: это действие подцикливается по факту приема символа, N меньше 64.
2100Содержимое S3B посылается в командную строку, завершаемую символом возврата каретки. Заметим: AT-префикс не требуется!
2101Содержимое S3C посылается в командную строку, завершаемую символом возврата каретки. Заметим: AT-префикс не требуется!
24XXСтарт таймеров, отмечаемых в XX.
25XXПереключение таймеров, отмечаемых в XX.
26XXОстановка таймеров, отмечаемых в XX.
3XXXСмена порта I/O порта для LSB
4XXXИзменение направлений посыла данных у порта I/O для LSB


Таблица 10: выводы ETRX35x: по определению S17=0142CC, альтернативные установки содержит S15=00000600.

ИмяИндексНожкаS17Основная функцияАльтернативаS15
PC7174 In . . .
PC6163 In . . .
PC5152 In . Активировать TX_active ETRX357
PC41424In . . .
PC31323In . . .
PC21222In . . .
PC11126In . ADC3 (датчик света) .
PC01027OutLED . .
PB7F 28In . ADC2, PWM .
PB6E 29OutКнопка 4, LED, IRQ3ADC1 .
PB5D 30In . ADC0 (датчик температуры) .
PB4C 8 In . . .
PB3B 6 In . . .
PB2A 18In . RXD*
PB19 17Out . TXD*
PB08 25In Кнопка 3, IRQ2 . .
PA77 5 OutLED . .
PA66 16OutLED . .
PA55 15In Загрузка (Bootload) . .
PA44 14In . . .
PA33 12OutПитание датчика . .
PA22 11OutПитание датчика . .
PA11 10In Кнопка 2, IRQ1 . .
PA00 9 In Кнопка 1, IRQ0 . .





Литература

Олег Пушкарев О., бренд-менеджер, ЗАО «КОМПЭЛ» Кирпичики для построения сети ZigBee
Семенов Ю.А. (ГНЦ ИТЭФ)

Журнал "Беспроводные технологии", 2006, № 1, стр.34-38

1. Википедиа: Zigbee
2. В.Варгаузин, "Радиосети для сбора данных от сенсоров, мониторинга и управления на основе стандарта IEEE 802.15.4: RFID", 2005
3. Е.Баранова, "IEEE 802.15.4 и его программная надстройка ZigBee", 2007
М.Соколов, "Программно-аппаратное обеспечение беспроводных сетей на основе технологии ZIGBEE/802.15.4",Электронные компоненты за 2004 г., №12, стр.80-87
4. IEEE 802.15.4. Part 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks (LR-WPANs), 2003
IEEE Part 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks (WPANs), 2006
IEEE Part 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks (WPANs). Amendment 1: Add Alternate PHYs, 2007
IEEE Std 802.11, 1999 Edition (Reaff 2003), Information technology–Telecommunications and information exchange between systems–Local and metropolitan area networks–Specific requirements–Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.
IEEE Std 802.11a-1999 (Reaff 2003), Supplement to IEEE Standard for Information technology–Telecommunications and information exchange between systems–Local and metropolitan area networks–Specific requirements–Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications–High-speed Physical Layer in the 5 GHz Band.
IEEE Std 802.11b-1999, Supplement to IEEE Standard for Information technology–Telecommunications and information exchange between systems–Local and metropolitan area networks–Specific requirements–Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Higher-Speed Physical Layer Extension in the 2.4 GHz Band.
IEEE Std 802.11i-2004, IEEE Standard for Information technology–Telecommunications and information exchange between systems–Local and metropolitan area networks–Specific requirements–Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications–Amendment 6: Medium Access Control (MAC) Security Enhancements.
IEEE Std 802.15.1-2002, IEEE Standard for Information technology–Telecommunications and information exchange between systems–Local and metropolitan area networks–Specific requirements–Part 15.1: Wireless medium access control (MAC) and physical layer (PHY) specifications for wireless personal area networks (WPANs).
IEEE Std 802.15.2-2003, IEEE Recommended Practice for Information technology–Telecommunications and information exchange between systems–Local and metropolitan area networks–Specific requirements–Part 15.2: Coexistence of Wireless Personal Area Networks with Other Wireless Devices Operating in Unlicensed Frequency Bands.
IEEE Std 802.15.3-2003, IEEE Standard for Information technology–Telecommunications and information exchange between systems–Local and metropolitan area networks–Specific requirements–Part 15.3: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for High Rate Wireless Personal Area Networks (WPANs).

ETRX357 [СПРАВКА] ПРИМЕРЫ ЛАБОРАТОРОК СТЕНД WIKI ENG WIKI ATMEL ПУШКАРЕВ СТАНДАРТ КАРТИНКИ ЕЩЕ ЛОСЕВ СТАТЬЯ ПО БОНЧУ ИСТОРИЯ АЭРОСТАТОВ ИСТОРИЯ РАДИО


Rambler's Top100