Форум: "Система";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c