Пояснительная записка - копия (1210426), страница 6
Текст из файла (страница 6)
Окно уведомлений в самом низу редактора Arduino IDE служит для вывода уведомлений об ошибках, возникающих в процессе компиляции программы, или во время загрузки программы в микроконтроллер.
Непосредственно, текст программы создается и редактируется в текстовом редакторе программного кода. По сути, окно редактора представляет собой типичный текстовый редактор, с подсветкой конструкций кода.
Программа, написанная в среде Arduino, называется скетч. Язык программирования устройств Arduino основан на C/C++ и скомпонован с библиотекой AVR Libc и позволяет использовать любые ее функции.
Скетч обязательно содержит 2 функции: функцию setup и функцию loop. Функция setup предназначена для настройки платы и вызывается при подаче питания на плату. Функция setup вызывается лишь раз. После выполнения функции setup идет циклический вызов функции loop (т.е. сразу после выхода из функции setup, выполняется функция loop, после выхода из неё, она же вызывается снова. Процесс продолжается пока питание не будет отключено.). Функция loop выполняется в бесконечном цикле. В основном она опрашивает состояние портов входа/вывода и проверяет наличие пришедших команд.
Интерфейс программы Arduino IDE представлен на листе 5 графического материала.
2.3 Работа с модулями XBee
2.3.1 Модуль XBee S2C
Для исследования практического применения беспроводных сенсорных сетей в качестве системы позиционирования подвижных объектов в данной работе был выбран модуль XBee S2C от фирмы Digi. Модуль представлен на рисунке 2.8.
Рисунок 2.8 – ZigBee модуль XBee S2C
Модули XBee S2C производятся компанией Digi. Они выполнены на однокристальном чипе Ember EM357, который представляет собой трансивер стандарта IEEE 802.15.4 и 16-разрядный микроконтроллер на ядре MC9508QE32CFT со встроенной памятью 128 Кбайт. Большой объем Flash-памяти позволил разместить в модуле как стек Ember ZNet, так и собственное программное обеспечение от Digi, которое предоставляет доступ к стеку ZigBee. Модули XBee S2C совместимы по типоразмеру, функциям выводов и радио-интерфейсу с модулями семейства XBee от производителя Digi. Характеристики модуля XBee S2C представлены в таблице 2.2 [5].
Таблица 2.2 – Характеристика модулей серии XBee S2C
Максимальная дальность передачи данных внутри помещения / на открытой местности, м | 60 / 1200 |
Мощность передатчика, дБм | +8 |
Чувствительность приемника, дБм | -102 |
Количество цифровых портов | 11 |
Количество каналов АЦП | 4 |
Программное обеспечение | Ember ZNet |
Модули поставляются с уже загруженным программным обеспечением, реализующим один из двух вариантов управления — с помощью АТ-команд (прозрачный режим) или API-фреймов. Кроме этого, в зависимости от сетевой функции узла в сети, разработчику доступны на выбор соответствующие версии прошивок, список которых представлен в таблице 2.3.
Таблица 2.3 – Версии прошивок модулей XBee S2C
Версия программного обеспечения | Функции модуля в сети | Режим управления |
2020 | Координатор | AT-команды |
2120 | Координатор | API-фреймы |
2220 | Роутер (маршрутизатор) | AT-команды |
2320 | Роутер (маршрутизатор) | API-фреймы |
2820 | Конечное устройство | AT-команды |
2920 | Конечное устройство | API-фреймы |
Каждый из модулей может быть перепрограммирован под любую сетевую роль и управление тем или иным методом. Это можно сделать с помощью бесплатно распространяемой программы XCTU. Интерфейс и работа программы будут рассмотрены далее.
Встроенное программное обеспечение поддерживает ряд сервисных функций, реализованных на определенных выводах модуля, например, светодиод индикации успешного запуска и присоединения к сети или выход аналоговой индикации уровня принимаемого сигнала.
2.3.2 Режимы энергопотребления
Одним из главных достоинств стандарта ZigBee является его ориентация на малое энергопотребление беспроводных устройств. Стандарт IEEE 802.15.4, лежащий в основе ZigBee, разработан с возможностями применения в условиях ограниченного питания. Характеристика энергопотребления модулей XBee S2C представлена в таблице 2.4 [5].
Таблица 2.4 – Энергопотребление модулей Xbee S2C
Напряжение питания, В | 2.1 – 3.6 |
Ток в режиме передачи, мА | 45 |
Ток в режиме приема, мА | 31 |
Ток в режиме сна, мА | <1 |
Работа конечного устройства в состоянии сна поддерживается его родительским устройством (координатором или маршрутизатором). Родительское устройство сохраняет пакет, предназначенный для дочернего устройства, в течение максимального времени, установленного параметром SP. Параметр SP родительского устройства должен быть больше или равен наибольшему из параметров SP для всех его дочерних устройств, чтобы исключить потерю данных на родительском устройстве. Продолжительность нахождения конечного устройства в активном состоянии можно задавать параметром ST. Данный простой и в то же время гибкий механизм, прежде всего, позволяет соблюдать баланс между экономией электроэнергии и задержкой в передаче сообщений.
2.3.3 Подключение модуля к управляющему микроконтроллеру
Сопряжение модуля с микроконтроллером осуществляется с помощью интерфейса UART (рисунок 2.9). Для этого выводы модуля 2 и 3 соединены с выводами 0 и 1 (RX и TX) микроконтроллера. Вывод 12 (CTS) модуля ZigBee для контроля передачи данных по последовательному каналу подключен к выводу 3 (PWM) микроконтроллера. В случае, когда до заполнения буфера ZigBee модуля остается 17 байт, на выводе CTS устанавливается сигнал высокого уровня, что сигнализирует микроконтроллеру приостановить передачу данных. Когда свободное пространство буфера увеличивается до 34 байт, на выводе CTS снова устанавливается сигнал низкого уровня, обмен данными возобновляется. Индикация работы модуля ZigBee осуществляется с помощью светодиода HL1 и задающего резистора R2.
Рисунок 2.9 – Схема сопряжения модуля XBee S2C и платы Arduino Uno
2.3.4 Настройка модуля XBee
В силу огромной мировой популярности модулей XBee многие компании выпускаю собственное программное обеспечение для упрощения управления и настройки XBee модуля. В этих программах можно не только автоматически настраивать модули при помощи API – команд, но и декодировать принятые API – пакеты, т.е. увидеть тип пакета, адрес отправителя и т.д. Дополнительно такие пакеты программ позволяют просматривать структуру сети и вести статистику.
Компания Digi International предоставляет на рынок бесплатное программное обеспечение XCTU, которое содержит инструменты для организации работы с ZigBee модулями. Общий вид главного окна данной программы представлен на листе 4 графического материала.
Основное назначение данной программы быстрая настройка модулей, а также анализ работы уже созданных сетей.
Интерфейс главного окна включает в себя:
-
панель добавления новых модулей;
-
панель выбора режима работы XCTU;
-
инструменты для работы с модулем;
-
окно отображения подключенных модулей;
-
рабочую область.
Программа XCTU поддерживает три режима работы: режим настройки модулей; режим взаимодействия с модулем; режим работы с сетью.
Работа с программой начинается с добавления вновь подключенных модулей. При подключении модуля необходимо настроить параметры обмена данными (скорость передачи, размер одной посылки, количество стоп битов, проверка на четность, управление потоком). На рисунке 2.10 представлено диалоговое окно настройки подключения.
Рисунок 2.10 – Настройка параметров передачи данных
После того как модуль будет распознан, информация о нем будет добавлена в окно отображения подключенных модулей (рисунок 2.11). В этом окне можно изменить название модуля, а также узнать какая версия прошивки загружена в модуль на данный момент.
Рисунок 2.11 – Отображение подключенных модулей
2.3.4.1 Работа с программой в режиме настройки модуля
В режиме настройки модуля пользователь может произвести действия по настройке сетевой информации и прошивке выбранного модуля. Панель настройки прошивки представлена на рисунке 2.12.
Рисунок 2.12 – Панель настройки прошивки
Для прошивки модуля необходимо нажать Update и выбрать из списка доступную версию прошивки (рисунок 2.13).
Рисунок 2.13 – Список доступных прошивок для загрузки
Для настройки сетевой информации модуля, необходимо в панели выбора режима программы выбрать соответствующий режим. Данный режим выбран по умолчанию и при успешном подключении модуля в рабочей области будут отображены сетевые настройки модуля. На рисунке 2.14 представлена часть доступных к редактированию сетевых настроек.
Рисунок 2.14 – Сетевые настройки модуля
2.3.4.2 Работа с программой в режиме взаимодействия с модулем
Данный режим предназначен для обмена данными с модулем. В основном этот режим используется для управления отдельными модулями. Для управления существует два режима: с помощью API – фреймов и с помощью AT команд.
Для того что бы работать в режиме взаимодействия с модулем, необходимо выбрать подключенный модуль и перейти в режим взаимодействия. Рабочая область в режиме управления с помощью API – фреймов представлена на рисунке 2.15.
Рисунок 2.15 – Рабочая область в режиме взаимодействия с модулем
Пользователю предлагается три окна для отображения диалоговой информации между пользователем и модулем. В окне Frames log отображается статус всех фреймов. В зависимости от того получен фрейм или отправлен, цвет поля принимает синий и красный цвет соответственно (рисунок 2.16).
Рисунок 2.16 – Окно фреймов
Окно Frame details отображает детали выбранного фрейма. Информация, заключенная в фрейм, проходит процесс дешифровки и предоставляется пользователю в более удобном виде (рисунок 2.17).
Рисунок 2.17 – Окно деталей выбранного фрейма
Нижняя часть рабочей области отвечает за процесс формирования и отправки фреймов.
Рабочая область в режиме управления с помощью AT – команд не сильно отличается и представлена на рисунке 2.18.
Рисунок 2.18 – Рабочая область в режиме управления с помощью
AT – команд
2.3.4.3 Работа с программой в режиме управления сетью
Данный режим работы позволяет пользователю отобразить топологию разворачиваемой или уже развернутой сети. Данный режим работы доступен только при управлении с помощью API – команд.
Представить топологию можно в виде таблицы, но для наглядности существует режим отображения в виде структуры (рисунок 2.19).
Рисунок 2.19 – Структурное представление сети
Пользователю предоставляется информация об роли устройства в сети, его внутрисетевой адрес, отображение всех активных соединений с соседними устройствами, а также уровень сигнала между устройствами. При отображении в табличном виде, предоставляется аналогичная информация.