В число наиболее значимых опций Enabler входит функционал UDP/TCP сборки/разборки пакетов (Packet Assembler/Disassembler, PAD), который позволяет конвертировать, упаковывать и передавать данные с обычного последовательного интерфейса, без специального протокола, необходимого внешнему устройству.
Это дает возможность прозрачного подключения внешних устройств типа счетчиков, сенсоров, датчиков и разного рода измерительных модулей к сети GPRS, а соответственно и к IP. Как правило, подобные устройства подключаются к компьютеру (контроллеру) через последовательный интерфейс. При этом функции управления, считывания, записи и передачи возложены на программное обеспечение (ПО) компьютера.
Модули Enfora могут быть сконфигурированы таким образом, чтобы при включении автоматически активировалась функция PAD, модем регистрировался в сети, и начинался сбор и передача информации с подключенного к модему внешнего устройства.
Таким образом, PAD - это способ передачи данных от устройства "за модемом" через сеть IP/GPRS/GSM и далее до получателя. Впервые, именно в таком виде, этот способ был реализован именно фирмой Enfora.
Для того чтобы понятнее была работа PAD, целесообразно напомнить основные термины и обозначения, используемые в описаниях протоколов Интернет и передачи данных по GPRS.
GPRS (General Packet Radio Service) - пакетная передача данных по радиоканалу. В этих сетях передаваемую информацию разбивают на отдельные пакеты, которые доставляют от отправителя к получателю. На приемной стороне из полученных пакетов конструируют исходное сообщение. Принципиальное отличие передачи данных в сети GPRS от передачи данных в сетях GSM заключается в том, что необходимый канальный ресурс выделяется в GPRS только на время передачи соответствующих информационных пакетов. Остальное время каналы находятся в распоряжении сети. Такой подход позволяет в сетях GPRS один физический канал использовать для передачи пакетов нескольких абонентов. При этом для передачи пакетов одного абонента можно выделять одновременно несколько физических каналов.
Подсистема GPRS представляет структуру, «параллельную» классической сети GSM (сети с коммутацией каналов).
Для передачи абонентских пакетов и пакетов различной сигнальной информации через радиоинтерфейс организуют логические каналы, отличные от каналов классической GSM. Эти логические каналы размещают в физических каналах, выделенных для GPRS из общего частотно-временного ресурса.
В мультислотовом режиме один модем может параллельно использовать до восьми каналов передачи пакетированных данных (PDCH).
В схеме GPRS регистр абонентов (HRL) дополнен блоком (PDP), содержащим информацию о клиентах, пользующихся GPRS. Для управления и обслуживания режима GPRS в подсистеме дополнительно введен блок SGSN. Этот блок выполняет операции по контролю доставки пакетов данных, проверке разрешений на запрашиваемые услуги, взаимодействию с абонентским регистром.
Пакеты в различных направлениях передаются независимо. В сети GPRS абоненту присваивают статический (постоянный) или динамический (временный) адрес, по которому идет обмен информационными пакетами. Для работы в сети GSM/GPRS модем должен иметь дополнительное программное обеспечение.
Каждый пакет содержит идентификатор или адрес, который используют при его доставке. Абонент постоянно подключен к пакетной сети, где ему предоставлен виртуальный канал, который становится реальным (физическим) радиоканалом на время передачи пакета. В остальное время этот физический канал используют для передачи пакетов других пользователей.
Передача пользовательской информации от модема к внешним сетям и обратно реализуется в соответствии со специальными протоколами Интернет.
Как правило, выделяют три основных уровня протоколов Интернет: сетевой, транспортный и прикладной (IP, TCP/UDP и, например, HTTP).
IP (Internet Protocol) - это стандартный Интернет - протокол сетевого уровня для передачи данных с коммутаций пакетов. Протокол IP предназначен для пересылки пакетов данных по сетям связи без установления логического соединения. При этом каждый пакет маршрутизируется индивидуально с помощью IP-адресов получателя. Каждому узлу, называемому хостом (Host), присваивается уникальный адрес в виде 32-разрядного двоичного числа (четыре байта), которое записывается в десятичном виде, например 130.132.59.234.
Характерной чертой IP-протокола является надежность процесса маршрутизации. Так, например, маршрутизатор ищет обходные пути доставки по необходимому адресу в случае, когда основной маршрут недоступен.
TCP (Transmission Control Protocol) – стандартный Интернет - протокол транспортного уровня, который может быть использован для передачи инкапсулированных GTP - пакетов данных между узлами GPRS. Этот протокол обеспечивает надежную передачу данных с подтверждением получения пакетов и повторной передачей пропавших или поврежденных пакетов. Недостатки, связанные с потерей данных при передаче, устраняются при использовании TCP/IP-стека. Если при передаче в стеке TCP/IP обнаружена ошибка, то сегмент данных будет передаваться снова, до тех пор, пока не будет получено подтверждение успешной доставки.
UDP - протокол обеспечивает передачу данных без подтверждения о доставке. Этот протокол более высокоскоростной, но менее надежный. С помощью этого протокола можно также осуществлять широковещательную доставку пакетов в пределах одной IP-сети. Протокол UDP также имеет адресацию портов.
TCP socket. Протоколы TCP и UDP используют понятие порта. Это позволяет разделять доступ по сети к различным приложениям, работающим в одной программной среде. Каждому приложению может быть выделено несколько уникальных портов в системе. Комбинацию <адрес>+<№ порта> называют TCP socket. Адрес с указанием порта записывается, например, так — 1.2.3.4:5
DNS (Domain Name System) - протокол прикладного уровня для преобразования символьных имен хостов в Интернете в цифровые значения IP-адресов (и обратно).
DNS server – cервер системы доменных имен, обеспечивающий преобразование символьных имен хостов в цифровые значения IP-адресов. Входит в состав оборудования сети GPRS.
FTP (File Transfer Protocol) - протокол для передачи файлов между локальным и удаленным хостами.
HTTP (Hypertext Transfer Protocol) является основным тексто-ориентированным протоколом, предназначенным для получения информации с веб-сайтов.
POP3 (Post Office Protocol) – тексто-ориентированный протокол, используемый для получения электронной почты с удаленного сервера.
SMTP (Simple mail transfer protocol) - это протокол для отправки почты по сети Интернет.
PPP (point-to-point protocol) - это протокол инкапсуляции других протоколов для передачи по соединению между двумя точками.
PDP Context ((Packet Data Protocol) - контекст протоколов пакетной передачи данных. Определяет GPRS - данные абонента, сохраняющиеся в самом модеме (частично на SIM-карте). Каждый PDP - контекст абонента может находиться в одном из двух состояний: INACTIVE или ACTIVE.
В общем случае для передачи данных в режиме GPRS необходим программно - аппаратный комплекс, поддерживающий TCP/IP - протоколы. Обычно такой комплекс включает в себя GSM/GPRS - терминал, ПК и ПО TCP/IP.
Модули (модемы) Enfora имеют встроенный TCP/IP - стек, что позволяет использовать их в «интеллектуальных» удаленных терминалах для М2М приложений.
Для работы в Интернете через GPRS достаточно активизировать PDP-контекст и дозвониться по указанному оператором номеру. Например, при использовании сети «Мегафон» эти операции выполняются с помощью команд:
AT+CGDCONT=1, «IP», «INTERNET».NW»
ATD*99***1#
Существуют два варианта связи между объектами и диспетчерским пунктом (ДП).
Первый вариант - это получение от оператора сотовой связи статических IP - адресов для всех объектов и ДП и осуществление связи в соответствии с этой адресацией.
Второй вариант не требует получения статических IP - адресов. В этом случае связь осуществляется через назначенные почтовые ящики в Интернете, для доступа к которым достаточно иметь временный, динамический IP – адреса (рис. 1).

Рис.1. Адресация в сети GPRS
Почтовых ящиков при двухсторонней связи может быть два или более. Один почтовый ящик необходим для того, чтобы объекты «оставляли» в нем сообщения (отчеты), а ДП с заданным периодом эти отчеты из них «забирал». Второй почтовый ящик нужен для того, чтобы ДП «оставлял» там команды или сообщения для объектов, а каждый объект с заданным периодом должен просматривать этот почтовый ящик.
При работе с динамическим адресом возникает ряд сложностей, когда требуется передать информацию по IP-сети GPRS-устройству, адрес которого заранее неизвестен. Более того, адрес устройства, видимый во внешней IP-сети, может меняться уже после подключения к сети GPRS.
Модули Enfora Enabler могут быть настроены таким образом, чтобы автоматически осуществлялась посылка сообщения на один или несколько серверов. Это позволяет своевременно оповещать наружные серверы управления. При этом, принятое сервером сообщение очевидным образом содержит актуальный IP-адрес устройства, а внутри сообщения содержится определенная информация, позволяющая идентифицировать конкретного отправителя. Еще одной полезной особенностью Enabler является возможность работы с устройством через последовательный порт по IP протоколу с использованием отдельного статического IP-адреса. Большинство продуктов других производителей позволяют работать с устройством по IP протоколу через "внутренний" последовательный интерфейс при использовании "внешнего" IP-адреса, и только после того, как установлено внешнее GPRS-соединение с оператором. Таким образом, при потере соединения с GPRS-сетью или при изменении внешнего IP-адреса, теряется связь с беспроводным устройством по IP протоколу через "внутренний" последовательный интерфейс. Этого можно избежать благодаря упомянутой особенности продуктов Enfora Enabler. Подобный функционал в сочетании с доступной в Enfora Enabler возможностью трансляции IP-адресов позволяет реализовать более гибкие схемы использования модулей Enabler.
В качестве примера можно привести схему реализации с помощью АТ команд уведомления серверов о получении модемом <нового> IP-адреса.
AT$FRIEND=
В команде AT$FRIEND задаются значения:
• friend # - номер изменяемого ip-адреса сервера в списке (от 1 до 10);
• server indication - 1 = IP адрес принадлежит серверу, 0 = IP-адрес используется для управления;
• IP – это IP-адрес в формате 0-255.0-255.0-255.0-255.
AT$MDMID=
Проблема трансляции адресов в сети оператора в модулях ENFORA ENABLER решается с помощью так называемого механизма «wakeup/keep alive», который позволяет модулю автоматически посылать серверу IP-пакет, содержащий сообщение - уведомление в специальном формате.
Такое сообщение содержит уникальный идентификатор модема (at$mdmid), а заголовок IP-пакета несет информацию о <новом> IP-адресе модема. В случае, если оператор использует трансляцию IP-адресов, полученное сервером сообщение также несет информацию об активном, видимом "снаружи", IP-адресе модема. Механизм автоматических уведомлений гарантирует серверу наличие актуальной информации об устройстве (уникальный идентификатор + IP-адрес в заголовке пакета).
AT$WAKEUP=
Для «wakeup mode» возможны следующие значения:
• 0 – wakeup сообщения не отсылаются;
• 1 – посылать wakeup сообщения при получении нового IP-адреса и через каждые
• 2 – посылать сообщение при получении нового IP-адреса, используя параметры at$acktm, и через каждые
Интервал времени для «keep alive re-try period» может принимать значения от 0 до 3600.
AT$ACKTM=
При использовании модема Enfora возможны два метода передачи данных: с использованием PAD и использованием внешнего управляющего устройства.

Рис. 2. Примеры передачи данных с помощью модулей (модемов) Enfora:
2.1. Передача данных с использованием режима PAD;
2.2. Передача данных с использованием внешнего управляющего компьютера
Пример передачи данных в режиме PAD. В данном случае нет управляющего внешнего компьютера (ПК) и упаковку данных в «IP – GPRS» производит сам модем, находящийся в режиме PAD. Эта схема показана на рисунке 2.1. В модем через внешний интерфейс поступают некоторые данные (текст «ABC»). Например, в качестве внешнего устройства используется обычный компьютер и данные, набранные в программе HyperTerminal, поступают через последовательный порт. При этом не нужен никакой специальный протокол обмена. Далее модем их сам упаковывает данные в IP, затем в PPP, после чего передает их через GPRS/GSM соединение в сеть оператора сотовой связи. При этом PPP - соединение с сетью оператора устанавливает сам модем. Далее данные поступают через сеть оператора в Интернет. Следует подчеркнуть, что в Интернет передается и доходит до сервера только сам IP - пакет, а данные (текст «ABC») находятся внутри пакета. В приведенном примере режим PAD позволил модему обработать данные в соответствии со стандартными протоколами Интернет и передать их с обычного последовательного интерфейса, без специального протокола, который обычно необходим внешнему устройству.
В этой схеме нужно обратить внимание на то, что при использовании обычной SIM – карты, c динамическим IP - адресом в сети GPRS, адрес, выдаваемый модему сетью оператора сотовой связи, является промежуточным. Это не тот адрес, с которым потом пакеты, посылаемые модемом, попадают в Интернет. В данном случае оператор использует так называемую трансляцию адресов (NAT). Поэтому необходимо учитывать перекодировку при извлечении данных посланных модемом в режиме PAD. Лучшие результаты дают варианты со статическим IP - адресом.
Функция PAD позволяет собирать/разбирать UDP/TCP пакеты. Это может быть полезным в случае использования модема в режиме PAD TCP passive/server. В этом примере модем ожидает соединения с центрального сервера, а после установления TCP -соединения модем принимает/передает данные. Здесь компьютер (ПК), выполняющий роль центрального сервера, подключен к сети Интернет (например, по dial-up соединению через обычный выделенный проводной канал. Этот компьютер должен иметь статический IP- адрес. На удаленном пункте контроля, где нет проводной связи, находятся конечный прибор, контроллер (или ПК), к последовательному порту которого подключен модем Enfora, используемый в роли удаленного терминала. После того, как модем успешно соединился с сетью оператора (т.е. после установления PPP-соединения), на центральном сервере появляются отправленные модемом уведомления (wakeup-пакеты), содержимое которых позволяет определить присвоенный модему в сети GPRS динамический IP - адрес, а также индентификатор модема – отправителя. Далее с центрального сервера проверяется возможность доступа к модему и устанавливается TCP-соединение с сервера с модемом. Подробно этот пример рассмотрен в разделе «Передача данных с помощью модемов Enfora».
Схема, показанная на рисунке 2.2, иллюстрирует другой, «классическом» случай передачи данных без использования режима PAD. Здесь обработка данных, упаковка и передача IP-трафика через GRPS - сеть инициируется внешним компьютером (ПК). В данном случае PPP - соединение с сетью оператора сотовой связи устанавливает внешний управляющий компьютер, подключенный к модему. При этом сам модем используется исключительно в виде радио-интерфейса, через который реализуется подключение компьютера к сети оператора.
Следует отметить, что модули и модемы Enfora одинаково успешно могут быть использованы для реализации любой из перечисленных выше схем. Выбор конкретной схемы передачи данных определяется непосредственно задачей пользователя.
Модули Enfora нельзя программировать так же глубоко, как например модули Wavecom (Open AT). Вместо этого Enfora предлагает некий стандартный набор механизмов для передачи данных по TCP/IP. В принципе, опытный пользователь сам может написать программу, подобную PAD для внешнего управляющего контроллера. Альтернативный вариант – воспользоваться продукцией Enfora, если она подходит. Необходимо подчеркнуть, что без функционала, подобного PAD обойтись нельзя - либо он отрабатывается на внешнем ПК (МК), который подключен к "простейшему GSM/GPRS модулю (типа Siemens MC35i - T), либо используется готовый продукт типа Enfora.