4.8 Dispositivos USB I

Anuncio
Genealogía
Enero de 1996, versión 1.0 -> 1,5 Mbps
–
Conocida como Low Speed
Septiembre de 1998, versión 1.1 -> 12 Mbps
–
Conocida como Full Speed
Universal Serial Bus
Clase uno
Septiembre de 2000, versión 2.0 -> 480 Mbps
La cátedra enseña USB versión 1.1
Objetivos de USB
Técnicas Digitales III
Expansión de periféricos sencilla:
– Detección automática de dispositivos
– Conexión y desconexión sin re-iniciar
– Soporte Plug & Play
Garantiza ancho de banda (QoS)
Aplicaciones CTI, Consumo y Productividad
– Compite con FireWire
Temas
Cap. 4 Repaso de la Arquitectura
Cap. 5 Modelo de flujo de datos en USB
Cap. 7 Especificación Eléctrica
Cap. 8 Capa Protocolo
4.1 Descripción del Sistema I
Estructura Jerárquica
Un Host Controller
Una PC
Un Hub Root
La red se amplía
utilizando Hub's
4.1 Descripción del Sistema II
En la norma está todo
No es fácil encontrarlo
Recorreremos sus aspectos más sobresalientes
Capítulo IV
Host, hay uno sólo
Dispositivos
–
–
Recorrido por la Norma USB 1.1
Función (Dotan al sistema de alguna funcionalidad, tal
como 1 Modem, 1 Parlante, 1 Puerto Serial, etc)
Hub (Provee conexiones adicionales)
Un dispositivo cumple USB si:
–
–
–
Comprende al protocolo USB
Responde a las operaciones estándar de USB
Puede describirse como dispositivo
Repaso de la Arquitectura
4.2 Interface Física II
Las conexiones son punto a punto
–
–
Upstream (hacia el Host)
Downstream (hacia el Hub o Función)
Cinco Cables por el cable (VBUS=5V, D-, D+, 0V
y GND)
Hay dos tipos de conectores
–
–
–
El conector A en dirección Upstream
El conector B en dirección Downstream
Es para evitar loops en los Hubs
4.2 Interface Física III
4.1 Descripción del Sistema III
Host Controller's
–
–
–
OHCI Open Host Controller Interface, desarrollado
por Compaq.
UHCI Universal Host Controller Interface,
desarrollado por Intel (su módulo de SW es mas
complejo)
EHCI Enhanced Host Controller Interface, mas
reciente, se incorporó con USB 2.0 (Perdón dije que
de USB 2.0 no hablaría)
4.2 Interface Física I
Full Speed 12 Mbps
Low Speed 1,5 Mbps
Ambos conviven en el
mismo bus
Es diferencial
NRZI (¿para qué?)
Bit Stuffing (¿Por
qué?)
SYNC before Packet
4.4 Bus Protocol I
Es un protocolo por encuesta
El Host Controller inicia las encuestas, estas son
transacciones
Una transacción está compuesta por paquetes:
–
–
–
TOKEN
DATA
HANDSHAKE (dependiendo del tipo de
transferencia)
4.4 Bus Protocol II
Pipe: Modelo de transferencia de datos
–
–
–
Stream (no definidos por USB)
Mensaje (definidos en la norma)
Los cables de datos está cargados a ambos
extremos,
–
–
esto permite la detección de la conexión y desconexión
de dispositivos y
Conocer si el dispositivo es Low o Full Speed
No hay límite de distancia para los cables, el
límite está dado por las pérdidas admitidas.
4.3 Power
Aspecto distribución
–
Fuente o destino en el Host
endpoint en el dispositivo
Dos tipos de pipes
–
4.2 Interface Física IV
–
bus-powered devices
self-powered devices
Un Hub proveerá energía desde una fuente
propia o desde el bus mismo.
Posee además gestión de alimentación de los
dispositivos
–
–
suspend
resume
4.4 Bus Protocol V
Las transacciones son programadas (¿por quién?)
El NAK es utilizado para controlar el flujo de
información.
–
Cuando una transacción es NAKed es retransmitida
por el host, a su tiempo
Señalización diferencial
CRC protege campos de control y de datos
Detección de conexión y desconexión
Recuperación automática de errores (NAKed)
Control de flujo
Hay pipes de datos y de control, independencia
entre el control del dispositivo y la función en sí
misma
Los pipes aparecen cuando el dispositivo se
configura.
Definiciones de un pipe involucran aspectos
como:
–
Así se van programando tiempos para cada pipe
en el bus.
Se evita sobrecarga en los buffer's.
4.5 Fortalezas
4.4 Bus Protocol III
–
–
–
Bandwidth,
tipo de transferencia,
dirección,
tamaño de buffer.
4.4 Bus Protocol IV
Hay un pipe que siempre existe: El Default
Control Pipe
Por el Default Control Pipe
–
–
–
se accede a la configuración,
al estado y
se controla del dispositivo
4.7 Tipos de flujo de datos I
Flujo de datos y flujo de control
Sucede en pipes (Host software - endpoint)
Es unidireccional, así se puede diferenciar el Up
Stream del Down Stream
Un dispositivo puede tener varios pipes
Cuatro tipos de transferencias: Control, Data
Bulk, Data Interrupt y Data Isochronous
4.7 Tipos de flujo de datos II
Asignación de ancho de banda
–
–
–
Se hace a los pipes
Infiere un buffer determinado
así conviven dispositivos con diferentes
requerimientos de BW sobre un mismo bus
4.6 Configuración del Sistema I
En la conexión
–
–
–
–
Todo dispositivo se conecta a un Hub (Hub root)
El Host le asignará un address a través del Default
Control Pipe
El Host define si es Hub o Función
Luego el Host le pedirá a la función otros datos y
notificará al SO de la disponibilidad de dicha función
4.6 Configuración del Sistema II
En la desconexión
–
–
La desconexión es notificada al SO
En caso de un Hub arrastrará a los dispositivos
conectados a el
Enumeración: Proceso por el cual el Host le
asigna un número al dispositivo y obtiene de este
información necesaria para su activación en el
SO
4.8 Dispositivos USB III
Hay dos grandes grupos de clases de
dispositivos:
–
–
Hubs, son lo únicos que pueden proveer de mas puntos
(ports) de conexión USB
Funciones, son el resto. Los que proveen de
capacidades al Host (mouse, modem, serial converter,
etc)
4.8 Dispositivos USB I
Los dispositivos están clasificados por "clases"
Cada dispositivos es caracterizado por un
número que es asignado al momento de su
enumeración
Todo dispositivo "que se precie de tal" deberá
manejar la Default Control Pipe (endpoint 0)
Por el Default Control Pipe el Host accederá a
información complementaria del dispositivo
4.8 Dispositivos USB II
La información complementaria puede ser
–
Standard, Información común a todos los dispositivos
USB
–
–
Identificación de Fabricante, Clase, alimentación
Descriptores de Dispositivo, Configuración, Interface y
endpoint's
de Clase, información propia de la clase
USB Vendor, información propietaria
Capítulo V
4.8 Dispositivos USB IV
El Hub posee dos partes
–
–
Modelo de flujo de datos en USB
Hub Controller, es una interface de registro que
permite comunicación con el Host. Permite configurar
al Hub y controlar sus puertos.
Hub Repeater, es un switch controlado por el
protocolo. Opera entre el puerto upstream y los
puertos downdstream. Posee capacidad de señalizar
reset, suspend y resume.
4.8 Dispositivos USB V
5.1 Áreas de
implementación I
Funciones
–
–
–
–
–
–
Se conectan a un Hub
Típicamente es un periférico
Puede ser un dispositivo compuesto, multifunción y
poseer capacidades de función y de hub
Cada función fija los recursos que necesita (BW,
delay, Energía)
Antes de ser utilizado tiene que ser enumerado
Cada función puede tener múltiples configuraciones
5.1 Áreas de implementación IV
Estructura de capas
–
–
–
5.1 Áreas de implementación II
La capa de interface USB provee conectividad física,
señalización y de paquetes entre el Host y los
dispositivos
La capa de dispositivo USB es la vista del USB
System Software para operaciones del protocolo USB,
como por ejemplo la enumeración
La capa Función provee funcionalidades adicionales
al host a través de un client software apropiado
5.2.3 Topología
Física
Client Software: Software en el Host que se
corresponde con el dispositivo, el driver,
generalmente provisto por el SO o hecho por el
fabricante del dispositivo.
5.1 Áreas de implementación III
USB System Software: Interface entre el USB
Host Controller y el client SW. Es provisto por el
SO
USB Host Controller: Encargado de la conexión
de un dispositivo
USB physical device: El todo hardware del lado
USB del dispositivo.
5.3 Flujos de comunicación I
Es independiente para cada par client SW – Función
Un conjunto de endpoint's forman una interface
Termina en un endpoint -> Son unidireccionales
El dispositivo lógico es la totalidad de endpoint's al cual
se le asignó un address en la enumeración
Cada endpoint a su vez tendrá un número
Así address de dispositivo, de endpoint y la dirección (in,
out) definen univocamente a un endpoint
5.2.4
Topología
Lógica
Este es el
BUS
5.2.5 Relación CSw y Función
Relación uno a uno
Deben utilizar las
interfaces de
programación de USB
del SO
5.3 Flujo de comunicación V
Endpoint cero, Default Control Pipe
–
–
–
–
–
–
Necesario
Es el único endpoint bi-direccional
inicializa y manipula dispositivos lógicos
Accede a información de configuración y de estado
Soporta transferencia de control
Está siempre disponible
5.3 Flujo de comunicación VI
5.3 Flujo de comunicación III
endpoint's distintos de cero
–
–
–
Son 15 endpoint's in y 15 endpoint's out
Los utilizan las funciones
Están disponibles sólo después de la enumeración
(¿por qué endpoint se realiza la enumeración?)
(¿para qué se realiza la enumeración?)
5.3 Flujo de comunicación IV
Así un endpoint se caracteriza por:
–
–
–
–
–
–
–
frecuencia/latencia de acceso al bus
Ancho de banda requerido
Número de endpoint
Tratamiento de errores
Tamaño máximo de paquete
Tipo de transferencia
Dirección
5.3 Flujo de comunicación IX
Message Pipe
–
–
–
–
–
–
Asociación endpoint en el dispositivo porción de SW
en el Host
Transferencia de buffer a buffer (FIFO)
Los pipes son de dos tipos
El USB System Software garantiza que no habrá
simultaneidad de Request por dispositivo
Pero un message pipe puede ser interrumpido por el
inicio de otro Request
Utilizan el mismo número de endpoint (in y out)
De control: La utiliza el Default Control Pipe,
Comandos, Configuración, Status
Isocrono: Periódicas, Real-Time, no Segura
Interrupt: Paquetes chicos, Seguro, BW mínimo
garantizado
Bulk: Grandes Volúmenes de Datos, Seguro,
"Best Effort"
Pipe
–
Request (Siempre del Host al dispositivo)
Data (La dirección depende del Request)
Status (En Sentido opuesto al Data)
5.4 Tipos de transferencias
El Default Control Pipe es siempre un message pipe
Posee tres estados:
–
5.3 Flujo de comunicación VII
–
–
Stream, estructura no definida por USB
Message, estructura definida por USB
En ningún caso los datos son interpretados por USB
(aún los pipes de tipo message)
Recordar la importancia del Default Control Pipe
5.3 Flujo de comunicación VIII
La información es transmitida o recibida por el
client SW por medio de IRP (I/O Request
Packet) en la interface denominada USB Driver
Esta interface depende del SO que se trate
Respuestas posibles:
–
–
STALL, abort de la transferencia
NAK, significa que el dispositivo está ocupado, no
significa un error
Para profundizar en transferencias
5.5 a 5.8
5.9 Acceso al bus I
El proceso de asignación de ancho de banda se
denomina "transfer management"
Intervienen cuatro entidades
–
–
–
–
Client SW generando IRP's
USB Driver transfiere los IRP's al Host Controller
Driver (HCD) utilizando un tipo de transferencia
determinado. Interviene en el proc. de enumeración
El HCD transforma los IRP's en transacciones
El Host Controller transforma las transacciones en
Paquetes
7.1.1 Características eléctricas
Señalización diferencial
VOL(max) 0,3V
VOH(min) 2,8V
Half Duplex
Detecta modo diferencial y modo común (¿Para
qué modo común?)
7.1.5 Identificación de la velocidad
Los identifica por el R de Pull Up
–
–
Capítulo VII
Full Speed a D+
Low Speed a D-
RPU=1.5K conectada a una fuente de 3V a 3,6V
Especificación eléctrica
7.1.5 Full Speed
7.1.7 Niveles de señal
Dos estados J y K
Los cruces indican 0's, la ausencia de cruces 1's
J Idle
K Resume
7.1.5 Low Speed
Conexión Low Speed
Desconexión
Proceso de RESET
Conexión Full Speed
7.1.7 Señalización de datos
RESUME
–
–
–
Actividad en el puerto Upstream
20mSg de estado K, seguido de un EOP Low Speed
Comenzando con un SOF
7.1.7 Señalización de datos
–
–
Remote Wake Up
–
–
Primero pasaje de estado J a K
Esto significa el primer 0 del SYNC
Fin de paquete
–
Resume iniciado desde la función
de 1 a 15mSg de estado K, seguido de EOP Low
Speed y luego Alta impedancia
7.1.9 Bit Stuff
Inicio de datos (SYNC)
–
–
2tB de SE0
1tB de estado J
Alta impedancia
7.1.7 Señalización de datos
RESET
–
–
10mSg por lo menos de SE0
Lo genera el HUB o es ordenado por el Host
Controller desde el USB System Software
SUSPEND
–
–
–
Idle por mas de 3mSg
El SOF evita entrar en Suspend
La R de Pull Up mantiene el estado Idle
8.3 Formato de los paquetes
Todo comienza con un estado IDLE (Estado J sostenido
"1" para USB 1.1)
Seguido por el SYNC
Luego tendremos
–
–
–
Token
Data
Handshake, si lo hubiera
Capa Protocolo
– Definición de Paquetes y sus Campos
– Formato de las Transacciones en los diferentes
tipos de transferencia
– Mecanismos de detección y recuperación de
errores
Finalizando con un End Of Packet (2 SE0 + 1 J("1")
Termina en el mismo estado que comenzó
8.3.1 Packet Identifier (PID)
Capítulo 8
Son cuatro bits
Determinan el formato del paquete
Posee su propio mecanismo de detección de error
Si la función no puede responder al paquete
identificado ignora el pedido
Bit ordering & Synchronization
Low Significant Bit (LSB) First
Todos los paquetes comienzan son un campo
SYNC (00000001), sirve para sincronizar el reloj
del receptor
El campo SYNC es precedido por la señalización
de IDLE del bus
El compo SYNC es sucedido por el campo
identificador de paquete (PID)
De ahora en mas no se mostrará el campo SYNC
8.3.3 Campo número de frame
Presente sólo el Start Of Frame (SOF) token
solamente
Es de 11 bits
Lo incrementa el Host en uno en cada Frame,
estos se suceden cada 1mSg
Al llegar a 7FFH vuelve a cero
8.3.2 Campo Dirección
Posee dos partes
–
–
Function address
endpoint address
Function Address cero reservado para el estado
Default
8.4.1 Formato del paquete TOKEN
El TOKEN puede ser IN, OUT o SETUP
El Host es el único que emite este tipo de
paquete
Notar que es de 3 bytes, luego debe venir un
EOP
8.4.2 Formato del SOF
Hay uno cada 1mSg
Es una transacción TOKEN sólo
Es señalización, nada mas
Sirve como mecanismo de tracking
Es de 3 bytes seguido de EOP
8.3.4 Campo Data
Va de cero a 1023 bytes
Debe ser un número entero de bytes
8.3.5 CRC
Todos los campos distintos del PID son
protegidos por un Código de Redundancia
Cíclica (CRC)
No considera el bit de stuffing
El CRC en los paquetes TOKEN es de 5 bits
(G(X) = X5 + X2 + 1)
El CRC en los paquetes DATA es de 16 bits
(G(X) = X16 + X15 + X2 + 1)
Para profundizar
8.4.3 Formato del paquete DATA
Número entero de bytes, puede ser cero
8.4.5 Handshake Responses
8.5.1 Transacciones BULK
8.4.4 Formato paquete Handshake
Sólo existe en transferencia que admiten control
de flujo
Es de un byte seguido de EOP
8.5.2 Transferencias de CONTROL
8.5.1 Transferencias BULK
8.5.3 Transferencias Interrupt
Toda transacción BULK comienza con DATA0
DATA0 y DATA1 servirá como mecanismo de
error
8.5.2 Transferencias de CONTROL
8.6.1 Inicialización via SETUP TOKEN
8.5.4 Transferencia Isochronous
8.6.2 Transacciones de Dato exitosas
8.5 resumen
Tipo de Transferencia
Control
Bulk
Interrupción
Isócrona
Uso típico
Configuración
Impresora, scanner Mouse, Teclado
Audio
Obligatoria
Soportada por dispositivos Low
Speed
Corrección de errores
Si
No
No
No
Si
No
Si
No
Si
Si
Si
No
Tipo de pipe
Message
Stream
Stream
Stream
Garantiza Velocidad de envío
No
No
Si
Si
Garantiza mínimo tiempo de acceso a la
No
información
No
Si
Si
Tamaño de datos por Endpoint (Full
Speed)
8, 16, 32, ó 64 bytes
8, 16, 32, ó 64
bytes
1 a 64 bytes
hasta 1023 bytes
Tamaño de datos por Endpoint (Low
Speed)
8 bytes
No aplica
8 bytes
No aplica
Ancho de banda reservado por frame
10%
Ninguno
90 % (ambas combinadas)
8.7.2 Timing
8.6.3 Transacciones DATA corruptas o no
aceptadas
8.6.4 ACK corrupto
Descargar