
Модуль 4
«Беспроводные сети связи»
Лабораторная работа № 6
Исследование режима энергосбережения в сети ZigBee
по дисциплине «Сети связи и системы коммутации»
Оглавление
Цель работы 1
Продолжительность 1
Оборудование, приборы, инструментарий 1
Описание лабораторного стенда 4
Методика выполнения 7
Задание на лабораторную работу 7
Требования к отчету 9
Контрольные вопросы 10
Рекомендуемая литература 10
Цель работы
1) создание программ, создающих сеть ZigBee из трех устройств, обменивающихся данными;
2) обеспечение работы одного из узлов в режиме энергосбережения.
Продолжительность
Лабораторная работа рассчитана на 0,1 зачетных единицы, 4 часа.
Оборудование, приборы, инструментарий
В состав лабораторного стенда входит: лабораторная установка «Сенсорные сети ZigBee», ПК, USB-кабель.
Краткие теоретические сведения
Сеть ZigBee – самоорганизующаяся, и ее функционирование начинается с формирования сети. При проектировании одно из устройств назначается координатором персональной сети, и оно определяет и выделяет для связи канал, свободный от помех. Устройства, желающие присоединиться к сети, посылают широковещательный запрос, и координатор присоединяет устройства к сети. Когда в сети появляются новые устройства, те из них, которые выполняют роли маршрутизаторов, могут присоединять следующие устройства к сети.
Существует два основных способа присоединения новых устройств к сети ZigBee: MAC ассоциация и повторное сетевое присоединение.
MAC ассоциация осуществляется на MAC уровне и доступна любому устройству стандарта ZigBee. Координатор или маршрутизатор, способный присоединять другие устройства, на MAC уровне устанавливает разрешение на соединение. Устройство, пытающееся присоединиться к сети, передает широковещательный запрос на подключение. Получив отклик от устройств, готовых присоединить данный узел к сети, последний определяет, к какой сети и какому устройству оно присоединится, выставляет на MAC уровне требование о присоединении к сети и отправляет на выбранное устройство запрос соединения. В ответ подключаемое устройство получает собственный сетевой адрес. При таком подключении данные передаются в незашифрованном виде.
Повторное сетевое присоединение осуществляется на сетевом уровне и может выполняться как при повторном, так и при первичном соединении. Если присоединяемое устройство знает текущий сетевой ключ, обмен данными может происходить безопасно. Желающее присоединиться к сети устройство выставляет на сетевом уровне запрос присоединения и обменивается пакетами с подключающими устройствами.
Функционирование низкоскоростных беспроводных персональных сетей регламентируется стандартом IEEE 802.15.4 на физическом и MAC уровне и стандартом ZigBee на сетевом уровне и уровне приложений. На сетевом уровне ZigBee сетей поддерживаются такие функции, как управление безопасностью сети, управление сетью и маршрутизация.
Маршрутизация в сетях ZigBee обычно осуществляется по алгоритму «Ad Hoc On Demand Distance Vector» (AODV), основным понятием которого является «вектор расстояния» - логическое расстояние от источника сообщения до текущего узла сети, зависящее от качества связи между узлами. Алгоритм работает следующим образом:
устройство, желающее отправить сообщение, (источник) инициирует процесс поиска маршрута до узла адресата;
каждое устройство, получившее запрос маршрута, делает в своей памяти запись, в которой содержится логическое расстояние от источника и адрес источника, и ретранслируют запрос, включая в него эти данные,
устройства, получившие ретранслированный запрос, сохраняют адрес предыдущего узла и логическое расстояние от источника, и транслируют запрос дальше;
таким образом, логическое расстояние с каждой ретрансляцией увеличивается до тех пор, пока не будет найден адресат, причем к адресату, как правило, приходит несколько ретранслированных запросов с разными логическими расстояниями;
адресат отправляет источнику пакет по маршруту, имеющему наименьшее логическое расстояние, и пакет будет возвращаться в соответствии со своей таблицей маршрута;
источник может начинать передачу сообщения адресату по наиболее короткому маршруту.
Такой алгоритм отличается универсальностью и высокой эффективностью, однако требует большого объема памяти устройств для хранения маршрутов, что повышает конечную стоимость устройств, поэтому в сетях ZigBee также реализован алгоритм иерархической маршрутизации.
Иерархическая маршрутизация реализуется значительно проще, но для нее необходимо задавать адреса всем сетевым устройствам в иерархическом порядке, начиная с координатора. Таким образом, любое устройств сети, зная адрес получателя пакета и свой адрес, принимает решение, передавать ли пакет дочернему устройству, если адресат принадлежит к «нисходящей ветви», или же передавать пакет в направлении координатора, если в иерархии устройств адресат находится в другом месте. Такой алгоритм не требует большого расхода ресурсов, однако имеет один существенный недостаток: возможны случаи, в которых пакеты будут двигаться до координатора и обратно в том случае, когда отправитель и получателя находятся очень близко друг к другу.
На уровне приложений стандарта ZigBee определяется объект устройства (ZigBee Device Object), то есть роль устройства (координатор, маршрутизатор или оконечное устройство), процессы инициации запросов поиска и присоединения и ответы на запросы, а также политика безопасности сети ZigBee. Подуровень поддержки приложений (Application Support Sublayer – APS) отвечает за предоставление данных приложениям и профилям устройства ZigBee.
Профилем называется совокупность настроек программного обеспечения узлов сети, обеспечивающая их совместную работу. Спецификация профиля определяет такие параметры, как способы задания идентификационных параметров сети, режимы образования сети и способы защиты данных. Выделяют такие профили, как Smart Energy (Рациональное использование энергии) Home Automation (Домашняя автоматизация) и др. Для каждого профиля выпускаются свои стандарты; это делается для того, чтобы обеспечить возможность совместной работы в одной беспроводной ZigBee сети устройств различных производителей.
Описание лабораторного стенда
Лабораторная установка включает в себя следующие элементы (см. рис. 1):
Микроконтроллер с платой программатора – 3 шт.,
Модуль ZigBee – 3 шт.,
ЖК-дисплей,
Блок индикации,
Блок переключения
Порт USB для подключения к ПК – 3 шт.,
Кнопка управления питанием.
Рис. 1 – Схема лабораторной установки
Лабораторная установка включает в себя 3 узла ZigBee. Центральный узел является координатором, а боковые узлы – оконечными узлами или маршрутизаторами.
В данной лабораторной работе повторяется функционал предыдущей работы с тем исключением, что у узла 3 появляется функционал, позволяющий ему уходить в режим сна для снижения энергопотребления.
Структура протокола ZigBee такова, что узел координатор или узел маршрутизатор может сохранять данные для оконечных узлов, когда те находятся в режиме сна. Для того чтобы перевести оконечное устройство в рабочий режим узел использует специальный макрос. Затем сохраненные данные автоматически передаются в оконечное устройство из координатора.
Режим пониженного энергопотребления. Режим энергосбережения широко используется при разработке приложений с модулями ZigBee. Используемые в лабораторной установке модули ZigBee имеют два режима энергосбережения. В первом режиме модуль входит в энергосбережение с помощью подачи напряжения на определенный вывод микросхемы ZigBee. Второй режим управляется специальным таймером, также встроенным в микросхему ZigBee. В данной работе будет использован первый режим.
Макрос Node_Configure_Sleep. Макрос Node_Configure_Sleep позволяет задать один из вышеуказанных режимов энергосбережения, либо вообще отключить его. Для данной работы будет использован режим вхождения в энергосбережение с помощью подачи напряжения на определенный вывод микросхемы ZigBee. Для этого макрос Node_Configure_Sleep должен быть вызван с параметрами 2, 0.
Макрос Node_Wake. Для вывода модуля ZigBee из режима энергосбережения используют макрос Node_Wake. Если в тот момент, когда устройство «спало», ему пытались передать какие либо данные, то они сохранялись в узле координаторе. Как только устройство выйдет из режима сна, оно получит эти данные из буфера координатора.
Описание программы
Программа для узла 1 содержит несколько блоков. В первом блоке инициализируют устройство ZigBee и ЖК-экран. Далее выполняют поиск других устройств. Для поиска подключенных устройств программа узла 1 отправляет в радиоинтерфейс ZigBee символ «1». После этого устройство ожидает ответы от узлов 2 и 3. От узла 2 должен прийти ответ с символом «2», а от узла 3 – с символом «3». Успешный прием ответов от узлов 2 и 3 должен сопровождаться выводом информации об этом событии на экран узла 1. В заключительной части программы узел 1 должен отправить узлам 2 и 3 символ «0», приняв который оконечные узлы начнут передачу информации друг для друга.
Программа для узлов 2 и 3 также содержит несколько блоков. В первом блоке производят инициализацию устройств. Затем узлы ожидают получения символа «1» от координатора. Узел 2, получив данный символ, отправляет на координатор ответ с символом «2». Узел 3, получив данный символ, делает паузу в 5 мс и отправляет на координатор ответ с символом «3». Пауза необходима для того чтобы избежать коллизии при передачи ответов на координатор. В следующей части программы узлы ожидают от координатора получения символа «0». Получив данный символ, узел 2 подключается к узлу 3 с помощью макроса Connect_To_Name. Далее узел 2 в бесконечном цикле ожидает нажатия на любую из клавиш блока переключателей и передает значение нажатой клавиши на узел 3 с помощью макроса Send_Char. Узел 3 принимает все символы от узла 2 с помощью макроса Receive_Char и отображает их на блоке индикации. Заключительный блок программы узла 3 содержит включение и отключение режима энергосбережения. Данный режим необходимо включить с помощью макроса Node_Configure_Sleep(2,0). Затем необходимо сделать паузу в программе на 5 с. Далее нужно принудительно вывести узел 3 из режима энергосбережения с помощью макроса Node_Wake.