Для решения поставленной задачи воспользуемся микроконтроллером ATmega128RFA1 и стеком протоколов BitCloud фирмы Atmel. А в качестве GPRS модема используем WS6318 фирмы Sierra Wireless.
Для начала определимся какими функции будет выполнять шлюз:
· трансляция запросов или передача данных сети ZigBee из GPRS канала,
· передача каналу данных, запросов в сеть ZigBee от внешних устройств.
Задачи управляющего МК (ATmega128RFA1):
· настройка GPRS модема:
· включение (выключение) модуля, инициализация настроек;
· контроль процесса регистрации модема в GSM-сети;
· активация PDP контекста (типа протокола, точки доступа в Интернет);
· передача данных о правах доступа к GPRS (имя, пароль);
· контроль за входом в GPRS;
· соединение с удалённым узлом в Интернет по заданному IP-адресу и номеру порта;
· обмен данными;
· прием/передача данных по UART (с помощью прерываний);
· расшифровка команд и запросов, трансляция их в сеть ZigBee;
· передача пакетов/запросов/данных из UART.
На рис.3.1 изображена функциональная схема шлюза.
Рис.3.1 Функциональная схема.
Общий алгоритм работы шлюза
1. Начало.
. Включение питания МК.
. Загрузка BitCloud.
. МК включает GSM/GPRS модем.
. Подключение по UART к нему (обработка прерывания).
. МК проводит инициализацию, вход в сеть, настройку и проверку качества связи.
. Подключение GPRS соединения.
. Завершение прерывания.
. МК присоединяется к сети.
. Оповестить все узлы сети о том, что появился шлюз/маршрутизатор.
. Ожидание шлюзом запросов. Если запрос из сети ZigBee то к п.12, если из GPRS канала то к п.18 , завершение работы - к п.24 .
. Обработка МК запроса.
. Формирование АТ - команд.
. Вызов прерывания по UART.
. Посылка АТ - команд по UART в GSM/GPRS модем.
. Выполнение модемом команд (установления соединения с сервером, обмен данными).
. Завершение прерывания, переход к п.10 .
. Прием модемом запроса.
. Обработка запроса, формирование команд.
. Вызов внешнего прерывания по UART к МК.
. Передача команд/запроса.
. Выполнение команд/запроса, обмен данными с узлами ZigBee сети.
. Завершение прерывания, переход к п.10 .
. Отсоединение от сети ZigBee.
. Прерывание по UART. Завершение GPRS соединения.
. Выключение GSM/GPRS модема.
. Выключение МК.
. Конец
Использование UART в стеке BitCloud
Для настройки USART порта нужно использовать глобальную переменную HAL_UsartDescriptor_t типа. Настройки применяются вызовом функции HAL_OpenUsart() с аргументом переменной типа HAL_UsartDescriptor_t [9] . Возвращаемое значение указывает, является ли порт успешно открыт и может быть использована для обмена данными. Когда нет больше необходимости держать USART порт активный, приложение должно закрыть его с помощью функции HAL_CloseUsart () на рис.3.2.
Для передачи данных вызывается функция HAL_WriteUsart (), с аргументами указателя на буфер данных и размера передаваемых данных. Если функция возвращает значение больше 0 ( txCallback() ), то передача данных завершена [1].
Анализ и синтез линейной системы автоматического управления
Анализ
системы автоматического управления
Исходные
данные:
Рассмотрим
структурную схему III
изображенную в табл. П-1.1.
Параметры
...
Анализ и синтез САУ методом корневого годографа
- Изучение системы автоматического регулирования (САР).
- Оценка качеств, характеристик САР
(устойчивости, ошибки, переходного процесса) по различн ...
Проектирование автомата подачи звонков
Разработанный автомат подачи звонков удовлетворяет всем
требованиям, предъявленным в задании. Настройка автомата производится с помощью
трех кнопок: «вверх» ...