|
Подскажите USB2.0 контроллер!, С буфером FIFO емкостью не менее 6 кбайт! |
|
|
|
Mar 5 2006, 09:20
|
Знающий
   
Группа: Свой
Сообщений: 775
Регистрация: 11-05-05
Пользователь №: 4 913

|
Цитата(=AK= @ Mar 5 2006, 06:19)  Цитата(Kadzak @ Mar 3 2006, 20:12)  Подскажите USB2.0 контроллер, с буфером FIFO емкостью не менее 6 кбайт!
Можно спросить, нафиг вам такое чудо? Цитата(Kadzak @ Mar 3 2006, 20:12)  Пользуем пока FX2 от Cypress, но у него FIFO 4 кбайта... При пересылке в РС, пока вы в него пихаете свои данные, то что уже запихано раньше - успевает усвистеть по USB. Действительно, на C8051F320 получаем свои несколько Мбит/сек имея буфер FIFO всего 64 байта. Большие (уд. на первый слог) проблемы создает малое количество конечных точек, тип трансфера и поточность обработки в PC.
Сообщение отредактировал asdf - Mar 5 2006, 10:25
|
|
|
|
|
Mar 5 2006, 09:38
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(asdf @ Mar 5 2006, 18:50)  Действительно, на C8051F320 получаем свои несколько Мбит/сек имея буфер FIFO всего 64 байта. Большие проблемы (уд. на первый слог) создает малое количество конечных точек, тип трансфера и поточность обработки в PC. Дык, Цыклон супротив FX2 как плотник супротив столяра (с)  FX2 покрывает USB как никто другой. Это, по сути, просто могучий насос для данных, к которому сбоку прикручен 51-й. На FX с USB1 мы получали 1 Мбайт/сек, а на FX2LP и USB2 планируем поиметь пару десятков Мбайт/сек. И ограничений пока не видать, на что USB способна, то из нее FX2 и выжмет.
|
|
|
|
|
Mar 5 2006, 10:32
|
Знающий
   
Группа: Свой
Сообщений: 775
Регистрация: 11-05-05
Пользователь №: 4 913

|
Цитата(=AK= @ Mar 5 2006, 12:38)  На FX с USB1 мы получали 1 Мбайт/сек, а на FX2LP и USB2 планируем поиметь пару десятков Мбайт/сек. И ограничений пока не видать, на что USB способна, то из нее FX2 и выжмет. Из поста было непонятно USB 2 - full или high spid. Собираемся осваивать FX2. По Вашему опыту с чего лучше начинать 68013 или более поздних дивайсов (14-16)?
|
|
|
|
|
Mar 5 2006, 15:31
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(=AK= @ Mar 5 2006, 06:19)  Цитата(Kadzak @ Mar 3 2006, 20:12)  Подскажите USB2.0 контроллер, с буфером FIFO емкостью не менее 6 кбайт!
Можно спросить, нафиг вам такое чудо? ........................ При пересылке в РС, пока вы в него пихаете свои данные, то что уже запихано раньше - успевает усвистеть по USB. Это не совсем так. Представьте себе, что данные валятся в контроллер с большой скоростью, сравнимой с физической пропускной способностью канала. Двойная буферизация здесь просто необходима. А если труб несколько, и между ними нужно быстро переключаться - тогда как?
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Mar 6 2006, 12:07
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(Stanislav @ Mar 6 2006, 01:01)  Это не совсем так. Представьте себе, что данные валятся в контроллер с большой скоростью, сравнимой с физической пропускной способностью канала. Двойная буферизация здесь просто необходима. Не вижу в ней необходимости. И в этом случае буфер (и не двойной, а ФИФО) нужен только затем, чтобы временно накапливать данный пришедшие в те интервалы времени, когда USB занят "служебными" делами и не может гнать данные: передает SOFы, пингует, и т.п. На это 4-х кил достаточно. Дополнительная буферизация может понадобиться только если большой поток данных в РС идет не равномерно, а "рывками". Что довольно трудно себе представить, т.к. каждый такой "рывок" должен намного превосходить пропускную способность USB2, т.е. иметь "плотность" в несколько десятков (существенно более 20) мегабайт в секунду. Это что ж за задачи такие? Цитата(Stanislav @ Mar 6 2006, 01:01)  А если труб несколько, и между ними нужно быстро переключаться - тогда как? Дык, буфера назначаются трубам при конфигурировании. Зачем переключаться-то?
|
|
|
|
|
Mar 7 2006, 06:30
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(=AK= @ Mar 6 2006, 15:07)  Не вижу в ней необходимости. И в этом случае буфер (и не двойной, а ФИФО) нужен только затем, чтобы временно накапливать данный пришедшие в те интервалы времени, когда USB занят "служебными" делами и не может гнать данные: передает SOFы, пингует, и т.п. На это 4-х кил достаточно... Интересно, где Вы видели контроллер с ФИФО без минимум двойной буферизации? Дело в том, что ФИФО - оно только со стороны внешней шины, а со стороны приемопередатчика - это два или более блока данных, каждый из которых передается за одну транзакцию по USB шине (пакета). Для получения максимальной пропускной способности канала, размер пакета должен быть максимальным (1К). При 4К памяти, следовательно, удается организовать только 2 конечных точки. А этого иногда недостаточно. PS. Двойной (или более) буфер данных тоже можно интерпретировать, как ФИФО. Только единицей информации будет не байт, а целый пакет. Цитата ...Дополнительная буферизация может понадобиться только если большой поток данных в РС идет не равномерно, а "рывками". Что довольно трудно себе представить, т.к. каждый такой "рывок" должен намного превосходить пропускную способность USB2, т.е. иметь "плотность" в несколько десятков (существенно более 20) мегабайт в секунду. Это что ж за задачи такие? Да нет, данные могут поступать и непрерывно. Не следует забывать, что передача информации стоновится возможной только по заполнении всего буфера эндпойнта и осуществляется пакетами. Цитата Цитата(Stanislav @ Mar 6 2006, 01:01)  А если труб несколько, и между ними нужно быстро переключаться - тогда как?
Дык, буфера назначаются трубам при конфигурировании. Зачем переключаться-то? Под "трубой" (pipe) я подразумеваю логическую связь между источником данных и приемником. Которую можно организовать только ассоциировав с каждым из них определенный(е) буфер(а) памяти контроллера. Если источников/приемников данных к контроллеру подключено несколько, и в процессе работы нужно переключать поток данных с одного на другой, с выделением памяти для соотв. эндпойнтов могут возникнуть проблеммы.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Mar 7 2006, 06:43
|
Участник

Группа: Новичок
Сообщений: 35
Регистрация: 4-01-05
Пользователь №: 1 795

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

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(Stanislav @ Mar 7 2006, 16:00)  Интересно, где Вы видели контроллер с ФИФО без минимум двойной буферизации? Я всего лишь сказал, что железа, встроенного в FX2, более чем достаточно для большинства практических задач. С чем Вы, как я понял, изволили не согласиться, сославшись на то, что потребуется двойная буферезация. Что я воспринял так, что, по Вашему мнению, средств буферизации FX2 недостаточно, и ему нужен дополнительный внешний буфер. С чем, в свою очередь, уже я соблаговолил не согласиться, приведя свои резоны...  Короче, испорченный телефон какой-то
Сообщение отредактировал =AK= - Mar 7 2006, 09:00
|
|
|
|
|
Mar 13 2006, 17:05
|

Частый гость
 
Группа: Свой
Сообщений: 177
Регистрация: 4-07-05
Из: Зеленоград
Пользователь №: 6 491

|
Поясню причину вопроса. Есть видео-поток 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. Что это за чудо? Кто-нить работал с ним?
--------------------
Ремонт мозгов: электронных модулей, блоков управления, прошивка EPROM (916)312-2O-2О (965)312-2O-2О
|
|
|
|
|
Mar 20 2006, 09:44
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 4-10-04
Из: Москва
Пользователь №: 789

|
Цитата(=AK= @ Mar 5 2006, 06:19)  При пересылке в РС, пока вы в него пихаете свои данные, то что уже запихано раньше - успевает усвистеть по USB. Скорее наоборот. В соответствии с документацией по FX2 максимально возможная скорость передачи/приёма данных в/из FIFO составляет 96 МБайт/сек, а в соответствии с документацией по USB 2.0 максимально возможная скорость по USB High Speed чуть выше 50 МБайт/сек. Отсюда вывод что лишний объём FIFO ИМХО может потребоваться если только данные в FIFO поступают окольными путями, например через интерфейс UART или данные передаются с большой "мгновенной скоростью". Под "мгновенной скоростью" я понимаю скорость передачи одного слова данных.
Сообщение отредактировал левша - Mar 20 2006, 09:48
|
|
|
|
|
Mar 20 2006, 10:16
|
Местный
  
Группа: Свой
Сообщений: 441
Регистрация: 7-12-04
Пользователь №: 1 373

|
Цитата(Kadzak @ Mar 13 2006, 20:05)  Нашел контроллер с 8к FIFO - Philips ISP1581. Что это за чудо? Кто-нить работал с ним? Ну во-первых, лучше уж тогда Philips ISP1582, а во-вторых я бы не рекомендовал. Очень сложная документация у Philips на эти микросхемы, я можно сказать умер, пока разобрался и то наверное не до конца. Хотя максимальная теоретическая пропускная спопобность у ISP1582 не плохая: 38,15 МБайт/сек.
|
|
|
|
|
Mar 20 2006, 12:00
|
Местный
  
Группа: Свой
Сообщений: 441
Регистрация: 7-12-04
Пользователь №: 1 373

|
Цитата(v_mirgorodsky @ Mar 6 2006, 14:39)  По нашему опыту FX2 CY7C68013 превосходит способности ВСЕХ существующих на сегодняшний день хостов. Фактически он в состоянии "убить" любой USB 2.0 High-speed хост без каких бы то ни было проблем. В нашем случае получилось через USB 2.0 high-speed c использованием CY7C68013 пролить ~46MB/s, однако этот результат относится к разряду экстремальных и достижим только на некоторых материнских платах. Похоже, скорость 46МВ/sec (сам тоже упёрся в эту цифру используя один bulk endpoint out с максимальным размером пакета данных 1024 байта) - это предел отправления данных уже хост контроллера ПК. Так что насчёт превосходства CY7C68013 над современными хостами вы абсолютно правы.
|
|
|
|
|
Mar 23 2006, 07:53
|

Частый гость
 
Группа: Свой
Сообщений: 177
Регистрация: 4-07-05
Из: Зеленоград
Пользователь №: 6 491

|
Цитата(sergunas @ Mar 20 2006, 15:00)  [Похоже, скорость 46МВ/sec (сам тоже упёрся в эту цифру используя один bulk endpoint out с максимальным размером пакета данных 1024 байта) - это предел отправления данных уже хост контроллера ПК. Один bulk endpoint с пакетом 1024? Это как??? )) Если имеется ввиду bulk (512) с двойной буферизацией, то почему бы не взять тот же один enpoint, но с 4х-кратной буферизацией? За кадр (фрейм) тогда будут отсылаться 3 (ограничение USB) пакета по 512.
--------------------
Ремонт мозгов: электронных модулей, блоков управления, прошивка EPROM (916)312-2O-2О (965)312-2O-2О
|
|
|
|
|
Mar 24 2006, 09:34
|
Местный
  
Группа: Свой
Сообщений: 441
Регистрация: 7-12-04
Пользователь №: 1 373

|
Цитата(Kadzak @ Mar 23 2006, 10:53)  Один bulk endpoint с пакетом 1024? Это как??? )) Если имеется ввиду bulk (512) с двойной буферизацией... Сам удивляюсь, но тем не менее именно bulk с длиной одного пакета 1024 + само собой двойная буферизация (получается общий размер буфера на bulk out и bilk in 4КБайта), нормально всё работает. Цитата(Kadzak @ Mar 23 2006, 10:53)  ... почему бы не взять тот же один enpoint, но с 4х-кратной буферизацией? За кадр (фрейм) тогда будут отсылаться 3 (ограничение USB) пакета по 512. К сожалению ISP не поддерживает 4-х кратной буфферизации, хотя двойной и так вполне достаточно на мой взгляд. А если бы за кадр отсылалось только 3 пакета по 512, то больше, чем 11,72 МБ/сек Вы бы не получили, обычная арифметика.
|
|
|
|
|
Mar 24 2006, 09:53
|

Частый гость
 
Группа: Свой
Сообщений: 177
Регистрация: 4-07-05
Из: Зеленоград
Пользователь №: 6 491

|
2 sergunas: Т.е. вы выставили для bulk enpoint размер пакета 1024 и система это скушала, да еще и увеличение пропускной способности произошло?
--------------------
Ремонт мозгов: электронных модулей, блоков управления, прошивка EPROM (916)312-2O-2О (965)312-2O-2О
|
|
|
|
|
Mar 27 2006, 14:47
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 4-10-04
Из: Москва
Пользователь №: 789

|
Цитата(sergunas @ Mar 24 2006, 13:34)  Сам удивляюсь, но тем не менее именно bulk с длиной одного пакета 1024 + само собой двойная буферизация (получается общий размер буфера на bulk out и bilk in 4КБайта), нормально всё работает. ХМ..., вы только размер буфера поменяли или данные в дискрипторе конечной точки тоже? Цитата('sergunas') ага, сам удивился, правда, когда поставил 2048, ну совсем обнаглев, так сказать, то узнал о новом очень быстром способе перезагрузки системы А какой драйвер вы используете свои или чейто, если чейто можно ссылку? Я думую что некоторые нештатные режимы будет полезно узнать в рамках обсуждения данной темы.
|
|
|
|
|
Mar 28 2006, 05:52
|
Местный
  
Группа: Свой
Сообщений: 441
Регистрация: 7-12-04
Пользователь №: 1 373

|
Цитата(левша @ Mar 27 2006, 18:47)  ХМ..., вы только размер буфера поменяли или данные в дискрипторе конечной точки тоже? Последнее Цитата('sergunas') А какой драйвер вы используете свои или чейто, если чейто можно ссылку? Я думую что некоторые нештатные режимы будет полезно узнать в рамках обсуждения данной темы. Использую драйвер USB_IO от Thesycon, есть на местном ftp. Пробовал Windriver (ссылки у меня нет), тоже всё окей.
|
|
|
|
|
Mar 28 2006, 08:29
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 4-10-04
Из: Москва
Пользователь №: 789

|
Цитата(sergunas @ Mar 28 2006, 09:52)  Использую драйвер USB_IO от Thesycon, есть на местном ftp. Пробовал Windriver (ссылки у меня нет), тоже всё окей. Слышал, но не захотел замарачиватся с COM (Common Object Model), у меня всё на CyUSB(от кипариса) прекрасно работает. Мне было интересно какой "подлец" у вас всё "обламывает" делая ребут.  Сомневаюсь что сигнал сброса генерит железо, остаётся либо цепочка виндовых дров нижнего уровня либо ваш USB_IO.
Сообщение отредактировал левша - Mar 28 2006, 10:18
|
|
|
|
|
Mar 28 2006, 15:04
|
Местный
  
Группа: Свой
Сообщений: 441
Регистрация: 7-12-04
Пользователь №: 1 373

|
Цитата(левша @ Mar 28 2006, 12:29)  Слышал, но не захотел замарачиватся с COM (Common Object Model), у меня всё на CyUSB(от кипариса) прекрасно работает. Мне было интересно какой "подлец" у вас всё "обламывает" делая ребут.  Сомневаюсь что сигнал сброса генерит железо, остаётся либо цепочка виндовых дров нижнего уровня либо ваш USB_IO. Перезагрузка через "синий экран смерти", так что однозачно либо Host контроллер, либо драйвера. Я особо не исследовал эту проблему, да и зачем, собственно ...
|
|
|
|
|
Mar 31 2006, 08:02
|
Участник

Группа: Новичок
Сообщений: 21
Регистрация: 2-02-06
Из: Киев
Пользователь №: 13 896

|
Сорри если оффтоп. раз уж зашла речь о USB_IO драйвере. не подкинет ли кто таблетку к онному драйверу версии 2.20 или 2.0. Замучал он меня своими пребованиями поребутиться. Заранее Спасибо. nikavano@newmail.ru
|
|
|
|
|
Oct 27 2006, 07:01
|
Частый гость
 
Группа: Свой
Сообщений: 85
Регистрация: 5-07-06
Из: Барнаул
Пользователь №: 18 592

|
Цитата Собираемся осваивать FX2. По Вашему опыту с чего лучше начинать 68013 или более поздних дивайсов (14-16)? А они различаются не принципиально, потребление питания, да и одним пином. Вообщем без разницы
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|