Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.21;
Скачать: CL | DM;

Вниз

USB : С чего начать?   Найти похожие ветки 

 
Ega23   (2003-02-27 15:04) [0]

Господа!
Есть ли в Windows (а точнее в Win2000) стандартный драйвер (dll, набор API-функций) для работы с USB?
Где можно почитать обо всем этом поподробнее (и существует ли в природе такое описание), желательно по-русски (по-английски просто раза в 3 дольше будет :-) )?
Буду рад ЛЮБЫМ отзывам!

Олег.


 
Слесарь Матерящийся ©   (2003-02-27 15:25) [1]

Там есть целая подсистема для поддержки USB. Прочитать можно в докумендации к Windows DDK или в MSDN. Поиск по ключевым соловам "USB Driver Stack".

И нужно учесть, что для user-mode никакого API для управления USB девайсами (в общем случае) не предусмотрено - всё делается через драйверы.

По-русски, увы информации по интересующему вас вопросу просто НЕТ.
Хотя, можно сходить на форумы к электронщикам (www.gaw.ru, etc), может они знают...


 
Ega23   (2003-02-27 15:55) [2]

Давайте я попробую сформулировать проблему поточнее.
Разрабатывается новое USB устройство - считыватель Proximity карт. На верхнем уровне требуется набор из 3-х команд :
1. Получить статус устройства
2. Считать буфер устройства.
3. Очистить буфер устройства.

Если бы устройство работало через COM-порт, то никаких пробем: CreateFile и вперёд.
Есть ли какая-нибудь похожая функция для USB, или всё-таки придётся писать свой драйвер?
Всё дело в том, что в нашем проекте я занимаюсь клиентской частью БДб а с драйверами никогда дела не имел. Поэтому я просто теряюсь от этой задачи, не знаю с чего начать.


 
Слесарь Матерящийся ©   (2003-02-27 16:23) [3]

Считыватель карт - прекрасно! Но драйвер придётся писать обязательно. (Ну никак не решить проблему без него! Нет таких способов... Кроме шуток!)
И потом из клиентского приложения сделать CreateFile и спокойно работать с девайсом через свой драйвер с помощью DeviceIoControl().

Вообще, если опыта с устройствами USB нет никакого, для начала лучше:
1. Заняться изучением интерфейса. Описание USB1.1 можно взять на www.usb.org. Практически, программисту нужна только глава #9 из него. Остальное для общего развития :)
2. Изучить, как система поддерживает устройства USB - по документации Windows DDK. Это совсем не сложно.
3. Посмотреть исходники DDK - (bulkusb.sys)
4. Позапускать тестовые утилиты USB: Usb Compliance Test, к примеру (лучше старый), на разных устройствах (мышки, web-камеры, etc; в конце концов, на вашем считывателе карт, если он уже существует как устройство), посмотреть, понаблюдать, поэкспериментировать.

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

Могу добавить только одно: технологию создания драйверов для устройств USB можно освоить "с нуля" примерно за месяц. Но - только самостоятельной работой.


 
Ega23   (2003-02-27 16:56) [4]

Направление работы ясно, огромное спасибо!
Но в таком случае у меня остаются 2 вопроса:
1. С www.usb.org спецификацию я скачал пару дней назад, но она на USB 2.0. Честно говоря, я не совсем разобрался в различиях спецификаций на 2.0 и более младших. Это принципиально или нет (Вы писали "Описание USB1.1 можно взять...")?
2. Что бы Вы могли посоветовать из документации (если MSDN, то ключевое слово) по архитектуре драйверов в Win2000 вообще? Просто приходится перелопачивать дикое количество ненужной (а может и нужной, who knows?) информации, когда не знаешь что искать.


 
Слесарь Матерящийся ©   (2003-02-27 17:24) [5]

Документацию на шину USB можно взять версии 1.1
USB 2.0 поддерживает т.н. High speed mode - высокоскоростной режим, но ширпотребовские микроконтроллеры его не поддерживают.
У вас будет либо low speed, либо full speed, а эти режимы регламентированы спецификацией USB1.1

В MSDN раздел:
Windows Development --> Driver Development Kit --> System Support For Buses --> USB.

В Windows 2000 DDK соответствующий раздел:
Kernel - mode drivers --> Design guide --> USB drivers.


 
Ega23   (2003-02-28 09:47) [6]

ОК, попробую. Огромное спасибо.



Страницы: 1 вся ветка

Текущий архив: 2003.04.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
1-67328
ws
2003-04-09 11:36
2003.04.21
Как сделать программно скролл в TMemo?


6-67432
O-LG
2003-02-19 23:29
2003.04.21
Подскажите пожалуйста как в TServerSocket получить указатель


14-67479
MsGuns
2003-04-01 20:28
2003.04.21
1С форэва !


1-67329
denis24
2003-04-09 11:50
2003.04.21
Потоки


14-67564
Евгения
2003-04-04 21:48
2003.04.21
Описание проекта??!!??