Использование встроенного TCP/IP-стека WISMO228

№ 2’2011
PDF версия
При разработке M2M-приложений для передачи данных через GSM-сеть можно использовать различные технологии — SMS, модемное соединение в голосовом канале (CSD) или GPRS. Использование GPRS позволяет минимизировать стоимость трафика, однако требует наличия стека IP-протоколов на хост-процессоре или в самом GSMмодуле. В данной статье описываются команды встроенного TCP/IP-стека GSM-модуля WISMO228 и приводятся примеры практической работы с публичными почтовыми серверами.
Встраиваемый модуль TE-WISMO228

Рис. 1. Встраиваемый модуль TE-WISMO228

GSM-модули WISMO218 и WISMO228 компании Sierra Wireless являются продуктами нижнего ценового диапазона, при этом отличаются высоким качеством и построены на основе проверенных временем решениях [1]. Модули WISMO производятся на фабрике, сертифицированной по стандарту ISO TS 16949, и проходят сборку и выходной контроль качества на том же оборудовании, что и продукты для автомобильных применений. Как и другие продукты Sierra Wireless, модули имеют защиту от возможных претензий в области нарушения прав на интеллектуальную собственность, поскольку компания производит все необходимые отчисления держателям патентов в области GSM/ GPRS. К несомненным достоинствам изделий можно отнести широкий диапазон напряжения питания (3,2-4,8 В) и низкий ток потребления в режиме ожидания 1,3 мА (Idle Mode Paging 9). Более подробную техническую информацию по модулям WISMO можно найти в [2]. Основное различие между ними заключается в том, что WISMO218 является двухдиапа-зонным, в то время как WISMO228 может работать в четырех GSM-диапазонах. Начиная с версии прошивки L22 все модули WISMO содержат встроенный TCP/IP-стек. Для разработки приложений можно использовать недорогой встраиваемый модуль TE-WISMO228, выпускаемый ООО «Терраэлектроника». Достоинством этой платы (рис. 1) является возможность подключения WISMO228 как к COM-порту ПК, так и к внешнему микроконтроллеру. Это облегчает знакомство с управляющими AT-командами с помощью терминальной программы и позволяет затем испытать написанную программу хост-контроллера на том же самом «железе». Доступная принципиальная схема [3] позволяет использовать схемотехнические решения платы в своем устройстве.

 

Команды встроенного TCP/IP-стека

Встроенный TCP/IP-стек работает со следующими протоколами: UDP, TCP in connect mode (Client), TCP in listen mode (Server). Поддерживается одновременная работа с несколькими сокетами: UDP — восемь сокетов, TCP Clients — восемь сокетов, TCP Servers — четыре сокета.

В М2М-приложениях обычно используется выделенный сервер, принимающий данные телеметрии на один или одновременно несколько сокетов в режиме TCP или UDP. При этом такой сервер должен иметь выделенный внешний статический IP-адрес. Использование публичных почтовых серверов может быть полезно в тех случаях, когда конечным получателем информации являются индивидуальные пользователи (физические лица) либо когда масштабы проекта не позволяют поддерживать свой собственный круглосуточно работающий сервер. Доступ к общедоступным серверам почты (mail.ru, yandex.ru, rambler.ru, gmail. com и др.) бесплатен, сами сервисы работают достаточно стабильно и предлагают гигабайты дискового пространства для хранения сообщений. Для доступа к своему почтовому ящику можно использовать не только веб-интерфейс: поддерживаются протоколы POP3 (чтение почты) и SMTP (для отправки почты). Именно с помощью этих протоколов обеспечивается доступ к почте для программ, установленных на ПК (Outlook, TheBat! и т. д.). Любое M2M-устройство, оснащенное GSM-модулем WISMO228, может работать с почтой по протоколам POP3 и SMTP на основе команд встроенного TCP/ IP-стека. Рассмотрим несколько практических примеров взаимодействия модуля WISMO228 c общедоступными почтовыми серверами. Во всех примерах мы отсылаем AT-команды c программы-терминала, запущенного на ПК. Модуль WISMO228 подключен к COM-порту компьютера через драйвер RS-232. Можно также подключить WISMO228 к USB-порту ПК через подходящий переходник USB/UART.

Во всех примерах далее применяется следующая цветовая маркировка сообщений: Данные, отправляемые в UART WISMO228:

at+wipcfg=1<CR><LF>

Ответы и незапрашиваемые сообщения, получаемые из UART WISMO228:

+WIPREADY: 2,1

 

Пример 1. Прием сообщений с сервера mail.ru

После включения модуля следует убедиться, что регистрация в сети успешно завершена: в ответ на команду

at+creg?<CR><LF>

мы должны получить сообщение

+CREG 0,1

Далее приступаем к работе с TCP/IP-стеком. Сначала запускаем (активируем) сам TCP/ IP-стек:

at+wipcfg=1<CR><LF>

Определяем физическую среду передачи данных — GPRS Bearer («открываем GPRS-носитель»):

at+wipbr=1,6<CR><LF>

Устанавливаем точку доступа (в данном примере используется SIM-карта «Билайн»):

at+wipbr=2,6,11,»internet.beeline.ru»<CR><LF>

Выполняем подключение к GPRS («стартуем носитель»):

at+wipbr=4,6,0<CR><LF>

После этой команды возникает небольшая пауза (несколько секунд) до получения ответа «OK».

Теперь можно проверить полученный модулем IP-адрес:

at+wipbr=3,6,15<CR><LF>

+WIPBR: 6,15,»10.192.244.192″

Мы получили адрес внутренней сети оператора, к которому невозможно обратиться извне (т. е. с компьютера, подключенного к Интернету). Однако для приема и отправки почты это не имеет существенного значения, т. к. эти процессы будут инициированы самим модулем WISMO228.

Создаем соединение (TCP-клиент) с указанным на сайте почтового сервиса адресом (pop.mail. ru) и номером порта (110):

at+wipcreate=2,1,»pop.mail.ru»,110<CR><LF>

В ответ мы получаем две строки:

+WIPREADY: 2,1

(успешно создан TCP-клиент с идентификатором сессии (индексом) 1) и

+WIPDATA: 2,1,5

(получены 5 байт данных).

Переключаем UART в режим обмена данными в режиме Continuous:

at+wipdata=2,1,1<CR><LF>

После сообщения

CONNECT

мы видим 5 байт данных (c учетом<CR><LF>), которые прислал нам почтовый сервер:

+OK

Ура, мы соединились с почтовым сервером и теперь можем отправлять команды протокола POP3. Вводим адрес почтового ящика:

USER wismo@mail.ru<CR><LF>

+OK

Указываем пароль доступа:

PASS wismo228<CR><LF>

+OK Welcome!

Авторизация на сервере прошла успешно. Теперь можно производить манипуляции с почтовым ящиком. Например, мы можем посмотреть общее количество писем с помощью следующей команды:

STAT<CR><LF>

+OK 2 2048

(в нашем почтовом ящике два сообщения, которые занимают 2048 байт). Прочитаем второе сообщение целиком:

RETR 2<CR><LF> +OK 1262 octets

Return-path:<sierrawireless@rambler.ru>

Received: from [81.19.67.208]

(port=56076 helo=mcgi71.rambler.ru) by mx19.mail.ru with esmtp id 1QDyEA-0001TD-00

for wismo@mail.ru; Sun, 24 Apr 2011 16:15:50 +0400

Received-SPF: pass (mx19.mail.ru: domain of rambler.ru designates 81.19.67.208 as permitted sender)

client-ip=81.19.67.208;

envelope-from=sierrawireless@rambler.ru; helo=mcgi71.rambler.ru;

X-Mru-BL: 0 X-Mru-PTR: off X-Mru-NR: 1

X-Mru-OF: unknown (ethernet/modem) X-Mru-RC: RU

Received: from [109.173.54.73] by mcgi71.rambler.ru with

HTTP (mailimap); Sun, 24 Apr 2011 16:15:50 +0400

From:<sierrawireless@rambler.ru>

To:<wismo@mail.ru>

Subject: Test WISMO228 TCP/IP-stack

Date: Sun, 24 Apr 2011 16:15:50 +0400

MIME-Version: 1.0

Content-Disposition: inline

Content-Transfer-Encoding: 7bit

Content-Type: text/plain; charset—»us-ascii»;

format—’flowed»

Message-Id:<808815459.1303647350.90353336.92159@ mcgi71.rambler.ru>

X-Mailer: Ramail 3u, (chameleon), http://mail.rambler.ru X-Spam: Not detected X-Mras: Ok

This mail is just test message for WISMO228 TCP/IP-stack.

1111111111

2222222222

3333333333

4444444444

5555555555

6666666666

7777777777

8888888888

9999999999

0000000000

End of test message.

<CR><LF>

<CR><LF>

Сообщение заканчивается последовательностью кодов: <CR><LF><.><CR><LF>, которые не являются телом письма. Эти байты добавляет почтовый сервер — они являются признаком конца сообщения.

В почтовом ящике может оказаться случайное очень большое сообщение, прием которого может занять продолжительное время. Чтобы не принимать его полностью, можно использовать команду top msg n. По этой команде можно получить n первых строк сообщения с номером msg. РОРЗ-сервер в ответ на данную команду отправляет заголовок сообщения, затем пустую строку, затем требуемое количество строк сообщения (если их количество в сообщении меньше указанного в параметре n, то будет передано все сообщение). В течение сеанса связи не следует допускать больших (более 1 мин.) пауз между отправкой команд протокола POP3, в противном случае сервер может инициативно разорвать соединение. При этом при отправке очередной команды мы получим в ответ последовательность:

<ETX><CR><LF><SHUTDOWN><CR><LF>

У нас более нет интереса к нашей почте, поэтому отключаемся от почтового сервера:

QUIT<CR><LF>

+OK POP3 server at mail.ru signing off

<ETX>

SHUTDOWN

Для корректного завершения GPRS-сессии выполняем следующие команды:

at+wipbr=5,6<CR><LF>

at+wipbr=0,6<CR><LF>

at+wipcfg=0<CR><LF>

 

Пример 2. Отправка E-mail-сообщений c помощью протокола SMTP

Протокол SMTP (Simple Mail Transfer Protocol) создан для удобной отправки электронных почтовых сообщений (E-mail). Если не вдаваться в подробности, то это просто некоторый набор текстовых ASCII-команд и соответствующих ответов почтового сервера. Для практической отправки E-mail нам потребуется всего пять базовых команд SMTP-протокола. Прежде всего, запускаем TCP/IP-стек WISMO228 точно так же, как и в примере 1:

at+wipcfg=1<CR><LF>

at+wipbr=1,6<CR><LF>

at+wipbr=2,6,11,»internet.beeline.ru»<CR><LF>

at+wipbr=4,6,0<CR><LF>

Создаем соединение (TCP-клиент) с каким-либо почтовым сервером отправки почты. В нашем случае используем адрес smtp.mail. ru и 25 порт.

at+wipcreate=2,1,»smtp.mail.ru»,25<CR><LF>

После получения ответов

+WIPREADY: 2,1

+WIPDATA: 2,1,41

переключаемся в режим обмена данными:

at+wipdata=2,1,1<CR><LF>

CONNECT

Строка CONNECT говорит о том, что мы перешли из режима AT-команд в режим данных. Далее мы получаем приглашение почтового SMTP-сервера:

220 relay2.beelinegprs.ru ESMTP Postfix

Первая команда, отправляемая серверу:

EHLO server<CR><LF>

Строка данных server в команде-приветствии EHLO может быть и любой другой. В ответ мы получаем несколько кодов ответа. Каждый код, начинающийся с цифры 2, говорит об успешной транзакции — подробную расшифровку можно легко найти в Интернете:

250-relay1.beelinegprs.ru

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250 8BITMIME

Работа с корпоративной SIM-картой «Билайн» не требует дополнительной авторизации, поэтому отправка письма значительно упрощается — нам достаточно задать адреса получателя и отправителя:

MAIL FROM:<anymail@gmail.com><CR><LF>

250 Ok

RCPT TO:<sierrawireless@rambler.ru><CR><LF>

250 Ok

Переходим к отправке содержимого письма:

DATA<CR><LF>

354 End data with<CR><LF><CR><LF>

Далее последовательно заполняем все поля обычного E-mail-сообщения:

from: OlegPushkarev<CR><LF>

to: sierrawireless@rambler.ru<CR><LF>

subject: WISMO228 SMPT Beeline test<CR><LF>

Hello world from WISMO!<CR><LF>My position: http://maps.google.ru/maps?q=55.754000%2c37.620300<CR><LF>END of FILE<CR><LF>.<CR><LF>

Ответ сервера говорит об успешном принятии письма к отправке:

250 Ok: queued as 50EC77215E3

Для корректного завершения сеанса используется команда QUIT:

QUIT<CR><LF>

Вид отправленного нами сообщения в почтовом ящике на Rambler.ru показан на рис. 2.

Письмо, отправленное WISMO228 («Билайн»)

Рис. 2. Письмо, отправленное WISMO228 («Билайн»)

В текст данного письма мы включили ссылку с местоположением объекта, полученного, например, с помощью ГЛОНАСС-приемника. Получателю письма достаточно «кликнуть» по ссылке, чтобы увидеть на карте Google отметку, где во время отправки письма находился модуль WISMO228.

 

Пример 3. Использование авторизации

Отправка письма с помощью SIM-карты «МегаФон» требует ввода имени и пароля при открытии GPRS-сессии и дополнительного шага авторизации при подключении к SMTP-серверу. Это сделано для предотвращения рассылки спама или нежелательных анонимных сообщений. Для авторизации необходимо ввести команду

AUTH PLAIN

c логином и паролем, зашифрованным в формате base64. Base64 — это схема, по которой произвольная последовательность байт преобразуется в последовательность печатных ASCII-символов. Алгоритм формирования base64 можно найти в «Википедии». После удачной авторизации выводится сообщение

235 Authentication succeeded

В отличие от примера 2, адрес отправителя должен быть привязан к логину, поэтому подставить произвольный текст в поле «from:» здесь не получится, т. к. это приводит к сообщению:

501 sender address must match authenticated user

Более требователен сервер в этом случае и к содержимому письма. Несколько раз наблюдалось срабатывание антиспамового фильтра на, казалось бы, довольно безобидные сообщения: 550 spam message rejected. Please visit http://mail.ru/notspam/ or report details to abuse@corp.mail.ru. Error code: D8A3EC38E DCF8F8201 59836E676F914F5BE1AA86CA67C58B. Итак, вот как выглядит протокол работы с SMTP-сервером с обычной коммерческой SIM-картой «МегаФон» (ответы модема «OK» опущены):

at+wipcfg=1<CR><LF>

at+wipbr=1,6<CR><LF>

at+wipbr=2,6,11,»internet.ru»<CR><LF>

at+wipbr=2,6,0,»gdata»<CR><LF>

at+wipbr=2,6,1,»gdata»<CR><LF>

at+wipbr=4,6,0<CR><LF>

at+wipbr=3,6,15<CR><LF>

+WIPBR: 6,15,»10.21 5.1 34.95»

at+wipcreate=2,1,»smtp.mail.ru»,25<CR><LF>

+WIPREADY: 2,1

at+wipdata=2,1,1<CR><LF>

CONNECT

EHLO 1 234567890<CR><LF>

220 smtp2.mail.ru ESMTP ready

250-smtp2.mail.ru

250-SIZE 31457280

250-8BITMIME

250-AUTH PLAIN LOGIN

250 STARTTLS

AUTH PLAIN AHdpc21vAHdpc21vMjI4<CR><LF>

235 Authentication succeeded

MAIL FROM:<wismo@mail.ru><CR><LF>

250 OK

RCPT TO:<sierrawireless@rambler.ru><CR><LF>

250 Accepted

DATA<CR><LF>

354 Enter message, ending with «.» on a line by itself

from: wismo@mail.ru<CR><LF>

to: sierrawireless@rambler.ru<CR><LF>

subject: WISMO228 with Megafon SIM<CR><LF>

Шлем письмо с помощью встроенного TCP/IP-стека WISMO228<CR><LF>

в чащах юга жил бы цитрус да но фальшивый экземпляр<CR><LF>

the quick brown fox jumps over the lazy dog<CR><LF> .

<CR><LF>

250 OK id=1QE3DQ-0004pu-00

QUIT<CR><LF>

221 smtp2.mail.ru closing connection

<ETX>

SHUTDOWN

Полученное письмо приведено на рис. 3. Использование GPRS-канала передачи данных является наиболее экономным с точки зрения расходов на трафик. На стоимость влияет используемый тарифный план и величина округления трафика. При стоимости в диапазоне 1-7 руб. за 1 Мбайт передачи данных и округлении объема 1 кбайт отправка коротких E-mail не приводит к заметным расходам на связь. Если размер письма укладывается в 1 кбайт, то стоимость отправки одного почтового сообщения не превысит 0,7 коп. Если ориентироваться на наиболее экономичные тарифные планы, например «Интернет старт» от «МегаФон», то первоначального платежа на SIM-карте (100 руб.) хватит на отправку 100 000 коротких писем. У каждого оператора, как правило, можно подобрать тарифный план, оптимальный для отправки коротких пакетов данных от M2M-устройств.

Письмо, отправленное WISMO228 («МегаФон»)

Рис. 3. Письмо, отправленное WISMO228 («МегаФон»)

 

Заключение

Использование бюджетного GSM-модуля WISMO228 позволяет организовать взаимодействие с почтовыми серверами POP3 и SMTP при помощи простого набора AT-команд встроенного TCP/IP-стека. Использование GPRS минимизирует расходы на трафик, делая этот вид связи существенно более выгодным по сравнению с отправкой SMS и передачей данных в голосовом канале (CSD).

Литература
  1. Пушкарев О. GSM-модуль начального уровня WISMO 218 // Новости электроники. 2009. № 10.
  2. WISMO228. Техническое описание.
  3. Описание TE-WISMO228. www.terraelectronica.ru.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

سكس عربي مصري مجاني sexauskunft.net سكسحر unblurred hentai nicehentai.com omega hentai chinki sex renklipornoo.net village naked dance hot x porn video hindipornsite.com heather jayne nude huge dick comics streamhentai.net hentai msngs
قصص وصور سكس wiwiuku.com مشاهدة أفلام سكس ラブホテル完全盗撮 浮気ドキュメント 禁断の関係 javshare.info とらぶるだいありー brawling go 132 hentaika.org all the way through futa www.indiansexmms pornhindivideo.com ftv hot live 福岡 風俗 図鑑 javwhores.mobi 日本で一番黒いgカップグラドルの絶倫性欲でハメ撮りsexしまくった日常を記録
x videos american fucktube24.com sex odia video 完全拘束イラマチオ 3 あべみかこ javpussy.net 300maan-316 xnxx miya khalifa indianpornsearch.com www.tamil sex videos どエロイ女のムチムチ肉感!ふにゃふにゃ星人 羽生ありさ freejavstreaming.net 生意気j○妹プリ尻挑発 telugu outdoor sex hindipornmovies.org mehreen kaur pirzada