Работа с USB2.0
От: Alexei_z_  
Дата: 06.12.04 12:49
Оценка:
Добрый день,
есть следующая задача
Есть программа, написанная на .Net
Эта программа должна:
1) Принимать данные с платы(своей) Объем данных большой (видеозахват)
2) Осуществлять обмен данными меньшего объема
Все это через USB 2.0 Скорость передачи данных очень критична
Подобное не делал, полный ноль в этом вопросе.

Как это делается?
где чего подчитать?
Может, есть пример какой?
В идеале хотелось бы написать managed комопоненту чтения-записи под .net, (а-ля FileStream) но не принципиально.

Все будет рабоать под Windows(2000 или XP — какой захотим, такой и будет)

Спасибо всем заранее


06.12.04 16:54: Перенесено модератором из 'Железо' — AndrewVK
Re: Работа с USB2.0
От: Alexei_z_  
Дата: 06.12.04 14:30
Оценка:
Здравствуйте, Alexei_z_, Вы писали:

A__>Добрый день,

A__>есть следующая задача
A__>Есть программа, написанная на .Net
A__>Эта программа должна:
A__>1) Принимать данные с платы(своей) Объем данных большой (видеозахват)
A__>2) Осуществлять обмен данными меньшего объема
A__>Все это через USB 2.0 Скорость передачи данных очень критична
A__>Подобное не делал, полный ноль в этом вопросе.

A__>Как это делается?

A__>где чего подчитать?
A__>Может, есть пример какой?
A__>В идеале хотелось бы написать managed комопоненту чтения-записи под .net, (а-ля FileStream) но не принципиально.

A__>Все будет рабоать под Windows(2000 или XP — какой захотим, такой и будет)


A__>Спасибо всем заранее

A__>

ниужели никто не в курсе?
Re: Работа с USB2.0
От: Аноним  
Дата: 06.12.04 14:54
Оценка:
Здравствуйте, Alexei_z_, Вы писали:

A__>Добрый день,

A__>есть следующая задача
A__>Есть программа, написанная на .Net
A__>Эта программа должна:
A__>1) Принимать данные с платы(своей) Объем данных большой (видеозахват)
A__>2) Осуществлять обмен данными меньшего объема
A__>Все это через USB 2.0 Скорость передачи данных очень критична
A__>Подобное не делал, полный ноль в этом вопросе.

A__>Как это делается?

A__>где чего подчитать?
A__>Может, есть пример какой?
A__>В идеале хотелось бы написать managed комопоненту чтения-записи под .net, (а-ля FileStream) но не принципиально.

A__>Все будет рабоать под Windows(2000 или XP — какой захотим, такой и будет)


A__>Спасибо всем заранее

A__>

А драйвера у устройств (у платы и у USB) есть?
Re[2]: Работа с USB2.0
От: Alexei_z_  
Дата: 06.12.04 15:42
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Alexei_z_, Вы писали:


A__>>Добрый день,

A__>>есть следующая задача
A__>>Есть программа, написанная на .Net
A__>>Эта программа должна:
A__>>1) Принимать данные с платы(своей) Объем данных большой (видеозахват)
A__>>2) Осуществлять обмен данными меньшего объема
A__>>Все это через USB 2.0 Скорость передачи данных очень критична
A__>>Подобное не делал, полный ноль в этом вопросе.

A__>>Как это делается?

A__>>где чего подчитать?
A__>>Может, есть пример какой?
A__>>В идеале хотелось бы написать managed комопоненту чтения-записи под .net, (а-ля FileStream) но не принципиально.

A__>>Все будет рабоать под Windows(2000 или XP — какой захотим, такой и будет)


A__>>Спасибо всем заранее

A__>>

А>А драйвера у устройств (у платы и у USB) есть?

У платы — да, конечно
Для USB — своих нет
Но в винде должны быть стандартные?
Re[3]: Работа с USB2.0
От: TarasCo  
Дата: 06.12.04 15:56
Оценка:
А>>А драйвера у устройств (у платы и у USB) есть?
A__>У платы — да, конечно
A__>Для USB — своих нет
A__>Но в винде должны быть стандартные?

нет, не должны.

Каждое устройство должно иметь свой драйвер. Стандартные драйвера есть некоторых классов устройств: для HID устройств (мыши, клавиатуры), должны быть для мультимедиа устройств (в первую очередь audio, но по могу сказать так ли это на самом деле), для контроллеров, применяемых в изветсных чипсетах (но это к Вам не относится).
Для остальных устройств интерфейс никак не специфицируется. Система дает интерфейс для драйвера устройства для прозрачной работы с устройством (этим занимается драйвер шины, но ппиложениям он не доступен).
Да пребудет с тобою сила
Re[4]: Работа с USB2.0
От: Alexei_z_  
Дата: 07.12.04 10:17
Оценка:
Здравствуйте, TarasCo, Вы писали:

А>>>А драйвера у устройств (у платы и у USB) есть?

A__>>У платы — да, конечно
A__>>Для USB — своих нет
A__>>Но в винде должны быть стандартные?

TC>нет, не должны.


TC>Каждое устройство должно иметь свой драйвер. Стандартные драйвера есть некоторых классов устройств: для HID устройств (мыши, клавиатуры), должны быть для мультимедиа устройств (в первую очередь audio, но по могу сказать так ли это на самом деле), для контроллеров, применяемых в изветсных чипсетах (но это к Вам не относится).

TC>Для остальных устройств интерфейс никак не специфицируется. Система дает интерфейс для драйвера устройства для прозрачной работы с устройством (этим занимается драйвер шины, но ппиложениям он не доступен).


А какую нибудь литературу, статьи, примеры, не посоветуете?
Я драйверов раньше не писал, вообще никаких. Но придется. Поэтому надо быстро в это все въехать хоть на каком-то уровне
Спасибо
Re[5]: Работа с USB2.0
От: Аноним  
Дата: 07.12.04 15:39
Оценка:
Здравствуйте, Alexei_z_, Вы писали:

A__>А какую нибудь литературу, статьи, примеры, не посоветуете?

A__>Я драйверов раньше не писал, вообще никаких. Но придется. Поэтому надо быстро в это все въехать хоть на каком-то уровне
A__>Спасибо
Если устройство не особо сложное, можно использовать Windriver (получится не сложнее, чем с Filestream:) ), если же хочется написать свой драйвер, то в книге тов. Oney "Programming Microsoft Windows Driver Model" работа с USB разобрана достаточно подробно.
Re: Работа с USB2.0
От: Maxim S. Shatskih Россия  
Дата: 07.12.04 20:07
Оценка:
A__>В идеале хотелось бы написать managed комопоненту чтения-записи под .net, (а-ля

Я бы забыл про .NET, и делал бы DirectShow драйвер. Преимущество — сразу совместимость со всеми апликациями видеозахвата, от MSN Messenger до тяжелых.

DirectShow драйвер для реальной железки (в отличие от виртуальной камеры) делается как KS/AVStream драйвер в ядре. В юзер моде от него только KSPROXY.AX болтается.

Сэмплы таких драйверов были в DDK, была 1394DCAM и USBшный аналог вроде как.

Еще вариант — написать юзермодную DLL драйвера Video For Windows, это старье жуткое, но пишется просто и работает во всех апликациях (DirectShow над ней эмулится автоматом средствами QCAP.DLL).
Такая DLL будет общаться с драйвером в ядре — как левая нога захочет, или ReadFile, или DeviceIoControl. В ядре — драйвер USBшной железки, безо всякого знания о DirectShow.

Только вот башки и доки к VfW драйверам у нас только в Windows 95 DDK
Занимайтесь LoveCraftом, а не WarCraftом!
Re[4]: Работа с USB2.0
От: Maxim S. Shatskih Россия  
Дата: 07.12.04 20:09
Оценка:
TC>Каждое устройство должно иметь свой драйвер. Стандартные драйвера есть некоторых классов устройств: для HID устройств (мыши, клавиатуры), должны быть для мультимедиа

Для HID, для storage (от флешек до DVD-RAM writers), в какой-то степени для сериальных портов (там только подмножество фич, для TAPI хватит, для HyperTerminal — нет), для Ethernet-over-USB — это называется Remote NDIS.

Для аудио вроде тоже, но там интерфейс слабо специфицирован, в итоге вендоры обычно пишут свой собственный драйвер, потому как системный половину фич не поддержит.
Занимайтесь LoveCraftом, а не WarCraftом!
Re: Работа с USB2.0
От: skiminok  
Дата: 08.12.04 10:03
Оценка:
Господа!
Еще один вопрос.
Как получить интерфейс USB устройства. Задача заключается в том, чтобы при подключении устройства определять, что именно подключается. Например принтер и флэшки. Класс у флэшки 8 подкласс 6. Это известно, но вот получить эго у меня никак не получается. Подскажите плиз. А лучше набор функций. Насколько я понял, первое это получение дескриптора кофигурации. А дальше-то что? Может у кого есть сорцы.
P.S. Это драйвер.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.