AT команды модема.

AT команда служит для управления некоторыми функциями модема. Команды можно вводить специальными программами, это намного проще чем встроенным в Windows XP hyperterminal. Для этого можно использовать программы: или Перед использованием данных программ нужно закрыть все другие программы которые могут использовать модем. Для модемов Huawei нужно подключаться на COM порт "3G PC UI Interface ", для модемов ZTE MF на COM порт "ZTE Proprietary USB Modem ". Как пользоваться смотрим картинки, всё достаточно просто. Если команд несколько, сначала вводим одну - жмём Enter , потом следующую и опять жмём Enter.


Скачать :

Скачать : (Пароль на архиве: 12345 )


Huawei Terminal - программа терминала для прямой работы с беспроводными модемами Huawei, а также (ограниченно) с любыми другими модемами.

Запускаем . В окне нужно выбрать HUAWEI Mobile Connect - 3G PC UI Interface Нажимаем Подключить (Connect )

Для уверенности, что вы действительно подключились, наберите команду AT и нажмите отправить: Если в ответ от модема OK . Значит вы все сделали правильно и все готово для работы с модемом.

AT^CARDLOCK="NCK Code" , где NCK Code 43963141 AT^CARDLOCK="43963141" . Вставляем команду AT^CARDLOCK="43963141" и нажимаем кнопку ENTER клавиатуре.

Скачать : (Пароль на архиве: 12345 )


DC-Unlocker client первая в Мире программа которая начала специализироваться на разблокировке беспроводных 2G\3G\4G модемов форм-фактора USB\PCMCIA. Со временем модельный ряд начал расширятся мобильными телефонами, смартфонами, WiFi роутерами.

Качаем программу DC-Unlocker client и устанавливаем ее. После чего запускаем.
1. Далее меняем язык на русский. Нажимаем Options и выбираем Russian

2. Выбираем производителя модема или роутера в нашем случаи это Huawei . Нажимаем на Лупу как показано на картинке и пойдет чтение информации. Внимание! родная программа от модема должна быть закрыта). После прочтения информации вы увидите Статус SIM блокировки - Блокировано

3. Далее нам необходимо вести команду AT^CARDLOCK="NCK Code" , где NCK Code - это код разблокировки который вы приобрели у нас. Например код 12860791 тогда наша команда будет иметь такой вид AT^CARDLOCK="12860791" . Вставляем команду AT^CARDLOCK="12860791" внизу прочитанной информации и нажимаем кнопку ENTER клавиатуре.

4. После нажатия на ENTER произойдет ввод кода в наше устройство и выйдет сообщение OK

5. Нажимаем еще раз на Лупу , чтобы прочитать заново информацию. И вы увидим, где Статус SIM блокировки - надпись Разблокирован

Вот и все. Наше устройство успешно разблокировано.

AT^CARDLOCK="NCK Code" – ввод кода снятия блокировки (8-значное число). NCK Code - это код разблокировки. Пример команды AT^CARDLOCK="12345678"

Мы собрали плату с модулем и проверили ее на работоспособность. Сегодня попробуем поговорить с модулем и что-нибудь его попросить сделать. Для общения с модулем нам понадобиться узнать его язык, а именно набор AT-команд . Для подключения к модулю я буду использовать переходник USB->RS-232->UART . С учетом того что модуль питается напряжением 3,3 в, то потребуется переходник RS-232->UART на базе микросхемы серии 3232 . Мне паять было лень, да и готовая плата стоит по цене деталей, поэтому я купил готовую. Выглядит она так:

Подключив все и подав питание, убедившись что все нормально, запускаем программу PuTTY . Почему именно ее? Да просто она по моему единственная которая адекватно работает с модулем. Если вам нравится любой другой терминал, виндовый например, работайте в нем, но за адекватную работу я не ручаюсь. После запуска программы выбираем тип соединения Serial , номер COM-порта , скорость и называем сеанс SIM900D .

Ну теперь можно начинать. Первая команда для соединения с модулем должна быть всегда AT . Если модуль ответил Ок значит все правильно, если нет, ищем ошибку.

Перед тем как переходить к командам немного болтовни. Как я понял все команды разделены на три части.
Первая имеет вид: AT+? вернет значение параметра.
Вторая имеет вид: AT+=? вернет либо Ок либо значение в этом параметре.
Третья имеет вид: AT+= установит значение параметра.
Теперь переходим к командам. Здесь я рассмотрю только основные команды, которые необходимы для работы модуля. Для более глубокого изучения читайте мануал. Но! Я в разделе Справочники создам ветку SIM900D и буду туда складывать команды с описанием по мере их изучения.
AT+GSV
Вернет три строки. Первая компания изготовитель. Вторая идентификатор модуля. Третья версия прошивки.

AT+CSQ
Вернет информацию о качестве приема сети. Первое число это уровень от 0 до 31 либо 99. 99 означает отсутствие сигнала вообще. Вторая цифра мне непонятна, но на одном форуме мне сказали что чем она меньше,тем лучше. Поверим на слово.

AT+COPS?
Это информационная команда, она вернет оператора к которому сейчас подключен модуль. В частности у меня Beeline.

AT+CCLK?
Эта команда вернет текущее время и дату.
AT+CCLK="гг/мм/дд,чч:мм:сс+чп"
Данная команда устанавливает дату, время и часовой пояс.

ATEх
Данная команда включает режим эха. При работе с МК его лучше отключить.
х=0 Выключить
х=1 Включить
AT+CMEE=x
Данная команда задает вариант ответа ошибки.
х=0 При любой ошибке напишет ERROR.
х=1 Вернет код ошибки. Удобно для работы с МК.
х=2 Вернет подробное описание ошибки. Удобно для работы через терминал.
ATVx
Данная команда устанавливает формат ответа.
х=0 Вернет текстовой ответ. Удобно для работы через терминал.
х=1 Вернет код ответа. Удобно для работы с МК.
ATD89161234567;
Данная команда заставит модуль позвонить по данному номеру. Частая ошибка не установка точки с запятой в конце номера, без нее звонить не будет.
ATA
Снять трубку если пришел звонок.
ATS0=x
Данная команда устанавливает количество звонков до автоматического поднятия трубки. Если х=0 , то поднятие только вручную.
ATH0
Разорвать все соединения.
AT+CLIP=1
Данная команда включает режим АОН. При работе с МК по моему не нужный режим.
AT+GSMBUSY=x
Данная команда разрешает/запрещает входящие звонки.
х=0 Разрешить.
х=1 Запретить.
AT+CMGR=x,y
Данная команда читает SMS.
х Порядковый номер сообщения.
y=0 Изменить на статус прочитано.
y=1 Не изменять статус.
AT+CMGD=x
Данная команда удаляет SMS.
х Порядковый номер сообщения.
AT+CMGS="89161234567"
Данная команда отсылает SMS. После ввода команды модуль предложит ввести текст.
После ввода текста для отправки нужно завершить текст символом Ctrl+Z
И на по следок смешная но очень важная команда.
ATD#102#
Надеюсь вы уже догадались - это баланс. Сразу отвечу на вопрос почему вначале # . Дело в том что если использовать * , то вы получите текст в HEX формате, а так все Ок.


Вот и все. В следующей статье будем прикручивать модуль к МК.
Удачи!
Kos 24.05.14

Больше года прошло, а к МК до сих пор не прикрутили?)))))

Алексей 24.05.14

Да чего-то я подзабил на него))) Платка покрылась пылью. Чел который хотел на ее базе мониторить температуру в доме передумал, а мне оно как-то пока не нужно. Если интересно прикрутить к МК то можно подумать. Там в общем ничего сложного нет.

Kos 06.06.14

Было бы интересно посмотреть на исходники прошивки)))

Алексей 07.06.14

На недельке попробую че нить накидать

Александр 13.06.14

А обязательно прикручивать микроконтроллер? Вроде с поддержкой embedded AT он не нужен. Я ещё толком не разобрался если у вас есть подробная информация скиньте пожалуйста на почту([email protected]).

Ааааа 14.06.14

Поправьте кодировки

Алексей 14.06.14

Кодировки где?

timm 02.07.14

Вопрос - если на плате MAX3232 замкнуть пины RX и TX, в терминале мне должно будет приходить эхо на мои запросы? Т.е. схема такая: на компе запущена Putty, к компу подключен USB-COM конвертер, к которому подключена MAX3232. Дальше подключений нет, только замкнуты RX и TX. У меня не работает MAX3232 либо USB-COM конвертер, вот пытаюсь разобраться.

Алексей 02.07.14

Давайте по порядку. Для того чтобы проверить USB-COM, просто перемкните 2 и 3 контакты на переходнике. При посылке в порт через Putty вам должно вернутся тоже самое. Ну будет казаться что вы просто печатаете текстовой файл. Если ничего выводится не будет, то не работает переходник. Но это мало вероятно. Внимательно посмотрите правильность разводки MAX3232 Питание не забудьте подвести 3,3в и обвязать общий провод.

timm 03.07.14

Всё получилось! Несколько дней мучился, не у кого спросить было. Проблема была в том, что я не подавал питание на Vcc на плате MAX3232, т.к. почему-то решил, что плата сама от COM-порта питается. Подавать на Vcc можно от 3 до 5В, не обязательно 3.3В. У меня и от 2.9В работает. Спасибо за ответ.

CrazyPit 08.10.14

Некрасиво запрещать copy paste на страничке пришлось сохранять страничку и открывать ее в ворде.. защита банальна но пользоваться неудобно

Алексей 08.10.14

Каюсь. Исправлю. Самому надоело.

Андрей 09.10.14

Команда A/ кошерная - Повтор предыдущей команды.

Андрей 19.10.14

Может какую нибудь темку открыть по командам для SIM900D. Я вот сейчас с FTP файлик скачал платкой свежекупленой, пару вечеров откорячился с командами по форумам. Глядишь кому то пригодится. За примечание про точку с запятой в конце набора номера респектище большое. На других сайтах на ней внимание не акцентировалось, так тоже не сказать что бы сильно помучился, но и NO CARRIER на ровном месте радости не доставляло.

Алексей 19.10.14
Алексей 19.10.14

Можно даже все там переписать и сгруппировать по темам.

Андрей 20.10.14

В "тут" продолжить может только хозяин сайта. с одной стороны это хорошо тем что получается не засраный флудом справочник. С другой стороны если возникнут вопросы там их уже не обсудить. Можно выкладывать на ветке форума, с отступлениями и развёрнутыми комментариями в качестве рабочего материала. А после проверки как минимум ещё одним человеком на предмет работоспособности забивать в скрижали "тут"

В этой статье мы рассмотрим с вами как можно разблокировать модем Huawei при помощи AT-команд, а также, как вообще, можно взаимодействовать с модемом при их помощи. Для примера возьмем популярную на данный момент модель - Huawei E3272 ... Как мы и писали ранее, взаимодействовать с модемом при помощи AT-команд, можно через специальные терминальные программы, например HyperTerminal, PuTTy, Huawei Modem Terminal и др. Рассмотрим, как же это сделать.

Ввод AT-команд в модем Huawei при помощи PuTTy

После того, как модем установится в диспетчере устройств должны появиться дополнительные устройства:

В разделе Модемы - Huawei Mobile Connect - Modem, в разделе Порты (COM и LPT) - HUAWEI Mobile Connect - PC UI Interfac (COM5) (у вас может быть другой номер порта, запомните его, т.к. именно через него мы будем подключаться к модему для ввода AT-команд) и в разделе Сетевые адаптеры - HUAWEI Mobile Connect - Network Card. Как видно, модем определяется и на COM-порту и как NDIS сетевой адаптер. Теперь запускаем PuTTy и настраиваем соединение с COM-портом. Обратите внимание, что все процессы, занимающие COM-порт модема должны быть закрыты во время того, как мы будем соединяться с модемом при помощи PuTTy. В данном случае это MegaFonInternet.exe и MegaFonInternetService.exe. Заходим в диспетчер задач и завершаем эти процессы:

Сделать это можно также и из консоли (Win+R -> cmd -> Ok) с помощью последовательности команд:

net stop "MegaFon Internet Service"

taskkill /f /im MegaFonInternet.exe

Настраиваем Putty следующим образом и нажимаем кнопку "Соединение":

Как узнать IMEI модема и версию прошивки с помощью AT-команд?

IMEI модема и версию прошивки можно узнать с помощью команды ATI, или AT+CGSN. Введем последовательно эти две команды в модем и посмотрим его ответ:

ATI+CGSN Manufacturer: huawei Model: E3272 Revision: 21.436.05.00.209 IMEI: 867503013090647 +GCAP: +CGSM,+DS,+ES 867503013090647 OK

Как видно IMEI модема в данном случае это - 867503013090647, версия прошивки модема - 21.436.05.00.209. можно на нашем сервисе. В ответ вы получите код разблокировки и код, запрашиваемый при прошивке модема. Для данного IMEI мы получим в ответ следующее:

IMEI: 867503013090647 201 Algo Unlock Code: 72033153 Flash Code: 34262301

Т.о. код разблокировки для нашего модема - 72033153. Введем его и проверим статус блокировки.

Как ввести код разблокировки в модем с помощью AT-команды?

Для этого дадим команду AT^CARDLOCK="72033153", после чего, проверим статус блокировки с помощью AT^CARDLOCK? :

Как видно, модем ответил ^CARDLOCK 2,10,0 - что означает что он разблокирован и его теперь можно использовать SIM картами любых операторов. Теперь мы рассмотрим как все то же самое сделать через DC Unlocker.

Как ввести AT-команду в модем, используя DC Unlocker?

Самым простым способом является использование ПО DC Unlocker в качестве терминальной программы. Скачайте последнюю версию DC Unlocker Client по следующей ссылке . Не нажимайте в нем никаких кнопок (ни разблокировка, ни соединение с сервером, ни что-либо еще нам не потребуется), просто нажмите на кнопку с изображением лупы, для того чтобы клиент определил ваш модем:

На рисунке эта кнопка помечена цифрой 1. Обратите внимание на лог DC Unlocker (лог это вся информация в окошке, там отображается модель вашего модема, версия прошивки и т.п.) и количество оставшихся попыток ввода кода разблокировки. Если попыток ввода кода не осталось, то разблокировать модем кодом будет уже нельзя. Вводим ниже в том же окне команду AT^CARDLOCK="nck code" , где nck code - полученный вами код разблокировки. После того как модем ответит Ok - он будет разблокирован.

Перед использованием DC Unlocker в качестве терминального клиента, необходимо также убедиться, как мы это делали в случае с PuTTy, что ни один из процессов и сервисов не используется COM порт модема (если у вас открыта программа для соединения с интернет, идущая в комплекте с модемом - ее обязательно нужно закрыть), а еще лучше завершить все "лишние" процессы, относящиеся к модему через диспетчер задач.

Что делать если DC Unlocker не определяет модем, не видит COM-порта?

Удостоверьтесь в том, что ПО идущее в комплекте с модемом для доступа в интернет (например, Connect Manager или Megafon Internet и т.п.) у вас закрыто, т.к. во время работы оно использует COM-порт модема. Также не помешает зайти в диспетчер задач и остановить все процессы, относящиеся к этому ПО. После чего запустите DC Unlocker еще раз и попробуйте снова определить модем. Если COM-порт не видится и в этом случае, существует один трюк. Скачайте официальную прошивку под ваш модем (это можно сделать на сайте оператора или же, на любом из многочисленных мобильных форумов в сети, например 4pda и прочих) и запустите прошивальщик (DC Unlocker должен быть закрыт в это время). Дойдите до шага, где прошивальщик спросит у вас Flash код для перепрошивки. Не вводите его! В момент когда прошивальщик запросил у вас Flash код - модем уже определился на COM порту, закройте прошивальщик и запустите DC Unlocker. COM-порт должен видеться и модем определится.

Как уже писалось ранее, д ля начала общения с только что испеченным модулем, необходимо отправить команду "AT". После чего он автоматически подстроит скорость порта и вернет "OK". Теперь когда скорость настроена, нужно ее зафиксировать, чтобы каждый раз при включении не выпонять это действие. Для настройки порта служат следующие команды:

AT+IPR=19200 - настройка скорости порта.

Можно поставить слудующие значения: 0, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
0 - автовыбор, это значение стоит по умолчанию.

Также можно настроить режим передачи:

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+GMM - идентификатор модуля.

Модуль в ответ вернет производителя и модель: "SIMCOM_SIM900D"

AT+GOI - более короткий идентификатор модуля.

В ответ приходит только "SIM900D"

AT+GMR - версия прошивки.

Может пригодится если захочется залить в модуль другую версию прошивки.

AT+GSV - она включает в себя все три предыдущие команды.

Вернет производителя модуля, его модель и версию прошивки.



AT+GSN - вернет IMEI модуля.

Может пригодится когда нужно точно идентифицировать модуль. IMEI также продублирован на этикетке наклееной на модуль, и они должны совпадать.

Следующим шагом можно настроить часы реального времени модуля. Для этого оправляем следующую команду:

AT+CCLK=«yy/mm/dd,hh:mm:ss+zz»

где по порядку идут « год/месяц/дата,час:минуты:секунды+часовой пояс » Данные обязательно отправляются с ведущими нулями, тоесть, к примеру, если месяц у нас "4", то отправить должны "04".

Получить обратно текущие время и дату можно отправив ту же команду, только со знаком "?":

AT+CCLK? - считываем время с модуля


ATE0 - режим эха
0 - выключен
1 - включен. Стоит по умолчанию.

ATV0 - формат ответа модуля.
1 - полный текстовый ответ с эхом (если включен). Стоит по умолчанию.
0 - возврат только кода ответа.
В первом случае всегда будет возвращаться OK, ERROR и прочее, а во втором будут возвращаться коды результата. Так вместо OK вернется 0, а вместо ERROR 4.

AT+CMEE=0 - уровень информации об ошибке. Может быть от 0 до 2.
0 - отключено. Будет просто писать ERROR.
1 - код ошибки. Будет возвращать цифровой код ошибки.
2 - описание ошибки. Напишет что именно ему не нравится в команде.
Для работы с модулем через терминал удобней режимы ATV1, ATE1 AT+CMEE=2, для общения с микроконтроллером лучше использовать ATV0, ATE0 и AT+CMEE=0 - так проще будет обрабатывать полученные ответы.

Данные настройки не сохраняются после перезагрузки модуля, поэтому необходимо включать эти команды в код программы.

Теперь глянем информацию о GSM сети. К примеру, можно узнать качество сигнала.

AT+CSQ - информация о качестве сигнала.
Модуль вернет два числа +CSQ: 17,0
17 - уровень сигнала. Может быть в диапазоне 0..31 или 99. Чем больше тем лучше, но 99 значит его отсутствие.
0 - коэффициент ошибок связи (т.н. RXQUAL). Может быть от 0 до 7, чем число меньше тем качество связи лучше.


AT+COPS? - информация об операторе, в сети которого зарегистрирован модуль.
Еще можно сделать запрос в виде AT+COPS=? После достаточно длительного поиска, модуль выдаст список найденных сетей.


Ну а теперь команды, позволяющие использовать сотовую связь по назначению.

ATD1234567890; - набор номера.

Модуль позвонит по указанному номеру и вернет один из вариантов

BUSY - номер занят
NO DIALTONE - нет сигнала на линии

NO CARRIER - нет сети или другая проблема (например, нет денег на счету)
NA ANSWER - нет ответа
CONNECT - есть контакт!

Если же номер сохранён, например, на SIM карте, и SIM карта выбрана в качестве телефонной книги (обычно, так оно и есть по умолчанию), то для его вызова существует команда ATD>1; . Числовое значение определяет номер ячейки карты, где хранится вызываемый номер.


AT+CLIP=1 - включение определения номера входящего звонка

Если отправить команду с 0, то определение номера отключится и модуль вместо номера вызывающего будет слать только сообщение "RING".

ATA - ответить на звонок.


ATH0 - разорвать все соединения. Может принимать значения 0..5, указывающие какие виды связи нужно разорвать.

ATS0=0 - этой командой можно установить сколько пройдет гудков до автоматического поднятия трубки. 0 - только вручную, стоит по умолчанию.

AT+GSMBUSY=1 - запрет всех входящих звонков.
1, - запретить все входящие звонки
0, - разрешить входящие
Результат данной команды не сохраняется в памяти и его надо повторять при каждом включении.

Запрос лучше отправлять на #100#, так как на *100# сообщение приходит в шестнадцатеричном формате:


AT+CMIC=0,15 – команда для установки чувствительности микрофона. Чувствительность определяется числовым значением, которое находится после символа =. В сигнализациях используется очень часто – для аудиоконтроля охраняемого помещения. Экспериментируя с этим значением, можно добиться слышимости малейших шорохов.

При приеме SMS модуль сообщит об этом, выдав в терминал сообщение «+CMTI: "SM",3» . Где 3 означает номер пришедшего сообщения.

Для прочтения СМС можно использовать команду AT+CMGR=3,0 (3-номер сообщения, которое хотим прочитать, 0-изменить статус сообщения на прочитанный)

В ответ модуль пришлет информацию о том от кого прошло сообщение и в какое время. «REC UNREAD» означает что у сообщения стоит статус непрочитанного.


AT+CMGDA=«DEL ALL» команда удалит все сообщения

Также можно удалить только определенный тип сообщений:

«DEL READ» - прочитанных
«DEL UNREAD» - не прочитанных
«DEL SENT» - отправленных
«DEL UNSENT» - не отправленных
«DEL INBOX» - полученных
«DEL ALL» - всех сообщений