AT-команды — стандартный способ управления модемами и модулями (GSM/UMTS/LTE).
Команды бывают базовые (исторически от Hayes/U.S. Robotics), расширенные (семейство +CMD)
и «S-параметры». Почти каждая команда поддерживает три режима:
=??=...AT+CFUN=? -- тест: вернёт допустимые значения
AT+CFUN? -- чтение: текущее состояние
AT+CFUN=4,0 -- запись: выключить RF без перезагрузки
После включения модуль проходит инициализацию и переходит в рабочий режим:
RDY
+CFUN: 1
+CPIN: READY -- если PIN не установлен
-- или --
+CPIN: SIM PIN -- требуется PIN
AT+CPIN=1234
OK
Call Ready
CFUN=0 — минимальная функциональностьCFUN=1 — полная функциональностьCFUN=4 — выключить приёмопередатчик (RF off)Эти параметры обычно сохраняются во встроенной памяти модуля:
AT+IPR=<baud> — скорость. Примеры: 0 (авто), 9600, 115200.
При 0 первый символ должен быть заглавная A.AT+IFC=<rx>,<tx> — управление потоком:
0 — нет1 — программное (XON/XOFF)2 — аппаратное (CTS/RTS/DTR)AT+ICF=<fmt>,<parity> — формат кадра:
<fmt> (бит данных/чётность/стоп-биты): 8,0,1 (по умолчанию), 8,0,2, 7,1,1 и т. д.<parity>: 0 — odd, 1 — even, 3 — noneAT+GMM -- модель (пример: SIMCOM_SIM900D)
AT+GOI -- короткая модель
AT+GMR -- версия прошивки
AT+GSV -- производитель, модель и прошивка (3-в-1)
AT+GSN -- IMEI
AT+CSQ -- уровень сигнала: 0..31 (99 = нет сигнала)
AT+CREG=1 -- включить URC о регистрации
AT+CREG? -- статус регистрации: 0..5
AT+CSPN? -- оператор из SIM
AT+COPS? -- текущий оператор/режим выбора
AT+COPS=? -- поиск доступных сетей (занимает время)
CSQ: первое число — RSSI (чем выше, тем лучше), второе — RXQUAL (0..7, меньше — лучше).CREG статусы: 0 — не зарегистрирован, 1 — home сеть, 5 — роуминг.ATE0/1 -- эхо (0 off / 1 on)
ATV0/1 -- формат ответов (0 числовой / 1 текстовый)
AT+CMEE=0/1/2 -- детализация ошибок (0 off, 1 коды, 2 текст)
Для ручной отладки удобно ATE1; ATV1; AT+CMEE=2.
Для прошивок/МК — минимальные ответы: ATE0; ATV0; AT+CMEE=0.
ATD1234567; -- набрать номер
ATDL -- повтор последнего
AT+CLIP=1 -- включить определитель номера (CLI)
ATA -- ответить
ATH -- положить трубку
ATS0=0 -- автоответ: 0 = выкл (только вручную)
AT+GSMBUSY=1 -- запрет входящих (до перезапуска)
AT+CCLK? -- чтение
AT+CCLK="yy/mm/dd,hh:mm:ss+zz" -- установка (UTC offset в минутах/4)
AT+CMGF=0 — PDU (HEX), AT+CMGF=1 — текстовый+CMTI: "SM",<idx>AT+CSCA? -- номер SMSC
AT+CMGL="ALL" -- список (в текстовом режиме)
AT+CMGR=<index>,0|1 -- чтение (с/без смены статуса)
AT+CMGD=<index>[,<delflag>] -- удаление (или пакетно через CMGDA)
AT+CMGS="+7XXXXXXXXXX" -- отправка: затем текст, завершить Ctrl+Z
Совет: если не требуется PDU-парсинг, используйте CMGF=1 (текстовый режим).
AT+CUSD=1,"#102#" -- выполнить и вернуть ответ (ASCII)
AT+CUSD=0 -- выполнить, ответ игнорировать
AT+CUSD=2 -- отменить текущую операцию
Часто звёздочные коды *... возвращают Unicode; хэштег-коды #... — ASCII.
AT+CPBS="SM" -- выбрать хранилище SIM (по умолчанию)
AT+CPBS? -- текущее/ёмкость, например: "SM",3,250
AT+CPBR=1 -- чтение записи №1
AT+CPBR=2,5 -- чтение диапазона
AT+CPBF="строка" -- поиск
AT+CPBW=4,"+71234567890",145,"Test" -- запись в ячейку 4
AT+CPBW=4 -- удаление записи 4
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 -- поднять PDP
AT+SAPBR=2,1 -- проверить IP: +SAPBR: 1,1,"10.x.x.x"
AT+SAPBR=0,1 -- опустить PDP
Настройка параметров и передача (пример для SIMCom-совместимых модемов):
AT+FTPSERV="ftp.site.ru"
AT+FTPUN="login"
AT+FTPPW="password"
AT+FTPPUTPATH="/"
AT+FTPPUTNAME="test.txt"
AT+FTPMODE=1 -- 1 пассивный, 0 активный
AT+FTPTYPE="I" -- I = бинарный, A = ASCII
AT+FTPPUT=1 -- открыть сессию на запись
+FTPPUT: 1,1,1260 -- доступный размер блока
AT+FTPPUT=2,10 -- сообщить длину блока...
> (ввести 10 байт данных)
AT+FTPPUT=2,0 -- закрыть запись/сессию
Для чтения используйте аналогичные FTPGET* команды.
at = AT).RING, +CUSD, +CMTI) приходят асинхронно — учитывайте это в парсере.ATE1; ATV1; AT+CMEE=2 -- удобный человекочитаемый режим
AT+CPIN? -- статус PIN
AT+CSQ; AT+CREG?; AT+COPS? -- сигнал, регистрация, оператор
AT+CMGF=1 -- SMS в текстовом виде
ATD+7XXXXXXXXXX; -- исходящий вызов
ATH -- сброс вызова
AT+SAPBR=...; AT+FTPPUT=... -- GPRS/FTP пример (см. выше)
Материал подготовлен для практического использования в SIM-банках и GSM-шлюзах. Используйте AT-команды ответственно и с учётом требований вашего оператора и законодательства.