Пояснительная записка - копия (Разработка системы позиционирования подвижных объектов с помощью беспроводных сенсорных сетей), страница 7
Описание файла
Файл "Пояснительная записка - копия" внутри архива находится в следующих папках: Разработка системы позиционирования подвижных объектов с помощью беспроводных сенсорных сетей, 255 Демин Григорий Иннокентьевич. Документ из архива "Разработка системы позиционирования подвижных объектов с помощью беспроводных сенсорных сетей", который расположен в категории "". Всё это находится в предмете "дипломы и вкр" из 8 семестр, которые можно найти в файловом архиве ДВГУПС. Не смотря на прямую связь этого архива с ДВГУПС, его также можно найти и в других разделах. .
Онлайн просмотр документа "Пояснительная записка - копия"
Текст 7 страницы из документа "Пояснительная записка - копия"
Помимо визуального отображения топологии сети, в данном режиме работы есть возможность задавать необходимую топологию.
2.4 Программное обеспечение для управляющего микроконтроллера
Для проведения экспериментальной части работы был реализован метод позиционирования основанный на анализе уровня принимаемого сигнала. Для этого использовались модули XBee S2C, со встроенной протокольной функцией определения уровня сигнала. В качестве управляющего микроконтроллера использовалась плата Arduino Uno. Один из узлов передачи данных являлся стационарным и был подключен к ПК по средствам USB. На ПК при помощи разработанного пользовательского приложения происходил сбор и анализ данных.
Программное обеспечение для управляющего микроконтроллера было разработано для передающего и принимающего узлов.
В Arduino IDE есть набор стандартных библиотек, которые используются очень часто. Эти библиотеки поддерживают все примеры, которые включены в Arduino IDE. Стандартные библиотеки поддерживают функции для работы с наиболее распространенным периферийным оборудованием.
Для работы с модулями XBee в проекте применялась библиотека <XBee.h>. Данная библиотека поддерживает работу с XBee модулями Series 1 и Series 2. Кроме того поддерживает работу с большинством типов пакетов. Функции, которые использовались в работе, рассмотрены далее.
Xbee.setSerial() – функция установки скорости обмена данными. Аргументом функции является скорость коммуникации.
Xbee.begin() – функция инициализации модуля XBee. Функция не имеет аргументов.
Xbee.readPacket() – функция чтения данных из эфира. Аргументом функции является время чтения эфира в миллисекундах.
Xbee.getResponse() – функция проверки статуса отправленного пакета. Функция не имеет аргументов.
Xbee.getApiId() – функция получения информации о приемнике. Функция не имеет аргументов.
Xbee.getRssi() – функция считывания информации о RSSI. Функция не имеет аргументов. Возвращает значение RSSI последнего принятого пакета.
Xbee.send() – функция передачи данных в эфир. Аргументом функции является массив данных.
Так как в Arduino Uno аппаратная поддержка интерфейса последовательной передачи данных реализована через выводы 0 и 1 которые также используются для связи с компьютером посредством USB необходимо дополнительно реализовать последовательный интерфейс на любых цифровых выводах с помощью программных средств, дублирующих функциональность UART. Это необходимо для того что бы принимающий узел получал данные по беспроводному каналу и ретранслировал их по проводному на ПК.
Библиотека <SoftwareSerial.h> позволяет программно создавать несколько последовательных портов, работающих на скорости до 115200 бод. Функции, использованные в работе, рассмотрены далее.
SoftwareSerial.begin() – функция инициализации передачи данных по UART интерфейсу.
SoftwareSerial.nss() – функция задания дискретных портов для дополнительного UART интерфейса. Функция имеет два аргумента RX и TX.
SoftwareSerial.println() – функция отправки данных в serial порт.
Для работы с программными задержками использовалась стандартная функция delay().
2.5 Организация беспроводного канала связи
2.5.1 Режимы управления
Как уже отмечалось ранее модули с версиями программного обеспечения 2020, 2220, 2820 поддерживают работу в прозрачном режиме (с помощью AT-команд). При работе в прозрачном режиме взаимодействие управляющего микроконтроллера и модуля происходит по UART интерфейсу. Все последовательные данные, полученные модулем по интерфейсу UART, будут отправлены в эфир. Полученные из эфира данные так же будут отправлены через UART. При этом узлы могут находиться вне прямой видимости по радиоканалу. В этом случае ретрансляцию сообщений будут осуществлять другие маршрутизаторы. Таким образом, в прозрачном режиме модули выступают как заменители последовательного интерфейса, реализуя вместо проводных линий беспроводный канал. В прозрачном режиме модули настраиваются с помощью АТ-команд, для чего необходимо переключиться в специальный режим управления. Для перехода в режим управления необходимо подать специальную последовательность символов (по умолчанию +++), причем до и после подачи этой последовательности необходимо выдержать паузу заданной длительности. Сделать это можно при помощи различных serial терминалов. Данный механизм предотвращает случайный переход в режим управления, даже если в отсылаемых данных встречаются подряд три символа + [11].
Для более гибкой настройки и управления модулем предназначен режим управления с помощью API-фреймов. Работа с API, основанная на фреймах, расширяет возможности приложения по управлению модулем. Например, для отправляемых данных можно в самом теле фрейма задать адрес получателя или после каждой отправки данных можно получать специальный фрейм, уведомляющий об успешном или неуспешном прохождении информации до точки назначения через узлы сети ZigBee. Фреймы данных на передачу, получаемые модулем на вход последовательных данных UART, включают:
-
фрейм данных для передачи другому узлу сети;
-
фрейм управления (эквивалент АТ-команд);
-
фреймы приема RF-данных от другого модуля сети;
-
ответ модуля на фрейм управления;
-
оповещение — перезапуск, активация и деактивация, и т. д.
Формат API-фрейма, содержащего запрос на обнаружение всех устройств в сети ZigBee, представлен на рисунке 2.20.
Рисунок 2.20 –- Фрейм запроса на обнаружение устройств в сети
Формат API-фрейма, содержащего ответ на фрейм поиска устройств ZigBee в сети, представлен на рисунке 2.21. Структура фрейма ответа для устройств, выполняющие различные роли в сети ZigBee, одинакова, отличается только идентификаторами.
Рисунок 2.21 – Фрейм ответа на команду поиска устройств ZigBee
2.5.2 Форматы пакетов данных
В сетях ZigBee принята к использованию единая топология передаваемых пакетов. Различаются следующие виды:
-
Пакет данных: используется для передачи данных.
-
Пакет подтверждения: используется для подтверждения успешной передачи данных.
-
Пакет МАС команды: используется для организации пересылок управляющих МАС команд.
-
Сигнальный пакет: используется координатором для организации синхронизированного доступа.
Формат пакета данных представлен на рисунке 2.22. Он позволяет передавать до 104 байт данных. Контроль последовательности передаваемых пакетов реализуется с помощью нумерации пакетов (параметр Data sequence number). Так же на уровне MAC проверяется безошибочность передачи данных. Это реализуется параметром Frame Check Sequence.
Рисунок 2.22 – Формат пакета данных
Пакеты подтверждения обеспечивают обратную связь от получателя к отправителю, сигнализируя об успешной безошибочной передаче пакета данных. Передача пакета подтверждения осуществляется сразу после получения пакета данных. По сравнению с пакетом данных, длина пакета подтверждения меньше, что позволяет увеличивать время нахождения конечных устройств в режиме сна.
Пакеты MAC команд используется для удаленного управления и конфигурирования сетевых устройств. Это позволяет координатору сети конфигурировать по отдельности все сетевые подчиненные устройства вне зависимости от размеров сети.
Сигнальные пакеты передаются между родительскими и оконечными устройствами. Они позволяют оконечным устройствам находится большое количество времени в режиме сна. Оконечные устройства просыпаются только в периоды приема пакетов синхронизации, считывают адреса в пакете синхронизации. Если адрес устройства обнаружен, это означает что у родительского устройства есть пакеты данных для оконечного устройства. Тогда оконечное устройство посылает запрос родительскому на прием данных, тем самым подтверждая свою готовность принять их. Если адрес устройства не обнаружен, то оконечное устройство переходит в спящий режим. Сигнальные пакеты обязательно необходимы для сетей топологии ячеистая и кластерное дерево, обеспечивая синхронизацию всех сетевых устройств без необходимости каждым из них тратить энергию своих автономных источников питания, слушая эфир в ожидании получения пакета.
2.6 Создание пользовательского приложения для ПК
2.6.1 Требования к пользовательскому приложению
Верхний уровень структуры сети позиционирования подразумевает создание пользовательского приложения. В качестве такового разработчикам предлагается создавать приложения, самостоятельно прорабатывая алгоритмы работы и функционал программы.
Для накопления и последующей обработки данных, конечный узел сенсорной сети подключается к ПК. Маршрутные таблицы других узлов настраиваются на передачу данных к нему.
Узел подключаемый к ПК принимает данные по средствам беспроводного канала связи, затем маршрутизирует их на компьютер по средствам проводного канала. Подключение узла к ПК осуществляется по средствам различных интерфейсов. Таким образом к функционалу пользовательского приложения предъявляются следующие требования:
-
настройка нескольких подключений;
-
настройка параметров передачи данных;
-
отображение текущих принимаемых значений;
-
возможность передачи управляющих команд;
-
хранение принимаемых данных;
-
хранение выданных управляющих команд;
-
визуальное отображение накопленных данных.
В данном дипломном проекте было разработано пользовательское приложение для сбора и обработки данных, отвечающее всем требованиям, рассмотренным выше. Для создания приложения была выбрана среда разработки Delphi 7. Вид главного окна приложения представлен на листе 6 графического материала.
2.6.2 Описание используемых компонентов
В процессе разработки приложения необходимо было реализовать подключения устройства к ПК по средствам USB. Реализовать прямое подключение устройств собранных на базе плат Arduino к USB позволяет микроконтроллер ATmega16U2. Это позволяет плате определяться как виртуальный COM-порт. Со стороны устройства, физически, оно будет подключено к порту USB, а со стороны ПК это будет виртуальный COM. Для реализации виртуального порта, необходим компонент, который подключается к COM порту через адреса по внутренней шине ПК, без физического подключения. Для реализации данных функций в приложении сбора и обработки данных используется компонент CommPortDriver.
Компонент ComPortDriver предназначен для работы как физическими, так и виртуальными с COM-портами. Компонент позволяет задавать настройки скорости передачи, номер COM порта, размер одной посылки, количество стоп битов, время ожидания. Данный компонент позволяет полностью настроить канал передачи данных между устройством и ПК.
Для визуального отображения принимаемой и передающей информации использовались стандартные поля отображения текстовой информации – Memo и Edit. Помимо компонентов для визуального отображения информации использовались стандартные компоненты управления и отображения системной информации – кнопки, таймер, вкладки, статус строки.
Для накопления вновь получаемых данных разработанное приложение работает с базой данных, куда заносится вся информация по работе с устройством. В качестве компонента для подключения к базе данных использован компонент FIBPlus. Данный компонент осуществляет подключение к базе данных через систему управления базами данных – FireBird. Управление базами происходит посредством SQL запросов. В разработанном приложении использовались следующие инструменты:
-
FIBDataBase – подключается к базе данных;
-
FIBDataSet – выполняет стандартные SQL запросы и сортировку;
-
FIBTransaction – выполняет операция чтения и записи в базу данных.
Для работы с данными и их визуального отображения использовались компоненты:
-
DataSourse – является источником данных;
-
DBChart – позволяет строить различные диаграммы и графики;
-
DBGrid – предназначен для отображения данных в виде таблицы.
2.6.3 Алгоритм приложения
Алгоритм работы пользовательского приложения представлен на листе 6 графического материала. На этапе инициализации, происходит автоматическое подключение библиотек для работы по созданию графического интерфейса. На этом этапе также описываются переменные.
Информация на экране обновляется раз в секунду, после переполнения программного таймера.