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

SIM5300EA медленная работа CIPSEND

Доброго времени суток.

Проблема в скорости передачи данных SIM5300EA. Модем подключен к МК по UART на скорости 460kBaud. Все общение идет по средствам AT команд. На компьютере развернут сервер с белым ip. Все подключается, все работает, общаюсь датаграммами. Сама проблема в том, что датаграммы летят в среднем 250мс до компьютера, как правило дольше, с компьютера же на летят в среднем 10 мс, если я правильно намерял. В итоге по udp скорость передачи информации составляет около 3 kByte/s, при подтверждении каждого пакета. Так же я заметил, что после AT+CIPSEND=0,5 и дожидания ответа в виде ">" необходимо выждать в среднем 50мс, иначе модем проигнорирует пакет. Если же выключить запрос данных AT+CIPSPRT=0, то можно посылать даные уже через 5 мс, однако DATA ACCEPT приходит примерно через 150мс после того как последний байт данных ушел, на PC же данные появляются примерно через 100-150 мс после DATA ACCEPT. AT+CSACT? возвращает CSACT: 6,"12",0,0. Версия прошивки 1551B03SIM5300E, пробовал пятую, все то же самое, сам модуль был с четвертой, пока я не стал разбираться со скоростью, в надежде что перепрошивка поможет. Меня интересует, так ли должно быть, ведь модуль все такие 3g, может я делаю где-то ошибку, или возможно надо использовать ppp вместо внутреннего стека.

 

 

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


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

Доброго времени суток.

Проблема в скорости передачи данных SIM5300EA. Модем подключен к МК по UART на скорости 460kBaud. Все общение идет по средствам AT команд. На компьютере развернут сервер с белым ip. Все подключается, все работает, общаюсь датаграммами. Сама проблема в том, что датаграммы летят в среднем 250мс до компьютера, как правило дольше, с компьютера же на летят в среднем 10 мс, если я правильно намерял. В итоге по udp скорость передачи информации составляет около 3 kByte/s, при подтверждении каждого пакета. Так же я заметил, что после AT+CIPSEND=0,5 и дожидания ответа в виде ">" необходимо выждать в среднем 50мс, иначе модем проигнорирует пакет. Если же выключить запрос данных AT+CIPSPRT=0, то можно посылать даные уже через 5 мс, однако DATA ACCEPT приходит примерно через 150мс после того как последний байт данных ушел, на PC же данные появляются примерно через 100-150 мс после DATA ACCEPT. AT+CSACT? возвращает CSACT: 6,"12",0,0. Версия прошивки 1551B03SIM5300E, пробовал пятую, все то же самое, сам модуль был с четвертой, пока я не стал разбираться со скоростью, в надежде что перепрошивка поможет. Меня интересует, так ли должно быть, ведь модуль все такие 3g, может я делаю где-то ошибку, или возможно надо использовать ppp вместо внутреннего стека.

 

Попробуйте прозрачный режим встроенного стека (AT+CIPMODE=1). Там все будет попроще, только придется предусмотреть обработку входящих вызовов и СМС по ножке RI.

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


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

Проблема в скорости передачи данных SIM5300EA.

...

Меня интересует, так ли должно быть, ведь модуль все такие 3g, может я делаю где-то ошибку, или возможно надо использовать ppp вместо внутреннего стека.

Я не думаю, что у вас модем работает не так как у всех. Судя по всему дело во внутреннем TCP/IP стеке модема и тормознутых АТ командах. Так что, если нужно быстрее, только внешний стек :(

 

Я тоже тестировал SIM5300E с прошивкой B05 в режиме TCP соединения с сервером, и получил примерно такие же цифры.

Диапазон UMTS_I_MODE (UMTS2100 (B1)), CSACT: 6 - CAT_ACT_UTRAN_HSDPA_AND_HSUPA

При такой технологии как-бы обещаны мегабиты скорости...

 

Данные небольшими пакетами по 100 байт посылались на сервер и ожидался ответ/подтверждение приема. Посылалось 50 пакетов, потом пауза несколько минут. Из-за особенностей нашей реализации достаточно большие паузы были на моей стороне, но времена обмена с сервером можно оценить. Логировалось все терминальной программой на ПК, так что точности порядка +/-10мс, если не хуже.

 

Четко видно, как периодически меняются задержки передачи ровно в два раза. То все 50 пакетов уходят за 15 с, то за 30,

иногда часть быстро, часть медленнее. Видимо сеть меняет число слотов от текущей загрузки. Или это причуды модема?

 

Сначала тестировал AT+CIPQSEND=0, обычный режим передачи с подтверждениями.

Средняя задержка между передачей данных по УАРТу в модем и ответом SEND OK около 120 мс (или 200-300 мс при большей задержке). Причем ответ сервера приходит ОДНОВРЕМЕННО с SEND OK (сразу после).

 

У меня были надежды на Quick send mode - AT+CIPQSEND=1, что можно будет посылать данные без подтверждения во время паузы, между DATA ACCEPT и ответом сервера, но увы. Китайские товарищи постарались, и внешне нет никаких отличий в работе этого режима, кроме текста DATA ACCEPT.

После передачи данных по УАРТу в модем проходит ТА ЖЕ САМАЯ задержка около 120 мс (или 200-300 мс),

после чего одновременно вываливаются DATA ACCEPT и ответ сервера.

Времена передачи пачки пакетов не изменились ни на секунду :(

И зачем тогда этот режим нужен???

 

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


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

Попробуйте прозрачный режим встроенного стека (AT+CIPMODE=1).

Попробовал, без изменений.

 

После передачи данных по УАРТу в модем проходит ТА ЖЕ САМАЯ задержка около 120 мс (или 200-300 мс),

после чего одновременно вываливаются DATA ACCEPT и ответ сервера.

 

Аналогично, это мой первый модем и наткнуться на такую несправедливость. Может кто-то тестировал другие модели симкомовских модемов, которые могут обеспечить приемлемую скорость внутреннего стека? Или может где-то в недрах гугла заныкана инструкция по поднятию ppp безболезнено и не за месяцы упорного труда? Так получилось что я очень привязался к UIP на своей stm32 и курить lwip будет очень и очень больно. В общем проблема в скорости, хочется около 50-100 килобайт и модем аналогичный симкомовскому, очень желательно с внутренним стеком. Вижу следующие пути решения:

1) Опробовать другие модельки симковоского производства 5xхх и 7ххх

2) Убить UIP и долго и упорно курить LWIP и PPPOS

Поправте, если ошибаюсь...

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


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

Модуль на выполнение соединений тестировал по SIM5300E_TCPIP_Application Note.

На скорость внимания не обращал, критерием была правильность выполнения апнотеса.

Поэтому по работе с модулем АТ командами, скоростные характеристики ни подтвердить, ни опровергнуть не могу.

 

Однако есть другое наблюдение.

Установил драйвера и использовал отладочную плату с модулем просто как 3G модем к компу.

Оператор Vodafone. Настройки для интернета взяты с сайта оператора.

В качестве соединения модуля как модема используется USB, для настройки и АТ команд - UART (USB поток для АТ команд решил не трогать).

Модуль в HSDPA моде - проверял командой AT+CSACT?

Скорость по тесту интернета на прием на момент тестирования была 4.8 Мбит/сек.

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


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

На скорость внимания не обращал, критерием была правильность выполнения апнотеса.

К примерам, приведенным в руководстве по применению, никаких вопросов нет.

Все работает как описано. Но примеры только для "послать/принять пару пакетов в ручном режиме".

При реальной работе возникает масса других вопросов по скоростным параметрам, обработке ошибок и т.д.

А это чаще всего не описано.

 

Установил драйвера и использовал отладочную плату с модулем просто как 3G модем к компу.

Оператор Vodafone. Настройки для интернета взяты с сайта оператора.

В качестве соединения модуля как модема используется USB, для настройки и АТ команд - UART (USB поток для АТ команд решил не трогать).

Модуль в HSDPA моде - проверял командой AT+CSACT?

Скорость по тесту интернета на прием на момент тестирования была 4.8 Мбит/сек.

И у вас есть уверенность, что поток данных шел через АТ команды встроенного стека?

Я почему-то уверен, что стек был внешний :rolleyes:

Скорости то для каждой технологии заявлены в Data Sheet, верю, что их проверяли. Вопрос в АТ командах.

 

Единственно, не работал с АТ командами через USB модема, и возможно, USB порт обрабатывается гораздо быстрее,

а все эти дурацкие задержки следствие кривой поддержки УАРТ-ов. Не знаю. Будет интересно послушать того, кто проверит эту мысль :)

 

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


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

>>>И у вас есть уверенность, что поток данных шел через АТ команды встроенного стека?

 

Это я утверждать не стану - вполне возможно что использовались возможности виндовса и драйверов.

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


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

Попробовал AT+IFC=2,2 и сразу после этого, при последующих посылках RTS = 0, жду CTS == 0, подаю данные, затем RTS = 1, жду ответ до нескольких секунд.

В итоге CTS все время ноль.

AT+CCLK, AT+CIPQSEND, AT+CSTT возвращают OK,

а вот на AT+CIICR нет ответа, AT+CIFSR возвращает либо 0.0.0.0 либо мусор.

Затем не зная что делать пробую CIPSTART.

Первый CIPSTART возвращает OK, потом после CIPSEND молчание, модем тупо игнорит все что я ему кидаю.

Версии прошивок B03 и B05. :wacko:

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


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

SIM5300E_TCPIP_Application Note_V1.01 - перепроверено, работает.

 

Рекомендовано НЕ МЕНЯТЬ последовательность команд, очень желательно не вставлять другие до соединения.

Симком рекомендует по возможности это делать как в апнотесе, то есть соединение-данные как бы отдельный блок.

Закончили, вышли, потом все остальное.

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


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

Попробовал AT+IFC=2,2 и сразу после этого, при последующих посылках RTS = 0, жду CTS == 0, подаю данные, затем RTS = 1, жду ответ до нескольких секунд.

В итоге CTS все время ноль.

Я всегда работаю с аппаратным управлением потоком (AT+IFC=2,2). Оно работает :)

Может вы его логику не понимаете? А то я вашу фразу не понял.

Если вы подаете модему RTS = 1, то говорите, что не готовы принимать данные, и модем молчит...

 

AT+CCLK, AT+CIPQSEND, AT+CSTT возвращают OK,

а вот на AT+CIICR нет ответа, AT+CIFSR возвращает либо 0.0.0.0 либо мусор.

Затем не зная что делать пробую CIPSTART.

У вас же раньше все работало?

 

Не забудьте, что SIM5300 не сохраняет никаких настроек и после каждого включения нужно прописывать все настройки, отличные от дефолтных, заново.

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


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

У вас же раньше все работало?

 

Ну так да, без управления потоком оно вроде как работает. Я походу неправильно понял эти RTS и CTS.

 

"When the module is in hardware flow control mode, this signal is asserted (low level) to indicate the

preparation of the module (DCE) for accepting transmitted data from the DTE device. "

Почему-то навело меня это на неправильные мысли(мои скундные знания английского меня подвели).

Хотя следующий абзац все проесняет.

 

"DCE stop transmitting data if RTS PIN is high level, transmission begins or continues when RTS is low level. If RTS goes high in the middle of character transmission, the module (DCE) waits for a completed transmission

before stop transmitting data."

 

Я правильно понял, что RTS это указание модему о готовности хоста принимать данные? а CTS это готовность модема принимать данные?

 

SIM5300E_TCPIP_Application Note_V1.01 - перепроверено, работает.

 

Вот в том то и проблема, работает и очень нравится идея реализации стека внутри модема, но нет никаких временных характеристик.

Поэтому сейчас исследую SIM5300E_UART_Application_Note_V1.01.pdf и в связи с этим еще вопрос, как вы реализуете передачу данных, а именно тайминги какие?

К примеру, я делаю следующее(без аппаратного контроля):

 

AT+CIPQSEND=1

 

"AT+CIPSEND=0,5\r\n"

Жду "\r\n> "

***Затем жду 25 мс(Если ждать меньше то DATA ACCEPT не приходит, данные не отправляются)

Посылаю "Hello"

Жду "DATA ACCEPT"

 

Работаю с модемом дальше.

 

или

 

AT+CIPQSEND=1

AT+CIPSPRT=0

 

"AT+CIPSEND=0,5\r\n"

***Затем жду 8 мс (Если ждать меньше то DATA ACCEPT не приходит, данные не отправляются)

Посылаю "Hello"

Жду "DATA ACCEPT"

 

*** Так вот, эти задержки наталкивают меня на мысль, что что-то тут не чисто и я скорее всего чего-то не понимаю, подскажите, если не сложно, или возможно я зря на этом заостряю?

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


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

Я правильно понял, что RTS это указание модему о готовности хоста принимать данные? а CTS это готовность модема принимать данные?

Да, все именно так. Можно почитать, напр.:

"Особенности управления потоками данных в интерфейсах семейства RS"

Там где второй, современный вариант применения RTS/CTS, рис.4

 

как вы реализуете передачу данных, а именно тайминги какие?

Мне быстродействие раньше было не нужно, поэтому изначально у меня был сделан прием данных от модема по УАРТу на таймаутах,

т.е. флаг прихода строки/данных от модема взводился через 30 мс.

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

 

А режим был:

AT+CIPQSEND=0

AT+CIPSPRT=1

 

Посылка бинарных данных по длине:

AT+CIPSEND=nnn

>

бинарные данные

SEND OK

 

Асинхронный прием данных с заголовком:

AT+CIPHEAD=1

+IPD,nnn:бинарные данные

 

Так что и промпт (> ) я никогда не отключал, и сразу без задержки после промпта тоже данные не пробовал посылать.

(Хотя по логике, после промпта должно быть можно посылать, иначе это бред получается :( )

 

Есть желание попробовать, но не уверен, что руки дойдут,

только если какому заказчику потребуется быстрая передача данных.

Пока я выжимаю несколько кБайт/сек, устраивает.

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


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

С RTS CTS разобрался, что с нимим, что без них нету разницы, не заметил даже что бы CTS дергался.

На этом наверное остановлюсь.

Спасибо за ответы.

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


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

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

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

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

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

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

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

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

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

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