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

Usb<->Uart Медленный Обмен Данными


_Yura_

Рекомендуемые сообщения

Тестирую скорость порта.

Есть МК соединенный через UART-USB CP2102 переходник к компу. МК передает пакеты длиной 64 байта на скорости 115200 со скоростью 100 пакетов в секунду. Комп передает ассинхронно данные 64 байт 100 пакетов / сек. Скорость USB 12 мегабит.

Если передает данные только МК, то пакеты приходят с минимальной задержкой.

Если включить передачу данных с ПК, то принимаемые ПК пакеты приходят сразу пачкой примерно 3 раза в секунду. Байты и сами пакеты не теряются.

Пробовал большие скорости UART, но на склейку пакетов это не влияет. Есть способ сделать так, чтобы пакеты не склеивались друг с другом и приходили с минимальной задержкой?

Это такая особенность USB шины или чипа CP2102?

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Порт же асинхронный и последовательный. Неверно предполагать что на каждое событие приема будет постоянное кол-во байт. Может быть как склейка так и разбивка. Разбор данных должен осуществляться вами согласно выбранному протоколу обмена данными. Хотя бы примитивный: заголовок, пакет, CRC. В заголовке посылать специальный байт (или несколко байтов) чтобы синхронизировать пакеты.

Нет никакой заслуги тому, кто даёт золото, думая, что даёт камень (Будда)

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Порт же асинхронный и последовательный. Неверно предполагать что на каждое событие приема будет постоянное кол-во байт. Может быть как склейка так и разбивка. Разбор данных должен осуществляться вами согласно выбранному протоколу обмена данными. Хотя бы примитивный: заголовок, пакет, CRC. В заголовке посылать специальный байт (или несколко байтов) чтобы синхронизировать пакеты.

Пакеты без особой сложности разбираются и обрабатываются. Вся соль в том, чтобы обеспечить минимальный интервал времени между пакетами от МК. А когда пакеты склеены, то данные с МК приходят с огромной задержкой. Такое чувство, что пока буфер не наполнится, по USB на ПК ничего не передается.

Изменено пользователем _Yura_
Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Надо смотреть код в башке мк. Вполне возможно что при включении передачи с пк контроллер просто подвисает на приеме, а потом спохватившись выплевывает весь интервальный пакет в комп. 2102 тут совершенно непричем

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

В настройках драйвера CP2101, FIFO буфер отключен?

Такой объем инфы прогнать через UART, на скорости 115200, сложновато. Учтите, регистр данных UDR один (и на прием, и на передачу).

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

Эт смотря какой мк. Мне удавалось и по 3.5 мегабита через уарт гонять. 2102 держит до 0.9 по моему

Для 115200 сотня пакетов по 64 бита это вполне нормальный обьем

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

115200 бод. Автор пытается гнать с МК 64000 бод и столько же обратно (64000+64000=128000). И это минимум (зависит от старт-бита, кол-ва стоп-битов) нагружающий UART на работу без пауз.

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

А вы точно в курсе марки контроллера? Уарт то может одновременно в обе стороны. И структура модуля не везде идентична. Так что запросто можно столько передать при желании

К примеру для stm32 это задачка чисто для смеху. 3 раздельных двунаправленных потока по 0.9 мегабит для камня класса f100 вообще не труд

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

Не уверен что в тему, но мой мальій на днях парился с похожей проблемой при передаче небольших пакетов (около 40 байт) по wifi с андроид смартфона на ПК виндовс. И пакетьі тоже склееньіе получал, пока при передаче в конец пакета не дописал символ "конец строки"

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

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

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...