Приемопередатчики и радиомодули компании СЕL для небольших беспроводных сетей

№ 4’2012
PDF версия
В то время как многие производители встраиваемых беспроводных решений соревнуются в достижении максимального размера беспроводных сетей, компания CEL предлагает приемопередатчики и радиомодули для построения небольших, но надежных систем, поддерживающих сетевой протокол SNAP. Mesh-сети, выполненные на базе компонентов CEL, способны к мгновенной организации, обладают возможностью синхронного перехода всех узлов в энергосберегающий режим, имеют опцию автоматической ретрансляции сообщений, позволяют передавать данные со скоростью до 1 Мбит/с, добавлять пользовательский программный код в радиомодуль поверх сетевого стека, а также удаленно менять пользовательский код отдельных узлов или группы узлов по радиоканалу. Благодаря низкой стоимости этих компонентов и удобным отладочным средствам беспроводное решение CEL становится хорошим выбором для построения небольших систем сбора данных и управления.

Микросхемы MeshConnect ZIC2410

«Система-на-кристалле» (SoC) ZIC2410 представляет собой комбинацию IEEE802.15.4-совместимого приемопередатчика на 2,4 ГГц и популярного микроконтроллерного ядра 8051 (рис. 1) [1]. Благодаря максимальной выходной мощности +8 дБм микросхему можно использовать в приложениях, требующих обеспечения увеличенной дальности связи, без внешнего усилителя. Встроенный приемопередатчик поддерживает специальные режимы скоростной передачи данных Turbo (500 кбит/c) и Premium (1 Мбит/c), что позволяет применять ZIC2410 в беспроводных системах, требующих высокой пропускной способности. ZIC2410 содержит множество периферийных устройств: 16-битные таймеры, ШИМ, декодер квадратурных сигналов, контроллеры UART (поддерживают скорости до 1 Мбит/с), SPI, I2C, АЦП и 24 конфигурируемых входа/выхода. Кроме того, в микросхему встроен аудиокодек (с поддержкой методов сжатия m-law, a-law и ADPCM), что упрощает реализацию приложений, использующих беспроводной канал для передачи аудиоданных (например, речи).

SoC ZIC2410 для диапазона 2,4 ГГц с поддержкой беспроводных стандартов IEEE802.15.4 и SNAP

Рис. 1. SoC ZIC2410 для диапазона 2,4 ГГц с поддержкой беспроводных стандартов IEEE802.15.4 и SNAP

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

 

Модули MeshConnect

Модули MeshConnect (рис. 2) выполнены на базе микросхем ZIC2410 [2]. Они имеют компактное исполнение 25×36 мм с удобно расположенными контактными площадками (с обеих сторон и по бокам платы). Семейство MeshConnect включает в себя четыре варианта модулей, различающихся типом используемой антенны, максимальной выходной мощностью передатчика и чувствительностью приемника (таблица).

Радиомодуль MeshConnect, выполненный на базе микросхем ZIC2410

Рис. 2. Радиомодуль MeshConnect, выполненный на базе микросхем ZIC2410

Таблица. Варианты исполнения модулей MeshConnect

Артикул

Исполнение радиотракта

Выходная мощность, дБм

Чувствительность, дБм

ZICM2410P0-1

PCB-антенна

+6

–97

ZICM2410P0-1C

Разъем U.FL

+6

–97

ZICM2410P2-2

PCB-антенна

+20

–103

ZICM2410P2-2C

Разъем U.FL

+20

–103

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

 

Аппаратные и программные средства разработки

Отладочные комплекты ZICM2410P0-KIT2-1/ZICM2410P2-KIT1-1

Отладочные наборы для радиомодулей MeshConnect ZICM2410 (рис. 3) могут использоваться как для оценки радиочастотных характеристик модулей, так и для разработки приложений на их базе. В наборы входят базовые интерфейсные платы и радиомодули с максимальной выходной мощностью +6 либо +20 дБм. Базовые платы обеспечивают питание и последовательный интерфейс для подключения к радиомодулю (используется конвертер USB-Serial), а также содержат различные элементы индикации и управления, такие как кнопки, потенциометры, светодиоды и разъемы для подключения к входам/выходам модуля.

Отладочные комплекты

Рис. 3. Отладочные комплекты

Программатор/сниффер ZIC2410USB-WNA-1

Компактный и недорогой USB-стик ZIC2410USB-WNA-1 (рис. 4) представляет собой универсальное устройство разработчика. Он позволяет включить компьютер в беспроводную сеть для работы в ней в качестве рядового узла или сниффера. Кроме того, USB-стик ZIC2410USB-WNA-1 является внутрисхемным программатором микросхем ZIC2410 и модулей MeshConnect.

Программатор/сниффер ZIC2410USB-WNA-1

Рис. 4. Программатор/сниффер ZIC2410USB-WNA-1

Отладочное ПО

Для программирования и анализа сетевых пакетов с помощью устройства ZIC2410USB-WNA-1 бесплатно предоставляется соответствующее программное обеспечение — CEL Device Programmer и CEL Packet-Analyzer.

Программа CEL Device Programmer предназначена для загрузки исполняемого кода во внутреннюю flash-память микросхем ZIC2410. Программирование осуществляется через последовательный порт UART (для подключения к микросхеме/модулю может быть использовано устройство ZIC2410USB-WNA-1). CEL Device Programmer поддерживает два режима загрузки:

  • Direct-DownLoad Mode — программирование непосредственно подключенной по UART микросхемы;
  • OTA-Programmer Mode — загрузка кода в удаленное устройство по радиоканалу.

Программа CEL Packet-Analyzer предназначена для отладки беспроводной системы на сетевом уровне. Она позволяет перехватывать, декодировать и фильтровать передаваемые по радиоканалу пакеты стандарта IEEE 802.15.4 в реальном режиме времени, отображая их в удобном графическом виде (рис. 5). Кроме того, программа поддерживает сканирование всех частотных каналов IEEE 802.15.4 по уровню излучения RSSI и качеству связи LQI, а также позволяет производить поиск активных каналов.

CEL Packet-Analyzer позволяет перехватывать, декодировать и фильтровать передаваемые по радиоканалу пакеты стандарта IEEE 802.15.4

Рис.5. CEL Packet-Analyzer позволяет перехватывать, декодировать и фильтровать передаваемые по радиоканалу пакеты стандарта IEEE 802.15.4

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

 

Встраиваемое ПО

Для микросхем и модулей серии MeshConnect предлагается набор различных вариантов встраиваемого ПО для поддержки той или иной сетевой топологии («точка–точка», «звезда», Mesh): MAC, SMAC и SNAP. Предлагаемое ПО представляет собой промежуточный слой (middleware) между аппаратной платформой (приемопередатчиком) и программным кодом пользователя. Этот слой обеспечивает беспроводной канал связи, реализуя определенный протокол или стек протоколов, и предоставляет пользовательский интерфейс для приложения верхнего уровня (рис. 6).

Различные варианты встраиваемого ПО для микросхем и модулей MeshConnect

Рис. 6. Различные варианты встраиваемого ПО для микросхем и модулей MeshConnect

Стек SMAC

SMAC (Simple MAC) представляет собой библиотеку исходных кодов для реализации простой беспроводной связи «точка–точка». Он предоставляет основные функции управления приемопередатчиком, а также уровень аппаратной абстракции для встроенных периферийных узлов. Можно выделить следующие основные области применения SMAC:

  • последовательная связь по радиоканалу («замена кабеля»);
  • передача речи «точка–точка» (портативные радиостанции, радионяня и т. п.);
  • системы безопасности.

Стек MAC (IEEE 802.15.4)

Стек MAC является расширением SMAC и обеспечивает полную поддержку беспроводного протокола IEEE 802.15.4, позволяя реализовать такие стандартные сетевые топологии, как «точка–точка» и «звезда». MAC предлагается в виде откомпилированной библиотеки для компилятора Keil.

Стек SNAP — сети с Mesh-топологией

Технология SNAP разрабатывается и поддерживается компанией Synapse Wireless и представляет собой универсальную сетевую операционную систему для реализации Mesh-сетей, позволяющую абстрагироваться от аппаратных особенностей приемопередатчика [3]. Используя любой или все из доступных на устройстве интерфейсов связи, стек SNAP выполняет пересылку и сетевую маршрутизацию сообщений, превращая данное устройство в полнофункциональный узел интеллектуальной самоорганизующейся и самовосстанавливающиеся Mesh-сети. Для связи с остальными узлами сети при этом может использоваться любой современный проводной или беспроводной интерфейс: IEEE 802.15.4, Wi-Fi, TCP/IP, Ethernet, USB, RS232, RS485 и др. (рис. 7). В частности, стек SNAP, предлагаемый для микросхем MeshConnect, использует имеющийся в данных микросхемах приемопередатчик IEEE 802.15.4.

Сетевая операционная система SNAP может использовать любой из доступных на устройстве интерфейсов связи

Рис. 7. Сетевая операционная система SNAP может использовать любой из доступных на устройстве интерфейсов связи

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

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

Технология SNAP также поддерживает так называемые «спящие сети», в которых все узлы по команде от одного могут одновременно переходить в режим пониженного энергопотребления [4]. По истечении заданного времени сна устройства «просыпаются» и без задержек (поскольку сеть восстанавливается мгновенно) приступают к обмену информацией друг с другом. После выполнения запрограммированных операций сеть может снова перейти в «спящий» режим.

Вся описанная выше работа по образованию и постоянному поддержанию полнофункциональной Mesh-сети выполняется автоматически сетевой операционной системой (или стеком) SNAP. Одновременно с этим стек SNAP может выполнять приложение пользователя, написанное на скриптовом языке высокого уровня Python. Пользовательские скрипты создаются и загружаются с помощью интерактивной среды разработки Portal и носят название SNAPpy-скриптов.

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

Как показано на рис. 8, операционная система SNAP содержит виртуальную машину SNAPpy (Python) Virtual Machine, которая выполняет загруженный в SNAP-узел байт-код пользовательского приложения.

Встроенная в SNAP виртуальная машина позволяет выполнять пользовательское приложение, представляющее собой SNAPpy-скрипты (Python)

Рис. 8. Встроенная в SNAP виртуальная машина позволяет выполнять пользовательское приложение, представляющее собой SNAPpy-скрипты (Python)

Программа Portal содержит множество демонстрационных SNAPpy-скриптов, в том числе специально написанных для платформы ZIC2410. Они помогают быстро освоить базовые принципы программирования для SNAP-устройств, включая работу с сетью и периферийными узлами используемой платформы.

Чтобы минимизировать сетевой трафик (и тем самым сохранить пропускную способность и снизить энергопотребление), в технологию SNAP была интегрирована поддержка удаленного вызова процедур RPC, широко используемого в Интернет-сетях стандарта. RPC устанавливает стандартные правила формирования и отправки сетевой посылки на удаленный узел, включающей в себя название реализованной на этом узле функции и ее параметры. Благодаря использованию RPC любая функция, реализованная в одном устройстве SNAP-сети, может быть вызвана с любого другого узла этой сети. По мнению разработчиков стандарта SNAP, такой способ обмена сообщениями между узлами является гораздо более эффективным по сравнению с традиционно используемым в большинстве сетевых стандартов обменом сложными структурированными пакетами.

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

# -*- coding: utf-8
# В стеке SNAP принята общая нумерация всех#  имеющихся входов/выходов # и для каждой платформы в документации приводится # таблица соответствия номеров,
# используемых в SNAP, реальным выводам # используемой микросхемы [5].

# В качестве кнопки будем использовать вывод P1.3 # микросхемы ZIC2410, что соответствует
# выводу 11 в общей нумерации SNAP.
buttonPin = 11
# Адрес управляемого удаленного узла.# В качестве примера указан адрес CE:00:05.
targetNode = '\xCE\x00\x05'
#Назначаем номер вывода, к которому подключен # светодиод удаленного узла
LED = 1  # P0.1

@setHook(HOOK_STARTUP)
def onStartup():
# Устанавливаем вывод P1.3 как вход
setPinDir(buttonPin, False)   # Включаем подтягивающий резистор # (нажатие соответствует 0)
setPinPullup(buttonPin, True)# Отслеживаем изменение состояния кнопки
monitorPin(buttonPin, True)
@setHook(HOOK_GPIN)
def onPin(pin, isSet):
# Обрабатываем нажатие кнопки
if isSet:
sendButtonReport(pin)

def sendButtonReport(pin):
# Выполняем RPC-вызов функции reportButton() # на удаленном узле с адресом targetNode.
# В качестве параметра передадим номер вывода, # к которому подключена кнопка
rpc(targetNode, 'reportButton', pin, LED)

В управляемый узел загружаем следующий скрипт:

# -*- coding: utf-8
@setHook(HOOK_STARTUP)
def onStartup():
# Устанавливаем вывод P0.1 как выход
setPinDir(1, True)
writePin(1, False)

def reportButton(pin, led):
# Выведем сообщение о нажатии кнопки в стандартный # порт вывода STDOUT (по умолчанию это UART1).
# В программе Portal существует возможность перехвата # стандартного вывода любого узла сети. # Для этого используется кнопка Intercept STDOUT # во вкладке интересующего устройства.
# Перехваченные сообщения будут выводиться # в окне Event Log.
print 'Pin ', pin, ' was set!'
pulsePin(led, 500, True)

Приведенные скрипты можно протестировать с помощью базовых плат отладочных комплектов ZICM2410P0-KIT2-1/ZICM2410P2-KIT1-1. Выводы, используемые в скриптах для подключения светодиода и кнопки, соответствуют выводам, подключенным к светодиоду LED3 и кнопке SWITCH1 базовой платы.

Благодаря своей универсальности, RPC-механизм может использоваться в качестве естественного связующего уровня между беспроводной сетью SNAP и сетями TCP/IP (например, Интернет). Для этих целей компания Synapse Wireless предлагает программное обеспечение SNAP Connect, которое выполняет функцию моста SNAP–TCP/IP. В сущности, SNAP Connect представляет собой сервер XML-RPC, обращаться к которому можно из клиентской программы, выполняемой на любом удаленном узле обеих сетей. При этом клиентская программа может быть написана на С, С++, С#, Python или практически любом другом современном языке программирования. В результате все узлы (компьютеры и беспроводные устройства), коммутирующие через SNAP Connect, становятся частью общей SNAP-сети (рис. 9).

Пример реализации удаленного контроля и управления сетью SNAP с использованием программного интерфейса SNAP Сonnect

Рис. 9. Пример реализации удаленного контроля и управления сетью SNAP с использованием программного интерфейса SNAP Сonnect

Таким образом, предлагаемое Synapse Wireless комплексное решение представляет собой набор следующих ключевых компонентов:

  • SNAP — операционная система (стек) для беспроводного узла сети;
  • Portal — интерактивная среда разработки и отладки беспроводных приложений для ПК, обеспечивающая полнофункциональную связь с беспроводной сетью через один из ее узлов;
  • SNAP Сonnect — программный интерфейс, обеспечивающий доступ к SNAP-сети через TCP/IP-сеть.

 

Заключение

Хорошие радиочастотные характеристики, поддержка высокоскоростных режимов передачи, наличие большинства популярных микроконтроллерных периферийных устройств/ интерфейсов, в том числе аудиокодека, — все это, в комплекте с предлагаемым встраиваемым ПО различного уровня сложности, позволяет рассматривать микросхемы и модули серии MeshConnect как оптимальное и недорогое решение для реализации достаточно широкого круга задач: от простой «замены кабеля» (организации последовательной связи по радиоканалу) до небольших интеллектуальных систем контроля и управления, поддерживающих сетевую Mesh-топологию и доступ через Интернет.

Литература
  1. ZIC2410 Datasheet.
  2. MeshConnect Module Series.
  3. Synapse’s SNAP Network Operating System. White Paper. 
  4. Sleepy Nodes and Sleepy Meshes — Ultra-low-power Mesh Routing. White Paper.
  5. SNAP Reference Manual.

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

Ваш адрес email не будет опубликован.