|
sim300d глючит инет - алгоритм подключения, разработал трекер - ловлю глюки |
|
|
|
Nov 1 2010, 18:30
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 28-10-09
Пользователь №: 53 255

|
Добрий день.
Была у меня задача - разработать банальный GPS трекер. Разработал на основе SIM300D+itrax300
В общем проблема в том что на столе пока все лежит устойчиво работает хоть неделю, а как на машины поставили, так где-то раз в день пропадает связь с трекером на время от 20 минут до пары часов. Это в городе. Как машина едет за город так связь может пропасть на пол дня, иногда вообще до перегрузки трекера. Я думаю это как-то связано с пропаданием сети. Естественно посмотреть терминалом лог связи МК-СИМ300 во время таких глюков не могу.
Скорее всего у меня не правильный алгоритм GPRS соединения, так как найти пример не в даташите ни на форумах не смог. Может кто поделится алгоритмом, или подскажет как правильно держать GPRS подключение всегда открытым. То есть при включении питания/пропадании сети пытатся соединятся с интернетом... короче что б при любых условия было соединение с интернетом.
Заранее спасибо.
ЗЫ: у меня все реализовано относительно команды ipstatus, но вот как правильно реагировать на все значения я не нашел. если ответ: INITIAL или GPRSACT или IP START или IP CONFIG то коннектимся: at+creg? at+cgreg? at+cgatt=1 at+cipcsgp=1 бла бла at+cstt at+ciicr Ок at+cifsr
(Вопрос: обязательно ли учитывать ответы на каждую команду(у меня учитывается только ответ ОК на at+ciicr) или можно при неудаче соединения пытаться снова???)
Если IP STATUS или IP CLOSE конектимся к серверу: at+cipstart=ТСП, адрес, порт ждем CONNECT OK at+cipsend=164 / Данные/ at+cipclose
если при опросе ipstatusсом ответ CONNECTING или CONNECT OK (не закрывается долго соединение) или IP START или IP CONFIG повторяется большое количство раз подряд - тогда резет.
если ответ PDP DEACT или IP IND - резет сразу
Знаю что алгоритм говняный и никуда не годится, но я окончательно запутался в этой массе команд и ответов и слепил все как-нить но что б хоть как-то работало.
Вот и прошу Вашей помощи...
|
|
|
|
|
Nov 1 2010, 19:31
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 28-10-09
Пользователь №: 53 255

|
Вот и прошу готовый алгоритм мож. у кого-то есть? или совет конкретный, или указание на ошибку. А по поводу того что модуль устарей - меня мало волнует т.к. уже закуплено/собрано 12 штук трекеров для собственных нужд. А глюк вылез только один этот с пропаданием связи... есть вариант ездить с дальнобойщиком с ноутбуком и терминалом и ждать пока вылезет ошибка, но это уже крайняя мера. Кроме того я не верю что на этом форуме никто не разрабатывал устройства с таким модулем где требовался постоянный коннект с интернетом (удаленное управление, сигнализации, тот же трекер например)
|
|
|
|
|
Nov 1 2010, 21:24
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 28-10-09
Пользователь №: 53 255

|
Спасибо. буду пробывать. Да перезапуск то такое, даже если делать 4 перезапуска в день симки на 44 года хватит, а чаще врятли нужно будет. с питанием все нормально, проблем нет, питается через DC/DC преобразователь 24/12 дальше лин. регулятор. да и не в питании дело. Схема в основном из даташита. Я думаю может проблема в том что ответы на at+creg? и at+cgreg? не учитываются? думал, если регистрации нету, то после попытки соединения будет ошибка, дальше попытка повторного соединения и так пока регистрацию не схватит... может тут проблема?
|
|
|
|
|
Nov 2 2010, 08:12
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 14-10-10
Пользователь №: 60 149

|
Цитата(mr_freeman @ Nov 2 2010, 01:24)  Я думаю может проблема в том что ответы на at+creg? и at+cgreg? не учитываются? думал, если регистрации нету, то после попытки соединения будет ошибка, дальше попытка повторного соединения и так пока регистрацию не схватит... может тут проблема? Обращаю ваше внимание на то, что наличие обеих регистраций условие для соединения необходимое, но, к сожалению, не достаточное  При плохой связи модуль может устойчиво находиться в состоянии, когда подтверждает регистрации, но не в состоянии установить и поддерживать соединение. Единственный выход в этом случае - выполнить рестарт. Возможно при повторном согласовании условий приема/передачи будут выбраны другие параметры, более подходящие для текущей обстановки.
|
|
|
|
|
Nov 2 2010, 08:26
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 28-10-09
Пользователь №: 53 255

|
Вопрос в другом. Не приводет ли попытка соединения без регистрации к зависанию/переходу в какой-то неучтенный режим? И, как себя ведет GPRS соединение при пропадании сети? отключается?
|
|
|
|
|
Nov 2 2010, 08:42
|
Мыслящий
    
Группа: Свой
Сообщений: 1 729
Регистрация: 20-07-07
Из: Самара
Пользователь №: 29 270

|
Цитата(mr_freeman @ Nov 2 2010, 12:26)  Вопрос в другом. Не приводет ли попытка соединения без регистрации к зависанию/переходу в какой-то неучтенный режим? И, как себя ведет GPRS соединение при пропадании сети? отключается? Попробуйте все же логить процесс обмена с модемом, а потом проанализировать Я бы для анализа добавил сюда AT+CSQ - уровень сигнала GSM, с учетом что значение актуально только если есть регистрация. И еще не совсем понял зачем нужна команда AT+CGATT, если вы пользуетесь встроенным стеком. Предварительно подозрение такое - у вас проблемы с антенной. Когда в лаборатории все делаете - станция не меняется. А вот когда машина едет - уровень сигнала может быть хуже. Из-за каких-то глюков (не видя схемы и платы не угадаешь) модем банально теряет сеть. Дополнительно - проблем с питанием нету? Цитата(mr_freeman @ Nov 2 2010, 12:26)  Вопрос в другом. Не приводет ли попытка соединения без регистрации к зависанию/переходу в какой-то неучтенный режим? И, как себя ведет GPRS соединение при пропадании сети? отключается? При пропадании сети GPRS естественно разрывается.
--------------------
FAQ по ADФорум по ADЗнание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью. ...стоит запомнить ...вернее задуматься.
|
|
|
|
|
Nov 2 2010, 09:13
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 14-10-10
Пользователь №: 60 149

|
Цитата(mr_freeman @ Nov 2 2010, 12:26)  Вопрос в другом. Не приводет ли попытка соединения без регистрации к зависанию/переходу в какой-то неучтенный режим? Нет скорее всего не приведет, т.к. ситуация для ПО модуля очень простая. Цитата(mr_freeman @ Nov 2 2010, 12:26)  И, как себя ведет GPRS соединение при пропадании сети? отключается? А вот здесь многообразие вариантов неисчислимо. Вам уже намекали, что здравым будет алгоритм - "при малейшем отклонении - все по-новой" Я бы еще добавил, что поскольку у вас ситуация ограниченная (всего несколько десятков эксплуатируемых устройств), то стоит начать с проверки антенного хозяйства. Антенны должны быть в вашем случае обязательно двухдиапазонными, правильно смонтированными и с минимальной длиной кабеля. Все проблемы и нетестированное многообразие поведения модуля начинается при ухудшении условий связи. Обычно сразу начинают лечить алгоритм, а на антенное хозяйство не обращают внимание, а зря.
|
|
|
|
|
Nov 2 2010, 09:21
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Master of Nature @ Nov 2 2010, 11:42)  И еще не совсем понял зачем нужна команда AT+CGATT, если вы пользуетесь встроенным стеком. У меня на SIM900 встроенный стек не оживает (на AT+CIPSTART немедленно "ERROR"), если не дать AT+CGATT=1. Причем почему-то иногда, когда модуль находится просто в режиме ожидания, регистрация GPRS отваливается (а может часами держаться, как звезды встанут), пришлось +CGATT=1 влепить непосредственно перед +CIPSTART, чтобы обойти такую ситуацию.
|
|
|
|
|
Nov 2 2010, 09:36
|
Мыслящий
    
Группа: Свой
Сообщений: 1 729
Регистрация: 20-07-07
Из: Самара
Пользователь №: 29 270

|
Цитата(rx3apf @ Nov 2 2010, 13:21)  У меня на SIM900 встроенный стек не оживает (на AT+CIPSTART немедленно "ERROR"), если не дать AT+CGATT=1. Причем почему-то иногда, когда модуль находится просто в режиме ожидания, регистрация GPRS отваливается (а может часами держаться, как звезды встанут), пришлось +CGATT=1 влепить непосредственно перед +CIPSTART, чтобы обойти такую ситуацию. Встроенный стек у СИМ900 исследовать пока не было возможности. А вот в СИМ300 использовал команду AT+CIPCSGP=1,"<apn>" - где <apn> - точка доступа, определяемая оператором сотовой связи. Без этого CIPSTART тоже что-то не работал
--------------------
FAQ по ADФорум по ADЗнание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью. ...стоит запомнить ...вернее задуматься.
|
|
|
|
|
Nov 2 2010, 09:39
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 14-10-10
Пользователь №: 60 149

|
Цитата(rx3apf @ Nov 2 2010, 13:21)  У меня на SIM900 встроенный стек не оживает (на AT+CIPSTART немедленно "ERROR"), если не дать AT+CGATT=1. +1. Внешнее исполнение CGATT гораздо надежнее и на SIM300, чем внутри его стека. Цитата(rx3apf @ Nov 2 2010, 13:21)  Причем почему-то иногда, когда модуль находится просто в режиме ожидания, регистрация GPRS отваливается (а может часами держаться, как звезды встанут), Звездами управляет оператор, причем все операторы по-разному. Например Мегафон Северо-Запад в худшем случае будет терпеть неиспользуемую регистрацию GPRS часа четыре не больше.
Сообщение отредактировал box415 - Nov 2 2010, 09:44
|
|
|
|
|
Nov 2 2010, 11:48
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Master of Nature @ Nov 2 2010, 12:36)  Встроенный стек у СИМ900 исследовать пока не было возможности. А вот в СИМ300 использовал команду AT+CIPCSGP=1,"<apn>" - где <apn> - точка доступа, определяемая оператором сотовой связи. Без этого CIPSTART тоже что-то не работал  Я это тоже даю, но при этом если потом поглядеть +cgatt?, может быть 1, а может и 0. И, даже если 1, то когда дело дойдет до соединения, окажется 0, и +cipstart даст ошибку. Так что ручками, ручками...Все на одном операторе, MTC, но может часами держаться, а может через десять минут отвалиться.
|
|
|
|
|
Nov 2 2010, 16:11
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 28-10-09
Пользователь №: 53 255

|
Антенны вот эти: http://www.rcscomponents.kiev.ua/a32593.htmlна плате все просто дорожки 1.5см до SMA разъема, с обратки экран. Питание тоже, как писал, стабильное. Если бы была возможность вести логи, сам бы проблему решил)))
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|