jip 0 29 июня, 2015 Опубликовано 29 июня, 2015 · Жалоба Использую симкомовский модем Sim5360 с управлением от Atmel-овского микроконтроллера по UART. UART работает на скорости 921600bps, установлены(активны) сигналы управления потоком CTS/RTS. На Sim5360 организовываю TCP-сервер в Transparent mode; при соединении с другим модемом MK по таймеру отсылает данные в UART, при этом часть данных передается, часть теряется т.к. от модема идет сдерживающий сигнал RTS, запрещающий передачу. Поэтому возник вопрос: с каким минимальным размером блока и с какой частотой нужно передавать данные в UART во избежание потерь при передаче? Какой размер Rx FIFO модема Sim5360? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladec 7 30 июня, 2015 Опубликовано 30 июня, 2015 · Жалоба Вы на всякий случай проверьте, в самом ли деле данные теряются, или же они "зависают" в буферах модема на длительное время? Мы столкнулись у этого модема с подобными проблемами, но данные не терялись, а всегда доходили до адресата хотя и сзадержкой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pavel☺ 0 30 июня, 2015 Опубликовано 30 июня, 2015 (изменено) · Жалоба Правильно ли я понимаю, что даже при прекращении передачи по сигналу RTS, какая-то часть данных может быть потеряна? У Вас есть возможность подпаяться к USB интерфейсу модуля для снятия низкоуровневых логов? Напишите мне на chра(со6akа)mt-system.ru - пришлю инструкции. Вы на всякий случай проверьте, в самом ли деле данные теряются, или же они "зависают" в буферах модема на длительное время? Мы столкнулись у этого модема с подобными проблемами, но данные не терялись, а всегда доходили до адресата хотя и сзадержкой. Добрый день, В Вашем случае была проблема в драйверах, а не в модуле. Драйверы были портированны с другого проекта, в котором размер передаваемых данных, кратный 64, сигнализировал драйверу, что это - не конец посылки. Т.е. у Вас проблема была в том, что на модуль от MCU ни чего не приходило, если посылка = 64/128/192/... байта Изменено 30 июня, 2015 пользователем Pavel☺ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladec 7 1 июля, 2015 Опубликовано 1 июля, 2015 · Жалоба Да нет, вроде как наоборот, при передаче данных кратных 64 байтам они застревали в модеме и для того чтобы они передавались пришлось модифицировать обмен Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jip 0 1 июля, 2015 Опубликовано 1 июля, 2015 · Жалоба Одно дело, если использовать разовую посылку блока данных, при заполнении внутреннего буфера модема RTS блокирует прием данных (по времени может длится несколько секунд), далее, после передачи, разрешает прием и отправляет остаток данных их до адресата - потерь при передаче действительно нет, только задержка по времени. Другое дело, если нужно передавать поток данных с определенной скоростью от МК в UART модема. К примеру, передачу двухкилобайтных блоков два раза в секунду модем успевает обрабатывать (без сигнала сдерживания - RTS), при увеличении размера блоков (увеличения частоты посылок) не справляется - RTS блокирует прием данных на несколько секунд, соответственно часть данных, передаваемых от МК за это время будет утеряна, т.к. размер буфера модема ограничен. Стоит ли вообще вообще использовать UART модема для передачи потока данных? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pavel☺ 0 2 июля, 2015 Опубликовано 2 июля, 2015 · Жалоба Одно дело, если использовать разовую посылку блока данных, при заполнении внутреннего буфера модема RTS блокирует прием данных (по времени может длится несколько секунд), далее, после передачи, разрешает прием и отправляет остаток данных их до адресата - потерь при передаче действительно нет, только задержка по времени. Другое дело, если нужно передавать поток данных с определенной скоростью от МК в UART модема. К примеру, передачу двухкилобайтных блоков два раза в секунду модем успевает обрабатывать (без сигнала сдерживания - RTS), при увеличении размера блоков (увеличения частоты посылок) не справляется - RTS блокирует прием данных на несколько секунд, соответственно часть данных, передаваемых от МК за это время будет утеряна, т.к. размер буфера модема ограничен. Стоит ли вообще вообще использовать UART модема для передачи потока данных? Мне кажется, Вы уже сами ответили на свой вопрос. Вообще, размер буфера = 5КБ. При каком заполнении модуль начинает сигнализировать по RTS, мне точно не известно. Могу предположить, что 3.5К Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Энтомолог 0 8 мая, 2016 Опубликовано 8 мая, 2016 · Жалоба Мне кажется, Вы уже сами ответили на свой вопрос. Вообще, размер буфера = 5КБ. При каком заполнении модуль начинает сигнализировать по RTS, мне точно не известно. Могу предположить, что 3.5К Я правильно понял, что при работе черех UART, модуль обеспечивает скорость передачи данных только порядка 32 kbit/s? (средняя скорость, uplink) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться