At cpas error

GSM/GPRS SHIELD A6 и GSM/GPRS SHIELD A9 подключаются по шине UART и способны выполнять AT-команды. AT-команда это строка начинающаяся с букв «AT» (от английского attention - «внимание»). Shield выполняет поступившую команду и отправляет обратно ответ (результат выполнения команды), который также является строкой. В GSM/GPRS SHIELD каждая команда (как и ответ) должна заканчиваться символами перевода строки «rn».

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
Проверка связи:

  • Используется для проверки связи с shield.
CPOF AT+CPOFrn
(выключить модуль)
rn
OKrn
Выключение модуля:

  • Shield ведёт себя так, как при подаче логической «1» на вывод «PWR».
  • Если на выводе «PWR» установлен логический «0», то после выключения shield снова включится.
ATS0 ATS0?rn
(запрос текущего количества гудков до автоответа)
rn
ЧИСЛОrn
rn
OKrn
Установка/запрос автоматического ответа на вызовы:

  • ЧИСЛО — указывает количество гудков перед автоответом (от 0 до 255), если указан 0, то автоответ отключён.
  • Пример ответа: 5rnOKrn — установлен автоответ после 5 гудков.
  • Пример установки: ATS0=2rn — включить автоответ после 2 гудков.
ATS0=ЧИСЛОrn
(установка количества гудков)
rn
OKrn
ATS3 ATS3?rn
(Запрос текущего кода)
rn
ЧИСЛОrn
rn
OKrn
Установка/запрос кода символа конца командной строки:

  • ЧИСЛО — определяет код символа конца строки в десятичной системе счисления.
  • Пример ответа: 13rnOKrn — код символа конца строки равен 13.
  • Пример установки: ATS3=13rn — установить значение 13 как код символа конца строки.
ATS3=ЧИСЛОrn
(установка кода символа)
rn
OKrn
ATS4 ATS4?rn
(Запрос текущего кода)
rn
ЧИСЛОrn
rn
OKrn
Установка/запрос кода символа начала командной строки:

  • ЧИСЛО — определяет код символа начала строки в десятичной системе счисления.
  • Пример ответа: 10rnOKrn — код символа конца строки равен 10.
  • Пример установки: ATS4=10rn — установить значение 10 как код символа начала строки.
ATS4=ЧИСЛОrn
(установка кода символа)
rn
OKrn
ATS5 ATS5?rn
(запрос текущего кода)
rn
ЧИСЛОrn
rn
OKrn
Установка/запрос кода символа backspace для командной строки:

  • ЧИСЛО — определяет код символа backspace в десятичной системе счисления. Это символ который удаляет предшествующий ему символ.
  • Пример ответа: 8rnOKrn — код символа backspace равен 8.
  • Пример установки: ATS5=8rn — установить значение 8 как код символа backspace.
ATS5=ЧИСЛОrn
(установка кода символа)
rn
OKrn
+++ +++rn
(переключение в командный режим)
rn
OKrn
Переключение из режима online в режим offline:

  • Во время соединения (в режиме данных или PPP) можно перейти в режим offline (командный режим) который позволяет использовать AT команды. Противоположность команды «ATO».
ATO ATOrn
(переключение в режим данных)
rn
OKrn
Переключение из режима offline в режим online:

  • Если соединение установлено и устройство находится в командном режиме (offline), то данная команда позволяет вернуться в режим online (режим данных или PPP). Противоположность команды «+++».
AT&F AT&Frn
(загрузка заводского профиля)
rn
OKrn
Восстановить заводские настройки:

  • Команда загружает профиль по умолчанию (заводской профиль).
  • Стоит учесть что у модуля есть возможность сохранять пользовательский (индивидуальный) профиль «AT&W» и загружать его «ATZ».
ATV ATV0rn
(установка коротких ответов)
rn
OKrn
Установка формата ответа модуля:

  • ATV0 — Короткие заголовки и цифровые коды ответа, например, вместо OKrn будет число 0rn.
  • ATV1 — Полные заголовки и текстовые ответы, как в примерах данной статьи.
  • Список текстовых ответов и их цифровых кодов:
    • 0 — «OK»
    • 1 — «CONNECT»
    • 2 — «RING/CRING»
    • 3 — «NO CARRIER»
    • 4 — «ERROR»
    • 5 — «NO DIALTONE»
    • 6 — «BUSY»
    • 7 — «NO ANSWER»
    • 8 — «NOT SUPPORT»
    • 9 — «INVALID COMMAND LINE»
ATV1rn
(установка полных ответов)
rn
OKrn
ATE ATE0rn
(отключить эхо)
rn
OKrn
Включить/отключить эхо в ответах на AT-команды:

  • ATE0 — Отключить эхо. После выполнения AT-команд будет выводиться только ответ (результат их выполнения).
  • ATE1 — Включить эхо. После выполнения AT-команд, перед ответом, будет вставлена строка с текстом полученной AT-команды.
ATE1rn
(включить эхо)
rn
OKrn
AT&W AT&Wrn
(сохранить настройки в пользовательский профиль)
rn
OKrn
Сохранить текущие настройки в области EEPROM:

  • Сохраняет текущие настройки как пользовательский (индивидуальный) профиль, который потом можно загрузить командой «ATZ».
ATQ ATQ0rn rn
OKrn
Включить/отключить результирующие коды:

  • ATQ0 — Модуль (DCE) передает результирующие коды.
  • ATQ1 — Результирующие коды блокируются и не передаются.
ATQ1rn rn
OKrn
ATX ATX0rn rn
OKrn
Установка формата кода результата соединения и мониторинг вызовов:

  • ATX0 — Возвращать только код результата соединения, обнаружение тонального набора и определение занятости отключены.
  • ATX1 — Возвращать код и текст результата соединения, обнаружение тонального набора и определение занятости отключены.
  • ATX2 — Возвращать код и текст результата соединения, обнаружение тонального набора включено, определение занятости отключено.
  • ATX3 — Возвращать код и текст результата соединения, обнаружение тонального набора отключено, определение занятости включено.
  • ATX4 — Возвращать код и текст результата соединения, обнаружение тонального набора и определение занятости включено.
ATX1rn rn
OKrn
ATX2rn rn
OKrn
ATX3rn rn
OKrn
ATX4rn rn
OKrn
ATZ ATZrn
(загрузить пользовательский профиль)
rn
OKrn
Восстановить пользовательские настройки:

  • Устанавливает текущие настройки из пользовательского (индивидуального) профиля, сохранённого ранее в области EEPROM командой «AT&W». Если выполняется соединение, то оно будет разорвано.
CFUN AT+CFUN=ЧИСЛОrn
(установка требуемого функционала)
rn
OKrn
Установка набора функциональных возможностей:

  • ЧИСЛО — значение от 0 до 6 указывающее какие именно функциональные возможности требуется установить:
    0 — Установить минимальную функциональность (процедура отсоединения IMSI).
    1 — Установить полный набор функциональных возможностей с полной перезагрузкой.
    2 — Отключить радиочастотные цепи передачи данных.
    3 — Отключить радиочастотные цепи приёма данных.
    4 — Отключите радиочастотные цепи приёма и передачи данных.
    5 — Включить платформу CSW.
    6 — Отключить платформу CSW.
  • В настоящее время модули A6 и A9 поддерживают только значения 0 и 1.
  • Пример установки: AT+CFUN=1rn — установить полный набор функций с перезагрузкой.
CMEE AT+CMEE=?rn
(запрос допустимых значений)
rn
+CMEE: (0-2)rn
rn
OKrn
Установка/запрос формата вывода сообщений об ошибках мобильного оборудования:

  • ЧИСЛО — значение от 0 до 2 определяющее формат вывода ошибок:
    0 — При возникновении ошибок возвращать только текст «ERROR», без указания кода ошибки.
    1 — При возникновении ошибок возвращать код ошибки.
    2 — При возникновении ошибок возвращать текст описывающий возникшую ошибку.
  • Пример ответа: +CMEE: 1rnOKrn — при возникновении ошибок возвращается их код.
  • Пример установки: AT+CMEE=1rn — при возникновении ошибок возвращать их код.
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
Установка/запрос набора символов терминального оборудования:

  • ИМЯ — название набора символов:
    «GSM» — 7-битный алфавит GSM (3GPP TS 23.038).
    «HEX» — шестнадцатеричный режим, без кодировки.
    «PCCP936» — таблица символов PC страница 437.
    «UCS2» — 16-битная таблица символов ISO / IEC10646.
  • Пример ответа: +CSCS: «PCCP936»rnOKrn — текст выводится в формате PCCP936.
  • Пример установки: AT+CSCS=»UCS2″rn — выводить текст в формате UCS2.
AT+CSCS?rn
(запрос текущего набора символов)
rn
+CSCS: ИМЯrn
rn
OKrn
AT+CSCS=ИМЯrn
(установка набора символов)
rn
OKrn
CMUX AT+CMUX=?rn
(запрос допустимых режимов)
rn
+CMUX: (0)rn
rn
OKrn
Установка/запрос режима мультиплексирования:

  • ЧИСЛО — значение 0 (или 1):
    0 — Базовый режим.
    1 — Включить канал управления протоколом мультиплексирования.
  • В настоящее время модули A6 и A9 поддерживают только базовый режим.
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:

  • РАЗМЕР — представлен цифрой от 1 до 6:
    0 — автоматическое определение.
    1 — 8 бит, 2 стоп бита, проверка нечётности.
    2 — 8 бит, 1 стоп бит, проверка чётности.
    3 — 8 бит, 1 стоп бит, проверка нечётности.
    4 — 7 бит, 2 стоп бита, проверка нечётности.
    5 — 7 бит, 1 стоп бит, проверка чётности.
    6 — 7 бит, 1 стоп бит, проверка нечётности.
  • ЧЁТНОСТЬ — представлена цифрой от 0 до 3 и имеет приоритет только если в первом параметре (РАЗМЕР) установлена проверка чётности:
    0 — проверка нечётности.
    1 — проверка чётности.
    3 — без проверки.
  • Пример ответа: +ICF: 3, 0rnOKrn — установлена передача по 8 бит, 1 стоп бит, с проверкой нечётности.
  • Пример установки: AT+ICF=2,3rn — установить передачу по 8 бит, 1 стоп бит, без проверки.
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. Значение по умолчанию 115200 бит/сек.
  • Пример ответа: +IPR: 115200rnOKrn — установлена передача на скорости 115300 бот.
  • Пример установки: AT+IPR=9600rn — установить передачу на скорости 9600 бот.
AT+IPR?rn
(запрос текущей скорости)
rn
+IPR: СКОРОСТЬrn
rn
OKrn
AT+IPR=СКОРОСТЬrn
(установка скорости UART)
rn
OKrn
GSN AT+GSNrn
(запрос серийного номера)
rn
НОМЕРrn
rn
OKrn
Запрос серийного номера адаптера:

  • НОМЕР — представлен числом которое является серийным номером.
  • Пример ответа: 867567021221711rnOKrn
GMM
CGMM
AT+GMMrn
(запрос названия модели)
rn
МОДЕЛЬrn
rn
OKrn
Запрос модели адаптера (модуля):

  • МОДЕЛЬ — представлена текстовой строкой.
  • Пример ответа: A6rnOKrn
GMR
CGMR
AT+GMRrn
(запрос версии прошивки)
rn
ВЕРСИЯrn
rn
OKrn
Запрос версии ПО адаптера (модуля):

  • ВЕРСИЯ — представлена текстовой строкой.
  • Пример ответа: V03.03.20160830011H03rnOKrn
  • Пример ответа: V03.06.20171127RrnOKrn
GMI
CGMI
AT+GMIrn
(запрос имени производителя)
rn
ПРОИЗВОДИТЕЛЬrn
rn
OKrn
Запрос производителя адаптера (модуля):

  • ПРОИЗВОДИТЕЛЬ — представлен текстовой строкой.
  • Пример ответа: Ai Thinker Co.LTDrnOKrn
ATI ATIrn
(запрос названия, имени и версии)
rn
ПРОИЗВОДИТЕЛЬrn
МОДЕЛЬrn
ВЕРСИЯrn
rn
OKrn
Запрос информации производителя об адаптере (модуле):

  • Данная команда совмещает в себе команды: AT+GMM, AT+GMR, AT+GMI.
  • Пример ответа: Ai Thinker Co.LTDrnA6rnV03.03.20160830011H03rnOKrn
CIMI AT+CIMIrn
(запрос IMSI)
rn
НОМЕРrn
rn
OKrn
Запрос IMSI:

  • НОМЕР — международный идентификатор мобильного абонента (IMSI).
  • В системе GSM идентификатор содержится на SIM-карте и обычно состоит из 15 цифр. Первые 3 — код страны (250 — РФ), следующие 2 или 3 — код оператора (02 — ПАО «МегаФон»), остальные цифры — MSIN.
  • Пример ответа: 250020123456789rnOKrn
EGMR AT+EGMR=?rn
(запрос допустимых значений)
rn
+EGMR: (1,2), (7)rn
rn
OKrn
Установка/запрос IMEI:

  • Первый параметр (режим) — представлен цифрой:
    1 — установка (запись).
    2 — запрос (чтение).
  • Второй параметр (формат) — всегда равен 7.
  • НОМЕР — число являющееся IMEI.
  • Пример запроса: AT+EGMR=2,7rn — запросить текущий IMEI.
  • Пример ответа: +EGMR:012345678901234rnOKrn — текущий IMEI равен 012345678901234.
  • Пример установки: AT+EGMR=1,7,987654321043210rn — заменить 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
Установка/запрос списка будильников:

  • ДАТА — представлена строкой в формате «ГГ/ММ/ДД,ЧЧ:ММ:СС+ЧП» в строке можно опустить «ГГ/ММ/ДД» и «+ЧП» (часовой пояс). Если опустить «ГГ/ММ/ДД», то нужно обязательно указать пятый параметр «ДН». Если «ГГ/ММ/ДД» указано, то будильник будет удалён после срабатывания.
  • № — будильника представлен числом от 1 до 15
  • ТИП — сигнала будильника (звук, светодиод, …) представлен числом (по умолчанию = 0).
  • ТЕКСТ — представлен строкой сообщения будильника.
  • ДН — дни недели представлены цифрами, пишутся через запятую. Указывается только если в параметре ДАТА указано только время. Каждая цифра соответствует дню недели: 1-понедельник, … , 7-воскресение, 0-все дни недели.
  • ТИХИЙ — значение представлено числом 0 или 1. Если установлено 1, то будильник будет тихим (результатом срабатывания будет незапрашиваемый код результата +CALV).
  • Пример ответа: +CALA: «17/06/01,20:00:00″,1,0,»Conference»rnOKrn
  • Примеры установки:
    AT+CALA=»17/06/01,20:00:00″,1,0,»Conference»rn — установить будильник на один раз.
    AT+CALA=»06:00:00″,2,0,»Wake up»,»1,2,3,4,5″rn — установить будильник по будням в 6 часов.
    AT+CALA=»17/06/01,12:00:00″,3rn — установить будильник на один раз.
AT+CALA?rn
(запрос списка установленных будильников)
rn
+CALA: «ДАТА» [, [,ТИП [,«ТЕКСТ» [,«ДН» [,ТИХИЙ]]]]]rn
+CALA: «ДАТА» [, [,ТИП [,«ТЕКСТ» [,«ДН» [,ТИХИЙ]]]]]rn
rn
OKrn
AT+CALA=«ДАТА»[,№[,ТИП[,»ТЕКСТ»[,»ДН»[,ТИХИЙ]]]]]rn
(установка будильника)
rn
OKrn
CALD AT+CALD=?rn
(запрос списка номеров установленных будильников)
rn
+CALD: НОМЕРАrn
rn
OKrn
Удаление одного будильника:

  • НОМЕРА — через запятую тех будильников которые можно удалить.
  • НОМЕР — того будильника который требуется удалить.
  • Пример ответа: +CALD: 1,2,3,5rnOKrn — установлено 4 будильника (1,2,3,5).
  • Пример удаления: AT+CALD=2rn — удалить будильник номер 2.
AT+CALD=НОМЕРrn
(удаление будильника)
rn
OKrn
VGR AT+VGR=?rn
(запрос допустимых уровней)
rn
+VGR: (5-8)rn
rn
OKrn
Установка/запрос уровня усиления динамика:

  • УСИЛЕНИЕ — представлено числом от 5 до 8
    (значение 8 соответствует MUTE — выкл).
  • Пример ответа: +VGR: 6rnOKrn — текущее усиление равно 6.
  • Пример установки: AT+VGR=7rn — установить усиление в значение 7.
AT+VGR?rn
(запрос текущего уровня)
rn
+VGR: УСИЛЕНИЕrn
rn
OKrn
AT+VGR=УСИЛЕНИЕrn
(установка уровня)
rn
OKrn
VGT AT+VGT=?rn
(запрос допустимых уровней)
rn
+VGT: 16rn
rn
OKrn
Установка/запрос уровня усиления микрофона:

  • УСИЛЕНИЕ — представлено числом от 1 до 16
    (значение 16 соответствует MUTE — выкл).
  • Пример ответа: +VGT: 1rnOKrn — текущее усиление равно 1.
  • Пример установки: AT+VGT=16rn — установить усиление в значение 16.
AT+VGT?rn
(запрос текущего уровня)
rn
+VGT: УСИЛЕНИЕrn
rn
OKrn
AT+VGT=УСИЛЕНИЕrn
(установка уровня)
rn
OKrn
CLVL AT+CLVL=?rn
(запрос допустимых значений)
rn
+CLVL: (5-8)rn
rn
OKrn
Установка/запрос громкости динамика громкой связи:

  • ГРОМКОСТЬ — представлена числом от 5 до 8
    (чем ниже число, тем ниже громкость).
  • Пример ответа: +CLVL: 5rnOKrn — текущая громкость равна 5.
  • Пример установки: AT+CLVL=7rn — установить громкость в значение 7.
AT+CLVL?rn
(запрос текущей громкости)
rn
+CLVL: ГРОМКОСТЬrn
rn
OKrn
AT+CLVL=ГРОМКОСТЬrn
(установка громкости)
rn
OKrn
CMUT AT+CMUT=?rn
(запрос допустимых значений)
rn
+CMUT: (0,1)rn
rn
OKrn
Установка/запрос отключения микрофона при голосовом вызове:

  • ФЛАГ — представлен числом 0 или 1:
    0 — Mute off (не отключать).
    1 — Mute on (отключить микрофон).
  • Пример ответа: +CMUT: 0rnOKrn — микрофон включён.
  • Пример установки: AT+CMUT=1rn — отключить микрофон.
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):

  • ДАТАВРЕМЯ — строка с датой и временем в кавычках: «ГГ/ММ/ДД,ЧЧ:ММ:СС+ЧП», где «ЧП» (часовой пояс) можно не указывать.
  • Обратите внимание на то, что при запросе / установке между датой и временем знак запятой, а не пробела.
  • Пример ответа: +CCLK: «18/01/23,12:34:56+04»rnOKrn — текущее время.
  • Пример установки: AT+CCLK=»18/01/23,12:34:56+04″rn — установить новое время: 12:34:56, 23 января 2018 г.
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
Запрос состояния ЗУ и ёмкости аккумулятора (АКБ):

  • СОСТОЯНИЕ — представлено числом от 0 до 5:
    0 — Адаптер ЗУ не подключён.
    1 — Адаптер ЗУ подключён.
    2 — Адаптер ЗУ подключён, АКБ заряжается.
    3 — Адаптер ЗУ подключён, АКБ заряжена.
    4 — Зарядка прервана.
    5 — Зарядка прервана из-за превышения t°С.
  • ЁМКОСТЬ — представлена в % остаточной ёмкости АКБ, не доступна во время заряда.
  • Пример ответа: +CBC: 0, 100rnOKrn — адаптер зарядного устройства (ЗУ) не подключён, аккумуляторная батарея (АКБ) заряжена на 100%.
AT+CBC?rn
(запрос текущего состояния)
rn
+CBC: СОСТОЯНИЕ, ЁМКОСТЬrn
rn
OKrn
CBCM AT+CBCM=?rn
(запрос допустимых значений)
rn
+CBCM: (0-1)rn
rn
OKrn
Управление уведомлениями о изменении ёмкости аккумуляторной батареи (АКБ):

  • ФЛАГ — представлен цифрой 0 или 1:
    1 — разрешить уведомления о изменении емкости АКБ.
    0 — запретить уведомления о изменении емкости АКБ.
  • В настоящее время модули A6 и A9 не поддерживают уведомления о изменении емкости АКБ.
  • Пример ответа: +CBCM:0rnOKrn — уведомления о изменении ёмкости отключены.
  • Пример установки: AT+CBCM=1″rn — включить уведомления о изменении ёмкости.
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):

  • РЕЖИМ — представлен цифрой от 0 до 3, где значение 3 означает — разрешить отправку URC.
  • КЛАВИАТУРА — представлена цифрой от 0 до 2, где значение 0 означает — без URC.
  • ДИСПЛЕЙ — представлен цифрой от 0 до 2, где значение 0 означает — без URC.
  • ИНДИКАТОР — представлен цифрой 0 или 1, где значение 0 означает — без URC.
  • БУФЕР — представлен цифрой от 0 до 3, где значение 0 означает — буфер стирается при установке режима 1-3.
  • Пример ответа: +CMER: 3,0,0,0rnOKrn
AT+CMER?rn
(запрос текущего режима)
rn
+CMER: РЕЖИМ, КЛАВИАТУРА, ДИСПЛЕЙ, ИНДИКАТОР, БУФЕРrn
rn
OKrn
AT+CMER=[РЕЖИМ [,КЛАВИАТУРА [,ДИСПЛЕЙ [,ИНДИКАТОР [,БУФЕР]]]]]rn
(установка режима отправки сообщений)
rn
OKrn
CEER AT+CEERrn
(запрос отчёта)
rn
+CMER: ТЕКСТrn
rn
OKrn
Запрос расширенного отчёта об ошибке последнего соединения:

  • ТЕКСТ — строка с информацией (или код) причины ошибки вызванной одной из последних операций:
    — Сбой голосового вызова (входящего/исходящего).
    — Разъединение голосового вызова.
    — Неудачное соединение GPRS или активация PDP.
    — Отключение GPRS или деактивация PDP.
  • Пример ответа: +CEER: CALL RELEASED, NETWORK SENT UDUB TO MErnOKrn
CPAS AT+CPASrn
(запрос статуса устройства)
rn
+CPAS: СТАТУСrn
rn
OKrn
Запрос статуса активности мобильного устройства:

  • СТАТУС — представлен цифрой от 0 до 5:
    0 — устройство готово (может принимать команды).
    1 — устройство недоступно (команды не принимаются).
    2 — статус неизвестен (не определён).
    3 — дозвон (входящий / исходящий).
    4 — устройство в режиме соединения.
    5 — устройство в спящем режиме (сокращенный набор функций).
  • Пример ответа: +CPAS:0rnOKrn — устройство готово к приему команд.

AT-команды SIM / PBK:

AT-команда: Ответ: Назначение:
CPIN AT+CPIN?rn
(запрос текущего состояния аутентификации)
rn
+CPIN: СОСТОЯНИЕrn
rn
OKrn
Аутентификация SIM-карты (ввод PIN1 / PUK1 / PIN2 / PUK2):

  • СОСТОЯНИЕ — текстовая строка указывающая какой код требуется ввести:
    READY — ввод пароля не требуется.
    SIM PIN — требуется ввод PIN1 (CHV1).
    SIM PUK — требуется ввод PUK1 и новый PIN1.
    SIM PIN2 — требуется ввод PIN2 (CHV2).
    SIM PUK2 — требуется ввод PUK2 и новый PIN2.
    +CME ERROR:10 — отсутствует SIM-карта.
    +CME ERROR:13 — SIM-карта неисправна.
  • Перед вводом пароля требуется узнать, какой именно пароль нужно ввести. Для этого отправляется команда AT+CPIN?rn.
  • Если PIN1 был некорректно введён 3 раза подряд, то потребуется ввести PUK1 и новый PIN1 через запятую (аналогично для PIN2, PUK2).
  • Если PUK1 был некорректно введён более 10 раз то SIM-карта будет безвозвратно заблокирована и команда AT+CPIN?rn вернёт ответ +CME ERROR:13rn — SIM-карта неисправна.
  • Для ввода PIN2 лучше воспользоваться командой AT+CPIN2.
  • Пример ответа: +CPIN: SIM PINrnOKrn — требуется ввести PIN1.
  • Пример ввода: AT+CPIN=»0123″rn — указываем PIN1=0123.
  • Пример ответа: +CPIN: SIM PUKrnOKrn — требуется ввести PUK1 и новый PIN1 через запятую.
  • Пример ввода: AT+CPIN=»12345678″,»1234″rn — указываем что PUK1=12345678 и устанавливаем новый PIN1=1234.
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):

  • СОСТОЯНИЕ — текстовая строка указывающая какой код требуется ввести:
    READY — ввод пароля не требуется.
    SIM PIN2 — требуется ввод PIN2 (CHV2).
    SIM PUK2 — требуется ввод PUK2 и новый PIN2.
    +CME ERROR:10 — отсутствует SIM-карта.
    +CME ERROR:13 — SIM-карта неисправна.
  • Синтаксис данной AT-команды аналогичен предыдущей, но предназначен для ввода только PIN2 или PUK2.
  • Пример ответа: +CPIN2: SIM PIN2rnOKrn — требуется ввести PIN2.
  • Пример ввода: AT+CPIN2=»0123″rn — указываем PIN2=0123.
  • Пример ответа: +CPIN2: SIM PUK2rnOKrn — требуется ввести PUK2 и новый PIN2 через запятую
  • Пример ввода: AT+CPIN2=»12345678″,»1234″rn — указываем что PUK2=12345678 и устанавливаем новый PIN2=1234.
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
Запрос оставшегося количества попыток ввода паролей:

  • PIN1 / PUK1 / PIN2 / PUK2 — представлены цифрами от 0 до 10 указывающими количество оставшихся попыток (0 — попыток не осталось).
  • Обратите внимание на синтаксис данной AT-команды, после символов AT следует знак ^, а не +.
  • Пример ответа: ^CPINC: 3,10,3,10rnOKrn — осталось по 3 попытки для ввода PIN1 и PIN2, и по 10 попыток для ввода PUK1 и PUK2.
CLCK AT+CLCK=?rn
(запрос допустимых функций)
rn
+CLCK: («SC», «FD», «AO», «OX», «OI»)rn
rn
OKrn
Блокировка/разблокировка функций устройства:

  • «ФУНКЦИЯ» — представлена строкой:
    «CS» — Устройства управления (клавиатура).
    «FD» — Фиксированный набор номеров из SIM памяти FDN.
    «AO» — Все исходящие вызовы.
    «OI» — Исходящие международные вызовы.
    «OX» — Исходящие международные вызовы, кроме своей страны.
  • РЕЖИМ — представлен цифрой от 0 до 2:
    0 — разблокировать.
    1 — заблокировать.
    2 — узнать статус.
  • ПАРОЛЬ — зависит от функции, может быть PIN1, PIN2.
  • КЛАСС — представлен числом:
    1 — голосовой режим (телефония).
    2 — режим данных (применяется для однонаправленного канала).
    4 — факсовый режим (факсимильная служба).
    8 — услуга коротких сообщений.
    16 — синхронная передача данных.
    32 — асинхронная передача данных.
    64 — выделенный доступ к пакетной передачи данных.
    128 — выделенный доступ через PAD.
  • Пример блокировки: AT+CLCK=»АО»,1,1234,2rn — заблокировать все исходящие вызовы в режиме данных.
  • Пример запроса: AT+CLCK=»АО»,2rn — узнать статус работы функции исходящих вызовов.
  • Пример разблокировки: AT+CLCK=»SC»,0,1234rn — разблокировать PIN1 (работать не запрашивая PIN1).
  • Пример блокировки: AT+CLCK=»SC»,1,1234rn — заблокировать с помощью PIN1 (запрашивать PIN1).
AT+CLCK=«ФУНКЦИЯ», РЕЖИМ [,ПАРОЛЬ [,КЛАСС]]rn
(блокировка / разблокировка указанной функции)
Ответ зависит от указанных параметров.
CPWD AT+CPWD=?rn
(запрос максимального количества символов в пароле)
rn
+CPWD: («SC»,8), («P2»,8)rn
rn
OKrn
(до 8 знаков для «SC», до 8 знаков для «P2»)
Смена пароля SIM-карты (PIN1 / PIN2):

  • «ФУНКЦИЯ» — представлена строкой (из двух символов), она определяет какой именно PIN-код требуется сменить:
    «SC» — смена кода PIN1 (от 4 до 8 символов).
    «P2» — смена кода PIN2 (от 4 до 8 символов).
  • «СТАРЫЙ» — текущий PIN-код.
  • «НОВЫЙ» — новый PIN-код.
  • Пример: AT+CPWD=»SC»,»0123″,»4567″rn — изменить PIN1 c 0123 на 4567.
  • Пример: AT+CPWD=»P2″,»0123″,»4567″rn — изменить PIN2 c 0123 на 4567.
AT+CPWD=«ФУНКЦИЯ», «СТАРЫЙ»,»НОВЫЙ»rn
(смена пароля)
rn
OKrn
CRSM AT+CRSM=КОМАНДА [,ИДЕНТИФИКАТОР [, П1 [,П2 [,П3 [,ДАННЫЕ]]]]]rn rn
+CRSM: Ф1, Ф2, ОТВЕТrn
rn
OKrn
Отправка команд на SIM-карту в режиме ограниченного доступа:

  • КОМАНДА — представлена числом (в соответствии с GSM 11.11 / 3GPP TS 51.011), передается как есть на SIM-карту:
    176 — (READ BINARY) считать двоичный код.
    178 — (READ RECORD) прочитать запись.
    192 — (GET RESPONSE) получить ответ.
    214 — (UPDATE BINARY) обновить двоичный код.
    220 — (UPDATE RECORD) обновить запись.
    242 — (STATUS) запросить статус.
  • ИДЕНТИФИКАТОР — (файловый идентификатор) представлен числом от 0 до 65535 в соответствии с GSM 11.11 / 3GPP TS 51.011. Это идентификатор элементарного массива данных на SIM-карте.
  • П1, П2, П3 — параметры команды передаваемые на SIM-карту. Эти параметры описаны в GSM 11.11 / 3GPP TS 51.011.
  • ДАННЫЕ — передаваемые на SIM-карту, представлены в шестнадцатеричном формате в соответствии с командой «CSCS».
  • Ф1, Ф2 — флаги выполнения команды.
  • ОТВЕТ — на выполненную команду, представлен в шестнадцатеричном формате в соответствии с командой «CSCS».
  • Пример отправки: AT+CRSM=192,28433,0,0,15rn
  • Пример ответа: +CRSM:144,0,621E82054221001C0283026F40A503rnOKrn
CNUM AT+CNUMrn
(запрос своего номера)
rn
+CNUM: «НАЗВАНИЕ», «НОМЕР», ТИПrn
rn
OKrn
Запрос номер абонента MSISDN (свой номер телефона):

  • «НАЗВАНИЕ» — опциональная алфавитно-цифровая строка, сопоставленная номеру (в кодировке UCS2).
  • «НОМЕР» — строка с телефонным номером абонента MSISDN.
  • ТИП — число определяющее формат написания номера, допустимые значения 129,145,161:
    161 — национальный номер абонента сети ISDN.
    145 — международный номер (+7, +3 …).
    129 — остальные номера (8XXX…, *100#, …).
  • Пример ответа: +CNUM: «XXXXX»,»79260001122+»,145rnOKrn — номер телефона +7(926)000-11-22.
CPBS AT+CPBS=?rn
(запрос допустимых областей памяти)
rn
+CPBS: («SM», «ON», «FD», «LD»)rn
rn
OKrn
Установка/запрос области памяти для телефонной книги:

  • «ПАМЯТЬ» — представлена строкой из двух символов:
    «SM» — память SIM-карты.
    «ON» — список собственных номеров UICC.
    «FD» — фиксированный список номеров.
    «LD» — список последних набранных номеров.
  • НАЙДЕНО — число указывающее на количество найденных записей.
  • ОБЪЕМ — число указывающее на максимально допустимое количество записей.
  • Пример ответа: +CPBS: «SM»,15,250rnOKrn — используется память SIM-карты, найдено 15 телефонов, объем памяти до 250 телефонов.
  • Пример установки AT+CPBS=»LD»rn — использовать телефонную книгу со списком последних набранных номеров.
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 символов в названии).
Чтение записей телефонной книги:

  • ОТ — число указывающее на начальную ячейку чтения.
  • ДО — число указывающее на конечную ячейку чтения.
  • ИНДЕКС — номер ячейки в которой записан телефон.
  • «НОМЕР» — строка с телефонным номером.
  • ТИП — число определяющее формат написания номера, допустимые значения: 129,145,161:
    161 — национальный номер абонента сети ISDN.
    145 — международный номер (+7, +3 …).
    129 — остальные номера (8XXX…, *100#, …).
  • «НАЗВАНИЕ» — сопоставленное номеру телефона.
  • Обратите внимание, что существует несколько телефонных книг, которые предварительно можно выбрать командой «CSCS».
  • Пример запроса: AT+CPBR=1,2rn — получить записи телефонной книги с 1 по 2 ячейку включительно.
  • Пример ответа:
    +CPBR: 1,»*100#»,129,»XXXXXXX»rn — номер в ячейке 1
    +CPBR: 2,»*106#»,129,»XXXXXXX»rn — номер в ячейке 2
    OKrn
AT+CPBR=ОТ [,ДО]rn
(чтение записей)
rn
+CPBR: ИНДЕКС, «НОМЕР», ТИП, «НАЗВАНИЕ»rn
rn
OKrn
CPBF AT+CPBF=?rn
(запрос размера записей)
rn
+CPBF: 20,25rn
rn
OKrn
(до 20 цифр в телефоне, до 25 символов в названии).
Поиск записей телефонной книги:

  • «ТЕКСТ» — начало названия записи сопоставленное номеру телефона.
  • ИНДЕКС — номер ячейки в которой записан телефон.
  • «НОМЕР» — строка с телефонным номером.
  • ТИП — число определяющее формат написания номера, допустимые значения: 129,145,161:
    161 — национальный номер абонента сети ISDN.
    145 — международный номер (+7, +3 …).
    129 — остальные номера (8XXX…, *100#, …).
  • «НАЗВАНИЕ» — сопоставленное номеру телефона.
  • Обратите внимание, что существует несколько телефонных книг, которые предварительно можно выбрать командой «CSCS».
  • Пример запроса: AT+CPBF=»iard»rn — получить записи телефонной книги с названиями начинающимися на «iard».
  • Пример ответа:
    +CPBF: 17,»+74995001456″,145,»iarduino office»rnOKrn — найден один номер в ячейке 17.
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 символов в названии).
Редактирование записей телефонной книги (добавление / замена / удаление):

  • ИНДЕКС — номер ячейки в которую производится запись. Если в данной ячейке уже есть запись, то она заменится на новую. Если указать только индекс, то запись ячейки будет удалена.
  • «НОМЕР» — строка с телефонным номером.
  • ТИП — число определяющее формат написания номера, допустимые значения: 129,145,161:
    161 — национальный номер абонента сети ISDN.
    145 — международный номер (+7, +3 …).
    129 — остальные номера (8XXX…, *100#, …).
  • «НАЗВАНИЕ» — сопоставленное номеру телефона.
  • Обратите внимание, что существует несколько телефонных книг, которые предварительно можно выбрать командой «CSCS».
  • Пример записи номера в 18 ячейку:
    AT+CPBW=18,»+74995001456″,145,»iarduino office»rn
  • Пример записи номера в 18 ячейку:
    AT+CPBW=18,»84995001456″,129,»iarduino office»rn
  • Пример удаления номера из 18 ячейки:
    AT+CPBW=18rn
AT+CPBW=[ИНДЕКС][,»НОМЕР» [,ТИП [,НАЗВАНИЕ]]]rn
(запись,замена,удаление)
rn
OKrn

AT-команды голосовых вызовов:

AT-команда: Ответ: Назначение:
ATA ATArn
(ответить на входящий голосовой вызов)
rn
CONNECTrn
Ответ на входящий голосовой вызов:

  • Отвечать на входящий голосовой вызов можно только если этот вызов есть (поступают команды RING), иначе ответом будет ERROR.
  • Пример: ATArn — ответить на входящий звонок.
ATH ATHrn
(повесить трубку)
rn
OKrn
Разъединение голосового вызова:

  • Используется для отсоединения удаленного пользователя во время голосового вызова.
  • Пример: ATHrn — повесить трубку (в момент разговора, звонка, дозвона).
CHUP AT+CHUPrn
(повесить все трубки)
rn
OKrn
Разъединение всех существующих голосовых вызовов (повесить трубку):

  • Используется для отсоединения удаленных пользователей во время голосовых вызовов.
  • Пример: AT+CHUPrn — повесить трубку (входящие, исходящие, ожидающие).
ATD ATDНОМЕРrn
(набрать указанный номер)
rn
OKrn
Набор номера (исходящий голосовой вызов):

  • Команда ATD может использоваться не только для голосовых вызовов, но и для вызовов в режиме данных, или факсовых вызовов.
  • НОМЕР — набираемый телефонный номер абонента (MSISDN).
  • «ПАМЯТЬ» — телефонной книги, представлена строкой из двух символов:
    «SM» — память SIM-карты.
    «ON» — список собственных номеров UICC.
    «FD» — фиксированный список номеров.
    «LD» — список последних набранных номеров.
  • ИНДЕКС — номер ячейки телефонной книги, по телефону которой требуется позвонить.
  • Пример: ATD+74995001456rn — набрать номер +74995001456
  • Пример: ATD>»SM»20rn — набрать номер из 20 ячейки телефонной книги в памяти SIM.
  • Пример: ATD>SM20rn — набрать номер из 20 ячейки телефонной книги в памяти SIM.
  • Пример: ATD>5rn — набрать номер из 5 ячейки используемой телефонной книги.
ATD>[«ПАМЯТЬ»]ИНДЕКСrn
(набрать номер из телефонной книги)
rn
OKrn
DLST AT+DLSTrn
(повтор исходящего вызова)
rn
OKrn
Повторный набор последнего исходящего вызова:

  • Пример: AT+DLSTrn — набрать последний исходящий номер.
CHLD AT+CHLD=?rn
(запрос допустимых действий)
rn
+CHLD: (0,1,1X,2,2X,3)rn
rn
OKrn
Управление групповыми вызовами и конференц-связью:

  • ЗНАЧЕНИЕ — определяет требуемое действие:
    0 — Разъединить все удерживаемые вызовы или установить UDUB (User Determined User Busy) для ожидающего вызова.
    1 — Разъединить все активные вызовы (если они есть) и принять другой (удерживаемый или ожидающий) вызов.
    1X — Разъединить вызов X (активный, удерживаемый или ожидающий).
    2 — Перевести все активные вызовы (если они есть) в режим удержания и принять другой (удерживаемый или ожидающий) вызов.
    2X — Перевести в режим удержания все активные вызовы, кроме вызова Х, с которым поддерживается связь.
    3 — Добавить в конференцию (к разговору) удерживаемый вызов.
  • Пример: AT+CHLD=1rn — разъединить все активные вызовы и принять удерживаемый.
  • Пример: AT+CHLD=12rn — разъединить вызов 2.
  • Пример: AT+CHLD=21rn — удерживать все активные вызовы кроме вызова 1, с которым поддерживается связь.
  • Индекс (номер) вызова можно узнать с помощью команды «CLCC».
AT+CHLD=ЗНАЧЕНИЕrn
(выполнение действия)
rn
OKrn
CLCC AT+CLCCrn
(получение списка текущих вызовов)
rn
+CLCC: ИНДЕКС, НАПРАВЛЕНИЕ, СОСТОЯНИЕ, РЕЖИМ, ФЛАГ [,НОМЕР, ТИП [,»НАЗВАНИЕ«]]rn
rn
OKrn
Запрос списка текущих вызовов:

  • ИНДЕКС — представлен числом, это номер (или ID) вызова.
  • НАПРАВЛЕНИЕ — представлено цифрой 0 или 1:
    0 — Исходящий вызов.
    1 — Входящий вызов.
  • СОСТОЯНИЕ — представлено цифрой от 0 до 7:
    0 — Активный вызов.
    1 — Удерживаемый вызов.
    2 — Исходящий вызов в режиме набора.
    3 — Исходящий вызов в режиме дозвона.
    4 — Входящий вызов в режиме дозвона.
    5 — Входящий ожидающий вызов.
    7 — Сброс вызова (разъединение).
  • РЕЖИМ — представлен цифрой от 0 до 9:
    0 — голосовой режим.
    1 — режим данных.
    2 — факсовый режим.
    3 — голосовой режим данные/голос.
    4 — голосовой режим с чередованием голос/данные.
    5 — голосовой режим с чередованием голос/факс.
    6 — режим данных данные/голос.
    7 — режим данных с чередованием голос/данные.
    8 — факсовый режим с чередованием голос/факс.
    9 — неизвестный режим.
  • ФЛАГ — конференц-связи, представлен цифрой 0 или 1:
    0 — вызов не является одним из вызовов конференц-связи.
    1 — вызов является одним из вызовов конференц-связи.
  • НОМЕР — телефонный номер абонента (MSISDN).
  • ТИП — число определяющее формат написания номера, допустимые значения: 129,145,161:
    161 — национальный номер абонента сети ISDN.
    145 — международный номер (+7, +3 …).
    129 — остальные номера (8XXX…, *100#, …).
  • «НАЗВАНИЕ» — сопоставленное номеру телефона из адресной книги.
  • Пример ответа: +CLCC: 1,0,2,0,0,»74995001456″,145rnOKrn — первый вызов, исходящий, в режиме набора номера, голосовой, не конференц.
  • Пример ответа:+CLCC: 2,1,4,0,0,»74995001456″,145rnOKrn — второй вызов, входящий, поступающий, голосовой, не конференц. Этот пример демонстрирует, как можно узнать номер звонящего абонента во время поступления +RING.
  • Пример ответа:+CLCC: 1,1,0,0,0,»74995001456″,145rnOKrn — второй вызов, входящий, активный, голосовой, не конференц.
VTD AT+VTD=?rn
(запрос допустимых значений)
rn
+VTD: (1-10)rn
rn
OKrn
Установка/запрос длительности тональных сигналов DTMF:

  • Тональные сигналы DTMF передаются по сети GSM при наличии активного вызова.
  • ДЛИТЕЛЬНОСТЬ — представлена числом от 1 до 10 и является 1/10 секунды.
  • Пример ответа: +VTD: 1rnOKrn — используются тональные сигналы DTMF длительностью 100 мс.
  • Пример установки: AT+VTD=2rn — использовать тональные сигналы DTMF длительностью 200 мс.
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:

  • Тональные сигналы DTMF передаются по сети GSM при наличии активного вызова.
  • ЗНАЧЕНИЕ — представлено одним из передаваемых знаков: 0-9,*,#,A,B,C,D.
  • ДЛИТЕЛЬНОСТЬ — представлена числом от 1 до 10 и является 1/10 секунды.
  • Пример отправки: AT+VTS=5rn — отправка тонального сигнала соответствующего цифре 5.
  • Пример отправки: AT+VTS=#rn — отправка тонального сигнала соответствующего знаку #.
  • Пример отправки: AT+VTS=4,2rn — отправка тонального сигнала соответствующего цифре 4, длительностью 200 мс.
AT+VTS=ЗНАЧЕНИЕ [, ДЛИТЕЛЬНОСТЬ]rn
(воспроизвести тональный сигнал)
rn
OKrn
VTSEX AT+VTSEX=1rn
(воспроизвести специальный тональный сигнал)
rn
OKrn
Отправка специального тонального сигнала DTMF:

  • Тональные сигналы DTMF передаются по сети GSM при наличии активного вызова.
  • ЗНАЧЕНИЕ — может быть только цифрой 1.
  • Пример отправки: AT+VTSEX=1rn — отправка специального тонального сигнала.

AT-команды сетевых служб:

AT-команда: Ответ: Назначение:
COPN AT+COPNrn
(запрос списка операторов из памяти модуля)
rn
+COPN: «НОМЕР»,»НАЗВАНИЕ»rn
Запрос списка всех имен операторов из памяти модуля:

  • Команда возвращает не действующих в данном месте операторов, а список операторов хранящийся в памяти модуля. А еще эта команда может возвращать свой список в бесконечном цикле.
COPS AT+COPS=?rn
(Запрос списка доступных операторов PLMN)
rn
+COPS: (СТАТУС, «ОПЕРАТОР», «ОПЕРАТОР», «ОПЕРАТОР»),(аналогично для след. оператора),(и т.д.)rn
rn
OKrn
Запрос/выбор оператора связи PLMN:

  • РЕЖИМ — представлен цифрой от 0 до 4:
    0 — Автоматический (по умолчанию).
    1 — Ручной.
    2 — Снятие с регистрации.
    3 — Указать только формат.
    4 — Ручной/автоматический.
  • ФОРМАТ — представлен цифрой от 0 до 2:
    0 — формат поля ОПЕРАТОР — длинный алфавитно-цифровой (до 16 симв.).
    1 — формат поля ОПЕРАТОР — короткий алфавитно-цифровой (до 8 симв.).
    2 — формат поля ОПЕРАТОР — цифровой (состоит из кодов MCC и MNC).
  • «ОПЕРАТОР» — представлен в соответствии с указанным форматом.
  • СТАТУС — представлен цифрой от 0 до 3:
    0 — Оператор неизвестен.
    1 — Оператор доступен для выбора.
    2 — Оператор является выбранным (текущим).
    3 — Оператор запрещен для выбора.
  • ИМЯ1 — представлено строкой
  • ИМЯ2 — представлено строкой
  • Пример ответа на запрос списка доступных операторов:
    +COPS: (2,»MegaFon»,»MegaFon»,»25002″),(1,»MTS»,»MTS»,»25001″),(1,»Beeline»,»Beeline»,»25099″)rnOKrn — доступны 3 оператора (3 скобки): «MegaFon» является уже выбранным (2), а «MTS» и «Beeline» имеют статус 1 (доступен для выбора). В каждой скобке имя оператора представлено в трёх форматах (длинном, коротком и цифровом).
  • Пример ответа на запрос выбранного оператора:
    +COPS: 0,2,»25002″rnOKrn — выбран оператор «25002» («MegaFon»), выбран в автоматическом режиме (0), имя оператора представлено в цифровом формате (2).
  • Пример выбора оператора:
    AT+COPS=1,0,»MegaFon»rn — выбран оператор «MegaFon», выбран в ручном режиме (1), имя оператора представлено в длинном алфавитно-цифровом формате (0).
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
Установка/запрос режима и статуса регистрации в сети оператора:

  • РЕЖИМ — представлен цифрой от 0 до 2:
    0 — Отключить незапрашиваемые сообщения (URC) о статусе регистрации в сети.
    1 — Включить незапрашиваемые сообщения (URC) о статусе регистрации в сети.
    Сообщения будут приходить в формате +CREG: СТАТУС.
    2 — Включить незапрашиваемые сообщения (URC) о статусе регистрации в сети и о местоположении.
    Сообщения будут приходить в формате +CREG: СТАТУС, «КОД», «ID».
  • СТАТУС — представлен цифрой от 0 до 5:
    0 — Не зарегистрирован, не проводится поиск нового оператора.
    1 — Зарегистрирован, домашний оператор.
    2 — Не зарегистрирован, проводится поиск нового оператора.
    3 — Регистрация отклонена.
    4 — Статус неизвестен
    5 — Зарегистрирован, роуминг.
  • «КОД» — локальной зоны местоположения базовых станций (LAC/TAC), представлен двухбайтным числом в шестнадцатеричном формате.
  • «ID» — идентификатор соты (CID/SAC/ECI), представлен двухбайтным числом в шестнадцатеричном формате.
  • Пример ответа на запрос текущего режима и статуса:
    +CREG: 1,1rnOKrn — включены незапрашиваемые сообщения о статусе регистрации, модем зарегистрирован в сети домашнего оператора связи.
  • Пример ответа на запрос текущего режима и статуса:
    +CREG: 2,1,»262A»,»346A»rnOKrn — включены незапрашиваемые сообщения о статусе регистрации и местоположении, модем зарегистрирован в сети домашнего оператора связи, код местоположения базовых станций «262A», ID соты «346A».
  • Пример выбора режима:
    AT+CREG=2rn — включить незапрашиваемые сообщения о статусе регистрации в сети и о местоположении.
  • Пример незапрашиваемого сообщения о статусе:
    +CREG: 1rn — модем зарегистрирован в сети домашнего оператора связи.
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
Запрос уровня сигнала:

  • УРОВЕНЬ — сигнала представлен числом от 0 до 31 или 99:
    0 — Уровень сигнала менее -113 дБм.
    1 — Уровень сигнала -111 дБм.
    2 … 30 — Уровень сигнала в диапазоне от -109 дБм до -53 дБм (шаг 2 дБм).
    31 — Уровень сигнала -51 дБм и выше.
    Чем выше число, тем выше уровень принимаемого сигнала.
    99 — Уровень сигнала неизвестен или его нельзя определить.
  • ОШИБКИ — частота появления ошибок представлена числом от 0 до 7 или 99:
    0 … 7 — Как значения RXQUAL в таблице GSM 05.08.
    99 — Частота появления ошибок неизвестна или её нельзя определить.
  • Пример ответа: +CSQ: 22,99rnOKrn — уровень сигнала -69 дБм, количество ошибок неизвестно или их нельзя определить.
  • Пример ответа: +CSQ: 31,99rnOKrn — уровень сигнала -51 дБм или выше, количество ошибок неизвестно или их нельзя определить.
AT+CSQrn
(Запрос уровня сигнала и количества ошибок)
rn
+CSQ: УРОВЕНЬ, ОШИБКИrn
rn
OKrn
CPOL AT+CPOL=?rn
(Запрос максимального размера списка и допустимых форматов)
rn
+CPOL: (1-50),(0,2)rn
rn
OKrn
Установка/запрос списка предпочтительных операторов:

  • Список хранится и редактируется на SIM-карте.
  • ИНДЕКС — представлен числом, это номер записи в списке.
  • ФОРМАТ — представлен цифрой от 0 до 2:
    0 — формат поля ОПЕРАТОР — длинный алфавитно-цифровой (до 16 симв.).
    1 — формат поля ОПЕРАТОР — короткий алфавитно-цифровой (до 8 симв.).
    2 — формат поля ОПЕРАТОР — цифровой (состоит из кодов MCC и MNC).
  • «ОПЕРАТОР» — представлен в соответствии с указанным форматом.
  • GSM — представлен цифрой 0 или 1, это флаг указывающий что оператор поддерживает технологию доступа GSM (по умолчанию флаг = 1).
  • GSMcomp — представлен цифрой 0 или 1, это флаг указывающий что оператор поддерживает технологию доступа GSM compact.
  • UTRAN — представлен цифрой 0 или 1, это флаг указывающий что оператор поддерживает технологию доступа UTRAN.
  • Пример запроса списка операторов:
    AT+CPOL?rn — запрос списка в установленном ранее формате.
    AT+CPOL=,0rn — смена формата на длинный алфавитно-цифровой.
    AT+CPOL?rn — запрос списка в только что установленном формате.
  • Пример добавления (замены) оператора:
    AT+CPOL=7,2,25002rn — в 7 строку, в цифровом формате (2), добавлен оператор 25002, поддерживающий доступ GSM (по умолчанию).
    AT+CPOL=7,0,»MegaFon»rn — в 7 строку, в алфавитно-цифровом формате (0), добавлен оператор «MegaFon», поддерживающий технологию доступа GSM (по умолчанию).
    AT+CPOL=7,2,77777,0,0,1rn — в 7 строку, в цифровом формате (2), добавлен оператор 77777, поддерживающий технологию доступа UTRAN.
  • Пример удаления оператора:
    AT+CPOL=7rn — строка 7 списка операторов очищена.
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
Разрешить/запретить отображение заголовков текстовых сообщений в незапрашиваемых кодах результата:

  • ФЛАГ — представлен цифрой 0 или 1:
    0 — Не отображать.
    1 — Отображать.
  • При получении SMS сообщения, если командой «CNMI» разрешена индикация входящих SMS, то модуль отправит URC (незапрашиваемый код результата) +CMTI или +CMT, с указанием, или без указания заголовка SMS сообщения.
AT+CSDH?rn
(запрос текущей установки)
rn
+CSDH: ФЛАГrn
rn
OKrn
AT+CSDH=ФЛАГrn
(разрешить / запретить отображение заголовков)
rn
OKrn
CSMP AT+CSMP?rn
(запрос текущих параметров)
rn
+CSMP: БАЙТ, ВРЕМЯ, ПРОТОКОЛ, КОДИРОВКАrn
rn
OKrn
Установка/запрос параметров текстового режима:

  • БАЙТ- представлен флаговыми битами:
    (синтаксис данного байта аналогичен байту «PDU TYPE» в режиме PDU)
    бит 7 — флаг «RP» (Reply Path). Если установлен, значит в сообщении указан обратный адрес, но в текстовом режиме данный флаг должен быть сброшен.
    бит 6 — флаг «UDHI» (User Data Header Included). Если установлен, значит сообщение содержит заголовок.
    бит 5 — флаг «SRR» (Status Report Request). Если установлен, значит сообщение требует получение отчета о статусе (доставке).
    биты 4,3 — значение «VPF» (Validity Period Format). Срок жизни сообщений: 00-нет, 01-зарезервировано (не используется), 10-срок жизни указан в параметре ВРЕМЯ в относительном формате, 11-срок жизни указан в параметре ВРЕМЯ в абсолютом формате (не поддерживается).
    бит 2 — флаг «RD» (Reject Duplicates). Если установлен значит требуется игнорировать копии данного сообщения.
    биты 1,0 — значение «MTI» (Message Type Indicator). Индикатор типа сообщения: 00-входящее, 01-исходящее.
  • ВРЕМЯ — срок жизни сообщений, представлен числом:
    при значении от 0 до 143, срок жизни = (ВРЕМЯ+1) × 5 минут.
    при значении от 144 до 167, срок жизни = (ВРЕМЯ-143) × 30 минут + 12 часов.
    при значении от 168 до 196, срок жизни = (ВРЕМЯ-166) × 1 день.
    при значении от 197 до 255, срок жизни = (ВРЕМЯ-192) × 1 неделя.
  • ПРОТОКОЛ — идентификатор протокола, представлен числом (по умолчанию 0).
  • КОДИРОВКА — представлена числом: 0, 4 или 8, (по умолчанию 0):
    0 — 7-битный алфавит GSM.
    4 — 8-битная кодировка.
    8 — 16-битная кодировка.
  • Пример ответа: +CSMP: 17,167,0,0rnOKrn — исходящее сообщение, без заголовка и запроса статуса, срок жизни 24 часа, копии игнорировать, протокол и кодировка по умолчанию.
  • Пример установки: AT+CSMP=81,167,0,8rn — исходящее сообщение с заголовком, без запроса на получение статуса, срок жизни 24 часа, копии игнорировать, протокол по умолчанию, 16-битная кодировка.
AT+CSMP=БАЙТ, ВРЕМЯ, ПРОТОКОЛ, КОДИРОВКА,rn
(установка параметров текстового режима)
rn
OKrn
CMSS AT+CMSS=ИНДЕКС [,НОМЕР [,ТИП]]rn
(отправка SMS)
rn
+CMSS: ИНДЕКСотпрrn
rn
OKrn
Отправка SMS сообщения из памяти:

  • Команда отправляет сообщения из области памяти указанной командой «CPMS».
  • ИНДЕКС — представлен числом, это номер записи сохранённой SMS.
  • НОМЕР — представлен строкой в виде номера телефона. Если данный параметр указан то он будет использован вместо номера, сохраненного вместе с сообщением.
  • ТИП — число определяющее формат написания номера, допустимые значения: 129,145,161:
    161 — национальный номер абонента сети ISDN.
    145 — международный номер (+7, +3 …).
    129 — остальные номера (8XXX…, *100#, …).
  • ИНДЕКСотпр — число являющееся номером отправленного сообщения.
  • Пример отправки: AT+CMSS=10rn — отправить SMS сохранённую под номером 10 на номер телефона указанный в сохранённой SMS.
  • Пример отправки: AT+CMSS=10,+74995001456rn — отправить SMS сохранённую под номером 10 на номер телефона +74995001456.
  • Пример ответа: +CMSS: 15rnOKrn — SMS отправлена, она является 15 по счёту отправленной SMS.
CMGD AT+CMGD=?rn
(запрос допустимых значений)
rn
+CMGD: (ИНДЕКС),(СТАТУС)rn
rn
OKrn
(значения зависят от выбранной предпочтительной области памяти)
Удаление SMS сообщения из памяти:

  • Команда удаляет сообщения из области памяти указанной командой «CPMS».
  • ИНДЕКС — представлен числом указывающим на номер (ячейку) удаляемого SMS сообщения из предпочтительной области памяти.
  • СТАТУС — сообщений представлен цифрой от 0 до 4:
    0 — Одно сообщение находящееся в ячейке ИНДЕКС.
    1 — Все прочитанные сообщения.
    2 — Все прочитанные и отправленные сообщения.
    3 — Все прочитанные, отправленные и неотправленные сообщения.
    4 — Все сообщения.
  • Если СТАТУС представлен цифрой 1,2,3,4, то параметр ИНДЕКС игнорируется.
  • Если СТАТУС не указан, значит он представлен цифрой 0.
  • Пример ответа на запрос допустимых значений:
    +CMGD: (1-15),(0,1,2,3,4)rnOKrn — в выбранной предпочтительной области памяти имеются 15 ячеек (возможно указание индекса от 1 до 15), доступны статусы 0,1,2,3,4.
  • Пример удаления: AT+CMGD=3rn — удалить сообщение из 3 ячейки.
  • Пример удаления: AT+CMGD=2,0rn — удалить сообщение из 2 ячейки.
  • Пример удаления: AT+CMGD=2,1rn — удалить все прочитанные сообщения.
  • Пример удаления: AT+CMGD=2,4rn — удалить все сообщения.
AT+CMGD=ИНДЕКС,[СТАТУС]rn
(удаление сообщений)
rn
OKrn
CMGF AT+CMGF=?rn
(запрос допустимых значений)
rn
+CMGF: (0,1)rn
rn
OKrn
Установка/запрос формата SMS сообщений (текстовый / PDU):

  • ФОРМАТ — представлен цифрой 0 или 1:
    0 — SMS сообщения принимаются и отправляются в формате PDU.
    1 — SMS сообщения принимаются и отправляются в текстовом формате.
  • SMS сообщение в режиме PDU, в отличии от текстового режима, содержит всю информацию о заголовке сообщения, который задается строкой в шестнадцатеричном формате.
  • Пример ответа: +CMGF=0rnOKrn — установлен формат PDU.
  • Пример установки: AT+CMGF=1rn — установить текстовый режим.
AT+CMGF?rn
(запрос текущего формата)
rn
+CMGF: ФОРМАТrn
rn
OKrn
AT+CMGF=ФОРМАТrn
(установить формат SMS сообщений)
rn
OKrn
CMGL AT+CMGL=?rn
(запрос допустимых значений)
rn
+CMGL: (СТАТУС)rn
rn
OKrn
(значение СТАТУС зависит от выбранного формата)
Чтение списка SMS сообщений из памяти:

  • Команда выводит список из области памяти указанной командой «CPMS».
  • СТАТУС — сообщений представлен либо цифрой (если выбран формат PDU), либо строкой (если выбран текстовый формат):
    0 — «REC UNREAD» — полученные непрочитанные сообщения.
    1 — «REC READ» — полученные прочитанные сообщения.
    2 — «STO UNSENT» — сохранённые неотправленные сообщения.
    3 — «STO SENT» — сохранённые отправленные сообщения.
    4 — «ALL» — все сообщения.
  • Если СТАТУС не указан, значит он представлен цифрой 0 или строкой «REC UNREAD».
  • После чтения списка полученных непрочитанных сообщений, статус данных сообщений изменится на «полученные прочитанные сообщения».
  • Параметры: ИНДЕКС, «НОМЕР», «НАЗВАНИЕ», ТИП, «ДАТА», ДЛИНА, ДАННЫЕ и PDU см. в описании команды «CMGR».
  • Пример ответа на запрос допустимых значений в формате PDU:
    +CMGL: (0-4)rnOKrn — допускаются значения от 0 до 4.
  • Пример ответа на запрос допустимых значений в текстовом формате:
    +CMGL: («REC UNREAD»,»REC READ»,»STO UNSENT»,»STO SENT»,»ALL»)rnOKrn — допускается указать одну из перечисленных строк.
  • Пример запроса на чтение списка в формате PDU: AT+CMGL=4rn — получить список всех сообщений.
  • Пример запроса на чтение списка в текстовом формате: AT+CMGL=»ALL»rn — получить список всех сообщений.
  • Пример ответа, текстовый формат, строка принятого сообщения:
    +CMGL: 2,»REC_READ»,»+7926…»,,»2018/04/27,13:17:17+03″,145,6rnPrivetrn.
  • Пример ответа, текстовый формат, строка отправленного сообщения:
    +CMGL: 1,»STO_SENT»,»+7926XXXXXXX»,»iarduino»,145,6rnPrivetrn.
  • Пример ответа, формат PDU, строка из списка сообщений:
    +CMGL: 3,1,,24rnPDUrn.
AT+CMGL[=СТАТУС]rn
(запрос на чтение списка сообщений)
Строки списков зависят установленного формата и статуса сообщений:

Текстовый формат, принятое сообщение:
rn
+CMGL: ИНДЕКС, «СТАТУС», «НОМЕР» [,«НАЗВАНИЕ»][,«ДАТА»] [,ТИП, ДЛИНА]rn
ДАННЫЕrn

Текстовый формат, отправл. сообщение:
rn
+CMGL: ИНДЕКС, «СТАТУС», «НОМЕР» [,«НАЗВАНИЕ»] [,ТИП, ДЛИНА]rn
ДАННЫЕrn

Формат PDU:
rn
+CMGL: ИНДЕКС, СТАТУС [,«НАЗВАНИЕ»], ДЛИНАrn
PDUrn

CMGR AT+CMGR=ИНДЕКСrn
(чтение одного SMS сообщения)
Строка ответа зависит от установленного формата и статуса сообщения:

Текстовый формат, принятое сообщение:
rn
+CMGR: «СТАТУС», «НОМЕР» [,«НАЗВАНИЕ»], «ДАТА» [,ТИП, ВИД, ПРОТОКОЛ, КОДИРОВКА, «НОМЕРс», ТИПс, ДЛИНА]rn
ДАННЫЕrn
rn
OKrn

Текстовый формат, отправл. сообщение:
rn
+CMGR: «СТАТУС», «НОМЕР» [,«НАЗВАНИЕ»] [,ТИП, ВИД, ПРОТОКОЛ, КОДИРОВКА, [ВРЕМЯ], «НОМЕРс», ТИПс, ДЛИНА]rn
ДАННЫЕrn
rn
OKrn

Текстовый формат, сообщение запроса статуса:
rn
+CMGR: «СТАТУС», ВИД, ССЫЛКА, [«НОМЕР»] [,ТИП], «ДАТА», <dt>, <st>rn
rn
OKrn

Формат PDU:
rn
+CMGR: «СТАТУС» [,«НАЗВАНИЕ»], ДЛИНАrn
PDUrn
rn
OKrn

Чтение одного SMS сообщения из памяти:

  • Команда читает одно сообщение из области памяти указанной командой «CPMS».
  • ИНДЕКС — представлен числом указывающим номер сообщения в памяти.
  • СТАТУС — сообщений представлен либо цифрой (если выбран формат PDU), либо строкой (если выбран текстовый формат):
    0 — «REC UNREAD» — полученные непрочитанные сообщения.
    1 — «REC READ» — полученные прочитанные сообщения.
    2 — «STO UNSENT» — сохранённые неотправленные сообщения.
    3 — «STO SENT» — сохранённые отправленные сообщения.
    4 — «ALL» — все сообщения.
  • «НОМЕР» — номер телефона отправителя или получателя.
  • «НОМЕРс» — номер телефона сервисного центра службы коротких сообщений.
  • ТИП, ТИПс — число определяющее формат написания номера, допустимые значения: 129,145,161:
    161 — национальный номер абонента сети ISDN.
    145 — международный номер (+7, +3 …).
    129 — остальные номера (8XXX…, *100#, …).
  • «НАЗВАНИЕ» — строковое алфавитно-цифровое представление сопоставленное номеру телефона из адресной книги.
  • «ДАТА» — строка с датой и временем отправки сообщения (присваивается сервисным центром коротких сообщений).
  • ВРЕМЯ — представлено числом определяющим срок жизни сообщения (сервисный центр будет пытаться доставить данное сообщение адресату, пока не истечёт время жизни сообщения).
  • ВИД — число определяющее вид сообщений:
    17 — входящее/исходящее сообщение.
    2 — сообщение отчета о статусе или сообщение команды.
  • ПРОТОКОЛ — идентификатор протокола представлен числом, по умолчанию 0.
  • КОДИРОВКА — представлена числом: 0, 4, 8:
    0 — 7-битный алфавит GSM.
    4 — 8-битная кодировка.
    8 — 16-битная кодировка.
  • ДЛИНА — число указывающее размер тела сообщения (в текстовом режиме +CMGF=1) или размер фактического блока данных (в режиме PDU +CMGF=0).
  • ДАННЫЕ — тело сообщения (текст сообщения).
  • После чтения списка полученных непрочитанных сообщений, статус данных сообщений изменится на «полученные прочитанные сообщения».
  • Пример запроса:
    AT+CMGR=4rn -прочитать сообщение под номером 4.
  • Пример ответа, текстовый формат, строка принятого сообщения: +CMGR: «REC_READ»,»+7926…»,»2018/04/27,13:17:17+03″rnPrivetrn.
CMGS Отправка SMS в текстовом формате:
AT+CMGS=«НОМЕР»[,ТИП]rn
>rn
ТЕКСТ(<0x1A>/<0x1B>)

Отправка SMS в формате PDU:
AT+CMGS=ДЛИНАrn
>rn
PDU(<0x1A>/<0x1B>)

(см. примеры)

rn
+CMGS: ИНДЕКСrn
rn
OKrn
Отправка SMS сообщения без сохранения в память:

  • «НОМЕР» — номер телефона получателя сообщения.
  • ТИП — число определяющее формат написания номера, допустимые значения: 129,145,161:
    161 — национальный номер абонента сети ISDN.
    145 — международный номер (+7, +3 …).
    129 — остальные номера (8XXX…, *100#, …).
  • ИНДЕКС — представлен числом от 0 до 255, возвращается модулем при успешной отправке SMS. Это не номер записи отправленной SMS в памяти (т.к. SMS не сохраняется), а порядковый номер отправленной SMS. Если индекс достигнет значения 255, то следующая отправка SMS приведёт к сбросу индекса в 0.
  • ДЛИНА — число указывающее размер фактического блока данных (в режиме PDU +CMGF=0).
  • ТЕКСТ — текст SMS сообщения, последним символом которого должен быть символ с кодом 0x1A или 0x1B. Эти символы не должны встречаться в другом месте текста.
  • PDU — блок данных записанный в шестнадцатеричном представлении, последним символом которого должен быть символ с кодом 0x1A или 0x1B. Эти символы не должны встречаться в другом месте блока PDU.
  • <0x1A> — символ с кодом 0x1A (ctrl-z), подтверждает отправку SMS.
  • <0x1B> — символ с кодом 0x1B (Esc), запрещает отправку SMS.
  • Пример отправки SMS в текстовом режиме:
    AT+CMGF=1rn — установка текстового режима.
    AT+CSMP=17,167,0,0rn — установка параметров текстового режима.
    AT+CMGS=»+7XXXXXXXXXX»rn — номер получателя SMS.
    >rn — ответ модуля (модуль готов принять текст SMS).
    TEXT — ввод и отправка текста в модуль. Как только в тексте встретится символ <0x1A>, сообщение будет отправлено. Если в тексте встретится символ <0x1B>, сообщение не будет отправлено.
  • Примечание:
    — В текстовом режиме можно добавлять в текст SMS сообщения символы переноса строки rn., в т.ч. перед символом подтверждающим/запрещающим отправку SMS.
    — В режиме PDU весь блок PDU состоит из чисел в шестнадцатеричной системе счисления, вставка символов rn в открытом виде не допускается, в т.ч. и перед символом подтверждающим/запрещающим отправку SMS.
CMGW Отправка SMS в текстовом формате:
AT+CMGW=«НОМЕР»[,ТИП] [,СТАТУС]rn
>rn
ТЕКСТ(<0x1A>/<0x1B>)

Отправка SMS в формате PDU:
AT+CMGW=ДЛИНА [,СТАТУС]rn
>rn
PDU(<0x1A>/<0x1B>)

(см. примеры)

rn
+CMGW: ИНДЕКСrn
rn
OKrn
Запись SMS сообщения в память:

  • Команда сохраняет сообщение в область памяти указанной командой «CPMS», в дальнейшем это сообщение можно отправить командой «CMSS».
  • «НОМЕР» — номер телефона получателя / отправителя сообщения (зависит от указанного статуса сообщения).
  • ТИП — число определяющее формат написания номера, допустимые значения: 129,145,161:
    161 — национальный номер абонента сети ISDN.
    145 — международный номер (+7, +3 …).
    129 — остальные номера (8XXX…, *100#, …).
  • СТАТУС — сообщения представлен либо цифрой (если выбран формат PDU), либо строкой (если выбран текстовый формат):
    0 — «REC UNREAD» — полученное непрочитанное сообщение.
    1 — «REC READ» — полученное прочитанное сообщение.
    2 — «STO UNSENT» — сохранённое неотправленное сообщение.
    3 — «STO SENT» — сохранённое отправленное сообщение.
    Если СТАТУС не указан, то сообщению присваивается статус 2 — «STO UNSENT» (сохранённое неотправленное).
  • ИНДЕКС — представлен числом указывающим на номер (ячейку) сохраняемого SMS сообщения в предпочтительной области памяти.
  • ДЛИНА — число указывающее размер фактического блока данных (в режиме PDU +CMGF=0).
  • ТЕКСТ — текст SMS сообщения, последним символом которого должен быть символ с кодом 0x1A или 0x1B. Эти символы не должны встречаться в другом месте текста.
  • PDU — блок данных записанный в шестнадцатеричном представлении, последним символом которого должен быть символ с кодом 0x1A или 0x1B. Эти символы не должны встречаться в другом месте блока PDU.
  • <0x1A> — символ с кодом 0x1A (ctrl-z), подтверждает отправку SMS.
  • <0x1B> — символ с кодом 0x1B (Esc), запрещает отправку SMS.
  • Пример сохранения SMS в текстовом режиме:
    AT+CMGF=1rn — установка текстового режима.
    AT+CSMP=17,167,0,0rn — установка параметров текстового режима.
    AT+CMGW=»+7XXXXXXXXXX»rn — номер получателя SMS.
    >rn — ответ модуля (модуль готов принять текст SMS).
    TEXT — ввод и отправка текста в модуль. Как только в тексте встретится символ <0x1A>, сообщение будет сохранено. Если в тексте встретится символ <0x1B>, сообщение не будет сохранено.
CNMA AT+CNMA=?rn
(запрос допустимых значений)
rn
NOT SUPPORTrn
Запрос отчёта о доставке SMS сообщений:

  • В настоящее время модули A6 и A9 не поддерживают данную команду.
  • ТИП — представлен цифрой от 0 до 2 указывающей тип запрашиваемого отчёта:
    0 — запрос отчёта о доставке без опционального сообщения PDU (как в текстовом формате.
    1 — запрос отчёта о доставке с опциональным сообщением PDU.
    2 — запрос отчёта о ошибке доставки с опциональным сообщением PDU.
  • ДЛИНА — число указывающее размер фактического блока данных PDU.
Запрос отчёта в текстовом формате:
AT+CNMArn

Запрос отчёта в формате PDU:
AT+CNMA=ТИП, ДЛИНАrn

rn
OKrn
CNMI AT+CNMI=?rn
(запрос допустимых значений)
rn
+CNMI: (РЕЖИМ),(СООБЩЕНИЯ),(РАССЫЛКА),(ОТЧЁТЫ),(БУФЕР)rn
rn
OKrn
Установка/запрос индикации новых сообщений:

  • РЕЖИМ — представлен цифрой от 0 до 3:
    0 — Все URC (незапрашиваемые коды результата) буферизируются, но не отображаются.
    1 — URC отображаются только в режиме offline (командный режим), без буферизации.
    2 — URC буферизируются и отображаются. При работе в режиме online (передача данных), коды не отображаются, но будут отображены после выхода из режима online в режим offline (командный режим).
    3 — URC не буферизируются и отображаются вне зависимости от режима работы (online/offline).
  • СООБЩЕНИЯ — параметр представлен цифрой от 0 до 3, он управляет индикацией входящих SMS сообщений:
    0 — URC индикации получения новых входящих SMS сообщений не возвращаются.
    1 — Если входящее SMS сообщение сохранено в память, то возвращается URC +CMTI с указанием индекса (номера ячейки памяти в которую сохранено сообщение).
    2 — Входящие SMS сообщения выводятся как URC +CMT с указанием номера отправителя, текста сообщения или блока PDU.
    3 — В настоящее время модули A6 и A9 не поддерживают данное значение.
    Значение по умолчанию 0.
  • РАССЫЛКА — параметр представлен цифрой от 0 до 2, он управляет индикацией входящих Cell Broadcast сообщений (рассылка):
    0 — URC индикации получения новых входящих Cell Broadcast сообщений не возвращаются.
    1 — Если входящее Cell Broadcast сообщение сохранено в память, то возвращается URC +CBMI с указанием индекса (номера ячейки памяти в которую сохранено сообщение).
    2 — Входящие Cell Broadcast сообщения выводятся как URC +CBM с указанием текста сообщения или блока PDU.
    Значение по умолчанию 0.
  • ОТЧЁТЫ — параметр представлен цифрой 0 или 1, он управляет индикацией сообщений отчетов о доставке (SMS-STATUS-REPORT):
    0 — Отчёты о доставке сообщений не возвращаются.
    1 — Отчёты о доставке сообщений возвращаются в виде URC +CDS.
    2 — Отчёты о доставке сообщений возвращаются в виде URC +CDSI. В настоящее время модули A6 и A9 не поддерживают данное значение.
    Значение по умолчанию 0.
  • БУФЕР — параметр представлен цифрой 0 или 1, он управляет буфером URC:
    В настоящее время модули A6 и A9 не поддерживают управление буфером.
    0 — Если параметр РЕЖИМ данной команды установлен в значение отличное от 0, то получив эту команду, модуль выведет все данные из буфера.
    1 — Если параметр РЕЖИМ данной команды установлен в значение отличное от 0, то получив эту команду, модуль очистит буфер.
    Значение по умолчанию 0.
  • Пример ответа на запрос допустимых значений:
    +CNMI: (0-3),(0-3),(0,2),(0-1),(0,1)rnOKrn. — в скобках указаны допустимые значения, а номер скобки это номер параметра.
  • Пример ответа на запрос текущих настроек:
    +CNMI: 0,0,0,0,0rnOKrn. — все параметры установлены в значения по умолчанию (индикация всех входящих сообщений отключена).
  • Пример установки настроек индикации входящих сообщений:
    AT+CNMI: 1,2,2,1,0rn. — все коды отображаются в командном режиме, все входящие сообщения выводятся как URC (незапрашиваемые коды результата).
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
Установка/запрос предпочтительной области памяти для хранения сообщений:

  • «ПАМЯТЬ1» — представлена строкой указывающей на область памяти используемую для просмотра, чтения и удаления сообщений:
    «ME» — память модуля.
    «SM» — память SIM-карты.
  • «ПАМЯТЬ2» — представлена строкой указывающей на область памяти используемую для написания и отправки сообщений:
    «ME» — память модуля.
    «SM» — память SIM-карты.
  • «ПАМЯТЬ3» — представлена строкой указывающей на область памяти предпочтительную для получения и сохранения сообщений:
    «ME» — память модуля.
    «SM» — память SIM-карты.
  • ИСП — параметр представлен числом указывающим на количество использованных ячеек памяти (количество сохранённых сообщений).
  • Пример ответа на запрос допустимых значений:
    +CPMS: («ME»,»SM»),(«ME»,»SM»),(«ME»,»SM»)rnOKrn. — в скобках указаны допустимые значения, а номер скобки это номер параметра.
  • Пример ответа на запрос текущих настроек:
    +CPMS: «SM»,0,15,»SM»,0,15,»»,0,25rnOKrn. — .
  • Пример установки предпочтительной области памяти:
    AT+CPMS: 1,2,2,1,0rn. — все коды отображаются в командном режиме, все входящие сообщения выводятся как URC (незапрашиваемые коды результата).
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 сообщений:

  • НОМЕР — номер сервис-центра SMS сообщений.
  • ТИП — число определяющее формат написания номера, допустимые значения: 129,145,161:
  • 161 — национальный номер абонента сети ISDN.
    145 — международный номер (+7, +3 …).
    129 — остальные номера (8XXX…, *100#, …).
  • Пример ответа: +CSCA: «+79262909090»,145rnOKrn — используемый номер сервис-центра SMS сообщений в международном формате.
  • Пример установки: AT+CSCA=»+792620003311″rn — установить новый номер сервис центра SMS сообщений.
AT+CSCA=«НОМЕР» [,ТИП]rn
(установить номер сервис центра SMS сообщений)
rn
OKrn
CSCB AT+CSCB=?rn
(запрос допустимых значений)
rn
+CSCB: (ТИПЫ)rn
rn
OKrn
Установка/запрос типа принимаемых Cell Broadcast сообщений:

  • В настоящее время модули A6 и A9 не поддерживают данную команду.
  • Сообщения Cell Broadcast это сообщения рассылки.
  • ТИП — значение 0 или 1.
  • «ID» — список идентификаторов сообщений.
  • «ЯЗЫКИ» — список поддерживаемых языков сообщений.
AT+CSCB?rn
(запрос установленных типов)
rn
+CSCB: ТИП,«ID»,«ЯЗЫКИ»rn
rn
OKrn
AT+CSCB=ТИП [,»ID» [,»ЯЗЫКИ»]]rn
(установить тип принимаемых сообщений рассылки)
rn
OKrn
CSAS AT+CSASrn
(сохранение настроек)
rn
OKrn
Сохранение настроек:

  • В настоящее время модули A6 и A9 не поддерживают данную команду.
  • Все настройки, заданные командами AT+CSCA и AT+CSMP, сохраняются в EEPROM или на SIM-карту, если это карта фазы 2.
CRES AT+CRESrn
(сохранение настроек)
rn
OKrn
Восстановление настроек:

  • В настоящее время модули A6 и A9 не поддерживают данную команду.
  • Все настройки, задаваемые командами AT+CSCA и AT+CSMP, восстанавливаются из EEPROM или с SIM-карты, если это карта фазы 2.

AT-команды аудиоинтерфейса:

AT-команда: Ответ: Назначение:
CAUDIO AT+CAUDIO=?rn
(запрос допустимых значений)
rn
+CAUDIO: (0-1)rn
rn
OKrn
Открыть / закрыть аудиопоток голосового вызова:

  • ФЛАГ — представлен цифрой 0 или 1:
    0 — Закрыть аудиопоток (приём и передача).
    1 — Открыть аудиопоток (приём и передача).
  • Команда не поддерживается во время выполнения тестового аудиоцикла.
AT+CAUDIO=ФЛАГrn
(открыть/закрыть аудиопоток)
rn
OKrn
CRSL AT+CRSL=?rn
(запрос допустимых значений)
rn
+CRSL: (0-15)rn
rn
OKrn
Запрос / установка уровня громкости звонка:

  • ГРОМКОСТЬ — представлена числом от 0 до 15:
    0 — без звука.
    15 — максимальная громкость.
  • Установка громкости меняет значение громкости по умолчанию, установленное командой CRMP.
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+VTS, воспроизводимые тональные сигналы DTMF не передаются по сети GSM при наличии активного вызова.
  • ЗНАЧЕНИЕ — представлено одним из передаваемых знаков: 0-9,*,#,A,B,C,D.
  • ДЛИТЕЛЬНОСТЬ — представлена числом от 1 до 10 и является 1/10 секунды.
  • Пример воспроизведения: AT+CDTMF=5rn — воспроизведение тонального сигнала соответствующего цифре 5.
  • Пример воспроизведения: AT+CDTMF=#rn — воспроизведение тонального сигнала соответствующего знаку #.
  • Пример воспроизведения: AT+CDTMF=4,2rn — воспроизведение тонального сигнала соответствующего цифре 4, длительностью 200 мс.
AT+CDTMF=ЗНАЧЕНИЕ [, ДЛИТЕЛЬНОСТЬ]rn
(открыть/закрыть аудиопоток)
rn
OKrn
AUST AT+AUST=?rn
(запрос допустимых значений)
rn
+AUST: (0-2)rn
rn
OKrn
Запуск тестового аудиоцикла:

  • РЕЖИМ — представлен цифрой от 0 до 2:
    0 — использовать гарнитуру для ввода/вывода звука.
    1 — использовать громкую связь для ввода/вывода звука.
    2 — использовать только микрофон громкой связи для ввода звука.
  • Для запуска тестового аудиоцикла нужно сначала выбрать режим, а потом запустить цикл, во время которого модуль будет себя вести как усилитель звука.
  • При запуске тестового аудиоцикла:
    — усиление динамика устанавливается в значение 6 (см. AT+VGR).
    — усиление микрофона устанавливается в значение 15 (см AT+VGT).
    Но во время выполнения цикла эти параметры можно менять.
  • Во время выполнения тестового аудиоцикла запрещается устанавливать режим или повторно запускать аудиоцикл. Сначала его нужно остановить командой «AUEND».
  • Пример запуска и остановки аудиоциклов:
    AT+AUST=0rn — выбираем режим использования гарнитуры.
    AT+AUSTrn — запускаем тестовый аудиоцикл.
    AT+AUENDrn — останавливаем тестовый аудиоцикл.
    AT+AUST=1rn — выбираем режим использования громкой связи.
    AT+AUSTrn — запускаем тестовый аудиоцикл.
    AT+AUENDrn — останавливаем тестовый аудиоцикл.
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
Запрос / установка устройства ввода / вывода звука:

  • УСТРОЙСТВО — представлено цифрой от 0 до 2:
    0 — использовать гарнитуру.
    1 — использовать громкую связь.
    2 — использовать только микрофон громкой связи.
  • Выбранное устройство используется в т.ч. и при голосовых вызовах
  • Пример ответа: +SNFS: 1rnOKrn — используется громкая связь.
  • Пример установки: AT+SNFS=0rn — использовать гарнитуру.
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.

    Формат URC:

  • +CREG: СТАТУСrn
  • +CREG: СТАТУС, «КОД», «ID»rn
  • СТАТУС — представлен цифрой от 0 до 5:
    0 — Не зарегистрирован, не проводится поиск нового оператора.
    1 — Зарегистрирован, домашний оператор.
    2 — Не зарегистрирован, проводится поиск нового оператора.
    3 — Регистрация отклонена.
    4 — Статус неизвестен.
    5 — Зарегистрирован, роуминг.
  • «КОД» — локальной зоны местоположения базовых станций (LAC/TAC), представлен двухбайтным числом в шестнадцатеричном формате.
  • «ID» — идентификатор соты (CID/SAC/ECI), представлен двухбайтным числом в шестнадцатеричном формате.
+CLIP RINGrn
+CLIP: «+74995001456»,145,,,,0rn
Вывод телефонного номера звонящего абонента.
+CMTI +CMTI: «SM», 6rn Информирование о новом входящем SMS сообщении.
Включить/отключить отправку URC можно командой AT+CNMI, а командой AT+CSDH можно разрешить/запретить отображение заголовков входящих SMS.

    Формат URC:

  • +CMTI: «ПАМЯТЬ», ИНДЕКСrn
  • «ПАМЯТЬ» — представлена строкой из двух символов:
    «SM» — память SIM-карты.
    «ON» — список собственных номеров UICC.
    «FD» — фиксированный список номеров.
    «LD» — список последних набранных номеров.
  • ИНДЕКС — представлен числом указывающим на номер (ячейку) памяти в которую сохранено новое входящее SMS сообщение.
  • Зная индекс, можно прочитать SMS сообщение командой AT+CMGR.
+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.

    Формат URC:

  • +CMT: [,»НАЗВАНИЕ»], ДЛИНАrnPDUrn
  • +CMT: «НОМЕР»[,»НАЗВАНИЕ»],»ДАТА»[,ТИП, ВИД, ПРОТОКОЛ, КОДИРОВКА, «НОМЕРс», ТИПс, ДЛИНА]rnДАННЫЕrn
  • Назначение и порядок следования параметров идентичен ответу на команду AT+CMGR для входящих SMS сообщений.
+CSSI
+CSSU
+CSSI: 3rn Информирование о дополнительной услуге.

    Формат URC:

  • +CSSI: КОДrn
  • +CSSU: КОДrn
+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 подключенный к компьютеру

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
00340030002C0036003800720020″,64

Текст сообщений выданного на запрос «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,
0 ready
1 unavailable
2 unknown
3 ringing
4 call in progress
5 asleep

Support Module Tutorial
Usage
Command Possible response(s)
+CPAS +CPAS:

+CME ERROR: 

+CPAS=? +CPAS: (list of supporteds)

+CME ERROR: 

Examples

AT+CPAS
+CPAS: 0

OK
AT+CPAS=?
+CPAS: (0-5)

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
00340030002C0036003800720020″,64

Текст сообщений выданного на запрос «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

В предыдущей статье мы говорили о модуле SIM800l. В этой статье я хотел бы рассказать об управлении этим модулем. Как было сказано ранее — модуль управляется через UART интерфейс посредством AT команд. Конечно, все AT команды я перечислять не буду — для этого существует даташит, в котором все они подробно расписаны. Даташит вы можете скачать в конце статьи. Остановимся на самых распространенных и необходимых AT командах управления модулем SIM800l. Но прежде, я вкратце расскажу о том как подключить модуль. Итак, с питанием понятно — напряжение 4В и ток не менее 2А. Также понадобится переходник USB-UART, например такой. Подключаем переходник в свободный USB порт компьютера устанавливаем драйвера, далее подключаем RX вывод переходника к TX выводу модуля, а TX вывод модуля к RX выводу переходника. Вот и все. Запускаем любую терминальную программу (Hyper Terminal или PuTTy), и вносим настройки. Собственно по настройкам:

  1. Номер COM порта (смотрим в диспетчере устройств),
  2. Скорость соединения — 9600 (Хотя изначально модуль настроен на автоопределение).
  3. Четность — (8-N-1 4)
  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»
>Test sms.elschemo.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»,»+380XXXXXXXX»,»

«,»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»,»+380XXXXXXXX»,»

«,»13/09/21,11:57:46+24»
Test sms. elschemo.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: «+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 модуля NEOWAY M590, команды управления
GSM модуль представляет собой беспроводное коммуникационное устройство (модем) для приема/передачи данных в сетях мобильной связи. В любом мобильном телефоне установлен такой модуль, благодаря которому возможно голосовое общение, прием сообщений, выход в интернет. В этой статье я расскажу про GSM/GPRS модуль NEOWAY M590, приведу описание и назначение основных команд.
Данный модуль, смонтированный на плате с минимальной обвязкой (а также в виде конструктора) можно приобрести в Китае, где он позиционируется как модуль под Arduino.

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

На следующей картинке представлена схема с рекомендуемой обвязкой модуля:

GSM модуль NEOWAY M590, схема подключения
Модуль питается напряжением 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 модулем и компьютером
Теперь рассмотрим структуру стандарта связи, инструкции и особенности приема/передачи данных. 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>:
0 – не зарегистрирован, поиск сети не выполняется
1 – зарегистрирован в домашней сети
2 – регистрация отклонена
3 – не зарегистрирован, выполняется поиск сети
4 – неизвестно
5 – зарегистрирован, зона роуминга

Ответ OK или ERROR

AT+CREG: <mode>,<stat>
OK

Пример 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):
+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-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):
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: 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>:
0 – удалить сообщение с номером <index>
1 – удалить все прочитанные сообщения
2 – удалить все прочитанные и отправленные сообщения
3 – удалить все прочитанные, отправленные и неотправленные сообщения
4 – удалить все сообщения

Ответ 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 модуль NEOWAY M590

Даташит на 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>:
0 – удалить сообщение с номером <index>
1 – удалить все прочитанные сообщения
2 – удалить все прочитанные и отправленные сообщения
3 – удалить все прочитанные, отправленные и неотправленные сообщения
4 – удалить все сообщения

Ответ 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

Видео:

Понравилась статья? Поделить с друзьями:
  • At cgatt 1 error
  • At cardlock error
  • At 95 confidence what is the margin of error
  • At 145te коды ошибок
  • Asyncpg exceptions postgressyntaxerror syntax error at or near