Обзор функциональных возможностей
GSM/GpRS/EDGE модулей
нового поколения
Зимин А.Г., МТУСИ
В настоящее время область применения современных GSM-модулей в таких устройствах телеметрии, как различные виды счетчиков, торговые автоматы, банкоматы, охранные и пожарные сигнализации, системы навигации, управления технологическими процессами, контроля за удаленными и подвижными объектами, становится все более широкой. В абсолютном большинстве случаев требуется обеспечение передачи данных или сигналов управления к этим устройствам или получения информации от них. Промышленные GSM-модули обеспечивают эффективный, а зачастую и единственно возможный способ обмена данными через сеть GSM между этими объектами.
При традиционном подходе к созданию систем телеметрии, функции управления процессом приема/передачи данных через GSM-модуль возлагаются на внешний (по отношению к GSM-модулю) микропроцессор, основной задачей которого является сбор и обработка данных от периферийных устройств и датчиков. Дополнительно микропроцессор может обслуживать клавиатуру и ЖК-дисплей для ввода/вывода данных. Управление GSM-модулем осуществляется AT командами через последовательный порт микропроцессора. На рис. 1 приведена функциональная схема системы слежения за подвижными объектами [1]. В такой системе микропроцессор считывает данные с GPS приемника о местоположении объекта и передает их с помощью GSM-модуля через сеть GSM на диспетчерский пункт. Клавиатура и ЖК-дисплей используются для управления системой. Дополнительно микропроцессор анализирует сигнал
с датчика Д (например, датчика давления, температуры и т. д.) и, в случае необходимости, также передает информацию о состоянии датчика с помощью GSM-модуля на диспетчерский пункт.
В большинстве простых телеметрических систем для обработки данных не требуются значительные вычислительные ресурсы. При этом использование внешнего микропроцессора является избыточным. Многие современные встраиваемые GSM-модули позволяют избавиться от управляющего контроллера, взяв функции управления на себя. Встроенные программы превращают их в законченную систему сбора, обработки и передачи данных. При этом разные производители используют разные подходы. Например, особенностью модулей компании Wavecom является необходимость использования собственной программно-аппаратной платформы OpenAT. После написания и отладки готовое приложение компилируется и в виде исполняемого файла загружается в модуль. Разработчики компаний SonyEricsson и Telit использовали несколько иное техническое решение — встраиваемые приложения разрабатываются в собственной среде m2m-power и Telit Python Package соответственно, а в модулях находится интерпретатор скрипта, взаимодействующий с внутренним менеджером памяти и библиотекой функций, и в него загружается непосредственно скрипт, а не используемый командный файл. В свою очередь компании Motorola и Siemens выбрали в качестве платформы для своих программируемых GSM-модулей среду разработки Java.
Рассмотрим на примере трех ведущих производителей GSM-модулей, таких как Wavecom, Motorola и Telit, предлагаемые ими для своих модулей программно-аппаратные платформы, используемые для создания и реализации пользовательских приложений в GSM-модулях.
Пользовательское программное обеспечение для GSM-модулей Wavecom [3] создается с помощью набора библиотек OpenAT, являющихся неотъемлемой частью программной платформы MUSE и предоставляемых компанией Wavecom на коммерческой основе.
Создание пользовательского приложения включает следующие этапы:
• написание пользовательского программного обеспечения на языке С/ C++;
• компиляцию пользовательского программного кода;
• привязку к библиотекам OpenAT;
• загрузку полученного бинарного файла в GSM-модуль Wavecom через протокол Xmodem.
Структура программного обеспечения GSM-модулей Wavecom с использованием библиотек OpenAT представлена на рис. 2 [1]. Встроенное программное обеспечение, представляет собой бинарный файл, состоящий из:
Рис. 1. Функциональная схема традиционной системы слежения за подвижными объектами с использованием внешнего микропроцессора
• приложения пользователя, загруженного в GSM-модуль Wavecom (приложение пользователя должно быть "привязано" к библиотеке Wavecom);
• библиотек Wavecom;
• прикладного интерфейса программирования.
Прикладной интерфейс программирования включает [3]:
• обязательную библиотеку, используемую при создании встроенного программного обеспечения;
• библиотеку AT команд, обеспечивающую программный интерфейс для работы с AT командами;
• библиотеку операционной системы, обеспечивающую работу с таймерами и встроенной памятью;
• библиотеку управления потоками приема/передачи данных по интерфейсам V24, GSM и GPRS;
• библиотеку ввода/вывода для управления состояниями последовательного порта и порта ввода/вывода общего назначения;
• библиотеку шин SPI и I2C;
• библиотеку стандартных функций языка С/ C++;
• библиотеку GPRS для управления работой в режиме пакетной передачи данных.
Представителем программируемых GSM/GPRS/EDGE модулей в новом семействе компании Motorola является модуль g24-J [4]. Это, фактически, автономный беспроводной контроллер с полным набором функций GSM/ GPRS/EDGE модуля, работающий под управлением Java-приложения (MIDlet). Для работы этого приложения в модуле выделяются значительные ресурсы — 10Мбайт ПЗУ и 1,8 Мбайт ОЗУ [4].
После включения в зависимости от состояния GPIO, специально выделенного для выбора режима, GSM-модуль переходит под управление либо Диспетчера JTool, либо — Диспетчера MIDlet (рис. 3) [2]. Диспетчер JTool позволяет произвести обновление внутреннего программного обеспечения модуля (Firmware), запустить отладочный протокол, сконфигурировать модуль, произвести загрузку MIDlet. Запуск Java-приложения пользователя осуществляет Диспетчер MIDlet. Если MIDlet пользователя отсутствует или неработоспособен, запускается базовый (встроенный) MIDlet, который осуществляет основные функции управления модулем. Диспетчер MIDlet отвечает также за запуск Диспетчера удаленной загрузки приложения (Over The Air), осуществляющего загрузку приложения по радиоканалу.
Функционирование пользовательского приложения на GSM-модуле Motorola осуществляется в одном из трех режимов (выбор режима производится заранее с помощью JTool команд):
• работа под полным управлением MIDlet (контролируются все коммуникационные порты);
• работа под частичным управлением MIDlet (контролируется часть коммуникационных портов) ограниченным набором AT команд (управление через другую часть коммуникационных портов);
• работа полностью осуществляется с помощью AT команд под управлением внешнего контроллера.
Простейший цикл разработки Java-приложения можно разбить на следующие этапы:
• написание и редактирование исходного кода (это единственный этап, который должен осуществляться с помощью подходящего текстового редактора);
• проверка, компиляция и компоновка исходного кода в байт-код, упаковка, результатом
являются два упакованных файла, один из которых (с расширением *.jar) является собственно программой, а второй (с расширением *.jad) — его описанием с необходимыми атрибутами [4];
• загрузка и запуск разработанного и скомпилированного приложения на симуляторе.
Симулятор имеет графический интерфейс, отображающий состояние моделируемого устройства. Внешние события, такие, как изменение состояния входов GPIO и АЦП, а также статус виртуальной GSM-сети можно задать с помощью панели имитации внешних собьтий.
Компания Telit Communications S.pA. [5] имеет в своем модельном ряду GSM-модули, содержащие интерпретатор программ, написанных на языке Python (Питон). Питон — это язык программирования высокого уровня, простой и в тоже время очень мощный. В GSM-модулях Telit используется версия 1.5.2+ этого языка. Для программ доступно 2 Мбайт флэш-памяти и 1,2 Мбайт ОЗУ [5]. Пакет программ Telit Python Package со средой программирования и объектными библиотеками поставляется бесплатно при покупке GSM-модуля с интерпретатором Питона. Для облегчения отладки программ GSM-модули имеют дополнительный последовательный порт, в который выводится отладочная информация.
Написание, редактирование, отладка и компиляция исходного кода осуществляется с помощью Python Win программного пакета. Результатом компиляции исходного кода является файл с расширением *.pyo, загрузка которого в GSM-модуль осуществляется через основной последовательный порт с помощью PythonWin или с помощью программы Hyper Terminal (входит в стандартный набор программ операционной системы Windows XP). Загруженное пользовательское приложение сохраняется во флэш-памяти GSM-модуля. В памяти модуля может быть сохранено сразу несколько пользовательских приложений, выбор между которыми осуществляется с помощью AT команды. После перезагрузки GSM-модуля пользовательское приложение будет запущено и управление модуля перейдет под его контроль.
Использование встраиваемых приложений внутри GSM-модуля позволяет пользователю упростить и ускорить процесс разработки своего устройства, а также улучшить его характеристики, а именно:
• повысить безопасность (например, встроенное приложение автоматически вводит PIN код при старте, а при использовании внешнего микропроцессора PIN код может быть "подслушан" при его передаче по последовательному порту);
• оптимизировать энергопотребление (например, встроенное
Рис. 2. Структура программного обеспечения GSM-модулей Wavecom с использованием библиотек OpenAT
&
ч» Ч>
Управляет запуском MIDlet (MIDlet контролирует функционирование модуля g24-J)
Управляет процедурой загрузки : MIDlet по радиоканалу
Поддерживаемые возможности
Обновление внутреннего программного обеспечения •Отладочный протокол К Java (KDWP) -enable/disable ■ Конфигурация модуля (logs, baud rate, etc,) Загрузка MIDlet ’ Будущие возможности
Рис. 3. Архитектура программного обеспечения модуля g24-J
приложение, при необходимости, может отключать GSM-стек модуля);
• улучшить систему диагностики (например, встроенное приложение отслеживает работоспособность внешних периферийных устройств и, в случае сбоя, отправляет уведомление в сервисный центр);
• упростить сервисное обслуживание (при использовании функции удаленной загрузки встроенного приложения через сеть GSM);
• разработать полнофункциональное устройство с минимальными размерами.
В заключение хотелось бы еще раз отметить основные перспективные области применения GSM-модулей со встраиваемыми пользовательскими приложениями:
• сфера охраны подвижных объектов, таких, как машины, суда и т.д., а также охрана общественных помещений, квартир, частных домов (в случае взлома или грабежа скрытые мини-датчики передают сигнал тревоги по GSM/GPRS каналу);
• мониторинг транспортных средств (при условии наличия в системе GPS/GLONASS приемника): по GSM/GPRS каналу передается не только информация от всевозможных датчиков, но и информация о местоположении (координаты) транспортного средства в реальном времени;
• определение местонахождения людей или животных;
• системы "Умный Дом": удаленное (по GSM/ GPRS каналу) управление системами дома (например, управление системой отопления дома).
Литература
1. ВалентикА, Скиба Л. Программное обеспечение OpenAT для GSM-модемов компании Wavecom. — Киев: ЭКиС, 2004. — № 1.
2. Федоров В. Встраиваемые GSM/GPRS/EDGE-модули g24 компании Motorola// Электронные компоненты. — 2007. — № 8.
3. www.wavecom.com — интернет сайт компании Wavecom.
4. http://developer.motorola.com — интернет сайт компании Motorola.
5. www.telit.com — интернет сайт компании Telit.