Модем перестал регистрироваться в сети, а в логах терминала виден только ответ ERROR на отправленную команду AT+CREG? — типичная ситуация, с которой сталкиваются при настройке GSM- и LTE-модулей. Причина почти всегда кроется не в «поломке» устройства, а в неправильном синтаксисе или непонимании того, как именно работают AT-команды стандарта 3GPP. Без их знания невозможно ни проверить уровень сигнала, ни отправить SMS, ни настроить подключение к интернету через сотовый модуль.
В этом материале разберём, что представляют собой команды 3GPP AT, откуда они взялись, как устроен их синтаксис и какие команды используются чаще всего. Отдельно рассмотрим практические примеры работы с модемом через терминал и типичные ошибки, из-за которых устройство отвечает отказом.
Что такое AT-команды и причём тут 3GPP
AT-команды — это текстовый язык управления модемом, где каждая инструкция начинается с префикса AT (от английского attention — «внимание»). Изначально набор команд разработала компания Hayes для своих телефонных модемов, поэтому иногда встречается название «команды Hayes». Со временем язык стал отраслевым стандартом и был расширен под задачи сотовой связи.
Именно здесь появляется 3GPP — организация, разрабатывающая спецификации мобильных сетей (GSM, UMTS, LTE, 5G). Для управления терминальным оборудованием 3GPP выпустила спецификацию TS 27.007, которая описывает стандартный набор AT-команд для сотовых модемов: регистрацию в сети, работу с SIM-картой, SMS, вызовы и пакетную передачу данных. Дополнительные аспекты раскрыты в спецификациях TS 27.005 (SMS и CBS) и TS 27.060 (пакетные домены).
Практический смысл прост: любой модуль, заявляющий совместимость с 3GPP, обязан понимать базовый набор команд из TS 27.007. Поэтому команда AT+CSQ (запрос уровня сигнала) будет работать и на модуле Quectel, и на SIMCom, и на Telit — хотя расширенные, фирменные команды у каждого производителя свои.
Как устроен синтаксис команд
Каждая команда отправляется модему как строка, завершающаяся символом возврата каретки (\r, код 13). Модем отвечает результатом и финальным кодом: OK при успехе или ERROR при отказе. Разберём структуру на примере команды AT+CREG?: префикс AT, знак + указывает на расширенную команду стандарта GSM/3GPP, далее мнемоника CREG и суффикс ? — запрос текущего значения.
У расширенных команд существует четыре формы обращения, и путаница между ними — частая причина ошибок:
- 🔍 Тестовая форма —
AT+КОМАНДА=?— модем возвращает список поддерживаемых параметров; - 📖 Чтение —
AT+КОМАНДА?— возвращает текущее значение параметра; - ✏️ Запись —
AT+КОМАНДА=значение— устанавливает параметр; - ⚙️ Исполнение —
AT+КОМАНДА— выполняет действие без параметров.
⚠️ Внимание: не все команды поддерживают все четыре формы. Перед использованием проверяйте доступные варианты тестовой формой =? — это безопасно и не меняет настройки устройства.
Основные группы команд 3GPP
Набор команд из TS 27.007 условно делится на функциональные группы. Знать их полезно, чтобы быстро находить нужную инструкцию в документации на конкретный модуль.
| Группа | Назначение | Примеры команд |
|---|---|---|
| Общие | Идентификация и базовая настройка модема | ATI, AT+CGMI, AT+CGSN |
| Сетевые | Регистрация в сети, выбор оператора, уровень сигнала | AT+CREG?, AT+COPS, AT+CSQ |
| SMS | Отправка и приём текстовых сообщений | AT+CMGF, AT+CMGS, AT+CMGL |
| Вызовы | Голосовые вызовы и управление ими | ATD, ATA, ATH |
| Данные (GPRS/LTE) | Настройка APN и пакетного соединения | AT+CGDCONT, AT+CGATT, AT+CGACT |
Отдельно стоит упомянуть проприетарные расширения: производители добавляют собственные команды для специфических функций — например, управления GNSS-приёмником, eSIM или режимами энергосбережения. Они описаны только в документации конкретного модуля и между брендами не переносятся.
Практика: базовая диагностика модема через терминал
Чтобы пообщаться с модемом напрямую, его подключают к ПК (через USB-UART или встроенный COM-порт) и открывают любую терминальную программу — например, PuTTY или HTerm. Скорость порта и параметры подключения зависят от модели, их нужно смотреть в документации; многие модули поддерживают автоопределение скорости.
Начните с простейшей проверки связи. Отправьте:
AT
Если модем исправен и порт настроен верно, в ответ придёт OK. Дальше последовательно проверяйте состояние устройства:
AT+CPIN?
AT+CSQ
AT+CREG?
Первая команда покажет, готова ли SIM-карта (ожидаемый ответ — +CPIN: READY), вторая — уровень сигнала, третья — статус регистрации в сети. У команды AT+CSQ ответ вида +CSQ: rssi,ber, где первое число от 0 до 31 отражает мощность сигнала, а значение 99 означает, что сигнал неизвестен или отсутствует.
☑️ Чек-лист первичной диагностики модема
⚠️ Внимание: команды, меняющие конфигурацию (например,AT+CFUNили настройки APN), могут сохраняться в энергонезависимой памяти модуля. Перед экспериментами зафиксируйте исходные значения параметров через форму чтения?, чтобы была возможность вернуть конфигурацию обратно.
Отправка SMS и настройка интернет-соединения
Для работы с SMS сначала выбирают режим: текстовый (AT+CMGF=1) удобен для ручной отправки, PDU-режим (AT+CMGF=0) используется программами. В текстовом режиме отправка выглядит так:
AT+CMGF=1
AT+CMGS="+7XXXXXXXXXX"
> Текст сообщения
После ввода текста сообщение завершается комбинацией Ctrl+Z (символ с кодом 26) — не Enter. Это самая частая ошибка новичков: модем «молчит», потому что ждёт именно символ конца сообщения, а не перевод строки.
Для подключения к интернету через пакетную передачу данных сначала задаётся контекст PDP с точкой доступа оператора:
AT+CGDCONT=1,"IP","internet.example"
Здесь internet.example — условный APN, реальное значение нужно брать у вашего оператора связи. Дальнейшие шаги (активация контекста, получение IP, открытие сокетов) уже сильно зависят от модели модуля: у одних используются стандартные команды TS 27.007, у других — фирменный стек TCP/IP-команд. Сверяйтесь с руководством именно вашего устройства.
Типичные ошибки и их причины
Ответ ERROR сам по себе малоинформативен. Чтобы модем сообщал расширенные коды ошибок, включите verbose-режим командой AT+CMEE=2 — тогда вместо голого отказа вы получите пояснение вида +CME ERROR: SIM not inserted или +CME ERROR: operation not allowed.
Разберём распространённые ситуации:
- 📵 SIM-карта не готова —
AT+CPIN?возвращает запрос PIN-кода; введите его черезAT+CPIN="код", если это предусмотрено вашим сценарием; - 📶 Нет регистрации в сети —
AT+CREG?возвращает статус 0 или 2; проверьте антенну, уровень сигнала и корректность SIM; - ⌨️ Синтаксическая ошибка — лишний пробел, неверный регистр параметра или отсутствие кавычек вокруг строки;
- 🔒 Команда не поддерживается — функция отсутствует в прошивке модуля или заблокирована оператором.
Почему модем отвечает ERROR на правильную команду
Возможные причины: команда требует предварительных условий (например, регистрации в сети или активного PDP-контекста), параметр выходит за допустимый диапазон, либо функция отключена на уровне прошивки. Проверьте поддержку тестовой формой AT+КОМАНДА=? и включите расширенные коды ошибок AT+CMEE=2.
Где брать документацию и как ей пользоваться
Официальные спецификации 3GPP (включая TS 27.007) публикуются в открытом доступе на сайте организации. Это первичный источник, но читать его «в лоб» тяжело: документ описывает сотни команд со всеми параметрами и кодами ошибок.
Практичнее работать с двумя документами параллельно: спецификацией 3GPP — для понимания стандартного поведения, и AT Command Manual от производителя вашего модуля — для конкретных значений, ограничений и фирменных расширений. Если поведение устройства расходится со спецификацией, приоритет обычно у документации производителя.
Часто задаваемые вопросы
Чем AT-команды 3GPP отличаются от классических Hayes-команд?
Базовые Hayes-команды (например, ATD, ATH, ATE) управляли телефонными модемами. 3GPP расширила набор командами с префиксом + и # для задач сотовой связи: регистрации в сети, работы с SIM, SMS и пакетных данных. Современные модули поддерживают оба набора.
Можно ли отправлять AT-команды на смартфон?
На обычном смартфоне прямой доступ к модему через AT-команды, как правило, закрыт для пользователя. Инженерные режимы и отладочные интерфейсы существуют, но их доступность зависит от модели и прошивки, а вмешательство может нарушить работу устройства. AT-команды в первую очередь инструмент для GSM/LTE-модулей и USB-модемов.
Что означает ответ +CME ERROR?
Это расширенный код ошибки мобильного оборудования (Mobile Equipment). Он появляется, если включён verbose-режим командой AT+CMEE=2. Текст после двоеточия указывает причину отказа — от неправильного PIN до неподдерживаемой операции.
Почему модем не отвечает на команду AT?
Проверьте скорость порта, настройки чётности и стоп-битов, а также корректность подключения линий TX/RX (они должны быть перекрёстными). Убедитесь, что строка завершается символом возврата каретки. Если модуль имеет несколько UART-интерфейсов, возможно, вы подключены не к тому порту — уточните распиновку в документации.
Где скачать спецификацию 3GPP TS 27.007?
Спецификации 3GPP находятся в открытом доступе на официальном портале организации в разделе спецификаций. Ищите документ по номеру 27.007 — доступны версии для разных релизов стандарта.