Как настроить драйвер для устройства USB для платформы Windows?

Я ищу устройство, которое считывает напряжения проводки через интерфейс USB и возвращает данные. Как я буду программировать что-то, чтобы интерпретировать эти данные и какой язык использовать?

редактировать: Если это поможет, этот проект должен разработать цифровой тахометр для старых двигателей, которые не поддерживают полный порт данных ODB2. Поэтому он будет считывать напряжения на цепи постоянного тока и иметь точный графический интерфейс. Я абсолютно не знаю, с чего начать все это, но я решил заставить его работать! это для окон.

Ответ 1

Обмануть и использовать libusb. Я сделал это для проекта, над которым я работал некоторое время, и написал приложение С++/wxWidgets для обработки данных.

Недавно я думал о перезаписывании приложения на ПК в wxPython, хотя как это намного быстрее для разработки графического интерфейса.

Как вы хотите отображать/регистрировать данные? Есть много вариантов. Вы можете сделать довольно классный материал (легко) с возможностями OpenGL wxWidgets, будь то представление 2D или 3D данных.

Ответ 2

Если вы можете предложить использовать библиотеку, например libusb, как предложили kris и Jon Cage.

Если libusb не подходит вашим потребностям, и вы разрабатываете для Windows, вы должны посмотреть на программное обеспечение, которое Jungo обеспечивает. Опять же, это перемещает программное обеспечение usb в пространство пользователя, а не требует разработки ядра Windows. (edit 3: Илья указывает в комментарии, что Jungo также доступен для Linux)

Если вам нужно выполнить некоторую разработку ядра (либо Windows, либо Linux), то C вполне подходит только вам. Изучите эту книгу Rubini для разработки Linux. Для разработки драйверов Windows я могу рекомендовать эту книгу Oney. Но я изучил опцию libusb, предпочитая развитие драйвера в обоих случаях.


Btw. Если все, что вас интересует, это возможность измерять напряжения на устройстве USB (и писать код не важно) есть много продуктов, которые сделают это для вас. Взгляните на некоторые из предложений National Instruments. Они будут иметь дело с тяжелой работой usb и сбора данных и дать вам хороший программный интерфейс для использования в вашем приложении.


(править 2) Существуют также некоторые USB-последовательные чипы (например, эти), которые могут быть связаны непосредственно с встроенным процессором, только для uart. Обычно они поставляются с драйверами.

Ответ 3

Посмотрите libusb. Он доступен как для Linux, так и для Windows.

Ответ 4

Так как вы все еще ищете устройство, которое преобразует напряжения в информацию, я предлагаю вам взглянуть на устройства, которые реализуют интерфейс USB-HID (интерфейс интерфейса пользователя), например найдено здесь.

Они имеют преимущество в том, что не требуется разработка драйверов устройств или установки драйверов. Они подключаются и воспроизводятся как мышь, клавиатура или флэш-накопитель. Интерфейс довольно общий, и большинство производителей также предоставляют необходимые библиотеки для чтения информации с устройства, уведомляются, когда устройство подключено/выключено, обнаруживают устройства и т.д.

Кроме того, посмотрите эту статью, в которой объясняется, как использовать, например, HID-устройство в С#.

Dave

Ответ 5

Мне кажется, что если вы хотите прочитать напряжение в проводке, вам нужен аналого-цифровой преобразователь. Вы делаете свой собственный аналого-цифровой преобразователь? Если это так, у вас есть неплохое программирование прошивки на стороне устройства, больше, чем драйвер хоста, о котором вы спрашиваете. В противном случае вы собираетесь купить аналого-цифровой преобразователь, и вы должны просто использовать драйвер, который поставщик поставляет вместе с ним.

Ответ 6

Если вы не будете бить свой собственный USB-драйвер со стороны прошивки, ваш чип, вероятно, будет оснащен драйвером для ПК. Например, микроконтроллеры PIC от Microchip поставляются не только с прошивкой для ПОС, но и с драйвером Windows. Я ожидаю, что другие чипы с поддержкой USB также будут иметь свои собственные драйверы.

Помните, что, когда вы взаимодействуете с USB-портом непосредственно со стороны прошивки, на стороне ПК все, с чем вы фактически взаимодействуете, является драйвером для хост-контроллера.

Ответ 7

Самый простой способ - это купить какое-то готовое устройство для сбора данных. Многие компании делают такие вещи, но иногда они пугающе дороги:

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

Если вы хотите что-то более обычное, вы можете использовать EZ-USB или PIC. Они предоставляют USB-драйверы (по крайней мере для Windows), которые позволяют вам взаимодействовать с устройством без написания драйверов.

С большинством из них у вас довольно широкий выбор языков программирования, я написал программное обеспечение для связи с устройствами EZ-USB с Visual Basic 6 в прошлом.

Ответ 8

Большинство микроконтроллеров имеют встроенный АЦП, а тонна также имеет встроенную подсистему usb. Cypress, PIC, AVR приходят на ум. Всякий раз, когда я делаю работу с USB для своих собственных проектов, я использую pyusb и wxPython. Им очень легко выполнить эту работу, хотя есть довольно суровая начальная кривая обучения.

Бесстыдной самостоятельной вставкой в ​​сторону, я написал небольшой драйвер python с pyusb для устройства USB-LCD. Вы можете проверить мой исходный код здесь.

Ответ 9

Я лично использую микрочипы PIC - у них есть AD/DA-конвертеры, USB-порты, бесплатные драйверы и загрузчики - и все это для менее 4 долларов. После подключения такого устройства вы получаете один дополнительный COM-порт - остальное тривиально.

Ответ 10

Вы не говорите, на какой платформе вы смотрите. Если вы ориентируетесь на Windows, USB Revealed является замечательной ссылкой.

Ответ 11

Для аппаратного обеспечения посмотрите FTDI.

Если у вас есть оборудование и вы хотите получить к нему доступ в Windows, я недавно обнаружил WinUSB. Если это вам нужно, посмотрите этот белый документ.

Ответ 12

В дополнение к WinUSB, libusb и Jungo есть еще один вариант для программирования USB-устройств из пользовательского режима - Рамка драйверов пользовательского режима (UMDF).

Написание драйвера UMDF в основном создает COM-компонент в процессе с вашими любимыми инструментами.