Как реализовать драйвер устройства USB для Windows? - PullRequest
11 голосов
/ 14 октября 2009

Как мне следует подходить к реализации драйвера устройства USB для Windows? Как я должен принимать во внимание различные версии Windows, например: - Windows XP - Виндоус виста - Windows 7

Существуют ли решения с открытым исходным кодом, которые можно использовать в качестве отправной точки? Я новичок в разработке драйверов для Windows.

У нас есть встроенное устройство с портом USB-устройства, и мы хотели бы обеспечить как можно более низкую задержку при передаче данных с уровня приложения на устройство, не жертвуя при этом пропускной способностью данных. Фактические переданные данные являются данными АЦП / ЦАП. В основном, существует много данных, которые нам нужно передать на компьютер с Windows максимально быстро.

Ответы [ 4 ]

12 голосов
/ 14 октября 2009

Нам нужна дополнительная информация об устройстве, чтобы указать вам правильное направление, но вот несколько шагов, чтобы вы начали:

  • Зарегистрируйтесь в Microsoft Connect, чтобы загрузить комплект драйверов Windows
  • Зарегистрируйтесь на osr-online , так как вы найдете отличные статьи, множество информации и группу новостей, посвященную только для драйверов Windows - это место - золотая жила
  • купить Разработка драйверов с WDF , которая поможет вам разобраться в разработке драйверов для Windows и даст вам хорошую основу для чтения статей из OSR и Microsoft
  • Надеюсь, что вы можете использовать UMDF (драйверы пользовательского режима), как вы можете использовать C ++ и просто писать код COM. Если вы делаете что-то с USB, что требует места в ядре .... у вас есть много чтения и обучения, чтобы сделать на следующий год!

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

По сути, это зависит от того, насколько сложным является ваше устройство. Какой тип драйвера вы пытаетесь написать? Файловая система? Мп3-плеер? Камера? Модем

Если вам в конечном итоге придется написать драйвер режима ядра, дайте мне знать, и я могу указать вам несколько хороших статей, а что нет.

Я также должен добавить, что примерно за 5000 долларов США вы можете купить лицензию на WinDriver , инструмент, который берет на себя все сложные вещи из разработки драйверов. Вы можете использовать код пользовательского режима C ++ или C # для связи с их драйвером, который специально создан для вашего устройства. Это путь, если у вас сжатые сроки.

2 голосов
/ 08 ноября 2012

Вы можете взглянуть на вариант Windows libusb * здесь *. На официальном сайте libusb и в Интернете есть обертки для многих языков программирования.

1 голос
/ 14 октября 2009

Если у вас есть какая-то форма контроля над устройством, пусть он реализует интерфейс, для которого Windows уже предоставляет драйверы. Например. класс USB HID (буквально Human Input Device, но не Human и Input не является обязательным) уже имеет драйверы Windows, и сверху есть разумный Win32 API. Однако скорость передачи данных не будет превышать 480 Мбит / с.

1 голос
/ 14 октября 2009
...