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

Скорость USB

Здравствуйте! Собрал USB-хаб на TUSB2046B, руководствуясь схемой и советами из даташита (http://www.ti.com/lit/ds/slls413i/slls413i.pdf). Хаб, запитываемый от блока питания. После сборки подключил к компьютеру, хаб определился, подключил флешку - тоже всё определил. Однако при копировании с флешки скорость передачи недостигала и мегабайта в секунду, обычно. Хотя бывало и больше, моментами. Но больше всего беспокоит то, что передача иногда просто останавливается, на время. Посоветуйте, в чём может быть причина?

P.S. возможно дело в напряжении питания микросхемы - там 3,08-3,1 вольта, вместо рекомендуемого 3,3. И я не поставил супрессоры для портов downstream (но, как мне кажется, это отношения к скорости не имеет).

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


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

скорость передачи недостигала и мегабайта в секунду

Непонятно, чего еще вы ждете от full speed устройства. Бодовая скорость 12 Mbps, минус накладные расходы, как раз и получится примерно мегабайт.

 

Можно точнее посчитать. В балке можно передать до 19 чанков за фрейм. В чанке 64 байта, фреймы повторяются раз в миллисекунду. 19*64 = 1216 байт за миллисекунду, или 1.216 мегабайт в секунду. Это предел для фулл спид, больше не получите. А если флешка долго жует сопли, или есть битые чанки и перезапросы (скажем, из-за паршивого китайского кабеля), то получите меньше.

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


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

Тема прямо по моей теме, поэтому не буду создавать новую.

 

Пытаемся осваивать USB вместо старого, проверенного RS-232. Повелись на крутые МегаБоды в режиме FullSpeed.

 

На сегодня есть устройство с FT245RL. Подключили к компьютеру.

 

Вопрос:

Если все команды к устройству имеют размер 1 байт, и ответы от устройства то же 1 байт, сколько команд/ответов можно прогнать за секунду?

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


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

Вопрос:

Если все команды к устройству имеют размер 1 байт, и ответы от устройства то же 1 байт, сколько команд/ответов можно прогнать за секунду?

Максимум 500 циклов за секунду, если ни устройство, ни компьютер не будут тормозить лишнего, что в реальности далеко не так, особенно со стороны компа с многозадачной системой.

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


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

Мы вышли примерно на 200 циклов. УЖАС!!!

А нельзя эту волшебную константу (= 1 миллисекунда) уменьшить раз в 10?

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


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

Если все команды к устройству имеют размер 1 байт, и ответы от устройства то же 1 байт, сколько команд/ответов можно прогнать за секунду?

Зависит от многих привходящих факторов. Расчитывайте на то, что в лучшем случае одна транзакция займет 1-2 мс, или больше. Значит, команда 1-2 мс, ответ 1-2 мс. А если команды задаются из-под Виндовс, то может быть намного дольше, порядка 20-50 мс.

 

Поэтому никто по одному байту по USB не гоняет. Заполнили буфер и переслали несколько сотен байт, типично это тоже улетит за 1-2 мс.

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


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

......в лучшем случае одна транзакция займет 1-2 мс .....

 

Можно ли повлиять на эту константу?

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


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

Можно ли повлиять на эту константу?

В Full Speed фреймы идут с периодом 1 мс, в High Speed - с периодом 125 мкс.

 

Может ли хост обработать более одной транзакции за фрейм? Теоретически может, особенно для высокоприоритетных пайпов. Можно попробовать Control pipe, вдруг прокатит. Однако это зависит от того, как сделан хост, прежде всего - как сделан его программный стек.

 

На практике вы наверняка не будете ковыряться с низкоуровневыми драйверами, вроде WinUSB, которые позволили бы работать через Control pipe. Возьмете стадартный виртуальный COM порт, т.е. драйвер класса CDC, а он гоняет данные через Bulk pipe. И получите одну транзакцию за 1-2 фрейма. Плюс к этому вместе со стандартным Микрософтовским CDC драйвером получите присущие ему уже много лет баги, а именно: баг в реализации кольцевого буфера 8 Кбайт и баг полной потери виртуального ком порта из-за помех и глюков Винды (случается нечасто, раз в несколько дней, зато ничем не лечится, только передергиванием USB кабеля).

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


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

... Control pipe, .... низкоуровневыми драйверами, .. WinUSB, ... Control pipe. ... Bulk pipe... транзакцию за 1-2 фрейма. ... CDC драйвером ....баги...

 

:help:

 

Уважаемый =АК=, понял, что надо перейти на High Speed. А заменой чипа это получится?

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

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


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

перейти на High Speed. А заменой чипа это получится?

Поищите, я давно не смотрел новые чипы. Микроконтроллеры уже давно есть, которые могут на High Speed работать. Я думаю, и бриджи должны уже быть в продаже. Попробуйте FTDI покопать. У них, кстати, драйверы виртуального COM порта свои, не такие глюкавые, как у Микрософта.

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


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

Спасибо. Покопаем.

 

год назад выбирал себе.

В пределах доступности оказался Cypress CY7C68013 ( параллельный fifo 8/16 мост в USB2.0 HS - 480Мбит/с)

Закачивать данные в него можно до 24 Mhz.

Юзаю и сейча - работает хорошо.

Настраиваемый, удобно стыкуется с CPLD/FPGA.

 

psps - более универсальное решение есть у FTDI - FT2232D (H)

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

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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