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

 
 
 
Reply to this topicStart new topic
> Передача данных по UART при TCP-соединении симкомовского модема Sim5360
jip
сообщение Jun 29 2015, 10:35
Сообщение #1





Группа: Участник
Сообщений: 7
Регистрация: 30-11-11
Из: СПб
Пользователь №: 68 596



Использую симкомовский модем Sim5360 с управлением от Atmel-овского микроконтроллера по UART.
UART работает на скорости 921600bps, установлены(активны) сигналы управления потоком CTS/RTS.
На Sim5360 организовываю TCP-сервер в Transparent mode; при соединении с другим модемом
MK по таймеру отсылает данные в UART, при этом часть данных передается, часть теряется т.к.
от модема идет сдерживающий сигнал RTS, запрещающий передачу. Поэтому возник вопрос: с каким
минимальным размером блока и с какой частотой нужно передавать данные в UART во избежание
потерь при передаче? Какой размер Rx FIFO модема Sim5360?
Go to the top of the page
 
+Quote Post
vladec
сообщение Jun 30 2015, 05:55
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 167
Регистрация: 3-10-05
Из: Москва
Пользователь №: 9 158



Вы на всякий случай проверьте, в самом ли деле данные теряются, или же они "зависают" в буферах модема на длительное время? Мы столкнулись у этого модема с подобными проблемами, но данные не терялись, а всегда доходили до адресата хотя и сзадержкой.
Go to the top of the page
 
+Quote Post
Pavel☺
сообщение Jun 30 2015, 06:01
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 166
Регистрация: 18-03-14
Из: Санкт-Петербург
Пользователь №: 80 977



Правильно ли я понимаю, что даже при прекращении передачи по сигналу RTS, какая-то часть данных может быть потеряна?
У Вас есть возможность подпаяться к USB интерфейсу модуля для снятия низкоуровневых логов? Напишите мне на chра(со6akа)mt-system.ru - пришлю инструкции.

Цитата(vladec @ Jun 30 2015, 09:55) *
Вы на всякий случай проверьте, в самом ли деле данные теряются, или же они "зависают" в буферах модема на длительное время? Мы столкнулись у этого модема с подобными проблемами, но данные не терялись, а всегда доходили до адресата хотя и сзадержкой.

Добрый день,
В Вашем случае была проблема в драйверах, а не в модуле.
Драйверы были портированны с другого проекта, в котором размер передаваемых данных, кратный 64, сигнализировал драйверу, что это - не конец посылки. Т.е. у Вас проблема была в том, что на модуль от MCU ни чего не приходило, если посылка = 64/128/192/... байта

Сообщение отредактировал Pavel☺ - Jun 30 2015, 06:02


--------------------
Go to the top of the page
 
+Quote Post
vladec
сообщение Jul 1 2015, 10:31
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 167
Регистрация: 3-10-05
Из: Москва
Пользователь №: 9 158



Да нет, вроде как наоборот, при передаче данных кратных 64 байтам они застревали в модеме и для того чтобы они передавались пришлось модифицировать обмен
Go to the top of the page
 
+Quote Post
jip
сообщение Jul 1 2015, 14:26
Сообщение #5





Группа: Участник
Сообщений: 7
Регистрация: 30-11-11
Из: СПб
Пользователь №: 68 596



Одно дело, если использовать разовую посылку блока данных, при заполнении внутреннего буфера модема RTS блокирует прием данных
(по времени может длится несколько секунд), далее, после передачи, разрешает прием и отправляет остаток данных их до адресата - потерь
при передаче действительно нет, только задержка по времени. Другое дело, если нужно передавать поток данных с определенной скоростью
от МК в UART модема. К примеру, передачу двухкилобайтных блоков два раза в секунду модем успевает обрабатывать (без сигнала
сдерживания - RTS), при увеличении размера блоков (увеличения частоты посылок) не справляется - RTS блокирует прием данных
на несколько секунд, соответственно часть данных, передаваемых от МК за это время будет утеряна, т.к. размер буфера модема
ограничен. Стоит ли вообще вообще использовать UART модема для передачи потока данных?
Go to the top of the page
 
+Quote Post
Pavel☺
сообщение Jul 2 2015, 06:29
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 166
Регистрация: 18-03-14
Из: Санкт-Петербург
Пользователь №: 80 977



Цитата(jip @ Jul 1 2015, 17:26) *
Одно дело, если использовать разовую посылку блока данных, при заполнении внутреннего буфера модема RTS блокирует прием данных
(по времени может длится несколько секунд), далее, после передачи, разрешает прием и отправляет остаток данных их до адресата - потерь
при передаче действительно нет, только задержка по времени. Другое дело, если нужно передавать поток данных с определенной скоростью
от МК в UART модема. К примеру, передачу двухкилобайтных блоков два раза в секунду модем успевает обрабатывать (без сигнала
сдерживания - RTS), при увеличении размера блоков (увеличения частоты посылок) не справляется - RTS блокирует прием данных
на несколько секунд, соответственно часть данных, передаваемых от МК за это время будет утеряна, т.к. размер буфера модема
ограничен. Стоит ли вообще вообще использовать UART модема для передачи потока данных?

Мне кажется, Вы уже сами ответили на свой вопрос.
Вообще, размер буфера = 5КБ. При каком заполнении модуль начинает сигнализировать по RTS, мне точно не известно. Могу предположить, что 3.5К


--------------------
Go to the top of the page
 
+Quote Post
Энтомолог
сообщение May 8 2016, 21:41
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 147
Регистрация: 24-01-07
Пользователь №: 24 741



Цитата(Pavel☺ @ Jul 2 2015, 09:29) *
Мне кажется, Вы уже сами ответили на свой вопрос.
Вообще, размер буфера = 5КБ. При каком заполнении модуль начинает сигнализировать по RTS, мне точно не известно. Могу предположить, что 3.5К


Я правильно понял, что при работе черех UART, модуль обеспечивает скорость передачи данных только порядка 32 kbit/s? (средняя скорость, uplink)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 03:08
Рейтинг@Mail.ru


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