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

Подскажите USB2.0 контроллер!

Подскажите USB2.0 контроллер, с буфером FIFO емкостью не менее 6 кбайт!

Пользуем пока FX2 от Cypress, но у него FIFO 4 кбайта...

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


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

Подскажите USB2.0 контроллер, с буфером FIFO емкостью не менее 6 кбайт!

Пользуем пока FX2 от Cypress, но у него FIFO 4 кбайта...

У Филипса посмотрите. Там есть из чего выбрать...

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


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

Подскажите USB2.0 контроллер, с буфером FIFO емкостью не менее 6 кбайт!

Можно спросить, нафиг вам такое чудо?

 

Пользуем пока FX2 от Cypress, но у него FIFO 4 кбайта...

При пересылке в РС, пока вы в него пихаете свои данные, то что уже запихано раньше - успевает усвистеть по USB.

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


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

Подскажите USB2.0 контроллер, с буфером FIFO емкостью не менее 6 кбайт!

Можно спросить, нафиг вам такое чудо?

 

Пользуем пока FX2 от Cypress, но у него FIFO 4 кбайта...

При пересылке в РС, пока вы в него пихаете свои данные, то что уже запихано раньше - успевает усвистеть по USB.

 

Действительно, на C8051F320 получаем свои несколько Мбит/сек имея буфер FIFO всего 64 байта. Большие (уд. на первый слог) проблемы создает малое количество конечных точек, тип трансфера и поточность обработки в PC.

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

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


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

Действительно, на C8051F320 получаем свои несколько Мбит/сек имея буфер FIFO всего 64 байта. Большие проблемы (уд. на первый слог) создает малое количество конечных точек, тип трансфера и поточность обработки в PC.

Дык, Цыклон супротив FX2 как плотник супротив столяра (с) :biggrin: FX2 покрывает USB как никто другой. Это, по сути, просто могучий насос для данных, к которому сбоку прикручен 51-й. На FX с USB1 мы получали 1 Мбайт/сек, а на FX2LP и USB2 планируем поиметь пару десятков Мбайт/сек. И ограничений пока не видать, на что USB способна, то из нее FX2 и выжмет.

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


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

На FX с USB1 мы получали 1 Мбайт/сек, а на FX2LP и USB2 планируем поиметь пару десятков Мбайт/сек. И ограничений пока не видать, на что USB способна, то из нее FX2 и выжмет.

 

Из поста было непонятно USB 2 - full или high spid.

Собираемся осваивать FX2. По Вашему опыту с чего лучше начинать 68013 или более поздних дивайсов (14-16)?

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


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

Подскажите USB2.0 контроллер, с буфером FIFO емкостью не менее 6 кбайт!

Можно спросить, нафиг вам такое чудо?

........................

При пересылке в РС, пока вы в него пихаете свои данные, то что уже запихано раньше - успевает усвистеть по USB.

Это не совсем так. Представьте себе, что данные валятся в контроллер с большой скоростью, сравнимой с физической пропускной способностью канала. Двойная буферизация здесь просто необходима. А если труб несколько, и между ними нужно быстро переключаться - тогда как?

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


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

По нашему опыту FX2 CY7C68013 превосходит способности ВСЕХ существующих на сегодняшний день хостов. Фактически он в состоянии "убить" любой USB 2.0 High-speed хост без каких бы то ни было проблем. В нашем случае получилось через USB 2.0 high-speed c использованием CY7C68013 пролить ~46MB/s, однако этот результат относится к разряду экстремальных и достижим только на некоторых материнских платах.

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


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

Это не совсем так. Представьте себе, что данные валятся в контроллер с большой скоростью, сравнимой с физической пропускной способностью канала. Двойная буферизация здесь просто необходима.

Не вижу в ней необходимости. И в этом случае буфер (и не двойной, а ФИФО) нужен только затем, чтобы временно накапливать данный пришедшие в те интервалы времени, когда USB занят "служебными" делами и не может гнать данные: передает SOFы, пингует, и т.п. На это 4-х кил достаточно.

 

Дополнительная буферизация может понадобиться только если большой поток данных в РС идет не равномерно, а "рывками". Что довольно трудно себе представить, т.к. каждый такой "рывок" должен намного превосходить пропускную способность USB2, т.е. иметь "плотность" в несколько десятков (существенно более 20) мегабайт в секунду. Это что ж за задачи такие?

 

А если труб несколько, и между ними нужно быстро переключаться - тогда как?

Дык, буфера назначаются трубам при конфигурировании. Зачем переключаться-то?

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


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

Не вижу в ней необходимости. И в этом случае буфер (и не двойной, а ФИФО) нужен только затем, чтобы временно накапливать данный пришедшие в те интервалы времени, когда USB занят "служебными" делами и не может гнать данные: передает SOFы, пингует, и т.п. На это 4-х кил достаточно...
Интересно, где Вы видели контроллер с ФИФО без минимум двойной буферизации? Дело в том, что ФИФО - оно только со стороны внешней шины, а со стороны приемопередатчика - это два или более блока данных, каждый из которых передается за одну транзакцию по USB шине (пакета). Для получения максимальной пропускной способности канала, размер пакета должен быть максимальным (1К). При 4К памяти, следовательно, удается организовать только 2 конечных точки. А этого иногда недостаточно.

PS. Двойной (или более) буфер данных тоже можно интерпретировать, как ФИФО. Только единицей информации будет не байт, а целый пакет. :)

 

...Дополнительная буферизация может понадобиться только если большой поток данных в РС идет не равномерно, а "рывками". Что довольно трудно себе представить, т.к. каждый такой "рывок" должен намного превосходить пропускную способность USB2, т.е. иметь "плотность" в несколько десятков (существенно более 20) мегабайт в секунду. Это что ж за задачи такие?
Да нет, данные могут поступать и непрерывно. Не следует забывать, что передача информации стоновится возможной только по заполнении всего буфера эндпойнта и осуществляется пакетами.

 

А если труб несколько, и между ними нужно быстро переключаться - тогда как?

Дык, буфера назначаются трубам при конфигурировании. Зачем переключаться-то?

Под "трубой" (pipe) я подразумеваю логическую связь между источником данных и приемником. Которую можно организовать только ассоциировав с каждым из них определенный(е) буфер(а) памяти контроллера. Если источников/приемников данных к контроллеру подключено несколько, и в процессе работы нужно переключать поток данных с одного на другой, с выделением памяти для соотв. эндпойнтов могут возникнуть проблеммы.

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


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

вышел недавно MAX3421E - USB Peripheral/Host Controller with SPI Interface. было бы интересно попробовать. правда, сомневаюсь, что в России его уже достать можно.

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


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

Интересно, где Вы видели контроллер с ФИФО без минимум двойной буферизации?

Я всего лишь сказал, что железа, встроенного в FX2, более чем достаточно для большинства практических задач. С чем Вы, как я понял, изволили не согласиться, сославшись на то, что потребуется двойная буферезация. Что я воспринял так, что, по Вашему мнению, средств буферизации FX2 недостаточно, и ему нужен дополнительный внешний буфер. С чем, в свою очередь, уже я соблаговолил не согласиться, приведя свои резоны... :biggrin: Короче, испорченный телефон какой-то :cheers:

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

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


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

Поясню причину вопроса.

Есть видео-поток 640х480х3(RGB)х10(bit)х30(кадров/с).

30кадров - желательно, но (пока) не обязательно.

 

В изохронном режиме (1024) посколько за 1 посылку одной конечной точки (endpoint) отсылается только 3 пакета (max), то при 6 кбайт FIFO остается использовать либо 1 точку с 3-й буферизацией, либо 2 точки с двойной.

 

Так вот, если бы буфер был хотя бы 6к, то можно было бы использовать 2 точки с 3-й буферизацией, что позволило бы (если я всё до конца и правильно понимаю :) ) приблизиться к максимуму быстродействия.

 

Нашел контроллер с 8к FIFO - Philips ISP1581.

Что это за чудо? Кто-нить работал с ним?

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


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

При пересылке в РС, пока вы в него пихаете свои данные, то что уже запихано раньше - успевает усвистеть по USB.

Скорее наоборот. В соответствии с документацией по FX2 максимально возможная скорость передачи/приёма данных в/из FIFO составляет 96 МБайт/сек, а в соответствии с документацией по USB 2.0 максимально возможная скорость по USB High Speed чуть выше 50 МБайт/сек.

Отсюда вывод что лишний объём FIFO ИМХО может потребоваться если только данные в FIFO поступают окольными путями, например через интерфейс UART или данные передаются с большой "мгновенной скоростью".

Под "мгновенной скоростью" я понимаю скорость передачи одного слова данных.

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

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


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

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

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

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

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

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

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

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

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

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