update que para mediante los guardan dispositivos descargar cómo controladores controlador carpeta arranque actualiza windows usb driver

que - ¿Cómo programo un controlador para un dispositivo USB para la plataforma de Windows?



drivers para windows 10 (12)

Estoy buscando un dispositivo que lea los voltajes de cableado a través de una interfaz USB y devuelva los datos. ¿Cómo podría programar algo para interpretar esta información y qué idioma usaría?

editar: si ayuda, este proyecto es desarrollar un tacómetro digital para motores más antiguos que no admitan un puerto de datos completo ODB2. Por lo tanto, leerá voltajes en un circuito de CC y tendrá una interfaz gráfica precisa. ¡No tengo ni idea de por dónde empezar con todo esto, pero estoy decidido a hacerlo funcionar! es para ventanas


A menos que esté presionando su propio controlador USB en el lado del firmware, su chip probablemente tendrá un controlador para la PC. Por ejemplo, los microcontroladores PIC de Microchip vienen no solo con firmware para el PIC, sino con un controlador de Windows. Espero que otros chips con USB también tengan sus propios controladores.

Recuerde que mientras interactúa con el puerto USB directamente en el lado del firmware, en el lado de la PC todo lo que realmente interactúa es el controlador para el controlador del host.


Como todavía está buscando un dispositivo que convierta voltajes en información, le sugiero que eche un vistazo a los dispositivos que implementan una interfaz USB-HID (dispositivo de interfaz humana), como los que se encuentran aquí .

Tienen el beneficio de no requerir el desarrollo de ningún controlador de dispositivo o la instalación de controladores. Son tan plug and play como un mouse, teclado o unidad flash. La interfaz es bastante genérica, y la mayoría de los fabricantes también proporcionan las bibliotecas necesarias para leer la información del dispositivo, recibir notificaciones cuando un dispositivo se conecta o desconecta, descubre dispositivos, etc.

Además, eche un vistazo a este artículo que explica cómo usar un dispositivo HID en C #, por ejemplo.

Dave


Eche un vistazo a libusb . Está disponible para Linux y Windows.


Haga trampa y use libusb . Hice esto para un proyecto en el que he estado trabajando durante un tiempo y escribí una aplicación C ++ / wxWidgets para manejar los datos.

He estado pensando recientemente en volver a escribir la aplicación en la PC en wxPython, ya que es mucho más rápido para el desarrollo de la GUI.

¿Cómo desea mostrar / registrar los datos? Hay muchas opciones disponibles. Puede hacer cosas geniales (fácilmente) con las capacidades OpenGL de wxWidgets, ya sea en representación de datos 2D o 3D.


La mayoría de los microcontroladores han incorporado ADC, y muchos de ellos también tienen un subsistema usb incorporado. Cypress, PIC, AVR vienen a la mente. Cada vez que estoy haciendo trabajo USB para mis propios proyectos, uso pyusb y wxPython . Hacen que sea muy fácil hacer el trabajo, aunque hay una curva de aprendizaje inicial bastante dura.

Dejando de lado el desvergonzado tapón, escribí un pequeño driver de pitón con pyusb para un dispositivo USB-LCD. Puedes consultar mi código fuente aquí .


Me parece que si quieres leer los voltajes de cableado, entonces necesitas un convertidor A / D. ¿Estás haciendo tu propio convertidor A / D? Si es así, tienes algo de agradable programación de firmware para hacer en el lado del dispositivo, más que el controlador del lado del host que estás preguntando aquí. De lo contrario, vas a comprar un convertidor A / D y solo debes usar el controlador que el proveedor suministra con él.


No dices qué plataforma estás mirando. Si su objetivo es Windows, USB Revealed es una referencia increíble.


Personalmente, utilizo Microchip PIC (tienen convertidores AD / DA, puertos USB, controladores gratuitos y cargadores de arranque) y todo esto por menos de $ 4. Después de conectar un dispositivo de este tipo, obtiene un puerto COM adicional; el resto es trivial.


Su opción más fácil es, probablemente, comprar algún tipo de dispositivo de adquisición de datos comercial. Muchas empresas hacen ese tipo de cosas, pero a veces son terriblemente caras:

  1. Instrumentos Nacionales
  2. Amplicón
  3. LabJack

También puedes construir el tuyo de un kit, aunque no puedo encontrar ningún enlace para ti ahora mismo.

Si quieres algo más personalizado, puedes usar un EZ-USB o un PIC . Proporcionan controladores USB (para Windows, al menos) que le permiten interactuar con el dispositivo sin escribir controladores.

Con la mayoría de estos tiene una gran variedad de lenguajes de programación, he escrito software para comunicarme con dispositivos EZ-USB desde Visual Basic 6 en el pasado.


Si puede, sugeriría usar una biblioteca como libusb, como sugirieron Kris y Jon Cage.

Si libusb no se adapta a tus necesidades y estás desarrollando para Windows, deberías echarle un vistazo al software que ofrece Jungo . De nuevo, esto mueve el software usb al espacio de usuario en lugar de requerir el desarrollo del kernel de Windows. (Edición 3: Ilya señala en el comentario que Jungo también está disponible para Linux)

Si debe hacer algún desarrollo del kernel (ya sea Windows o Linux), entonces C es la única opción que tiene. Investigue este libro de Rubini para el desarrollo de Linux. Para el desarrollo del controlador de Windows, puedo recomendar este libro de Oney. Pero investigaría la opción libusb con preferencia al desarrollo del controlador en ambos casos.

Por cierto. Si todo lo que le interesa es poder medir los voltajes en un dispositivo usb (y escribir el código no es importante) hay muchos productos que lo harán por usted. Eche un vistazo a algunas de las ofertas de National Instruments . Estos se ocuparán del arduo trabajo del usb y la adquisición de datos y le proporcionarán una agradable interfaz de programación para usar en su aplicación.

(edit 2) También hay algunos chips de serie usb (por ejemplo, estos ) que se pueden interconectar directamente a un procesador incrustado usig solamente un uart. Por lo general, estos vienen con controladores.


Para hardware, eche un vistazo a los productos FTDI .

Si tiene hardware y desea acceder a él en Windows, recientemente descubrí WinUSB . Si eso es lo que necesita, eche un vistazo a este documento .


Además de WinUSB, libusb y Jungo, hay otra opción para programar dispositivos USB desde el modo de usuario : User-Mode Driver Framework (UMDF) .

Escribir un controlador UMDF es básicamente crear un componente COM en proceso con sus herramientas favoritas.