| |
Странный глюк SIM300D, SIM300D "глотает" данные |
|
|
|
|
Nov 14 2009, 03:17
|
Частый гость
 
Группа: Свой
Сообщений: 91
Регистрация: 26-01-06
Пользователь №: 13 668

|
Hi, All!
Столкнулся со странным глюком SIM300D. Использую GPRS для получения данных по HTTP. Алгоритм простейший - один GET, запрашивающий файл, и прием этого файла. На файлах, не превышающих несколько кб все хорошо, но когда получаю файл большего размера, то в принятом файле оказываются пропущенные куски по несколько сот байт на каждые несколько принятых килобайт. Пропуски в разных местах, но первый всегда примерно на одном и том же месте, после пятого принятого килобайта.
Чтобы исключить собственные ошибки, продублировал прием внешней терминальной программой - тоже самое, a принятом файле, в сравнении с исходным, есть пропуски. Почему так? Сеанс связи завершается нормально, никаких разрывов связи или ошибок нет.
Возникла версия, что размер буфера в TCP стеке SIM300 слишком мал, и он захлебывается принимаемым файлом. А выбирать данные быстрее я не могу, ибо данные - это прошивка, и во время приема она пишется в память программ (AVR). Поэтому прием данных в МК все время тормозится с помощью RTS, чтобы успевать записывать. Сомнительная версия, но другой у меня нет... Еще версия, что в принимаемых данных (они двоичные) встречается какая-то неудачная комбинация, от которой SIM300 дуреет. Но тогда ошибка была всегда точно в одном и том же месте, а она немного плавает.
В чем может быть дело, кто-нибудь сталкивался с подобным? Есть ли у SIM300D возможность посмотреть состояние TCP стека, или отрегулировать какие-нибудь параметры (размер буфера, и др)?
|
|
|
|
|
|
|
 |
Ответов
|
|
Nov 23 2009, 08:24
|

Гуру
     
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988

|
Объясняю.
Дома подключаю Samsung 900E (телефон жены), ставлю карточку Life, так как на ней активирован интернет. Для тех кто не знает, это "оператор для студентов" - весь приоритет на разговоры по дофига минут - остальные сервисы побоку. Славится он еще и рассыланием SMS в самый неподходящий момент и навязыванием мелодий и акций.... Вобщем если говорят Life, то лучше позвонить по городскому телефону. Ну так вот, подключился, тяну драйвера - связь то приостановится, то дальше пойдет.... Файл скачан - не хватает 40 килобайт на 15 мегабайтах. Вторая попытка - не хватает почти мегабайта. Третья попытка..... Связь оборвалась и 2 часа интернета не было. Скачал я только после полуночи когда активность поупала немного. Так что гарантированую прокачку файла вы можете получить только если купите у оператора служебный канал под данные - например как под банкоматы, где никто не влезет с приоритетами и не оборвет соединение. В противном случае - лотерея. Один из наших клиентов приобрел себе такой канал - у них несколько сотен точек по Украине с модемами на SIM300D - ни разу не было ни одной жалобы что потерялись данные.
КС - она же CRC - контрольная сумма - гонять файлы без нее ну скажем несколько рисковано....
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
|
|
|
Nov 24 2009, 10:24
|
Частый гость
 
Группа: Свой
Сообщений: 118
Регистрация: 11-03-07
Из: Украина, Харьков
Пользователь №: 26 059

|
Цитата(CADiLO @ Nov 23 2009, 10:24)  КС - она же CRC - контрольная сумма - гонять файлы без нее ну скажем несколько рисковано.... Насколько я знаю таких контрольных сумм в самом TCP\IP несколько - на каждом уровне протоколов. Повышает ли надежность передачи добавление еще и своей CRC? По-моему, нет, при условии, что стек протоколов на самом модеме реализован корректно.
|
|
|
|
|
|
|
|
Nov 24 2009, 10:55
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(korobov_michael @ Nov 24 2009, 12:24)  Насколько я знаю таких контрольных сумм в самом TCP\IP несколько - на каждом уровне протоколов. Повышает ли надежность передачи добавление еще и своей CRC? По-моему, нет, при условии, что стек протоколов на самом модеме реализован корректно. Ключевая фраза "при условии" А вы уверены, что стек в модеме не имеет ошибок? А вы уверены, что у ОпСоса при передаче пакетов ничего не может выкинуться (именно намеренно удалится, а не пропасть) при полной загруженности конкретной соты голосовыми данными? Я вот не уверен. Хотя допускаю, что те TCP сегменты, которые добираются до места назначения, не имеют ошибок. Но при передаче больших объемов данных происходит фрагментация. И, видимо, часть сегментов пропадает по пути из-за кривости какой-то части оборудования...
|
|
|
|
|
|
|
|
Nov 24 2009, 13:25
|
Частый гость
 
Группа: Свой
Сообщений: 118
Регистрация: 11-03-07
Из: Украина, Харьков
Пользователь №: 26 059

|
Цитата(Baser @ Nov 24 2009, 12:55)  допускаю, что те TCP сегменты, которые добираются до места назначения, не имеют ошибок. Но при передаче больших объемов данных происходит фрагментация. И, видимо, часть сегментов пропадает по пути из-за кривости какой-то части оборудования... Дело в том, что если не дошел хотя бы один фрагмент из пакета, то этот пакет будет невозможно собрать, и, по сути, весь пакет будет считаться недошедшим. Cмысл-то TCP как раз в этом - создать иллюзию передачи всего пакета, сколь угодно большого, а внутри себя нарезать его удобным образом. Вопрос к CADiLO - замечались ли частичные приходы пакета, без части сегментов? Спасибо.
|
|
|
|
|
|
|
|
Nov 26 2009, 13:15
|

Местный
  
Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781

|
Цитата(korobov_michael @ Nov 24 2009, 17:25)  Дело в том, что если не дошел хотя бы один фрагмент из пакета, то этот пакет будет невозможно собрать, и, по сути, весь пакет будет считаться недошедшим. Cмысл-то TCP как раз в этом - создать иллюзию передачи всего пакета, сколь угодно большого, а внутри себя нарезать его удобным образом. Вопрос к CADiLO - замечались ли частичные приходы пакета, без части сегментов?
Спасибо. Я, конечно, не уважаемый CADiLO, но замечу примерно следующее: потеря части пакетов - дело абсолютно нормальное. И бороться с этим посредством заклинания "Оборудование оператора сети должно передавать всё в целости и сохранности", думаю, вряд ли удастся. Посему советую сделать так: разбить прошивку (а речь ведь идёт именно о ней) на пакеты по 1 кБайт и передавать их один за другим. При этом, во-первых, можно полностью задействовать буфер SIM300, во-вторых, в случае порчи части посылки придётся пересылать не всю прошивку, а лишь её небольшую часть. Обязательно следует использовать квитирование (дошла посылка в целости - отвечаем о готовности принять следующий кусок, нет - запрос на повторную пересылку). Кстати, что касается самого процесса перепрошивки. Сильно сомневаюсь, что нужно заливать прошивку "на лету" по приёму из модема. Во-первых, тогда сам bootloader займёт очень много места (в него будет входить программный драйвер SIM300), а во-вторых, этот самый драйвер может содержать программные ошибки, и исправить его удалённо уже не удастся. Это, конечно, в том случае, если не перепрошивать и bootloader, что считается дурным тоном... Для хранения прошивки на плату удобнее всего ставить SRAM. Залитую прошивку можно проверить после сборки на целостность при помощи всё той же пресловутой CRC, да и управление памятью не в пример проще, стало быть, драйвер SRAM займёт немного места. Для экономии места на плате можно применить SRAM в BGA (AS6UA25616) или, к примеру, KM68V1000B в TSOP.
Сообщение отредактировал Slonofil - Nov 26 2009, 13:17
|
|
|
|
|
|
Сообщений в этой теме
sz36 Странный глюк SIM300D Nov 14 2009, 03:17 zebrox так а зачем сразу всю прошивку ему слать?
Думаю ну... Nov 14 2009, 10:33 av-master если например у вас отключено аппаратное управлени... Nov 14 2009, 14:17 sz36 Версия подтвердилась: попробовал пропускать дешифр... Nov 14 2009, 14:58 Baser Версию прошивки вашего модема огласите.
Может кита... Nov 14 2009, 16:47 sz36 Цитата(Baser @ Nov 14 2009, 19:47) Версию... Nov 14 2009, 22:22  Baser Цитата(sz36 @ Nov 15 2009, 00:22) Revisio... Nov 15 2009, 22:17   sz36 Цитата(Baser @ Nov 16 2009, 01:17) у вас ... Nov 20 2009, 01:07 av-master Цитатато модем тут не причем. +1 на этой жк прошив... Nov 15 2009, 23:42 CADiLO >>>> И выходной поток притормаживался?... Nov 20 2009, 07:25 sz36 Цитата(CADiLO @ Nov 20 2009, 10:25) Это в... Nov 20 2009, 20:01 av-master ЦитатаКС - подозреваю КиевСтар. (самый "рульн... Nov 21 2009, 01:02 Harbinger Цитата(av-master @ Nov 21 2009, 03:0... Nov 21 2009, 07:54 sz36 Цитата(Harbinger @ Nov 21 2009, 10:54) Вп... Nov 21 2009, 17:33 CADiLO >>>>Повышает ли надежность передачи до... Nov 24 2009, 12:31 Harbinger SRAM много "лап" контроллера займёт. AT4... Nov 26 2009, 17:30 korobov_michael Цитата(Harbinger @ Nov 26 2009, 19:30) SR... Nov 29 2009, 20:36
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|