Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Поднятие PPP на SIM300DZ.
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
west329_
Был у нас готовый софт на контроллере который поднимал РРР сесию на модеме телефоне. Решил попробовать подключить его к SIM300D. И как всегда с первого раза неполучилось. Решил написать так как зашол в тупик. Опишу весь процес с начала. Если ктото поднимал РРР на SIM300DZ пожалуйста подскажите что может быть не так ?

Сначала АТ инициализация

ПОСЫЛКА КОМАНД В МОДЕМ

Код
+++ATH
ATI
ATE0
AT+FCLASS=0
AT+CGDCONT=1,"IP","3g.utel.ua"
ATD*99***1#
~ÿ}#À!}$}!} }8}!}$}&@}%}&},<eÉ}"}&} } } } }'}"}(}"ØK~~ÿ}#À!}"}"} }(}#}$À#óa~~ÿ}#À!}!}"} }(}#}$À##ë~~ÿ}#À!}%} } }$Normal Termination by NCP!T}^}4¿~+

ОТВЕТЫ МОДЕМА НА КОМАНДЫ
Код
+ATH

OK
ATI

SIMCOM_Ltd
SIMCOM_SIM300D
Revision:1008B14SIM300D32_SST34HF3284

OK
ATE0
OK

OK

OK

CONNECT
~ÿ}#À!}!}!} }<}!}$}&@}#}$À#}%}&},<eÉ}"}&} } } } }'}"}(}"‚«~~~~ÿ}#À!}!}"} }(}#}$À##ë~~ÿ}#À!}%} } }=Normal Termination by NCP!T~
NO CARRIER


Я делаю вывод что АТ инициализация прошла успешно так как модуль выдал CONNECT и собственно перешол на стадию РРР, а если поточней то первый протокол LCP. Но канал GPRS так и не поднимается, и модем выдаёт последний пакет с текстом "Normal Termination by NCP", потому что софт контроллере просто незнает что делать.

Благо софт контроллера имеет отладочный режим и я получил следующие пакеты.
Код
RX > 7eff03 c021 01 03 001c 01040640 0304c023 05060c3c65c9 020600000000 0702 0802 120f 7e
TX < 7eff03 c021 04 03 0018 01040640 05060c3c65c9 020600000000 0702 0802 5b50 7E

тут ничего необычного, SIM300 предлагает настроить список параметров
по накатке контроллер отвергает все кроме 0304c023 собственно обычного PAP протокола

Код
RX > 7eff03 c021 01 04 0008 0304c023 eeb3 7e
TX < 7eff03 c021 02 04 0008 0304c023 3e39 7E

тут вроде тоже ничего необычного, SIM300 уже предлагает взять только 3й параметра
на что контроллере соглашается 02-ACK и отсылает ответ

Код
TX < 7eff03 c021 01 04 0008 0304c023 eeb3 7E

далее по правилам теперь мы должны запросить согласие на 3й параметр

Код
RX > 7eff03 c021 04 04 0008 0304c023 8f24 7e

но тут происходит то из за чего алгоритм контроллера входит в ступор,
SIM300 отвергает 3й параметр 04- REJect. Почему так происходит я до сих пор
так и не выяснил, весь алгоритм РРР контроллера строится на том чтоб получить этот параметр
а модем его отвергает хотя в первом запросе сам на него соглашается, абсурд какойто.

Подскажите в чем может быть проблемма ?

Продублирую алгоритм без коментариев
Код
RX > 7eff03 c021 01 03 001c 01040640 0304c023 05060c3c65c9 020600000000 0702 0802 120 f7e
TX < 7eff03 c021 04 03 0018 01040640 05060c3c65c9 020600000000 0702 0802 5b50 7E

RX > 7eff03 c021 01 04 0008 0304c023 eeb3 7e
TX < 7eff03 c021 02 04 0008 0304c023 3e39 7E

TX < 7eff03 c021 01 04 0008 0304c023eeb3 7E

RX > 7eff03 c021 04 04 0008 0304c023 8f24 7e
AlexandrY
Вот лог нормальной сессии установления PPP с SIM300
Код
00000055485072:005542.Starting LCP negotiation...
00000055485260:005542.   Sending LCP config request...
00000055485440:005542.   LCP_Send_Config_Req
00000055485663:005542.      LCP Local Req: ACCM(ffffffff)
00000055485824:OUT:  C0 21 01 2C 00 14 02 06 FF FF FF FF 05 06 00 00
00000055512693:IN:  C0 21 02 2C 00 14 02 06 FF FF FF FF 05 06 00 00
00000055512865:005544.LCP_Interpret
00000055513040:005544.   LCP_Check_Config_Ack
00000055513249:005544.   LCP state == REQ_SENT --> ACK_RCVD
00000058474312:IN:  C0 21 01 02 00 1C 01 04 06 40 03 04 C0 23 05 06
00000058474477:005841.LCP_Interpret
00000058474632:005841.   LCP_Check_Config_Req
00000058474795:005841.   LCP_Process_Request
00000058475021:005841.      LCP Peer Req: Max RX Unit(1600)
00000058475267:005841.      LCP Peer Req: Authentication (c023)
00000058475521:005841.      LCP Peer Req: Magic Number (0c3c65c9)
00000058475752:005841.      LCP Peer Req: ACCM(00000000)
00000058475999:005841.      LCP Peer Req: Enable Protocol compression
00000058476270:005841.      LCP Peer Req: Enable Address/Control compression
00000058476456:005841.      Send ACK.
00000058476584:OUT:  C0 21 02 02 00 1C 01 04 06 40 03 04 C0 23 05 06
00000058476924:005841.   LCP state == ACK_RCVD --> OPENED
00000058477311:005841.   LCP layer up.
00000058477483:005841.Starting PAP authentication...
00000058477662:005841.Send PAP authentication...
00000058477830:005841.PAP_Send_Authentication
00000058477985:OUT:  C0 23 01 89 00 0E 04 6F 6D 6E 69 04 6F 6D 6E 69
00000061474086:006141.Send PAP authentication...
00000061474254:006141.PAP_Send_Authentication
00000061474403:OUT:  C0 23 01 B9 00 0E 04 6F 6D 6E 69 04 6F 6D 6E 69
00000061503045:IN:  C0 23 02 B9 00 27 22 54 54 50 20 43 6F 6D 20 50
00000061503210:006143.PAP_Interpret
00000061503320:006143.ack
00000061503678:006143.   Authentication successful.
00000061504222:006144.Starting NCP negotiation...
00000061504411:006144.   Sending NCP config request...
00000061504585:006144.   NCP_Send_Config_Req
00000061504740:OUT:  80 21 01 C4 00 10 03 06 00 00 00 00 81 06 00 00
00000064504150:006444.   Sending NCP config request...
00000064504324:006444.   NCP_Send_Config_Req
00000064504480:OUT:  80 21 01 2D 00 10 03 06 00 00 00 00 81 06 00 00
00000066255743:IN:  80 21 03 2D 00 16 03 06 0A 78 1F EB 81 06 C2 B0
00000066255915:006619.NCP_Interpret
00000066256091:006619.   NCP_Check_Config_Nak
00000066256246:006619.   NCP_Process_Nak
00000066256401:006619.      IPCP IP Address
00000066256565:006619.      IPCP DNS Address
00000066256729:006619.      IPCP DNS Address
00000066256949:006619.   NCP state == REQ_SENT --> REQ_SENT
00000066257130:006619.   NCP_Send_Config_Req
00000066257285:OUT:  80 21 01 19 00 10 03 06 0A 78 1F EB 81 06 C2 B0
00000066259172:IN:  80 21 01 01 00 0A 03 06 0A 00 00 01
00000066259362:006619.NCP_Interpret
00000066259517:006619.   NCP_Check_Config_Req
00000066259680:006619.   NCP_Process_Request
00000066259876:006619.      IPCP Peer Req: IP Address
00000066260077:006619.    Server assigning its remote IP.
00000066260242:006619.      Send ACK.
00000066260364:OUT:  80 21 02 01 00 0A 03 06 0A 00 00 01
00000066260657:006619.   NCP state == REQ_SENT --> ACK_SENT
00000066283155:IN:  80 21 03 19 00 10 81 06 C2 B0 20 8E 83 06 C2 B0
00000066283321:006621.NCP_Interpret
00000066283497:006621.   NCP_Check_Config_Nak
00000066283652:006621.   NCP_Process_Nak
00000066283929:006622.      IPCP DNS Address
00000066284094:006622.      IPCP DNS Address
00000066284305:006622.   NCP state == ACK_SENT --> ACK_SENT
00000066284486:006622.   NCP_Send_Config_Req
00000066284641:OUT:  80 21 01 E4 00 10 03 06 0A 78 1F EB 81 06 C2 B0
00000066305508:IN:  80 21 03 E4 00 10 81 06 C2 B0 20 8E 83 06 C2 B0
00000066305674:006624.NCP_Interpret
00000066305853:006624.   NCP_Check_Config_Nak
00000066306011:006624.   NCP_Process_Nak
00000066306168:006624.      IPCP DNS Address
00000066306332:006624.      IPCP DNS Address
00000066306543:006624.   NCP state == ACK_SENT --> ACK_SENT
00000066306724:006624.   NCP_Send_Config_Req
00000066306886:OUT:  80 21 01 74 00 10 03 06 0A 78 1F EB 81 06 C2 B0
00000066328849:IN:  80 21 02 74 00 10 03 06 0A 78 1F EB 81 06 C2 B0
00000066329017:006626.NCP_Interpret
00000066329193:006626.   NCP_Check_Config_Ack
00000066329398:006626.   NCP state == ACK_SENT --> OPENED
00000066329756:006626.   IPCP layer up.
00000066335188:OUT:  00 21 45 00 00 41 00 01 40 00 40 11 2D 0A 0A 78
00000066362903:OUT:  00 21 45 00 00 4C 00 02 40 00 40 11 5B FE 0A 78
00000067156024:IN:  21 45 00 00 4C 2A FA 00 00 25 11 8C 06 C0 2B F4
00000067156863:OUT:  00 21 45 00 00 4C 00 03 40 00 40 11 5B FD 0A 78
00000067344323:OUT:  00 21 45 00 00 41 00 04 40 00 40 11 2D 07 0A 78
00000068058751:IN:  21 45 00 00 FB D8 BC 00 00 3A 11 99 94 C2 B0 20
00000068059884:OUT:  00 21 45 00 00 2C 00 05 40 00 40 06 DF 6C 0A 78
00000068153160:IN:  21 45 00 00 4C 31 76 00 00 25 11 85 8A C0 2B F4
00000068690521:IN:  21 45 20 00 2C 00 A5 00 00 74 06 EA AC 4E 3C E2
00000068690789:OUT:  00 21 45 00 00 28 00 06 40 00 40 06 DF 6F 0A 78
00000068691509:OUT:  00 21 45 00 00 2F 00 07 40 00 40 06 DF 67 0A 78
00000069552204:IN:  21 45 20 00 28 00 A6 40 00 74 06 AA AF 4E 3C E2
00000070684380:OUT:  00 21 45 00 00 33 00 08 40 00 40 06 DF 62 0A 78
00000071324031:OUT:  00 21 45 00 00 31 00 09 40 00 40 06 DF 63 0A 78
00000071448963:IN:  21 45 20 00 28 00 A8 40 00 74 06 AA AD 4E 3C E2
00000072031286:IN:  21 45 20 00 32 00 A9 40 00 74 06 AA A2 4E 3C E2
00000072224008:OUT:  00 21 45 00 00 28 00 0A 40 00 40 06 DF 6B 0A 78
west329_
Цитата
Вот лог нормальной сессии установления PPP с SIM300


Не моглиб вы полностью выложить лог если есть и в HEX формате так как тут часть с права пакетов обрезана.
west329_
Я так понимаю тут никто не передает данные в таком режиме, тоесть как я понял через РРР сесию, тогда не подскажите как можно передать масив данных размером 300-400кб который хранится в HEX через АТ команды, ну или ткните носом ?
av-master
если для простоты. то transparanted mode
http://microchip.ua/simcom/GSM-GPRS-GPS/Ap...0Note_V3.00.pdf - пункт 15... и по доп инфе тоже копать там.
http://microchip.ua/simcom/GSM-GPRS-GPS/AppNotes%20-%20doc/
проверено работает...
stream
Цитата(west329_ @ Oct 8 2009, 20:56) *
Я так понимаю тут никто не передает данные в таком режиме, тоесть как я понял через РРР сесию,

Передаем - PPP из lwip SIM300 вполне себе устраивает. Хотя у меня есть один PPP-client, тоже написанный строго по RFC (называется SFPPP), вот он с SIM300 тоже не работает, хотя всю остальную улицу SIM300 удовлетворяет. Так что в глюк верю.

Цитата
тогда не подскажите как можно передать масив данных размером 300-400кб который хранится в HEX через АТ команды, ну или ткните носом ?

Медленно и печально - AT+CIPSEND, по килобайту за команду.
andrewlekar
Цитата(stream @ Oct 11 2009, 17:47) *
Передаем - PPP из lwip SIM300 вполне себе устраивает.

Не могли бы описать вкратце алгоритм соединения lwIp и sim300? А то я в своё время интересовался такой штукой, то как и не выяснил полную картину. Конкретно хотелось применить для wismo218, у которого нет встроенного стека, но есть gprs.
stream
Цитата(andrewlekar @ Oct 16 2009, 08:57) *
Не могли бы описать вкратце алгоритм соединения lwIp и sim300? А то я в своё время интересовался такой штукой, то как и не выяснил полную картину. Конкретно хотелось применить для wismo218, у которого нет встроенного стека, но есть gprs.

Вопрос поставлен некорректно, от типа применяемого модуля ничего не зависит. Нужно прикрутить lwip к твоему процессору и операционке - или самому, или на основе готовых портов/примеров. Ну и научиться работать с самим lwip, с его разными API. Вот это и есть самая сложная задача, с которой надо разбираться. А для связи с модулем нужно всего лишь написать две функции sio_write(unused, buf, len) и sio_read(аналогично).
mariaoi
Хотела спросить, а программная реализация TCP-стека увеличит скорость upload'а?
Я использую аппаратный стек, так сейчас скорость низкая. Камк я понимаю программная реализация даст некуое увеличение, но насколько оно значительно, оправданно ли это?
Master of Nature
Цитата(mariaoi @ Oct 20 2009, 13:35) *
Хотела спросить, а программная реализация TCP-стека увеличит скорость upload'а?
Я использую аппаратный стек, так сейчас скорость низкая. Камк я понимаю программная реализация даст некое увеличение, но насколько оно значительно, оправданно ли это?

Скорость зависит от многих параметров, среди которых и качество связи, и степень загруженности соты и многое другое.
Так что оценить вклад в скорость с точки зрения реализации стека сложно.
Изменения скорости, ИМХО, будут зависить от степени кривизны реализации стека. К тому же все реализации, которые мне попадались - довольно требовательны к ресурсам контроллера, поэтому, прежде чем делать программную реализацию - оцените возможности.
stream
Цитата(mariaoi @ Oct 20 2009, 12:35) *
Хотела спросить, а программная реализация TCP-стека увеличит скорость upload'а?

При хорошем контроллере - да. Мы делаем для своих нужд GSM-модемы на основе SIM300, на них скорость upload'а из-под винды всегда максимально возможная для GPRS (видели 3-4 килобайта в секунду) -- значит, внутри SIM300 тормозов в этом режиме нет. Если выбрать правильные параметры для IP-стека (размер окна, таймауты), и если хватит скорости контроллера -- все будет отлично. Мы используем 72-MHz ARM, хватает не только для GPRS, но и по Ethernet железяка 400 килобайт в секунду отдает.

Думаю, что тормоза внутреннего стека SIM300 связаны с требованием ACK от получателя. Легко проверить пингом. 1-2 секунды легко. Вот и тормоза при ожидании прохождения пакет туда - ACK обратно. В программном стеке окно передатчика сгладит эту ситуацию.
mariaoi
К сожалению пока нужно забить на эту затею, у меня 48 Мгц всего и выход в интернет второстипенная задача...
На будущее никто не поделится ссылочкой свободно распространяющегося IP-стека? В первую очередь интересует реализация PPP-протокола, заранее спасибо.
dac
Цитата(mariaoi @ Oct 20 2009, 21:13) *
К сожалению пока нужно забить на эту затею, у меня 48 Мгц всего и выход в интернет второстипенная задача...
На будущее никто не поделится ссылочкой свободно распространяющегося IP-стека? В первую очередь интересует реализация PPP-протокола, заранее спасибо.

TCP/IP stack for pic18, pic24, dspic pic32 по ссылке 11МБ
mariaoi
Спасибо, буду разбираться. smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.