GSM модем Siemens MC35i
GSM модемы различных конфигураций в наше время очень распространены. Свое применение они нашли в различных терминалах, сигнализациях, средствах удалённого контроля и автоматизации.
Модем Siemens MC35i
Такие модемы можно разделить на 3 группы: USB модемы для выхода в Интернет, встраиваемые модемы и готовые внешние модемы. С первыми всё понятно, мобильный Интернет уже давно начал вливаться в нашу жизнь. Встраиваемые модемы представляют из себя плату со специализированными разъёмами для подключения к управляющему контроллеру или может не иметь этих разъемов вовсе, а припаиваться к плате.
Модем 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 |
Чтение первой СМС |
|
||
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
За предоставленный модуль и книжку выражаю благодарность УРТК им. А.С.Попова.
Alex_EXE | 15.05.2011 | Связь |
Айрат пишет 19.04.2013 в 15:44 #
Очень пригодилось. Спасибо!
Анатолий пишет 16.07.2013 в 12:13 #
Подскажите. Может ли этот модем соединиться с другим телефоном и проиграть заранее записанный файл ( Что-то типа автоинформатора ) ? Или он может передавать только сигнал полученый, через аналоговый канал в реальном времени? Заранее спасибо.
Alex_EXE пишет 23.07.2013 в 21:29 #
Как соединится? если имеете ввиду позвонить — то у этого модема есть аналоговый вход и выход.
Куда записанный файл? в него что-либо записать врят ли, если он записан на сторонний носитель, например ISD1400 или mp3 проигрыватель — то да.
Основное назначение подобных модемов — удаленные GSM терминалы, для сигнализации, оповещения, мониторинга, управления… каких-либо сигнализаций, систем, объектов… по средством уведомления/управления по CMC и через интернет.
Alexs622 пишет 01.01.2014 в 12:26 #
Здравствуйте у меня несколько вопросов.
1) Siemens MC35i и Cinterion MC52iT это одно и тоже?
2) А какая команда для определения номера входящего телефона?
3) Как осуществить прием СМС? Команду AT+CMGR=1 поместить в таймер
Alex_EXE пишет 04.01.2014 в 12:01 #
1. не имел дело со вторыми
2. при звонке, кажется, сам пишет, если нет — то нужно включить АОН AT командой, какой — описано в статье.
3. При приходе СМС уведомляет об этом. Детектируем пришедшую СМС и только после уже читаем её.
Виталий пишет 13.10.2014 в 10:13 #
Спасибо за статью. Появился вопрос по поводу отправленных смс-сообщений, которые хранятся в памяти сим-карты. Что будет если закончится память на сим карте для отправленных смс-сообщений? Они начнут записываться поверх старых? С принятыми при заполнении памяти прекращается приём смс-сообщений(и поэтому в программе для контроллера(который управляет gsm-модемом) необходимо предусмотреть чистку памяти принятых смс), а вот с отправленными непонятно, на практике не удалось выявить ответа на этот вопрос. В даташите на модем нашёл только AT-команды для удаления принятых смс-сообщений.
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/ есть ссылки на гайды по обновлению прошивки, но ссылки битые. Так что я пока пытаюсь найти эти гайды в другом месте.
В общем, кто-то еще сталкивался с такой проблемой? К чему пришли в итоге?
Alex_EXE пишет 20.09.2016 в 04:06 #
zumm, спасибо за информацию.