Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как выжать максимальную скорость по GPRS
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
altlogic
Здравствуйте!
На схеме стоит wavecom Q2406 и Atmega128. Для обмена между ними используется RTS/CTS протокол, правда пока сделана только обработка CTS. Отправляю данные ~50кБ на удалённый сервер. Скорость нестабильная. Модем часто и подолгу выставяет CTS в единицу (глупо конечно, по колонкам слышно, что связь в этот момент не происходит:) Иногда же модем шлёт данные очень быстро, раз в 10 быстрее. Где-то в этом форуме видел, что надо дрыгать ногами толи RTS, толи DTR, чтоб модем "очухался".
Ещё по идее скорость зависит от количества выделенных таймслотов на передачу(приём), вопрос: это число мне можно изменить, или модем выбирает их сам?
Клим
Цитата(altlogic @ Jun 6 2008, 01:36) *
Ещё по идее скорость зависит от количества выделенных таймслотов на передачу(приём), вопрос: это число мне можно изменить, или модем выбирает их сам?

Модем к сожалению ничего не выбирает smile.gif.
Рекомендую подключить ту же симку на нормальном телефоне и проверить скорость через него. Не все опереаторы сотовой связи одинаково полезны.
Harbinger
Цитата(Клим @ Jun 6 2008, 07:23) *
Не все опереаторы сотовой связи одинаково полезны.

Некоторые откровенно лукавят. Существуют ещё приоритеты. В зависимости от них и от загруженности сетей результаты могут быть очень разные. Если Вы припейд-абонент, на какую-либо прогнозируемую скорость рассчитывать не приходится. Если к тому же заказали "оптовый" пакет трафика - есть солидный риск, что поставят на последнее место по приоритету и скорость кпадёт существенно (у нас такое на Лайфе, причём после возврата на оплату по полной стоимости скорость не восстановится!) С контрактными другая ситуация, иногда можно договориться и заказать за отдельные деньги гарантии минимального качества услуг - но это скорее юрлицу, с частниками обычно возиться на хотят.
И в любом случае приоритет за голосовой связью - если сеть загружена голосовыми вызовами, GPRS уйдёт в анабиоз.
AlexandrY
Думаю это с бОльшей вероятностью проблема модема либо вашей платформы.

В модеме может быть просто некачественный TCP стек.
И это самое вероятное поскольку embedded стеки от природы ущербные.

А платформа может быть виновата в том, что у вас нарушена целостность сигналов: запредельные овершутинги, недостаточная мощность стабилизатора, инерционность стабилизатора, отсутствие обводного защитного контура вокруг модема и много других мелочей.
Скажем сбой PLL у baseband-а может надолго увести его в аут.
Тут конечно надо дергать все что возможно, чтобы вывести модем из неопределенного состояния.
Тайм слоты регулировать в общем случае можно, в некоторых модемах можно менять класс например в Telit.
Причем допускаю, что понижение класса позволяет быстрее приатачится GPRS-у в перегруженных занах и даст более стабильную связь.


Цитата(altlogic @ Jun 6 2008, 02:06) *
Здравствуйте!
На схеме стоит wavecom Q2406 и Atmega128. Для обмена между ними используется RTS/CTS протокол, правда пока сделана только обработка CTS. Отправляю данные ~50кБ на удалённый сервер. Скорость нестабильная. Модем часто и подолгу выставяет CTS в единицу (глупо конечно, по колонкам слышно, что связь в этот момент не происходитsmile.gif Иногда же модем шлёт данные очень быстро, раз в 10 быстрее. Где-то в этом форуме видел, что надо дрыгать ногами толи RTS, толи DTR, чтоб модем "очухался".
Ещё по идее скорость зависит от количества выделенных таймслотов на передачу(приём), вопрос: это число мне можно изменить, или модем выбирает их сам?
Harbinger
Так проверить, TCP стек виноват или железо, просто - цепляем модем к ПК, создаём соединение через него с Интернет и смотрим...
chds
Цитата(AlexandrY @ Jun 6 2008, 09:40) *
В модеме может быть просто некачественный TCP стек.
И это самое вероятное поскольку embedded стеки от природы ущербные.

А есть где нибудь подтверждение этого? Или ущербность заключается в ограничении открываемых сокетов.

Судя из описания:
В зависимости от качества радиосигнала, данные, пересылаемые по радиоэфиру, кодируются по одной из 4-х кодовых схем (CS1—CS4). Каждая кодовая схема характеризуется избыточностью кодирования и помехоустойчивостью, и выбирается автоматически в зависимости от качества радиосигнала.
* CS1 — максимальная скорость 9,05 кбит/с
* CS2 — максимальная скорость 13,4 кбит/с
* CS3 — максимальная скорость 15,6 кбит/с
* CS4 — максимальная скорость 21,4 кбит/с
Если сигнал плохой - то CS1.
altlogic
Что-то рабочих ссылок на официальные данные не нашёл. В интернете есть информация о том, что большинство российских операторов поддерживают только CS2 и CS1.
edo
экспериментально проверял, что у нас в пензе мегафон со смартсом выдают скорость, возможную только при использовании CS4.
etoja
Число используемых тайм-слотов динамически меняется во времени и зависит от числа голосовых разговоров в вашей соте. Модем также может передаваться от одной базовой станции к другой без вашего желания. Скорость GPRS обмена сильно зависит от длины TCP пакета.
altlogic
Проблема в следующем: по колонкам около модема я слышу, что он не общается с сетью, в это время соответственно у него выставлен CTS. Грешу на некачественную плату, хотя питание составляет 4.2В, что по даташиту - нормально, непосредственно около модуля 4 танаталовых конденсатора(4х100мкФ) по питанию. И ещё я думаю при некачественном питании модем должен перезагружаться. Такого не было ни разу. Есть в плате один конкретный косяк - к модулю нет возможности подвести сигнал RTS от микроконтроллера, или хотя бы закоротить его на ноль. Может модуль из-за этого не хочет "быть готовым" к обмену?.. По даташиту сказано, что если он не обнаруживает этот сигнал, то просто его не обрабатывает. Как оно на деле - не знаю.
edo
Цитата(etoja @ Jun 7 2008, 08:25) *
Скорость GPRS обмена сильно зависит от длины TCP пакета.
хм. а с этого места можно поподробнее?
etoja
Чем меньше длина TCP буфера, тем на большее число пакетов придётся разбить передаваемый файл.
Передача каждого пакета происходит так: передатчик отправляет пакет и ждёт подтверждение от приёмника в течении 0.45 секунды. Если подтверждения нет, то передатчик повторно посылает пакет - и так несколько раз.
edo
etoja
вы пишете про gprs-специфичные вещи или про принцип работы tcp/ip?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.