Передача данных с помощью GSM / GPRS терминалов и беспроводных модулей производства фирмы Enfora
Введение
Американская фирма Enfora специализируется на разработке и изготовлении модулей, модемов и готовых изделий для систем беспроводной связи. Фирма Enfora известна российским разработчикам по ряду публикаций [1—4].
Продукты Enfora выпускаются как в виде модулей GSM0107/0108, так и в виде терминалов GSM1209/ 1218. Подробные технические сведения о GSM/GPRS-продукции Enfora представлены в документах [5—7], которые свободно доступны на сайте [8]. Дополнительную информацию на русском языке можно найти на сайте [9].
Идеология модулей Enabler построена на том, что основные случаи пользовательских приложений уже зашиты в базовое программное обеспечение и реализуются с помощью АТ-команд. Таким образом, в модулях Enabler пользователю предоставляется возможность сопряжения с традиционными схемами счетчиков, охранных систем и тому подобной аппаратуры. Фирма Enfora предлагает разработчикам не тратить время на написание собственных уникальных приложений, а вместо этого воспользоваться готовыми стандартными программными блоками, включенными в базовую прошивку.
Семейство продуктов Enabler представляет собой целостную платформу с большим набором разнообразных функций, упрощающих разработку и интеграцию сложных встраиваемых M2M-приложений.
Модули Enfora Enabler позволяют обойтись базовыми настройками для реализации многих стандартных задач, которые при использовании продукции других фирм требуют разработки сложного ПО и аппа ратного обеспечения. Кроме того, модули Enabler имеют мощный IP-ориентированный программный блок, интегрированный в базовое программное обес печение.
Передача данных в режиме GSM
При передаче данных в режиме GSM наименьшее время соединения достигается при использовании обоими GSM-терминалами протокола V. 110 и прозрачного асинхронного режима передачи. В этом случае время, необходимое для установления соединения, может быть уменьшено до 2 секунд [10].
Актуальной для новых пользователей является задача замены проводных телефонных модемов, например Acorp-EMSF, на современные GSM/GPRS-модемы.
В стандартных телеметрических задачах устройства, доступ к которым необходимо получить, имею т интерфейс RS-232. При этом часто для работы используются только линии данных RXD и TXD, а также протоколы обмена Modbus, Bitbus и им подобные. В простейшем случае используется режим асинхронной передачи, 8 бит, без четности, на скорости 9600 бит/с.
Как правило, само опрашиваемое оборудование не умеет управлять модемами. Поэтому в настройках модема в режиме автоматического ответа должны быть отключены реакции на DTR, RTS, сжатие данных, информационные сообщения, контроль передачи, коррекцию ошибок и включен режим «прозрачного соединения». В таком режиме модем передает данные из порта RS-232 без какой-либо коррекции, не меняя размеры блоков и не добавляя специальной информации. Этот момент является ключевым для обеспечения бесперебойной работы протоколов типа Modbus.
В модулях ENFORA поддерживается прозрачный режим. Для этих целей используется команда [11]:
AT+CBST = A, B, C,
где A, B, C — параметры, задаваемые пользователем и определяющие: A — скорость передачи, B — имя, C — выбор режима (прозрачный, непрозрачный или оба режима с предпочтением одному из двух).
Например, команда
AT+CBST=71,0,0
означает прозрачный режим передачи данных на скорости 9600 бит/с (V110), без определения имени.
Подробно данная команда рассмотрена в [11]. (Все документы, без ограничений, доступны на сайте [8].)
Наименьшее время инициализации достигается при использовании на обоих GSM-терминалах протокола V110 в прозрачном режиме.
Следует учитывать, что при работе в прозрачном режиме снижается помехозащищенность передачи данных. Кроме того, ужесточаются требования по минимально допустимому уровню сигнала (около –60 дБм) [10].
Для передачи данных между двумя терминалами «точка-точка» в режиме GSM необходимо получить у оператора сотовой связи дополнительный номер для приема/передачи данных MSISDN.
При передаче данных одна из сторон выступает инициализатором установки соединения. При этом командой ATD-+7(812) 1111111 производится вызов второго модема (1111111 — условный номер MSISDN вызываемого абонента). Вызываемый абонент отвечает командой ATA, после чего появляется информационное сообщение «CONNECT 9600». Это означает, что модемы готовы к работе и можно передавать информацию в порт, например с помощью х-модем в программе HyperTerminal.
Для того чтобы перевести модем в командный режим и работать с АТ-командами, необходимо выполнить команду +++.
После отработки этой команды модем переходит в режим offline, в котором становится доступным АТ-интерфейс.
На другой стороне модем воспринимает +++ как информационные сообщения и не переходит в командный режим. Для перевода второго модема в командный режим ему тоже нужно послать +++. Выход из командного режима осуществляется командой ATO.
Для передачи SMS-сообщений на номе р центра SMS-оператора сотовой связи используются стандартные команды: CSMP, CSCA, CMCF, CNMI, CSAS, CSCS, CSMS, CPMS, CSDH, CMGS, CMGR. Подробно процедура работы с SMS описана в [12]. Сообщения SMS можно также посылать и на e-mail. Для этого при выполнении команды +CMGS нужно указать код SMS/mail gateway, предоставляемый оператором сотовой связи [13].
В модулях Enfora предусмотрены широкие возможности по обработке событий. Модуль может быть запрограммирован таким образом, чтобы внешние события, например регистрация в сети или же ввод/вывод общего назначения, отслеживались и вызывали бы определенного рода действия (изменение состояния выходного интерфейса, посылка SMS-сообщения и др.). Подобные функции обработки событий не требуют внешнего контроллера и доступны через интерфейс управления (AT-команды).
Для конфигурирования пользовательских I/O применяется прикладная программа Enfora Event Tools. Никакого дополнительного оборудования для этого не требуется.
Работа с программой осуществляется в диалоговом режиме.
Под термином «события» понимаются состояния вводов/выводов, режим питания, связи и т. д. Для того чтобы представить себе потенциальные возможности, предоставляемые пользователям для перепрограммирования вводов/выводов, целесообразно привести варианты возможных значений входящих и исходящих событий.
Терминал GSM1208 Enfora на базе моду ля GSM-107/108 имеет на задней панели разъемы интерфейсов питания, RS-23 2 и интерфейса пользовательских вводов/выводов. На 8-контактном разъеме Wago расположены выводы ADC1, ADC2, DAC, GPIO1, GPIO3, GPIO5, GPIO6, GND. Этот терминал совместно с программой Enfor a Event Tools [14] можно рекомендовать начинающим пользователям в качестве готового к работе автоматизированного телеметрического устройства для отправ к и сообщений по GSM-каналу.
Программа Enfora Event Tools позволяет сконфигурировать COM-порт (номер порта, скорость обмена, скорость передачи, четность, управление).
Все события могут быть дополнительно разбиты по отдельным группам, которые будут обрабатываться поочередно.
Кроме описанных единичных событий можно задать и множественные последовательные события. Например, «Состояние вводов/выводов» и «Сетевые IP-события».
Примером прикладного использования функционала обработки событий может быть часть решения по контролю доступа в помещение. При несанкционированном доступе сигнал, поступающий на I/O-интерфейс модуля, вызывает автоматическую посылку SMS-сообщения (или UDP-пакета по IP-сети) или установление телефонного соединения на заданный номер и включение камеры слежения. Возможны и другие комбинации действий.
Передача данных в режиме GPRS
Обычно при соединении «точка-точка» в режиме GPRS используется схема, при которой GSM/GPRS-терминал выступает в роли «ведомого». В этом случае центральный сервер тем или иным об разом инициализирует процесс установки связи, например дозваниваясь до терминала на обычный GSM-номер или посылая SMS-сообщение.
Терминал регистрирует входящий звонок или SMS и начинает установку обратной связи, открывая GPRS/PPP-сесси ю с оператором GSM. Затем терминал автоматически устанавливает TCP-соединение с центральным сервером для пересылки данных (или посылает UDP-сообщения). В такой схеме терминал, как правило, получает динамический IP-адрес (уникальный на время сесси и), а серверу необходим статический, фиксированный IP-адрес.
При работе с динамическим адресом возникают некоторые сложности, когда требуется передать информацию по IP-сети устройству, чей адрес заранее неизвестен. При этом адрес устройства, видимый во внешней IP-сети, може т менять ся уже после подключения к сети GPRS. Модули Enfora Enabler могут авто матически посылать на один или несколько серверов UDP-сообщения, которые очевидным образом содержат актуальный IP-адрес устройства. Внутри такого сообщения содержится специальная информация, позволяющая идентифицировать конкретного отправителя. Соответственно, центральный сервер будет иметь возможность пересылать данные на терминал.
Программное обеспечение ENFORA позволяет осуществлять управление терминалом посредством UDP API даже в том случае, если модем не зарегистрирован в GPRS-сети (не назначен внешний динамический IP-адрес).
Большинство продуктов других произ водителей позволяют работать с ус трой ством по IP через «внутренний» последовательный интерфейс, пользуясь лишь «внешним» IP-адресом, и только после того, как установлено внешнее GPRS-соединение с оператором. Таким образом, при потере соединения с GPRS-сетью или при изменении внешнего IP-адреса теряется связь с беспроводным устройством по IP через «внутренний» последовательный интерфейс.
Модули и терминалы Enfora могут работать в автоматическом и ручном режимах установления соединения с сетью GSM/GPRS.
Команда at$areg=1 обеспечивает автоматическую регистрацию в сети GSM.
Автоматическая GPRS регистрация зада ется командой: at%cgaatt=0,1.
Переключение в ручной режим задаетс я командой: at$areg=0.
При работе в режиме GPRS используются стандартные команды: CGATT, CGACT, CGDCONT, ATD*99***1#.
Из специальных команд Enfora следует отметить команду $HOSTIF, определяющую тип подключения через последовательный порт, а также команды %CGPPP и %CGPCO, с помощью которых задаются необходимые параметры PPP-идентификации.
Просмотреть текущий IP-адрес и адрес DNS-сервера можно с помощью команды AT$NETIP. Следует учитывать, что устройство имеет динамический IP-адрес только в том случае, если активирован режим GPRS и установлена PPP-сессия с оператором.
Терминалы и модули ENFORA позволяют сконфигурировать несколько вариантов соединения с модемом через последовательный порт.
Например, может быть выбрана схема соединения с поддержкой стандартного PPP-протокола (Point To Point Protocol). Этот вариант широко используется, когда необходимо организовать передачу данных в асинхронном режиме. При этом для подключения к GPRS может быть использован стандартный интерфейс (Windows PPP interface).
Если устройство, подключенное к модему, не имеет TCP/IP-стека и не поддерживает протокол PPP, терминалы и модули ENFORA могут использоваться для подключения устройства к IP-сети в режиме, называемом «Сборка/разборка пакетов» (Packet Assembler / Disassembler — PAD). Подробно этот режим описан в [15].
Функция PAD позволяет конвертировать, упаковывать и передавать данные со стандартного последовательного интерфейса без специального протокола, необходимого внешнему устройству. Сопряжение с устройствами, не поддерживающими TCP/IP, реализуется с помощью команды AT$HOSTIF=<type>.
В режиме PAD терминал Enfora может быть сконфигурирован либо как клиент (active), либо как сервер (passive). В активном режиме предусмотрена возможность установления TCP-соединения по известному IP-адресу посредством команды ATDT<IP address>/<port>. В пассивном режиме терминал может ожидать внешнее TCP-соединение на заданном порту (см. описания команд AT$ACTIVE, AT$PADSRC).
Работа модулей в режиме GPRS подробно описана в документах [11, 15–18].
Ниже приведен пример настройки терминалов Enfora при отсылке информации в режиме GPRS на центральный сервер.
Настройка терминала GSM1208/1218 в режиме passive/server с отсылкой уведомлений (wakeup-пакетов) на центральный сервер
В данном примере рассматривается вариант использования модема в режиме TCP PAD passive/server (модем ожидает соединения с центрального сервера, после установления TCP-соединения модем принимает/передает данные).
Для построения стенда требуется следующее оборудование и ПО (рис. 2):
- ПК с возможностью подключения к сети Интернет (например, по dial-up-соединению) выполняет роль центрального сервера;
- ПК, к последовательному порту которого подключен модем Enfora GSM1208-B, выполняет роль удаленного терминала;
- утилита netcat (http://www.vulnwatch.org/netcat/nc111nt.zip), запускаемая на центральном сервере. Далее предполагается, что файл nc.exe переименован в netcat.exe и расположен в каталоге tmp на диске C.
Последовательность действий по настройке стенда:
- Если на центральном сервере установлена операционная система Microsoft Windows XP, требуется временно отключить брандмауэр (снять настройку «Защитить мое подключение к Интернету») в свойствах соединения с Интернетом (рис. 3).
- Далее необходимо подключиться к Интернету, как обычно.
- После успешного подключения, используя стандартную утилиту ipconfig, необходимо выяснить, какой ip-адрес в данный момент выдан центральному серверу. На центральном сервере в меню Windows, в строке запуска программ по имени Start ? Run, набираем «cmd.exe /K ipconfig /all» (рис. 4).
- Выбираем UDP-порт, на котором центральный сервер будет ожидать wakeup-пакеты от модема Enfora. Допустим, выбран порт 5452.
- На центральном сервере запускаем утилиту netcat. В меню Windows, в Start ? Run, набираем «cmd.exe /K c:tmpnetcat — l — u — o c:tmptrafdump.txt — p 5452 — vv»
- На ПК, к которому подключен GPRS-модем Enfora, воспользовавшись терминальным ПО (например, HyperTerminal), производим предварительную настройку модема (табл. 1).
- Переводим модем в режим установки GPRS/PPP-соединения (рис. 5).
- После того как модем успешно соединился с сетью оператора (т. е. после установления PPP-соединения), на центральном сервере видим отправленные модемом уведомления (wakeup-пакеты), содер жимое которых позволяет определить присвоенный модему в сети GPRS-динамический ip-адрес, а также видеть индентификатор модема-отправителя (рис. 6).
- Проверяем, доступен ли модем с центрального сервера. На центральном сервере в меню Windows, в Start ? Run, набираем «cmd.exe /K telnet 213.87.8.11 5000», где 213.87.81.7 — ip-адрес GPRS-модема (см. п. 7.2, рис. 6). После успешного установления TCP-соединения с сервера к модему, набираем: test test test<enter>
- Видим, что модем успешно работает в режиме TCP PAD (рис. 8).
- Утилита netcat сохранила содержимое wakeup-пакетов в файле c:tmptrafdump.txt. Можно посмотреть содержимое файла (формат — текстовый) и проверить формат уведомлений (рис. 9).
Заключение
Дополнительную информацию о продукции Enfora можно найти на сайте производителя www.enfora.com. /ссылка утрачена/
- Алексеев В. GSM/GPRS-модули ведущих мировых производителей // Электронные компоненты. 2004. № 5.
- Алексеев В. Приложения пользователя в модулях GSM/GPRS ведущих мировых производителей // Компоненты и технологии. 2005. № 2.
- Алексеев В. GSM/GPRS-терминалы ведущих мировых производителей // Компоненты и технологии. 2005. № 1.
- Алексеев В. GSM/GPRS-терминалы и модули производства ENFORA с расширенным набором АТ-команд для М2М-приложений // Компоненты и технологии. 2005. № 3.
- GSM2000PB001MAN, Enfora GSM/GPRS, Spider MT, User manual, Rev. 1.03.
- GSM1200PB001MAN, Enfora GSM/GPRS, Spider SA-GL, User manual, Rev. 1.01.
- GSM0000PB001MAN, Enfora Spider SA, User manual, Rev. 1.05.
- http://www.enfora.com/support_downloads.asp /ссылка утрачена/
- http://www.telemetry.spb.ru/products/enfora /ссылка утрачена/
- Моисеенко Д. Оптимизация работы модемов Wavecom в режиме передачи данных по сети GSM // Компоненты и технологии. 2004. № 3.
- Enfora Enabler-IIG GSM/GPRS Radio Modem AT Command Set Reference, Version: 1.02. 15 April 2005. Released, Document Control ID: GSM0107PB001MAN
- GSM0000AN004, Enabler-S SMS, Configuration and use. Enfora, Inc
- GSM0000AN016, How to send an SMS message to an E-mail address, Enfora, Inc
- GSM0000PB003MAN, Enfora Event Tools, Rev. 1.00,User Manual.
- GSM0000AN011, PAD Configuration and use, Rev. 1.04., Enfora, Inc
- GSM0000AN012 Network Transparency Configuration for PAD, Enfora, Inc
- GSM0000AN017 SMTP Mail Access Via TCP PAD, Enfora, Inc
- GSM0000AN009 Dynamic IP Assignment Support, Enfora, Inc