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

 
 
> Low Speed USB... Как получается 1,5 mbit per sec?, Все калькуляторы поломал
prottoss
сообщение Nov 6 2006, 17:01
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Всем доброго времени суток!

Объясните не разумному, как получается на Low Speed USB Device получить цифру в 1,5 мбит в секунду? Судя спецификации USB минимальная пауза между фреймами не может быть ниже 10 милисекунд. При этом максимальный размер полезных данных - 8 байт. Если я правильно считаю, то получается не более 100 пакетов по 8 байт - 800 байт в сек??? Или я чегойто не догоняю?

Сенькс)


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Седой
сообщение Nov 8 2006, 09:51
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806



Цитата
Еще вопросик. Хочется вот мне, чтоб у меня девайс видился как два, или три, или четыре СОМ-порта (USB CDC класс). Для этого, я так понимаю, надо создать несколько интерфейсных дескрипторов, для каждого интерфейса свои pipe? Но как потом каждый порт в inf-файле описывать?


Такое устройство - composite device.
( как с ним работать см.
http://msdn.microsoft.com/library/default.....asp?frame=true
)
Для composite device драйвер не нужен, и не нужно его прописывать в INF файле. Главное чтобы VID/PID вашего устройства не совпадал с уже зарегистрированными системой и устройство имело несколько интерфейсов. Драйвер поставится автоматически.

С интерфейсами поступать нужно так:

Если интерфейс вашего устройства реализует стандартный класс и его поддерживает система, то его прописывать в INF файле не нужно. Система поставит его сама.

Если интерфейс нестандартного класса, то его нужно прописать в секции [Models] INF файла:

%MydeviceDesc% = Mydevice, USB\VID_vvvv&PID_pppp\MI_mm

где vvvv - номер VID, pppp - номер PID, mm - номер интерфейса MyDevice, равный значению поля bInterfaceNumber дескриптора интерфейса.

Для уcтройств стандартных классов ( и не только), реализующих несколько интерфейсов, а таким является USB CDC в полной реализации, дело несколько сложнее - необходимо в устройстве создать Interface Association Descriptors (IAD) см.
http://msdn.microsoft.com/library/default....e130efc.xml.asp

PS. В последних версиях WDK появились дополнительные возможности, но я детально их не изучал.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 14 2007, 09:51
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Седой @ Nov 8 2006, 13:51) *
Цитата
Еще вопросик. Хочется вот мне, чтоб у меня девайс видился как два, или три, или четыре СОМ-порта (USB CDC класс). Для этого, я так понимаю, надо создать несколько интерфейсных дескрипторов, для каждого интерфейса свои pipe? Но как потом каждый порт в inf-файле описывать?


Такое устройство - composite device.
( как с ним работать см.
http://msdn.microsoft.com/library/default.....asp?frame=true
)
...

Для уcтройств стандартных классов ( и не только), реализующих несколько интерфейсов, а таким является USB CDC в полной реализации, дело несколько сложнее - необходимо в устройстве создать Interface Association Descriptors (IAD) см.
http://msdn.microsoft.com/library/default....e130efc.xml.asp

PS. В последних версиях WDK появились дополнительные возможности, но я детально их не изучал.
Что то ни как не получается сделать правильный дескриптор, то четыре устройства видятся, то два, но второе не работает. Вот что получается...

Для USB CDC ACM класса необходимо определить два интерфейса. Правильно? Что я и делаю. Перед определением интерфейсов ставлю IAD для первой функции, в нем прписываю номер первого интерфейса 0, кол. интерфейсов 2, далее идет все как для USB CDC ACM. Далее ставлю второй IAD, где номер первого интерфейса 2, кол. интерфейсов 2. Далее опять стьандартный для USB CDC ACM набор. Перед все этим венегретом идет, естественно конфиг дескриптор, в котором я указываю количество интерфейсов. А вот тут траблы, мне пока не понятные.

Если ставлю колю интерфейсов 4 (но их же так и есть???), то ОС видит 4 -е устройства, еслди ставлю 2 (может теперь по кол. IADов???), то винда видит два, как мне и хочется, но второй устанавливается с ошибкой, и в добавок, и первый не работает!!!

В чем траблы???

Спасибо!


--------------------
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 17:05
Рейтинг@Mail.ru


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