GSM/GPRS-модуль SIM800

Осваиваем GSM/GPRS-модули SIMCom.
Практические рекомендации

№ 4’2014
PDF версия
Статья ориентирована в первую очередь на тех, кто только начинает работать с модулями сотовой связи компании SIMC om Wireless Solutions, а также она может быть полезна и опытным разработчикам, поскольку раскрывает некоторые не всегда очевидные аспекты их работы. Для большей наглядности информация представлена в форме ответов на вопросы.

Как задавать настройки модуля и объединять ввод одновременно нескольких АТ-команд?

Команды, которые могут быть поданы модулю SIMCom, подразделяются на три типа:

  • базовые (вида AT<x><y> либо AT&<x><y>);
  • с параметром (имеют синтаксис ATS<x>=<y>);
  • расширенные(AT+<x>, AT+<x>?, AT+<x>=?, AT+<x>=<…>).

При первичном включении устройства с использованием GSM-модема SIMCom необходимо задать его основные настройки: скорость работы UART, параметры отображения echo (от англ. echo — эхо), режим энергосбережения и т. п. Список команд может быть достаточно внушительным, поэтому возникает желание сэкономить время, не подавая команды поотдельности и не дожидаясь ответа модуля на каждую из них.

В одной строке можно подать сразу несколько команд. При этом нужно придерживаться правил:

  • Строка должна начинаться с AT, между командами префикс AT не вводится.
  • Базовые команды и команды с параметром далее вводятся подряд без разделителя.
  • Расширенные команды вводятся с разделителем ‘;’.
  • Максимальный размер буфера под строку и управляющий символ <CR> ограничен 556 символами.

Рассмотрим достаточно простой пример. Допустим, нам нужно подать на модуль при его настройке следующие команды:

  • ATE0 // выключить отображение эхо.
  • AT&D0 // отключить реакцию на смену уровня входа DTR.
  • ATS0=2 // включить автоматический ответ на входящий вызов через два звонка.
  • AT+IPR=115200 // установить фиксированную скорость UART.
  • AT+CMGF=1 // задать текстовый формат работы с SMS.
  • AT&W // сохранить соответствующие настройки.

Вместо этих семи команд, применив допустимый для модулей формат, можно подать строку:

ATE0&D0S0=2;+IPR=115200;+CMGF=1;&W<CR>

Данный синтаксис допустим при использовании и других команд, однако некоторые из них вследствие объективных причин могут выполняться в течение довольно продолжительного времени, поэтому необходимо дожидаться завершения их выполнения. Например, если подать модулю команду

AT+CIICR;+CIPSTART="TCP","116.228.221.51","8500"

то он ответит ошибкой, так как до старта попытки выполнить команду CIPSTART он не успеет получить IP-адрес от оператора сотовой сети.

 

Как обеспечить корректную работу программы модема при всевозможных сценариях?

На стабильность работы GSM-модема может влиять огромное количество факторов, в том числе и не зависящих от его функционирования, в частности скорость обработки запросов на стороне оператора сотовой связи. Поэтому мы настоятельно рекомендуем при разработке устройства предусмотреть возможность подключения к отладочному порту модуля. Это позволит при возникновении проблем получить логи с модема и отправить для анализа в SIMCom.

Pin out diagram модуля SIM900

Рис. 1. Pin out diagram модуля SIM900

У модулей SIMCom серии 900 для этого предназначен дополнительный DEBUG UART-порт (рис. 1), а у модулей серии 800 — USB-порт (рис. 2).

Pin out diagram модуля SIM800

Рис. 2. Pin out diagram модуля SIM800

Кроме того, через отладочные порты можно производить обновление внутреннего ПО модуля.

 

Как правильно установить TCP(UDP)-подключение и отправить данные на сервер?

Упрощенный алгоритм данного действия выглядит следующим образом:

  • AT+CREG? // по ответу выясняем, зарегистрированы ли мы в сети.
  • AT+CGATT? //проверяем, имеется ли подключение к услуге GPRS.
  • AT+CGATT=1 // при необходимости подключаемся к GPRS и обязательно дожидаемся ответа OK от модуля.
  • AT+CSTT=»internet.ru»,»usr»,»pwd» // задаем точку доступа, логин и пароль и поднимаем соединение.
  • AT+CIICR // отправляем запрос на получение IP и обязательно дожидаемся ответа OK от модуля. Это и будет признаком того, что получили IP у провайдера.
  • AT+CIFSR // запрашиваем собственный IP. Убеждаемся, что он получен.
  • AT+CIPSTART=»TCP»,»11.222.33.44″,»555″ //происходит установка TCP-соединения с сервером с IP “11.222.33.44” на порту 555; в случае если соединение было успешно установлено, в ответ получаем OK и CONNECT OK.
  • AT+CIPSEND=6 //собираемся передать на сервер ровно 6 байт данных. Получаем от модуля приглашение в виде символа ‘>’.
  • Hello! // отправляем данные и обязательно дожидаемся от модуля ответа SEND OK.
  • AT+CIPSHUT //завершаем сессию, попутно закрывая открытые соединения.
  • AT+CGATT=0 // подаем эту команду, если хотим деактивировать подключение к GPRS.
Возможные состояния в режиме single connection

Рис. 3. Возможные состояния в режиме single connection

Вообще, при работе с TCP(UDP)/IP правильным решением может быть организация FSM (finite state machine) на управляющем устройстве по состояниям, возвращаемым модулем на запросы состояния AT+CGATT? и AT+CIPSTATUS?, как показано на рис. 3 и 4 для режимов single connection и multi connection соответственно.

Возможные состояния в режиме multi connection

Рис. 4. Возможные состояния в режиме multi connection

 

Что такое SAPBR и чем отличается работа с IP-приложениями при его использовании?

Команда AT+SAPBR используется для настройки и активации контента в случае применения встроенных протоколов, таких как SMPT, POP3, MMS, HTTP и FTP. Это позволяет упростить задачу программиста по разработке IP-приложений.

Пример записи текстового файла на FTP-сервер:

  • AT+SAPBR=3,1,»CONTYPE»,»GPRS»;+SAPBR=3,1,»APN»,»internet.ru»;+SAPBR=3,1,»USER»,»usr»;+SAPBR=3,1,»PWD»,»pwd»;+SAPBR=1,1 // задаем точку доступа, указываем имя пользователя и пароль, поднимаем GPRS-соединение. Дожидаемся OK как признака успешного получения IP.
  • AT+FTPCID=1 // указываем, что будем работать с профилем №1.
  • AT+FTPSERV=»12.34.56.78″;+FTPUN=»xxx»;+FTPPW=»xxx»;+FTPGETPATH=»/» // задаем параметры подключения к серверу.
  • AT+FTPPUTNAME=»my file.txt» // отправляем запрос на создание файла.
  • AT+FTPPUT=1 // в ответ дожидаемся +FTPPUT:1,1,1280 — сервер готов принимать данные.
  • AT+FTPPUT=2,6 // запишем 6 байт.
  • Hello! // содержимое, которое будет записано в файл my file.txt.
  • AT+FTPPUT=2,0 // больше данных не будет, закрываем сессию
  • AT+SAPBR=0,1 // деактивируем контекст.

При использовании протоколов HTTP и FTP не нужно задавать параметры подключения командой AT+CSTT и поднимать соединение командой AT+CIICR.

 

Все ли команды и настройки модемов перечислены в документах типа «AT-command manual»?

Чтобы упростить изложение алгоритмов работы модулей в рамках той или иной функциональности, компания SIMCom выпускает специальную документацию (Application Notes) с примерами двустороннего обмена командами между модулем сотовой связи и MCU.

Например, для модулей SIMCom серии 900 существует линейка стандартных прошивок и ENHANCE-прошивок (с расширенной функциональностью). Команды и настройки, доступные только в прошивках с расширенной функциональностью, вынесены в отдельную документацию. Список дополнительных ENHANCE-функций, который может варьироваться в зависимости от конкретной версии ПО, приведен ниже:

  • запись аудиотреков и воспроизведение их в динамик или в сторону удаленного абонента;
  • User memory — встроенная память для пользовательских данных;
  • встроенный протокол FTP и HTTP, HTTPS;
  • Cell Location — определение координат без GPS по базовым станциям;
  • SMS Autorun — управление модулем с помощью SMS-сообщений;
  • Jamming Detection — обнаружение факта глушения;
  • декодирование и формирование DTMF-тонов;
  • eMail — формирование, отправка и прием электронных писем посредством АТ-команд;
  • работа с eMail-серверами, требующими авторизацию с использованием SSL;
  • MMS — формирование и отправка с помощью АТ-команд;
  • Easy Scan — получение информации об окружающих базовых станциях без подключения SIM-карты;
  • PING — проверка доступности адреса в Интернете посредством обмена ICMP-пакетами.

Документацию по дополнительному функционалу вы можете запросить по адресу wireless@mt-system.ru.

 

Как получить данные о текущей версии ПО модуля?

Текущую ревизию программного обеспечения GSM/GPRS-модуля можно получить по ответу на команды AT+GMR, AT+CGMR и AT+GSV.

Запрос — AT+GMR

Ответ — Revision:1137B02SIM900R64_ST_ENHANCE_EAT

Ответ включает в себя:

  • 1137 — идентификатор семейства модулей; в данном случае модуль относится к серии 900.
  • B02 — номер текущей прошивки в данной ветке прошивок.
  • SIM900R64 — аппаратную модификацию модуля; это модуль SIM900R с 64-Мбит flash-памятью.
  • ST — производителя flash-памяти, использованной в данном модуле.
  • ENHANCE — прошивку с поддержкой расширенной функциональности.
  • EAT — прошивку с поддержкой технологии Embedded AT.

Как получить и поддерживать данные о текущем времени с помощью GSM/GPRS-модуля?

Существует несколько способов получить данные о времени:

  • Обновление времени RTC при регистрации в сети можно включить командой AT+CLTS=1.

Далее нужно перезагрузить модуль либо перерегистрироваться в сети, подав последовательность команд AT+CFUN=0 и AT+CFUN=1. При регистрации в сети появится новое URC-сообщение вида

*PSUTTZ:<year>,<month>,<day>,<hour>,<min>,<sec>,"<time zone>",<dst>.

Затем значение текущей даты и времени можно запросить у модуля командой AT+CCLK.

  • Чтобы получить время по протоколу NTP, можно воспользоваться командами:

AT+SAPBR=3,1,»CONTYPE»,»GPRS»;+SAPBR=3,1,»APN»,»internet.ru»;+SAPBR=3,1,»USER»,»usr»;+SAPBR=3,1,»PWD»,»pwd»;+SAPBR=1,1 // задаем точку доступа, указываем имя пользователя и пароль, поднимаем GPRS-соединение и дожидаемся OK как признака успешного получения IP.

AT+CNTP=»pool.ntp.org»,4,1 // указываем адрес NTP-сервера, текущий часовой пояс и номер профиля, который будет использоваться при запросе.

AT+CNTP // запрашиваем время с сервера. Если в команде AT+CNTP добавить четвертый параметр =2, то при запросе также будут обновлены данные часов реального времени.

  • Можно получить информацию о времени с собственного сервера, например по каналу GPRS, и установить текущие показания часов реального времени с помощью команды AT+CCLK=»yy/MM/dd,hh:mm:ss+zz».

Чтобы поддерживать работу часов реального времени, нужно поддерживать питание RTC-домена, когда с модуля будет снято основное питание. Для этого можно обеспечить подачу питания на вход VRTC от конденсатора достаточной емкости либо от батареи/аккумулятора.

 

Выводы

Таким образом, применительно к модулям компании SIMCom Wireless Solutions может быть в значительной степени оптимизирован исполняемый управляющий программный код, что обеспечит более быстрое включение и настройку модулей. В целом это приводит к тому, что программный код функционирует более корректно и эффективно.

Кроме того, правильное понимание алгоритмов функционирования модулей SIMCom и, следовательно, корректная организация последовательности подаваемых на модуль команд при его взаимодействии с внешними устройствами позволяют избежать характерных ошибок, возникающих при разработке устройств.

Чтобы получить дополнительную документацию по продукции SIMCom Wireless Solutions и информацию о ней, следует обратиться в офисы «МТ-Систем» либо отправить запрос на wireless@mt-system.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