«Все в одном», или Что нового в GSM-модуле SIM900
Рынок М2М-электроники достаточно обширен. Наиболее часто GSM-модули применяются в системах телеметрии объектов энергоресурсов, мониторинга автотранспорта, контрольно-кассовых аппаратах, платежных терминалах, охранных системах и устройствах (рис. 1).
На смену GSM-модулям серии SIM300, хорошо знакомой отечественным разработчикам М2М-оборудования и снятой с производства в 2010 г., компания SIMCom выпустила линейку SIM900, представленную моделями SIM900, SIM900R, SIM900D, SIM900B, SIM900TE-C и SIM908. Синтаксис системы команд серии SIM900 сохранил преемственность, и подавляющая часть АТ-команд совпадает с командами SIM300. Все модули серии SIM900 построены на одной аппаратно-программной платформе и обладают схожими характеристиками и набором стандартных функций, таких как голосовые соединения, CSD-звонки, SMS, подключение к сети GPRS class 10B, CMUX и т. д. Также модули поддерживают обширный набор проприетарных АТ-команд для работы со встроенным TCP/IP-стеком и более тонкой настройки работы отдельных функций модуля.
Общие характеристики модулей серии SIM900:
- четыре диапазона GSM 850/900/1800/1900 МГц (900/1800 МГц для SIM900R);
- класс передачи данных GPRS multi-slot class 10/8;
- соответствие стандарту GSM фазы 2/2+;
- класс мощности 4 (2 Вт в диапазонах 850/900 МГц);
- класс мощности 1 (1 Вт в диапазонах 1800/1900 MГц);
- управление AT-командами (GSM 07.07, 07.05 и фирменные AT-команды SIMCom);
- аудиокодеки HR, FR, EFR, AMR, подавление эха;
- CSD до 14,4 кбит/с;
- PPP-стек;
- встроенный стек TCP/IP, UDP/IP;
- MUX (07.10);
- протоколы HTTP и FTP (кроме SIM900R);
- напряжение питания 3,2–4,8 В;
- диапазон рабочих температур –40…+85 °C (возможно незначительное отклонение радиочастотных характеристик от спецификации GSM при сохранении функциональной работоспособности).
Наиболее интересными модулями для новых разработок в серии SIM900 являются SIM900 и его pin-2-pin бюджетная версия SIM900R (рис. 2). Они выполнены в компактном и технологичном корпусе. Благодаря наличию торцевых контактов под пайку модули можно устанавливать при помощи как ручного, так и автоматизированного SMD-монтажа. Возможность ручного монтажа ускоряет процесс макетирования и не требует дорогостоящего рентген-контроля пайки контактов, как в случае с безвыводными элементами в форм-факторе LGA или BGA. Маленький размер модуля (24×24 мм) и наличие контактов со всех четырех сторон исключает вероятность непропая при монтаже в печи методом оплавления, поскольку максимально допустимый изгиб модуля (стандарт IPC-TM-650) не превышает и половины стандартной толщины (0,15 мм) трафарета для нанесения паяльной пасты.
Модули SIM900 и SIM900R имеют одинаковую схему расположения выводов (рис. 3), их функциональные отличия приведены в таблице.
P/N |
Память, Mбит |
Рабочая частота, МГц |
SIM900 |
64 |
Quad-Band (850/900/1800/1900) |
SIM900R |
32 |
Dual-Band (900/1800) |
Модуль SIM900R является оптимизированной модификацией модуля SIM900, с уменьшенной памятью программ и двухдиапазонным трансивером взамен четырехдиапазонного. В подавляющем числе приложений возможностей модуля SIM900R более чем достаточно, так как уменьшение объема памяти программ было осуществлено без ущерба для стандартного функционала. Однако уменьшенная память программ накладывает ограничение на возможность применения расширенных функций, которые были реализованы только в модуле SIM900 с программным обеспечением под условным названием All-In-One («все в одном»). Модули SIM900D, SIM900B, SIM900TE-C и SIM908 не поддерживают функции All-In-One.
Важно отметить, что все OEM-модули SIMCom имеют полное кодовое наименование (Part Number), которое однозначно указывает на аппаратную и программную версию. В данной статье уделено внимание расширенным функциям, которые были реализованы в модуле SIM900 (аппаратная версия S2-1040S-XXXXX, версия программного обеспечения 1137B0XSIM90064_ST_ENHANCE).
Программно-аппаратные ресурсы SIM900 достаточно хорошо развиты, благодаря чему привычный функционал GSM-модуля в All-In-One был существенно пополнен следующими новыми программными возможностями:
- GSM Location — определение координат местоположения по информации о базовых станциях.
- SSL — протокол защищенных сокетов для обеспечения безопасной передачи данных по сети.
- MMS — протокол мультимедийных сообщений.
- Jamming Detection — детектирование факта «глушения» GSM-канала.
- DTMF decoder — декодирование DTMF-тонов.
- EMAIL — почтовый протокол для передачи электронных писем.
- SMS Autorun — управление работой модуля посредством SMS.
- PING — функция запроса «эха» через Интернет для проверки доступности адресата.
- AMR Play — функция воспроизведения пользовательских аудио-файлов в динамик или в сторону удаленного абонента во время активного голосового соединения.
- 5MB User Memory — встроенная в модуль память для пользовательских данных.
- Easy Scan — функция получения информации об окружающих базовых станциях без подключения SIM-карты.
Применение этих дополнительных функций может не только принести экономическую выгоду, но и принципиально усовершенствовать потребительские качества конечного GSM-оборудования. Остановимся на каждой из дополнительных функций, реализованных в All-In-One.
GSM Location
Эта функция использует сервис Google и для работы требует наличия активной связи с Интернетом. Данные о текущей базовой станции (LAC и CellID) модуль SIM900 передает как входной параметр в сервис Google по протоколу HTTP, а в ответ получает координаты базовой станции. Все эти действия скрыты от пользователя и реализуются при помощи простой АТ-команды.
Поскольку этот метод использует данные лишь об одной базовой станции, координаты весьма не точны — до сотен метров, однако для некоторых приложений такой точности достаточно.
Ниже приведен пример АТ-лога для получения координат посредством модуля SIM900:
AT+SAPBR=3,1,"Contype","GPRS" // Настроить контекст OK AT+SAPBR=3,1,"APN","Internet" // Точка доступа OK AT+SAPBR=1,1 // Активировать контекст OK AT+SAPBR=2,1 +SAPBR: 1,1,"10.233.141.134" OK AT+CIPGSMLOC=1,1 // Получить координаты +CIPGSMLOC: 0,30.251547,59.909752,2012/08/16,14:43:23 OK AT+CIPGSMLOC=2,1 // Получить время +CIPGSMLOC: 0,2012/08/16,14:43:49 OK AT+SAPBR=0,1 // Деактивировать контекст OK
SSL
Secure Socket Layer (SSL) — протокол, предназначенный для защищенного обмена данными по протоколу HTTP, который в модуле SIM900 по умолчанию работает в незащищенном режиме. Как применять незащищенный протокол HTTP, описано в документе [4]. Для того чтобы включить режим защищенной передачи данных, достаточно подать одну АТ-команду:
AT+HTTPSSL=1 // Включить протокол SSL для HTTP OK
MMS
Протокол обмена мультимедийными сообщениями (MMS), поддерживаемый практически всеми операторами сотовой связи, хорошо известен пользователям мобильных телефонов. На практике эта функция в системах М2М может применяться для передачи фотографий с удаленных объектов на мобильные телефоны или на электронные адреса почтовых ящиков.
Применение MMS-протокола в All-In-One ускоряет процесс разработки устройства, поддерживающего передачу мультимедийных сообщений, а также упрощает требования к производительности управляющего микроконтроллера. В конечном итоге разработчику требуется лишь освоить простой набор АТ-команд, приведенный в документе [3]. Простой пример отправки сообщения приведен ниже:
AT+CMMSINIT // Инициализация функции MMS OK AT+CMMSCURL="mms.xxxxx.ru" // URL-адрес MMS-центра OK AT+CMMSCID=1 // Задать идентификатор контекста OK AT+CMMSPROTO="xxx.xxx.xxx.xxx",yy // Задать IP-адрес и порт MMS-прокси OK AT+CMMSSENDCFG=6,3,0,0,2,4 // Задать параметры пакетов PDU OK AT+SAPBR=3,1,"Contype","GPRS" // Настроить контекст OK AT+SAPBR=3,1,"APN","Internet" // Точка доступа OK AT+SAPBR=1,1 // Активировать контекст OK AT+SAPBR=2,1 +SAPBR: 1,1,"10.233.141.134" OK AT+CMMSEDIT=1 // Включить режим редактирования MMS-сообщения OK AT+CMMSDOWN="PIC",14236,20000 / Загрузить рисунок размером 14236 байт, тайм-аут 20 секунд CONNECT // Модуль готов принять данные … // Загрузка фотографии в модуль OK // Фотография загружена AT+CMMSDOWN="TITLE",3,5000 // Задать заголовок, 3 байта CONNECT // Модуль готов принять данные … OK AT+CMMSDOWN="TEXT",5,5000 // Задать тело сообщения, 5 байт CONNECT // Модуль готов принять данные … OK AT+CMMSRECP="XXXXXXXXXXX" // Задать получателя OK AT+CMMSCC="batuev.b@mt-system.ru" // Задать получателя копии OK AT+CMMSBCC="YYYYYYYYYYYY" // Задать скрытого получателя OK AT+CMMSSEND // Послать MMS-сообщение … // идет посылка, порт не активен OK AT+CMMSEDIT=0 // Выйти из режима редактирования MMS-сообщения OK AT+SAPBR=0,1 // Деактивировать контекст OK
Jamming Detection
Данная функция может быть полезна для охранно-поисковых систем в целях противодействия преднамеренному глушению GSM-канала. Ее работа достаточно проста: в зависимости от настройки модуль сообщит о факте глушения посредством сообщения через UART-порт
и/или посредством изменения состояния вывода GPIO-модуля.
Ниже приведен пример того, как включить и настроить режим определения глушения:
AT+SJDR=1,1 // Включить Jamming Detection OK +SJDR: NO JAMMING // Периодическое сообщение о состоянии +SJDR: NO JAMMING … +SJDR: NO JAMMING +SJDR: NO JAMMING AT+SJDR=0 // Отключить Jamming Detection OK
DTMF Decoder
Функция декодирования DTMF-тонов (Dual-Tone Multi-Frequency) применяется для удаленного управления GSM-устройством — например, для запуска двигателя автомобиля с мобильного телефона при установлении голосового соединения. Обычно декодирование тонов реализуется при помощи внешнего кодека, подключаемого к аналоговому выходу GSM-модуля, однако встроенная в SIM900 функция DTMF Decoder избавляет от необходимости устанавливать в схему дорогостоящий дополнительный элемент.
Работа этой функции регулируется при помощи простой AT-команды:
AT+DDET=1 // Включить функцию DTMF-декодирования OK ATDXXXXXXXXXXX; // Установить голосовое соединение OK +DTMF:2 // Удаленная сторона жмет на клавиши мобильного телефона +DTMF:8 +DTMF:8 +DTMF:4 +DTMF:5 +DTMF:2 NO CARRIER // Голосовое соединение завершено
Протокол обмена почтовыми сообщениями позволяет посылать и принимать электронные письма. В них можно добавлять вложения в виде файлов, устанавливать получателя копии, а также скрытого получателя. Подобная функция может быть полезна, например, для рассылки телеметрических данных в виде привычных электронных писем, во вложении которых могут быть как таблицы, так и фотографии с объектов.
Ниже приведен пример простого АТ-лога для посылки электронного письма без вложения:
AT+SAPBR=3,1,"Contype","GPRS" // Настроить контекст OK AT+SAPBR=3,1,"APN","Internet" // Точка доступа OK AT+SAPBR=1,1 // Активировать контекст OK AT+SAPBR=2,1 +SAPBR: 1,1,"10.234.209.14" OK AT+EMAILCID=1 // Использовать контекст #1 OK AT+EMAILTO=30 // Установить тайм-аут 30 секунд OK AT+SMTPSRV="MAIL.XXX.RU",25 // Почтовый сервер OK AT+SMTPAUTH=1,"YYY","ZZZ" // Имя и пароль OK AT+SMTPFROM="FromName@somemail.ru","FromName" // Указать отправителя OK AT+SMTPRCPT=0,0,"batuev.b@mt-system.ru","Bator" // Указать получателя OK AT+SMTPRCPT=1,0,"sulimov.c@mt-system.ru","Kirill" // Указать получателя копии OK AT+SMTPRCPT=2,0,"anikin.a@mt-system.ru","Alex" // Указать скрытого получателя OK AT+SMTPSUB="Test" // Тема письма OK AT+SMTPBODY // Текст письма > Hi, this is the test! OK AT+SMTPSEND // Отправить письмо OK +SMTPSEND: 1 // Письмо доставлено AT+SAPBR=0,1 // Деактивировать контекст OK
SMS Autorun
Эта функция позволяет реализовать в конечном устройстве удаленную настройку и диагностику. SMS Autorun позволяет исполнять АТ-команды, принятые модулем в SMS-сообщении. Так, пользователю открывается возможность управлять работой модуля SIM900 в момент, когда оборудование находится на объекте. Это может избавить от необходимости производить демонтаж оборудования для последующей его настройки на стороне производителя и позволит сэкономить деньги и время.
Ниже приведен пример работы функции SMS Autorun.
Сторона А — исполнитель АТ-команд, принятых в SMS:
AT+CAUTORUN=1," XXXXXXXXX " // Включить функцию OK Сторона В — отправитель АТ-команд в SMS: AT+CMGS="XXXXXXXXX" // Абонентский номер стороны А > AT+CSQ +CMGS: 78 OK Сторона А — исполнитель АТ-команд, принятых в SMS: +CMTI: "SM",15 // Принято SMS Сторона В — отправитель АТ-команд в SMS: +CMTI: "SM",1 // Принято ответное SMS с результатом исполнения АТ-команды AT+CMGR=1 +CMGR: "REC UNREAD"," XXXXXXXXX","","12/08/14",14:27:10+3" +CSQ: 21,0 // Результат полученный от стороны А OK OK
PING
Часто при работе с TCP/IP-сервером требуется определить скорость прохождения пакетов данных, чтобы судить о качестве текущего соединения. В обычных IP-сетях это делается стандартной утилитой PING, посылающей запрос «эха» ICMP. При подключении к серверу посредством стандартного GSM-модуля многие реализуют аналогичную функцию на верхнем уровне протокола TCP/IP, посылая некие фиктивные запросы на сервер и ожидая ответ от него. Это не самый элегантный способ.
В программном обеспечении All-In-One функция PING была добавлена в виде простых АТ-команд. Она позволяет узнать время отклика, а также может применяться для поддержания открытой сессии в активном состоянии, что полезно, учитывая, что операторы сотовой связи освобождают занятые слоты, если по ним не наблюдается никакой активности. Кроме того, расширенные АТ-команды позволяют настроить реакцию модуля на входящие IP-пакеты — отвечать на PING-запросы или нет.
Ниже приведен пример запроса времени отклика:
AT+CGATT? // Проверить подключение к сервису GPRS +CGATT: 1 OK AT+CSTT="internet" // Настроить точку доступа OK AT+CIICR // Установить GPRS-соединение OK AT+CIFSR // Получить локальный IP-адрес 10.129.58.139 AT+CIPPING="www.mt-system.ru" // Запросить время отклика от сайта МТ-Систем +CIPPING: 1,"77.221.155.92",6,51 // 600 мс +CIPPING: 2,"77.221.155.92",4,51 // 400 мс +CIPPING: 3,"77.221.155.92",4,51 // 400 мс +CIPPING: 4,"77.221.155.92",5,51 // 500 мс OK
AMR Play
Данная функция весьма интересна своей простотой применения одновременно с уникальной возможностью воспроизводить пользовательские аудиозаписи из памяти самого модуля. При помощи AMR Play пользователь может просто и без лишних затрат организовать в своем устройстве функцию голосового меню или автоответчика.
Аудиозаписи могут быть воспроизведены как в динамик, так и в сторону удаленного абонента во время активного голосового соединения. Пользователь должен предварительно поместить аудиофайлы в память модуля в формате .amr. При минимальных размерах качество таких аудиозаписей достаточно хорошее и не накладывает ограничений на распознаваемость человеческой речи. Память модуля рассчитана максимум на 100 аудиозаписей размером до 60 кбайт (примерно до 60 с) каждая. При этом общий размер всех таких записей не должен превышать 1 Мбайт.
Пример записи с последующим воспроизведением приведен в АТ-логе:
AT+CFSINIT // Инициализировать файловую систему OK AT+CFSWFILE="001.amr",0,14342,30000 // Записать файл "001.amr" размером 14342, тайм-аут записи 30 секунд OK …….. // Посылка файла в модуль AT+CFSTERM // Прекратить работу с файловой системой OK AT+CPAMR="001.amr",1 // Воспроизвести файл в динамик OK ATDXXXXXXXXXXX; // Установить голосовое соединение OK AT+CPAMR="001.amr",0 // Воспроизвести файл в сторону удаленного абонента OK ATH // Разорвать голосовое соединение OK
2.5MB User Memory
Любое М2М-оборудование в своем устройстве имеет некое хранилище данных разнородного формата. Для этих целей обычно в электрическую схему добавляют микросхему памяти объемом в несколько мегабайт. Это не всегда удобно, поскольку требует дополнительных интерфейсных выводов на микроконтроллере, выделения места на печатной плате и, кроме всего прочего, микросхема стоит денег.
Разработчики программного обеспечения All-In-One предусмотрели на этот случай функцию под названием 2.5MB User Memory (рис. 4), смысл которой заключается в том, что для хранения пользовательских данных во Flash-памяти модуля выделяется сектор, доступный для чтения и записи произвольных данных. Пользователю доступно 2,5 Мбайт.
Более подробную информацию по применению можно получить в соответствующем руководстве [3].
Easy Scan
В некоторых приложениях требуется наличие в GSM-устройстве двух и более SIM-карт от разных операторов. Это необходимо и обязательно для устройств охранного назначения, чтобы обеспечить альтернативные каналы передачи тревожных сигналов, если, к примеру, сеть одного оператора временно неработоспособна.
Модуль SIM900 с программным обеспечением All-In-One позволяет производить сканирование РЭО и предоставлять информацию о наличии сети того или иного оператора. При этом для сканирования сети не требуется, чтобы к модулю SIM900 была подключена SIM-карта. Используя сканирование, GSM-устройство при включении сможет оценить, к сети какого оператора необходимо подключиться в первую очередь, выбрав ту, у которой уровень сигнала на данный момент будет максимальным. Так время регистрации в сети с последующей передачей тревожного сигнала будет сведено к минимуму.
Данная функция реализована в виде простой АТ-команды:
AT+CNETSCAN // Запустить сканирование ------MOST SUITABLE CELL------ Operator:"Beeline",MCC:250,MNC:99,Rxlev:58,Cellid:43dc,Arfcn:0608 Operator:"Beeline",MCC:250,MNC:99,Rxlev:32,Cellid:43dd,Arfcn:0593 Operator:"Beeline",MCC:250,MNC:99,Rxlev:45,Cellid:43db,Arfcn:0639 Operator:"Beeline",MCC:250,MNC:99,Rxlev:39,Cellid:4351,Arfcn:0634 Operator:"Beeline",MCC:250,MNC:99,Rxlev:37,Cellid:ffff,Arfcn:0596 Operator:"Beeline",MCC:250,MNC:99,Rxlev:25,Cellid:43f0,Arfcn:0645 Operator:"Beeline",MCC:250,MNC:99,Rxlev:25,Cellid:42b0,Arfcn:0648 Operator:"Beeline",MCC:250,MNC:99,Rxlev:21,Cellid:ffff,Arfcn:0632 Operator:"Beeline",MCC:250,MNC:99,Rxlev:40,Cellid:4353,Arfcn:0086 Operator:"Beeline",MCC:250,MNC:99,Rxlev:38,Cellid:4355,Arfcn:0070 Operator:"Beeline",MCC:250,MNC:99,Rxlev:31,Cellid:ffff,Arfcn:0080 Operator:"Beeline",MCC:250,MNC:99,Rxlev:24,Cellid:434a,Arfcn:0069 ------OTHER SUITABLE CELL------ Operator:"MTS-RUS",MCC:250,MNC:1,Rxlev:29,Cellid:3d62,Arfcn:0775 Operator:"MTS-RUS",MCC:250,MNC:1,Rxlev:42,Cellid:ffff,Arfcn:0768 Operator:"MTS-RUS",MCC:250,MNC:1,Rxlev:45,Cellid:3d5f,Arfcn:0049 Operator:"MegaFon RUS",MCC:250,MNC:2,Rxlev:39,Cellid:18cc,Arfcn:0106 Operator:"MTS-RUS",MCC:250,MNC:1,Rxlev:36,Cellid:05cb,Arfcn:0056 Operator:"MTS-RUS",MCC:250,MNC:1,Rxlev:36,Cellid:ffff,Arfcn:1018 Operator:"MegaFon RUS",MCC:250,MNC:2,Rxlev:34,Cellid:4713,Arfcn:0123 Operator:"MegaFon RUS",MCC:250,MNC:2,Rxlev:33,Cellid:3385,Arfcn:0012 Operator:"MegaFon RUS",MCC:250,MNC:2,Rxlev:32,Cellid:ffff,Arfcn:0023 Operator:"MegaFon RUS",MCC:250,MNC:2,Rxlev:31,Cellid:46f3,Arfcn:0100 Operator:"MTS-RUS",MCC:250,MNC:1,Rxlev:29,Cellid:ffff,Arfcn:0028 Operator:"MTS-RUS",MCC:250,MNC:1,Rxlev:34,Cellid:ffff,Arfcn:0027 Operator:"MTS-RUS",MCC:250,MNC:1,Rxlev:28,Cellid:4ba2,Arfcn:0053 Operator:"MTS-RUS",MCC:250,MNC:1,Rxlev:28,Cellid:ffff,Arfcn:1016 Operator:"MegaFon RUS",MCC:250,MNC:2,Rxlev:28,Cellid:ffff,Arfcn:0006 Operator:"MTS-RUS",MCC:250,MNC:1,Rxlev:28,Cellid:2b19,Arfcn:0032 Operator:"MegaFon RUS",MCC:250,MNC:2,Rxlev:26,Cellid:4712,Arfcn:0102 Operator:"MTS-RUS",MCC:250,MNC:1,Rxlev:26,Cellid:ffff,Arfcn:0030 OK
Программное обеспечение All-In-One является значительным шагом навстречу разработчикам GSM-оборудования и позволяет быстро и без лишних затрат реализовать действительно интересный функционал, который, в свою очередь, повысит конкурентоспособность конечного устройства на рынке.
Разработчики GSM-оборудования могут ознакомиться с новыми функциями модуля SIM900 на отладочном комплекте SIM900EVB KIT + SIM900TE (рис. 5).
Если модуль SIM900 (парт-номер, начинающийся на S2-1040S-) уже есть в наличии, его можно перепрограммировать и протестировать в рамках существующего дизайна устройства. Программное обеспечение с функциями All-In-One можно получить по запросу в службе технической поддержки компании «МТ-Систем», официального дистрибьютора SIMCom в России [5].
- sim.com
- http://www.mt-system.ru/catalog/linejka-modemov-i-terminalov /ссылка утеряна/
- http://www.mt-system.ru/catalog/dokumentacija-na-gsm-modemy-simcom
- http://www.mt-system.ru/sites/default/files/docs/documents/sim900_ip_application%20note_v1.02.pdf
- mt-system.ru