Red de conocimiento informático - Problemas con los teléfonos móviles - Programa de escritura VB para comunicarse con la tarjeta de captura USB

Programa de escritura VB para comunicarse con la tarjeta de captura USB

Uso de VB para realizar la transmisión de datos de dispositivos con interfaz USB

Este artículo presenta la interfaz hombre-máquina en dispositivos USB, los puntos clave y los métodos de comunicación entre los dispositivos HID y el host. Se explicó en detalle el método de llamada a funciones APl relevantes en VB y se presentó el método de diseño y desarrollo de un sistema de adquisición de datos basado en bus USB, utilizando el protocolo USB2.0. Este sistema describe principalmente la comunicación del dispositivo con interfaz hombre-máquina desde la perspectiva del dispositivo, así como el formato de informe utilizado para el intercambio de datos con el host. Las aplicaciones pueden utilizar cualquier lenguaje de programación que tenga acceso a funciones API para llamar funciones de ventana y comunicarse con el dispositivo USB. Domine los procedimientos de comunicación entre dispositivos USB y computadoras para lograr la identificación automática de dispositivos USB. Abre un nuevo camino para la comunicación entre los sistemas de adquisición de datos y las computadoras.

En los últimos años, con la popularidad de una gran cantidad de computadoras personales que admiten USB, USB se ha convertido gradualmente en una interfaz estándar para PC. En el lado del host, casi 100 de las últimas PC admiten USB; en el lado periférico, la cantidad de dispositivos que utilizan interfaces USB también aumenta día a día, como cámaras digitales, escáneres, joysticks, cintas y unidades de disquete, dispositivos de imágenes, Impresora, teclado, ratón, etc.

2. El proceso de selección de un controlador USB en el sistema Windows

Cuando Windows detecta un nuevo periférico USB, una cosa que debe hacer es averiguar qué aplicación de controlador de dispositivo se debe utilizar. para comunicarse con el dispositivo y luego cargar el controlador seleccionado. Este es el trabajo del Administrador de dispositivos de Windows, que utiliza clases, instaladores de dispositivos y archivos INF para encontrar esta coincidencia.

El archivo INF es un archivo de texto que contiene información que ayuda a Windows a identificar el dispositivo. El archivo le dice a Windows qué controlador usar, qué información almacenar en el registro, etc.

3. Diseño e implementación de comunicación entre Visual Basic y dispositivos USB

Cómo utilizar el lenguaje VB para acceder a la interfaz de comunicación serie. Windows implementa muchas tareas complejas relacionadas con la comunicación en serie en el nivel inferior, proporcionando a los programadores una interfaz de programación que es relativamente fácil de dominar. Por ejemplo, Windows coloca automáticamente todos los caracteres recibidos en el búfer de recepción y todos los caracteres enviados también van al búfer de envío. Mientras el programa esté inactivo, el programa puede leer el búfer de recepción para obtener datos o enviar datos al búfer de envío.

1. El proceso del host que busca dispositivos USB

La primera clase de dispositivo periférico USB compatible con Windows es el dispositivo de interfaz hombre-máquina. HID es la abreviatura en inglés de HUMANINTER-FACE DEVICE dispositivo de interfaz hombre-máquina. Se refiere a un dispositivo que interactúa directamente con las personas. Como por ejemplo ratón, teclado, etc. Para PC que ejecutan WINDOWS98 u otras versiones superiores del sistema operativo, además de proporcionar controladores de bajo nivel para dispositivos USB comunes, el sistema también proporciona controladores completos para algunos dispositivos HID por separado. Las aplicaciones se pueden integrar fácilmente con el HID interno del sistema operativo. comunicación. Esto hace que los dispositivos USB compatibles con HID sean fáciles de desarrollar y ejecutar. En otras palabras, si queremos implementar un dispositivo USB HID, no necesitamos desarrollar nuestro propio controlador en Windows. HID no tiene que ser un tipo de periférico estándar. El único requisito es que los datos intercambiados se almacenen dentro de la estructura del mensaje y el firmware del dispositivo debe admitir el formato del mensaje. Cualquier dispositivo que funcione dentro de este límite puede convertirse en un HID, como termómetros, voltímetros, lectores de tarjetas, etc.

2. El proceso de llamar a funciones API en VB

(1) Declaración: La siguiente es una declaración de que Visual Basic usa la función API WriteFile: puede usar esta función para escribir datos a HID (también pueden ser archivos y otros dispositivos).

Función de declaración pública WriteFile Lib_"kernel32"_

(Por Val hFile mientras, _ByReflpBuffer como byte, _Por Val nNumberOfBytes para escribir mientras, _ByRef lpNumberOfBytesWritten mientras, _ByVal lpOvefiapped mientras)_As Long

(2) Identificar el proceso HID Función de declaración pública HidD_GetHidGuid Lib_"hid.dll"_(ByRefHidGuid As GUID)Siempre

3.Proceso de datos de Visual Basic

( 1) Leer datos en el dispositivo

Función de declaración pública WriteFile Lib "kernel32"_(ByVal hFile As Long, _ByReflpBuffer As Byte_ByValnNumberOfBytesToWrite As Long, _ByRefnNumberOfBytcsWritten As Long, _ByVal lpOvefiapped As Long)_As Long

(2) Leer datos del dispositivoDeclarar función ReadFile Lib_"kernel32"_(ByValhFile As Long, _ByReflpBuffer As Byte, _ByValnNumberOfBytesToRead As Long, _ByReflpNumberOfBytesRead As Long, _lpOvefiapped As Long)_As Long

Leer y escribir informe Al ingresar al búfer de mensajes, el primer byte es el ReportID, seguido de los datos del mensaje. El búfer de paquetes tiene ocho paquetes de forma predeterminada y está dispuesto en un anillo. Debido a que la lectura y escritura de datos ocurre cuando el host sondea el dispositivo y el dispositivo no lo activa para generar una interrupción de hardware, si no se pueden leer y escribir a tiempo, los datos nuevos sobrescribirán los datos antiguos, lo que provocará la pérdida de mensajes. Los mensajes característicos deben usarse cuando los datos se leen y escriben con frecuencia. Puede garantizar que HID no transmitirá datos nuevos cuando los datos del mensaje no cambien.

Cuando ya no se utilice SetupDiGetClassDevs, utilice la función anterior para liberar la matriz hDevInfo que devuelve. También debe utilizar la función CloseHandle, que es una función API muy general que se puede utilizar para cerrar la comunicación.

IV.Conclusión

La programación real muestra que usar VB para desarrollar dispositivos USB HID es una forma muy conveniente y rápida. No es necesario escribir controladores subyacentes y la mayor parte de la API. Las funciones involucradas son bien conocidas por todos. Pero también debe tenerse en cuenta que la clase HID solo admite transmisión de control e interrupción de transmisión. Las transferencias de control generalmente no se utilizan para transferencias de datos, mientras que las transferencias de interrupción se caracterizan por una latencia máxima garantizada, que es el tiempo entre transacciones. No garantiza la velocidad de transmisión, sino que garantiza que el tiempo entre cada transacción no excederá el retraso máximo. Por lo tanto, la transmisión interrumpida es adecuada para ocasiones en las que la cantidad de datos no es demasiado grande, pero es necesario transmitirla rápida y rápidamente, y los requisitos en tiempo real son altos. Para la transmisión con una cantidad relativamente grande de datos, no es apropiado utilizar la transmisión interrumpida. Por lo tanto, las ocasiones de aplicación de los equipos HID también deben usarse de manera flexible de acuerdo con esta característica.