Стек протоколов MiWi≥ для беспроводных сетей
Основанный на спецификации IEEE802.15.4 для беспроводных персональных сетей (WPAN), протокол MiWi производства компании Microchip является достойной альтернативой существующим стекам протоколов для беспроводных сетей. Он ориентирован на сети небольшого размера с ограниченным количеством маршрутизаторов, которые построены на трансиверах 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 ZigBeeTM Protocol». Кроме того, разработчик имеет право вносить некоторые изменения в существующую реализацию MiWi. Ограничения на использование и лицензия находятся в документации на стек.
Протокол MiWi базируется на спецификации IEEE 802.15.4 для уровней MAC и PHY и предназначен для построения простых беспроводных сетей диапазона 2,4 ГГц.
В рамках протокола производится формирование сети, подключение новых узлов, маршрутизация. Протокол не описывает специфические функции, такие, как регистрация узла в определенной сети, определение обрыва соединения, как часто узлы могут обмениваться информацией и т.д.
Уровни PHY и MAC
Как уже было сказано, MiWi базируется на спецификации IEEE 802.15.4 для физического (PHY) и канального (MAC) уровней. В рамках спецификации определено три частотных диапазона с фиксированным количеством каналов для каждого (табл. 1).
Частотный диапазон, МГц | Количество каналов | Скорость передачи, кб/с |
---|---|---|
868 | 1 | 20 |
915 | 10 | 40 |
2400 | 16 | 250 |
Важно понимать, что реальная скорость передачи ниже указанной в таблице, т.к. в канале идет обмен служебной информацией и существуют задержки на обработку пакетов.
Максимальная длина пакета, включая 16-битную контрольную сумму - 127 байт.
Для контроля подтверждения получения пакета, помимо проверочной контрольной суммы, в рамках стандарта на канальном уровне заложен механизм подтверждений. В заголовке пакета предусмотрен бит ACK: если этот бит установлен, то источник нуждается в подтверждении от приемника. Если источник не получает подтверждения в течение определенного времени, он предпринимает несколько попыток повтора передачи, прежде чем сообщает об ошибке.
Получение подтверждения от приемника говорит только о том, что пакет правильно принят на канальном уровне, это вовсе не значит, что он был правильно обработан верхними уровнями. Например, если при приеме пакета будет высокая загруженность вычислительных ресурсов приемного узла, аппаратура канального уровня выдаст подтверждение источнику, но пакет не будет обработан корректно. Для сохранения целостности данных необходимо принимать дополнительные меры на верхних уровнях (в пользовательском протоколе).
Единственным условием использования протокола MiWi в разработках является применение микроконтроллеров и приемопередатчиков производства Microchip. Реализация протокола MiWi поддерживает применение как 8-разрядных (PIC12/PIC16, PIC18), так и 16-разрядных (dsPIC, PIC24) микроконтроллеров. Структурная схема трансивера дана на рисунке 1.
Рис. 1. Структурная схема трансивера
В качестве приемопередатчика, совместимого со стандартом IEEE 802.15.4, применяется трансивер MRF24J40.
Основные особенности микросхемы:
- полное соответствие спецификации IEEE 802.15.4;
- возможность реализации MiWiTM, ZigBeeTM и собственных протоколов;
- диапазон частот: 2,405...2,48 ГГц;
- чувствительность приемника -95 dBm, мощность передатчика 0 dBm (с возможностью программной регулировки);
- встроенный переключатель RX/TX, балансный вход и выход;
- интегрированный малошумящий ГУН, синтезатор и PLL;
- автоматическая калибровка ГУН и цифрового фильтра;
- аппаратная поддержка CSMA-CA, автоматическое квитирование;
- 4-проводной последовательный интерфейс SPI;
- режим пониженного потребления - 2 мкА;
- низкие токи потребления в рабочих режимах - 22 мА при передаче, 18 мА при приеме;
- аппаратный модуль шифрования AES-128;
- раздельные FIFO буферы приемника и передатчика;
- 40-выводной корпус QFN (6x6 мм).
Важными особенностями микросхемы является минимальное количество внешних элементов и простая топология печатной платы. На рисунке 2 показана схема согласования антенны с импедансом 50 Ом, на рисунке 3 - пример печатной антенны.
Рис. 2. Схема согласования антенны для MRF24J40
Рис. 3. Печатная антенна 50 Ом
Полностью доступна разводка модуля приемопередатчика для материала FR4 (4-слойный медный текстолит), что значительно упрощает применение трансивера в новых разработках.Для исследования протокола и начала разработки собственных сетевых устройств MiWi Microchip предлагает отладочный комплект DM163027-4. В состав комплекта входит два полнофункциональных узла на основе микроконтроллера PIC18LF4620-I/P и трансивера MRF24J40, а также анализатор беспроводных протоколов Zena.
Отладочный набор позволяет:
- Оценить дальность работы трансивера вкупе с печатной антенной;
- Изучить особенности начальной регистрации узлов в рамках стандарта IEEE 802.15.4;
- Исследовать протокол MiWi и реализацию Microchip ZigBee;
- Разработать и исследовать собственный коммуникационный протокол.
Программно-аппаратный комплекс Zena позволяет исследовать все протоколы, совместимые со стандартом IEEE 802.15.4. Внешний вид пользовательского интерфейса представлен на рисунке 4.
Рис. 4. Интерфейс Zena
Вся информация о протоколе, инструкция по применению, исходные коды доступна на сайте www.microchip.com/miwi.
Рассмотрим более подробно реализацию протокола MiWi. Изначально в стандарте описано два типа устройств. Протокол MiWi определяет три типа устройств с различной функциональностью: PAN-координатор, координатор и конечное устройство.
Конфигурация сети
В сети MiWi главным узлом всегда является PAN-координатор - образующий узел сети.
Топология «Звезда»
Сетевая топология Звезда показана на рисунке 5.
Рис. 5. Топология «Звезда»
В ее состав входит один PAN-координатор и одно или несколько оконечных устройств. Весь обмен данными между узлами ведется только через PAN-координатор.
Топология «Дерево»
Как уже было сказано, в сети MiWi обязательно есть один PAN-координатор, который является главным узлом в сети.
Остальные координаторы обмениваются данными посредством PAN-координатора, а оконечные устройства - посредством своего координатора. В итоге получается древовидная структура (рис. 6).
Рис. 6. Топология «Дерево»
Топология «Сеть»
Такая структура (рис. 7) очень похожа на «Дерево» за некоторым исключением: полнофункциональные устройства (координаторы) могут обмениваться информацией друг с другом без участия PAN-координатора. Это повышает живучесть сети и снижает задержки доставки сообщений.
Рис. 7. Топология «Сеть»
Обмен «Точка-точка»
В такой конфигурации два узла обмениваются информацией непосредственно друг с другом, без использования сети. Это наиболее простой способ обмена.
Сети с множественным доступом
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 бит (рис. 8).
Рис. 8. Структура короткого адреса
В битах 8...10 указывается номер координатора, уникальный для конкретной сети. Так как под номер координатора отведено 3 бита, это накладывает ограничение на количество координаторов в сети - 8 штук максимум.
В битах 0...6 указывается номер узла. Для координаторов этот номер 0. Бит 7 (RxOffWhenIdle) является инверсным по отношению к описанному в стандарте RxOnWhenIdle. Установленный бит говорит о том, что узел отключает свой трансивер при переходе в режим ожидания. Все пакеты, адресованные этому устройству, будут храниться на родительском узле до тех пор, пока узел не проснется и не начнет работать.
Биты 11...15 не используются и всегда заполняются 0.
Основной и наиболее важной функцией образуемой беспроводной сети является передача сообщений. Для обмена по сети устройства используют короткие адреса. Пример распределения коротких адресов показан на рисунке 9.
Рис. 9. Распределение коротких адресов
Для прямого обмена «точка-точка» используются длинные адреса.
Рис. 10. Формат пакета MiWi
Протокол MiWi использует формат пакетов MAC, описанный стандартом IEEE 802.15.4. (см. рис. 10). Узлы сети используют режим короткой адресации, также определенный в стандарте. На сетевом уровне в пакеты добавляются служебные заголовки протокола MiWi, необходимые для маршрутизации и обработки пакетов:
1. Количество разрешенных пересылок (хопов);
2. Управление кадром;
3. Идентификатор PAN приемника;
4. Короткий адрес приемника;
5. Идентификатор PAN источника;
6. Короткий адрес источника;
7. Номер посылки;
8. Тип пакета. Служебные пакеты имеют тип 00h, пользовательские пакеты 01h..FFh;
9. Идентификатор пакета.
Маршрутизация в беспроводных сетях является сложной задачей. В протоколе MiWi используется обращение к родительским узлам приемника информации и встроенные механизмы стандарта IEEE.
Одной из основных функций алгоритма маршрутизации является трансляция исходящего пакета на нужный координатор.
Для подключения узла к сети MiWi используется стандартная процедура IEEE: новый узел посылает в эфир специальный запрос. В ответ на него все координаторы, которые его слышат, посылают ответ с информацией о своем окружении.
В этом ответе используются три дополнительных байта:
1. Идентификатор протокола (1 байт) - для MiWi это 4Dh;
2. Номер версии (1 байт) - сейчас 10h;
3. Локальные координаторы (1 байт) - указывается список координаторов, с которыми конкретный координатор имеет связь. Каждый бит указывает на связь с одним из восьми возможных координаторов. Бит 0 - связь с PAN-координатором и т.д.
Это позволяет узлам узнавать все возможные маршруты в сети.
Дальнейший обмен по сети происходит в соответствии с алгоритмом (рис. 11).
Рис. 11. Алгоритм маршрутизации
Широковещательный пакет пересылается координаторами своим соседям до тех пор, пока счетчик количества разрешенных пересылок не обнулится, при этом, такие пакеты не передаются конечным узлам. Бит запроса подтверждения доставки ACK в них должен быть сброшен.
Для передачи данных между узлами протокол MiWi использует специальные пакеты. Всего существует 256 типов пакетов и 256 идентификаторов пакета для каждого типа.
Тип 00h зарезервирован для обмена служебной информацией, другие типы доступны пользователю (таблица 2). Объем передаваемых данных в пакете зависит от его типа.
Таблица 2. Зависимость передаваемых данных от типа пакетаТип пакета | Идентификатор | Название |
---|---|---|
00h | 10h | OPEN_CLUSTER_SOCKET_REQUEST |
11h | OPEN_CLUSTER_SOCKET_RESPONSE | |
12h | OPEN_P2P_SOCKET_REQUEST | |
13h | OPEN_P2P_SOCKET_RESPONSE | |
20h | EUI_ADDRESS_SEARCH_REQUEST | |
21h | EUI_ADDRESS_SEARCH_RESPONSE | |
30 | ACK_REPORT_TYPE | |
01h..FFh | 00h..FFh | Доступно пользователю |
Другие возможности протокола MiWi
Адресация и маршрутизация являются базовыми сервисами любого сетевого протокола, в том числе и MiWi. Помимо них, в протоколе MiWi предусмотрены некоторые дополнительные сервисы, позволяющие разработчикам значительно сократить время выхода готового решения. Речь идет об установке виртуального прямого соединения между двумя узлами (механизм сокетов) и поиск устройств с нужным идентификатором EUI.
В стандартном режиме обмена с сети MiWi используются короткие адреса. Но в случае реконфигурации сети короткий адрес конкретного узла может поменяться, т.к. короткие адреса распределяются родительскими координаторами. Для восстановления соединения с этим узлом необходимо знать его полный глобальный адрес, который присваивается устройству при производстве и не меняется.
Для поиска узла с требуемым EUI в протоколе MiWi зарезервированы два служебных пакета: EUI_ADDRESS_SEARCH_REQUEST и EUI_ADDRESS_SEARCH_RESPONSE. Механизм поиска EUI показан на рисунке 12.
Рис. 12. Механизм поиска EUI
Пакет запроса отправляется узлом своему координатору и далее рассылается между координаторами.
Если один из координаторов имеет в составе своих узлов узел с требуемым EUI, он посылает пакет ответа с коротким адресом искомого узла. Этот ответ посылается в адресном режиме с использованием адреса источника из пакета запроса.
В протоколе MiWi также есть возможность создания двух типов сокетов: кластерного и прямого.
Примером использования кластерного сокета является система управления освещением. Необходимо связать нужный выключатель и нужную лампочку. Для этого на лампочке и на выключатели предусматриваются служебные кнопки, нажатие на которые говорит о том, что устройство готово открыть соединение. Нажатие этих кнопок на выключателе и на лампочке настройщиком скажет системе о том, что конкретный выключатель управляет конкретной лампочкой.
Такой тип виртуального соединения актуален для сетей со стабильной структурой и использует короткие адреса (рис. 13).
Рис. 13. Открытие кластерного сокета
Для открытия кластерного сокета узел (например, по нажатию служебной кнопки) посылает пакет OPEN_CLUSTER_SOCKET_REQUEST PAN координатору сети. По приему такого запроса PAN-координатор переходит в режим ожидания аналогичного запроса от другого узла на определенный промежуток времени. Если в течении этого промежутка PAN координатор получает второй запрос, он отсылает ответ OPEN_CLUSTER_SOCKET_RESPONSE обоим узлам и узлы устанавливают соединение.
Если запрос от второго узла не получен, режим ожидания сбрасывается, и ответ не посылается.
Прямые сокеты имеют другой алгоритм, нежели кластерные.
Когда узел хочет открыть прямой сокет, он посылает широковещательный пакет OPEN_P2P_SOCKET_REQUEST, в котором указывает свой глобальный EUI. Любой узел, получивший такой пакет и желающий установить соединение, отправляет в ответ пакет OPEN_P2P_SOCKET_RESPONSE со своим EUI.
В текущей реализации протокола подтверждать открытие сокетов могут только координаторы (рис. 14).
Рис. 14. Открытие прямого сокета
Протокол MiWi поддерживает все семь механизмов безопасности данных уровня MAC, описанных в стандарте IEEE 802.15.4.
Механизмы делятся на три группы:
1. AES-CTR - шифрование данных в пакете. В случае атаки взломщик не сможет получить исходную информацию, не имея ключа. Этот механизм не контролирует целостность пакета и не защищает адрес источника, который передается в открытом виде
2. AES-CBC-MAC - поддержка целостности пакета. В пакет добавляется поле контроля целостности (MIC), которое защищает пакет, включая заголовок и данные, от модификаций во время пересылок. Размер поля MIC задается при разработке; большой размер увеличивает степень защиты.
3. AES-CCM - совмещает предыдущие механизмы: поддерживает целостность и шифрует содержимое.
Режимы шифрования указаны в таблице 3.
Таблица 3. Режимы шифрованияРежим шифрования | Механизмы | Размер MIC | ||||
---|---|---|---|---|---|---|
Идентификатор | Название | Контроль доступа | Шифрование | Целостность | Свежесть посылки | |
01h | AES-CTR | * | * | * | 0 | |
02h | AES-CCM-128 | * | * | * | * | 16 |
03h | AES-CCM-64 | * | * | * | * | 8 |
04h | AES-CCM-32 | * | * | * | * | 4 |
05h | AES-CBC-MAC-128 | * | * | 16 | ||
06h | AES-CBC-MAC-64 | * | * | 8 | ||
07h | AES-CBC-MAC-32 | * | * | 4 |
Любой из механизмов добавляет в заголовок пакета три поля:
- счетчик пакетов;
- полный адрес источника;
- последовательный номер.
В итоге размер пакета увеличивается на 13...29 байт в зависимости от применяемого механизма (рис. 15).
Рис. 15. Формат пакета MiWi с шифрованием
Более подробно о механизмах шифрования можно узнать из описания протокола.
Протокол MiWi реализован для микроконтроллеров PIC18 и PIC24 и, поставляемый в исходных кодах, может быть портирован для PIC12/PIC16.
Минимальные требования к производительности ядра и возможность перехода в ждущий режим дают возможность создания дешевых батарейных узлов для работы в беспроводных сетях MiWi.
Разработчику следует обратить внимание на описанный ранее отладочный комплект DM163027-4 - этого достаточно для начала работы и исследования основных параметров радиоканала и протокола. Причем, в комплекте поставляется программное обеспечение как для MiWi, так и для ZigBee.
Важным поводом для начала разработки радиоустройств с диапазоном 2,4 ГГц является решение Государственной комиссии по радиочастотам о выделении указанного диапазона для разработки, производства и модернизации устройств малого радиуса действия без получения дополнительных разрешений.
Для внутриофисного применения излучаемая мощность ограничена 100 мВт, для всех остальных применений - 10 мВт. Подробную информацию об использовании радиодиапазона 2,4 ГГц можно найти на официальном сайте www.minsvyaz.ru.
Ваш комментарий к статье | ||||