Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Simcom900D - потеря PDP контекста GPRS
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
SMRM
Здравствуйте, Уважаемые коллеги!
Есть проблемы при работе с SIM900D с использованием TCP стека. Версия зашивки Revision:1137B06SIM900D64_ST
Во-первых, в процессе работы создалось представление, что при старте модема, он автоматически выполняет команду at+cgatt=1.
Делаю такой вывод, на основании моего запроса после включения питания модема
at+cgatt?
+CGATT: 1
Далее работаю через стек.
at+cstt="apn","user","passw"
OK
at+ciicr
OK
at+cifsr
10.11.222.4
at+cipserver=1,"2020"
OK
SERVER OK
at+cipstatus
OK
STATE: SERVER LISTENING
Далее могу соединиться с ним по TCP и обменться данными, закрыть TCP соединение.
И так многократно.
Но через какое-то время соединиться с модемом по GPRS становиться невовозможно, хотя дозвониться по GSM нет проблем.
Проверяю через at+cgatt или at+cgreg - модем в GPRS есть.
При этом мы еще контроллируем состояние стека - на состояние PDP DEACT, тоже все в порядке.
Рестарт(описанный выше) по новой помогает.
Обратились к оператору, он включил трассировку и выяснили, что в тот момент когда начинаютcя проблемы с соединением по GPRS
модем выдал по каким-то причинам в сеть at+cgatt=1. Для оператора это означает, что он по новой нас регистрирует в сети, и естественно для дальнейшей работы,нужно активировать по новой PDP контекст.
При этом из модема нельзя увидеть что он имеет какие-то проблемы, статус стека в норме и
at+cgatt?
+CGATT: 1.
Таким образом, модем остается в сети GPRS, но без PDP контекста и TCP соединение с ним получить невозможно.
Делал эксперимент-отрывал антенну от модема в рабочем состоянии. В этом случае через какое-то время модем обнаруживал потерю сети и
выдавал об этом сообщение(PDP DEACT) и менял статус стека.
Из выше изложенного предполагаю, что иногда модем по каким-то причинам рестартует(возможно какой-то сбой) и как писал выше при этом делается автоматически at+cgatt=1,но стек при этом остается в неверном состоянии и никаких сообщений нет.
Если можно было бы отключать автоматический at+cgatt=1(как это делается в wavecom), то эту ситуацию можно было разрулить
через at+cgatt?
Может кто-то подскажет что-нибудь по этому поводу. Заранее благодарю, за внимание к моим проблемам.
mempfis_
Цитата(SMRM @ Mar 16 2011, 13:59) *
Если можно было бы отключать автоматический at+cgatt=1(как это делается в wavecom), то эту ситуацию можно было разрулить
через at+cgatt?
Может кто-то подскажет что-нибудь по этому поводу. Заранее благодарю, за внимание к моим проблемам.


AT#AUTOATT=0 Ваш модем не поддерживает?
SMRM
К сожалению эта команда в SIM900 не поддерживается
AlexandrY
C SMS-ами нет в это время операций?
Или может трогали AT+CGSMS?
SMRM
Нет с SMS вообще используем, только GPRS и CSD
Velund
А что в "отваленном" состоянии отвечает AT+CGREG?
AlexandrY
Цитата(SMRM @ Mar 16 2011, 15:54) *
Нет с SMS вообще используем, только GPRS и CSD


Такую логическую неувязку я имел у себя.
Во время голосового звонка я давал PPP стеку команду отключиться, поскольку неизвестно сколько длится будет голосовое соединение и чтобы верхние уровни TCP стека не подвисли лучше им сразу поотрубать сокеты иначе они надолго подвесят задачи в ожидании своих таймаутов (почти 3 мин ожидание ретрансмита в TCP может длиться).

Когда голосовой вызов заканчивался, я проверял активность GPRS и давал команду отключить активный GPRS чтобы рестартовать PPP заново.
Но команда отключения GPRS уже не проходила, вываливало ERROR.

Как решение я перестал отключать PPP стек на время голосовых звонков.
Но у меня PPP был внешний, возможно у вас аналогичная проблема с внутренней логикой конектов.
SMRM
на AT+CGREG? отвечает что в модем в сети.

Всем спасибо за помощь. Решение нашлось.
Похоже по каким-то причинам SIM900 сбивается, делает автоматически at+cgatt=1 и соответственно в сети утерян PDP контекст.
При этом командами AT+CGATT? и AT+CGREG? ничего не увидишь, так как модем автоматически заатачился в сети.
Но при этом я у видел, что статус стека(команда AT+CIPSTAUS) скинулся в состояние IP INITIAL. Только по этому признаку можно определить,
что модем упал и нужно делать активацию PDP контекста заново.
AlexandrY
Цитата(SMRM @ Mar 16 2011, 18:29) *
Только по этому признаку можно определить,
что модем упал и нужно делать активацию PDP контекста заново.


Хм, бывало неоднократно подключался PDP контекст, но выхода в интернет не было.
Так теперь всегда делаю запрос к корневым DNS серверам интернета чтобы проверить правильность соединения.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.