Jump to content

    
Sign in to follow this  
Stanislav

High-Speed USB устройство

Recommended Posts

Разрабатывается довольно навороченное устройство захвата видео. Связь с PC-совместимым компьютером, работающим под Windows2K/XP предполагается осуществлять по шине USB в режиме High Speed. В качестве контроллера USB используется ISP1582 от Philips. Предположительная конфигурация девайса (не считая эндпоинта 0):

- три эндпоинта типа IN;

- один эндпоинт типа OUT.

Эндпоинты типа IN несут следующую функциональную нагрузку (пронумерованы условно):

1) Передача видео превью (картинка 360х288) в стандарте ITU-601/656 с эффективной скоростью порядка 40-45 Мбит/с. Режим - изохронный.

2) Передача видео в стандарте MPEG-2 с фиксированной скоростью порядка 4 Мбит/с. Режим - асинхронный, конкретно пока не выбран.

3) Передача побочной информации, <1 Мбит/с. Режим - interrupt.

Эндпоинт типа OUT используется для передачи служебной информации от PC к девайсу. Режим - bulk.

Таким образом, существует 4 пайпа, не считая управляющих, с суммарной эффективной скоростью передачи около 50 Мбит/с. Превью должно выводиться на экран, а другие IN пайпы предназначены для записи на диск.

В дальнейшем предполагается подключать к одному компьютеру до 4-х таких устройств.

В связи с этим возникает ряд вопросов.

1. Как правильно создать драйвера верхнего уровня для стыковки с клиентским софтом? Достаточно ли для этого использовать WinDriver USB, или есть какие-то подводные камни? Проблема усугубляется тем, что я сам, в силу определенных причин, не пишу софт под винду, а наши программисты ленивы и/или недостаточно квалифицированы, поэтому помощи от них ждать не приходится.

2. Прожует ли один USB порт суммарный поток данных ~200-240 Мбит/с, если к нему будут подключены 4 таких устройства через внешний хаб (предполагается, что корневой хаб более ничем не будет загружен)? И прожует ли этот поток сама винда?

3. Нужен ли какой-либо дополнительный софт для использования внешнего хаба?

4. Уместно ли заводить дополнительные пайпы или эндпойнты в рамках того же девайса для достижения каких-либо преимуществ?

Пока все. Простите, если вопросы покажутся несколько ламерскими - тематика для меня совсем новая.

Заранее спасибо.

Share this post


Link to post
Share on other sites

Прожует, но мильно играет роль на таких скоростях конфигурация, у меня реальная скорость была на CY7C68013 в BULK режиме 312 Мбит/с. это почти физический предел USB. С изохронными потоками не много сложнее там ситуация такая если нужной полосы пропускания на шине не будет (к примеру кто то флешку подключимт и будет копировать фильм ) то ендпоинт получит откат.

 

ДЛя хаба если он не твоей разроботки софта дополнительного не надо.

 

Скажите каких приемуществ я скажу уместно это или нет.

Share this post


Link to post
Share on other sites
Прожует, но мильно играет роль на таких скоростях конфигурация, у меня реальная скорость была на CY7C68013 в BULK режиме   312 Мбит/с.  это почти физический предел USB. С изохронными потоками не много сложнее там ситуация такая если нужной полосы пропускания на шине не будет (к примеру кто то флешку подключимт и будет копировать фильм ) то ендпоинт получит откат.

 

ДЛя хаба если он не твоей разроботки софта дополнительного не надо.

 

Скажите каких приемуществ я скажу уместно это или нет.

 

В первую очередь, естественно, более полная утилизация "полосы пропускания" USB хабов, во вторую - удобство написания софта для девайса - предполагается, что заполнение буфера IN для изохрона будет осуществляться короткими бёрстами, размер которых оределяется емкостью FIFO буфера видеодекодера (SAA7114). Однако, второе не столь важно, т.к. ISP1582 имеет двойную буферизацию, а для эндпойнта типа изохрон можно отводить до 3-х таймслотов в микрофрейме.

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

Еще повторю, что подключение других устройств к корневым USB хабам не предполагается, поэтому можно использовать всю полосу целиком.

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

Спасибо за Ваш ответ, но все же, что делать с софтом? Клиентскую часть напишут, но за все остальное наш народ упорно не желает браться, и когда спрашиваешь, что же еще им нужно, молчат, как партизаны. Хотелось бы все-таки выяснить, как можно сконструировать простейшие драйвера второго уровня, чтобы ткнуть кого следует в них лицом и заставить наконец разобраться с этим как положено.

Share this post


Link to post
Share on other sites

Я и использовал 1 ендпоит с 4х буферизацией (4*512) все было нормально, но это на CY7C68013 с вашей микрухой я не работал. По поводу драйверов, есть некие универсальные драйвера USBIO вот ссылка на них http://www.thesycon.de/deu/home.shtml с ними идеет еще демо программа с помощью которой очень легко отлаживать USB девыйсы, вот эти дрова можно заюзать к ним еще идет API. вобщем все там очень просто советую закачать.

Кому интерестно могу на FTP залить версию 2.0 ломаную.

Share this post


Link to post
Share on other sites
Прожует, но мильно играет роль на таких скоростях конфигурация, у меня реальная скорость была на CY7C68013 в BULK режиме  312 Мбит/с.  это почти физический предел USB. С изохронными потоками не много сложнее там ситуация такая если нужной полосы пропускания на шине не будет (к примеру кто то флешку подключимт и будет копировать фильм ) то ендпоинт получит откат.

 

ДЛя хаба если он не твоей разроботки софта дополнительного не надо.

 

Скажите каких приемуществ я скажу уместно это или нет.

 

Сайпресс68013 разгонял в одну трубу 26мегабайт пер секонд (два фильма слил за 50 секунд).

Кстати, количество труб влияло на скорость, только в режиме USB1.1. В 2.0, даже не заметно(хотя зависит от конфигурации компа).

На драйвере от производителя. Драйвер весьма не удобный. И больше предназначен как демонстрационный. НО! Я к нему приспособился. Говорят, новый удобней, но скорости выше 13мег не получали(сам не пользовал, не скажу).

Share this post


Link to post
Share on other sites
Прожует, но мильно играет роль на таких скоростях конфигурация, у меня реальная скорость была на CY7C68013 в BULK режиме   312 Мбит/с.  это почти физический предел USB. С изохронными потоками не много сложнее там ситуация такая если нужной полосы пропускания на шине не будет (к примеру кто то флешку подключимт и будет копировать фильм ) то ендпоинт получит откат.

 

ДЛя хаба если он не твоей разроботки софта дополнительного не надо.

 

Скажите каких приемуществ я скажу уместно это или нет.

 

Сайпресс68013 разгонял в одну трубу 26мегабайт пер секонд (два фильма слил за 50 секунд).

Кстати, количество труб влияло на скорость, только в режиме USB1.1. В 2.0, даже не заметно(хотя зависит от конфигурации компа).

На драйвере от производителя. Драйвер весьма не удобный. И больше предназначен как демонстрационный. НО! Я к нему приспособился. Говорят, новый удобней, но скорости выше 13мег не получали(сам не пользовал, не скажу).

 

USBIO дает скорость 44 метра пер секонд, программеры говорят удобный API.

 

Офф: а как на FTP заливать с помощью виндовых средств, сейчас нету натачке не одной проги для работы с FTP.

Share this post


Link to post
Share on other sites
Попробуйте Total(Windows) Commander или Far для закачки.

 

 

Они работают, но инсталяхи все дома, винт новый поставил еще не переписал ничего.

Share this post


Link to post
Share on other sites
Попробуйте Total(Windows) Commander или Far для закачки.

 

 

Они работают, но инсталяхи все дома, винт новый поставил еще не переписал ничего.

Могу кинуть на ftp Total Commander 6.53 с плагинами. весят примерно 6М.

Надо?

Share this post


Link to post
Share on other sites

Не надо всем подряд засорять FTP !!!

У меня все есть, завтра залью, сейчас некогда разыскивать устанавливать настраивать. Просто я попробывал через explorer он не хочет, ну и не надо, вечером из дому залью

Share this post


Link to post
Share on other sites
"USBIO дает скорость 44 метра пер секонд".

 

Это и на запись , и на чтение?

А какова при этом загрузка процессора? Или передача идет через DMA ?

 

Нет, это в одну сторону или запись или чтение, как внутри компа работает незнаю, а в CY7C680013 FPGA поток генерит. Точнее OUT в USB медленней немного (~35) из за винта, IN пишется по кругу в память. Так они пишут у меня реально получилось 39 польшке FPGA не выдавала, загрузка проца компьютера примерно ~50-60%, но тачка у меня слабоватая celeron 2000, 256 мозгов winXp, если мозгов по больше поставить падает гдето до 30

Share this post


Link to post
Share on other sites
А почему все-таки такая высокая загрузка процессора?

Разве не DMA используется?

 

Я думаю это оболочка много забирает котороя показывает трафик ошибки и другую информацию

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this