Interfaz de control para PICs USB-BULK (LabVIEW - C#)

En esta ocasión vamos a realizar una interfaz de control y adquisición de datos mediante puerto USB (modo "BULK Transfer") utilizando un PIC 18F2550 (puede usarse cualquier otro con función USB). A través de esta interfaz pueden realizar instrumentación virtual que les permita llevar a cabo el control de procesos externos mediante una PC, registro de datos, etc.

No voy a explicar en detalle cómo funciona la comunicación USB en modo BULK ya que hay mucho información en la web sobre el tema. Este modo se utiliza para la transmisión masiva de información, sin pérdida de datos y sin la necesidad de emular un puerto serie, como hace el modo CDC.

La idea es que puedan tener como ejemplo las distintas posibilidades de entradas y salidas (analógicas y digitales), para luego utilizar tantas como deseen en cada caso en particular. El proyecto que les voy a mostrar a modo de ejemplo presenta:

  • 2 Entradas digitales.
  • 1 Entrada analógica (10 bits).
  • 2 Salidas digitales
  • 1 Salida analógica (PWM + DAC R-C)

El esquema del mismo está incluido en el archivo adjunto y fue realizado en Proteus. Para utilizar mayor cantidad de I/O, sólo es necesario adaptar el firmware siguiendo el ejemplo dado y luego el software de acuerdo a las operaciones a realizar deseadas.

En el adjunto pueden encontrar lo siguiente:

  • Esquema básico del proyecto presentado
  • Driver
  • Firmware
  • Software LabVIEW
  • Software Visual Studio 2010 (C#)

El firmware está escrito en lenguaje C, mediante PICC (CCS) y para el software de control voy a dar 2 ejemplos, uno escrito en C# (Visual Studio 2010) y otro en LabVIEW. Ambos utilizan la dll “mpusbapi” para el control de las funciones del puerto (para LabVIEW se creó un Subvi específico para tal fin) y llevan a cabo las mismas tareas de leer las entradas (digital y analógica); y activar las salidas digitales, además de asignarle un valor al PWM de la salida analógica. Por otro lado, es requerido un driver para que el sistema operativo reconozca la interfaz, el cual también es provisto.

Vista del software de LabVIEW:

Control Interfaz USB - BULK (Labview).png

Vista del software de Visual Studio:

Control Interfaz USB - BULK (VS2010).png

BulkUSB_MN (SubVI LabVIEW):

BulkUSB_MN.png

Interfaz ejemplo mostrada en este proyecto:

Interfaz USB (Small).jpg

Les debo para la próxima el video del funcionamiento (no tengo la cam), todo lo posteado está probado y funcionando correctamente. Espero realicen sus propios proyectos de instrumentación virtual y comenten los resultados.

Saludos!
 

Adjuntos

  • Control USB-BULK MN.rar
    348.2 KB · Visitas: 1,437
Última edición:
Excelente aporte(y).
Sino es mucha molestia podrías guardar el archivo de labview en versiones anteriores a la 2011.
 
hola mnicolau gracias por el aporte , quise simularlo pero me dio un problema estoy probando en el visual c sharp express 2010 y me sale un mensaje de error hay un problema con el usbapi , si fueras tan amable de revisarlo pero aun haci se agradece la dedicacion que le das a tus proyectos.
 
Hola Cristian, cuando abras el proyecto (el de Visual Studio), no trates de ejecutarlo y simularlo ahí mismo (a mi también me tira el error de esa manera), sino directamente compilalo ("generar solución", con F6 en Visual Studio). Luego vas a la carpeta bin/release, ahí está el .exe compilado que funciona correctamente.

Saludos
 
Última edición:
Desconozco todas las capacidades de Pinguino, pero creería que para un proyecto como el que proponés necesitás mayor control sobre el código. Yo programaría el 18F2550 directo con PICC (incluso podrías llegar a necesitar algunas líneas en ASM) y luego el software en el lenguaje qué desees (podría ser VB.NET, adaptando el que publiqué en C#).

Cuando vayas adelantando algo, lo subís así te damos una mano entre todos (yo no manejo VB.NET).

Saludos
 
Última edición:
tengo otra consulta, de pronto tu sabes como podria utilizar este sistema con visual basic 2010... ya que no tengo muchos conocimientos de C#... aunque en realidad tambien sale un error en el programa que subiste y no he podido solucionarlo..

gracias otra ves mariano que estes bien..
 
Perdona, yo tengo windows 7 64 bit, dices que necesito Proteus 7.9 en adelante??
Yo tengo 7.6 quizás por eso, cuando simulo el diseño en proteus no pasa absolutamente nada. El pc no me pide buscar el driver ni nada
 
asi es felipe, la simulacion USB para 64 bits esta disponible desde proteus 7.9... puedes descargarte la version demo en la pagina de labcenter y ver los ejemplos que trae el software, luego cargas el .hex en uno de esos ejemplos y veras que funciona bien
 
Atrás
Arriba