GSM/GPRS SHIELD A6 и GSM/GPRS SHIELD A9 подключаются по шине UART и способны выполнять AT-команды. AT-команда это строка начинающаяся с букв «AT» (от английского attention — «внимание»). Shield выполняет поступившую команду и отправляет обратно ответ (результат выполнения команды), который также является строкой. В GSM/GPRS SHIELD каждая команда (как и ответ) должна заканчиваться символами перевода строки «rn».
Подключение:
- GSM/GPRS Shield A6 устанавливается на Arduino и использует следующие её выводы: «TX» (D0 или D7), «RX» (D1 или D8), «PWR» (D9), GND, 3V3, «Vcc» (5V или Vin).
- GSM/GPRS Shield A9 устанавливается на Arduino и использует следующие её выводы: «TX» (D0 или D8), «RX» (D1 или D9), «PWR» (D7), GND, «Vcc» (5V или Vin).
- Shield позволяет использовать как аппаратную так и программную реализацию шины UART Arduino. Если переключатель на плате shield находится в положении «TX-0/RX-1», то используется аппаратная шина, выводы D0 (RX Arduino, TX shield) и D1 (TX Arduino, RX shield). Если переключатель на плате shield находится в положении «TX-7/RX8», то используется программная шина, выводы D7 и (RX Arduino, TX shield) и D8 (TX Arduino, RX shield). Если переключатель на плате shield находится в положении «TX-8/RX9», то используется программная или аппаратная шина, выводы D8 и (RX Arduino, TX shield) и D9 (TX Arduino, RX shield).
Настройка:
GSM/GPRS Shield сможет принимать команды только если правильно настроены следующие параметры последовательного порта:
- Номер COM-порта: Его можно узнать экспериментально, отключите адаптер или Arduino, посмотрите какие COM-порты доступны. Подключите адаптер или Arduino и вновь посмотрите какие порты доступны. Появившийся COM-порт и есть тот самый.
- Скорость передачи данных: По умолчанию скорость передачи данных shield равна 115200 бит/сек, она должна совпадать со скоростью COM-порта. Если отправить в shield любые AT-команды на скорости COM-парта: 2400, 4800, 9600, 14400, 19200, 28800, 33600, 38400, 57600, 115200, 230400, 460800, 921600, 1843200, то получив 5 — 10 команд на одной скорости, shield автоматически переключится на эту скорость COM-порта. Скорость передачи данных shield можно явно указать командой ATZ+IPR=СКОРОСТЬ, например: ATZ+IPR=9600
- Параметры передачи данных: По умолчанию: количество бит в пакете — 8, размер стопового бита = 1, без проверки чётности.
- Передаваемый текст: В программе (на компьютере) нужно установить пункт «добавлять символ CR» это символ конца строки «r», а можно установить пункт «добавлять символы CR & LF(NL)» это символы перевода строки «rn» которые Вы не сможете ставить самостоятельно в конце AT-команд.
Для настройки этих параметров в программе Termite, нажмите на кнопку «Настройки» (Settings). В том же окне можно установить Русский язык.
При использовании Arduino, номер порта указывается во вкладке «Инструменты». Параметры передачи данных используются по умолчанию. Для добавления символов NL & CR воспользуйтесь меню в правом нижнем углу монитора последовательного порта.
Проверка:
Для проверки связи с GSM/GPRS Shield отправьте тестовую команду AT (введите текст AT и нажмите Enter). Если связь установлена корректно, то shield ответит OK. После этого можно отправлять остальные AT-команды.
Синтаксис AT-команд:
Если в программе терминал указано добавлять символы CR & LF или NL & CR то символы «rn» в командах ставить не нужно!
Команды можно писать следующим образом:
- AT+КОМАНДА=?rn — После команды указаны знаки =?
Данный синтаксис позволяет узнать какие параметры поддерживает команда.
В ответ Shield вернёт строку с указанием количества параметров поддерживаемых командой и диапазоном их значений (см. примеры ниже). - AT+КОМАНДА?rn — После команды указан знак ?
Данный синтаксис позволяет запросить текущие, действующие, значения (см. примеры ниже). - AT+КОМАНДА=ПАРАМЕТР(Ы)rn — После команды указан знак = и параметр(ы).
Данный синтаксис позволяет установить одно или несколько значений (см. примеры ниже). - AT+КОМАНДАrn — Команда отправлена без дополнительных знаков и параметров.
Синтаксис установки/запроса данных определяемых внутренними процессами модуля. - Если синтаксис команды неверен, то возвращается ERROR.
- Если синтаксис команды верен, но допущены ошибки в параметрах, то возвращается +CME ERROR или +CMS ERROR.
- Если команда выполнена успешно, то в большинстве случаев возвращается ОК.
Пример 1: (синтаксис команды с одним параметром)
- Для примера воспользуемся командой AT+CSCS — Установка/запрос набора символов.
- Узнаём какие параметры поддерживает команда:
- Команда: AT+CSCS=?rn
- Ответ: +CSCS: («GSM«,»HEX«,»PCCP936«,»UCS2«)rnOKrn
- Из ответа видно, что команда AT+CSCS содержит один параметр (так как в ответе одни скобки), который может принимать одно из четырёх значений: «GSM», «HEX», «PCCP936» или «UCS2».
- Узнаём какое значение используется в данный момент:
- Команда: AT+CSCS?rn
- Ответ: +CSCS: «PCCP936»rnOKrn
- Из ответа видно, что в данный момент используется набор символов «PCCP936».
- Устанавливаем новое значение:
- Команда: AT+CSCS=»GSM»rn
- Ответ: OKrn
- Из ответа OK, следует, что набор символов «GSM» успешно установлен и используется.
Пример 2: (синтаксис команды с двумя параметрами)
- Для примера воспользуемся командой AT+ICF — Установка/запрос параметров UART.
- Узнаём какие параметры поддерживает команда:
- Команда: AT+ICF=?rn
- Ответ: +ICF: (1-6),(0-3)rnOKrn
- Из ответа видно, что команда AT+ICF содержит два параметра (так как в ответе две скобки), первый может принимать значение от 1 до 6, а второй от 0 до 3.
- Узнаём какие значения используются в данный момент:
- Команда: AT+ICF?rn
- Ответ: +ICF: 3, 0rnOKrn
- Из ответа видно, что первый параметр равен 3, а второй 0. Согласно таблице основных AT-команд, это значит, что передача ведётся по 8 бит данных, используется 1 стоп бит, с проверкой нечётности.
- Устанавливаем новые значения:
- Команда: AT+ICF=2,3rn
- Ответ: OKrn
- Из ответа OK, следует, что новые параметры передачи данных успешно установлены (8 бит данных, 1 стоп бит, без проверки).
Используемые сокращения:
- GSM (Global System for Mobile communications) — глобальная система мобильной связи. Это стандарт цифровой мобильной сотовой связи, с разделением каналов по времени (TDMA) и частоте (FDMA).
- GPRS (General Packet Radio Service) — надстройка над GSM, осуществляющая пакетную передачу данных. GPRS позволяет пользователю сети обмениваться данными с другими устройствами в сети GSM и с внешними сетями, в том числе Интернет.
- TDMA (Time Division Multiple Access) — множественный доступ с разделением по времени. Это способ, когда в одном частотном диапазоне находятся несколько абонентов, разные абоненты используют разные временные интервалы (слоты) для передачи данных.
- FDMA (Frequency Division Multiple Access) — множественный доступ с разделением каналов по частоте. Это способ, когда в одном частотном диапазоне находится только один абонент, разные абоненты используют разные частоты в пределах соты.
- DTE (Data Terminal Equipment) — терминальное оборудование данных. Это оконечное устройство приёма/передачи данных (в данном случае компьютер или Arduino).
- DCE (Data Communication Equipment) — оборудование коммуникации данных. Это устройство осуществляющее связь, но не являющееся источником или конечным получателем данных (в данном случае это GSM/GPRS SHIELD).
- IMSI (International Mobile Subscriber Identity) — международный идентификатор мобильного абонента. Это индивидуальный номер абонента который в системе GSM хранится на SIM-карте. IMSI состоит из кода страны, кода оператора и номера MSIN. По этому номеру оператор сотовой связи определяет абонентов сопоставляя его с MSISDN (номером мобильного абонента) номером телефона.
- MSIN (Mobile Subscriber Identification Number) идентификатор пользователя, является частью IMSI.
- IMEI (International Mobile Equipment Identity) международный идентификатор мобильного оборудования. Это индивидуальный номер телефона.
- SIM (Subscriber Identification Module) модуль идентификации абонента.
- PIN (Personal Identification Number) персональный идентификационный номер. Это пароль CHV для доступа к некоторым функциям SIM.
- CHV (card holder verification) проверка держателя карты.
- PUK (Personal Unlocking Key) персональный разблокирующий ключ. Требуется после нескольких неудачных попыток ввода PIN.
- ISDN (Integrated Services Digital Network) — цифровая сеть с интеграцией служб для связи в стандартах GSM, UMTS и т.д. (такая сеть совмещает телефонную связь и обмен данными).
- MSISDN (Mobile Subscriber Integrated Services Digital Number) — номер мобильного абонента сети ISDN. Это тот номер к который мы называем номером телефона: +7(XXX)XXX-XX-XX.
- PLMN (Public Land Mobile Network) сеть связи общего пользования наземных мобильных объектов.
- DTMF (Dual-Tone Multi-Frequency) — двухтональный многочастотный аналоговый сигнал, используемый для набора телефонного номера.
- MCC (Mobile Country Code) — мобильный код страны (250 — Россия), в сочетании с MNC (Mobile Network Code) является уникальным цифровым идентификатором сотового оператора, например 25001 — MTS, 25002 — MegaFon, 25099 — Beeline.
- MNC (Mobile Network Code) — код мобильной сети в комбинации с MCC является уникальным идентификатором сотового оператора.
- SMS (Short Message Service) — служба коротких сообщений. Это технология, приёма / передачи коротких текстовых сообщений с помощью сотового телефона.
- USSD (Unstructured Supplementary Service Data) — сервис осуществляющий взаимодействие между абонентом сети и сервисным приложением в режиме передачи коротких сообщений. Например, для того, чтобы узнать баланс, нужно отправить USSD команду *100#.
- STK (SIM Tool Kit) — набор инструментов для SIM-карты. Это стандарт позволяющий приложениям SIM-карты получать доступ к функциям телефона. Часто STK используется для реализации сервиса SIM-меню.
- URC (Unsolicited Result Code) — незапрашиваемый код результата (незапрашиваемый ответ модуля). Код отправляемый DCE (модулем) по шине UART без запроса от DTE (Arduino). Например, при входящем голосовом вызове, DCE (модуль) отправляет код «RING».
- PDU (Packet Data Unit) — блок пакетной передачи данных. Это формат записи SMS сообщений.
- PPP (Point to Point Protocol) — двухточечный протокол установления связи между двумя узлами сети (связь точка — точка).
- PDP (Packet Data Protocol) — протокол пакетной передачи данных. Адреса PDP являются адресами сетевого уровня. PDP контекст является структурой данных содержащей информацию о сеансе абонента.
Примеры:
С примерами использования AT-команд можно ознакомиться на странице Wiki — примеры использования AT-команд.
Список AT-команд с кратким описанием:
Описание AT-команд переведено с первоисточника AT A6 V1.01.
- Основные AT-команды:
- AT — Проверка связи с shield.
- AT+CPOF — Выключение модуля.
- ATS0 — Установка/запрос количества гудков до автоответа.
- ATS3 — Установка/запрос кода символа конца командной строки.
- ATS4 — Установка/запрос кода символа начала командной строки.
- ATS5 — Установка/запрос кода символа backspace для командной строки.
- +++ — Переключение из режима (online) в командный режим (offline) режим AT-команд.
- ATO — Переключение из режима (offline) в режим данных (online), он же режим PPP.
- AT&F — Восстановить заводские настройки.
- ATV0 — Установить короткие заголовки и цифровые коды ответа.
- ATV1 — Установить полные заголовки и текстовые ответы (как в примерах данной статьи).
- ATE0 — Отключить эхо AT-команд.
- ATE1 — Включить эхо AT-команд.
- AT&W — Сохранить текущие настройки в EEPROM как пользовательский профиль.
- ATZ — Загрузить настройки из пользовательского профиля.
- ATQ0 — Разрешить передачу результирующих кодов.
- ATQ1 — Блокировать передачу результирующих кодов.
- ATX0 — Возвращать только код результата соединения.
- ATX1 — Возвращать код и текст результата соединения.
- ATX2 — Возвращать код и текст результата соединения, вкл. обнаружение тонального набора.
- ATX3 — Возвращать код и текст результата соединения, вкл. определение занятости.
- ATX4 — Возвращать код и текст результата соединения, вкл. обнаружение тонального и определение занятости.
- AT+CFUN — Установка набора функциональных возможностей.
- AT+CMEE — Установка/запрос формата вывода ошибок.
- AT+CSCS — Установка/запрос набора символов.
- AT+CMUX — Установка/запрос режима мультиплексирования.
- AT+ICF — Установка/запрос параметров передачи данных по шине UART.
- AT+IPR — Установка/запрос скорости передачи данных по шине UART.
- AT+GSN — Запрос серийного номера адаптера.
- AT+GMM (AT+CGMM) — Запрос модели адаптера (модуля).
- AT+GMR (AT+CGMR) — Запрос версии ПО адаптера (модуля).
- AT+GMI (AT+CGMI) — Запрос производителя адаптера (модуля).
- ATI — Запрос производителя, модели и версии адаптера (модуля).
- AT+CIMI — Запрос IMSI (код SIM карты).
- AT+EGMR — Установка/запрос IMEI (код устройства).
- AT+CALA — Установка/запрос списка будильников.
- AT+CALD — Удаление будильников.
- AT+VGR — Установка/запрос уровня усиления динамика.
- AT+VGT — Установка/запрос уровня усиления микрофона.
- AT+CLVL — Установка/запрос громкости динамика громкой связи.
- AT+CMUT — Установка/запрос отключения микрофона при голосовом вызове.
- AT+CCLK — Установка/запрос часов реального времени (RTC).
- AT+CBC — Запрос состояния ЗУ и ёмкости аккумулятора (АКБ).
- AT+CBCM — Управление уведомлениями о изменении ёмкости аккумуляторной батареи (АКБ).
- AT+CMER — Установка/запрос режима отправки незапрашиваемых отчётов (URC) о событиях.
- AT+CEER — Запрос расширенного отчёта об ошибке последнего соединения.
- AT+CPAS — Запрос статуса активности мобильного устройства.
- AT-команды SIM / PBK:
- AT+CPIN — Аутентификация SIM-карты (ввод PIN1, PUK1, PIN2, PUK2).
- AT+CPIN2 — Аутентификация SIM-карты (ввод PIN2, PUK2).
- AT^CPINC — Запрос оставшегося количества попыток ввода паролей (PIN1, PUK1, PIN2, PUK2).
- AT+CLCK — Блокировка/разблокировка функций устройства.
- AT+CPWD — Смена пароля SIM-карты (PIN1, PIN2).
- AT+CRSM — Отправка команд на SIM-карту в режиме ограниченного доступа.
- AT+CNUM — Запрос номера абонента MSISDN (вывести свой номер телефона).
- AT+CPBS — Установка/запрос области памяти для телефонной книги.
- AT+CPBR — Чтение записей телефонной книги.
- AT+CPBF — Поиск записей телефонной книги.
- AT+CPBW — Редактирование телефонной книги (добавление, замена, удаление записей).
- AT-команды голосовых вызовов:
- ATA — Ответить на входящий голосовой вызов.
- ATH — Разъединение голосового вызова.
- AT+CHUP — Разъединение всех существующих голосовых вызовов.
- ATD — Набор номера (исходящий голосовой вызов).
- AT+DLST — Повторный набор последнего исходящего вызова.
- AT+CHLD — Управление групповыми вызовами и конференц-связью.
- AT+CLCC — Запрос списка текущих вызовов.
- AT+VTD — Установка/запрос длительности тональных сигналов DTMF.
- AT+VTS — Отправка тонального сигнала DTMF.
- AT+VTSEX — Отправка специального тонального сигнала DTMF.
- AT-команды сетевых служб:
- AT+COPN — Запрос списка всех имен операторов из памяти модуля.
- AT+COPS — Запрос/выбор оператора связи PLMN.
- AT+CREG — Установка/запрос режима и статуса регистрации в сети оператора.
- AT+CSQ — Запрос уровня сигнала.
- AT+CPOL — Установка/запрос списка предпочтительных операторов.
- AT-команды STK / SS:
- CACM — Сброс/запрос счётчика вызовов.
- CAMM — Установка максимального значения для счётчика вызовов.
- CAOC — Оповещение о стоимости вызова (не поддерживается модулями A6 и A9).
- CPUC — Установка/запрос стоимости у.е. вызова и таблицы валют.
- CCFC — Управление переадресацией вызовов.
- CCWA — Управление услугой «ожидание вызова».
- CLIP — Управление идентификацией вызывающей линии (АОН).
- CLIR — Управление запретом идентификации вызывающей линии (анти АОН).
- COLP — Управление идентификацией подключенной линии.
- CSSN — Управление уведомлениями о дополнительных услугах.
- CUSD — Управление и выполнение USSD запросов (Unstructured Supplementary Service data)
- STA — Активация интерфейса SAT (SIM Application Toolkit)
- STN — Уведомление STK (SIM ToolKit)
- STGI — Запрос информации с STK (SIM ToolKit)
- STR — Удалённый ответ SAT (SIM Application Toolkit)
- STF — Установка формата ответов SAT (SIM Application Toolkit)
- AT-команды SMS:
- AT+CSDH — Разрешить/запретить отображение заголовков текстовых сообщений.
- AT+CSMP — Установка/запрос параметров текстового режима.
- AT+CMSS — Отправка SMS сообщения из памяти.
- AT+CMGD — Удаление SMS сообщения из памяти.
- AT+CMGF — Установка/запрос формата SMS сообщений (текстовый / PDU).
- AT+CMGL — Чтение списка SMS сообщений из памяти.
- AT+CMGR — Чтение одного SMS сообщения из памяти.
- AT+CMGS — Отправка SMS сообщения без сохранения в память.
- AT+CMGW — Запись SMS сообщения в память.
- AT+CNMA — Запрос отчёта о доставке SMS сообщений.
- AT+CNMI — Установка/запрос индикации новых сообщений.
- AT+CPMS — Установка/запрос предпочтительной области памяти для хранения сообщений.
- AT+CSCA — Установка/запрос номера сервис-центра SMS сообщений.
- AT+CSCB — Установка/запрос типа принимаемых Cell Broadcast сообщений.
- AT+CSAS — Сохранение настроек.
- AT+CRES — Восстановление настроек.
- AT-команды аудиоинтерфейса:
- AT+CAUDIO — Открыть/закрыть аудиопоток голосового вызова.
- AT+CRSL — Установка/запрос уровня громкости звонка.
- AT+CDTMF — Воспроизведение тонального сигнала DTMF.
- AT+AUST — Запуск тестового аудиоцикла.
- AT+AUEND — Остановка тестового аудиоцикла.
- AT+SNFS — Установка/запрос устройства ввода/вывода звука.
- AT-команды GPRS:
- CGATT — Установка/разрыв GPRS соединения.
- CGDCONT — Задание параметров PDP контекста.
- CGACT — Активация/деактивация PDP контекста.
- CRC — Включение/отключение результирующих кодов входящих соединений.
- CGQMIN — Задание минимально допустимого профиля QoS (Quality of Service).
- CGPADDR — Получение списка PDP адресов.
- CGAUTO — Включение/отключение автоответа активации PDP контекста.
- CGQREQ — Задание запрашиваемого профиля QoS (Quality of Service).
- CGREG — Статус регистрации в сети GPRS.
- ATD*99***1# — Запрос услуги GPRS (установка связи с PDN).
- CGSMS — Выбор сервиса (GSM или GPRS) для отправки SMS сообщений.
- CGANS — Ручной ответ активации PDP контекста на запрос сети (см CGAUTO).
- CGEREP — Включение/отключение результирующих кодов о событиях GPRS.
- CGDATA — Установка связи с сетью (аналогично команде ATD*99***1#).
- CGCLASS — Установка/запрос GPRS класса мобильного устройства.
- AT-команды TCP/IP:
- CIPSTART — Открытие соединения TCP или UDP.
- CIPSEND — Отправка данных через TCP или UDP соединение.
- CIPCLOSE — Закрытие соединения TCP или UDP.
- CIPSHUT — Отключение беспроводного соединения.
- CSTT — Ввод имени точки доступа, логина и пароля.
- CIICR — Установка беспроводного соединения.
- CIFSR — Получение локального IP-адреса.
- CIPSTATUS — Запрос состояния текущего соединения.
- CIPATS — Установка таймера автоматической отправки.
- CIPSCONT — Cохранение параметров контекста TCP/IP.
- CDNSGIP — Запрос IP-адреса указанного доменного имени.
- AT-команды дополнительные:
- CLDSTART — Автоматическое подключение к облачной платформе Anxin Keyun.
- CLDSTOP — Отключение от облачной платформы Anxin Keyun.
- CLDSEND — Отправка данных на облачный сервис Anxin Keyun.
- CLDUNBIND — Освобождение облачного сервиса Anxin Keyun.
Подробное описание AT-команд:
Описание AT-команд переведено с первоисточника AT A6 V1.01.
Основные AT-команды:
AT-команда: | Ответ: | Назначение: | |
---|---|---|---|
AT | ATrn (тестовый запрос) |
rn OKrn |
Проверка связи:
|
CPOF | AT+CPOFrn (выключить модуль) |
rn OKrn |
Выключение модуля:
|
ATS0 | ATS0?rn (запрос текущего количества гудков до автоответа) |
rn ЧИСЛОrn rn OKrn |
Установка/запрос автоматического ответа на вызовы:
|
ATS0=ЧИСЛОrn (установка количества гудков) |
rn OKrn |
||
ATS3 | ATS3?rn (Запрос текущего кода) |
rn ЧИСЛОrn rn OKrn |
Установка/запрос кода символа конца командной строки:
|
ATS3=ЧИСЛОrn (установка кода символа) |
rn OKrn |
||
ATS4 | ATS4?rn (Запрос текущего кода) |
rn ЧИСЛОrn rn OKrn |
Установка/запрос кода символа начала командной строки:
|
ATS4=ЧИСЛОrn (установка кода символа) |
rn OKrn |
||
ATS5 | ATS5?rn (запрос текущего кода) |
rn ЧИСЛОrn rn OKrn |
Установка/запрос кода символа backspace для командной строки:
|
ATS5=ЧИСЛОrn (установка кода символа) |
rn OKrn |
||
+++ | +++rn (переключение в командный режим) |
rn OKrn |
Переключение из режима online в режим offline:
|
ATO | ATOrn (переключение в режим данных) |
rn OKrn |
Переключение из режима offline в режим online:
|
AT&F | AT&Frn (загрузка заводского профиля) |
rn OKrn |
Восстановить заводские настройки:
|
ATV | ATV0rn (установка коротких ответов) |
rn OKrn |
Установка формата ответа модуля:
|
ATV1rn (установка полных ответов) |
rn OKrn |
||
ATE | ATE0rn (отключить эхо) |
rn OKrn |
Включить/отключить эхо в ответах на AT-команды:
|
ATE1rn (включить эхо) |
rn OKrn |
||
AT&W | AT&Wrn (сохранить настройки в пользовательский профиль) |
rn OKrn |
Сохранить текущие настройки в области EEPROM:
|
ATQ | ATQ0rn | rn OKrn |
Включить/отключить результирующие коды:
|
ATQ1rn | rn OKrn |
||
ATX | ATX0rn | rn OKrn |
Установка формата кода результата соединения и мониторинг вызовов:
|
ATX1rn | rn OKrn |
||
ATX2rn | rn OKrn |
||
ATX3rn | rn OKrn |
||
ATX4rn | rn OKrn |
||
ATZ | ATZrn (загрузить пользовательский профиль) |
rn OKrn |
Восстановить пользовательские настройки:
|
CFUN | AT+CFUN=ЧИСЛОrn (установка требуемого функционала) |
rn OKrn |
Установка набора функциональных возможностей:
|
CMEE | AT+CMEE=?rn (запрос допустимых значений) |
rn +CMEE: (0-2)rn rn OKrn |
Установка/запрос формата вывода сообщений об ошибках мобильного оборудования:
|
AT+CMEE?rn (запрос текущего формата вывода ошибок) |
rn +CMEE: ЧИСЛОrn rn OKrn |
||
AT+CMEE=ЧИСЛОrn (установка формата вывода ошибок) |
rn OKrn |
||
CSCS | AT+CSCS=?rn (запрос допустимых наборов символов) |
rn +CSCS: («GSM», «HEX», «PCCP936», «UCS2»)rn rn OKrn |
Установка/запрос набора символов терминального оборудования:
|
AT+CSCS?rn (запрос текущего набора символов) |
rn +CSCS: ИМЯrn rn OKrn |
||
AT+CSCS=ИМЯrn (установка набора символов) |
rn OKrn |
||
CMUX | AT+CMUX=?rn (запрос допустимых режимов) |
rn +CMUX: (0)rn rn OKrn |
Установка/запрос режима мультиплексирования:
|
AT+CMUX?rn (запрос текущего режима) |
rn +CMUX: ЧИСЛОrn rn OKrn |
||
AT+CMUX=ЧИСЛОrn (установка режима) |
rn OKrn |
||
ICF | AT+ICF=?rn (запрос допустимых значений) |
rn +ICF: (1-6),(0-3)rn rn OKrn |
Установка/запрос параметров передачи данных по шине UART:
|
AT+ICF?rn (запрос текущих параметров) |
rn +ICF: РАЗМЕР, ЧЁТНОСТЬrn rn OKrn |
||
AT+ICF=РАЗМЕР,ЧЁТНОСТЬrn (установка параметров UART) |
rn OKrn |
||
IPR | AT+IPR=?rn (запрос допустимых скоростей UART) |
rn (2400, 4800, 9600, 14400, 19200, 28800, 33600, 38400, 57600, 115200, 230400, 460800, 921600)rn rn OKrn |
Установка/запрос скорости передачи данных по шине UART:
|
AT+IPR?rn (запрос текущей скорости) |
rn +IPR: СКОРОСТЬrn rn OKrn |
||
AT+IPR=СКОРОСТЬrn (установка скорости UART) |
rn OKrn |
||
GSN | AT+GSNrn (запрос серийного номера) |
rn НОМЕРrn rn OKrn |
Запрос серийного номера адаптера:
|
GMM CGMM |
AT+GMMrn (запрос названия модели) |
rn МОДЕЛЬrn rn OKrn |
Запрос модели адаптера (модуля):
|
GMR CGMR |
AT+GMRrn (запрос версии прошивки) |
rn ВЕРСИЯrn rn OKrn |
Запрос версии ПО адаптера (модуля):
|
GMI CGMI |
AT+GMIrn (запрос имени производителя) |
rn ПРОИЗВОДИТЕЛЬrn rn OKrn |
Запрос производителя адаптера (модуля):
|
ATI | ATIrn (запрос названия, имени и версии) |
rn ПРОИЗВОДИТЕЛЬrn МОДЕЛЬrn ВЕРСИЯrn rn OKrn |
Запрос информации производителя об адаптере (модуле):
|
CIMI | AT+CIMIrn (запрос IMSI) |
rn НОМЕРrn rn OKrn |
Запрос IMSI:
|
EGMR | AT+EGMR=?rn (запрос допустимых значений) |
rn +EGMR: (1,2), (7)rn rn OKrn |
Установка/запрос IMEI:
|
AT+EGMR=1,7,«НОМЕР»rn (установка IMEI) |
rn OKrn |
||
AT+EGMR=2,7rn (запрос IMEI) |
rn +EGMR:НОМЕРrn rn OKrn |
||
CALA | AT+CALA=?rn (запрос допустимых значений) |
rn +CALA: (1-15), (0), (32), (15)rn rn OKrn |
Установка/запрос списка будильников:
|
AT+CALA?rn (запрос списка установленных будильников) |
rn +CALA: «ДАТА» [,№ [,ТИП [,«ТЕКСТ» [,«ДН» [,ТИХИЙ]]]]]rn +CALA: «ДАТА» [,№ [,ТИП [,«ТЕКСТ» [,«ДН» [,ТИХИЙ]]]]]rn rn OKrn |
||
AT+CALA=«ДАТА»[,№[,ТИП[,»ТЕКСТ»[,»ДН»[,ТИХИЙ]]]]]rn (установка будильника) |
rn OKrn |
||
CALD | AT+CALD=?rn (запрос списка номеров установленных будильников) |
rn +CALD: НОМЕРАrn rn OKrn |
Удаление одного будильника:
|
AT+CALD=НОМЕРrn (удаление будильника) |
rn OKrn |
||
VGR | AT+VGR=?rn (запрос допустимых уровней) |
rn +VGR: (5-8)rn rn OKrn |
Установка/запрос уровня усиления динамика:
|
AT+VGR?rn (запрос текущего уровня) |
rn +VGR: УСИЛЕНИЕrn rn OKrn |
||
AT+VGR=УСИЛЕНИЕrn (установка уровня) |
rn OKrn |
||
VGT | AT+VGT=?rn (запрос допустимых уровней) |
rn +VGT: 16rn rn OKrn |
Установка/запрос уровня усиления микрофона:
|
AT+VGT?rn (запрос текущего уровня) |
rn +VGT: УСИЛЕНИЕrn rn OKrn |
||
AT+VGT=УСИЛЕНИЕrn (установка уровня) |
rn OKrn |
||
CLVL | AT+CLVL=?rn (запрос допустимых значений) |
rn +CLVL: (5-8)rn rn OKrn |
Установка/запрос громкости динамика громкой связи:
|
AT+CLVL?rn (запрос текущей громкости) |
rn +CLVL: ГРОМКОСТЬrn rn OKrn |
||
AT+CLVL=ГРОМКОСТЬrn (установка громкости) |
rn OKrn |
||
CMUT | AT+CMUT=?rn (запрос допустимых значений) |
rn +CMUT: (0,1)rn rn OKrn |
Установка/запрос отключения микрофона при голосовом вызове:
|
AT+CMUT?rn (запрос текущего значения) |
rn +CMUT: ФЛАГrn rn OKrn |
||
AT+CMUT=ФЛАГrn (установка значения) |
rn OKrn |
||
CCLK | AT+CCLK=?rn (запрос синтаксиса) |
rn +CCLK: «YY/MM/DD HH:MM:SS+ZZ»rn rn OKrn |
Установка/запрос часов реального времени (RTC):
|
AT+CCLK?rn (запрос текущей даты и времени) |
rn +CCLK: «ДАТАВРЕМЯ»rn rn OKrn |
||
AT+CCLK=«ДАТАВРЕМЯ»rn (установка даты и времени) |
rn OKrn |
||
CBC | AT+CBC=?rn (запрос допустимых значений) |
rn +CBC: (0-5),(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)rn rn OKrn |
Запрос состояния ЗУ и ёмкости аккумулятора (АКБ):
|
AT+CBC?rn (запрос текущего состояния) |
rn +CBC: СОСТОЯНИЕ, ЁМКОСТЬrn rn OKrn |
||
CBCM | AT+CBCM=?rn (запрос допустимых значений) |
rn +CBCM: (0-1)rn rn OKrn |
Управление уведомлениями о изменении ёмкости аккумуляторной батареи (АКБ):
|
AT+CBCM?rn (запрос текущей установки) |
rn +CBCM: ФЛАГrn rn OKrn |
||
AT+CBCM=ФЛАГrn (установка/запрет уведомлений) |
rn OKrn |
||
CMER | AT+CMER=?rn (запрос допустимых значений) |
rn +CMER: (3),(0),(0),(0,2)rn rn OKrn |
Установка/запрос режима отправки незапрашиваемых отчётов о событиях (URC):
|
AT+CMER?rn (запрос текущего режима) |
rn +CMER: РЕЖИМ, КЛАВИАТУРА, ДИСПЛЕЙ, ИНДИКАТОР, БУФЕРrn rn OKrn |
||
AT+CMER=[РЕЖИМ [,КЛАВИАТУРА [,ДИСПЛЕЙ [,ИНДИКАТОР [,БУФЕР]]]]]rn (установка режима отправки сообщений) |
rn OKrn |
||
CEER | AT+CEERrn (запрос отчёта) |
rn +CMER: ТЕКСТrn rn OKrn |
Запрос расширенного отчёта об ошибке последнего соединения:
|
CPAS | AT+CPASrn (запрос статуса устройства) |
rn +CPAS: СТАТУСrn rn OKrn |
Запрос статуса активности мобильного устройства:
|
AT-команды SIM / PBK:
AT-команда: | Ответ: | Назначение: | |
---|---|---|---|
CPIN | AT+CPIN?rn (запрос текущего состояния аутентификации) |
rn +CPIN: СОСТОЯНИЕrn rn OKrn |
Аутентификация SIM-карты (ввод PIN1 / PUK1 / PIN2 / PUK2):
|
AT+CPIN=«PIN»rn (ввод PIN-кода) |
rn OKrn |
||
AT+CPIN=«PUK»,»PIN»rn (ввод PUK-кода и нового PIN-кода) |
rn OKrn |
||
CPIN2 | AT+CPIN2?rn (запрос текущего состояния аутентификации) |
rn +CPIN2: СОСТОЯНИЕrn rn OKrn |
Аутентификация SIM-карты (ввод PIN2 / PUK2):
|
AT+CPIN2=«PIN2»rn (ввод кода PIN2) |
rn OKrn |
||
AT+CPIN2=«PUK2″,»PIN2»rn (ввод кода PUK2 и нового кода PIN2) |
rn OKrn |
||
CPINC | AT^CPINCrn (запрос кол-ва попыток ввода PIN / PUK) |
rn ^CPINC: PIN1, PUK1, PIN2, PUK2rn rn OKrn |
Запрос оставшегося количества попыток ввода паролей:
|
CLCK | AT+CLCK=?rn (запрос допустимых функций) |
rn +CLCK: («SC», «FD», «AO», «OX», «OI»)rn rn OKrn |
Блокировка/разблокировка функций устройства:
|
AT+CLCK=«ФУНКЦИЯ», РЕЖИМ [,ПАРОЛЬ [,КЛАСС]]rn (блокировка / разблокировка указанной функции) |
Ответ зависит от указанных параметров. | ||
CPWD | AT+CPWD=?rn (запрос максимального количества символов в пароле) |
rn +CPWD: («SC»,8), («P2»,8)rn rn OKrn (до 8 знаков для «SC», до 8 знаков для «P2») |
Смена пароля SIM-карты (PIN1 / PIN2):
|
AT+CPWD=«ФУНКЦИЯ», «СТАРЫЙ»,»НОВЫЙ»rn (смена пароля) |
rn OKrn |
||
CRSM | AT+CRSM=КОМАНДА [,ИДЕНТИФИКАТОР [, П1 [,П2 [,П3 [,ДАННЫЕ]]]]]rn | rn +CRSM: Ф1, Ф2, ОТВЕТrn rn OKrn |
Отправка команд на SIM-карту в режиме ограниченного доступа:
|
CNUM | AT+CNUMrn (запрос своего номера) |
rn +CNUM: «НАЗВАНИЕ», «НОМЕР», ТИПrn rn OKrn |
Запрос номер абонента MSISDN (свой номер телефона):
|
CPBS | AT+CPBS=?rn (запрос допустимых областей памяти) |
rn +CPBS: («SM», «ON», «FD», «LD»)rn rn OKrn |
Установка/запрос области памяти для телефонной книги:
|
AT+CPBS?rn (запрос используемой области памяти) |
rn +CPBS: «ПАМЯТЬ» [,НАЙДЕНО, ОБЪЕМ]rn rn OKrn |
||
AT+CPBS=ПАМЯТЬrn (установка требуемой области памяти) |
rn OKrn |
||
CPBR | AT+CPBR=?rn (запрос размера телефонной книги) |
rn +CPBR: (1-250), 20, 25rn rn OKrn (до 250 ячеек, до 20 цифр в телефоне, до 25 символов в названии). |
Чтение записей телефонной книги:
|
AT+CPBR=ОТ [,ДО]rn (чтение записей) |
rn +CPBR: ИНДЕКС, «НОМЕР», ТИП, «НАЗВАНИЕ»rn rn OKrn |
||
CPBF | AT+CPBF=?rn (запрос размера записей) |
rn +CPBF: 20,25rn rn OKrn (до 20 цифр в телефоне, до 25 символов в названии). |
Поиск записей телефонной книги:
|
AT+CPBF=«ТЕКСТ»rn (поиск записей) |
rn +CPBF: ИНДЕКС, «НОМЕР», ТИП, «НАЗВАНИЕ»rn rn OKrn |
||
CPBW | AT+CPBW=?rn (запрос допустимых параметров) |
rn +CPBW: (1-250), 20, (129,145,161), 25rn rn OKrn (до 250 номеров, до 20 цифр в телефоне, допустимые типы (129,145,161), до 25 символов в названии). |
Редактирование записей телефонной книги (добавление / замена / удаление):
|
AT+CPBW=[ИНДЕКС][,»НОМЕР» [,ТИП [,НАЗВАНИЕ]]]rn (запись,замена,удаление) |
rn OKrn |
AT-команды голосовых вызовов:
AT-команда: | Ответ: | Назначение: | |
---|---|---|---|
ATA | ATArn (ответить на входящий голосовой вызов) |
rn CONNECTrn |
Ответ на входящий голосовой вызов:
|
ATH | ATHrn (повесить трубку) |
rn OKrn |
Разъединение голосового вызова:
|
CHUP | AT+CHUPrn (повесить все трубки) |
rn OKrn |
Разъединение всех существующих голосовых вызовов (повесить трубку):
|
ATD | ATDНОМЕРrn (набрать указанный номер) |
rn OKrn |
Набор номера (исходящий голосовой вызов):
|
ATD>[«ПАМЯТЬ»]ИНДЕКСrn (набрать номер из телефонной книги) |
rn OKrn |
||
DLST | AT+DLSTrn (повтор исходящего вызова) |
rn OKrn |
Повторный набор последнего исходящего вызова:
|
CHLD | AT+CHLD=?rn (запрос допустимых действий) |
rn +CHLD: (0,1,1X,2,2X,3)rn rn OKrn |
Управление групповыми вызовами и конференц-связью:
|
AT+CHLD=ЗНАЧЕНИЕrn (выполнение действия) |
rn OKrn |
||
CLCC | AT+CLCCrn (получение списка текущих вызовов) |
rn +CLCC: ИНДЕКС, НАПРАВЛЕНИЕ, СОСТОЯНИЕ, РЕЖИМ, ФЛАГ [,НОМЕР, ТИП [,»НАЗВАНИЕ«]]rn rn OKrn |
Запрос списка текущих вызовов:
|
VTD | AT+VTD=?rn (запрос допустимых значений) |
rn +VTD: (1-10)rn rn OKrn |
Установка/запрос длительности тональных сигналов DTMF:
|
AT+VTD?rn (запрос установленной длительности сигнала) |
rn +VTD: ДЛИТЕЛЬНОСТЬrn rn OKrn |
||
AT+VTD=ДЛИТЕЛЬНОСТЬrn (установка длительности) |
rn OKrn |
||
VTS | AT+VTS=?rn (запрос допустимых символов для воспроизведения) |
rn +VTS: (0-9,*,#,A,B,C,D),(1-10)rn rn OKrn |
Отправка тонального сигнала DTMF:
|
AT+VTS=ЗНАЧЕНИЕ [, ДЛИТЕЛЬНОСТЬ]rn (воспроизвести тональный сигнал) |
rn OKrn |
||
VTSEX | AT+VTSEX=1rn (воспроизвести специальный тональный сигнал) |
rn OKrn |
Отправка специального тонального сигнала DTMF:
|
AT-команды сетевых служб:
AT-команда: | Ответ: | Назначение: | |
---|---|---|---|
COPN | AT+COPNrn (запрос списка операторов из памяти модуля) |
rn +COPN: «НОМЕР»,»НАЗВАНИЕ»rn … |
Запрос списка всех имен операторов из памяти модуля:
|
COPS | AT+COPS=?rn (Запрос списка доступных операторов PLMN) |
rn +COPS: (СТАТУС, «ОПЕРАТОР», «ОПЕРАТОР», «ОПЕРАТОР»),(аналогично для след. оператора),(и т.д.)rn rn OKrn |
Запрос/выбор оператора связи PLMN:
|
AT+COPS?rn (Запрос выбранного оператора PLMN) |
rn +COPS: РЕЖИМ [,ФОРМАТ, «ОПЕРАТОР»]rn rn OKrn |
||
AT+COPS=РЕЖИМ [,ФОРМАТ [, «ОПЕРАТОР»]]rn (Выбор оператора PLMN) |
rn OKrn |
||
CREG | AT+CREG=?rn (Запрос допустимых режимов вывода сообщений о статусе регистрации) |
rn +CREG: (0-2)rn rn OKrn |
Установка/запрос режима и статуса регистрации в сети оператора:
|
AT+CREG?rn (Запрос текущего режима и статуса) |
rn +CREG: РЕЖИМ, СТАТУС [,«КОД», «ID»]rn rn OKrn |
||
AT+CREG=РЕЖИМrn (Установка режима вывода сообщений о статусе регистрации) |
rn OKrn |
||
CSQ | AT+CSQ=?rn (Запрос допустимых значений) |
rn +CSQ: (0-31,99),(0-7,99)rn rn OKrn |
Запрос уровня сигнала:
|
AT+CSQrn (Запрос уровня сигнала и количества ошибок) |
rn +CSQ: УРОВЕНЬ, ОШИБКИrn rn OKrn |
||
CPOL | AT+CPOL=?rn (Запрос максимального размера списка и допустимых форматов) |
rn +CPOL: (1-50),(0,2)rn rn OKrn |
Установка/запрос списка предпочтительных операторов:
|
AT+CPOL?rn (Запрос списка предпочтительных операторов) |
rn +CPOL: ИНДЕКС, ФОРМАТ, «ОПЕРАТОР»rn rn OKrn |
||
AT+CPOL=[ИНДЕКС] [,ФОРМАТ [,»ОПЕРАТОР» [,GSM,GSMcomp,UTRAN]]]rn (Добавление, замена, удаление оператора из списка) |
rn OKrn |
AT-команды STK / SS:
AT-команда: | Ответ: | Назначение: | |
---|---|---|---|
CACM | см. оригинал. | Запрос/сброс счётчика вызовов. | |
CAMM | см. оригинал. | Установка максимального значения для счётчика вызовов. | |
CAOC | см. оригинал. | Оповещение о стоимости вызова (в настоящее время модули A6 и A9 не поддерживают данную команду). | |
CPUC | см. оригинал. | Установка/запрос стоимости у.е. вызова и таблицы валют. | |
CCFC | см. оригинал. | Управление переадресацией вызовов. | |
CCWA | см. оригинал. | Управление услугой «ожидание вызова». | |
CLIP | см. оригинал. | Управление идентификацией вызывающей линии (АОН). | |
CLIR | см. оригинал. | Управление запретом идентификации вызывающей линии (анти АОН). | |
COLP | см. оригинал. | Управление идентификацией подключенной линии. | |
CSSN | см. оригинал. | Управление уведомлениями о дополнительных услугах. | |
CUSD | см. оригинал. | Управление и выполнение USSD запросов (Unstructured Supplementary Service data) | |
STA | см. оригинал. | Активация интерфейса SAT (SIM Application Toolkit) | |
STN | см. оригинал. | Уведомление STK (SIM ToolKit) | |
STGI | см. оригинал. | Запрос информации с STK (SIM ToolKit) | |
STR | см. оригинал. | Удалённый ответ SAT (SIM Application Toolkit) | |
STF | см. оригинал. | Установка формата ответов SAT (SIM Application Toolkit) |
AT-команды SMS:
AT-команда: | Ответ: | Назначение: | |
---|---|---|---|
CSDH | AT+CSDH=?rn (запрос допустимых значений) |
rn +CSDH: (0,1)rn rn OKrn |
Разрешить/запретить отображение заголовков текстовых сообщений в незапрашиваемых кодах результата:
|
AT+CSDH?rn (запрос текущей установки) |
rn +CSDH: ФЛАГrn rn OKrn |
||
AT+CSDH=ФЛАГrn (разрешить / запретить отображение заголовков) |
rn OKrn |
||
CSMP | AT+CSMP?rn (запрос текущих параметров) |
rn +CSMP: БАЙТ, ВРЕМЯ, ПРОТОКОЛ, КОДИРОВКАrn rn OKrn |
Установка/запрос параметров текстового режима:
|
AT+CSMP=БАЙТ, ВРЕМЯ, ПРОТОКОЛ, КОДИРОВКА,rn (установка параметров текстового режима) |
rn OKrn |
||
CMSS | AT+CMSS=ИНДЕКС [,НОМЕР [,ТИП]]rn (отправка SMS) |
rn +CMSS: ИНДЕКСотпрrn rn OKrn |
Отправка SMS сообщения из памяти:
|
CMGD | AT+CMGD=?rn (запрос допустимых значений) |
rn +CMGD: (ИНДЕКС),(СТАТУС)rn rn OKrn (значения зависят от выбранной предпочтительной области памяти) |
Удаление SMS сообщения из памяти:
|
AT+CMGD=ИНДЕКС,[СТАТУС]rn (удаление сообщений) |
rn OKrn |
||
CMGF | AT+CMGF=?rn (запрос допустимых значений) |
rn +CMGF: (0,1)rn rn OKrn |
Установка/запрос формата SMS сообщений (текстовый / PDU):
|
AT+CMGF?rn (запрос текущего формата) |
rn +CMGF: ФОРМАТrn rn OKrn |
||
AT+CMGF=ФОРМАТrn (установить формат SMS сообщений) |
rn OKrn |
||
CMGL | AT+CMGL=?rn (запрос допустимых значений) |
rn +CMGL: (СТАТУС)rn rn OKrn (значение СТАТУС зависит от выбранного формата) |
Чтение списка SMS сообщений из памяти:
|
AT+CMGL[=СТАТУС]rn (запрос на чтение списка сообщений) |
Строки списков зависят установленного формата и статуса сообщений:
Текстовый формат, принятое сообщение: Текстовый формат, отправл. сообщение: Формат PDU: |
||
CMGR | AT+CMGR=ИНДЕКСrn (чтение одного SMS сообщения) |
Строка ответа зависит от установленного формата и статуса сообщения:
Текстовый формат, принятое сообщение: Текстовый формат, отправл. сообщение: Текстовый формат, сообщение запроса статуса: Формат PDU: |
Чтение одного SMS сообщения из памяти:
|
CMGS | Отправка SMS в текстовом формате: AT+CMGS=«НОМЕР»[,ТИП]rn >rn ТЕКСТ(<0x1A>/<0x1B>) Отправка SMS в формате PDU: |
rn +CMGS: ИНДЕКСrn rn OKrn |
Отправка SMS сообщения без сохранения в память:
|
CMGW | Отправка SMS в текстовом формате: AT+CMGW=«НОМЕР»[,ТИП] [,СТАТУС]rn >rn ТЕКСТ(<0x1A>/<0x1B>) Отправка SMS в формате PDU: |
rn +CMGW: ИНДЕКСrn rn OKrn |
Запись SMS сообщения в память:
|
CNMA | AT+CNMA=?rn (запрос допустимых значений) |
rn NOT SUPPORTrn |
Запрос отчёта о доставке SMS сообщений:
|
Запрос отчёта в текстовом формате: AT+CNMArn Запрос отчёта в формате PDU: |
rn OKrn |
||
CNMI | AT+CNMI=?rn (запрос допустимых значений) |
rn +CNMI: (РЕЖИМ),(СООБЩЕНИЯ),(РАССЫЛКА),(ОТЧЁТЫ),(БУФЕР)rn rn OKrn |
Установка/запрос индикации новых сообщений:
|
AT+CNMI?rn (запрос текущих настроек индикации входящих сообщений) |
rn +CNMI: РЕЖИМ, СООБЩЕНИЯ, РАССЫЛКА, ОТЧЁТЫ, БУФЕРrn rn OKrn |
||
AT+CNMI=РЕЖИМ [,СООБЩЕНИЯ [,РАССЫЛКА [,ОТЧЁТЫ [,БУФЕР]]]]rn (установить настройки индикации входящих сообщений) |
rn OKrn |
||
CPMS | AT+CPMS=?rn (запрос допустимых значений) |
rn +CPMS: (ПАМЯТЬ1),(ПАМЯТЬ2),(ПАМЯТЬ3)rn rn OKrn |
Установка/запрос предпочтительной области памяти для хранения сообщений:
|
AT+CPMS?rn (запрос текущих настроек) |
rn +CPMS: «ПАМЯТЬ1»,ИСП,ОБЪЕМ, «ПАМЯТЬ2»,ИСП,ОБЪЕМ, «ПАМЯТЬ3»,ИСП,ОБЪЕМrn rn OKrn |
||
AT+CPMS=«ПАМЯТЬ1″ [,»ПАМЯТЬ2″ [,»ПАМЯТЬ3»]]rn (установить предпочтительную область памяти) |
rn +CPMS: «ПАМЯТЬ1»,ИСП,ОБЪЕМ, «ПАМЯТЬ2»,ИСП,ОБЪЕМ, «ПАМЯТЬ3»,ИСП,ОБЪЕМrn rn OKrn |
||
CSCA | AT+CSCA?rn (запрос текущего номера сервис-центра SMS сообщений) |
rn +CSCA: «НОМЕР»,ТИПrn rn OKrn |
Установка/запрос номера сервис-центра SMS сообщений:
|
AT+CSCA=«НОМЕР» [,ТИП]rn (установить номер сервис центра SMS сообщений) |
rn OKrn |
||
CSCB | AT+CSCB=?rn (запрос допустимых значений) |
rn +CSCB: (ТИПЫ)rn rn OKrn |
Установка/запрос типа принимаемых Cell Broadcast сообщений:
|
AT+CSCB?rn (запрос установленных типов) |
rn +CSCB: ТИП,«ID»,«ЯЗЫКИ»rn rn OKrn |
||
AT+CSCB=ТИП [,»ID» [,»ЯЗЫКИ»]]rn (установить тип принимаемых сообщений рассылки) |
rn OKrn |
||
CSAS | AT+CSASrn (сохранение настроек) |
rn OKrn |
Сохранение настроек:
|
CRES | AT+CRESrn (сохранение настроек) |
rn OKrn |
Восстановление настроек:
|
AT-команды аудиоинтерфейса:
AT-команда: | Ответ: | Назначение: | |
---|---|---|---|
CAUDIO | AT+CAUDIO=?rn (запрос допустимых значений) |
rn +CAUDIO: (0-1)rn rn OKrn |
Открыть / закрыть аудиопоток голосового вызова:
|
AT+CAUDIO=ФЛАГrn (открыть/закрыть аудиопоток) |
rn OKrn |
||
CRSL | AT+CRSL=?rn (запрос допустимых значений) |
rn +CRSL: (0-15)rn rn OKrn |
Запрос / установка уровня громкости звонка:
|
AT+CRSL?rn (запрос установленной громкости) |
rn +CRSL: ГРОМКОСТЬrn rn OKrn |
||
AT+CRSL=ГРОМКОСТЬrn (установить громкость звонка) |
rn OKrn |
||
CDTMF | AT+CDTMF=?rn (запрос допустимых значений) |
rn +VTS: (0-9,*,#,A,B,C,D),(1-10)rn rn OKrn |
Воспроизведение тонального сигнала DTMF:
|
AT+CDTMF=ЗНАЧЕНИЕ [, ДЛИТЕЛЬНОСТЬ]rn (открыть/закрыть аудиопоток) |
rn OKrn |
||
AUST | AT+AUST=?rn (запрос допустимых значений) |
rn +AUST: (0-2)rn rn OKrn |
Запуск тестового аудиоцикла:
|
AT+AUST=РЕЖИМrn (выбрать режим тестового аудиоцикла) |
rn OKrn |
||
AT+AUSTrn (запустить тестовый аудиоцикл) |
rn OKrn |
||
AUEND | AT+AUENDrn (остановка тестового аудиоцикла) |
rn OKrn |
Остановка тестового аудиоцикла:
|
SNFS | AT+SNFS=?rn (запрос допустимых значений) |
rn +SNFS: (0-2)rn rn OKrn |
Запрос / установка устройства ввода / вывода звука:
|
AT+SNFS?rn (запрос используемого устройства) |
rn +CRSL: УСТРОЙСТВОrn rn OKrn |
||
AT+SNFS=УСТРОЙСТВОrn (выбор устройства) |
rn OKrn |
AT-команды GPRS:
AT-команда: | Ответ: | Назначение: | |
---|---|---|---|
CGATT | см. оригинал. | Установка / разрыв GPRS соединения. | |
CGDCONT | см. оригинал. | Задание параметров PDP контекста. | |
CGACT | см. оригинал. | Активация / деактивация PDP контекста. | |
CRC | см. оригинал. | Включение / отключение результирующих кодов входящих соединений. | |
CGQMIN | см. оригинал. | Задание минимально допустимого профиля QoS (Quality of Service). | |
CGPADDR | см. оригинал. | Получение списка PDP адресов. | |
CGAUTO | см. оригинал. | Включение / отключение автоответа активации PDP контекста. | |
CGQREQ | см. оригинал. | Задание запрашиваемого профиля QoS (Quality of Service). | |
CGREG | см. оригинал. | Статус регистрации в сети GPRS. | |
ATD*99***1# | см. оригинал. | Запрос услуги GPRS (установка связи с PDN). | |
CGSMS | см. оригинал. | Выбор сервиса (GSM или GPRS) для отправки SMS сообщений. | |
CGANS | см. оригинал. | Ручной ответ активации PDP контекста на запрос сети (см CGAUTO). | |
CGEREP | см. оригинал. | Включение / отключение результирующих кодов о событиях GPRS. | |
CGDATA | см. оригинал. | Установка связи с сетью (аналогично команде ATD*99***1#) | |
CGCLASS | см. оригинал. | Запрос / установка GPRS класса мобильного устройства. |
AT-команды TCP/IP:
AT-команда: | Ответ: | Назначение: | |
---|---|---|---|
CIPSTART | см. оригинал. | Открытие соединения TCP или UDP. | |
CIPSEND | см. оригинал. | Отправка данных через TCP или UDP соединение. | |
CIPCLOSE | см. оригинал. | Закрытие соединения TCP или UDP. | |
CIPSHUT | см. оригинал. | Отключение беспроводного соединения. | |
CSTT | см. оригинал. | Ввод имени точки доступа, логина и пароля. | |
CIICR | см. оригинал. | Установка беспроводного соединения. | |
CIFSR | см. оригинал. | Получение локального IP-адреса. | |
CIPSTATUS | см. оригинал. | Запрос состояния текущего соединения. | |
CIPATS | см. оригинал. | Установка таймера автоматической отправки | |
CIPSCONT | см. оригинал. | Сохранение параметров контекста TCP/IP. | |
CDNSGIP | см. оригинал. | Запрос IP-адреса указанного доменного имени. |
AT-команды дополнительные:
AT-команда: | Ответ: | Назначение: | |
---|---|---|---|
CLDSTART | см. оригинал. | Автоматическое подключение к облачной платформе Anxin Keyun. | |
CLDSTOP | см. оригинал. | Отключение от облачной платформы Anxin Keyun. | |
CLDSEND | см. оригинал. | Отправка данных на облачный сервис Anxin Keyun. | |
CLDUNBIND | см. оригинал. | Освобождение облачного сервиса Anxin Keyun. |
Незапрашиваемые коды результата (URC)
Код: | Пример: | Причина отправки кода и его формат: |
---|---|---|
RING | RINGrn +CLIP: «+74995001456»,145,,,,0rn |
Информирование о наличии входящего голосового вызова. |
+CALA | +CALA: «Conference»rn | Информирование о срабатывании будильника. Включить/отключить отправку URC можно командой AT+CALA. |
+CIEV | +CIEV: «MESSAGE»,1rn +CIEV: battchg, 5rn +CIEV: signal, 99rn +CIEV: «SOUNDER»,1rn +CIEV: «CALL»,1rn +CIEV: service, 1rn +CIEV: roam, 1 rn service |
Информирование о различных изменениях. |
+CREG | +CREG: 1rn или +CREG: 1,»262A»,»346A»rn |
Информирование о статусе регистрации в сети и о местоположении. Включить/отключить отправку URC и задать формат можно командой AT+CREG.
|
+CLIP | RINGrn +CLIP: «+74995001456»,145,,,,0rn |
Вывод телефонного номера звонящего абонента. |
+CMTI | +CMTI: «SM», 6rn | Информирование о новом входящем SMS сообщении. Включить/отключить отправку URC можно командой AT+CNMI, а командой AT+CSDH можно разрешить/запретить отображение заголовков входящих SMS.
|
+CMT | +CMT: «+7926…», ,»2018/04/27,13:17:17+03″, 145, 17, 0, 0, «+79262909090», 145, 8rn Privetrn |
Информирование о новом входящем SMS сообщении. Включить/отключить отправку URC можно командой AT+CNMI, а командой AT+CSDH можно разрешить/запретить отображение заголовков входящих SMS.
|
+CSSI +CSSU |
+CSSI: 3rn | Информирование о дополнительной услуге.
|
+CUSD | +CUSD: 2, «00370039002E0038003900200440002E» ,72rn | USSD ответ. Ответ на команду AT+CUSD считается ответом URC, так как он приходит не от DCE (модуля), а от сети. Формат ответа см. в описании команды AT+CUSD. |
^SBC | ^SBC:UNDERVOLTAGErn | Информирование о низком напряжении аккумулятора. Включить/отключить отправку URC можно командой AT+CBCM. Модуль выключится в течение минуты после данного сообщения. |
^STN | ^STN: 37rn | Уведомление STK (SIM ToolKit). |
^CBCI | ^CBCI: 0,100,0,4487rn | Информирование об уровне заряда аккумулятора. |
+CCWA | +CCWA: «+74995001456»,145,1,,255rn | Индикация ожидания вызова. |
В предыдущей статье – GSM модем SIM900 – рассмотрели, как запаять данный модем. Сейчас разберемся, как его подключить к компьютеру и пообщаемся с ним по средством AT команд.
SIM900 подключенный к компьютеру
Начнём с подключения к компьютеру, т.к. с него проще всего вести диалог с модулем. В нём нет нечего сложного, если модуль собран по схеме приведенной в предыдущей статье или подобной. Берем любой преобразователь интерфейса, например cp2102, ft232, max232 и подключаем к USB или COM порту компьютера. Открываем любую терминальную программу, я же предпочитаю свою – AL Terminal (кстати, её версию обновил). На компьютере подключаемся к COM порту со скорость 9600 (по умолчанию для SIM900), к которому подключен модуль и общаемся. Если питать от компьютера, через преобразователь интерфейса, т.е. от USB порта компьютера, то подключаем толстым USB кабелем, т.к. рабочие токи модуля могут быть в районе полу ампера, а кратковременные пики могут достигать 2А. Для питания модуля от 5В перемычкой JUMP1 нужно подать питание через стабилизатор, а не шунтировать его. Если питать от батареи (3,2-4,7В), то шунтируем стабилизатор.
Диалог происходит по средством AT команд. Мы шлём модулю нужную команду или запрос, а он её выполняет и отвечает. Самая простая команда AT, на которую модуль тут же ответит OK, если модуль подключен и исправен.
Почти все команды имеют 3 режима:
- тестовый =? – модуль ответит поддерживает ли он команду и возможные её параметры
- чтение ? – ответом будет текущие параметры для этой команды
- запись = записываем новые значения для команды.
A/ — повтор предыдущей команды
В статье, идёт речь о GSM модуле SIM900 (B09). Напоминаю, т.к. есть ещё и другие разновидности этого модуля и формат команд с ними может немного отличаться.
Управление портом
По умолчанию модуль настроен 9600 8N1, 9600 – скорость, 8 – бит в посылки, N – нет контроля чётности, 1- стоп бит.
Команда |
Ответ |
Описание |
AT+IPR? | +IPR: 0 OK |
Скорость порта: 0 – автоматически 1200 2400 4800 9600 19200 38400 57600 115200 |
AT+ICF? | +ICF: 3,3 OK |
Настройки передачи. Первый параметр: Бит в посылке/чётность/стоп бит 1 – 8/0/2 2 – 8/1/1 3 – 8/0/1 4 – 7/0/2 5 – 7/1/1 6 – 7/0/1 Второй параметр – чётность: 0 – нечётный 1 – чётный 3 – нет |
AT+IFC? | +IFC: 0,0 OK |
Контроль передачи данных Первый параметр – терминалом от модуля Второй параметр – модулем от терминала 0 – нет контроля 1 – программный 2 – аппаратный |
Информация и состояние
Информация о модуле
Команда |
Ответ |
Описание |
AT+GCAP | +GCAP:+FCLASS,+CGSM OK |
Возможности модуля |
AT+GMM | SIMCOM_SIM900 OK |
Идентификатор модуля |
AT+GMR | Revision:1137B09SIM900M64_ST OK |
Ревизия |
AT+GSN | 01322600XXXXXXX OK |
IMEI |
Информация о состояние модуля
Команда |
Ответ |
Описание |
AT+COPS? | +COPS: 0,0,»MTS-RUS» OK |
Информация об операторе |
AT+COPS=? | +COPS: (2,»MTS RUS»,»»,»25001″),(1,»MOTIV»,»MOTIV»,»25035″),(1,»Utel»,»Utel»,»25039″),,(0,1,4),(0,1,2) OK |
Доступные операторы |
AT+CPAS | +CPAS: 0 OK |
Информация о состояние модуля 0 – готов к работе 2 – неизвестно 3 – входящий звонок 4 – голосовое соединение |
AT+CREG? | +CREG: 0,1 OK |
Тип регистрации сети Первый параметр: 0 – нет кода регистрации сети 1 – есть код регистрации сети 2 – есть код регистрации сети + доп параметры Второй параметр: 0 – не зарегистрирован, поиска сети нет 1 – зарегистрирован, домашняя сеть 2 – не зарегистрирован, идёт поиск новой сети 3 – регистрация отклонена 4 – неизвестно 5 – роуминг |
AT+CSQ | +CSQ: 17,0 OK |
Уровень сигнала: 0 -115 дБл и меньше 1 -112 дБл 2-30 -110..-54 дБл 31 -52 дБл и сильнее 99 – нет сигнала. |
AT+CCLK? | +CCLK: «00/01/01,04:21:27+00» OK |
Текущая дата и время телефона. |
AT+CBC | +CBC: 0,95,4134 OK |
Монитор напряжения питания модуля Первый параметр: 0 – не заряжается 1 – заряжается 2 – зарядка окончена Второй параметр: 1-100 % — уровень заряда батареи Третий параметр: Напряжение питание модуля (VBAT), мВ |
AT+CADC? | +CADC: 1,7 OK |
Значение АЦП (до 2,8В) |
Настройки
Вызовов
Команда |
Ответ |
Описание |
AT+CLIP=1 | OK | АОН 1 – вкл / 0 – выкл |
AT+GSMBUSY=0 | OK | Запрет входящих звонков 0 – разрешены 1 – запрещены |
ATS0=0 | OK | Автоответ 0 – ручной 1-более – автомотический после заданного количества звонков |
СМС
Команда |
Ответ |
Описание |
AT+CMGF=1 | OK | Текстовый режим 1 – включить 0 – выключить см. примечание |
AT+CSCS= «GSM» | OK | Кодировка текстового режима Доступны следующие кодировки: IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1 см. примечание |
AT+CSCB=0 | OK | Приём специальных сообщений 0 – разрешен (по умолчанию) 1 – запрещен |
Остальные
Команда |
Ответ |
Описание |
ATE0 | OK | ЭХО 1 – вкл (по умолчанию) / 0 – выкл |
ATV1 | OK | Формат ответа модуля 0 – только ответ 1 – полный ответ с ЭХО (по умолчанию) |
AT+CMEE=0 | OK | Информация об ошибках 0 – отключён (по умолчанию) 1 – код ошибки 2 – описание ошибки |
AT+CCLK=»13/09/25,13:25:33+05″ | OK | Установка часов «yy/mm/dd,hh:mm:ss+zz» Где: год/месяц/дата, часы:минуты:секунды +часовой пояс |
AT+CPIN=XXXX | Ввод PIN кода | |
ATZ0 | Сброс настроек до по умолчанию (не до заводских) 0 или 1 – выбор профиля |
|
AT&F | Сброс настроек до заводских | |
AT&W | OK | Сохранение настроек для текущего профиля Параметр 0 или 1 — выбор профиля Параметр указывать сразу за командой (AT&W0) |
AT+CPOWD=1 | NORMAL POWER DOWN | Выключение модуля 0 – срочное 1 – нормальное |
AT+CFUN=1,1 | Энергосберегающий режим и перезагрузка Первый параметр: 0 – минимальный функционал 1 – нормальный режим (по умолчанию) 2 – выключения цепей приёма и передачи сигнала Второй параметр: 0 – выполнить без перезагрузки 1 – перезагрузить (доступно только в нормальном режиме, т.е. параметры = 1,1) |
Телефонные звонки
Команда |
Ответ |
Описание |
ATD+790XXXXXXXX; | OK | Позвонить на номер +790XXXXXXXX; |
NO DIALTONE BUSY NO CARRIER NO ANSWER |
Нет сигнала Если вызов отклонён Повесили трубку Нет ответа |
|
ATDL | OK | Позвонить по последнему исходящему номеру |
ATA | OK | Ответить на звонок |
ATH0 | OK | Повесить трубку/ разорвать соединение |
RING | Входящий звонок | |
AT+CLIP=1 | OK | см. настройки |
RING
+CLIP: «+790XXXXXXXX»,145,»»,,»»,0 |
Входящий звонок с включенным АОН Где: Первый параметр – номер телефона входящего звонка 2 – тип входящего номера 129 – не определен 161 – национальный 145 – интернациональный 177 – сетевой, специальный |
СМС
Команды приведены для текстового режима и в GSM кодировке.
Команда |
Ответ |
Описание |
AT+CMGS=»+790XXXXXXXX» >Test sms. alex-exe.ru |
> +CMGS: 15 OK |
Отправка СМС. Указываем номер получателя в кавычках и отправляем модулю с символом переноса строки (13 в ASCII). После приглашения «>» вводим текст сообщения. Для отправки в конце сообщения отправляем символ SUB (26 в ASCII) или ESC (27) для отмены. |
AT+CMGF=1 AT+CSCS= «GSM» |
Режим и кодировка. см. настройки и примечание |
|
+CMTI: «SM»,4 | Уведомление о приходе СМС. Второй параметр номер пришедшего СМС. |
|
AT+CMGL=»REC UNREAD» | +CMGL: 4,»REC UNREAD»,»+790XXXXXXXX»,»»,»13/09/24,23:02:22+24″ Test2. OK |
Чтение групп СМС. Всего 5 групп: REC UNREAD – входящие непрочитанные REC READ – входящие прочитанные STO UNSENT – Пользовательские непрочитанные STO SENT – пользовательские прочитанные ALL – прочитать все сообщения |
AT+CMGR=2 | +CMGR: «REC READ»,»+790XXXXXXXX»,»»,»13/09/21,11:57:46+24″ Test sms. alex-exe.ru OK |
Чтение SMS сообщений. Запрос: Первый параметр – номер сообщения. Второй параметр (необязателен): 0 – обычный режим (по умолчанию) 1 – не изменять статус сообщения Ответ: Первый параметр – группа сообщений, см предыдущий пункт. Второй параметр – номер отправителя 3 – дата отправки Далее следует текс сообщения. |
AT+CMGDA=»DEL SENT» | OK | Удаление групп СМС: DEL READ — прочитанные DEL UNREAD — не прочитанные DEL SENT — отправленные DEL UNSENT — не отправленные DEL INBOX — полученные DEL ALL — всех сообщения |
AT+CMGD=4 | OK | Удаление СМС. Первый параметр – номер сообщения Второй параметр: 0 – удаление указанного сообщения (по умолчанию) 1 – удаление прочитанных сообщений 2 – удаление прочитанных и отправленных сообщений 3 – удаление прочитанных, отправленных и не отправленных сообщений 4 – удаление всех сообщений |
AT+CSCA? | +CSCA: «+79126313431»,145 OK |
Возвращает номер сервис центра отправки сообщений. |
Тоновый набор (DTMF)
Тоновые сигналы: 0-9,#,*,A-D
Команда |
Ответ |
Описание |
AT+VTD=3 | OK | Длительность тоновых сигналов для AT+VTD. Значение параметра 1..255 |
AT+VTS=»1,4,#,A,6,7,0″ | OK | Отправить последовательность тоновых сигналов (до 20). Длительность задается командой AT+VTS. |
AT+CLDTMF=7, «1,4,#,A,6,7,0» | OK | Проиграть на модуле (через аудио выход) тоновые сигналы. Первый параметр — длительность 1-100 Второй параметр – строка тоновых сигналов, до 20. |
AT+VTD и AT+VTS команды, как мне кажется, работаю не корректно. VTD – должна устанавливать длительность тонового сигнала, а не паузу между ними, в то время когда тоновый сигнал в AT+VTS проигрывается быстро.
USSD
Команды приведены для текстового режима и в GSM кодировке.
Команда |
Ответ |
Описание |
AT+CUSD=1,»#100#» | OK +CUSD: 0,»Balance:240,68r «, |
USSD запрос Первый параметр – режим обработки операции: 0 – выполнить запрос, ответ проигнорировать 1 – выполнить запрос, вернуть ответ 2 – отменить запрос Второй параметр – запрос в кавычках. |
ATD#100#; | OK +CUSD: 0,»Balance:240,68r «, |
Упрощенный USSD запрос (работает только при GSM кодировке) |
Отмечу, что есть 2 варианта USSD запроса: начиная с * и начиная с #. В первом варианте ответ приходит на русском языке, во втором в латинице, если оператор такой запрос поддерживает и не ответит так же, как и в первом случае.
Режим отображения такой же, как и для СМС.
Примечание по текстовому режиму и кодировке
От текстового режима (PDU или текстовый) и кодировки модуля зависит формат ввода номеров, USSD запросов, входящих и исходящих СМС.
Самый геморройный и универсальный вариант – это PDU режим, т.к. в нём можно без проблем отправлять и принимать любые текстовые данные, но из-за его «геморойности» рассматривать его не буду.
Самый простой вариант – GSM кодировка. В нём номера вводятся привычным цифровым методом, исходящие и исходящие сообщения, как СМС, так и USSD в латинице отображаются, как им и полагается. С кириллицей дела обстоят посложнее, модуль входящие сообщения с ней отображает в UNICOD, точнее в HEX значениях UNICOD. С исходящими сообщениями дела обстоят сложнее!
Второй вариант, посложнее – UCS2 кодировка. Входящие и исходящие сообщения, USSD запросы, номера телефонов в запросах – всё пишется в UNICOD. Упрощенные USSD запросы не работают.
Другие варианты мной плохо опробованы, но у них тоже всё идёт в своей кодировке.
Пример (номер телефона заменён на +79012345678, добавлены переносы):
Кодировка |
Запрос |
Ответ |
PDU | AT+CMGR=2 | +CMGR: 1,»»,38 07919720780110F0000B919710325476F800003190121 175644215D4F29C0E9AB7E72E50985DC6B7CAF8B24B5E07 OK |
AT+CMGR=3 | +CMGR: 1,»»,59 07919720780110F0000B919710325476F800083190122 185134228005400650073007400200073006D00730020 0032002E0020042204350441044200200441043C0441 OK |
|
GSM | AT+CMGR=2 | +CMGR: «REC READ»,»+79012345678″,»»,»13/09/21,11:57:46+24″ Test sms. alex-exe.ru OK |
AT+CMGR=3 | AT+CMGR=3 +CMGR: «REC READ»,»+79012345678″,»»,»13/09/21,12:58:31+24″ 005400650073007400200073006D007300200032 002E0020042204350441044200200441043C0441 OK |
|
AT+CUSD=1,»#100#» | OK
+CUSD: 0,»Balance:240,68r «, |
|
UCS2 | AT+CMGR=2 | +CMGR: «REC READ»,»002B0037003900300031 0032003300340035003600370038″,»»,»13/09/21,11:57:46+24″ 005400650073007400200073006D0073002E0020 0061006C00650078002D006500780065002E00720075 OK |
AT+CMGR=3 | +CMGR: «REC READ»,»002B00370039003000310032 003300340035003600370038″,»»,»13/09/21,12:58:31+24″ 005400650073007400200073006D007300200032 002E0020042204350441044200200441043C0441 OK |
|
AT+CUSD=1,»00230031 003000300023″ |
OK
+CUSD: 0,»00420061006C0061006E00630065003A0032 |
Текст сообщений выданного на запрос «AT+CMGR=3» — «Test sms 2. Тест смс»
Кратко о UNICOD.
В юникоде символы кодируются в шестнадцатиричке записанной в текстовом виде, при этом первые 127 символов просто переводятся в HEX, а вот к кириллице добавляется 350h.
Пример: 1 – 0031, G – 0047, z — 007A, Ы — 042B, я — 044F
Для кодировки и раскодировки UNICOD на скорую руку была написана небольшая программка – скачать .
В статье привёл значительную часть основных команд GSM модуля SIM900 из огромного списка поддерживаемых им. Для большинства задач все приведенные команды не будут нужны, а хватит только малой их части. В одной из следующих статьей рассмотрю, как пользоваться GPRS AT-командами и пример его использования на примере простенькой домашней сигнализации. Так же бы было интересно достать и посмотреть прошивку «All-in-One».
Так же может быть интересно:
- GSM модем M10
- GSM модем FARGO MAESTRO 100
- GSM модем Siemens MC35i
- Документация на GSM модемы SIMCOM
Статья обновлена 2 октября 2013 года
AT Command | |||||||
Description |
AT+CPAS AT command returns of the module device status. Possible values are, |
||||||
Support | Module Tutorial | ||||||
Usage |
|
||||||
Examples |
AT+CPAS OK OK |
||||||
Keywords | AT+CPAS syntax, examples, parameters, error, input, response. |
Try this script included in AT Command Tester Tool.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Script-at_cpas.at
//Test AT+CPAS command
//AT+CPAS command is used to get phone activity status
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Get the list of supported responses
AT+CPAS=?
//WAIT for 1 sec
WAIT=1
//Get the phone activity status
//0 — Ready
// 2 — Unknown
// 3- Ringing (Device is ready for commands ringer is active
// 4- Call in progress
AT+CPAS
//WAIT for 1 sec
WAIT=1
//Let us dial a call
ATD858787433;
//WAIT for 3 sec
WAIT=3
//Get phone activity status now
AT+CPAS
//WAIT for 1 sec
WAIT=1
//Hang up the call
ATH
//WAIT for 7 sec
WAIT=7
//Get phone activity status now
AT+CPAS
Output of above script in AT Command Tester Tool.
AT+CPAS=?
+CPAS: (0,3,4)
OK
AT+CPAS
+CPAS: 0
OK
Device is Ready.
ATD858787433;
OK
Voice call successfull
AT+CPAS
+CPAS: 4
OK
Call in progress.
ATH
OK
Call successfully dis-connected..
AT+CPAS
+CPAS: 4
OK
Call in progress.
Диалог происходит по средством AT команд. Мы шлём модулю нужную команду или запрос, а он её выполняет и отвечает. Самая простая команда AT, на которую модуль тут же ответит OK, если модуль подключен и исправен. Самые популярные команды рассмотрим далее.
Почти все команды имеют 3 режима:
- тестовый =? – модуль ответит поддерживает ли он команду и возможные её параметры
- чтение ? – ответом будет текущие параметры для этой команды
- запись = записываем новые значения для команды.
A/ — повтор предыдущей команды
В статье, идёт речь о GSM модуле SIM900 (B09). Напоминаю, т.к. есть ещё и другие разновидности этого модуля и формат команд с ними может немного отличаться.
Управление портом
По умолчанию модуль настроен 9600 8N1, 9600 – скорость, 8 – бит в посылки, N – нет контроля чётности, 1- стоп бит.
Команда |
Ответ |
Описание |
AT+IPR? | +IPR: 0 OK |
Скорость порта: 0 – автоматически 1200 2400 4800 9600 19200 38400 57600 115200 |
AT+ICF? | +ICF: 3,3 OK |
Настройки передачи. Первый параметр: Бит в посылке/чётность/стоп бит 1 – 8/0/2 2 – 8/1/1 3 – 8/0/1 4 – 7/0/2 5 – 7/1/1 6 – 7/0/1 Второй параметр – чётность: 0 – нечётный 1 – чётный 3 – нет |
AT+IFC? | +IFC: 0,0 OK |
Контроль передачи данных Первый параметр – терминалом от модуля Второй параметр – модулем от терминала 0 – нет контроля 1 – программный 2 – аппаратный |
Информация и состояние
Информация о модуле
Команда |
Ответ |
Описание |
AT+GCAP | +GCAP:+FCLASS,+CGSM OK |
Возможности модуля |
AT+GMM | SIMCOM_SIM900 OK |
Идентификатор модуля |
AT+GMR | Revision:1137B09SIM900M64_ST OK |
Ревизия |
AT+GSN | 01322600XXXXXXX OK |
IMEI |
Информация о состояние модуля
Команда |
Ответ |
Описание |
AT+COPS? | +COPS: 0,0,»MTS-RUS» OK |
Информация об операторе |
AT+COPS=? | +COPS: (2,»MTS RUS»,»»,»25001″),(1,»MOTIV»,»MOTIV»,»25035″),(1,»Utel»,»Utel»,»25039″),,(0,1,4),(0,1,2) OK |
Доступные операторы |
AT+CPAS | +CPAS: 0 OK |
Информация о состояние модуля 0 – готов к работе 2 – неизвестно 3 – входящий звонок 4 – голосовое соединение |
AT+CREG? | +CREG: 0,1 OK |
Тип регистрации сети Первый параметр: 0 – нет кода регистрации сети 1 – есть код регистрации сети 2 – есть код регистрации сети + доп параметры Второй параметр: 0 – не зарегистрирован, поиска сети нет 1 – зарегистрирован, домашняя сеть 2 – не зарегистрирован, идёт поиск новой сети 3 – регистрация отклонена 4 – неизвестно 5 – роуминг |
AT+CSQ | +CSQ: 17,0 OK |
Уровень сигнала: 0 -115 дБл и меньше 1 -112 дБл 2-30 -110..-54 дБл 31 -52 дБл и сильнее 99 – нет сигнала. |
AT+CCLK? | +CCLK: «00/01/01,04:21:27+00» OK |
Текущая дата и время телефона. |
AT+CBC | +CBC: 0,95,4134 OK |
Монитор напряжения питания модуля Первый параметр: 0 – не заряжается 1 – заряжается 2 – зарядка окончена Второй параметр: 1-100 % — уровень заряда батареи Третий параметр: Напряжение питание модуля (VBAT), мВ |
AT+CADC? | +CADC: 1,7 OK |
Значение АЦП (до 2,8В) |
Настройки
Вызовов
Команда |
Ответ |
Описание |
AT+CLIP=1 | OK | АОН 1 – вкл / 0 – выкл |
AT+GSMBUSY=0 | OK | Запрет входящих звонков 0 – разрешены 1 – запрещены |
ATS0=0 | OK | Автоответ 0 – ручной 1-более – автомотический после заданного количества звонков |
СМС
Команда |
Ответ |
Описание |
AT+CMGF=1 | OK | Текстовый режим 1 – включить 0 – выключить см. примечание |
AT+CSCS= «GSM» | OK | Кодировка текстового режима Доступны следующие кодировки: IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1 см. примечание |
AT+CSCB=0 | OK | Приём специальных сообщений 0 – разрешен (по умолчанию) 1 – запрещен |
Остальные
Команда |
Ответ |
Описание |
ATE0 | OK | ЭХО 1 – вкл (по умолчанию) / 0 – выкл |
ATV1 | OK | Формат ответа модуля 0 – только ответ 1 – полный ответ с ЭХО (по умолчанию) |
AT+CMEE=0 | OK | Информация об ошибках 0 – отключён (по умолчанию) 1 – код ошибки 2 – описание ошибки |
AT+CCLK=»13/09/25,13:25:33+05″ | OK | Установка часов «yy/mm/dd,hh:mm:ss+zz» Где: год/месяц/дата, часы:минуты:секунды +часовой пояс |
AT+CPIN=XXXX | Ввод PIN кода | |
ATZ0 | Сброс настроек до по умолчанию (не до заводских) 0 или 1 – выбор профиля |
|
AT&F | Сброс настроек до заводских | |
AT&W | OK | Сохранение настроек для текущего профиля Параметр 0 или 1 — выбор профиля Параметр указывать сразу за командой (AT&W0) |
AT+CPOWD=1 | NORMAL POWER DOWN | Выключение модуля 0 – срочное 1 – нормальное |
AT+CFUN=1,1 | Энергосберегающий режим и перезагрузка Первый параметр: 0 – минимальный функционал 1 – нормальный режим (по умолчанию) 2 – выключения цепей приёма и передачи сигнала Второй параметр: 0 – выполнить без перезагрузки 1 – перезагрузить (доступно только в нормальном режиме, т.е. параметры = 1,1) |
Телефонные звонки
Команда |
Ответ |
Описание |
ATD+790XXXXXXXX; | OK | Позвонить на номер +790XXXXXXXX; |
NO DIALTONE BUSY NO CARRIER NO ANSWER |
Нет сигнала Если вызов отклонён Повесили трубку Нет ответа |
|
ATDL | OK | Позвонить по последнему исходящему номеру |
ATA | OK | Ответить на звонок |
ATH0 | OK | Повесить трубку/ разорвать соединение |
RING | Входящий звонок | |
AT+CLIP=1 | OK | см. настройки |
RING
+CLIP: «+790XXXXXXXX»,145,»»,,»»,0 |
Входящий звонок с включенным АОН Где: Первый параметр – номер телефона входящего звонка 2 – тип входящего номера 129 – не определен 161 – национальный 145 – интернациональный 177 – сетевой, специальный |
СМС
Команды приведены для текстового режима и в GSM кодировке.
Команда |
Ответ |
Описание |
AT+CMGS=»+790XXXXXXXX» >Test sms text |
> +CMGS: 15 OK |
Отправка СМС. Указываем номер получателя в кавычках и отправляем модулю с символом переноса строки (13 в ASCII). После приглашения «>» вводим текст сообщения. Для отправки в конце сообщения отправляем символ SUB (26 в ASCII) или ESC (27) для отмены. |
AT+CMGF=1 AT+CSCS= «GSM» |
Режим и кодировка. см. настройки и примечание |
|
+CMTI: «SM»,4 | Уведомление о приходе СМС. Второй параметр номер пришедшего СМС. |
|
AT+CMGL=»REC UNREAD» | +CMGL: 4,»REC UNREAD»,»+790XXXXXXXX»,»»,»13/09/24,23:02:22+24″ Test2. OK |
Чтение групп СМС. Всего 5 групп: REC UNREAD – входящие непрочитанные REC READ – входящие прочитанные STO UNSENT – Пользовательские непрочитанные STO SENT – пользовательские прочитанные ALL – прочитать все сообщения |
AT+CMGR=2 | +CMGR: «REC READ»,»+790XXXXXXXX»,»»,»13/09/21,11:57:46+24″ Test sms text OK |
Чтение SMS сообщений. Запрос: Первый параметр – номер сообщения. Второй параметр (необязателен): 0 – обычный режим (по умолчанию) 1 – не изменять статус сообщения Ответ: Первый параметр – группа сообщений, см предыдущий пункт. Второй параметр – номер отправителя 3 – дата отправки Далее следует текс сообщения. |
AT+CMGDA=»DEL SENT» | OK | Удаление групп СМС: DEL READ — прочитанные DEL UNREAD — не прочитанные DEL SENT — отправленные DEL UNSENT — не отправленные DEL INBOX — полученные DEL ALL — всех сообщения |
AT+CMGD=4 | OK | Удаление СМС. Первый параметр – номер сообщения Второй параметр: 0 – удаление указанного сообщения (по умолчанию) 1 – удаление прочитанных сообщений 2 – удаление прочитанных и отправленных сообщений 3 – удаление прочитанных, отправленных и не отправленных сообщений 4 – удаление всех сообщений |
AT+CSCA? | +CSCA: «+79126313431»,145 OK |
Возвращает номер сервис центра отправки сообщений. |
Тоновый набор (DTMF)
Тоновые сигналы: 0-9,#,*,A-D
Команда |
Ответ |
Описание |
AT+VTD=3 | OK | Длительность тоновых сигналов для AT+VTD. Значение параметра 1..255 |
AT+VTS=»1,4,#,A,6,7,0″ | OK | Отправить последовательность тоновых сигналов (до 20). Длительность задается командой AT+VTS. |
AT+CLDTMF=7, «1,4,#,A,6,7,0» | OK | Проиграть на модуле (через аудио выход) тоновые сигналы. Первый параметр — длительность 1-100 Второй параметр – строка тоновых сигналов, до 20. |
AT+VTD и AT+VTS команды, как мне кажется, работаю не корректно. VTD – должна устанавливать длительность тонового сигнала, а не паузу между ними, в то время когда тоновый сигнал в AT+VTS проигрывается быстро.
USSD
Команды для текстового режима и в GSM кодировке.
Команда |
Ответ |
Описание |
AT+CUSD=1,»#100#» | OK +CUSD: 0,»Balance:240,68r «, |
USSD запрос Первый параметр – режим обработки операции: 0 – выполнить запрос, ответ проигнорировать 1 – выполнить запрос, вернуть ответ 2 – отменить запрос Второй параметр – запрос в кавычках. |
ATD#100#; | OK +CUSD: 0,»Balance:240,68r «, |
Упрощенный USSD запрос (работает только при GSM кодировке) |
Отмечу, что есть 2 варианта USSD запроса: начиная с * и начиная с #. В первом варианте ответ приходит на русском языке, во втором в латинице, если оператор такой запрос поддерживает и не ответит так же, как и в первом случае.
Режим отображения такой же, как и для СМС.
Примечание по текстовому режиму и кодировке
От текстового режима (PDU или текстовый) и кодировки модуля зависит формат ввода номеров, USSD запросов, входящих и исходящих СМС.
Самый геморройный и универсальный вариант – это PDU режим, т.к. в нём можно без проблем отправлять и принимать любые текстовые данные, но из-за его «геморойности» рассматривать его не буду.
Самый простой вариант – GSM кодировка. В нём номера вводятся привычным цифровым методом, исходящие и исходящие сообщения, как СМС, так и USSD в латинице отображаются, как им и полагается. С кириллицей дела обстоят посложнее, модуль входящие сообщения с ней отображает в UNICOD, точнее в HEX значениях UNICOD. С исходящими сообщениями дела обстоят сложнее!
Второй вариант, посложнее – UCS2 кодировка. Входящие и исходящие сообщения, USSD запросы, номера телефонов в запросах – всё пишется в UNICOD. Упрощенные USSD запросы не работают.
Другие варианты мной плохо опробованы, но у них тоже всё идёт в своей кодировке.
Пример (номер телефона заменён на +79012345678, добавлены переносы):
Кодировка |
Запрос |
Ответ |
PDU | AT+CMGR=2 | +CMGR: 1,»»,38 07919720780110F0000B919710325476F800003190121 175644215D4F29C0E9AB7E72E50985DC6B7CAF8B24B5E07 OK |
AT+CMGR=3 | +CMGR: 1,»»,59 07919720780110F0000B919710325476F800083190122 185134228005400650073007400200073006D00730020 0032002E0020042204350441044200200441043C0441 OK |
|
GSM | AT+CMGR=2 | +CMGR: «REC READ»,»+79012345678″,»»,»13/09/21,11:57:46+24″ Test sms text OK |
AT+CMGR=3 | AT+CMGR=3 +CMGR: «REC READ»,»+79012345678″,»»,»13/09/21,12:58:31+24″ 005400650073007400200073006D007300200032 002E0020042204350441044200200441043C0441 OK |
|
AT+CUSD=1,»#100#» | OK
+CUSD: 0,»Balance:240,68r «, |
|
UCS2 | AT+CMGR=2 | +CMGR: «REC READ»,»002B0037003900300031 0032003300340035003600370038″,»»,»13/09/21,11:57:46+24″ 005400650073007400200073006D0073002E0020 0061006C00650078002D006500780065002E00720075 OK |
AT+CMGR=3 | +CMGR: «REC READ»,»002B00370039003000310032 003300340035003600370038″,»»,»13/09/21,12:58:31+24″ 005400650073007400200073006D007300200032 002E0020042204350441044200200441043C0441 OK |
|
AT+CUSD=1,»00230031 003000300023″ |
OK
+CUSD: 0,»00420061006C0061006E00630065003A0032 |
Текст сообщений выданного на запрос «AT+CMGR=3» — «Test sms 2. Тест смс»
Кратко о UNICODE
В юникоде символы кодируются в шестнадцатиричке записанной в текстовом виде, при этом первые 127 символов просто переводятся в HEX, а вот к кириллице добавляется 350h.
Пример: 1 – 0031, G – 0047, z — 007A, Ы — 042B, я — 044F
Программка для кодировки и раскодировки UNICODE – скачать.
В статье привёл значительную часть основных команд GSM модуля SIM900 из огромного списка поддерживаемых им. Для большинства задач все приведенные команды не будут нужны, а хватит только малой их части. В одной из следующих статьей рассмотрю, как пользоваться GPRS AT-командами и пример его использования на примере простенькой домашней сигнализации. Так же бы было интересно достать и посмотреть прошивку «All-in-One».
В предыдущей статье мы говорили о модуле SIM800l. В этой статье я хотел бы рассказать об управлении этим модулем. Как было сказано ранее — модуль управляется через UART интерфейс посредством AT команд. Конечно, все AT команды я перечислять не буду — для этого существует даташит, в котором все они подробно расписаны. Даташит вы можете скачать в конце статьи. Остановимся на самых распространенных и необходимых AT командах управления модулем SIM800l. Но прежде, я вкратце расскажу о том как подключить модуль. Итак, с питанием понятно — напряжение 4В и ток не менее 2А. Также понадобится переходник USB-UART, например такой. Подключаем переходник в свободный USB порт компьютера устанавливаем драйвера, далее подключаем RX вывод переходника к TX выводу модуля, а TX вывод модуля к RX выводу переходника. Вот и все. Запускаем любую терминальную программу (Hyper Terminal или PuTTy), и вносим настройки. Собственно по настройкам:
- Номер COM порта (смотрим в диспетчере устройств),
- Скорость соединения — 9600 (Хотя изначально модуль настроен на автоопределение).
- Четность — (8-N-1 4)
- Управление потоком — нет.
После подключения шлем модулю первую команду — AT и жмем Ентер. Если все правильно модуль должен ответить — OK. Теперь несколько команд для принудительной настройки UART порта модуля:
AT+IPR=115200 — эта команда настраивает скорость порта на 115200. Можно поставить любое значение: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200. Если поставить 0, то это означает автоопределение скорости (настройка по умолчанию). На команду модуль отвечает OK, или ERROR — если что-то не так. Чтобы узнать текущую установленную скорость даем команду AT+IPR?
AT+ICF=3,3 — эта команда служит для установки четности порта модуля. Имеет два параметра. Первый — отвечает за кол-во бит в посылке/четность/стопбит. Вот все варианты: 1 – 8/0/2, 2 – 8/1/1, 3 – 8/0/1, 4 – 7/0/2, 5 – 7/1/1, 6 – 7/0/1. Второй параметр — четность. Варианты: 0 – нечётный, 1 – чётный, 3 – нет. Т.е. команда AT+ICF=3,3 означает 8/0/1 (8 бит посылка, четность нет, стоп бит — 1). Для проверки текущей четности вводим AT+ICF?.
AT+IFC=0,0 — эта команда для установки контроля передачи данных. Первый параметр – терминалом от модуля, второй параметр – модулем от терминала. Возможные варианты: 0 – нет контроля, 1 – программный, 2 – аппаратный. По умолчанию контроль выключен.
Далее команды о состоянии модуля. Думаю принцип понятен и их я приведу уже в виде таблиц для удобства.
Команда | Ответ | Описание |
AT+GCAP | +GCAP:+FCLASS,+CGSM OK |
Возможности модуля |
AT+GMM | SIMCOM_SIM900 OK |
Идентификатор модуля |
AT+GMR | Revision:1137B09SIM900M64_ST OK |
Ревизия |
AT+GSN | 01322600XXXXXXX OK |
IMEI |
AT+COPS? | +COPS: 0,0,»MTS-RUS» OK |
Информация об операторе |
AT+COPS=? | +COPS: (2,»MTS RUS»,»»,»25001″),(1,»MOTIV»,»MOTIV»,»25035″),(1,»Utel»,»Utel»,»25039″),,(0,1,4),(0,1,2) OK |
Доступные операторы |
AT+CPAS | +CPAS: 0 OK |
Информация о состояние модуля 0 – готов к работе 2 – неизвестно 3 – входящий звонок 4 – голосовое соединение |
AT+CREG? | +CREG: 0,1 OK |
Тип регистрации сети Первый параметр: 0 – нет кода регистрации сети 1 – есть код регистрации сети 2 – есть код регистрации сети + доп параметры Второй параметр: 0 – не зарегистрирован, поиска сети нет 1 – зарегистрирован, домашняя сеть 2 – не зарегистрирован, идёт поиск новой сети 3 – регистрация отклонена 4 – неизвестно 5 – роуминг |
AT+CSQ | +CSQ: 17,0 OK |
Уровень сигнала: 0 -115 дБл и меньше 1 -112 дБл 2-30 -110..-54 дБл 31 -52 дБл и сильнее 99 – нет сигнала. |
AT+CCLK? | +CCLK: «00/01/01,04:21:27+00» OK |
Текущая дата и время телефона. |
AT+CBC | +CBC: 0,95,4134 OK |
Монитор напряжения питания модуля Первый параметр: 0 – не заряжается 1 – заряжается 2 – зарядка окончена Второй параметр: 1-100 % — уровень заряда батареи Третий параметр: Напряжение питание модуля (VBAT), мВ |
AT+CADC? | +CADC: 1,7 OK |
Значение АЦП (до 2,8В) |
Команды настроек вызовов
Команда | Ответ | Описание |
AT+CLIP=1 | OK | АОН 1 – вкл / 0 – выкл |
AT+GSMBUSY=0 | OK | Запрет входящих звонков 0 – разрешены 1 – запрещены |
ATS0=0 | OK | Автоответ 0 – ручной 1-более – автомотический после заданного количества звонков |
Команды настроек СМС
Команда | Ответ | Описание |
AT+CMGF=1 | OK | Текстовый режим 1 – включить 0 – выключить см. примечание |
AT+CSCS= «GSM» | OK | Кодировка текстового режима Доступны следующие кодировки: IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1 см. примечание |
AT+CSCB=0 | OK | Приём специальных сообщений 0 – разрешен (по умолчанию) 1 – запрещен |
Прочие команды настроек модуля
Команда | Ответ | Описание |
ATE0 | OK | ЭХО 1 – вкл (по умолчанию) / 0 – выкл |
ATV1 | OK | Формат ответа модуля 0 – только ответ 1 – полный ответ с ЭХО (по умолчанию) |
AT+CMEE=0 | OK | Информация об ошибках 0 – отключён (по умолчанию) 1 – код ошибки 2 – описание ошибки |
AT+CCLK=»13/09/25,13:25:33+05″ | OK | Установка часов «yy/mm/dd,hh:mm:ss+zz» Где: год/месяц/дата, часы:минуты:секунды +часовой пояс |
AT+CPIN=XXXX | Ввод PIN кода | |
ATZ0 | Сброс настроек до значений по умолчанию (не до заводских) 0 или 1 – выбор профиля |
|
AT&F | Сброс настроек до заводских | |
AT&W | OK | Сохранение настроек для текущего профиля Параметр 0 или 1 — выбор профиля Параметр указывать сразу за командой (AT&W0) |
AT+CPOWD=1 | NORMAL POWER DOWN | Выключение модуля 0 – срочное 1 – нормальное |
AT+CFUN=1,1 | Энергосберегающий режим и перезагрузка Первый параметр: 0 – минимальный функционал 1 – нормальный режим (по умолчанию) 2 – выключения цепей приёма и передачи сигнала Второй параметр: 0 – выполнить без перезагрузки 1 – перезагрузить (доступно только в нормальном режиме, т.е. параметры = 1,1) |
Команды для осуществления телефонных звонков
Команда | Ответ | Описание |
ATD+380XXXXXXXX; | OK | Позвонить на номер +380XXXXXXXX; |
NO DIALTONE BUSY NO CARRIER NO ANSWER |
Нет сигнала Если вызов отклонён Повесили трубку Нет ответа |
|
ATDL | OK | Позвонить по последнему исходящему номеру |
ATA | OK | Ответить на звонок |
ATH0 | OK | Повесить трубку/ разорвать соединение |
RING | Входящий звонок | |
AT+CLIP=1 | OK | см. настройки |
RING
+CLIP: «+380XXXXXXXX»,145,»»,,»»,0 |
Входящий звонок с включенным АОН Где: Первый параметр – номер телефона входящего звонка 2 – тип входящего номера 129 – не определен 161 – национальный 145 – интернациональный 177 – сетевой, специальный |
Команды для отправки СМС сообщений
Команда | Ответ | Описание |
AT+CMGS=
«+380XXXXXXXX» |
> +CMGS: 15 OK |
Отправка СМС. Указываем номер получателя в кавычках и отправляем модулю с символом переноса строки (13 в ASCII). После приглашения «>» вводим текст сообщения. Для отправки в конце сообщения отправляем символ SUB (26 в ASCII) или ESC (27) для отмены. |
AT+CMGF=1 AT+CSCS= «GSM» |
Режим и кодировка. см. настройки и примечание |
|
+CMTI: «SM»,4 | Уведомление о приходе СМС. Второй параметр номер пришедшего СМС. |
|
AT+CMGL=»REC UNREAD» | +CMGL: 4,»REC UNREAD»,»+380XXXXXXXX»,»
«,»13/09/24,23:02:22+24» |
Чтение групп СМС. Всего 5 групп: REC UNREAD – входящие непрочитанные REC READ – входящие прочитанные STO UNSENT – Пользовательские непрочитанные STO SENT – пользовательские прочитанные ALL – прочитать все сообщения |
AT+CMGR=2 | +CMGR: «REC READ»,»+380XXXXXXXX»,»
«,»13/09/21,11:57:46+24» |
Чтение SMS сообщений. Запрос: Первый параметр – номер сообщения. Второй параметр (необязателен): 0 – обычный режим (по умолчанию) 1 – не изменять статус сообщения Ответ: Первый параметр – группа сообщений, см предыдущий пункт. Второй параметр – номер отправителя 3 – дата отправки Далее следует текс сообщения. |
AT+CMGDA=»DEL SENT» | OK | Удаление групп СМС: DEL READ — прочитанные DEL UNREAD — не прочитанные DEL SENT — отправленные DEL UNSENT — не отправленные DEL INBOX — полученные DEL ALL — всех сообщения |
AT+CMGD=4 | OK | Удаление СМС. Первый параметр – номер сообщения Второй параметр: 0 – удаление указанного сообщения (по умолчанию) 1 – удаление прочитанных сообщений 2 – удаление прочитанных и отправленных сообщений 3 – удаление прочитанных, отправленных и не отправленных сообщений 4 – удаление всех сообщений |
AT+CSCA? | +CSCA: «+380991234567»,145 OK |
Возвращает номер сервис центра отправки сообщений. |
Тоновый набор (DTMF)
Тоновые сигналы: 0-9,#,*,A-D
Команда | Ответ | Описание |
AT+VTD=3 | OK | Длительность тоновых сигналов для AT+VTD. Значение параметра 1..255 |
AT+VTS=»1,4,#,A,6,7,0″ | OK | Отправить последовательность тоновых сигналов (до 20). Длительность задается командой AT+VTS. |
AT+CLDTMF=7, «1,4,#,A,6,7,0» | OK | Проиграть на модуле (через аудио выход) тоновые сигналы. Первый параметр — длительность 1-100 Второй параметр – строка тоновых сигналов, до 20. |
USSD
Команды приведены для текстового режима и в GSM кодировке.
Команда | Ответ | Описание |
AT+CUSD=1,»#100#» | OK +CUSD: 0,»Balance:240,68r «, |
USSD запрос Первый параметр – режим обработки операции: 0 – выполнить запрос, ответ проигнорировать 1 – выполнить запрос, вернуть ответ 2 – отменить запрос Второй параметр – запрос в кавычках. |
ATD#100#; | OK +CUSD: 0,»Balance:280 UAH», |
Упрощенный USSD запрос (работает только при GSM кодировке) |
GPRS
Настройка и установка GPRS соединения:
AT+SAPBR=3,1,«CONTYPE»,«GPRS»
AT+SAPBR=3,1,«APN»,«internet.beeline.ru»
AT+SAPBR=3,1,«USER»,«beeline»
AT+SAPBR=3,1,«PWD»,«beeline»
AT+SAPBR=1,1 — установка GPRS связи
AT+SAPBR=2,1 — полученный IP адрес
+SAPBR: 1,1,«10.229.9.115»
AT+SAPBR=4,1 — текущие настройки соединения
AT+SAPBR=0,1 — разорвать GPRS соединение
Перейти к содержимому (нажмите Enter)
AlexESD
Блог на тему ПК, Embedded, и разного другого.
AlexESD
Блог на тему ПК, Embedded, и разного другого.
Добавить комментарий
GSM модуль представляет собой беспроводное коммуникационное устройство (модем) для приема/передачи данных в сетях мобильной связи. В любом мобильном телефоне установлен такой модуль, благодаря которому возможно голосовое общение, прием сообщений, выход в интернет. В этой статье я расскажу про GSM/GPRS модуль NEOWAY M590, приведу описание и назначение основных команд.
Данный модуль, смонтированный на плате с минимальной обвязкой (а также в виде конструктора) можно приобрести в Китае, где он позиционируется как модуль под Arduino.
В китайском интернет магазине можно найти множество предложений с различными ценами на данный модуль, я например заказывал модуль здесь.
На следующей картинке представлена схема с рекомендуемой обвязкой модуля:
Модуль питается напряжением 3,3 – 4,5В, максимальный ток потребления кратковременно может достигать 2А (особенно в момент включения), поэтому конденсатор C1 должен иметь минимальную емкость в 1000 мкФ, желательно больше. В режиме ожидания средний ток потребления модуля равен 25 мА.
Для включения модуля необходимо подать положительный импульс на линию ON/OFF (база транзистора VT1), длительность импульса должна быть не менее 300 мс. После успешного включения и выхода в рабочий режим, светодиод статуса HL1 начнет мигать с частотой в 1Гц. Рекомендуется выдержать паузу в 2 секунды после включения, прежде чем отправлять команды на модуль. При включении модуль выдает сообщение MODEM:STARTUP, затем через 10-15 секунд сообщение +PBREADY, означающее, что телефонная книга готова к использованию.
Для выключения модуля необходимо повторно подать такой же положительный импульс, или же отправить специальную команду на выключение (AT+CPWROFF). В выключенном состоянии модуль потребляет ток в пределах 80 мкА.
Номинальное рабочее напряжение линий ввода/вывода модуля (RXD, TXD, DTR, RING, LED) составляет 2,85В. Напряжения на линиях ввода (RXD, DTR) не должны превышать 3,3В, для исключения их повреждения, поэтому для их сопряжения с логическими уровнями большего напряжения установлены элементы VD1, R1, VD2, R2. С помощью резисторов эти входы подтягиваются к линии VCCIO, после включения модуля на этой линии появляется напряжение величиной 2,85В (макс. выход. ток 3 мА), тем самым обеспечивается безопасный логический уровень для линий ввода. Диоды предотвращают входы от перенапряжения.
В случае зависания модуля, имеется возможность аварийного выключения, для этого необходимо подать положительный импульс на линию EMERGENCY OFF (база транзистора VT2) длительностью 100 мс. После этого необходимо выдержать паузу в 5 секунд перед повторным включением, чтобы исключить возможность повреждения модуля.
“Общение” с модулем осуществляется с помощью стандартного интерфейса UART, линия MCU TX подключается к выходу передатчика управляющего устройства (микроконтроллер, компьютер), вывод MCU RX к входу приемника управляющего устройства.
Для снижения энергопотребления в модуле предусмотрен спящий режим, по умолчанию этот режим отключен, для его включения необходимо предварительно подать команду на разрешение спящего режима (at+enpwrsave=1). Затем необходимо установить низкий логический уровень на линии SLEEP, после чего, через 10-30 секунд модуль “заснет”. Во время “сна” модуль не реагирует на команды, поступающие по UART. Установка высокого логического уровня на линии SLEEP, выводит модуль из спящего режима в течение 50 мс. Если во время “сна” поступит SMS сообщение, данные от сервера, или входящий звонок, то модуль проснется и отправить соответствующее сообщение по UART, после чего управляющее устройство должно выставить высокий логический уровень на линии SLEEP, чтобы продолжить обмен данными. Если этого не произойдет, модуль автоматически уйдет в “сон” в течение 10-30 сек. В спящем режиме потребляемый ток составляет 2,5-3 мА.
При поступлении входящего вызова на линии RING появляются импульсы с низким логическим уровнем длительностью 30 мс, частота следования один раз в 5 секунд (в такт звуку гудка). При получении SMS сообщения, на линии появляется однократный импульс длительностью 25-35 мс. Данную линию можно использовать для генерации прерываний в управляющем устройстве.
Линии DCD (16-й вывод модуля), DSR (17-й вывод модуля) не используются, остальные выводы задействованы для подключения СИМ карты A2.
В модуле отсутствует микрофонный вход, поэтому голосовую связь осуществить не получится, но само соединение устанавливается, если принять звонок от модуля, в динамике будет стоять тишина.
Чтобы поработать с модулем я подключил его к компьютеру с помощью USB-UART преобразователя. В качестве терминальной программы я использовал Terminal v1.9b by Bray. В программе необходимо выставить следующие настройки подключения: 8 бит данных, без проверки четности, один стоповый бит, управление потоком отключаем. По умолчанию модуль настроен на скорость 9600 бит/сек, также поддерживаются 1200, 2400, 4800, 19200, 38400, 57600, 115200 бит/сек.
На следующем скриншоте можно увидеть последовательность приема/передачи данных между компьютером и модулем:
Теперь рассмотрим структуру стандарта связи, инструкции и особенности приема/передачи данных. GSM модули управляются специальными AT командами, которые изложены в нескольких стандартах, таких как GSM 03.40, GSM 07.07 и т.д.
Любая команда начинается с символов AT, после которых следует название команды, параметр команды, и завершающий символ <CR> – возврат каретки (шестнадцатеричное значение 0x0D, в языках программирования “r”), этот символ должен присутствовать в конце каждой команды. Пример:
AT+IPR=9600<CR>, где +IPR – название команды (настройки скорости порта UART), 9600 – значение скорости порта которое передается модулю.
Для большинства команд можно запросить ее текущие и возможные варианты параметров:
Команда AT+IPR?<CR>, запрашивает текущее значение скорости порта.
Команда AT+IPR=?<CR>, запрашивает возможные варианты значений для скорости порта.
Если в конце команды опустить символ <CR>, то модуль не будет воспринимать команды. Для ввода этого символа в терминальной программе, необходимо указать его шестнадцатеричное значение из таблицы ASCII – $0D, символ $ указывает программе, что далее идет число шестнадцатеричном формате. В итоге команда в терминале будет выглядеть следующим образом: AT+IPR=9600$0D.
В GSM модемах имеется специальный режим, называемый “эхом”, это повторение символов получаемых от управляющего устройства. То есть, модуль возвращает полученную команду, а затем выдает ответ на эту команду. Если “эхо” отключено модем выдает только ответ. В моем случае режим “эха” в модуле был включен по умолчанию, выше на скриншоте программы в окне приема сообщений можно увидеть возвращенные команды.
Каждое ответное сообщение от модуля начинается и заканчивается символами <CR> и <LF>, где <LF> – символ перевода строки (шестнадцатеричное значение 0x0A, в языках программирования “n”). Пример ответа на команду AT+IPR?:
<CR><LF>+IPR: 9600<CR><LF><CR><LF>OK<CR><LF>
Эквивалентом комбинации символов <CR><LF> является действие клавиши Enter, то есть переход в начало следующей строки. Поэтому в терминале структура ответа выглядит следующем образом:
На этой строке находилась позиция курсора до получения ответа
+IPR: 9600
Здесь пустая строка
OK
Здесь находится текущая позиция курсора после получения ответа
На вышеприведенном скриншоте терминальной программы можно просмотреть структуру ответов модуля.
Ниже представлен список некоторых распространенных команд, используемых для разработки устройств на базе GSM модуля. Самая простая команда – AT, в ответ на которую модуль выдаст сообщение OK.
Команды настройки модуля:
Описание | Команда настройки режима “эха” | |
Формат | ATE<n> | |
Параметр | <n>: 0 – выключить; 1 – включить | |
Ответ | OK | |
Пример | ATE0
OK |
Описание | Команда проверки модели и версии модуля | |
Формат | ati | |
Пример | ati NEOWAY M590 REVISION 01.30c OK |
Модель Версия |
Описание | Команда чтения версии прошивки модуля | |
Формат | at+getvers | |
Ответ | <версия> OK или ERROR |
|
Пример | at+getvers 1103_C6C30000_V0130c OK |
Версия прошивки |
Описание | Команда сохранения текущей конфигурации настроек в EEPROM память | |
Формат | AT&W<значение> | |
Параметр | <значение>: 0 – сохранить настройки в 0-м профиле, параметр 0 можно не указывать; 1 – сохранить настройки в 1-м профиле |
|
Ответ | OK | |
Пример | AT&W
OK |
Описание | Команда настройки скорости порта UART | |
Формат | AT+IPR=<скорость предачи> | |
Параметр | <скорость предачи>: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/сек | |
Ответ | OK или ERROR | |
Пример | AT+IPR=9600 OK |
|
Запрос параметра | AT+IPR? +IPR: 9600 OK |
Скорость порта равна 9600 бит/сек |
Описание | Команда проверки статуса модуля | |
Формат | AT+CPAS | |
Параметр | <pas>: 0 – готов к работе 2 – неизвестно 3 – входящий звонок 4 – в режиме соединения 5 – спящий режим |
|
Ответ | +CPAS: <pas> OK (или ERROR) |
|
Пример | AT+CPAS +CPAS: 0 OK |
Модуль готов к работе |
Описание | Команда проверки регистрации модуля в сети | |
Формат | AT+CREG: <mode> | |
Параметр | <mode>: 0 – выключить уведомление о регистрации в сети 1 – включить уведомление о регистрации в сети +CREG: <stat> 2 – включить уведомление о регистрации в сети и информацию о местоположении< stat>: |
|
Ответ | OK или ERROR
AT+CREG: <mode>,<stat> |
|
Пример | AT+CREG=1 OK |
Включить уведомление о регистрации в сети |
Запрос параметров | AT+CREG? +CREG: 0,1 OK |
Зарегистрирован в домашней сети |
Описание | Команда настройки спящего режима | |
Формат | at+enpwrsave=<n> | |
Параметр | <n>: 0 – спящий режим запрещен; 1 – спящий режим разрешен |
|
Ответ | OK или ERROR | |
Пример | at+enpwrsave=1 OK |
|
Примечание | Значение параметра <n> не сохраняется после выключения модуля. |
Описание | Команда выключения модуля | |
Формат | AT+CPWROFF | |
Ответ | OK или ERROR | |
Пример | AT+CPWROFF OK |
|
Примечание | Не следует одновременно подавать команду и оперировать выводом ON/OFF модуля. |
Команды управления вызовом:
Описание | Команда настройки автоматического определения номера (АОН) | |
Формат | AT+CLIP=<n> | |
Параметр | <n>: 0 – АОН выключен; 1 – АОН включен |
|
Ответ | OK | |
Пример | AT+CLIP=1 OK |
|
Сообщение от модуля | RING | Входящий звонок (АОН отключен) |
RING
+CLIP: “79XXXXXXXXX”,145,,,“”,0 |
Входящий звонок (АОН включен)
“79XXXXXXXXX” – номер вызывающего телефона |
|
Примечание | Сообщение RING повторяется после каждого гудка |
Описание | Исходящий вызов для установления голосового соединения | |
Формат | ATD+79XXXXXXXXX; | |
Параметр | 79XXXXXXXXX – номер вызываемого телефона | |
Ответ | OK | |
Пример | ATD+79630749105; OK |
|
Сообщение от модуля | CONNECT BUSY NO ANSWER NO CARRIER |
Соединение установлено Занят другим сеансом связи Нет ответа Вызов сброшен |
Описание | Команда разъединения соединений (повесить трубку) | |
Формат | ATH<n> | |
Параметр | <n>: 0 – разъединить все вызовы, параметр 0 можно не указывать; 1 – разъединить исходящий вызов |
|
Ответ | OK | |
Пример | ATH OK |
Команды для работы с SMS сообщениями:
Описание | Команда настройки формата SMS сообщений | |
Формат | AT+CMGF=<режим> | |
Параметр | <режим>: 0 – PDU формат; 1 – текстовый формат | |
Ответ | OK или ERROR | |
Пример | AT+CMGF =1 OK |
|
Примечание | Если сообщение отправляется в PDU формате, необходимо установить кодировку UCS2 (при использовании кириллических символов), для текстового формата кодировку GSM, либо UCS2
В PDU формате, текст представлен в виде последовательности шестнадцатеричных чисел. |
Описание | Команда выбора кодировки текста | |
Формат | AT+CSCS=<chset> | |
Параметр | <chset>: “GSM” – кодировка ASCII “HEX” – кодировка шестнадцатеричными значениями “IRA” – международный справочный алфавит “PCCP437” – кодировка CP437 (IBM PC) “8859-1” – кодовые страницы семейства ISO 8859 “UCS2” – кодировка Unicode (2 байта на символ) |
|
Ответ | OK или ERROR | |
Пример | AT+CSCS=“GSM” OK |
Описание | Команда чтения SMS сообщения | |
Формат | AT+CMGR=<index> | |
Параметр | <index>: номер считываемого сообщения | |
Ответ | Для текстового формата (CMGF=1): +CMGR: <stat>,<oa>,<alpha>,<scts><CR><LF><data> OK (или ERROR) Для PDU формата (CMGF=0): <stat> – статус SMS сообщения: <alpha> – имя отправителя |
|
Пример | AT+CMGR=1 +CMGR: “REC READ”,“+79123456789”,“”,“15/11/13,14:39:35+32” GPS-START2 OK |
Для текстового формата кодировка ASCII (GSM) Получено сообщение: GPS-START2 |
AT+CMGR=1 +CMGR: “REC READ”,“+79123456789”,“”,“15/11/13,14:39:35+32” 004700500053002D005300540041005200540032 OK |
Для текстового формата кодировка Unicode (UCS2) Получено сообщение: GPS-START2 |
|
AT+CMGR=1 +CMGR: 1,,28 07919730071111F1040B919721436587F90000511131419353020 A47E8B435A506A55419 OK |
Для PDU формата специальная 7-ми битная кодировка Получено сообщение: GPS-START2 |
Описание | Команда отправки SMS сообщения | |
Формат | Для текстового формата (CMGF=1): AT+CMGS=<da><CR><text><ctrl-Z> Для PDU формата (CMGF=0): |
|
Параметр | <da> – номер на который посылается сообщение (в ASCII символах) <text> – текст сообщения в ASCII символах <length> – количество байт сообщения в PDU формате <pdu> – информация о SMS и текст сообщения в PDU формате |
|
Ответ | +CMGS: <mr> OK (или ERROR) <mr> – условный номер, присваиваемый модулем |
|
Пример | AT+CMGS=“+79123456789”<CR> > Perezvoni mne<ctrl-Z> +CMGS: 2 OK |
Для текстового формата Отправка сообщения “Perezvoni mne” |
AT+CMGS=27<CR> > 07919740030900F001000B919721436587F900080E 041F044004380432043504420021<ctrl-Z> > +CMGS: 2 OK |
Для PDU формата кодировка Unicode (UCS2) Отправка сообщения “Привет!” |
|
AT+CMGS=22<CR> > 07919740030900F001000B919721436587F900000A 47E8B435A506A55419<ctrl-Z> > +CMGS: 2 OK |
Для PDU формата специальная 7-ми битная кодировка Отправка сообщения “GPS-START2” |
|
Примечание | Сначала необходимо отправить команду AT+CMGS=“+79123456789”, затем дождаться приглашения в виде символов “> ” (> и пробел), после чего отправить текст сообщения. Для завершения процесса следует отправить символ <ctrl-Z> (шестнадцатеричное значение 0х1A)
Кириллические символы необходимо отправлять в кодировке Unicode (UCS2), только в формате PDU. Латинские символы можно отправлять в текстовом формате с кодировкой ASCII (GSM), либо в формате PDU с кодировкой Unicode (UCS2), или при помощи специальной 7-ми битной кодировки символами ASCII |
Описание | Команда удаления SMS сообщений | |
Формат | AT+CMGD=<index>,<delflag> | |
Параметр | <index> – порядковый номер удаляемого сообщения, для удаления одного сообщения <delflag> можно не указывать
<delflag>: |
|
Ответ | OK или ERROR | |
Пример | AT+CMGD=1 OK |
Удалить сообщение с номером 1 |
AT+CMGD=1,4 OK |
Удалить все сообщения |
Отправить сообщение в текстовом формате достаточно просто, а вот в PDU формате могут возникнуть трудности. В PDU формате SMS сообщение закодировано в виде последовательности шестнадцатеричных чисел, рассмотрим подробнее структуру этого формата:
Структура принятого SMS сообщения в формате PDU.
Обозначение | SCA | PDU Type | OA | PID | DCS | SCTS | UDL | UD |
Длина, байты | 1-12 | 1 | 2-12 | 1 | 1 | 7 | 1 | 0-140 |
Структура передаваемого SMS сообщения в формате PDU.
Обозначение | SCA | PDU Type | MR | DA | PID | DCS | VP | UDL | UD |
Длина, байты | 1-12 | 1 | 1 | 2-12 | 1 | 1 | 0,1,7 | 1 | 0-140 |
SCA – номер SMS центра, DA – номер телефона на который отправляем сообщение, OA – номер телефона от которого получено сообщение. Каждое из этих полей состоит из 3-х частей:
SCA | Размер поля SCA | Тип номера | Номер |
1 байт | 1 байт | От 0 до 6 байт | |
DA, OA | Длина номера | Тип номер | Номер |
1 байт | 1 байт | От 0 до 6 байт |
Тип номера представляет собой формат номера, например, международному формату соответствует шестнадцатеричное число 91h.
Номер формируется следующим образом (для примера возьмем +79123456789): если значение количества цифр номера нечетное, то дописываем в конце символ F, затем переставляем местами каждые две цифры, получим в итоге 9721436587F9.
“Размер поля SCA” равно количеству байт, которое занимают номер и его тип, для номера это 6 байт (9721436587F9) + тип 1 байт (91), итого 7 байт (07), в результате поле SCA будет выглядеть следующим образом: 07919721436587F9.
Для полей DA, OA, “длина номера” равна количеству цифр в номере, то есть 11 цифр для номера +79123456789, в шестнадцатеричном представлении получим 0Bh, В результате поля DA, OA будут иметь следующий вид: 0B919721436587F9.
Поле SCA можно не использовать, указав вместо него значение 00h, при этом модуль автоматически возьмет номер SMS центра из СИМ карты.
PDU Type – это байт с настройками сообщения:
Бит | Название | Назначение |
7 | RP | 0 – путь для ответа не определен; 1 – путь для ответа определен |
6 | UDHI | 0 – поле UD содержит сообщение; 1 – поле UD содержит сообщение и дополнительный заголовок. |
5 | SRR | 0 – статус сообщения не запрашивается; 1 – статус сообщения запрашивается. |
4,3 | VPF | 00 – поле VP отсутствует; 01 – зарезервировано; 10 – поле VP содержит время жизни сообщения в относительном формате; 11 – поле VP содержит время жизни сообщения в абсолютном формате. |
2 | RD | 0 – сервисному центру следует переслать сообщение получателю, если оно имеет те же значения полей MR и DA, что и предыдущее сообщение; 1 – сервисному центру следует отклонить сообщение, если оно имеет те же значения полей MR и DA, что и предыдущее сообщение. |
1,0 | MTI | 00 – если сообщение принято или подтверждение приема; 01 – если сообщение отправляется или подтверждение отправки; 10 — отчет о доставке или SMS-команда; 11 — зарезервировано. |
Для успешной отправки сообщения, поле PDU Type в общем случае может иметь значение 01h (00000001). Поле MTI равно 01, это указывает что сообщение исходящее. Поле VPF равно 00, для упрощения, чтобы исключить поле VP из PDU сообщения. Для принятого сообщения поле MTI, как правило, равно 00.
MR – порядковый номер сообщения, определяется модулем. Для передачи сообщения необходимо установить значение 00h.
PID – идентификатор протокола. Для передачи сообщения необходимо установить значение 00h.
DCS – кодировка текста сообщения:
00h – кодировка 7-бит (символы ASCII, только латинские);
04h – кодировка 8-бит (символы ASCII, только латинские);
08h – кодировка Unicode (UCS2), используется 2 байта на символ;
10h – кодировка 7-бит, сообщение выводится сразу на экран;
14h – кодировка 8-бит, сообщение выводится сразу на экран;
18h – кодировка Unicode (UCS2), сообщение выводится сразу на экран.
Специальная 7-ми битная кодировка представляет собой сжатый вид 8-ми битной кодировки. В ASCII таблице каждый символ занимает 1 байт (8 бит), но латинские символы занимают только 7 бит, самый старший незначащий бит равен нулю. Исходя из этого, придумали метод сжатия данных, в котором этот старший бит тоже используется, то есть биты ASCII символов перераспределяются таким образом, чтобы занять все старшие свободные биты. Для 8-ми битной кодировки в одно SMS сообщение помещается 140 символов, а при 7-ми битной кодировке 160. Для этих кодировок можно использовать только латинские символы, для кириллических символов необходимо использовать кодировку Unicode (справедливо и для латинских символов), где каждый символ кодируется 2-мя байтами, в одно SMS сообщение при этом поместится 70 символов.
VP – время жизни сообщения, необходимо для центра SMS сообщений, по истечении этого времени сообщение удаляется, если оно не получено абонентом. Как было сказано выше, чтобы упростить PDU сообщение, поле VP можно исключить, установив значение VPF равным 00, в поле PDU Type.
SCTS – время получения сообщения SMS центром, может отсутствовать.
UDL – значение длины поля UD в байтах, то есть размер текста сообщения.
UD – текст сообщения.
Рассмотрим пример отправляемого сообщения “Привет” в PDU формате:
AT+CMGS=27
07919740030900F001000B919721436587F900080E041F044004380432043504420021
Число 27 после названия команды (CMGS) означает, что длина PDU сообщения без учета поля SCA равна 27 байт.
07919740030900F0 – закодированный номер SMS центра (+79043090000);
01 – байт с настройками PDU сообщения (PDU Byte);
00 – порядковый номер сообщения (MR);
0B919721436587F9 – закодированный номер, на который отправляем сообщение (+79123456789);
00 – идентификатор протокола (PID);
08 – кодировка текста сообщения (DCS), кодировка Unicode (UCS2);
0E – длина текстового сообщения (UDL), 14 байт.
041F044004380432043504420021 – текст сообщения (UD), “Привет”.
Как было сказано выше, поле SCA с номером SMS центра можно исключить из PDU сообщения, указав вместо него значение 00, модуль автоматически возьмет номер из СИМ карты.
Данный модуль также поддерживает пакетную передачу данных GPRS, то есть можно организовать связь с удаленным сервером, выход в интернет. В статье GSM модуль NEOWAY M590 – GPRS команды приведено описание GPRS команд и способы передачи данных на сервер. На базе модуля совместно с микроконтроллером можно разрабатывать различные охранные устройства, системы сбора информации и т.д. Полный список команд на модуль можно найти в даташите приведенный в архиве в конце статьи, также в архиве присутствует книги и документы по AT командам. На основе этого модуля я разработал GPS GSM трекер, подробнее в статье GPS GSM трекер.
Даташит на GSM/GPRS модуль NEOWAY M590, документы по AT командам
Печатная плата GSM модуля Neoway M590 с обвязкой, в формате Sprint Layout 6
Купить модуль neoway m590 можно тут: http://ali.pub/1etjdu
Для подключения модуля к компьютеру нам понадобится:
Конвертер rs485 FTD232: http://ali.pub/1etju6
1. Модулей Neoway m590 на Aliexpress очень много, и все разные, поэтому будьте очень внимательны при заказе, так как на моем модуле, не было распиновки, и было непонятно где на модуле VCC, а где GND. Поэтому прежде чем заказать убедитесь, в наличии распиновки хотя бы на картинке у продавца.
Распиновка именно на мой модуль Neoway m590 GPRS100622:
Извиняюсь за мелкий шрифт на картинке, сам нашел эту распиновку случайно.
2.Важно понимать что модуль Neoway m590 самый дешевый, но и самый “прожерливый” по питанию. В пике своей активности потребление тока может достигать на 2А. Поэтому нужно запастись стабильным мощным питанием или припаять конденсатор в разрыв питания и самого модуля, чтоб просадка была поменьше для источника питания. Как я собственно и сделал в Видео ниже это наглядно видно.
3. Убедитесь что у Вас имеется в комплекте с заказываемым модулем антенна, ну или закажите ее отдельно к модулю. Так-как мой модуль пришел без антенны и он не связывается с оператором без нее.
4. Если все-же, Вам удалось подключиться к модуль через компьютер, то Вам необходимо знать список AT команд, чтобы общаться с модулем по средствам этих команд. Ссылку на файл со всеми АТ командами к модему я оставлю в конце этой статьи. Но Некоторые из этих команд я приведу в статье:
Описание | Команда настройки режима “эха” | |
Формат | ATE<n> | |
Параметр | <n>: 0 – выключить; 1 – включить | |
Ответ | OK | |
Пример | ATE0
OK |
Описание | Команда проверки модели и версии модуля | |
Формат | ati | |
Пример | ati NEOWAY M590 REVISION 01.30cOK |
МодельВерсия |
Описание | Команда чтения версии прошивки модуля | |
Формат | at+getvers | |
Ответ | <версия> OK или ERROR |
|
Пример | at+getvers 1103_C6C30000_V0130cOK |
Версия прошивки |
Описание | Команда сохранения текущей конфигурации настроек в EEPROM память | |
Формат | AT&W<значение> | |
Параметр | <значение>: 0 – сохранить настройки в 0-м профиле, параметр 0 можно не указывать; 1 – сохранить настройки в 1-м профиле |
|
Ответ | OK | |
Пример | AT&W
OK |
Описание | Команда настройки скорости порта UART | |
Формат | AT+IPR=<скорость предачи> | |
Параметр | <скорость предачи>: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/сек | |
Ответ | OK или ERROR | |
Пример | AT+IPR=9600 OK |
|
Запрос параметра | AT+IPR? +IPR: 9600OK |
Скорость порта равна 9600 бит/сек |
Описание | Команда проверки статуса модуля | |
Формат | AT+CPAS | |
Параметр | <pas>: 0 – готов к работе 2 – неизвестно 3 – входящий звонок 4 – в режиме соединения 5 – спящий режим |
|
Ответ | +CPAS: <pas> OK (или ERROR) |
|
Пример | AT+CPAS +CPAS: 0OK |
Модуль готов к работе |
Описание | Команда проверки регистрации модуля в сети | |
Формат | AT+CREG: <mode> | |
Параметр | <mode>: 0 – выключить уведомление о регистрации в сети 1 – включить уведомление о регистрации в сети +CREG: <stat> 2 – включить уведомление о регистрации в сети и информацию о местоположении<stat>: 0 – не зарегистрирован, поиск сети не выполняется 1 – зарегистрирован в домашней сети 2 – регистрация отклонена 3 – не зарегистрирован, выполняется поиск сети 4 – неизвестно 5 – зарегистрирован, зона роуминга |
|
Ответ | OK или ERRORAT+CREG: <mode>,<stat> OK |
|
Пример | AT+CREG=1 OK |
Включить уведомление о регистрации в сети |
Запрос параметров | AT+CREG? +CREG: 0,1OK |
Зарегистрирован в домашней сети |
Описание | Команда настройки спящего режима | |
Формат | at+enpwrsave=<n> | |
Параметр | <n>: 0 – спящий режим запрещен; 1 – спящий режим разрешен |
|
Ответ | OK или ERROR | |
Пример | at+enpwrsave=1 OK |
|
Примечание | Значение параметра <n> не сохраняется после выключения модуля. |
Описание | Команда выключения модуля | |
Формат | AT+CPWROFF | |
Ответ | OK или ERROR | |
Пример | AT+CPWROFF OK |
|
Примечание | Не следует одновременно подавать команду и оперировать выводом ON/OFF модуля. |
Команды управления вызовом:
Описание | Команда настройки автоматического определения номера (АОН) | |
Формат | AT+CLIP=<n> | |
Параметр | <n>: 0 – АОН выключен; 1 – АОН включен |
|
Ответ | OK | |
Пример | AT+CLIP=1 OK |
|
Сообщение от модуля | RING | Входящий звонок (АОН отключен) |
RING
+CLIP: “79XXXXXXXXX”,145,,,“”,0 |
Входящий звонок (АОН включен)
“79XXXXXXXXX” – номер вызывающего телефона |
|
Примечание | Сообщение RING повторяется после каждого гудка |
Описание | Исходящий вызов для установления голосового соединения | |
Формат | ATD+79XXXXXXXXX; | |
Параметр | 79XXXXXXXXX – номер вызываемого телефона | |
Ответ | OK | |
Пример | ATD+79630749105; OK |
|
Сообщение от модуля | CONNECT BUSY NO ANSWER NO CARRIER |
Соединение установлено Занят другим сеансом связи Нет ответа Вызов сброшен |
Описание | Команда разъединения соединений (повесить трубку) | |
Формат | ATH<n> | |
Параметр | <n>: 0 – разъединить все вызовы, параметр 0 можно не указывать; 1 – разъединить исходящий вызов |
|
Ответ | OK | |
Пример | ATH OK |
Команды для работы с SMS сообщениями:
Если хотите чтоб отправлялся нормальный текст в сообщениях, нужно выбрать “текстовый формат”
Описание | Команда настройки формата SMS сообщений | |
Формат | AT+CMGF=<режим> | |
Параметр | <режим>: 0 – PDU формат; 1 – текстовый формат | |
Ответ | OK или ERROR | |
Пример | AT+CMGF =1 OK |
|
Примечание | Если сообщение отправляется в PDU формате, необходимо установить кодировку UCS2 (при использовании кириллических символов), для текстового формата кодировку GSM, либо UCS2
В PDU формате, текст представлен в виде последовательности шестнадцатеричных чисел. |
Для нормальной кодировки английского текста я выбирал “GSM”
Описание | Команда выбора кодировки текста | |
Формат | AT+CSCS=<chset> | |
Параметр | <chset>: “GSM” – кодировка ASCII “HEX” – кодировка шестнадцатеричными значениями “IRA” – международный справочный алфавит “PCCP437” – кодировка CP437 (IBM PC) “8859-1” – кодовые страницы семейства ISO 8859 “UCS2” – кодировка Unicode (2 байта на символ) |
|
Ответ | OK или ERROR | |
Пример | AT+CSCS=“GSM” OK |
Описание | Команда чтения SMS сообщения | |
Формат | AT+CMGR=<index> | |
Параметр | <index>: номер считываемого сообщения | |
Ответ | Для текстового формата (CMGF=1): +CMGR: <stat>,<oa>,<alpha>,<scts><CR><LF><data> OK (или ERROR)Для PDU формата (CMGF=0): +CMGR: <stat>,<alpha>,<length>,<scts><CR><LF><pdu> OK (или ERROR)<stat> — статус SMS сообщения: 0 – для PDU формата, REC UNREAD – для текстового формата: входящее непрочитанное сообщение 1 – для PDU формата, REC READ – для текстового формата: входящее прочитанное сообщение 2 – для PDU формата, STO UNSENT – для текстового формата: неотправленное (исходящее) сообщение 3 – для PDU формата, STO SENT – для текстового формата: отправленное сообщение 4 – для PDU формата, ALL – для текстового формата: все сообщения<alpha> – имя отправителя <scts> – отметка времени сервис-центра в формате: год/месяц/день, часы: минуты: секунды ± часовой пояс <data> – текст сообщения в ASCII символах <length> – количество символов сообщения (для PDU формата) <pdu> – информация о SMS и текст сообщения в PDU формате |
|
Пример | AT+CMGR=1 +CMGR: “REC READ”,“+79123456789”,“”,“15/11/13,14:39:35+32” GPS-START2OK |
Для текстового формата кодировка ASCII (GSM) Получено сообщение: GPS-START2 |
AT+CMGR=1 +CMGR: “REC READ”,“+79123456789”,“”,“15/11/13,14:39:35+32” 004700500053002D005300540041005200540032OK |
Для текстового формата кодировка Unicode (UCS2) Получено сообщение: GPS-START2 |
|
AT+CMGR=1 +CMGR: 1,,28 07919730071111F1040B919721436587F90000511131419353020 A47E8B435A506A55419OK |
Для PDU формата специальная 7-ми битная кодировка Получено сообщение: GPS-START2 |
Описание | Команда отправки SMS сообщения | |
Формат | Для текстового формата (CMGF=1): AT+CMGS=<da><CR><text><ctrl-Z>Для PDU формата (CMGF=0): AT+CMGS=<length><CR><pdu><ctrl-Z> |
|
Параметр | <da> – номер на который посылается сообщение (в ASCII символах) <text> – текст сообщения в ASCII символах <length> – количество байт сообщения в PDU формате <pdu> – информация о SMS и текст сообщения в PDU формате |
|
Ответ | +CMGS: <mr> OK (или ERROR)<mr> – условный номер, присваиваемый модулем |
|
Пример | AT+CMGS=“+79123456789”<CR> > Perezvoni mne<ctrl-Z> +CMGS: 2OK |
Для текстового формата Отправка сообщения “Perezvoni mne” |
AT+CMGS=27<CR> > 07919740030900F001000B919721436587F900080E 041F044004380432043504420021<ctrl-Z> > +CMGS: 2OK |
Для PDU формата кодировка Unicode (UCS2) Отправка сообщения “Привет!” |
|
AT+CMGS=22<CR> > 07919740030900F001000B919721436587F900000A 47E8B435A506A55419<ctrl-Z> > +CMGS: 2OK |
Для PDU формата специальная 7-ми битная кодировка Отправка сообщения “GPS-START2” |
|
Примечание | Сначала необходимо отправить команду AT+CMGS=“+79123456789”, затем дождаться приглашения в виде символов “> ” (> и пробел), после чего отправить текст сообщения. Для завершения процесса следует отправить символ <ctrl-Z> (шестнадцатеричное значение 0х1A)
Кириллические символы необходимо отправлять в кодировке Unicode (UCS2), только в формате PDU. Латинские символы можно отправлять в текстовом формате с кодировкой ASCII (GSM), либо в формате PDU с кодировкой Unicode (UCS2), или при помощи специальной 7-ми битной кодировки символами ASCII |
Описание | Команда удаления SMS сообщений | |
Формат | AT+CMGD=<index>,<delflag> | |
Параметр | <index> – порядковый номер удаляемого сообщения, для удаления одного сообщения <delflag> можно не указывать
<delflag>: |
|
Ответ | OK или ERROR | |
Пример | AT+CMGD=1 OK |
Удалить сообщение с номером 1 |
AT+CMGD=1,4 OK |
Удалить все сообщения |
Отправить сообщение в текстовом формате достаточно просто, а вот в PDU формате могут возникнуть трудности. В PDU формате SMS сообщение закодировано в виде последовательности шестнадцатеричных чисел, рассмотрим подробнее структуру этого формата:
Структура принятого SMS сообщения в формате PDU.
Обозначение | SCA | PDU Type | OA | PID | DCS | SCTS | UDL | UD |
Длина, байты | 1-12 | 1 | 2-12 | 1 | 1 | 7 | 1 | 0-140 |
Структура передаваемого SMS сообщения в формате PDU.
Обозначение | SCA | PDU Type | MR | DA | PID | DCS | VP | UDL | UD |
Длина, байты | 1-12 | 1 | 1 | 2-12 | 1 | 1 | 0,1,7 | 1 | 0-140 |
SCA – номер SMS центра, DA – номер телефона на который отправляем сообщение, OA – номер телефона от которого получено сообщение. Каждое из этих полей состоит из 3-х частей:
SCA | Размер поля SCA | Тип номера | Номер |
1 байт | 1 байт | От 0 до 6 байт | |
DA, OA | Длина номера | Тип номер | Номер |
1 байт | 1 байт | От 0 до 6 байт |
Тип номера представляет собой формат номера, например, международному формату соответствует шестнадцатеричное число 91h.
Номер формируется следующим образом (для примера возьмем +79123456789): если значение количества цифр номера нечетное, то дописываем в конце символ F, затем переставляем местами каждые две цифры, получим в итоге 9721436587F9.
“Размер поля SCA” равно количеству байт, которое занимают номер и его тип, для номера это 6 байт (9721436587F9) + тип 1 байт (91), итого 7 байт (07), в результате поле SCA будет выглядеть следующим образом: 07919721436587F9.
Для полей DA, OA, “длина номера” равна количеству цифр в номере, то есть 11 цифр для номера +79123456789, в шестнадцатеричном представлении получим 0Bh, В результате поля DA, OA будут иметь следующий вид: 0B919721436587F9.
Поле SCA можно не использовать, указав вместо него значение 00h, при этом модуль автоматически возьмет номер SMS центра из СИМ карты.
PDU Type – это байт с настройками сообщения:
Бит | Название | Назначение |
7 | RP | 0 – путь для ответа не определен; 1 – путь для ответа определен |
6 | UDHI | 0 – поле UD содержит сообщение; 1 – поле UD содержит сообщение и дополнительный заголовок. |
5 | SRR | 0 – статус сообщения не запрашивается; 1 – статус сообщения запрашивается. |
4,3 | VPF | 00 – поле VP отсутствует; 01 – зарезервировано; 10 – поле VP содержит время жизни сообщения в относительном формате; 11 – поле VP содержит время жизни сообщения в абсолютном формате. |
2 | RD | 0 – сервисному центру следует переслать сообщение получателю, если оно имеет те же значения полей MR и DA, что и предыдущее сообщение; 1 – сервисному центру следует отклонить сообщение, если оно имеет те же значения полей MR и DA, что и предыдущее сообщение. |
1,0 | MTI | 00 – если сообщение принято или подтверждение приема; 01 – если сообщение отправляется или подтверждение отправки; 10 — отчет о доставке или SMS-команда; 11 — зарезервировано. |
Для успешной отправки сообщения, поле PDU Type в общем случае может иметь значение 01h (00000001). Поле MTI равно 01, это указывает что сообщение исходящее. Поле VPF равно 00, для упрощения, чтобы исключить поле VP из PDU сообщения. Для принятого сообщения поле MTI, как правило, равно 00.
MR – порядковый номер сообщения, определяется модулем. Для передачи сообщения необходимо установить значение 00h.
PID – идентификатор протокола. Для передачи сообщения необходимо установить значение 00h.
DCS – кодировка текста сообщения:
00h – кодировка 7-бит (символы ASCII, только латинские);
04h – кодировка 8-бит (символы ASCII, только латинские);
08h – кодировка Unicode (UCS2), используется 2 байта на символ;
10h – кодировка 7-бит, сообщение выводится сразу на экран;
14h – кодировка 8-бит, сообщение выводится сразу на экран;
18h – кодировка Unicode (UCS2), сообщение выводится сразу на экран.
Специальная 7-ми битная кодировка представляет собой сжатый вид 8-ми битной кодировки. В ASCII таблице каждый символ занимает 1 байт (8 бит), но латинские символы занимают только 7 бит, самый старший незначащий бит равен нулю. Исходя из этого, придумали метод сжатия данных, в котором этот старший бит тоже используется, то есть биты ASCII символов перераспределяются таким образом, чтобы занять все старшие свободные биты. Для 8-ми битной кодировки в одно SMS сообщение помещается 140 символов, а при 7-ми битной кодировке 160. Для этих кодировок можно использовать только латинские символы, для кириллических символов необходимо использовать кодировку Unicode (справедливо и для латинских символов), где каждый символ кодируется 2-мя байтами, в одно SMS сообщение при этом поместится 70 символов.
VP – время жизни сообщения, необходимо для центра SMS сообщений, по истечении этого времени сообщение удаляется, если оно не получено абонентом. Как было сказано выше, чтобы упростить PDU сообщение, поле VP можно исключить, установив значение VPF равным 00, в поле PDU Type.
SCTS – время получения сообщения SMS центром, может отсутствовать.
UDL – значение длины поля UD в байтах, то есть размер текста сообщения.
UD – текст сообщения.
Рассмотрим пример отправляемого сообщения “Привет” в PDU формате:
AT+CMGS=27
07919740030900F001000B919721436587F900080E041F044004380432043504420021
Число 27 после названия команды (CMGS) означает, что длина PDU сообщения без учета поля SCA равна 27 байт.
07919740030900F0 – закодированный номер SMS центра (+79043090000);
01 – байт с настройками PDU сообщения (PDU Byte);
00 – порядковый номер сообщения (MR);
0B919721436587F9 – закодированный номер, на который отправляем сообщение (+79123456789);
00 – идентификатор протокола (PID);
08 – кодировка текста сообщения (DCS), кодировка Unicode (UCS2);
0E – длина текстового сообщения (UDL), 14 байт.
041F044004380432043504420021 – текст сообщения (UD), “Привет”.
Как было сказано выше, поле SCA с номером SMS центра можно исключить из PDU сообщения, указав вместо него значение 00, модуль автоматически возьмет номер из СИМ карты.
Ссылка на все AT команды: https://yadi.sk/i/yNTfsitC3Hc2Fv
Видео: