Компоненты и технологии, № 2'2005 Компоненты
Приложения пользователя в модулях GSM/GPRS
ведущих мировых производителей
Программные приложения пользователей реализуются в изделиях ведущих производителей модулей GSM/GPRS двумя основными способами. В одном случае используется открытая перепрограммируемая платформа, позволяющая пользователям писать собственные приложения под конкретную задачу и загружать их в модуль. В другом случае применяются готовые стандартные прикладные программы, интегрированные в базовую прошивку и реализуемые с помощью АТ-команд.
Виктор Алексеев, к. ф-м. н.,
Олег Краснобаев, Виталий Горбатенко
Введениие
Если сравнить технические характеристики модулей GSM/GPRS ведущих мировых производителей Siemens, Sony Ericsson, Enfora, Wavecom, то можно обнаружить, что эти компании производят продукцию одного класса с практически одинаковыми базовыми техническими характеристиками [1].
Параметры модулей очень близки — как по стандартным характеристикам GSM/GPRS, так и по габаритным размерам и весу.
Все GSM-модули можно разбить на три основные группы:
• модули для различных дешевых бытовых устройств с передачей данных только по GSM-каналу;
• телеметрические модули GSM/GPRS, предназначенные для автоматизированного обмена информацией в режиме GPRS между различными машинами и оборудованием (M2M application);
• универсальные модули, предназначенные для использования в сотовых телефонах последнего поколения, PDA и сложных системах охранных сигнализаций с передачей видеоизображений. Внутри каждой группы модули различных производителей отличаются друг от друга, в основном, дополнительными сервисными функциями, которые определяют индивидуальные специфические особенности модулей GSM/GPRS и те специальные задачи, для решения которых эти изделия подходят наилучшим образом.
Эти специальные сервисные функции разрабатываются на базе дополнительных программных приложений пользователя, которые тем или иным способом интегрируются в фирменное программное обеспечение, жестко зашитое в память модуля.
Базовое программное обеспечение регламентируется стандартом EGSM 900/1800 МГц и одинаково у всех производителей.
Дополнительные сервисные функции у различных производителей реализуются, в основном, двумя способами.
В одном случае обеспечивается поддержка открытой перепрограммируемой платформы, позволяющей пользователям писать собственные приложения для конкретных специфических задач. Эта методика используется в продукции таких известных мировых производителей, как Siemens, Sony Ericsson, Wavecom.
В другом случае пользователям предлагается не тратить время на разработку собственных уникальных приложений, а воспользоваться готовыми стандартными программными блоками, включенными в базовую прошивку. Такая идеология, реализуется, например, фирмой Enfora. При этом подразумевается, что все опции, необходимые для сопряжения модулей GSM/GPRS с различными счетчиками и с другой телеметрической аппаратурой, уже есть в базовой прошивке Enabler-II Enfora.
Открытые перепрограммируемые платформы для создания приложений пользователя
Использование ресурсов встроенного микроконтроллера и Flash-памяти модуля GSM/GPRS позволяет добиться снижения общей стоимости проекта за счет отбрасывания внешнего микроконтроллера, памяти и других дополнительных внешних компонентов. Такой подход позволяет существенно уменьшить габаритные размеры и энергопотребление конечного изделия.
Прикладные программы пользователей широко используется в современных системах GSM-телеметрии. Например, в автомобильных навигационных системах при аварии система автоматически сообщает координаты автомобиля в диспетчерский центр. В стандартном варианте, показанном на рис. 1, когда не используется встроенное приложение, внешний микропроцессор считывает координаты автомобиля из GPS-модуля, а затем формирует и посылает аварийное сообщение SMS через модуль GSM/GPRS.
Компоненты и технологии, № 2'2005
Аварийный входы
датчик W пользо-
ЙІ Н вателя
Аварийнотехнический центр
-£Г\
Ко
коорд-ты GPS-
< модуль
► Wavecom
АТ+ GSM-модуль
Аварийный
ВЫЗОВ+
Координаты через SMS
Рис. 1. Стандартная структурная схема системы автомобильной навигации GSM/GPS
Wavecom
GSM-модуль
Аварийнотехнический центр
Аварийный вызов+ Координаты через SMSI
GPS-
модуль
Координаты (Сигнал GPS через RS232)
Рис. 2. Схема системы автомобильной навигации с использованием встроенного приложения
В схеме с использованием встроенного приложения (рис. 2) отпадает необходимость использования внешнего микроконтроллера. Специальная программа пользователя управляет процессом считывания координат и посылкой аварийного сообщения.
Проектирование и создание систем автомобильной навигации на базе программно-ориентированных методов позволяет в кратчайшие сроки создавать новые модели с использованием последних достижений в GSM/GPRS и GPS технике.
Большинство крупных мировых производителей электронного оборудования предпочитают использовать в своих изделиях стандартные телеметрические протоколы, пригодные для использования в различных изделиях.
В обычном случае, без использования встроенного приложения, вспомогательное электронное оборудование управляется внешним микропроцессором. При этом для интегрирования нового оборудования в серийное изделие необходимо проделать достаточно серьезную работу по стыковке микропроцессорного блока с дополнительными модулями.
При использовании программ пользователя, по желанию заказчика, в модуль могут быть загружены необходимые для конкретной модели специальные телеметрические протоколы. Современные методы создания управляющих программных приложений позволяют создавать надежные современные GSM/GPRS-изделия, пригодные для использования в продукции различных мировых производителей.
Программный комплекс OPEN AT, Wavecom
С помощью программно-отладочных средств OPEN AT производства фирмы Wavecom разработчики могут писать программное обеспечение под конкретную задачу на языке высокого уровня (C++) и затем загружать его непосредственно в Flash-память модуля WISMO. Это позволяет отказаться от внешнего микроконтроллера, управляющего периферийными устройствами (GPS-приемниками, датчиками, счетчиками, системами сигнализации и т. д.) [2-4].
Для работы с модулями на уровне OPEN AT нужен отладочный комплект (Starter KIT) и набор программно-отладочных средств.
Отладочный комплект предназначен для настройки GSM/GPRS-модемов фирмы Wavecom, отладки программного обеспечения, а также для разработки и проектирования различных устройств на основе GSM/GPRS-модемов. Имея этот отладочный комплект, можно сразу запустить бескорпусные модули в работу, контролировать сигналы на всех выводах модуля, а также загружать новое программное обеспечение.
В состав программно-отладочных средств OPEN AT входят:
• комплект технической документации;
• демонстрационная версия;
• отладочные средства (отладочная программа для конечного устройства, программа работы с последовательным портом, эмулятор терминала, программы поддержки задач пользователя);
• компилятор GCC (ARM по специальному заказу);
• примеры использования OPEN AT.
Новая версия Open AT 3.0 поддерживает следующие дополнительные функции:
• расширенные возможности хранения данных и прикладных программ;
• поддержка WAP (интерфейсы пользователя для запросов по HTTP);
• поддержка GPS (интерфейсы пользователя для обработки данных модуля GPS Q2501);
• управление дополнительными UART. Кроме того, существенно расширена библиотека специализированных программ пользователей, добавлен новый пакет отладочных средств. Из дополнительных функций следует отметить: пакет программ для GPRS, стек TCP/IP (IP, FTP, TCP/20/2123/110,Telnet, POP3, SMTP, DNS UDP/53), перезагрузку приложений пользователя по сети в режиме GPRS, новый способ разработки приложений с использованием Application Development Kit (ADK), увеличенные объемы памяти для приложений пользователя (512 кбайт Flash, 64 кбайт RAM, 128 кбайт E2P).
Демонстрационная версия OPEN AT позволяет на стандартных примерах проследить
пример разработки приложений и загрузить в модуль прилагаемые бинарные файлы простейших программ пользователя. Однако демонстрационный вариант OPEN AT может использоваться только в режиме так называемого «удаленного приложения» (Remote Application). Входящие в состав демонстрационной версии средства отладки (Remote Application Execution Tool) позволяют на прилагаемых примерах изучить схему отладки приложения внутри модема (Embedded Application). С помощью демонстрационной версии OPEN AT некоторые простейшие функции можно реализовать в виде Remote Application. Например, функционалы типа стандартных функций модема (голосовые звонки, SMS, обработка сигналов датчиков) могут работать в виде связки «Remote Application + модем». При этом Remote Application будет использоваться именно как имитатор работы Embedded program.
Более сложные задачи типа работы с записной книжкой в Remote Application реализовать невозможно, поскольку это не реальная записная книжка внутри модема, а имитация ее в файлах на диске компьютера.
Отладка приложения пользователя реализуется с помощью трассировщика на компьютере и компилируется для работающего внутри модуля приложения. Поэтому, для того чтобы написать и скомпилировать собственные специальные приложения, необходима полная коммерческая версия OPEN AT.
Схема разработки приложений пользователя с помощью OPEN AT приведена на рис. 3.
В ядро Wavecom включено программное обеспечение, ответственное за работу в стандартных режимах GSM/GPRS.
Программное обеспечение пользователей состоит из двух основных блоков: ядра пользователя и интерфейсов прикладных программ пользователя (Application Programming Interface — API).
Программа пользовательских приложений включает в себя обязательные функции, функции инициализации, функции грамматического разбора, библиотечные функции Wavecom.
Обязательный интерфейс прикладных программ пользователя (API) обеспечивается программами, поддерживаемыми встроенным приложением. Программный интерфейс для АТ-команд реализует работу с АТ-командами. Операционная среда для API содержит программы, предоставляющие доступ к операционной среде.
Стандартный API предназначен для работы со стандартными программами (стандартный вариант Си).
Для равномерного распределения нагрузки по всем сегментам используется API регулирования потока данных через маршрутизаторы.
Процесс создания приложений пользователя состоит из следующих основных этапов:
• компиляция Си-файлов приложения (C <имя приложения>, C утилиты);
• привязка к библиотеке Wavecom (LINKLIB <имя файла дескриптора>, LINKBIN <имя файла дескриптора>);
• загрузка полученного бинарного файла в модуль через Xmodem (специальная AT-команда);
Компоненты и технологии, № 2'2005
Модуль Wavecom
Встроенное
приложение Основное
пользователя ПО Wavecom
Библиотека Open АТ
API пользователей
Обяза- тельный API (АТ-команды) API опера- ционной среды API стандарт (библиотеки и т. д.) API регулирования потока данных API контроля вводов/ выводов API управ- ляю- щих шин Возмож- ность ввода/ вывода
Библиотека Open АТ
Рис. 3. Структурная схема разработки прикладных программ с помощью OPEN AT
-Є
Внешние устройства (связь в
стандарте V24)
V24
COM2
Рис. 4. Структурная схема средств разработки приложений пользователя
Встроенное приложение Функции внешних устройств
пользователя пользователя
1 ▲
Функции
модуля Wavecom
♦
Ядро работы ОС Межуровневые сообщения Ядро работы ОС
в реальном времени Последовательный в реальном времени
Конечное устройство порт
Рис. 5. Структурная схема отладки приложений пользователя
PC
Разработка приложений может проводиться в целевом и удаленном режимах. В целевом режиме используются средства мониторинга конечного устройства, эмулятор терминала, компилятор.
В удаленном режиме разработка проводится с отмеченными выше ограничениями. В этом случае возможна реализация стадий работы с Visual СИ++, создание проекта и просмотр выполнения приложения.
Структурная схема средств разработки приведена на рис. 4.
В комплект средств разработки входят четыре основных программных продукта, которые запускаются на ПК и работают под Windows. Целевое устройство соединяется с ПК через последовательный порт.
Входящая в комплект программа Serial Link Manager предназначена для переключения последовательного порта ПК (COM1) на различные устройства Wavecom. Второй последовательный порт (COM2) может быть использован для соединения с другим ПК.
Программа Target Monitoring Tool представляет собой набор утилит для контроля работы и диагностики режимов модулей Wavecom. Использование этих утилит позволяет просматривать сообщения трассировщика при отладке приложений пользователя в целевом и в удаленном режимах. Программы Target Monitoring Tool и Serial Link Manager используются совместно и конфигурируются на работу с тем портом, к которому физически подсоединен модем.
Программа Terminal Emulator — это отладочное средство для работы с АТ-командами. Данная программа, преобразующая стандартный поток данных в отладочные коды, используется для приема и передачи командных строк в целевом или в удаленном режимах. Программа может работать как в нормальном режиме, при открытом окне АТ-команд, так и в отладочном режиме. При подключении целевого устройства через последовательный порт разрабатываемое приложение может быть просмотрено на ПК с помощью средств Visual C++.
Схема отладки приложений пользователя приведена на рис. 5.
Удаленный режим (Remote process), включающий разработку, компиляцию, линковку с библиотекой и отработку, выполняется в среде Visual C++. Приложение пользователя, разрабатываемое для конкретной задачи, может быть запущено на ПК с использованием «Ядра работы ОС в реальном времени» (RTK — Windows). В этом случае задача пользователя дезактивируется в целевом устройстве. Таким образом, без изменения кодов можно из режима отладки разрабатываемого встроенного приложения перейти в удаленный режим.
Программно-аппаратный комплекс M2mPower Sony Ericsson
Для написания и отладки встроенного приложения в модулях Sony Ericsson служит специальная среда разработки M2mpower IDE [5-7].
В качестве отладочного комплекта могут быть использованы либо «Универсальный набор разработчика», либо «Отладочный комплект на базе GT47».
Набор программного обеспечения «M2mpower package CD» включает в себя интегрированную среду разработки «M2mpower IDE». редактор, интерпретатор, примеры скриптов, техническую документацию.
Алгоритм работы встраиваемого приложения описывается на «Си-образном» языке с помощью специального редактора. При этом для приложения недоступны прерывания, и маши- www.finestreet.ru-----------------------
Компоненты и технологии, № 2'2005
на состояний строится на основе анализа флагов, чтения данных с портов и т. д. В модуль загружается именно скрипт, а не выполняемый командный файл. В модуле находится интерпретатор скрипта, взаимодействующий с внутренним менеджером памяти и библиотекой функций, работающей непосредственно с базовым ПО. В результате конечное приложение пользователя выглядит в виде Си-подобного скрипта интерпретируемого МК модуля.
Язык программирования построен на фундаменте ANSI C. Необходимо отметить ряд ограничений синтаксиса скрипта. Во-первых, поддерживается только два целочисленных типа данных: char (8 bit) и int (32 bit). Во-вторых, нет оператора выбора switch. В-третьих, функция может возвращать только переменную типа int. Во всем остальном это хорошо известный в среде разработчиков язык Си.
Максимальная длина скрипта определяется условием 350 блоков х 128 байт = 44800 байт. Этот объем памяти распределяется между двумя приложениями пользователя. Таким образом, одновременно можно хранить в модуле два приложения. Однако активным может быть только одно из них. Это позволяет удаленно произвести обновление или замену приложения пользователя, сохранив работоспособность устройства. Помимо памяти для хранения программ модуль имеет также память для временных или глобальных данных объемом 50000 байт. Из них 20400 байт отводится под динамический стек.
Загрузка скрипта в модуль осуществляется с помощью IDE M2mpower двумя АТ-коман-дами (AT*E2APC и AT*E2APD) по протоколу обмена XModem.
Приложение пользователя имеет самый низкий приоритет по отношению к основному GSM-приложению и обрабатывается только в то время, когда основное GSM-приложение неактивно. Язык не поддерживает прерывания, поэтому триггеры состояний должны опрашиваться по требованию.
На рис. 6 представлена структурная схема работы программного обеспечения модуля GR47 Sony Ericsson.
Доступ к каналам связи и внутренним драйверам осуществляется с помощью встроенной библиотеки функций IFL (Intrinsic Function Library), которая имеет 3 уровня.
Нижний уровень Level 1 содержит следующие библиотеки:
• отладка;
• преобразование данных;
• работа со строками и памятью;
• управление встроенными драйверами;
• управление базами данных;
• работа с TCP/UDP/IP;
• клиент XML иMQTT;
• управление модулем.
Второй уровень Level 2 содержит только библиотеку для работы с AT-командами. Третий уровень Level 3 содержит библиотеки для работы с SMS, телефонной книгой и библиотеку управления GPS-приемником. Низкоуровневые функции напрямую используют аппаратные и программные возможности модуля, позволяя эффективно и быстро отрабатывать команды.
RTOS
Network
ч/
( Embedded Apps Environment ) AT/Data ґ
UART1 (AT commands)
UART2
(Logging/Debug]
UART3 (Application Use)
Рис. 6. Структурная схема ПО модуля GR47 Sony Ericsson
Такой подход дает возможность легко, быстро и без больших затрат внедрять модуль в различные стандартные блоки промышленной и бытовой электроники, предназначенной для беспроводной передачи данных, охранных, торговых систем и т. д.
Библиотеки регулярно пополняются, расширяя возможности модуля. Целесообразно отметить некоторые особенности библиотеки TCP/UDP/IP-стека модулей GR47 Sony Ericsson.
В модулях Sony Ericsson могут быть реализованы следующие функции:
• открытие-закрытие IP-соединения, при этом
модулю выделяется динамический IP-адрес;
• отправка-прием TCP-пакета;
• отправка-прием UDP-пакета;
• преобразование URL в IP-адрес;
• получение текущей IP-информации.
Это позволяет реализовать такие приложения, как клиенты FTP и E-Mail. При подключении к модулю клавиатуры и ЖКИ можно также реализовывать веб-браузер.
Открытая перепрограммируемая платформа M2mpower Sony Ericsson менее мощная и более простая, чем OPEN AT Wavecom. Она предназначена для написания более простых коротких прикладных программ пользователя, не требующих решения сложных, ресурсоемких задач. Модуль в первую очередь обеспечивает работу GSM/GPRS-ядра. При этом программа пользователя выполняется с минимальным приоритетом, поэтому потери производительности при работе интерпретатора не должны быть критичными для данного класса задач.
Можно также отметить, что необходимость использования отладочного комплекта для написания и загрузки программ пользователя в модули Sony Ericsson повышает надежность и конфиденциальность доступа к ПО.
Открытая перепрограммируемая платформа JAVA в модулях TC-45 производства Siemens
Модуль TC45 Siemens программируется на языке Java с использованием платформы Java-TM — J2ME (Java 2 Micro Edition).
Благодаря широкому распространению Java-TM теперь появилась возможность использовать существующие и создавать новые приложения в сегменте устройств, предназначенных для передачи видеоизображений, и системах с поддержкой WAP и MMS [8, 9].
Java — это непосредственно язык программирования и операционная среда (так называемая виртуальная Java-машина), в которой работают программы, написанные на Java. Синтаксис Java напоминает синтаксис C++.
Основное отличие состоит в том, что при написании приложений пользователя с использованием C++ необходимо компилировать исходный код специально для каждого конкретного устройства. Такой подход реализован в рассмотренной выше продукции Wavecom и Sony Ericsson.
В случае использования Java код интерпретируется непосредственно самим устройством при помощи виртуальной Java-машины (Java Virtual Machine). Это позволяет использовать Java-приложение на любых устройствах с аналогичной Java-платформой. Именно поэтому одно и то же приложение пользователя, написанное на Java, можно использовать и в охранных устройствах, и в телефонах, и в телеметрических системах, если они снабжены поддержкой Java Virtual Machine.
Особенностями Java являются: объектная ориентированность, многопоточность, плат-формонезависимость, богатые возможности для написания приложений, ориентированных на технологии «клиент-сервер». Эти особенности обусловлены тем, что в Java поддерживаются механизмы создания и одновременного выполнения веток кода внутри одного процесса. Скомпилированное» приложение на Java представляет собой так называемый байт-код, готовый к выполнению внутри виртуальной Java-машины на конкретной аппаратно-программной платформе.
К достоинствам языка Java, безусловно, можно отнести объемную библиотеку классов, не в последнюю очередь ориентированную на сокращение времени разработки сетевых приложений (например, построенной по технологии «клиент-сервер»). Как прави-
Компоненты и технологии, № 2'2005
ло, это приложения рассчитаны на использование в сети Интернет. На Java, например, достаточно просто написать небольшой сервер, ожидающий соединение на определенном порту TCP/IP и обрабатывающий поток данных от клиентов. Именно так и реализуется работа с Интернет через TCP/IP на удаленных терминалах, построенных на базе модулей TC-45 Siemens. Такой подход является альтернативным идеологии, используемой фирмами Wavecom и Sony Ericsson для модулей со встроенным TCP/IP-стеком. Поддержка GPRS в ТС-45 также выполнена на базе Java.
Существует довольно много возможностей оптимизации выполнения Java-приложения, таких, например, как технология JIT (Just In Time compilation — компиляция байт-кода «на лету») или HotSpot (компиляция «на лету» критических участков байт-кода).
В России, как и во всем мире, Java-приложения пользуются большой популярностью. При этом платформа Java может быть использована также и для специальных технических приложений мобильной связи. Так, например, МТС в Новосибирске еще в 2001 году внедрила популярный сервис ICQ, реализованный на базе Java-программы.
В комплект поставки ТС-45 входит компакт-диск со средствами разработки.
Программное обеспечение включает библиотеку Java-классов с примерами функций для работы с GSM/GPRS-соединениями, эмулятор рабочей программной среды модуля для ПК и отладчик программ.
Диск с ПО содержит также описание классов, предназначенных специально для сотовых терминалов.
Порядок установки и работы с ПО отличается чрезвычайной простотой.
Для начала работы выполняются следующие действия. Устанавливаются средства разработки Java, а именно компилятор, отладчик, виртуальная Java-машина, классы и их исходные тексты. Как правило, имя файла для установки: j2sdk-1_4_2_**-windows-i586-p.exe. Это оригинальный дистрибутив от Sun. Затем устанавливается мобильная версия Java, которая является добавлением к основной, содержащей классы и примеры для работы с сотовыми терминалами.
Для загрузки приложений в модуль необходимо установить драйвер, для чего достаточно кликнуть на файле Winmux2k.inf правой кнопкой мыши и выбрать «Установить». После установки этого драйвера модуль будет виден в системе как Flash-Drive. Копировать файлы на него можно перетаскиванием мышкой файлов из рабочей папки в папку под названием «Module», что находится в корне «Мой компьютер» (рис. 7).
Модуль TC45-Java имеет два последовательных порта для загрузки приложений и подачи AT-команд. При этом при загрузке приложений они оба должны быть свободны. В TC45 имеется 300 Кбайт памяти под приложения и данные пользователя.
В состав пакета входят примеры на Java. Небольшое приложение, которое решает примитивную задачу — отправку навигационных сообщений SMS через заданные промежутки
ЕЕ®
Fie Eât View Fevorte* Took Help
Qa«* • Q > X
Address -^C:\ v ¿3 і
Desfeop - 'J My Computer
* 3.5 Hoppy (A:)
b StOre (D:)
» DVD Drive (E:)
£> NFS2HP (F:)
* .CD-RW Ortve (G:) t £JPomo*a(J:)
* О Control Pane*
СЗ"<Я Module
* Shared Document*
* i_J V*a*y's Documents
* My Document*
ID My Network Pieces
_______ Rttvace«________________
о Document* end Settngs
О Program Fies
Р WINDOWS
О Aston
п Programs
_J
Рис. 7. Рабочее окно средства разработки Java для TC45
времени, — можно собрать как из конструктора, используя примеры smsclipinfo, alarm, rs232demo. Все примеры можно найти в комплекте поставляемого ПО.
Для того чтобы собрать приложение, достаточно лишь запустить .bat файл, находящийся в корне каждой папки с примером.
В качестве иллюстрации можно загрузить приложение, собранное из приведенных примеров, которое осуществляет отправку навигационной информации через заданные промежутки времени на диспетчерский пункт. Взять его можно на сайте по ссылке http:// www.viterra.narod.ru/files/smssender.rar.
После запуска файла build.bat получается упакованный файл с классами smssender.jar, собранный специально для загрузки в терминал TC-45. Этот файл smssender.jar просто перетаскивается мышкой в папку Module (рис. 7) и запускается командой «atAsjra=a:/smssender.jar» через подключенную на первый порт терминала программу HyperTerminal (a: — внутренний логический диск модуля TC-45).
Этого достаточно для создания реальной рабочей прикладной программы. Приложение сразу становится активным и начинает отсылать навигационную информацию раз в 5 минут на выбранный адрес.
Стандартные прикладные программы, интегрированные в базовую прошивку модулей GSM/GPRS компании Enfora
В отличие от Wavecom, Sony Ericsson и Siemens, в модулях Enfora Enabler не предусмотрено создание собственного ПО для приложений пользователей.
Идеология модулей Enabler построена на том, что основные случаи пользовательских приложений уже зашиты в базовое программное обеспечение и реализуются с помощью АТ-команд. Таким образом, в модулях Enabler пользователю предоставляется возможность сопряжения с традиционными схемами счетчиков, охранных систем и тому подобной аппаратуры. Фирма Enfora предлагает разработчикам не тратить время на написание собственных уникальных приложений, а вместо этого воспользоваться готовыми стандартными программными блоками, включенными в базовую прошивку [10, 11].
Семейство продуктов Enabler представляет собой целостную платформу с большим набором разнообразных функций, упрощающих разработку и интеграцию сложных встраиваемых приложений M2M.
Модули Enfora Enabler позволяют обойтись базовыми настройками для реализации многих стандартных задач, которые при использовании продукции других фирм требуют разработки сложного ПО и аппаратного обеспечения. Кроме того, модули Enabler имеют мощный IP-ориентированный программный блок, интегрированный в базовое программное обеспечение. Многие разработчики знакомы с протоколами IP в силу популярности сети Интернет и соответствующих приложений. Нужно отметить, что с IP-протоколами в GPRS-модулях связан ряд архитектурных нюансов.
Известно, что одна из серьезных проблем возникает при эксплуатации беспроводных телеметрических систем в сети GPRS (рис. 8).
Подсистема GPRS представляет собой структуру, «параллельную» классической GSM. При работе в режиме GPRS абонент выступает как внешний (по отношению к GSM) пользователь сети передачи данных.
IP (Internet Protocol) — это стандартный Интернет-протокол сетевого уровня, предназначенный для пересылки пакетов данных по сетям связи без установления логического соединения. При этом каждый пакет маршрутизируется индивидуально с помощью IP-адресов получателя.
В этой сети абоненту присваивается статический или динамический адрес, по которому идет обмен внешними информационными пакетами.
Для автоматической работы в режиме GPRS мобильные устройства должны иметь встроенный IP-стек. В настоящее время не существует готового надежного метода удаленного управления GPRS-устройствами. Для большинства из таких устройств требуются дополнительные операции по установлению соединения и дальнейшему управлению их работой.
В стандартном варианте оператор сотовой связи предоставляет пользователю динамический адрес для передачи данных в режиме GPRS.
Сейчас некоторые операторы начали выделять статические IP-адреса для GPRS-устройств. Однако такие статические IP-адреса являются дополнительной и достаточно дорогой платной услугой.
При работе с динамическим адресом возникает ряд сложностей, когда требуется передать информацию по IP-сети GPRS-устройству, адрес которого заранее неизвестен. Более того, адрес устройства, видимый во внешней IP-сети, может меняться уже после подключения к сети GPRS.
Модули Enfora Enabler могут быть настроены таким образом, чтобы автоматически осуществлялась посылка сообщения на один или несколько серверов. Это позволяет своевременно оповещать наружные серверы управления. При этом принятое сервером сообщение очевидным образом содержит актуальный IP-адрес устройства, а внутри сообщения содержится определенная информация, позво-
Компоненты и технологии, № 2'2005
Для работы с удаленными ООД серверу нужна информация об ІР-адресах
л ^ і 5SM/GPRS
Щ
â ’ і Internet
©
Центральный сервер 1Р= 168.121.100.1 Port = 6501
Как правило, у сервера нет стандартного механизма получения информации об 1Р-адресах устройств
ip=? Port = 6502
Рис. 8. Схема IP-адресации при работе в режиме GPRS
ляющая идентифицировать конкретного отправителя. Еще одной полезной особенностью Enabler является возможность работы с устройством через последовательный порт по IP-протоколу с использованием отдельного статического IP-адреса. Большинство продуктов других производителей позволяют работать с устройством по IP-протоколу через «внутренний» последовательный интерфейс при использовании «внешнего» IP-адреса, и только после того, как установлено внешнее GPRS-соединение с оператором. Таким образом, при потере соединения с GPRS-сетью или при изменении внешнего IP-адреса теряется связь с беспроводным устройством по IP-протоколу через «внутренний» последовательный интерфейс. Этого можно избежать благодаря упомянутой особенности продуктов Enfora Enabler. Подобный функционал в сочетании с доступной в Enfora Enabler возможностью трансляции IP-адресов позволяет реализовать более гибкие схемы использования модулей Enabler.
Из отличительных черт платформы Enabler необходимо отметить расширенный набор специфических АТ-команд, предназначенных для разработки сложных телеметрических GSM/GPRS-систем.
Интегрированные в базовый модуль Enabler стандартные функции помогают разработчику ускорить процесс разработки за счет экономии времени, необходимого на конфигурирование вспомогательных устройств.
В качестве примера можно привести схему реализации с помощью АТ команд уведомления серверов о получении модемом нового IP-адреса.
Команда «AT$FRIEND=<friend #>,<server indication>,<IP>» позволяет задать список серверов, которым нужно присылать уведомления. При этом одновременно определяется список IP-адресов, с которых можно осуществлять удаленное управление модулем.
В команде AT$FRIEND задаются значения:
• friend # — номер изменяемого ip-адреса сервера в списке (от 1 до 10);
• server indication: 1 — IP адрес принадлежит серверу, 0 — IP-адрес используется для управления;
• IP — это IP-адрес в формате 0-255.0-255.0255.0-255.
Команда «AT$MDMID=<modem identifier» определяет уникальный идентификатор модема. Здесь «modem identifier» это 20-символьная строка идентификатора.
Проблема трансляции адресов в сети оператора в модулях Enfora Enabler решается с помощью так называемого механизма «wakeup/keep alive», который позволяет модулю автоматически посылать серверу IP-пакет, содержащий сообщение — уведомление в специальном формате.
Такое сообщение содержит уникальный идентификатор модема (at$mdmid), а заголовок IP-пакета несет информацию о новом IP-адресе модема. В случае, если оператор использует трансляцию IP-адресов, полученное сервером сообщение также несет информацию об активном, видимом «снаружи», IP-адресе модема. Механизм автоматических уведомлений гарантирует серверу наличие актуальной информации об устройстве (уникальный идентификатор + IP-адрес в заголовке пакета).
Команда «AT$WAKEUP = <wakeup mode>, <re-try period>» позволяет задать параметры «wakeup/keep alive» сообщений.
Для «wakeup mode» возможны следующие значения:
• 0 — wakeup-сообщения не отсылаются;
• 1 — посылать wakeup-сообщения при получении нового IP-адреса и через каждые <retry period> минут;
• 2 — посылать сообщение при получении нового IP-адреса, используя параметры at$ack-tm, и через каждые <retry period> минут. Интервал времени для «keep alive retry period» может принимать значения от 0 до 3600.
Команда «AT$ACKTM=<max retry>, <retry period>» определяет временные параметры посылки сообщений. Максимальное количество wakeup-сообщений, которое модем посылает каждому из серверов (см. at$friend) при получе-
нии нового IP-адреса или по истечении интервала «keep alive», задается с помощью «max retry».
Еще одна значительная проблема, которая хорошо знакома разработчикам, связана с управлением модемом по PPP-соединению.
Программное обеспечение Enabler позволяет осуществлять управление модулем посредством UDP API даже в том случае, если модем не зарегистрирован в GPRS-сети (не назначен внешний динамический IP-адрес).
Сопряжение с устройствами, не поддерживающими IP-протокол, реализуется с помощью команды «AT$HOSTIF=<type>».
Для типа сопряжения <type> возможны следующие значения;
• 0 — подключенное устройство использует PPP;
• 1 — включить UDP PAD (сборка-разборка пакетов);
• 2 — включить TCP PAD;
• 3 — локальное PPP-соединение без подключения к GRPS-сети;
• 4 — используется для автоматического включения функции сборки-разборки пакетов.
В число наиболее значимых функций Enabler входит возможность прозрачного подключения традиционных устройств типа счетчиков, сенсоров охранных систем и разного рода измерительных модулей к GPRS (и далее, к IP) сети. Как правило, подобные устройства подключаются к компьютеру через последовательный интерфейс, а функции управления (считывание-запись информации, передача в эфир) возложены на ПО компьютера или внешнего МК. Наличие в Enabler функции сборки-разборки пакетов (Packet Assembler/Disassembler — PAD) позволяет подключить модули Enfora напрямую к счетчику (сенсору и т. п.) и осуществлять сбор информации со счетчика и передачу по GRPS-сети без какой-либо дополнительной доработки измерительной схемы или написания дополнительного внешнего ПО. При этом модуль может быть сконфигурирован таким образом, чтобы при включении питания автоматически активировалась функция
Компоненты и технологии, № 2'2005
PAD, устройство регистрировалось в сети и начинался сбор и передача информации с подключенного к модулю внешнего устройства.
Модуль Enabler позволяет отслеживать внешние события, такие, как, например, регистрация в сети, и вызывать определенного рода стандартные отклики, такие, как, например, изменение состояния выходного интерфейса, посылка SMS-сообщения и др. Подобные функции обработки событий не требуют внешнего контроллера и доступны через AT-команды. Примером прикладного использования функционала обработки событий может быть часть решения по контролю доступа в помещение, когда сигнал, поступающий на I/O-интерфейс модуля, вызывает автоматическую посылку SMS-сообщения (или UDP-пакета по IP-сети). В качестве другого примера можно привести процедуру установления телефонного соединения на заданный номер и включение камеры слежения. Подобного рода действия могут быть запрограммированы посредством использования AT-команд, а в дальнейшем при необходимости перепрограммированы, как на месте, так и удаленно, с доступом к модему по GSM/GRPS-сети. Для конфигурирования пользовательских I/O используется программный отладочный комплект Enfora Event Tools. Никакого дополнительного оборудования для этого не требуется. Перепрограммирование может быть выполнено на любом ПК с использованием стандартных программ ProCom Hyper Terminal.
Заключение
Одним из наиболее весомых аргументов в маркетинговом споре ведущих мировых производителей модулей GSM/GPRS является тезис о прикладном программном обеспечении. Приведенный в данной статье обзор показывает, что предлагаемые сегодня на мировом рынке модули с приложениями пользователя отличаются друг от друга в первую очередь сложностью и детализацией.
Наиболее сложную оболочку для разработки приложений пользователя Open AT предлагает фирма Wavecom. Этот продукт предоставляет пользователям действительно неограниченные возможности для творчества.
Известно, что сложность и надежность любой системы находятся в обратной зависимости. Учитывая это, другие фирмы предлагают более простые способы разработок программ пользователей.
Понятно, что средства для разработки приложений пользователя — это не более чем инструмент в руках разработчика. Поэтому конечный продукт зависит как от инструмента, так и от «мастера».
Следует особо подчеркнуть, что в рекламных компаниях фирм, предлагающих открытые платформы для создания собственных управляющих программ, ни слова не говорится о надежности работы модулей с различными видами приложений. Конечно, ни одна из рассмотренных выше фирм не несет никакой ответственности за работу модулей с программным обеспечением, разработанным самим пользователем. Про какую-либо ответственность дистрибьюторов говорить вообще не приходится. Поэтому вся ответственность за надежность работы модулей с прикладным ПО перекладывается на плечи самого разработчика конечного продукта.
Практика показывает, что разговоры с производителями модулей GSM/GPRS о гарантиях и надежности сводятся к требованиям заплатить дополнительные суммы за тестирование и поддержку подобного «самодельного» программного обеспечения. Размеры таких платежей определяются десятками тысяч долларов. Естественно, что такие расходы под силу только очень крупным производителям конечных изделий. Соответственно, чем сложнее «самодельная» программа, тем дороже тестовые испытания, и наоборот.
Таким образом, открытые перепрограммируемые платформы являются своего рода фильтром, позволяющим производителям
и дистрибьюторам модулей GSM/GPRS выделить из числа своих клиентов наиболее крупных заказчиков и продолжать адресную дополнительную работу по отладке и обкатке оборудования за дополнительные деньги.
Вывод отсюда напрашивается очень простой — объемы выпуска конечного продукта будут определять выбор приложений пользователя. Если объемы производства оцениваются десятками тысяч, то окупится самая дорогая и сложная среда разработки прикладного программного обеспечения. Если объемы производства небольшие, то и средства разработки рекомендуется выбирать соответствующие. ИМ
Литература
1. В. Алексеев. GSM/GPRS-терминалы ведущих мировых производителей // Компоненты и Технологии. 2005. № 1.
2. MUSE Platform, Getting Started with Open AT, Rev.003, WM_CUS_OAT_CI_001, 2003
3. MUSE Platform, Tools Manual, Rev. 002. WM_TOO_OUT_UGD_001, 2003
4. MUSE Platform, Tutorial, Rev.002. WM_sW_OAT_UGO_001, 2003
5. M2mpower Application Guide, LZT 123 7588 R2C,
6. Sony Ericsson M2M POWER, M2M) Communications Simple Language Parser (SLP) Editor.
7. GT47/GT48, Technical Description, Sony Ericsson Mobile Communications International, 2003, Publication number: LZT 123 7607 R1A.
8. TC45 JAVA User's Guide, Siemens Cellular Engine, Version: 03, DocID
9. В. Алексеев. Новый модуль TC-45 производства Siemens с открытой перепрограммируемой платформой на базе JAVA // Компоненты и технологии. 2004. № 7.
10. GSM0000AN11, PAD Configuration and use, Rev. 1.04.
11. GSM0000PB003MAN, Enfora Event Tools, Rev.1.00,User Manual.