martes, 25 de mayo de 2010

COMUNICACIÓN CON MICROCONTROLADOR A TRAVÉS DEL PUERTO USB

Resumen
Se describe el proceso de implementación de un sistema (hardware, software) de adquisición de datos y comunicación USB con microcontrolador PIC.

Palabras clave
USB, adquisición de datos, instrumentación

Abstract
Implementation process (hardware, software) is described for data acquisition and communication with PIC microcontroller through USB protocol.

Keywords
USB, data acquisition, instrumentation


1. Introducción

Este proyecto se plantea debido a la necesidad de profundizar en el estudio de los sistemas de comunicación con dispositivos periféricos y adquisición de datos por computador en el Centro de Automatización Industrial del SENA Regional Caldas y ponerlos en funcionamiento obteniendo el mejor provecho de recursos los disponibles.


2. Bus serie universal:
El Universal Serial Bus (bus universal en serie) o Conductor Universal en Serie (CUS), abreviado comúnmente USB, es un puerto que sirve para conectar periféricos a una computadora.
Fue creado en 1996 por siete empresas: IBM, Intel, Northern Telecom, Compaq, Microsoft, Digital Equipment Corporation y NEC.
El diseño del USB tenía en mente eliminar la necesidad de adquirir tarjetas separadas para poner en los puertos bus ISA o PCI, y mejorar las capacidades plug-and-play permitiendo a esos dispositivos ser conectados o desconectados al sistema sin necesidad de reiniciar. Sin embargo, en aplicaciones donde se necesita ancho de banda para grandes transferencias de datos, o si se necesita una latencia baja, los buses PCI o PCIe salen ganando. Igualmente sucede si la aplicación requiere de robustez industrial. A favor del bus USB, cabe decir que cuando se conecta un nuevo dispositivo, el servidor lo enumera y agrega el software necesario para que pueda funcionar (esto dependerá ciertamente del sistema operativo que esté usando el computador).

El USB no puede conectar los periféricos porque sólo puede ser dirigido por el drive central así como: ratones, teclados, escáneres, cámaras digitales, teléfonos móviles, reproductores multimedia, impresoras, discos duros externos entre otros ejemplos, tarjetas de sonido, sistemas de adquisición de datos y componentes de red. Para dispositivos multimedia como escáneres y cámaras digitales, el USB se ha convertido en el método estándar de conexión. Para impresoras, el USB ha crecido tanto en popularidad que ha desplazado a un segundo plano a los puertos paralelos porque el USB hace mucho más sencillo el poder agregar más de una impresora a una computadora personal.

Algunos dispositivos requieren una potencia mínima, así que se pueden conectar varios sin necesitar fuentes de alimentación extra. La gran mayoría de los concentradores incluyen fuentes de alimentación que brindan energía a los dispositivos conectados a ellos, pero algunos dispositivos consumen tanta energía que necesitan su propia fuente de alimentación. Los concentradores con fuente de alimentación pueden proporcionarle corriente eléctrica a otros dispositivos sin quitarle corriente al resto de la conexión (dentro de ciertos límites).
En el caso de los discos duros, es poco probable que el USB reemplace completamente a los buses (el ATA (IDE) y el SCSI), pues el USB tiene un rendimiento más lento que esos otros estándares. Sin embargo, el USB tiene una importante ventaja en su habilidad de poder instalar y desinstalar dispositivos sin tener que abrir el sistema, lo cual es útil para dispositivos de almacenamiento externo. Hoy en día, una gran parte de los fabricantes ofrece dispositivos USB portátiles que ofrecen un rendimiento casi indistinguible en comparación con los ATA (IDE). Por el contrario, el nuevo estándar Serial ATA permite tasas de transferencia de hasta aproximadamente 150/300 MB por segundo, y existe también la posibilidad de extracción en caliente e incluso una especificación para discos externos llamada eSATA.

Los dispositivos USB se clasifican en cuatro tipos según su velocidad de transferencia de datos:
• Baja velocidad (1.0): Tasa de transferencia de hasta 1,5 Mbps (192 KB/s). Utilizado en su mayor parte por dispositivos de interfaz humana (Human interface device, en inglés) como los teclados, los ratones, hornos microondas y artículos del hogar.
• Velocidad completa (1.1): Tasa de transferencia de hasta 12 Mbps (1,5 MB/s), según este estándar pero se dice en fuentes independientes que habría que realizar nuevamente las mediciones. Ésta fue la más rápida antes de la especificación USB 2.0, y muchos dispositivos fabricados en la actualidad

• trabajan a esta velocidad. Estos dispositivos dividen el ancho de banda de la conexión USB entre ellos, basados en un algoritmo de impedancias LIFO.
• Alta velocidad (2.0): Tasa de transferencia de hasta 480 Mbps (60 MB/s) pero por lo general de hasta 125Mbps (16MB/s). Está presente casi en el 99% de los ordenadores actuales. El cable USB 2.0 dispone de cuatro líneas, un par para datos, una de corriente y una de toma de tierra.
• Super alta velocidad (3.0): Actualmente se encuentra en fase experimental y tiene una tasa de transferencia de hasta 4.8 Gbps (600 MB/s). Esta especificación será diez veces mas veloz que la anterior 2.0 y será lanzada a mediados de 2009 por Intel, según se estima, o quizá por otra empresa de Hardware, de acuerdo con información recabada de Internet; Aunque actualmente cualquier distribución GNU/Linux es capaz, de soportar el nuevo estándar sin embargo, aún no hay hardware disponible.1 La velocidad del bus será diez veces más rápida que la del USB 2.0, debido a que han incluido 5 conectores extra, desechando el conector de fibra óptica propuesto inicialmente, y será compatible con los estándares anteriores. Se espera que los productos fabricados con esta tecnología lleguen al consumidor entre 2009 y 2015.


4. Descripción del proyecto

El proyecto consiste en intercambiar información con un dispositivo periférico programado (microcontrolador) a través del puerto USB estándar del PC. El dispositivo recibirá los comandos adecuados y podrá controlar el estado de un puerto de salidas digitales y comunicar el estado del un puerto de entradas digitales y una o varias entradas análogas, pudiendo ser monitoreado continuamente a través de la comunicación con el PC.

Este programa está configurado para intercambiar información directamente con el dispositivo y mostrar los resultados gráficamente.


Debido a la alta velocidad de la comunicación USB, podemos considerarla a la hora de desarrollar aplicaciones industriales como instrumentación y automatización de procesos.

Tabla comparativa de velocidades de diferentes interfaces

HERRAMIENTAS UTILIZADAS

Microcontrolador: PIC 18F4550
Software: MPLab 8.10, MCHPFSUSB, MPLAB-C18-Student Edition-v3_16 – Instaladores de programa ubicados en la carpeta “Tools Microchip”
Procedimiento: instalar MPLab 8.10, instalar luego MPLAB-C18 activando las casillas de verificación en la ventana del programa de instalación, instalar MCHPFSUSB.

Una vez programado el microcontrolador (Programa PIC_USB.hex ubicado en la carpeta “PIC”) y realizado el montaje del circuito prosiga a conectarlo al puerto USB del PC y siga el procedimiento de instalación de hardware nuevo indicándole al asistente la ubicación del controlador de dispositivo (mchpcdc.inf):


El objetivo es implementar una comunicación bidireccional serie, Communications Devices Class, entre el PIC y cualquier Software del PC que use un puerto COM Serie estándar pero emulándolo vía USB 2.0 a full speed.

Al abrir el administrador de dispositivos del sistema encontrará algo similar a esto:


El número del puerto COM puede variar según haya sido el asignado por el sistema operativo.

Para realizar intercambio de datos con el dispositivo puede crear una conexión en hyperterminal configurando ésta con el número de puerto correspondiente.

Comandos reconocidos por el dispositivo:

Los comandos reconocidos por el PIC son muy básicos y fáciles de recordar:

3A: significa que le estoy solicitando información al dispositivo, el cual está programado para responder enviando el estado del puerto B configurado como entrada. Esta respuesta es 1 byte en formato hexadecimal:

Imagen de la etapa de entradas del circuito:


Respuesta en Hyperterminal:


3F: significa que le estoy informando al dispositivo que a continuación enviaré un dato (1 byte en formato hexadecimal), para que lo refleje en el estado de las salidas en el puerto D.

Imagen de la etapa de salidas del circuito:



Respuesta en Hyperterminal:


Programa PIC_USB:

Este programa está configurado para intercambiar información directamente con el dispositivo y mostrar los resultados gráficamente.


Simplemente debe seleccionar el puerto COM al cual está conectado el dispositivo y podrá verificar el estado de las entradas y de las salidas. El código fuente del programa se encuentra en el directorio “PC”.


Esquema del circuito

Imagen del circuito en funcionamiento:


6. Pruebas y resultados

Se implementó por completo el software de adquisición de datos por computador utilizando un microcontrolador PIC18F4550 de Microchip.

Se realizó montaje del circuito y se puso en funcionamiento sirviendo éste como manual de consulta para los aprendices del Centro de Automatización Industrial.



7. Bibliografía:

http://www.usb.org/home/

http://es.wikipedia.org/wiki/Universal_Serial_Bus

No hay comentarios:

Publicar un comentario en la entrada