67
Genealogía: !Enero de 1996, versión 1.0 !Septiembre de 1998, versión 1.1, !Septiembre del 2000 versión 2.0 Nos referiremos a la versión 1.1, ampliamente utilizada en estos días. UNIVERSAL SERIAL BUS

UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Genealogía:!Enero de 1996, versión 1.0!Septiembre de 1998, versión 1.1, !Septiembre del 2000 versión 2.0

Nos referiremos a la versión 1.1,ampliamente utilizada en estos días.

UNIVERSAL SERIAL BUS

Page 2: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

! Expansión de periféricos extremadamente sencilla:ddetección automática de un nuevo dispositivoen el bus, conexión y desconexión sin reiniciar elequipo, soporte plug & play.

! Velocidades de transferencia de hasta 12Mbits/seg. a muy bajo costo.

! Soporte para aplicaciones multimedia real time.! Integración con dispositivos electrónicos hasta el

momento no integrables a una PC (VCR, porejemplo), aumentando de esta manera lascapacidades de la PC.

! Interfaz standard independiente del producto quese desee conectar.

Principales metas propuestaspara el Universal Serial Bus:

Page 3: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Arquitectura I

El Universal Serial Bus está organizadocomo una estructura jerárquica,controlada por un dispositivodenominado host controller que resideen la PC.

Se dispone además de undispositivo denominadoHub, en el centro de cadaestrella, lográndose deesta forma unanidamiento multinivelque permite la expansióndel bus, conectándolediversos dispositivos.

Page 4: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Arquitectura II

El Hub root es el elemento delsistema que compone el vértice dela pirámide jerárquica. Por lo tantosolo hay un Hub Root en el sistema.También se lo conoce como HostController, y se compone dehardware firmware y software,todo instalado en la PC.

Existen dos standars paraimplementar HostControllers: Open HostController Interface (OHCI)desarrollado por Compaq, yUniversal Host ControllerInterface (UHCI) de Intel.

Page 5: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Conexiones

Cada conexión es punto a punto y se lleva a cabo mediante uncable separado. Dicho cable está compuesto de cuatro hilos.Se pueden conectar hasta 127 nodos o dispositivos diferentes al bus.

La señal se aplica en formadiferencial entre D+ y D-, demodo tal que se establece unacomunicación Simplex. Es decir,se transmite en un único sentidoen cada momento.

VBUS , por su parte transporta5Vcc con respecto de la líneaGND que tiene la referenciaeléctrica de tierra del sistema.

Page 6: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Características Eléctricas I

Entrada de un port de Hub, y deun Dispositivo USB Full-speed

Significa que un port desconectado “ve” 15 KΩ. En el momento deconectar un dispositivo uno de los conductores del Bus queda a 1,5KΩ con respecto a una fuente de entre 3V y 3,6V. La resistencia deThevenin (que no incluye los 15 KΩ), no debe ser menor de 900 Ω.

Estas condiciones eléctricas establecen la forma en que sedetectan las conexiones y desconexiones de dispositivos al bus.

Entrada de un port de Hub, y deun DispositivoUSB Low-speed

Page 7: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Características Eléctricas II

Señalización aldesconectar un dispositivo

Señalización al conectar undispositivo Full Speed

Page 8: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Características Eléctricas III

Señalización al resetear undispositivo

Señalización al conectar undispositivo Low Speed

Page 9: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Características Eléctricas IV

Niveles eléctricos vs. señalización en en Bus I

Las líneas de datos conmutan del estado Idle al estado ‘K’Start of Packet

‘1’ Diferencial‘0’ Diferencial

‘1’ Diferencial‘0’ Diferencial

Estado Dato “K”!Low Speed!High Speed

‘0’ Diferencial‘1’ Diferencial

‘0’ Diferencial‘1’ Diferencial

Estado Dato “J”! Low Speed!High Speed

D+ y D- < VIH (min)D+ y D- < VIL (max)D+ y D- < VOL (max)Single Ended 0 (SE0)

(D-) – (D+) > 200 mV(D-) – (D+) > 200 mVD- >VIH (min)

D- > VOH(min) y D+ < VOL (max)‘0’ Diferencial

(D+) – (D-) > 200 mV(D+) – (D-) > 200 mVD+ >VIH (min)

D+ > VOH(min) y D- < VOL (max)‘1’ Diferencial

AceptableRequerido

En el conector destinoEn el conector de origen

Niveles de Señalización

Estado del Bus

Page 10: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Características Eléctricas VNiveles eléctricos vs. señalización en en Bus II

Idle ≥ 2.5 µseg.

D- > VIHZ (min) y D+<VIH (min)D+ > VIHZ (min) y D-<VIH (min)

D+ y D- < VIL (max) pr≥ 2.5 µ seg.

D+ y D- < VIL (max) pr ≥10 mseg.

D+ y D- >VOL (max) por ≥ 10 mseg.Reset

Idle ≥ 2 mseg.N.A.Conectado (a un portdownstream)

SE0 por ≥ 2.5 µseg.N.A.Desconectado (a unport upstream)

Estado Dato “K”Estado Dato “K”Resume

D- > VIHZ (min) y D+ <VIL(max)D+ > VIHZ (min) y D- <VIL(max)

N.A.

Idle! Low Speed

!Full Speed

SE0 por ≥ 1 bitseguido por unestado Dato “J”

SE0 por ≥ 1 bit seguidopor un estado Dato “J”de un bit

SE0 por el tiempo de dos bitsseguido por un estado Dato “J”por el tiempo de un bit

End of Packet (EOP)

AceptableRequerido

En el conector destinoEn el conector de origen

Niveles de Señalización

Estado del Bus

Page 11: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Características Eléctricas VI

Señalización de Comienzo y Fin de Paquete

Page 12: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Características Eléctricas VII

mediante el no cambio de nivel y los ‘0’ mediante cambios de nivel.Llevado a términos de estados, en NRZI pasa del estado J al K cada vez queaparece un ‘0’ en el stream de bits a transmitir.

Problema: Las strings largas de ’1s’ no generan cambios de nivel y puedencausar la pérdida de sincronismo entre los dos dispositivos.

Para evitarlo se utiliza unatécnica denominada “bitStuffing” (Relleno de bits), queconsiste en insertar un ‘0’ cadaseis ‘1’ consecutivos.

USB empleacodificación de datosNRZI. Consiste enrepresentar los ‘1’

Page 13: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Dispositivos USB I

El Hub es un dispositivo USBespecial, que extiende lacantidad de ports para conectardispositivos, convirtiendo un puntode conexión simple, en múltiplespuntos de conexión. Por punto deconexión entendemos port.

FuncionesSon dispositivos conectados al bus capaces de recibir y transmitirinformación desde / hacia el Host Controller. Se denominafunción debido a que no necesariamente la correspondenciafunción dispositivo es uno a uno.Ejemplos de funciones en un Bus USB: Teclado, Mouse, lapizóptico, una impresora, un modem (analógico, o ISDN) etc.

Page 14: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Dispositivos USB II

Es posible tener variasfuncionesimplementadas dentrode un dispositivoconectado por unúnico cable a un portUSB. Estos sonconocidos comodispositivos compuestos,y se presentan al HostController como un Hubcon mas de undispositivo no removible.

Page 15: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Consideraciones adicionales

Alimentación:Desde este punto de vista, los dispositivos USBtrabajan en dos modos: self powered o Buspowered.

Velocidad:La especificación 1.1 soporta dos tipos dedispositivos: Dispositivos USB low speed, (1.5Mbits/seg.) ,y dispositivos USB full speed,(12Mbits/seg).Además, garantiza la coexistencia de ambostipos de dispositivo en el bus de manera que noexistan desincronizaciones con los mismos.

Page 16: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Flujo de datos: Modelo deImplementación

Function Layer, es quien proveela interfaz entre el usuario y eldispositivo.

USB Device Layer es la visiónque tiene el software delsistema para realizar lasoperaciones previstas con eldispositivo USB.

USB BUS Interface Layer es lacapa del modelo que resuelvela comunicación física, a travésde señalización de hardware ytransmisión de paquetes deinformación, entre el Host y elDispositivo Físico.

Page 17: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Modelo del USB Host

Page 18: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Modelo del Dispositvo USB

A nivel de la USB Bus Interface, tenemosfuertes cambios de un dispositivo al otro yaque se ocupa de la interacción con el HostController remoto, a nivel de señalización ytransmisión física.En el USB Logical Device, la interfaz con elHost es básicamente la mismaindependientemente del dispositivo. Setrabaja a nivel lógico. Se dispone de un juegode funciones de interacción básicas, que soncomunes a los diferentes dispositivos USB aconectar al bus. Analizando el contenido dedichas funciones se pueden recién advertirlas posibles diferencias en el tratamiento a losdiferentes dispositivosLa Función es la capa que realiza la funciónesperada por el Client SW instalado en elHost..

Page 19: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Flujo de Información en USB I

Se dispone de un flujo de comunicación dedicado entre cadaaplicación y la correspondiente Función en el dispositivo. Así, unaFunción de un dispositivo puede tener diferentes flujos decomunicaciones con diferentes aplicaciones que la requieran .

En el dispositivo USB, el flujo decomunicación termina en unEndpoint .Host Controller Driver: Interfacea alUSB Host Controller con el USBSystem Software. Garantiza que elUSB System Software, puedainteractuar con toda la variedadde implementaciones deHardware que se pueda encontrar.USB Driver (USBD): Interfacea al USBSystem Software con la aplicacióncliente (Client SW) permitiéndoles aéstas el manejo del dispositivo USB

Page 20: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Flujo de Información en USB II

Un dispositivo USB se presenta al sistema como unacolección de Endpoints. Estos Endpoints a su vez se agrupanformando Interfaces. Las Interfaces a su vez son vistas de lasdiferentes Funciones del dispositivo.

La comunicación entre los extremos se realiza entre unbuffer del lado Host y un Endpoint del lado Dispositivo USB. ElCanal es un pipe.

Page 21: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Endpoints I

Es la porción identificable de un dispositivo USB querepresenta el extremo en un flujo de comunicación entre elHost y dicho dispositivo.Tiene un Número definido durante el diseño del dispositivoque lo identifica unívocamente.Transfiere información en una sola dirección.Cada dispositivo USB tiene una cantidad de Endpointsindependientes entre sí, y una dirección unívoca que loidentifica en el sistema, que obtiene desde el Host en elmomento de su conexión al bus.Así es que, definidos la dirección del dispositivo USB, elNúmero de Endpoint, y la Dirección del Flujo de Datos, sedetermina el Endpoint del dispositivo con el que se quiereestablecer comunicación.

Page 22: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Endpoints II

Características de un Endpoint , además de su númerode identificación que deben ser conocidas por elSoftware Cliente a fin de interactuar con él de maneracorrecta:

! Frecuencia o tiempo de demora en el acceso al bus.! Ancho de Banda requerido.! Número! Comportamiento en el manejo de errores.! Tamaño máximo del paquete de datos que puede

transaccionar.! Tipo de transferencia que soporta! Dirección de transferencia de datos

Page 23: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:El Endpoint 0

Todos los dispositivos USB deben tener implementado unmétodo de control default que utilice un par de Endpoints(uno de entrada y otro de salida), para que el USB SystemSoftware del Host los pueda inicializar en el momento de suconexión al bus.

Este método se conoce como Default control Pipe, y el parde Endpoints que lo compone levan el Número cero.

El Default Control Pipe soporta las transferencias de Control.

El Endpoint cero está siempre accesible ni bien el dispositivose conecta al bus, o se conecta a la fuente dealimentación, o es reseteado.

Page 24: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Pipes I

Son entidades abstractas que relacionan un Endpoint deldispositivo USB con el software del host. Son el canal decomunicación virtual mediante el cual se puedentransferir datos entre un buffer de memoria en el host y elEndpoint del dispositivo USB.Pueden tener uno de dos modos mutuamenteexcluyentes:Stream: Transmiten datos sin una estructura USB definida yen modo First-In First-Out. Siempre son unidireccionales.Message: Transmiten datos con alguna estructura USBdefinida. Se envía un requerimiento al dispositivo USBdesde el host, el que es seguido por una transferencia dedatos en la dirección adecuada. Finalmente se pasa auna fase de Estado. Este tipo de pipes permitecomunicaciones bidireccionales.

Page 25: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Pipes II

Para cursar una transferencia un pipe requiere que sedefina:!Demanda del bus USB y ancho de banda requerido.!Tipo de transferencia!Características del Endpoint asociado en el dispositivo:dirección de transferencia, tamaño máximo del paquetede datos a transmitir,etc.El Cliente de Software que corre en el host envíarequerimientos al pipe a través de I/O Request Paquets(IRPs). El formato de estos depende del Sistema Operativo.El Cliente de Software se entera de la finalización de un IRP,cuando recibe un aviso de finalización exitosa, o con error.Si no existen IRPs pendientes el pipe está en estado idle.Esto significa que su Endpoint asociado en el extremo deldispositivo USB no ve en el bus transacciones dirigidas a él.

Page 26: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Organización de las Transferencias

El Host Controller es el encargado de velar por que todas lastransacciones se lleven a cabo en el menor tiempo posible.Para ello divide el tráfico en frames de 1 mseg. Luego armacada frame con las transacciones correspondientes a lasdiferentes transferencias que se le solicitan desde lasaplicaciones que se están ejecutando en el Host.

STA

RT

OF

FRA

ME

Disp

osit

ivo

1 E

nd

po

int

3D

ispo

sitiv

o 1

En

dp

oin

t 3

Disp

osit

ivo

2 E

nd

po

int

1

Disp

osit

ivo

6 E

nd

po

int

2

Sin

util

iza

r

STA

RT

OF

FRA

ME

Disp

osit

ivo

1 E

nd

po

int

3D

ispo

sitiv

o 4

En

dp

oin

t 1

Disp

osit

ivo

3 E

nd

po

int

2

Sin

util

iza

r

Disp

osit

ivo

2 E

nd

po

int

2

Disp

osit

ivo

2 E

nd

po

int

2

Frame de 1mseg. Frame de 1mseg.

Page 27: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Transacciones

Transferencia 1 Transferencia 2 Transferencia 3

Transacción 1 Transacción 2 Transacción 3

Cada Transferenciacomprende una o mastransacciones

Token Datos Handshake

Cada Transacción contieneun paquete Token, y puedecontener adicionalmentepaquetes de datos yHandshake

PID Info. Adicional CRCCada paquete contiene un PIDy puede tener ademásinformación adicional y un CRC

Page 28: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Paquetes I

Los paquetes se dividen en diversos campos. Algunos sonopcionales y otros obligatorios.

Campo SYNC: Todos los paquetes comienzan con un campoSYNC. Genera la máxima frecuencia de transición entre estadosde las líneas diferenciales que componen el Bus. Aparece comoun estado “Idle” seguido de un tren de transiciones “JKJKJKJK” ensu codificación NRZI. Sus últimos dos bits se toman como el fin delcampo SYNC y pro inferencia se asume que a continuación vieneel campo Token.

El formato de los paquetes Token Data y Handshake serepresentarán en formato no codificado. Pero nunca debeperderse de vista que se trata de paquetes que se transmiten concodificación NRZI, y Bit Stuffing.

Page 29: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Paquetes II

Campo PID (Packet Identifier):Se compone de cuatro bits que identifican el tipo de paquete encuestión, seguido de cuatro bits de chequeo de errores de Tx

Tiene por función identificar que tipo de paquete se estácursando por el bus.

A continuación se muestran los diferentes valores que puedetomar para cada tipo de paquete que viaja por el Bus.

Los valores corresponden a los 4 LSBs.

PID Info. Adicional CRC

Page 30: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Paquetes III

Tipo de PID Nombre Valor (MSBprimero)

Descripción

OUT 0001 Dirección de Endpoint para transacciónHost a Dispositivo

IN 1001 Dirección de Endpoint para transacciónDispositivo a Host

SOF 0101 Marca de Start of Frame y Nº de frame

Token

SETUP 1101 Dirección de Endpoint para transacciónde Setup Host a dispositivo

DATA 0 0011 Paquete de datos con bits desincronización par

Data

DATA 1 1011 Paquete de datos con bits desincronización impar

ACK 0010 El receptor acepta el paquete libre deerrores

NAK 1010 El receptor no puede aceptar lo que sele transmite o no tiene nada que enviar .

Handshake

STALL 1110 El requerimiento de control enviado noestá soportado o el Endpoint estáHalteado

Especial PRE 1100 Preámbulo enviado por el host. Habilitatráfico Downstream a los dispositivos LowSpeed.

Page 31: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Paquetes IV

Campo de Información Adicional:! Cuando las transacciones llevan como PID los códigos IN, OUT,

o SETUP, es necesario especificar la dirección del portseleccionado así como su número de Endpoint.

Tenemos 128 direcciones de port (Addr 0-6), y 16 Endpoints(Endp 0-3), para transacciones IN y otros 16 para transaccionesOUT.

PID Info. Adicional CRC

!Cada frame que se transmite por el bus tiene un paquete SOFen el que se incluye un número de frame de 11 bits, que segenera secuencialmente.

!En los paquetes cuyo PID es DATA0 y DATA1, se puede tenerhasta 1023 bytes de datos.

Page 32: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Paquetes V

Chequeos de Redundancia Cíclica:Controlan todos los campos no PID en los paquetes Token y Datosde modo de asegurar su integridad.El PID se autochequea al transmitir los bits en formato nativo y encomplemento a 1.

Se utiliza para los campos Token un algoritmo llamado CRC5 (yaque el campo resultante es de 5 bits), que utiliza el siguientepolinomio:

G (X) = X5 + X2 + 1

Para los campos de datos se utiliza un algoritmo CRC16 (camporesultante de 16 bits), que utiliza el siguiente polinomio:

G (X) = X16 + X15 + X2 + 1

PID Info. Adicional CRC

Page 33: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Paquetes VI

TOKEN:

START OF FRAME:

Page 34: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Paquetes VII

DATOS:

HANDSHAKE:

ACK: Indica que elpaquete fue recibido sinerror, y que puede enviarel siguiente.

NACK: Indica que el paquetefue recibido sin error, pero quepor condición del extremoreceptor se debe retransmitir elpaquete (Ej: Buffer Full).

STALL: Indica que existeuna condición de erroren la Función y elEndpoint está en estadoHALT. El Host no deberetransmitir el Paquete.

Si el paquete tiene CRCIncorrecto o error de bitstuffing no se retornarespuesta

Page 35: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Tipos de Transferencias I

Cada tipo de transferencia determinacaracterísticas importantes del flujo deinformación involucrado. Entre otras contamos lassiguientes:

!Formato de datos impuesto por el USB.!Dirección del flujo de comunicaciones.!Restricciones en el tamaño del paquete de datos

a transmitir.!Restricciones en el acceso al bus.!Restricciones en el tiempo de recuperación de

datos. Secuencias de datos requeridas.!Manejo de errores.

Page 36: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Tipos de Transferencias II

Transferencias de control:Son comunicaciones por irrupción, no periódicas,iniciadas por el host, que se utilizan en operacionesde comando o status.Transferencias Isócronas:Se trata de un tipo de comunicación periódica ycontinua entre el host y un dispositivo USB, utilizadastípicamente en aplicaciones en donde el tiempode recuperación de datos es un factor relevante.No quiere decir que sea crítico el tiempo derespuesta en cuanto a la velocidad derecuperación de los datos sino más bien, encuanto a la periodicidad de acceso a éstos.

Page 37: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Tipos de Transferencias III

Transferencias de Interrupción:Son comunicaciones de baja frecuencia, paratamaños de paquete de datos muy pequeños, ytiempo de recuperación de datos limitado.

Transferencias de volumen (bulk):Son comunicaciones de grandes paquetes dedatos por irrupción, no periódicas, utilizadas paratransmitir datos que pueden utilizar cualquierancho de banda disponible y que tambiénpueden ser demorados hasta que el ancho debanda requerido se encuentre disponible.

Page 38: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Tipos de Transferencias IV

Tipo de Transferencia Control Bulk Interrupción Isócrona

Uso típico Configuración Impresora,scanner Mouse, Teclado Audio

Obligatoria Si No No No

Soportada por dispositivosLow Speed Si No Si No

Corrección de errores Si Si Si No

Tipo de pipe Message Stream Stream Stream

Garantiza Velocidad deenvío No No No Si

Garantiza mínimo tiempo deacceso a la información No No Si Si

Tamaño de datos porEndpoint (Full Speed)

8, 16, 32, ó 64bytes

8, 16, 32, ó 64bytes 1 a 64 bytes hasta 1023

bytes

Tamaño de datos porEndpoint (Low Speed) 8 bytes No aplica 8 bytes No aplica

Ancho de banda reservadopor frame 10% Ninguno 90 % (ambas combinadas)

Page 39: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Formatos de Transacciones I

Transacciones de Volumen (Bulk):

Page 40: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Formatos de Transacciones II

Transferencias de Volumen (Bulk):

Page 41: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Formatos de Transacciones III

Transacciones de Control:

Page 42: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Formatos de Transacciones IV

Transferencias de Control:

Page 43: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Formatos de Transacciones V

Transacciones de Interrupción:

Page 44: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Formatos de Transacciones VI

Transacciones Isócronas:

Page 45: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Formatos de Transacciones VII

Transacciones Consecutivas:

Page 46: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Elementos de un Controlador USB

La complejidad del protocolo USB implica que unperiférico USB debe tener inteligencia.

Todos los dispositivos USB tienen un controlador quese encarga de atender los eventos que seproducen en el port USB, y mantenga en áreas dememoria los datos correspondientes a lastransacciones en curso.

Una importante decisión al diseñar un dispositivoUSB es la selección del controlador apropiado.

Page 47: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Criterios de Diseño de Dispositivos

La variedad de chips existentes en el mercado permitenplantear tres alternativas para la resolución de un proyecto:

firmwareEléctrica

manejartodo elcontrol delBus

Se cambia de CPU yde Controlador USB

Máxima en la libreelección de CPUSe mantiene know howsobre el Controlador USB

Máxima en la libreelección de CPU

Flexibilidad alcambiar deproyecto

Mínimacomplejidad

Controlador USB embebidocomo un periférico

con ControladorUSB embebido

Mínimacomplejidad

Controlador USB conectadocomo un periférico

cualquiera

Altísimacomplejidad

Diseñada deacuerdo a laespecificacióneléctrica del USB

cualquiera

DiseñoGlobal

Control del USBTipo deµControlador

Page 48: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Casos Prácticos

Intel:Fue el primero. Presentó un microcontrolador de la familiaMCS 51 con un controlador USB embebido: el 80251.Posteriormente junto con Cypress desarrolló el 8x930(basado en el 8051 básico) y el 8x931 como evolución del80251.

Cypress:Hasta su sociedad con Intel desarrolló la línea demicrocontroladores con USB embebido CY7C63xxx. Enalgunos puntos mas fuertes que los de Intel. Pero el valor dela compatibilidad con la conocida MCS51 los hizo migrar ala línea 8x93x. Finalmente desarrollaron el EZ-USB que une lomejor de los dos mundos. La potencia de los CY7C63xxx y lacompatibilidad con el 8051 básico.

Page 49: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:Casos Prácticos

Controladores Genéricos:Se trata de Transceivers genéricos que interfacean concualquier microprocesador.Ofrecen mas flexibilidad en el diseño de diferentessoluciones.Opciones:National USBN9603Lucent USS820/825NetChip Net2888Philips PDIUSBD11

PDIUSBD12Fairchild USB1T11A

Page 50: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Diagrama en Bloques

•Cumple con el capítulo 7 de la especificación USB 1.1.•Contiene un Receptor con entrada diferencial, unreceptor con terminación simple y regulador interno, y utransmisor con fuente de corriente propia

•Le provee 3.3 V al Transceptor.•Se puede utilizar para suministraralimentación al resistor de pull up de 1,5 KΩ

•Circuito de clock Recovery•Detector de glitch•Circuitería de detección de EOP•Lógica de Bit Stuffing

•Formateo de paquetes•Generación y Chequeo de CRC•Detección de Direccionamiento de Endpoints•Controla la devolución de NACK, ACK o Stall

•Utiliza el código NRZI entrante para extraer el clockde 12 MHz del frame entrante. Trabaja con un clockde 48 Mhz. derivado de un cristal de 24 Mhz quealimenta al chip, y un PLL doblador

Page 51: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Endpoint Pipe Controller

Page 52: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Interfaz con el Microprocesador

Modo No Multiplexado

Page 53: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Interfaz con el Microprocesador

Modo Multiplexado

Page 54: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Interfaz con el Microprocesador

Modo Microwire/PLUS

Page 55: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Operación de los Endpoints I

! Cada Endpointtiene asociadauna memoria RAMFIFO.

! La memoria RAMFIFO asociada alEndpoint 0bidireccional es de8 bytes.

! Luego cada unode los seisEndpointsunidireccionalesrestantes tiene unamemoria de 64bytes.

Page 56: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Operación de los Endpoints II

Operación de RAM FIFO de Transmisión!TFxS: Tamaño total en bytes dela memoria FIFO.!TXRP: Puntero de Lectura paraTransmisión. Se incrementa cadavez que el Endpoint Controllerlee la memoria FIFO durante latransmisión al BUS.!TXWP: Puntero de Escritura paraTransmisión. Se incrementa cadavez que el Firmware escribe en lamemoria FIFO un dato para sertransmitido.!TXFL: Indica cuantos bytes tieneactualmente almacenados lamemoria FIFO!TCOUNT: Accesible por elFirmware en el registro TxSx, estevalor indica cuantos bytes seránescritos en la memoria FIFO deTransmisión.

Page 57: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Operación de los Endpoints III

Operación de RAM FIFO de Recepción!RFxS: Tamaño total en bytes dela memoria FIFO.! RXWP: Puntero de Escritura porRecepción. Se incrementa cadavez que el Endpoint Controllerescribe la memoria FIFO porrecepción de un dato desde elBUS.!RXRP: Puntero de Lectura paraRecepción. Se incrementa cadavez que el Firmware lee desde lamemoria FIFO un dato.!RXFL: Indica cuantos bytespueden ser recibidos yalmacenados la memoria FIFOantes de tener Overrun!RCOUNT: Accesible por elFirmware en el registro RXSx, estevalor indica cuantos bytes seránleídos desde la memoria FIFO deRecepción.

Page 58: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Modelo de Programación I

Jerarquía de Registros para reporte de Eventos

Page 59: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Modelo de Programación II

Consideraciones Generales en la descripción de losregistros.

Page 60: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Modelo de Programación III

Registros de Control

SRST:Software Reset. Si es ‘1’ se resetea el controlador. Es idéntico al Reset por Hardwareexcepto que no se altera el registro CCONF.VGE:Voltage Generator Enable: Si es ‘1’ se habilita el generador interno de 3,3 V.NAT:Node Attached: Si es ‘1’ indica que el nodo está listo para ser detectado comoattachado al USB.INTOC:Interrupt Output Control: Controla la salida de Interrupción a un procesador00: Deshabilitado. 01 Activa baja open drain. 10:Activa alta push pull. 11 Activa baja pushpull.

Main Control Register (MCNTRL):

Page 61: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Modelo de Programación IV

Registros de ControlClock Configuration Register (CCONF):

CLKDIV:Divisor del Clock Externo. Luego de un reset divide por 11 lo quesignifica que emite una señal de 4 MHz. por el pin CLKOUT.CODIS:Clock Output Disable. Si vale ‘1’ se deshabilita la salida de clockmencionada en el punto anterior. CLKOUT permanecerá inactivo hastaque se limpie este bit.

Page 62: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Modelo de Programación V

Registros de Control

Revision Identifier (RID):

REVID:Indicador de revisión. Para esta revisión el 9603 contiene en este campo0010b.

Page 63: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Modelo de Programación V

Registros de Control

Node Functional State Register (NFSR):

NFS:El firmware irá efectuandotransiciones de estado según losvalores de los bits de Estados delAlternate Event Register (ALTEV).De acuerdo a eso escribirá enestos bits el estado en que seencuentra el nodo funcional.

Se generó señalización “K”. El Firmwaresetea este modo para efectuar unWake Up remoto.Dura de 1 a 15 mseg.

NodeResume10

Este es el estado Normal de operación.NodeOperational01

Si el Firmware detecta un evento deSuspensión, setea este estado. Lostransceivers operan en modo de bajoconsumo.

NodeSuspend11

Se recibió un Reset por HW, Sw, o por elBUS. Todos los Endpoints deshabilitados.

NodeReset00

Estado delNodo01 Descripción

NFS

Page 64: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Modelo de Programación VI

Registros de ControlMain Event Register (MAEV):

WARN: Se ha seteado uno de los bits en el registro FWEV (FIFO Warning Event). Volverá a ’0’ cuando selee FWEV.ALT: Se ha seteado uno de los bites del registro ALTEV. Se limpiará cuando se lea ALTEV.TX_EV: Se ha seteado alguno de los bits del Registro TXEV (TXFIFOx o TXUNDERNx). Indica que se hacompletado una transacción IN.FRAME: Se setea cada vez que el Frame Counter se actualiza con un nuevo valor. Puede indicar larecepción de un paquete SOF en el USB.NAK: Negative Acknowledge se ha producido y uno de los bits del registro NAKEV indica en queEndpoint. Se limpia cuando se lee NAKEV.ULD: El timer de frames pasó de una condición Locked a una condición Unlocked. Esta situación seindica con el bit UL seteado en el Fram Numbre Register. Se limpia al leer dicho registro.RX_EV: Se ha seteado algúno de los bits del Registro RXEV. Esto indica que se ha completado unatransacción OUT o SETUP. Se limpia cuando se limpian los bits RX_LAST en el registro RXSx y los bitsRXOVRRN en el registro RXEV.INTR: Master Interrupt Enable.Este bit se cablea a 0 en este registro. El correspondiente bit en el MainMask Register (MAMSK) es el Master Interrupt Enable.

Page 65: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Modelo de Programación VI

Registros de ControlMain Mask Register (MAMSK):

Con un 1se habilita la generación de interrupción al microprocesadorcuando el bit correspondiente del registro MAEV se activa. De locontrario la generación de interrupción de esa fuente permanecedeshabilitada.

Page 66: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Modelo de Programación VI

Registros de ControlAlternate Event Register (ALTEV):

WKUP: Este bit se pone en ‘1’ cuando se envía una interrupción por el pin INTR. Este bit esRead Only y se limpia cuando se pone a cero el bit correspondiente (PNDUC o PNDUSB enel Wake Up Register.DMA: DEMA Event. Indica que alguno de los bits del DMA Event Register (DAMEV) se haseteado. Se limpia cuando se resetea el bit del DMAEV.EOP: Indica la detección de una secuencia EOP en el USB. Se limpia con la operación delecturaSD3 y SD5: Se setean cuando se detectan que un port Upstream lleva 3 y 5 mseg.respectivamente en estado Idle. SD3 indica que el dispositivo debe ser suspendido. SD5indica que el dispositivo puede comenzar una operación de Wake Up remota si se lesolicita. Se limpia con la lectura.RESET: Se setea cuando se detecta una condición de reset. Se limpia con la lecturaRESUME: Se enciende si el dispositivo está en estado Idle y recibe señalización en el USB.

Page 67: UNIVERSAL SERIAL BUS · diferencial entre D+ y D-, de modo tal que se establece una comunicación Simplex. Es decir, se transmite en un único sentido en cada momento. VBUS, por su

Universal Serial Bus:USBN9603 Modelo de Programación VI

Registros de ControlAlternate Mask Register (ALTMSK):

Habilita el informe de eventos para cada bit del registro TXEV. En talcaso si se produce un evento en dicho registro y el bit correspondientese encuentra habilitado en este registro, se setea el bit TX_EV del registroMAEV.