Está en la página 1de 19

USB (Universal Serial Bus)

El bus de comunicación, es un bus serie con una estructura de árbol


que permite la conexión de diversos dispositivos en cadena
permitiendo la transferencia síncrona y asíncrona entre estos.

Tipos de estándares USB


Vamos a empezar hablando de los diferentes tipos o versiones de
estándares de USB, los cuales se clasifican en cuatro tipos 
dependiendo de la velocidad a la que transfieren sus datos.
Tipos de conectores USB
Además de las distintas especificaciones, existen diferentes formatos de
USB. Las características físicas del conector vienen dadas por este formato
que puede ser Tipo A, Tipo B. Tipo C, Mini A, Mini B, Micro A o Micro B.
La comunicación bus universal serial (USB), permite reemplazar a la mayoría de las formas de
comunicación entre un PC y los dispositivos externos.
 
Los microcontroladores PIC de la gama alta vienen con el módulo de comunicación USB, lo que
resulta muy útil en el desarrollo de proyectos electrónicos.
 
Términos que son utilizados en la comunicación USB.
Host
Dispositivo maestro o anfitrión que inicia la comunicación, (Ej. Una PC).
 
Interfaz física

El conector USB está formado por cuatro hilos. Dos para la alimentación 5V (Rojo) y 0V (Negro).
Dos conductores para datos D+ (verde) y D- (blanco).

Los cables de datos son del tipo trenzado y tienen una impedancia de 90 Ω, conducen señales
diferenciales de voltaje, el mismo que depende de la velocidad del bus, para versiones USB 1.0
USB 2.0 y 3.0.
 
Tipos de transferencia
La especificación USB permite cuatro tipos de transferencias: control, bulk, isocrónicas,
interrupción.

Control: Configuran y envían comandos. Se usa en la enumeración del dispositivo y para el


control de los dispositivos conectados al bus.

Bulk (masivas): Se utilizan para transferencia de datos grandes, es el tipo más rápido de
transferencia. Los discos duros, pen drivers, escáneres, impresoras, etc., hacen uso de
transferencias tipo bulk. Este método asegura la integridad de datos, pero no la temporización
de envíos.
Isócronas: (de igual tiempo). Los dispositivos deben soportar velocidades Full Speed. Provee un
método para transferir grandes cantidades de datos, hasta 1023 bytes, con una temporización de
envío asegurada, aunque la integridad de los datos no se asegura. Utilizado en aplicaciones de
transmisión continúa (streaming) y donde pequeñas pérdidas de datos no son críticas. Es usada en
dispositivos que transmiten señales de audio y de vídeo en tiempo real.

Interrupción: Se utiliza en dispositivos que no requieran mucho ancho de banda como: Teclados,
Mouse, Sensores, Pantallas táctiles, etc. Este método asegura la temporización y la integridad
de los datos para pequeños bloques de datos.
Velocidades del bus
Low speed: 1,5 Mbps. Son utilizados por dispositivos como teclados, ratones, etc. que soportan las
especificaciones 1.1, 2.0 y 3.0.
Full speed: 12 Mbps. Soportado por USB 1.1, USB 2.0 y USB 3.0. Usados para transmisiones de audio.
High speed: 480 Mbps. Solo USB 2.0 y USB 3.0, para transmisiones de video.
Super speed: 5Gbps. Solo dispositivos USB 3.0.

Enumeración del dispositivo

El equipo Host detecta cualquier dispositivo que se conecta al bus. El Host necesita obtener la
información sobre el dispositivo.
El proceso que realiza el Host en obtener la información se denomina ENUMERACIÓN.
Esta información que necesita el Host se encuentra definida en el dispositivo en los llamados
descriptores.
Los descriptores son datos que se guardan en la memoria no volátil del PIC y contienen la
siguiente información:
El ID del vendedor (VID) y del producto (PID), consumo de corriente del dispositivo, tipo de
transferencia que se va a utilizar, endpoint utilizados, versión USB soportada, clase utilizada,
etc.
VID & PID
 
El VID es un número de 16 bits que significa Vendor Identification o código que identifica al
fabricante del hardware a conectar. El número 04D8h identifica a Microchip.
 
El PID es un número de 16 bits que significa Product Identification o código que identifica al
dispositivo en concreto hardware a conectar. El PIC18 tiene el número de identificación 000Bh.
 
 
ENDPOINT
Endpoint: puntos terminales es un buffer de memoria RAM que almacena múltiples bytes, para
envió y recepción de datos o comandos. Cada Enpoint es bidireccional. El proceso de
enumeración se realiza a través del Endpoint 0.
 
Driver
Es un programa que habilita aplicaciones para realizar la comunicación con el dispositivo. Cada
dispositivo sobre el bus debe tener un driver, algunos periféricos utilizan los drivers que trae
Windows.
Clase de comunicación USB
Existen cuatro clases de comunicación USB.
 
Bulk transfers USB. Presenta una transferencia bidireccional masiva de
información.

HID (Human Interface Device). Dispositivos de interfaz humana.

CDC (Comunications Device Class). Clase de dispositivo de comunicación.


Emula a la comunicación serial RS232.

MSD (Mass Storage Device Class). Dispositivos para almacenamiento


masivo.
Descripción general del módulo USB en el PIC18F4550
El PIC18FX550 contiene un “USB Serial Interface Engine” (SIE) compatibles con alta y baja
velocidad el cual permite una rápida comunicación entre el USB anfitrión y el microcontrolador.
USB STATUS AND CONTROL
L a operación del USB es configurada a través de 3 registros, además un total de 22 registros están
involucrados para el manejo de la información USB, los más importantes son:

- USB CONTROL REGISTER (UCON)


- USB CONFIGURATION REGISTER (UCFG)
- USB TRANSFER STATUS REGISTER (USTAT)
- USB DEVICE ADRESS REGISTER (UADDR)
Funciones del oscilador para comunicación
USB

Establecer la comunicación USB de alta


velocidad se
recomienda al empleo de cristales de cuarzo,
los cuales presentan una mejor
estabilidad de frecuencia para un amplio
margen de temperaturas

En la siguiente imagen se presenta el circuito


oscilador del PIC, se encuentran
marcados los valores de ejemplo para la
configuración del oscilador para
cristales de 20MHz.
Librerías de CCS
El compilador CCS cuenta con librerías creadas para la configuración y el manejo del módulo USBdel microcontrolador,
para la correcta programación de la comunicación USB es necesario llamar varias librerías dentro de CCS. En el siguiente
diagrama se muestra la interrelación que existen éntrelas distintas librerías.
Comunicación USB-PIC con HID

Cuando conectemos el cable USB al PC empezará el proceso de enumeración,


por medio del cual el PC identifica al dispositivo y si todo es correcto es
añadido al Bus de dispositivos USB que el PC tenga configurados en ese
momento, como se trata de un dispositivo que en su firmware implementa la
clase HID no se necesita instalar ningún driver adicional por parte del usuario,
el Sistema Operativo ya incorpora los manejadores necesarios para
comunicarse a bajo nivel con él.

Los dispositivos que implementan la clase HID  la información se transmite y


recibe a través de unas estructuras de datos llamadas Informes o Reports.
El tamaño y tipos de datos de esa estructura queda definida en el firmware
del PIC concretamente en el archivo fuente de la demo (ex_usb_hid.c ) y en
el archivo que define los descriptores (usb_desc_hid.h).

También podría gustarte