реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> SIM5300EA медленная работа CIPSEND
1richard
сообщение Jan 22 2018, 10:10
Сообщение #1





Группа: Участник
Сообщений: 5
Регистрация: 20-01-18
Пользователь №: 101 168



Доброго времени суток.
Проблема в скорости передачи данных 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 вместо внутреннего стека.

Go to the top of the page
 
+Quote Post
Цырен.
сообщение Jan 25 2018, 13:14
Сообщение #2


Евгений
***

Группа: Участник
Сообщений: 340
Регистрация: 13-10-11
Пользователь №: 67 706



Цитата(1richard @ Jan 22 2018, 13:10) *
Доброго времени суток.
Проблема в скорости передачи данных 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.


--------------------
Go to the top of the page
 
+Quote Post
Baser
сообщение Jan 26 2018, 17:34
Сообщение #3


Просто Che
*****

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



Цитата(1richard @ Jan 22 2018, 12:10) *
Проблема в скорости передачи данных SIM5300EA.
...
Меня интересует, так ли должно быть, ведь модуль все такие 3g, может я делаю где-то ошибку, или возможно надо использовать ppp вместо внутреннего стека.

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

Я тоже тестировал 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 и ответ сервера.
Времена передачи пачки пакетов не изменились ни на секунду sad.gif
И зачем тогда этот режим нужен???
Go to the top of the page
 
+Quote Post
1richard
сообщение Jan 29 2018, 09:39
Сообщение #4





Группа: Участник
Сообщений: 5
Регистрация: 20-01-18
Пользователь №: 101 168



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

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

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


Аналогично, это мой первый модем и наткнуться на такую несправедливость. Может кто-то тестировал другие модели симкомовских модемов, которые могут обеспечить приемлемую скорость внутреннего стека? Или может где-то в недрах гугла заныкана инструкция по поднятию ppp безболезнено и не за месяцы упорного труда? Так получилось что я очень привязался к UIP на своей stm32 и курить lwip будет очень и очень больно. В общем проблема в скорости, хочется около 50-100 килобайт и модем аналогичный симкомовскому, очень желательно с внутренним стеком. Вижу следующие пути решения:
1) Опробовать другие модельки симковоского производства 5xхх и 7ххх
2) Убить UIP и долго и упорно курить LWIP и PPPOS
Поправте, если ошибаюсь...
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Jan 29 2018, 10:27
Сообщение #5


Гуру
******

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



Модуль на выполнение соединений тестировал по SIM5300E_TCPIP_Application Note.
На скорость внимания не обращал, критерием была правильность выполнения апнотеса.
Поэтому по работе с модулем АТ командами, скоростные характеристики ни подтвердить, ни опровергнуть не могу.

Однако есть другое наблюдение.
Установил драйвера и использовал отладочную плату с модулем просто как 3G модем к компу.
Оператор Vodafone. Настройки для интернета взяты с сайта оператора.
В качестве соединения модуля как модема используется USB, для настройки и АТ команд - UART (USB поток для АТ команд решил не трогать).
Модуль в HSDPA моде - проверял командой AT+CSACT?
Скорость по тесту интернета на прием на момент тестирования была 4.8 Мбит/сек.


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Baser
сообщение Jan 29 2018, 11:16
Сообщение #6


Просто Che
*****

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



Цитата(CADiLO @ Jan 29 2018, 12:27) *
На скорость внимания не обращал, критерием была правильность выполнения апнотеса.

К примерам, приведенным в руководстве по применению, никаких вопросов нет.
Все работает как описано. Но примеры только для "послать/принять пару пакетов в ручном режиме".
При реальной работе возникает масса других вопросов по скоростным параметрам, обработке ошибок и т.д.
А это чаще всего не описано.

Цитата
Установил драйвера и использовал отладочную плату с модулем просто как 3G модем к компу.
Оператор Vodafone. Настройки для интернета взяты с сайта оператора.
В качестве соединения модуля как модема используется USB, для настройки и АТ команд - UART (USB поток для АТ команд решил не трогать).
Модуль в HSDPA моде - проверял командой AT+CSACT?
Скорость по тесту интернета на прием на момент тестирования была 4.8 Мбит/сек.

И у вас есть уверенность, что поток данных шел через АТ команды встроенного стека?
Я почему-то уверен, что стек был внешний rolleyes.gif
Скорости то для каждой технологии заявлены в Data Sheet, верю, что их проверяли. Вопрос в АТ командах.

Единственно, не работал с АТ командами через USB модема, и возможно, USB порт обрабатывается гораздо быстрее,
а все эти дурацкие задержки следствие кривой поддержки УАРТ-ов. Не знаю. Будет интересно послушать того, кто проверит эту мысль sm.gif
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Jan 29 2018, 11:29
Сообщение #7


Гуру
******

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



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

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


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
1richard
сообщение Jan 30 2018, 13:33
Сообщение #8





Группа: Участник
Сообщений: 5
Регистрация: 20-01-18
Пользователь №: 101 168



Попробовал 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.gif
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Jan 30 2018, 13:59
Сообщение #9


Гуру
******

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



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

Рекомендовано НЕ МЕНЯТЬ последовательность команд, очень желательно не вставлять другие до соединения.
Симком рекомендует по возможности это делать как в апнотесе, то есть соединение-данные как бы отдельный блок.
Закончили, вышли, потом все остальное.


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Baser
сообщение Jan 30 2018, 14:08
Сообщение #10


Просто Che
*****

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



Цитата(1richard @ Jan 30 2018, 15:33) *
Попробовал AT+IFC=2,2 и сразу после этого, при последующих посылках RTS = 0, жду CTS == 0, подаю данные, затем RTS = 1, жду ответ до нескольких секунд.
В итоге CTS все время ноль.

Я всегда работаю с аппаратным управлением потоком (AT+IFC=2,2). Оно работает sm.gif
Может вы его логику не понимаете? А то я вашу фразу не понял.
Если вы подаете модему RTS = 1, то говорите, что не готовы принимать данные, и модем молчит...

Цитата
AT+CCLK, AT+CIPQSEND, AT+CSTT возвращают OK,
а вот на AT+CIICR нет ответа, AT+CIFSR возвращает либо 0.0.0.0 либо мусор.
Затем не зная что делать пробую CIPSTART.

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

Не забудьте, что SIM5300 не сохраняет никаких настроек и после каждого включения нужно прописывать все настройки, отличные от дефолтных, заново.
Go to the top of the page
 
+Quote Post
1richard
сообщение Jan 31 2018, 06:22
Сообщение #11





Группа: Участник
Сообщений: 5
Регистрация: 20-01-18
Пользователь №: 101 168



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


Ну так да, без управления потоком оно вроде как работает. Я походу неправильно понял эти 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"

*** Так вот, эти задержки наталкивают меня на мысль, что что-то тут не чисто и я скорее всего чего-то не понимаю, подскажите, если не сложно, или возможно я зря на этом заостряю?
Go to the top of the page
 
+Quote Post
Baser
сообщение Jan 31 2018, 11:23
Сообщение #12


Просто Che
*****

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



Цитата(1richard @ Jan 31 2018, 08:22) *
Я правильно понял, что RTS это указание модему о готовности хоста принимать данные? а CTS это готовность модема принимать данные?

Да, все именно так. Можно почитать, напр.:
"Особенности управления потоками данных в интерфейсах семейства RS"
Там где второй, современный вариант применения RTS/CTS, рис.4

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

Мне быстродействие раньше было не нужно, поэтому изначально у меня был сделан прием данных от модема по УАРТу на таймаутах,
т.е. флаг прихода строки/данных от модема взводился через 30 мс.
Из-за этого у меня автоматически получались добавочные задержки и все работало.

А режим был:
AT+CIPQSEND=0
AT+CIPSPRT=1

Посылка бинарных данных по длине:
AT+CIPSEND=nnn
>
бинарные данные
SEND OK

Асинхронный прием данных с заголовком:
AT+CIPHEAD=1
+IPD,nnn:бинарные данные

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

Есть желание попробовать, но не уверен, что руки дойдут,
только если какому заказчику потребуется быстрая передача данных.
Пока я выжимаю несколько кБайт/сек, устраивает.
Go to the top of the page
 
+Quote Post
1richard
сообщение Feb 1 2018, 06:29
Сообщение #13





Группа: Участник
Сообщений: 5
Регистрация: 20-01-18
Пользователь №: 101 168



С RTS CTS разобрался, что с нимим, что без них нету разницы, не заметил даже что бы CTS дергался.
На этом наверное остановлюсь.
Спасибо за ответы.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd May 2018 - 09:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01087 секунд с 7
ELECTRONIX ©2004-2016