Приложение SerialNet на основе стека протоколов BitCloud

№ 1’2011
PDF версия
Практически все производители беспроводных устройств для сетей ZigBee, кроме программного обеспечения в виде сред разработки и стеков протоколов, предоставляют разработчикам возможность самостоятельно настраивать модули и создавать сети на их основе при помощи достаточного простого набора команд, подаваемых на модули посредством последовательного интерфейса. Фирма Atmel предлагает к своим беспроводным модулям программный интерфейс SerialNet на основе АТ-команд.

SerialNet является приложением, работающим поверх сетевого стека протоколов BitCloud [6, 9, 10] (совместимого со спецификацией ZigBee PRO [7, 8]). Он основывается на протоколе АТ-команд, широко используемом во встраиваемых системах благодаря своей простоте и возможности текстового представления параметров. Большинство команд SerialNet являются платформно-независимыми (табл. 1) [1-5].

Таблица 1. Поддерживаемые SerialNet аппаратные платформы
Название Платформа Модули ZigBit SDK
RZUSBSTICK AT90USB1287 + AT86RF230   BitCloud для ATAVRRZRAVEN
ZigBit ATmega1281 + AT86RF230 ATZB-24-B0; ATZB-24-A2 BitCloud для ZDK
ZigBit Amp ATmega1281 + AT86RF230 ATZ-A24-UFL BitCloud для ZDK Amp
ZigBit 900 ATmega1281 + AT86RF212 ATZB-900-B0 BitCloud для ZDK 900
ATmega128RFA1 ATmega128RFA1   BitCloud SDK для megaRF

 

Основные принципы работы SerialNet

Термином модуль мы будем обозначать одну из поддерживаемых аппаратных платформ (табл. 1), содержащую микроконтроллер и микросхему приемопередатчика, контролируемую хост-оборудованием посредством АТ-команд. Под узлом будем понимать устройство, выполняющее какую-либо роль в сети — координатор, маршрутизатор или конечное устройство. Узел в SerialNet принимает соответствующие запросы, исполняет и передает их хост-системе (рис. 1).

 Схема работы приложения SerialNet

SerialNet поддерживает расширенный набор АТ-команд, дающих полный контроль над функциональностью модуля. Множество специальных переменных, именуемых S-регистрами и доступных в SerialNet, упрощает процесс чтения/записи параметров устройства и сети в целом. Каждый S-регистр имеет свой адрес и значение. Некоторые из S-регистров отвечают требованиям рекомендаций V.250 [14], некоторые являются специфичными только для приложения SerialNet.

Чтение/запись S-регистров может быть использована для доступа к параметрам отдельного устройства и сети в целом. Во многих случаях функциональность АТ-команд дублируется соответствующими S-регистрами для снижения избыточности последовательного протокола [13]. Рис. 2 иллюстрирует основные принципы функционирования протокола SerialNet.

 Принципы работы протокола SerialNet

При создании и эксплуатации сети на базе SerialNet надо учитывать следующее:

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

SerialNet поддерживает как адресную передачу данных, так и широковещательные рассылки. При передаче данных расширенный сетевой адрес (МАС) явно не используется, используется короткий сетевой адрес. Процедура маршрутизации реализуется автоматически средствами стека BitCloud. Для всех сетевых операций обмена данными SerialNet использует следующие настройки:

  • Profile ID: 0xC31A — идентификатор профиля ZigBee;
  • Endpoint ID: 0x01 — номер конечной точки;
  • Cluster ID: 0x00 — идентификатор кластера ZigBee.

Часть параметров сети ZigBee в приложении SerialNet жестко задана и не может быть изменена АТ-командами. Эти параметры напрямую влияют на возможную топологию сети и ее производительность:

  • максимально возможное количество записей в таблице соседних узлов (CS_NEIB_TABLE_ SIZE) — 10;
  • максимальное количество дочерних узлов, которые может иметь координатор или маршрутизатор (CS_MAX_CHILDREN_ AMOUNT), — 8;
  • максимальное количество дочерних маршрутизаторов одного устройства, координатора или маршрутизатора (CS_MAX_CHILDREN_ ROUTER_AMOUNT) — 3;
  • максимальное количество записей в таблице маршрутизации (Maximum amount of records in the NWK Route Table CS_ROUTE_TABLE_ SIZE) — 10;
  • максимальное количество записей в таблице поиска маршрута (CS_ROUTE_DISCOVERY_ TABLE_SIZE) — 7;
  • максимальное количество записей в таблице сетевых адресов (CS_ADDRESS_MAP_TABLE_ SIZE) — 10;
  • CS_BTT_SIZE — 16.

Данные доставляются конечному устройству на последнем этапе при наличии запроса на них. Родительский узел, имея данные для конечного узла, ожидает запроса от дочернего в течение интервала, заданного командами +WPWR и +WSYNCPRD (мс). В активном состоянии конечное устройство с периодом +WSYNCPRD (мс) опрашивает родительский узел о наличии для него данных. После их получения конечное устройство проверяет, нет ли для него еще буферизованных пакетов.

В дополнение к управлению питанием конечных узлов SerialNet предусматривает простой контроль энергопотребления периферийных устройств или хост-системы при помощи линии CTS: если разрешено аппаратное управление потоком командой +IFC, линия принимает высокий уровень, когда модуль переходит в спящее состояние. Также SerialNet предоставляет команды для управления периферией — линями ввода-вывода, аналого-цифровыми преобразователями, ШИМ.

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

Важной особенностью приложения SerialNet является возможность выполнения части функций на удаленном узле посредством AT-команд. Они позволяют передавать команду выбранному узлу, исполнять ее на нем и передавать отчет о выполнении. Таким образом, можно отслеживать состояние удаленного узла, задавать его параметры или назначать определенные действия.

 

АТ-команды SerialNet

АТ-команды, реализованные в SerialNet, разделяются на несколько категорий. Класс конфигурирования сетевых параметров модуля предназначен для задания параметров сети ZigBee, в которой будет работать модуль, — адреса, номера канала, частотного диапазона. Группа команд для управления сетью отвечает за операции, выполняемые узлом: вход-выход из сети, определение параметров сети, диагностика качества радиоканала. Группа команд передачи данных отвечает за адресную и широковещательную доставку данных, диагностику состояния сетевых узлов, временные параметры сетевого протокола. Одной из характерных черт любых сетей ZigBee является развитое управление питанием узлов. При взаимодействии с хост-системой, в частности, при задании параметров пользователем или при ознакомлении с модулями, весьма полезна группа команд общего управления. При необходимости возможно изменение настроек интерфейса с хост-системой.

Также SerialNet предоставляет интерфейс для доступа к периферийным устройствам модуля, таким как АЦП, линии ввода-вывода, ШИМ. При помощи команд удаленного управления узлами возможно задание параметров безопасности сети — пароль на доступ к модулю и запуск на выполнение ряда команд на выбранном узле сети. Удаленно можно выполнить почти все команды SerialNet, предназначенные для чтения и задания параметров узлов, за исключением команд, требующих инициализации передачи данных, — в частности, недоступны команды передачи данных, проверки доступности узлов сети (аналог утилиты ping) и некоторые другие.

Многие параметры, связанные с АТ-командами, являются постоянными. Это означает, что они сохраняются в постоянной памяти контроллера в отличие от временных параметров, которые не могут быть автоматически восстановлены после перезагрузки модуля. Как правило, значения, ассоциированные с постоянными значениями соответствующих АТ-команд, записываются в постоянную память не сразу. Изначально новые значения запоминаются в оперативной памяти модуля. SerialNet периодически (примерно каждые 5 мин.) проверяет соответствие постоянных значений в оперативной памяти и в EEPROM. В том случае если значения различаются, проводится запись новых значений в EEPROM. Для платформ, поддерживающих «теплый» рестарт, значения актуализируются немедленно после исполнения команды ATZ.

Параметры задаются в текстовой форме в виде одного или нескольких десятичных или шестнадцатеричных чисел (начинаются префиксом 0x, могут представлять 16-, 32-, 64- или 128-битные значения). В качестве разделителя параметров выступает символ «,» (0x2C). Если параметр оставляется по умолчанию или без изменения, он пропускается, но разделительная запятая ставится.

При перезагрузке модуля конфигурационные данные считываются из его EEPROM. Параметры команд подразделяются на: «только для чтения»; «для чтения и записи». Первые служат для отображения статуса модуля, идентификационной информации и не могут быть изменены хост-системой (попытка изменения вернет код ERROR). Параметры типа «для чтения и записи» могут быть прочитаны, протестированы или изменены хост-системой посредством АТ-команд. Команда с параметрами или без них может сопровождаться другими командами в этой же командной строке, без каких-либо разделительных символов. Если командная строка начинается с префикса А/ или а/ (0х41,0х2F или 0x91, 0x2F), модуль повторяет ее выполнение так долго, как это необходимо. В целом модуль поддерживает команды одного из следующих типов:

  • команды действия — <command> [<value>];
  • установка параметров — <command> =<value>;
  • чтение параметров — <command>?;
  • проверка диапазона возможных значений —  <command>=?, где <command> может быть строкой следующего вида:
    • один символ;
    • символ ‘&‘ (0х26) со следующим за ним одним символом;
    • символ ‘%‘ (0х25) со следующим за ним одним символом;
    • символ ‘+’ (0х2В) со следующей за ним строкой символов.

Минимальная скорость, доступная для взаимодействия модуля и хост-системы, — 1200 бит/с. При приеме команд и данных не делается различий между прописными и строчными символами, хотя ответ модуля приходит прописными. Командой Е может быть настроено эхо (если разрешение на него есть), т. е. модуль будет возвращать полученные символы на той же скорости и в том же формате.

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

Результирующие коды появляются синхронно, как результат выполнения АТ-команд, так и асинхронно — благодаря определенным сетевым или локальным событиям.

 

Настройка узлов SerialNet

При формировании сети на основе SerialNet необходимо произвести первичную настройку планируемых к использованию узлов. По умолчанию хост-устройство должно иметь следующие параметры последовательного интерфейса: скорость 38400 бит/с, длина данных 8 бит, четности нет, один стоп-бит, управление потоком данных отключено. Настройка узлов заключается в задании сетевых параметров, роли узла, настроек потребляемой мощности, мощности передатчика и ряда других параметров. Необходимо, чтобы все узлы имели различные расширенные и короткие сетевые адреса (MAC и NWK соответственно).

Хост-устройство передает командную строку с префиксом АТ, сопровождаемую цепочкой команд SerialNet, исполняемых последовательно. По успешному завершению каждой команды соответствующая информация передается хост-устройству также в виде текстовой строки. Итоговая информация об обработке строки команд возвращается хост-системе после окончания обработки всей строки. Если все команды из списка были успешно выполнены, передается код ОК, в противном случае хост получает код ERROR. Каждая команда в последовательности может иметь свой синтаксис, в зависимости от типа: запрос на действие, чтение/запись параметров, тестирование диапазона допустимых параметров. В дополнение к синхронным ответам, указывающим на статус выполнения, существует ряд событий, способных переслать хост-системе асинхронные результирующие коды. Последовательность команд для конфигурирования модуля как координатора, представлена в таблице 2.

Таблица 2. Пример последовательности команд, конфигурирующих модуль как координатор
Команда Описание Ответ модуля
ATX Указание модулю пересылать хост-системе уведомления о событиях и приходящие данные OK
AT+GSN=1 Задан расширенный адрес OK
AT+WPANID=1620 Задан расширенный идентификатор сети PAN ID OK
AT+WCHMASK=100000 Установка канальной маски (разрешен канал с номером 0x14) OK
AT+WROLE=0 +WSRC=0 Сетевая роль узла — координатор, сетевой адрес 0 OK
AT+WJOIN Запуск процедуры старта сети OK

Если узел отвечает кодом ERROR, это означает, что встраиваемое программное обеспечение не поддерживает функции координатора и не может быть сконфигурировано таким образом. Проверить возможности устройства можно командой AT+WROLE?.

Таблица 3. Пример последовательность команд, конфигурирующих модуль как маршрутизатор
Команда Описание Ответ модуля
ATX Указание модулю пересылать уведомления о событиях и приходящие данные хост-системе OK
AT+GSN=2 Задан расширенный адрес OK
AT+WPANID=1620 Задан расширенный идентификатор сети PAN ID OK
AT+WCHMASK=100000 Установка канальной маски (разрешен канал с номером 0x14) OK
AT+WROLE=1 +WSRC=50 Сетевая роль узла — маршрутизатор, сетевой адрес 50 OK
AT+WJOIN Запуск процедуры старта сети OK

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

AT+WWAIT=3000
ATD50 HELLO

вызовет следующие действия: установится время ожидания ввода данных в 3 с, и строка HELLO будет передана узлу с адресом 50. Соответственно, маршрутизатор получит сообщение HELLO в форме события DATA, что и будет передано на терминал, подключенный к маршрутизатору:

DATA 0000,0,5:HELLO

Данные длиной 5 байт приняты от узла с сетевым адресом 0 в результате адресной пересылки. Команда ATR реализует механизм для выполнения АТ-команд на удаленных узлах с отправкой ответа на передавший команду узел. Это позволяет производить удаленный мониторинг и настройку узлов. Примеры ниже демонстрируют выполнение АТ-команд на удаленном узле (команда посылается через терминал, подключенный к координатору):

  • ATR50,0+WROLE?+GSN? — узнать сетевую роль узла с адресом 50 и его расширенный сетевой адрес.

    Хост-системе будет передан ответ маршрутизатора:

    +WROLE=1
    +GSN:0000000000000060
    OK.
  • ATR50,0,+WAUTONET=1S30=1 — настроить модуль на автоматический вход в сеть при включении или сбросе, режим адресации — стохастический.

    Ответ:

    +GMI:ATMEL
    OK.
  • ATR50,0,+WAUTONET=1S30=1 — настроить модуль на автоматический вход в сеть при включении или сбросе, режим адресации — стохастический.

    Ответ:

    OK.

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

Таблица 4. Пример последовательности команд, конфигурирующих модуль как конечное устройство
Команда Описание Ответ модуля
ATX Указание модулю пересылать уведомления о событиях и приходящие хост-системе данные OK
AT+GSN=3 Задан расширенный адрес OK
AT+WPANID=1620 +WCHMASK=100000 Задан расширенный идентификатор сети PAN ID, установлена канальная маска (разрешен канал с номером 0x14) OK
AT+WROLE=2 +WSRC=60 Сетевая роль узла — конечное устройство, сетевой адрес 60 OK
AT+IFC=2,2 Устанавливается аппаратное управление потоком данных (для продолжения работы на хост-системе также необходимо настроить аппаратное управление потоком) OK
AT+WPWR=100,100 Период сна — 10 с, активного состояния — 1 с ОК
AT+WPWR? Проверка режима +WPWR:100,100
AT+WJOIN Запуск процедуры старта сети OK

Теперь данные передаются устройству и могут быть переданы координатору.

Посылка данных координатором конечному устройству, находящемуся в спящем режиме:

ATD60,0,4
test

В активном режиме конечное устройство запрашивает устройство о данных для себя с периодом, определенным параметром +WSYNCPRD. В приведенном примере конечное устройство получит пакет данных после пробуждения. Отчет о событии будет направлен хост-системе, подключенной к конечному устройству:

DATA 0000,0,4:test

 

Примеры приложений с использованием SerialNet

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

  • два двигателя постоянного тока, один из которых используется для движения модели, второй — для приведения в действие поворотного механизма;
  • светодиоды, имитирующие фары ближнего/ дальнего света;
  • светодиодные стоп-сигналы;
  • светодиодные указатели поворотов;
  • светодиодная подсветка-«моддинг».

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

Один из возможных вариантов аппаратной части схемы управления автомоделью представлен на рис 3. Для управления двигателями используются специализированные микросхемы, позволяющие изменять полярность напряжения на выводах, подключенных к двигателям, с возможностью регулировки подаваемой мощности при помощи ШИМ. Каждая из микросхем имеет по два вывода управления направлением вращения и вход регулировки. Таким образом, на двигатели будут задействованы четыре вывода, работающие в режиме выходов, и два канала ШИМ модуля. Еще один канал ШИМ будет использован для управления ближним/ дальним светом. Стоп-сигналы и огни поворота активизируются при соответствующих уровнях на входах управления двигателями и дополнительных ресурсов по линиям не требуют. Один из выводов модуля будет использован для управления подсветкой-«моддингом».

Структурная схема управления моделью автомобиля

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

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

Основу управления моделью составляют команды удаленного управления в совокупности с командами управления линиями ввода-вывода. Согласно предложенной схеме (рис. 4) реализованы следующие кнопки управления:

Структурная схема пульта управления моделью
  • «Зажигание» — выводит драйвера управления двигателями из состояния покоя, включая режим удержания текущей позиции: ATR50,0,S133=0 S134=0 — изменение выходных уровней линий 3 и 4 на низкий.
  • «Вперед/Назад» — задает направление вращения маршевого двигателя, работает по принципу переключателя, по умолчанию установлено значение «вперед». При смене направления сбрасывает текущее значение скважности ШИМ для маршевого двигателя: ATR50,0,S133=1 S134=0 S146=0 — изменение выходных уровней и установка скважности импульсов ШИМ на 0-м канале равной 0; ATR50,0,S133=0 S134=1 S146=0 — изменение выходных уровней и установка скважности импульсов ШИМ на 0-м канале равной 0.
  • «Акселератор» — при нажатии на эту кнопку на заданный шаг увеличивается длительность рабочей фазы импульса ШИМ канала управления маршевым двигателем: ATR50,0,S146=[текущее=текущее–шаг] — установка нового значения скважности импульсов ШИМ 0-го канала.
  • «Тормоз» — на заданный шаг уменьшается длительность рабочей фазы импульса ШИМ канала управления маршевым двигателем: ATR50,0,S146=[текущее=текущее–шаг] — установка нового значения скважности импульсов ШИМ 0-го канала.
  • «Поворот влево», «Поворот вправо» — включают поворотный двигатель в соответствующем направлении. Когда кнопка не нажата, драйвер переводится в режим удержания. ATR50,0,S135=1 S136=0 S147=50, ATR50,0,S135=0 S136=1 S147=50 — повороты (изменяем соответствующим образом выходные уровни и задаем скважность ШИМ); ATR50,0,S135=0 S136=0 S147=0 — фиксация направления (выключаем ШИМ — скважность 0).
  • «Ближний свет» работает по принципу переключателя — вкл/выкл, по умолчанию значение выкл: ATR50,0,S148=35 — включение; ATR50,0,S148=0 — выключение.
  • Аналогично построена логика работы «Дальнего света»: ATR50,0,S148=99 — включение; ATR50,0,S148=[0, если ближний свет выключен/35, если ближний свет включен] — выключение.
  • «Подсветка»: ATR50,0,S137=1 — включение; ATR50,0,S137=0 — выключение.

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

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

Лабораторная установка состоит из центрального узла-координатора, установленного на платформе, способной поворачиваться по горизонтальной и вертикальной осям, и нескольких дочерних узлов, расположенных на известных расстояниях от центрального (рис. 5). Поворот платформы осуществляется за счет двух шаговых двигателей (один из двигателей четырехфазный, второй двухфазный). Работа установки организована следующим образом: осуществляется поворот по горизонтали, проводится сканирование вертикальных углов в диапазоне 0-180°, после чего производится следующий поворот по горизонтали. В процессе сканирования определяется уровень сигнала, принятого от удаленных узлов, и уровень сигнала, принятый удаленными узлами от центрального. Топология сети в данном случае близка к «звезде» или к типу «точка-много точек».

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

Пусть для примера имеется два удаленных узла, используемых для определения уровней сигнала. Обычно такого количества вполне достаточно для качественной оценки диаграммы направленности. Один из узлов устанавливается в пределах так называемой ближней зоны изучаемой антенны — обычно для диапазона 2,4 ГГц это до 8 м. Второй модуль устанавливается в пределах дальней зоны, т. е. на расстоянии дальше 8 м от центрального узла.

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

ATS130=1 S131=0 S132=0 S133=0 — фаза1;
ATS130=0 S131=1 S132=0 S133=0 — фаза2;
ATS130=0 S131=0 S132=1 S133=0 — фаза3;
ATS130=0 S131=0 S132=0 S133=1 — фаза4.

Против часовой:

ATS130=0 S131=0 S132=0 S133=1 — фаза4;
ATS130=0 S131=0 S132=1 S133=0 — фаза3;
ATS130=0 S131=1 S132=0 S133=0 — фаза2;
ATS130=1 S131=0 S132=0 S133=0 — фаза1.

Поворот по вертикали осуществляется двухфазным шаговым двигателем, управляемым парой микросхем.

Поворот вниз:

ATS134=1 S135=0 — фаза1;
ATS136=1 S137=0 — фаза2;
ATS134=0 S135=1 — фаза3;
ATS136=0 S137=1 — фаза4.

Поворот вверх:

ATS136=0 S137=1 — фаза4;
ATS134=0 S135=1 — фаза3;
ATS136=1 S137=0 — фаза2;
ATS134=1 S135=0 — фаза1.

После каждой фазы поворота по вертикали производится запрос уровня сигнала:

AT+WRSSI50 R50,0,+WRSSI0 — определяем уровень сигнала, полученного от узла с адресом 50, запрашиваем узел 50 об уровне сигнала от координатора;

AT+WRSSI50 R60,0,+WRSSI0 — определяем уровень сигнала, полученного от узла с адресом 60, запрашиваем узел 60 об уровне сигнала от координатора.

После каждой переданной командной строки вернется ответ следующего вида:

+WRSSI:-17+WRSSI:-18 — уровень принятого сигнала в децибелах.

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

Литература
  1. ZigBit 2.4 GHz Wireless Modules Balanced RF Output and Dual Chip Antenna // Datasheet. 6/09. http://www.atmel.com/dyn/resources/prod_documents/doc8226.pdf. /ссылка утрачена/
  2. ZigBit 2.4 GHz Amplified Wireless Modules UFL-connector and Unbalanced RF Output // Datasheet. 6/09. http://www.atmel.com/dyn/resources/prod_documents/doc8228.pdf. /ссылка утрачена/
  3. ZigBit 700/800/900 MHz Wireless Modules Balanced RF Output // Datasheet. 6/09. http://www.atmel.com/dyn/resources/prod_documents/doc8227.pdf. /ссылка утрачена/
  4. AVR2017: RZRAVEN Firmware Documentation.
  5. Сидоренко Б. Продукция компании Atmel для беспроводных сетей IEEE 802.15.4/ ZigBee/6loWPAN. // Электроника: НТБ. 2009. № 6.
  6. 8-bit AVR Microcontroller with Low Power 2.4GHz Transceiver for ZigBee and IEEE 802.15.4 // http://www.atmel.com/dyn/resources/prod_documents/doc8266.pdf. /ссылка утрачена/
  7. Atmel Products. MCU Wireless. Tools & Software // http://www.atmel.com/dyn/products/tools.asp?family_id=676. /ссылка утрачена/
  8. Latest ZigBee Specification Including the PRO Feature Set // http://www.zigbee.org/Markets/ZigBeeSmartEnergy/Specification.aspx. /ссылка утрачена/
  9. ZigBee RF4CE Specification // http://zigbee.org/Markets/ZigBeeRF4CE/download.aspx. /ссылка утрачена/
  10. AVR2050: BitCloud User Guide // http://www.atmel.com/dyn/resources/prod_documents/doc8199.pdf. /ссылка утрачена/
  11. AVR2052: BitCloud Quick Start Guide // http://www.atmel.com/dyn/resources/prod_documents/8200.pdf. /ссылка утрачена/
  12. SerialNet API Reference Manual // http://www.meshnetics.com/netcat_files/Image/P-EZN-452~04-(SerialNet%20API%20Reference%20Manual).pdf /ссылка утрачена/
  13. SerialNet AT Command Set Reference Manual // http://www.meshnetics.com/netcat_files/Image/P-EZN-452~01-(SerialNet%20AT-Command%20Set%20Reference%20 Manual).pdf. /ссылка утрачена/
  14. Data Communication Over the Telephone Network. Serial Asyncronos Automatic Dialling and Control (Telecommunication Standardization Sector of ITU) // www.catr.cn/radar/itut/201007/P020100707488507310818.pdf. /ссылка утрачена/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *