You are on page 1of 71

USB. Hardware e introduccin al protocolo.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

Agenda
Introducci Introduccin.
Especificacin. Componentes del Bus USB. Topologa. Terminologa USB. Funciones del Host y de los dispositivos.

Hardware.
Interfaz mecnica. Interfaz elctrica. Codificacin de datos.

Transferencias de datos.
Introduccin. Tipos de transferencias. Transacciones. Paquetes. Control de errores. Ejemplos. Ancho de banda. Enumeracin.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

USB. Introduccin.
El Universal Serial Bus (bus universal serie, USB) es un estndar industrial desarrollado en los aos 1990 que define los cables, conectores y protocolos usados en un bus para conectar, comunicar y proveer de alimentacin elctrica entre computadoras, perifricos y otro dispositivos.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar 3

USB. Introduccin. Ventajas


Facilidad de uso (desde el punto de vista del usuario). Configuracin automtica. Fcil conexin. Conectores pequeos. Opcin inalmbrica Conexin / Desconexin en caliente (hot plugg). No necesita configuracin de los perifricos (Interrupciones, DMA, etc.). No se requiere alimentacin adicional (no siempre). Soporte por parte de la mayora de los Sistemas Operativos. Flexibilidad en el tipo / velocidad de los perifricos soportados.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

USB. Introduccin. Velocidad.


USB Soporta 4 velocidades de bus. Nombre Low Speed Full Speed High Speed Velocidad 1.5Mbps. 12Mbps. 480Mbps. Soporte
USB1.0, USB2.0, USB3.0 USB1.0, USB2.0, USB3.0 USB2.0, USB3.0 USB3.0

Super Speed 5Gbps.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

USB. Limitaciones, Desventajas


Distancia. (Fue diseado como un bus para una computadora de escritorio). Comunicacin entre dispositivos similares. USB es un bus que comunica un host (PC) con perifricos, Un host no se puede conectar directamente con otro (mismo caso con los perifricos). Broadcast. Un host no puede enviar datos a mltiples dispositivos de manera simultnea. Es complejo para el desarrollador.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar 6

USB. Especificacin.
Toda la informacin respecto del bus USB y sus caractersticas (mecnicas, elctricas y de protocolo) se encuentran especificadas en: http://www.usb.org/developers/docs/

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

Componentes de un bus USB.


USB Host. El host usb es el encargado de administrar la comunicacin, encuestar a los dispositivos USB Root Hub. Es el encargado de detectar la conexin y desconexin de los diferentes dispositivos. Enva los datos de y hacia el host. Hubs Externos. Se utilizan para expandir la capacidad de conexin del bus. El bus siempre (sumando todos los dispositivos) tiene que tener menos de 127 dispositivos conectados. Dispositivos USB (devices). Son los dispositivos que se van a conectar al bus USB e intercambiar informacin con el host, deben tener el hardware y el firmware necesario para conectarse con el bus segn la especificacin del bus.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

Topologa de un bus USB.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

Consideraciones de velocidad en un bus USB.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

10

Terminologa USB.
Funcin. Una funcin es un conjunto de una o ms interfaces relacionadas entre s que muestran alguna capacidad. Son funciones un mouse, una unidad de adquisicin, hub, etc. Dispositivo. Es una entidad lgica o fsica que lleva a cabo una o ms funciones. Puerto. Un puerto USB se lo puede definir como a cada uno de los conectores a dispositivos de un hub.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar 11

Tareas del Host.


Detectar Dispositivos. Administrar el trfico del bus. Control de errores. Proveer y administrar alimentacin. Intercambiar datos con los dispositivos.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

12

Tareas de los dispositivos.


Detectar cuando el host lo direcciona. Responder a los requerimientos de la especificacin. Control de errores. Administrar su alimentacin. Intercambiar datos con el host.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

13

Velocidad y Throughput.
La tasa de transferencia de datos (throughput) entre un dispositivo y el host es siempre menor que la velocidad del bus y no es del todo predecible. USB soporta dos tipos de transferencias que garantizan tasa de transferencia (o latencia). Hay que tener en cuenta que todos los dispositivos comparten el bus. Si el bus est muy cargado el host puede rechazar la conexin de dispositivos de latencia garantizada.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar 14

Interfaz Mecnica. Conectores USB 2.0


Los conectores tipo A son los conectores del host o bien del lado host de los hubs. Los conectores tipo B son los conectores de los dispositivos.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

15

Pinout USB 2.0.


Pin 1 2 3 4 Seal VBUS DD+ GND Cable Rojo Blanco Verde Negro Pin 1 2 3 4 5 Seal VBUS DD+ ID GND Negro
16

Cable Rojo Blanco Verde

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

Interfaz Mecnica. USB 3.0.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

17

Interfaz Mecnica. USB 3.0.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

18

Cables.
En USB 2.0 se necesitan 4 cables para conectar un dispositivo. Los requerimientos al cable van a cambiar de acuerdo a la velocidad del dispositivo. En USB 3.0 se van a requerir dos cables de alimentacin y 3 pares trenzados para seales.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

19

USB. Cables (2).

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

20

USB. Cables (3).

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

21

USB. Requerimientos de cables.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

22

USB 2.0. Interfaz elctrica.


USB 2.0 utiliza un par diferencial (D+ y D-) para transmitir los datos y dos cables para transmitir alimentacin (VBUS y GND). USB 2.0 en los modos low y full speed define los siguientes estados de seal:
Uno diferencial. En transferencias de datos. D+ > 2.8V y D-< 0.3V. Cero diferencial. En transferencias de datos. D- > 2.8V y D+< 0.3V. Uno (SE1). Las dos lneas (D+ y D-) por encima de 2.8V. Es un estado invlido Cero (SE0). Las dos lneas por debajo de 0.3V. Se utiliza para indicar condiciones de reset, fin de paquete de datos y desconexin.

En High Speed se definen:


Uno diferencial. D+ 0.36V y D- 0.01V Cero diferencial. D- 0.36V y D+ 0.01V
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

23

USB 2.0 estados datos de bus.


A partir de los estados lgicos se definen los estados de datos en USB 2.0. Van a cambiar en funcin de la velocidad del bus.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

24

Deteccin de dispositivos.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

25

Deteccin de dispositivos. High Speed.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

26

USB 2.0. Codificacin de seales.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

27

USB 3.0 Codificacin de seales.


USB 3.0 utiliza la codificacin 8b/10b. Esta codificacin convierte un byte en 10 bits con la restriccin de que no puede haber ms de 5 unos o 5 ceros seguidos. En promedio, tienen que existir la misma cantidad de unos que de ceros lo que va a hacer que la componente de continua sea baja.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar 28

Alimentacin por el bus USB.

Adems, el perifrico puede estar autoalimentado (self powered). El ordenador gestiona el consumo, teniendo capacidad de poner en reposo (suspend) o en marcha a un perifrico USB. En reposo, este reduce su consumo (si puede),quedndose la parte USB funcional. Esta gestin est orientada especialmente a los equipos porttiles

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

29

Transferencias USB.
A diferencia de RS-232, por ejemplo, que no define el formato de los datos, en USB est definido el protocolo de transferencia de datos. USB es un protocolo centrado en el host. El host inicia todas las transferencias. El host administra todo el trfico del bus. Toda comunicacin en USB es entre un host y un dispositivo.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar 30

Flujo de datos: Modelo de implementacin

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

31

Modelo de dispositivo USB

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

32

Puntos terminales(Endpoints).
Es una localidad especifica dentro del dispositivo. El Endpoint es un buffer que almacena mltiples bytes, tpicamente es un bloque de la memoria de datos o un registro dentro del microcontrolador. Todos lo dispositivos deben soportar el punto terminal 0. Este punto terminal es el que recibe todo el control y la peticiones de estado durante la enumeracin cuando el dispositivo esta sobre el bus
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

33

Endpoints.
Todos los endpoints tienen una direccin de endpoint. La direccin de endpoint, consta de un nmero entre 0 y 15 y una direccin. La direccin es siempre desde el punto de vista del host. Un endpoint tipo IN es un endpoint que lleva datos hacia el host. Un endpoint OUT es un endpoint que lleva datos a un dispositivo.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

34

Puntos terminales(Endpoints).

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

35

Tuberas (Pipes).
Es un enlace virtual entre el host (la PC) y el dispositivo USB, este enlace configura los parmetros asociados con el ancho de banda que tipo de transferencia se va a utilizar (Control, Bulk, Isocrona o Interrupt) direccin del flujo de datosy el mximo y/o mnimo tamao de los paquetes/buffers. Cada enlace est caracterizado por su banda de paso (Token), su tipo de servicio, el nmero de punto terminal (End Point) y el tamao de los paquetes.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

36

Tipos de enlaces virtuales


Stream Pipes. se trata de un flujo sin formato USB definido, esto significa que se puede enviar cualquier tipo de dato. Este tipo de pipe soporta las transferencias bulk, isocronas, y interrupt. Adems tanto el host como el dispositivo USB pueden controlar. Message Pipes. este tipo de enlace virtual si tiene un formato USB definido y solo puede soportar la transferencia Control.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar 37

Organizacin de las transferencias

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

38

Tipos de Transferencias

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

39

Tipos de Transferencias.
Control: Modo utilizado para realizar configuraciones: existe siempre sobre el Punto terminal 0 (EndPoint 0). Todos los dispositivos USB deben soportar este tipo de transferencia. Los datos de control sirven para configurar el perifrico en el momento de conectarse al USB. Algunos drivers especficos pueden utilizar este enlace para transmitir su propia informacin de control. Este enlace no tiene prdida de datos, puesto que los dispositivos de deteccin de recuperacin de errores estn activos a nivel USB.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar 40

Tipos de Transferencias. Bulk.


Este modo se utiliza para la transmisin de importantes cantidades de informacin. Como el tipo control, este enlace no tiene prdida de datos. Este tipo de transferencia es til cuando la razn de transferencia no es critica como por ejemplo , el envi de un archivo a imprimir o la recepcin de datos desde un escner. En estas aplicaciones, la transferencia es rpida, pero puede esperar si fuera necesario. Solo los dispositivos de media y alta velocidad utilizan este tipo de transferencia

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

41

Tipos de Transferencias. Interrupt.


Modo utilizado para transmisiones de pequeos paquetes, rpidos, orientados a percepciones humanas (ratn, punteros). Este tipo de transferencia son para dispositivos que deben recibir atencin peridicamente y lo utilizan los dispositivos de baja velocidad Este tipo de transmisin garantiza la transferencia de pequeas cantidades de datos. El tiempo de respuesta no puede ser inferior al valor especificado por la interfaz. El ratn o cualquier otro dispositivo apuntador es una aplicacin tpica de este modo de transmisin.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar 42

Tipos de Transferencias. Iscrona


Modo utilizado para la transmisin de audio o video comprimido. Este tipo de transmisin funciona en tiempo real. Este es el modo de mayor prioridad. La transmisin de la voz es un ejemplo de esta aplicacin. Si sta no se transmite correctamente, pueden llegar a orse parsitos (glich) y la aplicacin puede detectar ciertos errores de los llamados underruns.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

43

Manejo del ancho de banda.


El manejo del ancho de banda del bus es responsabilidad del host. Las limitaciones del ancho de banda son las siguiente:
No ms del 90% en full speed (80 % en high speed) de los frames (microframes) pueden tener transferencias peridicas (Interrupcin e iscrona). El 10% restante (20% high-speed) para las transferencias de control. Las transferencias bulk se van a realizar cuando se encuentren espacios disponibles en los frames (microframes high speed).

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

44

Transacciones.

Cada transferencias consta de una o ms transacciones. Cada transaccin consta de dos o tres paquetes.
Juan Alarcn. jalarcon@electron.frba.utn.edu.ar 45

Estructura de las transacciones.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

46

Transacciones segn el tipo de transferencia.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

47

Paquetes.
Todas las transacciones constan de dos o ms paquetes. Todos los paquetes comienzan con un identificador de paquete (PID), dependiendo del tipo datos, endpoint, etc y luego bits de control de errores (CRC-5).

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

48

Paquetes.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

49

Paquetes.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

50

Paquetes.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

51

Control de errores.
ACK. El host o el dispositivo recibi sin errores los datos. NAK. Si el dispositivo est muy ocupado para contestar o si no tiene datos retorna NAK al host. El host nunca genera NAKs. STALL. El dispositivo retorna STALL si no soporta determinada transferencia de control o si el endpoint falla. NYET. (Not yet) en high speed en transferencias de control y bulk, cuando todava no est listo el dispositivo. No Responde (timeout). Cuando el dispositivo detecta una condicin de error no genera una respuesta, entonces el host debe reintentar (no en iscrona).

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

52

Transferencias de control.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

53

Transferencia de Control.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

54

Transferencias de control.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

55

Transferencia de Control.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

56

Transferencias de control. Tamao de datos.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

57

Transferencias Bulk y por Interrupcin.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

58

Transferencias Bulk y por Interrupcin.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

59

Transferencias por Interrupcin y Bulk. Tamao mximo de datos.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

60

Transferencias iscronas.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

61

Transferencias iscronas. Tamao de paquetes.

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

62

Enumeracin

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

63

Enumeracin - Paso I

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

64

Enumeracin - Paso II

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

65

Enumeracin - Paso III

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

66

Enumeracin - Paso IV

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

67

Enumeracin - Paso V

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

68

Enumeracin - Paso VI

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

69

Enumeracin - Paso VII

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

70

Referencias
Jan Axelson. USB Complete. The Developers Guide, Fourth Edition. Lakeview Research. USB in a NutShell. http://beyondlogic.org/usbnutshell/usb1.shtml USB-IF Developers Area. http://www.usb.org/developers USB Made Simple. http://www.usbmadesimple.co.uk/

Juan Alarcn. jalarcon@electron.frba.utn.edu.ar

71

You might also like