реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> USB 2.0 устройство на USB 3.0 хосте, Проблема совместимости?
loginser
сообщение Jun 14 2011, 08:22
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 9-06-08
Пользователь №: 38 171



Имеется USB 2.0 устройство на CY7C68013a с собственным драйвером. Работает с USB 2.0 хостом прекрасно, но с контроллером USB 3.0 (NEC) работать корректно отказывается, суть в следующем: устройство настроено на один конфигурационный дескриптор (Configuration Descriptor), один интерфейс и 4 Alternate Settings. При задании Alternate Settings #0 и #1 все проходит нормально(устройство подключено через анализатор USB), но при #2 и #3 драйвер возвращиется с ошибкой 0x57(ERROR_INVALID_PARAMETER). Ограничения на количество Alternate Settings в документации к USB 3.0 и 2.0 я не нашел. Это баг нового 3.0 стека или все же есть ограничения? Спасибо
Go to the top of the page
 
+Quote Post
-Al-
сообщение Jun 20 2011, 03:53
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 330
Регистрация: 10-06-05
Из: Россия, Москва
Пользователь №: 5 894



Странно это. USB3.0 это физически другой интерфейс (дополнительно две пары контактов). И пока их нет работать все должно по старому. Может все-таки в драйвере проблема?
Go to the top of the page
 
+Quote Post
loginser
сообщение Jun 22 2011, 09:23
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 9-06-08
Пользователь №: 38 171



Проблему я нашел. Я использую BULK пакеты размером 1024 и на USB 2.0(всех) контроллерах мое устройство работает отлично, но похоже что драйвер контроллера USB 3.0 жестко проверяет это условие и возврашиет ERROR_INVALID_PARAMETER. Как решить подобную проблему я незнаю к сожалению. -Al- спасибо за ответ.
Go to the top of the page
 
+Quote Post
AndreyS
сообщение Jun 22 2011, 16:52
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



Цитата(loginser @ Jun 22 2011, 13:23) *
Проблему я нашел. Я использую BULK пакеты размером 1024 и на USB 2.0(всех) контроллерах мое устройство работает отлично, но похоже что драйвер контроллера USB 3.0 жестко проверяет это условие и возврашиет ERROR_INVALID_PARAMETER. Как решить подобную проблему я незнаю к сожалению. -Al- спасибо за ответ.


Добрый день.

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

У меня есть подозрение что это шалит драйвер usbd.sys под виндой.

Потому как обнаружили в своей системе следующую проблему.
При некоторых обстоятельствах (одно из них, 100% приводящее к этой проблеме, это огромная помеха по шине USB соответственно ведущая к потери пакетов) происходит как бы зависание USB устройства в операционной системе (физически же само исполнительное устройство device продолжает нормальное функционирование, подвисает USB шина). Это подвисание может быть кратковременным, а может быть длительным. В таком случае спасает reset_port с abort_pipe. Но вот в этот момент подвисания любой запрос к драйверу usbd.sys (посредством драйвера ezusb.sys) не приводит в появлению данных на самой шине. Производили сканирование аппаратным анализатором и обнаружили эту проблему. На шине кроме SOF пакетов ничего больше нет. А в диспетчере устройств оно доступно. Происходит это редко (при длительной эксплуатации USB шины в течении нескольких суток), но может залипнуть так, что спасает только перезагрузка. Причем вылезла эта проблема в лабораторных условиях, т.е. помех по USB шине небыло, сканер их не показал.

Рысканье по инету привело к тому что в разных виндах требования на максимальный объем запрашиваемой информации в драйвере usbd.sys разный. В нашем случае мы удовлетворяем этому требованию под винду ХП, 2000 и 7 с вистой. Но само это наводит на мысль возможных глюках в работе usbd.sys под виндой.


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
loginser
сообщение Jul 8 2011, 09:40
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 9-06-08
Пользователь №: 38 171



AndreyS Microsoft резко заявили, что они тут не причем и чтобы я обращался к производителю контроллера(так как они пишут свои дрова и проблема якобы на их стороне). По вашей проблеме ничего сказать не могу, так как изначально я написал свой драйвер и подобных проблем ни на одной ОС пока к счастью не наблюдалось, устройство работает сутками безперебойно (45 МБ в секунду загрузка). Может обратить внимание на Управление питанием в ОС и обработку состояний устройства? Я в своем устройстве вообще запретил STANDBY состояние.

Сообщение отредактировал loginser - Jul 8 2011, 09:41
Go to the top of the page
 
+Quote Post
leva87
сообщение Jul 27 2011, 12:49
Сообщение #6





Группа: Участник
Сообщений: 12
Регистрация: 11-05-08
Пользователь №: 37 409



Проблема решается очень легко, по спецификации в BULK максимальный размер пакета 512 байт, почему-то USb 2.0 хосты этот параметр проглатывают и не пищат об ошибке. Однако хост USB 3.0 более строг к параметрам и такое не пропускает.

Вам достаточно изменить размер пакета на 512 байт во всех BULK endpoints

Однако еще обнаружил, что при работе через порт USB 3.0 у меня упала пропускная способность, приблизительно на 10-15%. С чем это связано понять пока не смог.
Go to the top of the page
 
+Quote Post
loginser
сообщение Oct 6 2011, 10:06
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 9-06-08
Пользователь №: 38 171



leva87 Как раз уменьшение размера пакета невозможно, так как у нас не будет обратной совместимости с устройствами и софтвером что мы уже продали. Да и 1024 было введено как раз для скорости.
Go to the top of the page
 
+Quote Post
vladisslav
сообщение Apr 14 2012, 14:27
Сообщение #8





Группа: Новичок
Сообщений: 8
Регистрация: 4-04-12
Пользователь №: 71 185



Цитата(AndreyS @ Jun 22 2011, 20:52) *
Видимо все это проверялось под ОС Винда. Очень хотелось бы услышать результаты таких исследований под любой другой ОС.

Проверил под linux (Linux lucid 3.0.0-19-generic-pae #32~lucid1-Ubuntu SMP Mon Apr 9 18:03:59 UTC 2012 i686 GNU/Linux)
Кроме косяка с буфером (я пытался послать 2048 URB за один вызов) и ругани на bInterval==0 в дескрипторе (поставил 1, так странно округлялось до 32768 и тормозило) никаких проблем не обнаружено.
Linux ругается на hi-speed устройство с размером bulk endpoint 1024, подключенное к super speed контроллеру так же как и при подключении к hi-speed контроллеру:
CODE
[ 1959.091020] usb 3-1: new high speed USB device number 12 using xhci_hcd
[ 1959.107170] usb 3-1: config 1 interface 0 altsetting 0 bulk endpoint 0x2 has invalid maxpacket 1024
[ 1959.107176] usb 3-1: config 1 interface 0 altsetting 0 bulk endpoint 0x86 has invalid maxpacket 1024
.....
[ 2058.739558] usb 1-1.1.3: new high speed USB device number 10 using ehci_hcd
[ 2058.831708] usb 1-1.1.3: config 1 interface 0 altsetting 0 bulk endpoint 0x2 has invalid maxpacket 1024
[ 2058.831713] usb 1-1.1.3: config 1 interface 0 altsetting 0 bulk endpoint 0x86 has invalid maxpacket 1024

Скорость при подключении к hi-speed и увеличении размера bulk endpoint с 512 до 1024 растет с 42.05 Мб/с до 45.99 Мб/с.
При подключении к super speed и увеличении размера bulk endpoint с 512 до 1024 скорость увеличивается меньше с 42.52 Мб/с до 44.23 Мб/с.
Подключение к hi-speed контроллеру через китайский хаб и длинный удлинитель.
Подключение к super speed контроллеру через длинный удлинитель (3 метра).

Super speed контроллер ASmedia, VID:PID 1b21:1042.
Hi-speed контроллер интегрированный в чипсет Intel Corporation Cougar Point USB Enhanced Host Controller (rev 05).
Go to the top of the page
 
+Quote Post
Sergey_Bekrenyov
сообщение Apr 21 2012, 06:33
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 14-12-10
Из: Королёв
Пользователь №: 61 599



Я только начинаю работать с USB3 ...

А разве проблематично анализировать какое подключение USB2 или USB3 и соответственно менять размер пакета? Скорость скоростью, но работоспособность дороже.
Можно конечно как в GigE Vision рекомендовать ставить только Intel Pro ...
Go to the top of the page
 
+Quote Post
loginser
сообщение Apr 23 2012, 09:43
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 9-06-08
Пользователь №: 38 171



К сожалению для некоторых устройств как раз важна скорость. В нашем случае еще каждый пакет несет заголовки к данным, что увеличивает оверхэд.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 02:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01453 секунд с 7
ELECTRONIX ©2004-2016