GSM модем Siemens MC35i

GSM модемы различных конфигураций в наше время очень распространены. Свое применение они нашли в различных терминалах, сигнализациях, средствах удалённого контроля и автоматизации.

Модем Siemens MC35i

Модем Siemens MC35i

Такие модемы можно разделить на 3 группы: USB модемы для выхода в Интернет, встраиваемые модемы и готовые внешние модемы. С первыми всё понятно, мобильный Интернет уже давно начал вливаться в нашу жизнь. Встраиваемые модемы представляют из себя плату со специализированными разъёмами для подключения к управляющему контроллеру или может не иметь этих разъемов вовсе, а припаиваться к плате.

Модем motorola h24

Модем motorola h24

Готовые модули отличаются от встраиваемых тем, что они содержат в себе всю необходимую обвязку и могут сопрягаться с компьютером или контроллерам по средствам распространённых интерфейсов (RS-232, USB). Но за удобство приходиться платить – стоимость у внешних модемов выше встраиваемых примерно в 2 раза.

В этой статье речь пойдёт о готовом модуле Siemens MC35i. Хоть он уже и устарел, но с функциями приёма и отправки СМС и голосовой связи он вполне справляется.

Как правило, GSM модемы (готовые и встраиваемые) сопрягаются по средствам RS-232 порта (USART – встраиваемые модули или через виртуальный COM порт при использование USB). Общение с модулем производиться по средствам AT команд. Базовая часть таких команд одинаковая для всех модулей, часть команд у каждого модуля своя. Т.к. мой модуль старенький и не обладает различными наворотами, то нас в нём будут интересовать только базовые функции, других то и нет.

Отправка и приём СМС сообщений может происходить в двух режимах: текстовый и PDU. Выбранный ержим так же распространяется на USSD ответы. Для переключения модуля между текстовым и PDU режимами существует специальная команда — AT+CMGF=1 (0-PDU, 1-текстовый). В текстовом режиме модуль нормально поддерживает только английский язык, русский доступен в юникоде или в PDU режиме.

Модуль полностью автономный, как сотовый телефон. После включения он автоматически найдёт всех доступных операторов, и подключиться к своему. Будет поддерживать связь. По приходу сообщения или звонка, он информирует соответствующим сообщением. Для совершения звонка или отправки сообщения достаточно одной команды.

Перейдём к базовому списку AT команд:

Команда
Ответ
Описание
AT^SMSO ^SMSO: MS OFF
OK
^SHUTDOWN
Выключение модема
AT+CLIP=1 OK Включение АОН
AT+CMGF=1 OK Включение текстового режима
ATE0 OK Эхо 0 – выкл., 1 – вкл. (по умолчанию)
Информационные команды
AT+CGMI SIEMENS
OK
Идентификатор производителя
AT+CGMM MC35i
OK
Идентификатор модели
AT+CGMR REVISION 01.03
OK
Версия прошивки
AT+CGSN XXXXXXXXXXXXXXX
OK
IMEI модуля
AT+COPS? +COPS: 0,0,"MegaFon"
OK
Информация об операторе
AT+CPAS +CPAS: 0
OK
Информация об состояние телефона
AT+CSQ +CSQ: 13,99
OK
Уровень сигнала
AT+CCLK? +CCLK: "02/01/01,00:04:58" Текущее время
AT+CREG? +CREG: 0,1
OK
Тип регистрации в сети
Звонок
ATA BUSY Ответить на звонок
ATH0 NO CARRIER Повесить трубку
ATD+7XXXXXXXXXX; BUSY
RING
Звонок
СМС
AT+CMGS="+7XXXXXXXXXX "
> test
>
+CMGS: 87
OK
Отправка СМС (Ctrl+Z = 26 (ACII))
AT+CMGL ++CM+CMGL: 2,"REC UNREAD","+7XXXXXXXXXX",,
"11/04/02,22:13:04+24"
Послание в PDU формате
OK
Чтение списка СМС
AT+CMGR=1 +CMGR: "REC READ","+7XXXXXXXXXX",,"
11/03/29,22:36:07+24"
Test
OK
Чтение первой СМС
USSD запросы
AT+CUSD=1,"*100#" OK
+CUSD: 2,"
04110430043B0430043D0441003A002000310039
0030002C003900350020044004430431002E",72
Отправка USSD запроса и ответ в UTF-16BE кодировке

Рассмотрим некоторые команды поподробнее.

Выключать модем конечно можно по питанию, но более правильно будет предварительно послать соответствующею команду — AT^SMSO, что бы модуль разрегистрировался в сети оператора.

Что бы проверить подключен ли модуль – достаточно послать команду AT, на которую он ответить OK если всё в порядке. Для получения более подробной информации есть специальные команды.

AT+CPAS – возвращает текущее состояние модема:

  • 0 — готов к работе
  • 1 — недоступен
  • 2 — неизвестно
  • 3 — дозвон (звонок активен)
  • 4 — в режиме соединения
  • 5 — в спящем режиме

Для получения информации об операторе, команда – AT+COPS?. Она возвращает 3 значения: 0,0,"MegaFon" , первый ноль сообщает об автоматическом выборе сети, второй – длинный текстовый формат имени и третье возвращаемое значение – оператор. При запросе AT+COPS=? – модем выдаст всех доступных операторов.

Об уровне сигнала расскажет команда — AT+CSQ. Возвращает 2 числа: первое от 0 до 31, что свидетельствует о уровне сигнала и 99 о его отсутствии, второе значение RXQUAL (качество сигнала получаемое из процентного количества ошибок связи), которое лежит в интервале от 0 до 7.

Для совершения звонка потребуется команда — ATD+7XXXXXXXXXX; (где +7XXXXXXXXXX – номер телефон), в ответ придёт одно из следующих сообщений:

  • BUSY — номер занят
  • NO DIALTONE – нет сигнала на линии
  • NO CARRIER — неудачная попытка установить связь
  • NA ANSWER — абонент не отвечает
  • CONNECT — успешное соединение

Для ответа на входящий звонок предназначена команда — ATA. Повесить трубку — ATH0.

Отправка СМС производиться командой AT+CMGS="+7XXXXXXXXXX ", далее модуль приглашением > попросит ввести текс сообщения. В завершение сообщения нужно будет отправить символ Ctrl+Z (26 код в ACII). Таким способом можно отправлять сообщения в текстовом режиме (включается командой AT+CMGF=1), к сожалению этот режим не поддерживает кириллицу.

Чтение списка сообщений команда — AT+CMGL.Для выбора конкретного из списка служит команда AT+CMGR=1. С включенным текстовым режимом СМС сообщения на английском языке будут отображаться нормально, а СМС с русскими символами будут отображаться в кодировке UTF-16BE.

В статье была приведена только малая часть команд для работы с модемом, за более подробным списком нужно обращаться к документации на ваш модем.

Способы приёма и отправки СМС в русской кодировки и в PDU режиме будут рассмотрены в следующих статьях.

При написании статьи использовались следующие материалы:

  • Ссылка на встраиваемый модем, фото которого присутствует в статье – http://elegma.ru/unit/3g-модем-motorola-h24elegma.ru
  • Книжка по AT-командам
    Руководство по использованию AT-команд для разработчиков телекоммуникационного оборудования. Пер. с англ. – М.: Серия «Библиотека Компэла». ЭАО «Компэл», 2005.-432 с.
  • Форум по GSM модемам — http://www.edgemodem.ru/forum/index.php

За предоставленный модуль и книжку выражаю благодарность УРТК им. А.С.Попова.

8 комментариев »

Alex_EXE | 15.05.2011 | Связь |

8 комментариев на « GSM модем Siemens MC35i»

  1. Айрат пишет 19.04.2013 в 15:44 #

    Очень пригодилось. Спасибо!

  2. Анатолий пишет 16.07.2013 в 12:13 #

    Подскажите. Может ли этот модем соединиться с другим телефоном и проиграть заранее записанный файл ( Что-то типа автоинформатора ) ? Или он может передавать только сигнал полученый, через аналоговый канал в реальном времени? Заранее спасибо.

  3. Alex_EXE пишет 23.07.2013 в 21:29 #

    Как соединится? если имеете ввиду позвонить — то у этого модема есть аналоговый вход и выход.
    Куда записанный файл? в него что-либо записать врят ли, если он записан на сторонний носитель, например ISD1400 или mp3 проигрыватель — то да.

    Основное назначение подобных модемов — удаленные GSM терминалы, для сигнализации, оповещения, мониторинга, управления… каких-либо сигнализаций, систем, объектов… по средством уведомления/управления по CMC и через интернет.

  4. Alexs622 пишет 01.01.2014 в 12:26 #

    Здравствуйте у меня несколько вопросов.
    1) Siemens MC35i и Cinterion MC52iT это одно и тоже?
    2) А какая команда для определения номера входящего телефона?
    3) Как осуществить прием СМС? Команду AT+CMGR=1 поместить в таймер

  5. Alex_EXE пишет 04.01.2014 в 12:01 #

    1. не имел дело со вторыми
    2. при звонке, кажется, сам пишет, если нет — то нужно включить АОН AT командой, какой — описано в статье.
    3. При приходе СМС уведомляет об этом. Детектируем пришедшую СМС и только после уже читаем её.

  6. Виталий пишет 13.10.2014 в 10:13 #

    Спасибо за статью. Появился вопрос по поводу отправленных смс-сообщений, которые хранятся в памяти сим-карты. Что будет если закончится память на сим карте для отправленных смс-сообщений? Они начнут записываться поверх старых? С принятыми при заполнении памяти прекращается приём смс-сообщений(и поэтому в программе для контроллера(который управляет gsm-модемом) необходимо предусмотреть чистку памяти принятых смс), а вот с отправленными непонятно, на практике не удалось выявить ответа на этот вопрос. В даташите на модем нашёл только AT-команды для удаления принятых смс-сообщений.

  7. zumm пишет 16.09.2016 в 02:05 #

    Знаю, статейка старенькая, но гуглится одной из первых. Потому, думаю, не помешает подискутировать и здесь.

    С этим модулем (MC35i) есть некоторые проблемы по части USSD. И проблемы эти проявляются по разному в зависимости от SIM-карты. Пока мне встречалось такое (модем используется один и тот же, настройки тоже, разные только SIM-карты):

    1. Все хорошо
    -->AT+CUSD=1,"*100#",15
    <--OK
    ...
    <--+CUSD: 2,"UTF16BE",72

    2. Не поддерживаются DCS ответа отличная от 15 (тут может помочь запрос ответа в латинице, но не все USSD поддерживают такое)
    -->AT+CUSD=1,"*100#",15
    <--OK
    ...
    <--ERROR
    -->AT+CUSD=1,"#100#",15
    <--OK
    ...
    <--+CUSD: 2,"ASCII",15

    3. CUSD вообще не поддерживается (тут может помочь команда ATD)
    -->AT+CUSD=1,"#100#",15
    <--OK
    ...
    <--ERROR
    -->ATD"*100#";
    <--OK
    ...
    <--+CUSD: 2,"UTF16BE",72

    4. CUSD не поддерживается, а ATD поддерживается частично
    -->ATD"*111*38#";
    <--OK
    ...
    <--+CUSD: 1,"UTF16BE",72
    <-->
    -->2<CTRL+Z>
    <--OK
    ...
    <--ERROR

    Как видно, проблема всегда возникает с разбором ответа от оператора. В основном код ошибки или "+CME ERROR: operation not supported", реже "+CME ERROR: ss not executed" или "+CME ERROR: unknown". Частенько это все разбавляется периодическими ошибками модема (когда на команду место OK сразу приходит ERROR, еще до отправки USSD запроса оператору), но это, как я думаю, к основной проблеме не относится.

    При этом, в обычном телефоне все эти SIM-карты работают нормально и запросы выполняются нормально.

    Вот здесь — http://stackoverflow.com/questions/19016004/at-ussd-command-with-siemens-tc35-working-depending-on-the-country
    Очень скудно обсуждается похожая проблема, только с другими модулями. Автор в конце говорит, что корни проблемы в том, что его модем не поддерживает "64k sim" и на этом завершает дискуссию. Как я понял, речь идет о новых картах с расширенной памятью.

    Это очень похоже на правду, так как в последнее время эта проблема стала встречаться все чаще. А разное поведение может быть обусловлено разными типами карт (к примеру, сейчас уже есть 128k sim).
    Пока что я не выяснил, как можно проверить тип карты и можно ли это сделать вообще, потому теорию проверить не могу. Но если это действительно так, то можно ли что-то сделать? Возможно, поможет обновление прошивки модуля? Сейчас у меня ревизия 02.00. На сайте http://mc35i.ru/ есть ссылки на гайды по обновлению прошивки, но ссылки битые. Так что я пока пытаюсь найти эти гайды в другом месте.

    В общем, кто-то еще сталкивался с такой проблемой? К чему пришли в итоге?

  8. Alex_EXE пишет 20.09.2016 в 04:06 #

    zumm, спасибо за информацию.

Комментарии RSS

Оставьте отзыв