Перейти к содержанию
    

Как добиться макс. пропускной способности по GPRS

Добрый день. Последние пару дней пытаюсь выжать из SIM800C максимальную скорость передачи по GPRS через встроенный TCP/IP-стек (upload, то есть, в направлении устройство->модуль->GPRS->Internet->ПК).

 

Максимум, что у меня получилось - это передача 1 Мб данных за 6 минут, что соответствует 22 Кб/сек (результат от времени суток не зависит).

При том, что в даташите написана максимальная скорость для GPRS 85.6 Кб/сек - есть куда стремиться.

 

Условия: стабильно хорошая связь, +CSQ: 25,0, скорость UART 115.2 Кб/сек, Revision:1418B02SIM800C24

 

Алгоритм следующий:

1) открываю TCP соединение

AT+CIICR

AT+CIPSTART=...

 

2) отправляю данные

AT+CIPSEND=900..1400

> <данные>

 

3) проверяю заполненность буфера модема

AT+CIPACK

Команда возвращает 3 значения:

-размер отправленных данных

-размер успешно принятых удаленным узлом данных

-размер данных, ожидающих отправки

 

Если размер ожидающих данных меньше 4кБ, перехожу к шагу 2

В противном случае, жду некоторое время (100 мсек) и повторяю шаг 3

 

Если размер ожидающих данных становится больше ~5кБ, то модуль сам разрывает соединение.

 

Если включить EDGE (AT+CEGPRS=1,12), то ситуация качественно не меняется. Возможно, скорость увеличивается процентов на 10, но и то не факт, т.к. может быть просто погрешность измерения такая. К тому же, в модуле ни слова про EDGE.

 

Подозреваю, что "узкое горлышко" - это реализация TCP/IP стека в модуле.

Меня интересует, кто как решал задачу реализации передачи данных через GPRS в модулях SIMCOM с максимальность скоростью, и какие результаты, при этом, были получены.

Получиться ли добиться большей скорости, если использовать другие способы передачи данных, например в прозрачном режиме (transparent mode, AT+CIPMODE=1)?

 

PS Кстати, при получении TCP пакетов я вижу такую картину. Как-то странно данные на пакеты разбиваются. С учетом того, что я разом (одной командой AT+CIPSEND) отправляю не менее 900 байт.

post-32732-1472634696_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>> Максимум, что у меня получилось - это передача 1 Мб данных за 6 минут, что соответствует 22 Кб/сек (результат от времени суток не зависит).

>>> При том, что в даташите написана максимальная скорость для GPRS 85.6 Кб/сек - есть куда стремиться.

 

Перед тем как стремиться убедитесь что этого же хочет оператор :)

 

GPRS класс 12 - в этом режиме практически никто не работает из операторов

 

DL: максим. 85.6 кбит/с

UL: максим. 86.6 кбит/с

 

GPRS класс 10 - тут уже получше, в этом режиме большиство работает, но не забывайте что DL - это ваш прием, а не передача

 

DL: максим. 85.6 кбит/с

UL: максим. 42.8 кбит/с

 

GPRS класс 8 - а вот в этом режиме будут работать соты или с устаревшим оборудованием или при загруженной сети - и мне кажется это ваш случай.

 

DL: максим. 85.6 кбит/с

UL: максим. 21.4 кбит/с

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А каким образом узнать чего хочет оператор?

Как-то можно узнать какой сейчас используется класс и сколько таймслотов выделяется? Допустим, через catcher это как-то можно сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. на SIM800C нет EDGE

EDGE_Rx (это только на прием 256, на выкладывание - те же 85) есть только на модулях использующих чипсет МТ6260

2. попробовать действовать на свежей прошивке, запросив ее у своего дистрибьютора

3. да, прозрачный режим должен поднять скорость.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В очередной раз скачал файл из устройства размером 1 Мб - скачалось за 310 секунд, что соответствует скорости 27 кбит/сек. Получается, все-таки класс 10 (2 таймслота UP).

Выставил 8й класс с помощью AT+CGMSCLASS=8 (потребовалась перезагрузка, чтобы что-то изменилось). Скорость упала более, чем в 2 раза.

 

В общем, в идеальных условиях, в идеальном мире должно быть около 40 кбит/с, раз соты не поддерживают 12й класс GPRS.

Скорее всего, у меня получается 27 кбит/с из-за того, что:

1) Packet overhead

2) Не все 100% времени доступны оба таймслота

 

А что, 12й класс GPRS - это такой моветон среди операторов? Так-то существует 34 класса... С 12 по 34й тоже никто не использует?

 

Короче, если считать, что 40 кбит - это теоретический предел, то 27 кбит меня устраивает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>>А что, 12й класс GPRS - это такой моветон среди операторов?

 

У операторов приоритет - разговоры. Поэтому под GPRS отдают минимум из возможного.

А если в пиковые моменты не будет хватать слотов под разговор, то GPRS оборвут без предупреждения и отдадут слоты под Voice.

 

Ну и в глубинках есть еще соты котрые о 10-ке не знают, не то что о CLASS 12 :)

Пробегало в какой-то теме что стабильно железки только на CLASS 8 работали, а на 10-ке постоянно рвался коннект.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У операторов приоритет - разговоры. Поэтому под GPRS отдают минимум из возможного.

Ну если есть 4 слота свободных, почему бы не дать 4, а не 2? "Че им, жалко штоле?"

 

С учетом оверхеда у меня, кстати, получилось 34 кбит (26% оверхеда, их которых 20% - прикладной уровень). А 34 из 40 - не так уж и плохо...

 

Пойду 3G мучить лучше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошо, а как в прозрачном режиме не переполнить буфер модема?

Подозреваю, что если я начну загонять в модем данных больше, чем он может передать по GPRS, то он просто разорвет соединение?

 

В непрозрачном режиме я проверял заполненность буфера командой CIPACK, а тут как надо поступить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошо, а как в прозрачном режиме не переполнить буфер модема?

Использовать RTS/CTS. Если это невозможно (плату уже не переделать), то использовать мультиплексор (CMUX) и кадр запроса данных о состоянии линий: вроде программного RTS/CTS получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тоже вариант, но если у контроллера есть пару свободных IO, то лучше физически обработать.

Пару проводов бросить поверху.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему GPSS?

Он вроде как лет 15 как сдох.

Уже 5G на подходе

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему GPSS?

Он вроде как лет 15 как сдох.

Уже 5G на подходе

предлагаю не обсуждать в этом топике тему перспектив 2G. лучше перенести в отдельный топик.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...