Стек протоколов MiWi для беспроводных сетей

№ 4’2007
С появлением дешевых интегральных трансиверов и микроконтроллеров с низким энергопотреблением у многих разработчиков встал вопрос о реализации простых беспроводных сетей для портативных устройств с батарейным питанием. Такие сети применяются во всех направлениях электроники: системы безопасности, «умный дом», телеметрия и сбор данных, промышленная автоматизация и т. д.

С появлением дешевых интегральных трансиверов и микроконтроллеров с низким энергопотреблением у многих разработчиков встал вопрос о реализации простых беспроводных сетей для портативных устройств с батарейным питанием. Такие сети применяются во всех направлениях электроники: системы безопасности, «умный дом», телеметрия и сбор данных, промышленная автоматизация и т. д.

Введение

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

MiWi является простым протоколом беспроводных сетей, ориентированным на низкие скорости передачи данных, небольшие расстояния и низкую стоимость реализации узла. MiWi основан на спецификации IEEE802.15.4 для беспроводных персональных сетей (WPAN) и является достойной альтернативой существующим стекам протоколов для беспроводных сетей. Он ориентирован на сети небольшого размера с ограниченным количеством маршрутизаторов, построенные на трансиверах MCRF24J40 — IEEE 802.15.4-совместимых передатчиках производства Microchip.

В статье рассматриваются основные понятия и принципы функционирования протокола MiWi, особенности спецификации IEEE 802.15.4, принципы построения беспроводных сетей.

Сеть, построенная на основе протокола MiWi, может иметь до 1024 узлов. В ней могут работать до 8 координаторов, каждый из которых поддерживает до 127 узлов. Существует также ограничение на длину маршрута передаваемого пакета: максимум четыре хопа (прохода через координатор) для конечных узлов и максимум 2 хопа для PAN-координатора.

Если эти ограничения не позволят разработчику применять протокол MiWi, то ему следует обратить свое внимание на реализацию протокола ZigBee (инструкция по применению AN965 «The Microchip Stack for the ZigBee™ Protocol»). Кроме того, разработчик имеет право вносить некоторые изменения в существующую реализацию MiWi. Ограничения на использование и лицензия находятся в документации на стек.

Терминология

При описании протокола MiWi используется два термина, заимствованные из стандартов IEEE.

Кластер — группа узлов, формирующая сеть. В рамках MiWi кластер может иметь 3 уровня иерархии. В верхнем уровне находится главный узел — PAN-координатор.

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

Обзор протокола MiWi

Протокол MiWi базируется на спецификации IEEE 802.15.4 для уровней MAC и PHY и предназначен для построения простых беспроводных сетей диапазона 2,4 ГГц.

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

Уровни PHY и MAC

Как уже было сказано, MiWi базируется на спецификации IEEE 802.15.4 для физического (PHY) и канального (MAC) уровней. В рамках спецификации определено три частотных диапазона с фиксированным количеством каналов для каждого (таблица 1).

Таблица 1. Частотные диапазоны с фиксированным количеством каналов для каждого
Частотные диапазоны с фиксированным количеством каналов для каждого

Важно понимать, что реальная скорость передачи ниже указанной в таблице 1, так как в канале идет обмен служебной информацией и существуют задержки на обработку пакетов.

Максимальная длина пакета, включая 16-битную контрольную сумму, — 127 байт.

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

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

Типы устройств

Изначально в стандарте IEEE 802.15.4 описано два типа устройств.

Протокол MiWi определяет три типа устройств с различной функциональностью: PAN-координатор, координатор и конечное устройство (табл. 2).

Таблица 2. Типы устройств
Типы устройств

Конфигурация сети

В сети MiWi главным узлом всегда является PAN-координатор — он является образующим узлом сети.

Топология «звезда»

Сетевая топология «звезда» показана на рис. 1.

Топология «звезда»
Рис. 1. Топология «звезда»

В ее состав входит один PAN-координатор и одно или несколько оконечных устройств. Весь обмен данными между устройствами ведется только через PAN-координатор.

Топология «дерево»

Как уже было сказано, в сети MiWi обязательно есть один PAN-координатор, который является главным узлом в сети (рис. 2).

Топология «дерево»
Рис. 2. Топология «дерево»

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

Топология «сеть»

Такая структура (рис. 3) очень похожа на «дерево» за некоторым исключением: полнофункциональные устройства (координаторы) могут обмениваться информацией друг с другом без участия PAN-координатора. Это повышает живучесть сети и снижает задержки доставки сообщений.

Топология «сеть»
Рис. 3. Топология «сеть»

Обмен «точка-точка»

В такой конфигурации два узла обмениваются информацией непосредственно друг с другом, без использования сети. Это наиболее простой способ обмена.

Сети с множественным доступом

Спецификация IEEE 802.15.4 описывает сети с множественным доступом, то есть такие сети, в которых любой узел имеет одинаковый способ доступа к несущей сети в любой момент времени. Для управления использованием несущей используется два механизма: маркерный и немаркерный.

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

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

Адресация

Протокол MiWi использует адресацию в соответствии с IEEE 802.15.4. Используется три составляющих:

  1. Расширенный уникальный идентификатор (EUI) — 8-байтный глобальный идентификатор; каждое производимое в мире устройство, совместимое со стандартом, должно иметь уникальный EUI. Старшие три байта являются идентификатором организации, который выделяет IEEE. Младшие пять байтов пользователь заполняет сам, учитывая уникальность устройств;
  2. Идентификатор PAN (PANID) — 16-битный адрес, определяющий группу устройств. Все узлы одной сети имеют один PANID, что и говорит об их принадлежности к конкретной сети;
  3. Короткий адрес — адрес устройства, выдаваемый ему при регистрации в текущей сети. Короткий адрес (16 бит) совместно с PANID являются уникальной комбинацией и используются для адресации в конкретной сети. PAN-координатор всегда имеет адрес 0000h.

В сетях MiWi используются короткие 16-битные адреса (рис. 4).

Структура короткого адреса
Рис. 4. Структура короткого адреса

В битах 8–10 указывается номер координатора, уникальный для конкретной сети. Так как под номер координатора отведено 3 бита, это накладывает ограничение на количество координаторов в сети — 8 штук максимум.

В битах 0–6 указывается номер узла. Для координаторов этот номер 0. Пример распределения коротких адресов показан на рис. 5.

Рис. 5. Распределение коротких адресов

Бит 7 (RxOffWhenIdle) является инверсным по отношению к описанному в стандарте RxOnWhenIdle. Установленный бит говорит о том, что узел отключает свой трансивер при переходе в режим ожидания. Все пакеты, адресованные этому устройству, будут храниться на родительском узле до тех пор, пока узел не проснется и не начнет работать.

Биты 11–15 не используются и всегда заполняются нулями.

Передача сообщений

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

Формат пакета

MiWi использует формат пакетов MAC, описанный стандартом IEEE 802.15.4. Узлы сети используют режим короткой адресации, также определенный в стандарте. На сетевом уровне в пакеты добавляются служебные заголовки протокола MiWi, необходимые для маршрутизации и обработки пакетов (рис. 6):

  1. количество разрешенных пересылок (хопов);
  2. управление кадром;
  3. идентификатор PAN-приемника;
  4. короткий адрес приемника;
  5. идентификатор PAN-источника;
  6. короткий адрес источника;
  7. номер посылки;
  8. тип пакета (служебные пакеты имеют тип 00h, пользовательские пакеты 01h…FFh);
  9. идентификатор пакета.
Формат пакета MiWi
Рис. 6. Формат пакета MiWi

Маршрутизация

Маршрутизация в беспроводных сетях является сложной задачей. В протоколе MiWi используется обращение к родительским узлам приемника и встроенные механизмы стандарта IEEE.

Построение таблицы маршрутизации

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

Для подключения узла к сети MiWi используется стандартная процедура IEEE: новый узел посылает в эфир специальный запрос. В ответ на него все координаторы, которые его слышат, посылают ответ с информацией о своем окружении.

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

  1. Идентификатор протокола (1 байт) — для MiWi это 4Dh.
  2. Номер версии (1 байт) — сейчас 10h.
  3. Локальные координаторы (1 байт) — указывается список координаторов, с которыми конкретный координатор имеет связь. Каждый бит указывает на связь с одним из восьми возможных координаторов. Бит 0 — связь с PAN-координатором и т. д.

Это позволяет узлам узнавать все возможные маршруты в сети. Дальнейший обмен по сети происходит в соответствии с алгоритмом (рис. 7).

Алгоритм маршрутизации
Рис. 7. Алгоритм маршрутизации

Широковещательные посылки

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

Пакеты

Для передачи данных между узлами протокол MiWi использует специальные пакеты. Всего существует 256 типов пакетов и 256 идентификаторов пакета для каждого типа.

Тип 00h зарезервирован для обмена служебной информацией, другие типы доступны пользователю (табл. 3).

Таблица 3. Типы пакетов
Типы пакетов

Объем передаваемых данных в пакете зависит от его типа.

Работа стека

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

Поиск узла с требуемым EUI

В стандартном режиме обмена в сети MiWi используются короткие адреса. Но в случае реконфигурации сети короткий адрес конкретного узла может поменяться, так как эти адреса распределяются родительскими координаторами. Для восстановления соединения с этим узлом необходимо знать его полный глобальный адрес, который присваивается устройству при производстве и не меняется.

Для поиска узла с требуемым EUI в протоколе MiWi зарезервированы два служебных пакета: EUI_ADDRESS_SEARCH_REQUEST и EUI_ADDRESS_SEARCH_RESPONSE. Механизм поиска EUI показан на рис. 8.

Механизм поиска EUI
Рис. 8. Механизм поиска EUI

Пакет запроса отправляется узлом своему координатору и далее рассылается между координаторами.

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

Сокеты

В протоколе MiWi есть возможность создания двух типов сокетов: кластерный сокет и прямой сокет.

Кластерный сокет

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

Такой тип виртуального соединения актуален для сетей со стабильной структурой и использует короткие адреса (рис. 9).

Открытие кластерного сокета
Рис. 9. Открытие кластерного сокета

Для открытия кластерного сокета узел (например, по нажатию служебной кнопки) посылает пакет OPEN_CLUSTER_SOCKET_REQUEST PAN-координатору сети. По приему такого запроса PAN-координатор переходит в режим ожидания аналогичного запроса от другого узла на определенный промежуток времени. Если в течение этого промежутка PAN-координатор получает второй запрос, он отсылает ответ OPEN_CLUSTER_SOCKET_RESPONSE обоим узлам, и узлы устанавливают соединение.

Если запрос от второго узла не получен, режим ожидания сбрасывается и ответ не посылается.

Прямой сокет

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

Открытие прямого сокета
Рис. 10. Открытие прямого сокета

Когда узел собирается открыть прямой сокет, он посылает широковещательный пакет OPEN_P2P_SOCKET_REQUEST, в котором указывает свой глобальный EUI. Любой узел, получивший такой пакет и намеревающийся установить соединение, отправляет в ответ пакет OPEN_P2P_SOCKET_RESPONSE со своим EUI.

В текущей реализации протокола подтверждать открытие сокетов могут только координаторы.

Безопасность передаваемых данных

Протокол MiWi поддерживает все семь механизмов безопасности данных уровня MAC, описанных в стандарте IEEE 802.15.4.

Механизмы делятся на три группы:

  1. AES-CTR — шифрование данных в пакете. В случае атаки взломщик не сможет получить исходную информацию, не имея ключа. Этот механизм не контролирует целостность пакета и не защищает адрес источника, который передается в открытом виде.
  2. AES-CBC-MAC— поддержка целостности пакета. В пакет добавляется поле контроля целостности (MIC), которое защищает пакет, включая заголовок и данные, от модификаций во время пересылок. Размер поля MIC задается при разработке; большой размер увеличивает степень защиты.
  3. AES-CCM — совмещает предыдущие механизмы: поддерживает целостность ишифрует содержимое.

Режимы шифрования указаны в таблице 4.

Таблица 4. Режимы шифрования
Режимы шифрования

Любой из механизмов добавляет в заголовок пакета три поля:

  • счетчик пакетов;
  • полный адрес источника;
  • последовательный номер.

В итоге размер пакета увеличивается на 13–29 байт в зависимости от применяемого механизма (рис. 11). Более подробно о механизмах шифрования можно узнать из описания протокола.

Формат пакета MiWi с шифрованием
Рис. 11. Формат пакета MiWi с шифрованием

Трансивер MRF24J40

Единственным условием использования протокола MiWi в разработках является применение микроконтроллеров и приемопередатчиков производства Microchip. Возможно применение как 8-разрядных (PIC12/PIC16, PIC18), так и 16-разрядных (dsPIC, PIC24) микроконтроллеров.

В качестве приемопередатчика, совместимого со стандартом IEEE 802.15.4, применяется трансивер MRF24J40 — новая разработка Microchip.

Основные особенности микросхемы:

  • полное соответствие спецификации IEEE 802.15.4;
  • возможность реализации MiWi, ZigBee и собственных протоколов;
  • диапазон частот: 2,405–2,48 ГГц;
  • чувствительность приемника –95 дБм, мощность передатчика 0 дБм (с возможностью программной регулировки);
  • встроенный переключатель RX/TX, балансный вход и выход;
  • интегрированный малошумящий ГУН, синтезатор и PLL;
  • автоматическая калибровка ГУН и цифрового фильтра;
  • аппаратная поддержка CSMA-CA, автоматическое квитирование;
  • 4-проводной последовательный интерфейс SPI;
  • режим пониженного потребления с током 2 мкА;
  • низкие токи потребления в рабочих режимах — 22 мА при передаче, 18 мА при приеме;
  • аппаратный модуль шифрования AES-128;
  • раздельные буферы FIFO приемника и передатчика;
  • 40-выводной корпус QFN (6×6 мм).

Важными особенностями микросхемы являются минимальное количество внешних элементов и простая топология печатной платы. На рис. 12 показана схема согласования антенны с импедансом 50 Ом, на рис. 13 — пример печатной антенны.

Схема согласования антенны для MRF24J40
Рис. 12. Схема согласования антенны для MRF24J40
Печатная антенна 50 Ом
Рис. 13. Печатная антенна 50 Ом

Полностью доступна разводка модуля приемопередатчика для материала FR4 (4-слойный текстолит), что значительно упрощает применение трансивера в новых разработках.

Для исследования протокола и начала разработки новых сетевых устройств MiWi Microchip предлагает отладочный комплект DM163027-4. В состав комплекта входит два полнофункциональных узла на основе микроконтроллера PIC18LF4620-I/P и трансивера MRF24J40, а также анализатор беспроводных протоколов Zena.

Вся информация о протоколе, инструкция по применению, исходные коды доступны на сайте компании по адресу http://www.microchip.com/miwi.

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

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