Обмена сообщениями между сетевыми протоколами происходит через точки доступа к услугам (SAP - Service Access Point). MAC слой предоставляет два сервиса для связи с верхними уровнями:
· Общий MAC-уровень (MCPS - MAC common part sublayer)
Существует 4 вида сообщений:
· request - запрос от верхнего слоя к MAC слою;
· confirm - ответ MAC слоя на запрос верхнего слоя;
· indication - сообщение от MAC слоя к верхнему слою, которое указывает на внутреннее событие слоя;
· response - отправляется от верхнего слоя к MAC слою, чтобы завершить процедуру
ранее вызванную примитивом indication. [4]
На устройствах передачи и приема реализованы физический и MAC уровни. На физическом уровне сетевые
устройства обмениваются сообщениями через радиоканал. MAC уровень передатчика взаимодействует с MAC уровнем приложения с помощью
драйвера rxtxcomm. MAC уровень приложения предоставляет функции управления
средой передачи верхним слоям. На рис. 3 показана схема взаимодействия
координатора сети и сетевого устройства.
Рисунок 3. Функционирование сети
Для того чтобы сформировать сеть нужно выбрать координатор персональной
сети (PAN Coordinator - Personal Area Network Coordinator). В каждой сети должен
присутствовать ровно один координатор. Рисунок 4 демонстрирует формирование
сети, которое начинается, когда верхний слой посылает примитив MLME-SCAN.request
объекту управления уровнем MAC (MLME - MAC Management Service or MAC Layer Management Entity), запрашивая активное сканирование канала. После
завершения сканирования канала результаты отсылаются обратно через примитив MLME-SCAN.confirm.
Если результаты приемлемые, то верхний слой выбирает идентификатор персональной
сети и отправляет примитив MLME-START.request объекту управления уровнем MAC. Примитив MLME-START.request требует MAC слой поместить идентификатор персональной сети в информационную базу
персональной сети (PIB). После этого,
MAC слой отправляет примитив MLME-START.confirm
верхнему слою. Данное устройство становится координатором персональной сети и
сеть сформирована.
Рисунок
4. Формирование сети
Чтобы передать сообщение другому сетевому устройству, приложение
отправитель посылать запрос MCPS-DATA.request MAC слою. Запрос MCPS-DATA.request содержит сообщение, адрес
получателя, длину сообщения и другие параметры. MAC слой отправителя передает сообщение по радиоканалу MAC слою получателя, который в ответ
отправляет подтверждение о доставке, если оно было запрошено. MAC слой получателя отправляет сообщение
верхнему слою MCPS-DATA.indication, сообщая о полученном сообщении. Рисунок 5 отображает процесс передачи
сообщения от одного сетевого устройства к другому.
Рисунок 5. Схема передачи сообщения
Атрибуты сети хранятся в информационной базе персональной сети (PIB - PAN Information Base). Для того чтобы получит значение какой-нибудь
переменной из PIB, нужно отправить запрос MLME-GET на MAC
уровень с ее индексом. Для изменения значение используется запрос MLME-SET.
В качестве приложения для демонстрации работы беспроводной сети на основе
стандарта IEEE 802.15.4 была выбрана система
тестирования, состоящая из двух приложений: серверного и клиентского. На
рисунке 6 изображена архитектура системы.
Серверное приложение состоит из 3 частей:
) Первая часть предназначена для работы с сетью и позволяет создавать беспроводную сеть.
) Вторая часть представляет собой таблицу результатов пройденных тестов. Есть возможность добавлять, удалять, редактировать и сортировать данные по столбцам.
) Третья часть предназначена для работы с тестами. Можно создавать
новые тесты, сохранять в файл или редактировать имеющиеся. Пользователь может
устанавливать время для прохождения тесты. Вопросы могут быть с одним ответом,
несколькими вариантами ответов или своим ответом.
После заполнения формы регистрации на клиентском приложении пользователь отправляет запрос на скачивание теста на серверное приложение. Все запросы собираются в единую очередь. Отправка теста в ответ на запрос происходит в порядке FIFO.
Стандарт IEEE 802.15.4 ограничивает максимальный объем сообщения 102 байтами, поэтому для отправки сообщений большого объема необходимо разбивать их на части размером 102 байта или меньше и отправлять по очереди, а затем собирать на клиентском приложении.
Тесты хранятся в следующем формате:
<body>
<nex>4</nex> - количество вопросов в тесте
<ex1> - вопрос №1
<qt>1</qt> - тип вопроса (1 - с одним правильным ответов, 2 - с несколькими, 3 - со своим ответом)
<q>Сколько будет 3+3?</q> - вопрос
<na>2</na> - количество ответов
<a1>6</a1> - ответ номер №1
<a2>12</a2> - ответ номер №2
<ra>2</ra> - номер правильного ответа
</ex1>
<ex2>
…
</ex2>
<ex3>
…
</ex3>
…
</body>
Сообщение с результатами тестирования также может состоять из нескольких
частей, поэтому каждое поступившие сообщение проверяется на законченность. Если
в начале и в конце присутствуют теги <body> и </body>, то сообщение целое и данные о прохождении тестирования добавляются
в таблицу с результатами. Если сообщение не имеет конечного тега, то
сохраняется текущая часть, следующая пришедшая часть добавляется к имеющейся
части и снова проверяется на законченность. Чтобы избежать ошибок во время
сборки сообщений из нескольких частей, для каждого сетевого устройства
сообщения хранятся и собираются отдельно.
Клиентское приложение состоит из 4 частей:
) Первое окно предназначено для работы с сетью и позволяет пользователю подключиться к серверу.
) В следующем окне имеется форма регистрации для ввода данных, которая затем отправлять запрос на скачивание выбранного теста.
) После того как тест будет скачан, пользователь может начать отвечать на вопросы. Тест оканчивается по истечению установленного времени или, если пользователь вручную его завершил. После завершения теста система подсчитывает набранные баллы и отправляет информацию на сервер, где она заносится в таблицу результатов.
) В последней форме пользователь может увидеть набранные баллы и вернуться к форме регистрации для повторного прохождения теста.
Результаты тестирования отправляются на сервер в следующем формате:
<body>
<fio>Яхиев Иса Джабраилович</fio> - ФИО
<fac>ПИ</fac> - название факультета
<gro>471</gro> - номер группы
<tstn>1</tstn> - номер теста
<rap>5</rap> - количество правильных ответов
<ras>25</ras> - процен правильных ответов
</body>
· Для разработки клиентского и серверного приложений был выбран объектно-ориентированный язык Java, которые и среда разработки Intellij IDEA.
· Для управления MAC уровнем передатчика с MAC уровня приложения используется библиотека Meshnetics.
· Для доступа к COM
портам из приложения, к которым подключаются передатчики, используется
библиотека RxTx.
Результатом данной выпускной квалификационной работы является клиент-серверная система на основе беспроводной сети стандарта IEEE 802.15.4.
В ходе работы были решены следующие задачи:
. Изучен стандарт беспроводной связи IEEE 802.15.4
. Построена беспроводная сеть с топологией звезда стандарта IEEE 802.15.4
. Создана клиент-серверная система на основе беспроводной сети.
Во время разработк были выявлены ограничения стандарта IEEE 802.15.4, на которые пришлось пойти при разработке стандарта для уменьшения энергопотребления и стоимости монтажа и обслуживания, поэтому они не являются критичными. Стандарт имеет следующие ограничения:
· Максимальный размер передаваемого сообщения равен 102 байтам
· Небольшая скорость передачи данных (20 - 250 кбит/с)
· Маленький радиус действия сети (<10 м)
1. Atmel AVR2025: IEEE 802.15.4 MAC Software Package - User Guide. Atmel Corporation, USA, 2012
2. IEEE 802.15.4 MAC User Guide. Atmel Corporation, USA, 2006
. Jose A. Gutierrez, Edgar H. Callaway Jr., Raymond L. Barrett Jr. Low-Rate Wireless Personal Area Networks: Enabling Wireless Sensors With IEEE 802.15.4. USA, 2003
. MAC external interface. 2008
. Е. Баранова. IEEE 802.15.4 и его программная надстройка ZigBee. Россия, 2008.
6. IEEE 802.15.4. URL: <http://ru.wikipedia.org/wiki/IEEE_802.15.4>
. Media Access Control. URL: http://ru.wikipedia.org/wiki/Media_Access_Control <URL:%20http://ru.wikipedia.org/wiki/Media_Access_Control>
. OSI model. URL: <http://ru.wikipedia.org/wiki/OSI_model>