MÓDULO USB

23
Por: Dr. Israel Alejandro Rojas Olmedo Microcontroladores Avanzados MÓDULO USB (Universal Serial Bus)

Transcript of MÓDULO USB

Page 1: MÓDULO USB

Por: Dr. Israel Alejandro Rojas Olmedo

Microcontroladores Avanzados

MÓDULO USB (Universal Serial Bus)

Page 2: MÓDULO USB

¿Qué es el puerto USB?

USB proviene del inglés “Universal Serial Bus” que significa “Bus de Serie Universal”.

El diseño del USB mejorar las capacidades plug-and-play permitiendo a esos dispositivos ser conectados o desconectados al sistema sin necesidad de reiniciar, permitiendo conexiones en funcionamiento. Con la tecnología USB es posible conectar hasta 127 dispositivos

Los aparatos conectados a un puerto USB estándar no necesitan estar conectados a la corriente o disponer de baterías para funcionar. El propio puerto está diseñado para transmitir energía eléctrica al dispositivo conectado. Incluso puede haber varios aparatos conectados simultáneamente, sin necesidad de recurrir a una fuente de alimentación externa.

Page 3: MÓDULO USB

¿Cómo funciona un puerto USB?

Este diagrama aparece en los conectores que se insertan a la computadora, igualmente están presentes en las puertos para conectar. El círculo grande representa al controlador y el concentrador raíz, el círculo pequeño a un periférico y el rectángulo a un concentrador (Hub). La flecha central señala el crecimiento de conexiones al que se puede llegar, esto es un máximo de 127 simultáneas. En la práctica el diagrama podría crecer de la siguiente forma

Page 4: MÓDULO USB

Velocidad de Transferencia

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).

Velocidad completa (1.1): Tasa de transferencia de hasta 12 Mbps (1.5 MB/s)

Alta velocidad (2.0): Tasa de transferencia de hasta 480 Mbps (60 MB/s) pero por lo general de hasta 125Mbps (16MB/s)

Súper alta velocidad (3.0): Tiene una tasa de transferencia de hasta 4.8 Gbps (600 MB/s)

Page 5: MÓDULO USB

Cables

El cable de bus USB es de 4 hilos: dos cables trenzado para datos (D+ y D-) y dos alambres de alimentación (+5V y tierra). La computadora puede dar un máximo de 500 mA a 5V

Page 6: MÓDULO USB

Cables cont.

Existen dos tipos de cable: apantallado (shield) y sin apantallar. En el primer caso el par de hilos de señal es trenzado; los de tierra y alimentación son rectos, y la cubierta de protección (pantalla) solo puede conectarse a tierra en el anfitrión. En el cable sin apantallar todos los hilos son rectos. Las conexiones a 15 Mbps y superiores exigen cable apantallado

Page 7: MÓDULO USB

Conectores

Pin Nombre Color Descripción

1 VCC Rojo +5 V

2 D- Blanco Data -

3 D+ Verde Data +

4 ID Ninguno

Tipo A: conectado a tierra

Tipo B: no conectado

Permite la distinción de Micro-A y Micro-B

5 GND Negro Señal tierra

Page 8: MÓDULO USB

Modos de transmisión

En la comunicación USB existen 4 tipos de transferencias, estas son:

Control: Se utiliza para enviar datos de configuración, un ejemplo es durante la enumeración del dispositivo, que se da lugar cuando se conecta el PIC a la PC.

Bulk: Es usada durante la transmisión de datos de forma masiva, es el tipo de transferencia mas rápida, las utilizan comúnmente dispositivos como: discos duro, impresoras etc.

Isócronas: Se utiliza para transmitir señales de audio y vídeo en tiempo real.

Interrupción: Se asegura la latencia y la verificación de los datos. Se utiliza en dispositivos como: Teclados, Mouse, Sensores y algunos dispositivos que no requieren mucho ancho de banda.

Page 9: MÓDULO USB

Numeración de los dispositivos USB

Generalmente, el “Host” se encarga de detectar cualquier dispositivo que se conecte, cuando esto ocurre el “Host” debe comenzar a enumerar el dispositivo mediante la obtención de determinada información.

En realidad son 2 variables las que se necesitan para realizar este proceso, esta información se conoce como los descriptores. Estos descriptores se almacenan en memoria no volátil del dispositivo USB, y se conocen como:

a) El identificador del vendedor (VID, por sus siglas en ingles Vendor Identifier)

b) El identificador del producto (PID, por sus siglas en ingles, Product Identifier).

Estos identificadores son 2 números de 16 bits. En caso de querer comercializar un producto es necesario solicitar 2 identificadores únicos  a la “USB Implementers Forum“

Page 10: MÓDULO USB

Clases de comunicación USB Una clase especifica el modelo o plantilla que describe el estado y el comportamiento de los objetos que lo comparten. Las clases mas utilizadas con microcontroladores en la comunicación USB son:

HID (por sus siglas en ingles, Human Interface Device): Para los dispositivos que utilizan esta clase de comunicación, no se requiere ningún driver especifico, ya que este se encuentra almacenado en el sistema operativo.

MSD (por sus siglas en ingles, Mass Storage Device Class): Utilizado por dispositivos de almacenamiento masivo como: Pendrives, Camaras discos duros, etc. Utiliza transferencias del tipo de control, bulk y por interrupción. No se requieren drivers para utilizar esta clase, ya que se encuentra en la siguiente ruta: “C:\Windows\System32\Drivers\usbstor.sys”.

Page 11: MÓDULO USB

Clases de comunicación USB cont.

CDC (Por sus siglas en ingles, Communications Device Class): Esta es la clase mas utilizada para la comunicación entre PIC-PC. Esta clase convierte el enlace USB en una transmisión Serial, por lo que en la PC se observara un puerto COM de tal manera que la comunicación se puede hacer a través del Hyperterminal de Windows. Para usar esta clase se requiere un archivo .INF el cual sera usado por el PC para instalar el controlador del dispositivo, además se requieren las librerías para el microcontrolador, utilizando el lenguaje de programación ANSI C se necesitan las librerías ”usb_desc_cdc.h” y “usb_cdc.h” las cuales vienen incluidas en el paquete de drivers del CCS

Page 12: MÓDULO USB

USB con ISIS y CCS

USB en ISIS

LabCenter ha incorporado, en su versión 7, dos herramientas para la simulación de circuitos con USB: el conector USBCONN, el cual permite conectar y desconectar el bus y el visualizador de USB llamado Analizador de transiciones.

Además, el software de LABCENTER incorpora los drivers necesarios para la simulación con USB. Para instalarlos hay que ir a la posición INICIO–PROPGRAMAS–PROTEUS 7 PROFESSIONAL– VIRTUAL USB–INSTALL USB DRIVERS. Tras este proceso ya se pude trabajar con el USBCONN.

Page 13: MÓDULO USB

USB en CCS C

Page 14: MÓDULO USB

USB en CCS C

Page 15: MÓDULO USB

USB en CCS C

Transmisión de datos:usb_put_packet(1,envia,6,USB_DTS_TOGGLE);

Donde

'1': hace referencia al descriptor, EndPoint 1 (EP1).

‘envia': es una variable que contiene los datos.

'6': Es el número de bytes a enviar.

'USB_DTS_TOGGLE': Sincronización de datos

Enfocandonos en la variable, que son 6 bytes (es un vector) tenemos distintos tipos de cosas:

envia[0]= eje_x envia[1]= eje_yenvia[2]= eje_rxenvia[3]= eje_ryenvia[4]= botones1envia[5]= botones2

Page 16: MÓDULO USB

USB en CCS C

Configuración del reloj

Para el caso de lo microcontroaldores PIC, el modulo USB utiliza un reloj de 48 MHz para funcionar por lo que es importante colocar ciertas líneas de código en el programa principal para configurar este temporizador, ya que de otra forma no funcionara.

#FUSES HSPLL: Con esta instrucción se habilita el PLL que va a permitir entregarle los 48 MHz que el modulo necesita.

#FUSES USBDIV,PLL5,CPUDIV1: En esta instrucción, es necesario estar seguro cual divisor se le va a asignar al PLL. En la siguiente figura se observa el diagrama de bloques del reloj para el modulo USB de los PIC.

Page 17: MÓDULO USB

USB en CCS C

Configuración del relojSe requiere que a la salida del divisor del PLL existan 4 MHz. Para un reloj de20 MHz, se debe utilizar un divisor de 5, esto se realiza colocando PLL5. Es por esto, que es necesario tener en cuenta el valor del reloj a utilizar para ajustar el PLL tal como se requiere, de otra forma, la PC no podrá sincronizarse con el microcontrolador y no se logrará la comunicación entre los dispositivos. En la figura, se observa que el reloj del núcleo del Pic también cambia y se define mediante la instrucción CPUDIV1, que en este caso se establece en 4 MHz ya que el divisor es 1.

Page 18: MÓDULO USB

Ejemplo: Realizar una conversión A/D de una señal proveniente de un potenciómetro y enviarlo al puerto USB de una computadora. El programa en Labview visualizará el valor digitalizado y debe tener la capacidad de activar/desactivar los bits independientes del puerto B.

Page 19: MÓDULO USB

Módulo USB en CCS C

Page 20: MÓDULO USB

Módulo USB en CCS C

Page 21: MÓDULO USB

Cristal 20 MHz

Page 22: MÓDULO USB

Programa LABVIEW (Diagrama a bloques)

Page 23: MÓDULO USB

Programa LABVIEW (Panel frontal)