Описание лабораторного стенда. Лабораторная установка включает в себя следующие элементы (см

Лабораторная установка включает в себя следующие элементы (см. рис. 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.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: