Está en la página 1de 60

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Protocolo USB aplicado a placas


con microcontroladores

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

INDICE
1. INTRODUCCION AL BUS USB
1.1. IMTRODICCION
1.2. QUE ES USB?
1.3. ANTECEDENTES
1.3.1. METAS DEL USB
1.3.2. TAXONOMA
1.3.3. LISTA DE HERRAMIENTAS
1.4. ARQUITECTURA DEL USB
1.4.1. DESCRIPCION DEL SISTEMA
2. TOPOLOGA Y PROTOCOLOS
2.1. TOPOLOGIA DEL BUS. DISPOSITIVOS USB
2.1.1. MODELO LOGICO FUNCIONAL.

2.2. PROTOCOLO
2.2.1. TRAMAS Y MICROTRAMAS
2.2.2 ENDPOINTS HIGH-SP
EED Y HIGH BANDWIDTH.
2.2.3 PROTOCOLO I: PAQUETES Y TRANSACCIONES.
2.2.4. PROTOCOLO II: PIPES Y TRANSFERENCIAS
3. CONECTORES
3.1. PATILLAJE
3.2. DIFERENCIA ENTRE CABLE USB Y CABLE PARALELO
3.3. PRECIOS
4. APLICACIN A MICROCONTROLADORES
4.1 PATILLAJE MICROCONTROLADOR PIC
4.2 CONTROLADOR PERIFERICOS USB
4.3. CONEXIN PC-MICROCONTROLADOR
4.4. CONTROLADORES (DRIVES) DE SOFTWARE

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

1. INTRODUCCIN AL USB
1.1. INTRODUCCIN

Cada da aparecen nuevas utilidades de mucha ms potencia, con ms


posibilidades y mucho ms grficas, que requieren de ms capacidad y por
lo tanto resulta que nuestras tareas ordinarias cada vez son de mayor
volumen.

Para que podamos almacenar, transmitir o recibir dichas tareas, aparecen


en el mercado perifricos y componentes de mayor capacidad, discos duros
con ms Gigas, tarjetas de video ms potentes, procesadores ms rpidos,
etc ... pero tambin necesitamos que la "va" por la que se van a transmitir
esos datos sea ms fiable y ms rpida, de forma que se ajuste a los
avances producidos.

Por esta razn, aparecen nuevos medios fsicos ms rpidos, en un


principio tenamos la interfaz serie y paralelo, pero era necesario unificar
todos los conectores creando uno ms sencillo y de mayores prestaciones.
As naci el USB (Universal Serial Bus) una de las mayores revoluciones
en la computacin, una tecnologa que dej completamente en el olvido la
forma de interconectar perifricos a las computadoras, la expansibilidad, la
sencillez de configuracin y uso del hardware.

Ya desde hace algunos aos, las empresas de noticias e investigacin


hablaban sobre este tipo de bus, para que luego de mucho trabajo y
consenso, la especificacin USB Versin 2.0 estuviera disponible para
todas las empresas de fabricacin de hardware del mundo, ofreciendo
diversos dispositivos que soportan esta especificacin.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

La documentacin tcnica relacionada con USB es realmente abundante y


de gran profundidad, no solamente informtica, sino tambin elctrica,
electrnica y mecnica. Por esta razn es altamente recomendable
analizarla detalladamente, desde sus orgenes y la motivacin para su
actual existencia.

1.2. QU ES USB?

El Bus Universal en Serie (USB) consiste en


una norma para bus perifrico desarrollada
por las industrias de computadoras y
telecomunicaciones (Compaq, Hewlett-
Packard, Intel, Lucent, Microsoft, NEC y
Philips) . Un computador con USB permite
adjuntar dispositivos perifricos
rpidamente, sin necesidad de reiniciar ni de
volver a configurar el sistema. Los
dispositivos con USB se configuran automticamente tan pronto como se
han adherido fsicamente.
La computadora cuenta normalmente con dos conectores USB. Adems, se
pueden unir dispositivos con USB en una cadena para conectar ms de dos
dispositivos a la computadora.

1.3. ANTECEDENTES

Este captulo presenta una breve descripcin de los


antecedentes del Bus Serial Universal (USB),
incluyendo metas de diseo, herramientas del bus y
tecnologas existentes.

1.3.1. METAS DEL USB

El USB est especificado para ser una extensin estndar para la industria
de arquitectura PC con un enfoque en perifricos para PC que habilita
aplicaciones para consumidores y negocios. Los siguientes criterios se
aplicaron en la definicin de la arquitectura del USB:
? Fcil de usar por los perifricos de expansin PC
? Solucin de bajo costo que soporte ratas de transferencia arriba
de 480 Mb/s

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

? Full soporte para datos de voz, audio y video en tiempo real


? Protocolo flexible para modo mixto de transferencia isocrnica y
mensajera asincrnica
? Comprensin de varias configuraciones PC y factores de forma
? Provisin de una interface estndar
? habilitacin de nuevas clases de dispositivos que aumenten la
capacidad de los PC
? iFull compatibilidad de retroalimentacin de los dispositivos
USB con las versiones previas de la especificacin.

1.3.2. TAXONOMA

La figura 3.1 describe una taxonoma para el rango de carga de trabajo


para el trfico de datos que puede ser servido a travs del USB. Como
puede verse, un bus de 480 Mb/s comprende los rangos de datos de
velocidad alta, full velocidad y baja velocidad. Tpicamente, los tipos de
datos de alta velocidad y full velocidad pueden ser isocrnicos, mientras
los datos de baja velocidad vienen de herramientas interactivas. El USB es
principalmente un bus de PC pero puede ser fcilmente aplicado a otras
herramientas computacionales como Host-centric. La arquitectura del
software para la futura extensin del USB provee soporte para mltiples
Controladores Host USB.

Figura 3-1. Taxonoma del Espacio de Aplicacin

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

1.3.3. LISTAS DE HERRAMIENTAS

La especificacin USB provee una seleccin de atributos que puede


conseguir mltiples puntos de integracin precio/desempeo y puede
habilitar funciones que permiten diferenciacin del nivel de sistema y
componente. Las herramientas son categorizadas por los siguientes
beneficios:
Fcil de usar por el usuario final
? Modelo simple de cables y conectores
? Detalles elctricos aislados del usuario final (e.g., terminaciones
del bus)
? Perifricos auto-identificables, mapeo automtico de la
configuracin y la funcin del controlador
Rango ancho de carga de trabajo y aplicaciones
? Apropiado para dispositivos con rangos de ancho de banda de
unos Kb/s a varios miles Mb/s
? Soporta tipos de transferencia isocrnicas tan bien como
asincrnicas con los mismos conductores
? Soporta operacin concurrente de muchos dispositivos
(conexiones mltiples)
? Soporta hasta 127 dispositivos fsicos
? Soporta transferencia de mltiple flujo de datos y mensajes entre
el host y los dispositivos
? Permite dispositivos compuestos (i.e., perifricos compuestos de
muchas funciones)
? Disminuye el protocolo areo, resultando en alta utilizacin del
bus

Ancho de Banda Isocrnica


? Ancho de banda garantizado y bajo estado latente apropiado para
telefona, audio, vdeo, etc.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Flexibilidad
? Soporta un ancho rango de tamaos de paquete, que permite un
rango de opciones de herramientas de memoria.
? Permite un ancho rango de herramientas promedio de datos por
paquetes
? Control de flujo por encabezamiento de memoria dentro del
protocolo
Robustez
? El mecanismo de recuperacin de error de encabezamiento/falla
est dentro del protocolo
? La insercin y remocin dinmica de dispositivos es identificada
en tiempo real
? Soporte de identificacin de dispositivos fallados
Sinergia con la industria PC
? El protocolo es simple de implementar e integrar
? Consistente con la arquitectura plug and play del PC
? Ventajas con las interfaces de sistemas operativos existentes
Bajo costo de implementacin
? Bajo costo del subcanal a 1.5 Mb/s
? Optimizado para integracin entre perifricos y el hardware host
? Utilizable por desarrolladores de perifricos de bajo costo
? Uso cmodo de tecnologas
Trayectoria de mejoramiento
? Arquitectura mejorada para soporte mltiple de controladores
host USB en un sistema

1.4. ARQUITECTURA DEL USB

Este captulo presenta un resumen de la


arquitectura del Bus Serial Universal y conceptos
claves. El USB es un cable bus que soporta el
intercambio de datos entre un computador host y
perifricos de banda ancha accesibles
simultneamente. Los perifricos adjuntados parten
la banda ancha del USB a travs de la
programacin del host, protocolo de prueba-base. El bus permite que los
perifricos sean adjuntados, configurados, usados y detectados mientras el
host y otros perifricos estn en operacin.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

En los siguientes items se describen varios componentes del USB en gran


detalle.

1.4.1. DESCRIPCIN DEL SISTEMA USB

Un sistema USB es descrito por tres reas definidas:


? Interconexin USB
? Dispositivos USB
? Host USB
La interconexin USB es la manera en la que los dispositivos USB son
conectados para una comunicacin con el host. Esta incluye lo siguiente:
? Topologa del Bus: Modelo de conexin entre los dispositivos
USB y el host
? Conexiones Inter-capas: En trminos de capacidad de pila, las
pilas USB que son hechas en cada capa en el sistema.
? Modelos de flujo de datos: La manera en que cada dato se mueve
dentro del sistema entre los productores y los consumidores.
? Programacin USB: El USB provee una interconexin partida.
El acceso a la interconexin es programado en orden para
soportar transferencia isocrnica de datos y para eliminar el
arbitraje areo.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

2.TOPOLOGIA Y PROTOCOLOS
La Figura muestra la estratificacin del
sistema USB. El mismo est compuesto por tres
reas claramente demarcadas: (1) el host USB,
(2) los dispositivos USB y, (3) toda la
interconexin USB. La interconexin USB es la
manera en la cual los dispositivos USB se
conectan y comunican con el host, esto incluye:
la topologa del bus o el modelo de conexin
entre los dispositivos USB y el host; los
modelos de flujo de datos, es decir la forma en
la que la informacin se mueve en el sistema
entre los diversos elementos del mismo; la
planificacin USB que define la secuencia en la
cual los dispositivos accedern al bus;
finalmente, las relaciones entre capas del modelo, y las funciones de cada capa.

2.1. TOPOLOGIA DEL BUS.DISPOSITIVOS USB

Los dispositivos USB pueden ser hubs que provean puntos de conexin
adicionales a los existentes en el host, o bien diferentes dispositivos tpicos
perifricos. Es evidente que todos estos dispositivos deben tener la capacidad de
soportar la especificacin USB en cuanto a protocolos de comunicacin se
refiere, operaciones USB , configuracin y reseteo USB.
La topologa del bus USB adopta forma de estrella y se organiza por
niveles. En un bus USB existen dos tipos de elementos: Anfitrin (host) y
dispositivos; a su vez los dispositivos pueden ser de dos tipos: Concentradores y
Funciones:
El anfitrin o host: A diferencia
de los dispositivos y los hubs, existe tan
solo un host dentro del sistema USB, que
es el ordenador mismo, particularmente
una porcin del mismo denominado
Controlador USB del Host. Este tiene la
misin de hacer de interfaz entre el micro
mismo y los diferentes dispositivos.
Existen algunas particularidades respecto a
este controlador. Su implementacin es
una combinacin de hardware y software
todo en uno, es decir firmware. Puede

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

proveer de uno o dos puntos de conexin iniciales, denominados Hub Raz, a


partir de los cuales y de forma ramificada irn conectndose los perifricos.
El Host USB trabaja con los diferentes dispositivos valindose del
Controlador de Host compuesto por una parte de hardware y otra de software, de
esta forma conjunta el host es responsable al nivel de hardware, de los siguientes
aspectos dentro del sistema UBS:
1. Detectar tanto la conexin de nuevos dispositivos USB al sistema como la
atencin de aquellos ya conectados, y por supuesto, configurarlos y
ponerlos a disposicin del usuario, tarea que involucra acciones por
software.
2. Administrar y controlar el flujo de datos entre el host y los dispositivos
USB, es decir el movimiento de informacin generada por el usuario
mismo.
3. Administrar y regular los flujos de control entre el host y los dispositivos
USB, es decir la informacin que se mueve con el objeto de mantener el
orden dentro de los elementos del sistema.
4. Recolectar y resumir estadsticas de actividad y estados de los elementos
del sistema.
5. Proveer de una cantidad limitada de energa elctrica para aquellos
dispositivos que pueden abastecerse con tan solo la energa elctrica
proveniente desde el ordenador (el teclado y el ratn son dos ejemplos
claros).

Por otra parte, al nivel de software las funciones del Controlador de Host se
incrementan y complican:

1. Enumeracin y configuracin de los dispositivos conectados al sistema.


2. Administracin y control de transferencias isocrnicas de informacin.
3. Administracin y control de transferencias asincrnicas.
4. Administracin avanzada de suministro elctrico a los diferentes
dispositivos.
5. Administracin de la informacin del bus y los dispositivos USB.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Los concentradores (Hubs): Los hubs son elementos claves dentro de la


arquitectura Conectar & Operar de USB. Adicionalmente, simplifican de gran
manera la sencillez de la interconexin de dispositivos al computador. Son el
centro de una estrella, y sirven para conectar con el sistema anfitrin, con otro
hub o con una funcin. Cada hub puede proporcionar 500 mA de energa y de
alimentacin (+5 V.cc + 0.25V.Las Figuras muestran hubs USB disponibles en el
mercado.

Bajo una ptica elctrica y teleinformtica,


los hubs son concentradores cableados que
permiten mltiples conexiones simultneas. Su
aspecto ms interesante es la concatenacin,
funcin por la que a un hub se puede conectar otro
y otro, ampliando la cantidad de puertos
disponibles para perifricos.

El hub USB tiene la capacidad de detectar si un perifrico


ha sido conectado a uno de sus puertos, notificando de
inmediato al Controlador de Host en el computador, proceso que
inicia la configuracin del equipo nuevo; adicionalmente, los
hubs tambin son capaces de detectar la desconexin de un
dispositivo, notificando al Controlador de Host que debe
remover las estructuras de datos y programas de administracin
(drivers) del dispositivo retirado.

Otra de las funciones importantes de los hubs es la de aislar a los puertos


de baja velocidad de las transferencias a alta velocidad, proceso sin el cual todos
los dispositivos de baja velocidad conectados al bus entraran en colapso. La
proteccin de los dispositivos lentos de los rpidos ha sido siempre un problema
serio dentro de las redes mixtas, como es USB.

El hub est compuesto por dos partes importantes: El Controlador del Hub
y el Repetidor del Hub. El Repetidor del Hub tiene la funcin de analizar,
corregir y retransmitir la informacin que llega al hub, hacia los puertos del
mismo. Mantiene una memoria consistente en varios registros de interfaz que le
permiten sostener dilogos con el host y llevar adelante algunas funciones
administrativas adems de las meramente operativas; mientras que el Controlador

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

de Hub puede asemejarse a una pequea CPU de supervisin de las mltiples


funciones que deben desempear un hub.

Una funcin Es dentro de la terminologa USB, todos los dispositivos que


pueden ser conectados al bus USB, a excepcin de los hubs .Es un dispositivo
capaz de transmitir o recibir datos de informacin de control en un bus USB,
suele conectarse como un dispositivo independiente enlazado por un cable de por
lo menos 5 metros, a un puerto del hub o directamente al sistema anfitrin.. El
comn denominador a todas las funciones USB es su cable y el conector del
mismo, diseado y fabricado atendiendo a las especificaciones del bus, por lo que
no hay que preocuparse por la compatibilidad entre equipos de diferentes
fabricantes. Son funciones tpicas el ratn, el monitor, mdem, etc. La Figura las
ilustra adecuadamente.

Un aspecto interesante de las funciones, es que pueden ser a su vez nuevos


hubs. De hecho, la figura siguiente muestra un esquema en el que el PC tiene tres
puertos, el monitor cuatro, el teclado tres y adicionalmente un hub propiamente,
provee 4 puertos ms. En un esquema tan sencillo, existen 14 puertos disponibles
para todo tipo de perifricos, entre los que podemos citar: ratn, tablilla
digitalizadora, lpiz ptico, teclado, impresora, un telfono ISDN, etc.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

En general cada segmento del bus representa una conexin punto a punto de
alguno de los tipos siguientes:
Sistema anfitrin Funcin
Sistema anfitrin Concentrador
Concentrador Concentrador
Concentrador Funcin

Topologa estrella del bus USB

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Hasta ahora todos estamos acostumbrados a ver en la parte posterior de


nuestras computadoras dos puertos seriales, un puerto paralelo y quien sabe un
puerto PS/2. La introduccin del bus
USB no marca un final para todos los
dispositivos que poseen muchos usuarios
con conectores RS-232 de 9 25 pines.
Los PCs que estarn disponibles en el
mercado seguirn manteniendo estos
puertos con sus caractersticas habituales,
sin embargo se plantea que a la larga
desaparezcan poco a poco con el
transcurrir de los aos. De todas formas
ya existen conversores tanto seriales y
paralelos a USB, como se muestra en la
Figura.

2.1.1. MODELO LOGICO FUNCIONAL.

El diagrama de la Figura ilustra el flujo de datos USB a partir de tres


niveles lgicos: entre el Software Cliente y la Funcin, el Controlador USB y el
dispositivo, y finalmente la capa fsica, donde la transmisin realmente sucede.
Es importante entender que este modelo es muy parecido al OSI, el estndar de
redes, y su comprensin radica en el hecho de que si bien existe un solo canal
fsico, pero los datos son manejados en cada punto por unidades homlogas, tal
como si estuviesen sosteniendo una comunicacin directa. Por esta razn se las
denomina Capas Lgicas.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

El nivel superior lgico es el agente de transporte de datos que mueve la


informacin entre el Software Cliente y el dispositivo. Existe un Software Cliente
en el host, y un Software De Atencin al mismo en cada una de las funciones o
perifricos USB. A este nivel, el host se comunica con cada uno de los perifricos
en alguna de las varias formas posibles de transmisin que soporta USB. El
Software Cliente solicita a los dispositivos diversas tareas y recibe respuestas de
ellos a travs de esta capa.

La capa lgica intermedia es administrada por el Software de Sistema


USB, y tiene la funcin de facilitarles las tareas particulares de comunicacin a la
capa superior, cabe decir, administra la parte del perifrico con la que la capa
superior desea comunicarse, maneja la informacin de control y comando del
dispositivo, etc. Su objetivo es permitir a la capa superior concentrarse en las
tareas especficas tendientes a satisfacer las necesidades del usuario,
adicionalmente gestiona el control interno de los perifricos.

El acceso al bus es bajo la modalidad de Ficha o Token, lo que involucra


siempre complejidad de protocolos, especialmente si agregamos dos velocidades
posibles: 12Mbps 1.5Mbps. Todos estos algoritmos y procesos son
administrados por el Host USB, reduciendo la complejidad del perifrico, y lo
ms importante, el costo final de los dispositivos USB.

La capa fsica del modelo lgico USB comprende los puertos fsicos, el
cable, los voltajes y seales, el hardware y funcionamiento del hardware. Esta
capa tiene el objetivo de liberar a las capas superiores de todos los problemas
relacionados a la modulacin, voltajes de transmisin, saltos de fase, frecuencias
y caractersticas netamente fsicas de la transmisin. As que dejemos este punto
a las empresas que fabrican los diferentes dispositivos de hardware USB.

2.2. PROTOCOLO

2.2.1. TRAMAS Y MICROTRAMAS

USB 1.x divida el tiempo en tramas de 1 milisegundo. Adicionalmente,


USB 2.0 define un tiempo de microtrama de 125 microsegundos.
Al igual que en USB 1.x se reservan ciertos porcentajes del tiempo de
trama, para dar servicio a las distintas transacciones de Control, Interrupcin e
Iscronas full/low-speed, en USB 2.0 tambin se reservan ciertos porcentajes del
tiempo de microtrama, para dar servicio a los distintos tipos de transacciones de
alta velocidad.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

2.2.2. ENDPOINTS HIGH-SPEED Y HIGH BANDWIDTH

En USB 1.x, el tiempo mximo reservado en cada trama a cada endpoint


Iscrono o de Interrupcin es el de una transaccin por trama.
USB 2.0 soporta dos tipos de endpoints Iscronos y de Interrupcin:

? ??Endpoints de ancho de banda normal, que precisan hasta 1,024 bytes por
microtrama (una transaccin).

? ??Endpoints de alto ancho de banda (High Bandwidth), que precisan ms de


1,024 bytes por microtrama, hasta un mximo de 3,072 bytes (3 transacciones).

2.2.3 PROTOCOLO I: PAQUETES Y TRANSACCIONES

USB 2.0 mantiene la arquitectura centralizada definida en USB 1.x, en la


que el host es el iniciador de todas las transferencias que se producen en el bus.
Los dispositivos deben mantenerse a la espera hasta recibir del host un paquete
especial (token) dirigido a l, indicando el tipo de transferencia a realizar.
USB 2.0 tambin mantiene la estructura de la transaccin, formada en base
a la secuencia de paquetes Token-Dato-Validacin (Handshake), definida en USB
1.x. Bsicamente USB 2.0 aade algunos tipos de paquetes nuevos, para
implementar las nuevas funciones y protocolos que se han incorporado.

En el grupo de paquetes de Token, siguen existiendo los definidos en USB


1.x (IN(direcciones de dispositivo transmisor de los datos), OUT(direcciones de
dispositivo destinatario de los datos), SOF(indicador de comienzo y numeracin
de trama) y SETUP(direcciones de dispositivo destinatario de comandos de
control)), aunque USB 2.0 reutiliza el tipo SOF:

? ??USB 1.x utiliza el token SOF para indicar el Principio de Trama (una vez cada
milisegundo). USB 2.0 usa este mismo token para indicar el Principio de
Microtrama (una vez cada 125 microsegundos).

En el grupo de paquetes de Datos, aparte de los dos tipos definidos en USB


1.x (DATA0(paquete de datos par) y DATA1(paquete de datos impar)), USB 2.0
define dos nuevos tipos:

? ??DATA2, empleado en transacciones iscronas de alta velocidad y alto ancho


de banda.

? ??MDATA, empleado en transacciones iscronas de alta velocidad y alto ancho


de banda y en transacciones Split (las transacciones se describen ms adelante).

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

En el grupo de paquetes de Validacin (Handshake), aparte de los tres


tipos definidos en USB 1.x (ACK(recepcin de paquete de datos libre de errores),
NAK(receptor no puede aceptar datos o el transmisor no puede enviar) y
STALL(los dispositivos TX/RX detenidos o no pueden soportar un comando)),
USB 2.0 define un nuevo paquete:

? ??NYET, significa Not YET (todava no), y se emplea en los protocolos Split y
de control de flujo PING.

Por ltimo, en el grupo de paquetes Especial, USB 2.0 define tres nuevos
tipos de paquetes, reutilizando uno de ellos (ERR) el cdigo asignado por USB
1.x al paquete especial PRE. Se recuerda aqu la descripcin del paquete PRE,
para mostrar que no hay posibilidad de error en cuanto a que un mismo cdigo
identifique a dos paquetes distintos:

? ??PRE (Prembulo): Definido en USB 1.x para indicar que a continuacin se va a


transmitir en modo baja velocidad. Slo lo puede transmitir un host USB 1.x (en
modo full-speed) inmediatamente antes del campo de token de la transaccin
low-speed.

? ??ERR (Error): Se usa para indicar errores en transacciones Split high-speed.


Reutiliza el cdigo del tipo de paquete PRE. Slo lo puede transmitir un
concentrador USB 2.0 (en modo high-speed) en el campo de validacin
(handshake) de una transaccin Split.

? ??SPLIT: Lo transmite el host en el campo de token de una transaccin Split.

? ??PING: Lo transmite el host en el campo de token de una transaccin de control


de flujo PING.

?Paquete de Token SOF y Nmero de Microtrama

En USB 1.x, el nmero de la trama es un campo de 11 bits que el host


incrementa una vez por trama, y que enva slo en el paquete SOF (Start-Of-
Frame) al principio de cada trama. USB 2.0 utiliza este mismo campo para
indicar el nmero de microtrama. En este caso, el host no enva todos los bits del
nmero de microtrama (14 bits), sino solamente los 11 bits ms altos. Como
cada trama (1 ms) contiene 8 microtramas (125 us), el efecto de lo anterior es
que el host USB 2.0 enva durante 8 microtramas consecutivas un paquete SOF
con el mismo nmero de trama. Los dispositivos full-speed reciben un paquete
SOF cada milisegundo con un nmero de trama secuencial. Los dispositivos
high-speed reciben un paquete SOF cada 125 microsegundos, pero con el mismo
nmero de trama en cada grupo de 8 consecutivos.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Los dispositivos high-speed que necesiten llevar un control del nmero de


microtrama, pueden detectar cundo un paquete SOF tiene un nmero de trama
distinto del anterior, e iniciar un contador interno de microtrama (de 3 bits) a 0.
Cada uno de los siguientes 7 paquetes SOF con el mismo nmero de trama sern
los correspondientes a las microtramas 1 a 7.

?Paquetes de Datos

USB 2.0 sigue haciendo un uso de los paquetes DATA0 y DATA1, como
parte del mecanismo de deteccin de errores Data Toggle en los casos definidos
en USB 1.x; adicionalmente USB 2.0 define los nuevos paquetes DATA2 y
MDATA, de nuevo con la funcin de deteccin de errores en los nuevos casos
definidos en USB 2.0.
Uso de los paquetes de datos en los nuevos casos definidos en USB 2.0 es:

? ??Las transacciones de Interrupcin high-speed high bandwidth realizadas en la


misma microtrama, hacen uso del mecanismo Data Toggle (uso alternativo de
paquetes DATA0 y DATA1).

? ??En transacciones Iscronas-IN high-speed high-bandwidth, el dispositivo enva


los datos utilizando las siguientes secuencias de paquetes:
? En el caso de 1 transaccin por microtrama, se usa el paquete DATA0.
? En el caso de 2 transacciones por microtrama, se usa la secuencia de
paquetes DATA1-DATA0.
? En el caso de 3 transacciones por microtrama, se usa la secuencia de
paquetes DATA2-DATA1-DATA0.

? ??En transacciones Iscronas-OUT high-speed high-bandwidth, el host enva los


datos utilizando las siguientes secuencias de paquetes:
? En el caso de 1 transaccin por microtrama, se usa el paquete DATA0.
? En el caso de 2 transacciones por microtrama, se usa la secuencia de
paquetes MDATADATA1.
? En el caso de 3 transacciones por microtrama, se usa la secuencia de
paquetes MDATAMDATA-DATA2.

? ??En transacciones Start-Split de Interrupcin-OUT, el host alterna los paquetes


DATA0 y DATA1 en la manera habitual (data toggle).

? ??En transacciones Complete-Split de Interrupcin-IN, el concentrador tambin


alterna los paquetes DATA0 y DATA1, siempre que la transaccin en el bus
full/low-speed se haya completado durante una microtrama. Cuando se da el caso
de que la transaccin en el bus full/low-speed abarca dos microtramas, la
respuesta del concentrador en la primera transaccin Complete-Split usa el

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

paquete MDATA, para indicar al host que faltan datos por enviar, y que debe
ejecutar otra transaccin Complete-Split en la siguiente microtrama, para obtener
el resto de los datos (que se transmitirn mediante un paquete DATA0 o DATA1,
segn corresponda en la secuencia Data Toggle).

? ??En transacciones Start-Split Iscronas-OUT, el host siempre usa el paquete


DATA0.

? ??En transacciones Complete-Split Iscronas-IN, el concentrador usa el paquete


MDATA para todos los paquetes excepto para el ltimo, en que usa el paquete
DATA0 (la transaccin full-speed puede abarcar varias microtramas, por lo que
los paquetes MDATA informan al host que debe seguir enviando transacciones
Complete-Split en cada microtrama, hasta que reciba un paquete DATA0).

La mxima cantidad de informacin til que se puede transferir en un


paquete de datos depende de la velocidad del dispositivo y del tipo de
transferencia.

Paquete de Validacin (Handshake) NYET

Se utiliza slo en modo high-speed, y se puede transmitir en dos


circunstancias:

? ??Lo puede transmitir un endpoint high-speed tipo Bulk-OUT o de Control,


como respuesta durante el protocolo de control de flujo PING.

? ??Tambin lo puede transmitir un concentrador high-speed como respuesta a una


transaccin Split, cuando el concentrador todava no ha concluido la transaccin
full/low-speed con el dispositivo, o bien cuando el concentrador no puede atender
la transaccin en ese momento.

?Paquete Especial de Handshake ERR

Se utiliza slo en modo high-speed, y lo puede transmitir un concentrador


high-speed en el campo de handshake de una transaccin Complete-Split, para
informar de un error en la transaccin full/low-speed.

?Paquetes Especiales de Token para Transacciones Split

Aparte de las transacciones definidas en USB 1.x (Control, Bulk,


Interrupcin e Iscronas), USB 2.0 define las transacciones Split. Slo los
controladores de host y los concentradores USB 2.0 deben soportar este nuevo
tipo de transaccin, ya que es invisible a los dispositivos.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Este tipo de transaccin es el que permite la comunicacin con dispositivos


full/low speed conectados a concentradores que funcionan en modo high-speed.
El host comienza una transaccin Split cuando enva al concentrador, en modo
high-speed, toda la informacin necesaria para que el concentrador ejecute ahora
una transaccin full/low-speed con el dispositivo. Toda la informacin queda
almacenada en el concentrador, en el TT correspondiente al puerto al que est
conectado el dispositivo (o en el nico TT disponible si se trata de un
concentrador mono-TT). Mientras el concentrador ejecuta esta transaccin con el
dispositivo full/lowspeed, el bus queda libre para ejecutar nuevas transacciones
high-speed con otros dispositivos.

La respuesta del dispositivo full/low-speed queda almacenada a su vez en


el TT del concentrador, disponible para cuando el host posteriormente indique al
concentrador que la enve, en modo high-speed.

USB 2.0 define el token especial SPLIT para llevar a cabo las
transacciones Split. Este es el nico paquete de token de 4 bytes, a diferencia de
los paquetes de token normales de 3 bytes.

USB 2.0 define dos transacciones Split que hacen uso del token especial
SPLIT:
? ??Start Split: La utiliza el host para enviar al concentrador, en modo high-speed,
toda la informacin necesaria para que el concentrador ejecute ahora una
transaccin full/low-speed con el dispositivo.

? ??Complete Split: La utiliza el host para leer del concentrador, en modo high-
speed, la respuesta del dispositivo full/low-speed.

Un campo en el propio paquete SPLIT identifica el tipo de transaccin.

Paquete Especial de Token PING para Control de Flujo

Un caso bastante frecuente y que produce una gran prdida de ancho de


banda til en un bus USB 1.x, se da cuando los dispositivos full/low-speed
contienen endpoints tipo Bulk-OUT y de Control que necesitan un tiempo para
procesar los datos recibidos, de forma que no pueden momentneamente recibir
nuevos datos hasta que se desocupe el buffer de recepcin.

En USB 1.x, esta situacin la controla el dispositivo devolviendo una


validacin (handshake) NAK en la transaccin OUT en la que el host ha
transmitido un nuevo paquete de datos. Esta validacin indica que el dispositivo
no ha podido recibir los datos porque no tiene espacio suficiente en su buffer de
recepcin, y el host debe reintentar la transmisin posteriormente.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Desafortunadamente, para cuando el dispositivo informa que no tiene espacio, la


mayor parte del tiempo de la transaccin ya se ha consumido, ya que el paquete
de datos se ha transferido ntegramente. Esto produce una pobre utilizacin del
bus cuando se suceden mltiples transacciones OUT con respuesta negativa
(NAK) por parte del dispositivo.

USB 2.0 define un nuevo protocolo de control de flujo ms eficiente,


denominado PING, que debe ser utilizado por las transferencias de tipo Bulk-
OUT y de Control. Las transferencias de Control deben soportar este protocolo
en las fases de Datos y de Estado, pero no en la fase de Setup. Este nuevo
protocolo evita la transmisin de paquetes de datos hasta que el host sabe que el
dispositivo puede aceptarlos.

El host pregunta al dispositivo high-speed mediante el paquete especial de


token PING, y el dispositivo puede contestar con una validacin ACK, para
indicar que tiene espacio para recibir un nuevo paquete de datos, o con un
handshake NAK, para indicar que no tiene espacio. El host pregunta
peridicamente mediante paquetes PING hasta que recibe un handshake ACK, en
cuyo caso procede a la transmisin del paquete de datos.

Una vez que se produce la recepcin de un paquete de datos, el dispositivo


puede contestar con una validacin ACK, para indicar la correcta recepcin del
paquete y que tiene espacio para el siguiente paquete, o con una validacin
NYET, para indicar la correcta recepcin del paquete y que no tiene espacio para
el siguiente paquete.

El host puede seguir transmitiendo paquetes de datos en tanto que el


dispositivo siga contestando con ACK.

En el momento en que el dispositivo conteste con NYET, el host debe


volver al proceso de preguntar al dispositivo mediante paquetes PING antes de
enviar un nuevo paquete de datos.

2.2.4. PROTOCOLO II: PIPES Y TRANSFERENCIAS

USB 1.x define las vas de comunicacin entre las aplicaciones que se
ejecutan en el host (clientes) y los distintas endpoints en los dispositivos USB
(servidores), y las denomina pipes. Cuando un dispositivo USB se conecta a un
sistema, y el sistema lo reconoce y lo configura, el dispositivo queda organizado
como un cierto conjunto de endpoints de distintos tipos (existen 4 tipos de
endpoints). Entonces el sistema establece todas las vias de comunicacin (pipes)
necesarias entre el sistema y cada uno de los endpoints disponibles en dicha
configuracin. El dispositivo puede implementar varias posibles configuraciones,
con distintos conjuntos de de distintos tipos transferencias en cada una de ellas.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

El sistema elige una cierta configuracin en funcin de la funcionalidad particular


que se precise del dispositivo.

Existen 4 tipos de endpoints (Bulk, Control, Interrupcin e Iscrono) y 2


tipos de pipes (Control o Mensaje y Stream). Las posibles combinaciones son:

? ??Pipe de Control o Mensaje. Es una va de comunicacin bidireccional entre el


host y dos endpoints de Control en un dispositivo USB. Un endpoints es de
Salida y el otro es de Entrada, de forma que se pueda establecer la comunicacin
bidireccional. Todos los dispositivos USB disponen de dos endpoints de Control
en la direccin 0, uno de entrada y uno de salida, de manera que el sistema
siempre puede establecer una pipe de Control con el dispositivo, incluso antes de
configurarlo (se denomina Pipe de Control por Defecto, y es la nica pipe que se
puede establecer antes de configurar al dispositivo). A travs de esta pipe, el
sistema puede leer del dispositivo toda la informacin descriptiva necesaria para
enterarse del tipo de dispositivo, posibles configuraciones, protocolos que
soporta, nmero y tipos de endpoints que soporta en cada posible configuracin,
etc. Esta informacin descriptiva son los Descriptores.

? ??Pipe Stream. Es una va de comunicacin unidireccional entre el host y un


endpoints de los tipos Bulk, Interrupcin o Iscrono. Si un dispositivo necesita
transferencias bidireccionales de un tipo de endpoint concreto, el sistema debe
establecer dos pipes, una de salida (con un endpoint de salida) y otra de entrada
(con un endpoint de entrada).

Las diferencias bsicas entre las transferencias USB 1.x y USB 2.0 son:

? ??Tamaos mximos de los paquetes de datos en cada tipo de transferencia.

? ??Reserva de tiempo de microtrama para las transferencias de Control, de


Interrupcin e Iscronas.

Transferencias de Control

Las transferencias de Control proporcionan control de flujo y una entrega


de datos garantizada y libre de errores.
Todos los dispositivos full, high y low-speed pueden incorporar endpoints
de Control, y por lo tanto pueden hacer uso de las transferencias de Control.
Todos implementan, al menos, un endpoint de salida y uno de entrada en la
direccin 0, para poder establecer la Pipe de Control por Defecto.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Las transferencias de Control se componen de 3 transacciones


denominadas Setup-Dato-Estado. Los tamaos mximos del paquete de datos
durante la transaccin de datos son:

? ??Full-speed: 8, 16, 32, 64 bytes


? ??High-speed: 64 bytes
? ??Low-speed: 8 bytes.

USB hace una gestin best effort para ir dando curso a las distintas
transferencias de Control pendientes en cada momento en todas las pipes de
Control establecidas con todos los dispositivos. Para ello se hace la siguiente
reserva del tiempo de trama o microtrama:

? ??En un bus full/low-speed, la reserva es del 10% del tiempo de trama.


? ??En un bus high-speed, la reserva es del 20% del tiempo de microtrama.

Las reglas definidas por USB para el envo de las transferencias pendientes
son:

? ??Si el tiempo de trama o microtrama utilizado por las transferencias de Control


pendientes es inferior al reservado, el tiempo restante puede utilizarse para
transferencias Bulk.

? ??Si hay ms transferencias de Control pendientes que tiempo reservado, pero


hay tiempo adicional en la trama o microtrama no consumido por transferencias
de Interrupcin o Iscronas, entonces el host puede utilizar dicho tiempo
adicional para enviar nuevas transferencias de Control.

? ??Si hay ms transferencias de Control pendientes que tiempo disponible en una


trama o microtrama, el host selecciona cules se procesan, quedando el resto
pendientes para una prxima trama o microtrama.

Los enpoints de Control high-speed soportan el protocolo de control de


flujo PING en las transacciones de Dato y Estado de salida.
?
Transferencias Iscronas

Las transferencias Iscronas estn diseadas para soportar aquellos


dispositivos que precisan una entrega de datos a velocidad constante, y en la que
no importa la prdida eventual de informacin. Esto es necesario para
aplicaciones en que la informacin de tiempo va implcita en la propia velocidad
de transmisin/recepcin de datos (isocronismo).

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Para ello, las transferencias Iscronas proporcionan:


? ??Ancho de banda garantizado
? ??Latencia limitada
? ??Velocidad de transferencia de datos constante garantizada a travs de la pipe
? ??En caso de error en la entrega, no se reintenta la transmisin
? ??Sin control de flujo
Slo los dispositivos high y full-speed pueden incorporar endpoints Iscronos.

Las transferencias Iscronas se componen slo de transacciones de datos.


Las frecuencias y los tamaos de los paquetes de datos son:
? ??Full-speed: 1 transaccin por trama de hasta 1,023 bytes.
? ??High-speed: 1 transaccin por microtrama de hasta 1,024 bytes.
? ??High-speed high-bandwidth: 2 3 transacciones por microtrama de hasta 1,024
bytes cada una.

La gestin que hace USB para garantizar las transferencias es la de


establecer o no la pipe en funcin de que haya suficiente tiempo libre de trama o
microtrama para realizarlas. Para ello, los endpoints Iscronos indican qu
cantidad de informacin como mximo debe transferir la pipe en cada trama o
microtrama, de forma que el sistema USB puede calcular si hay suficiente tiempo
o no para acomodar la pipe, y en funcin de eso la establece o no.

La reserva de tiempo de trama o microtrama para acomodar transferencias


Iscronas y de Interrupcin es como mximo el tiempo no reservado para
transferencias de Control. El sistema USB puede ir estableciendo pipes Iscronas
y de Interrupcin con distintos dispositivos hasta agotar dicha reserva:
? ??Full-speed: Hasta un 90% del tiempo de trama.
? ??High-Speed: Hasta un 80 % del tiempo de microtrama.

? ??Transferencias de Interrupcin

Las transferencias de Interrupcin estn diseadas para soportar aquellos


dispositivos que precisan enviar o recibir datos de manera no frecuente, pero con
ciertos lmites de latencia.

Para ello, las transferencias de Interrupcin proporcionan:


? ??Tiempo mximo de servicio (latencia) garantizado
? ??Reintento de transferencia en el siguiente periodo, en caso de eventual fallo en
la entrega.
??
Todos los dispositivos high, full y low-speed pueden incorporar endpoints
de Interrupcin.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

??
Las transferencias de Interrupcin se componen slo de transacciones de
datos. Los tamaos de los paquetes de datos son:
? ??Low-speed: hasta 8 bytes.
? ??Full-speed: hasta 64 bytes.
? ??High-speed: hasta 1,024 bytes.
? ??High-speed high-bandwidth: 2 3 transacciones por microtrama de hasta 1,024
bytes cada una.
?
La gestin que hace USB para garantizar las transferencias es la de
establecer o no la pipe en funcin de que haya suficiente tiempo libre de trama o
microtrama para realizarlas. Para ello, Las transferencias de Interrupcin indican
qu cantidad de informacin como mximo debe transferir la pipe en cada
transaccin, as como el tiempo mximo entre transacciones, de forma que el
sistema USB puede calcular si hay suficiente tiempo o no para acomodar la pipe,
y en funcin de eso la establece o no.

El tiempo mximo entre transacciones (tiempo de latencia mximo)


especificado por cada dispositivo puede ser:
? ??Low-speed: de 10 a 255 ms
? ??Full-speed: de 1 a 255 ms
? ??High-speed: de 125 us a 4096 seg.

La reserva de tiempo de trama o microtrama para acomodar transferencias


Iscronas y de Interrupcin es como mximo el tiempo no reservado para
transferencias de Control. El sistema USB puede ir estableciendo pipes Iscronas
y de Interrupcin con distintos dispositivos hasta agotar dicha reserva:
? ??Full y Low-speed: Hasta un 90% del tiempo de trama.
? ??High-Speed: Hasta un 80 % del tiempo de microtrama.

Transferencias Bulk

Las transferencias Bulk estn diseadas para soportar aquellos dispositivos


que precisan enviar o recibir grandes cantidades de datos, con latencias que
pueden tener amplias variaciones, y en que las transacciones pueden utilizar
cualquier ancho de banda disponible.

Para ello, las transferencias Bulk proporcionan:


? ??Acceso al bus en funcin del ancho de banda disponible.
? ??Reintento de transferencias en caso de errores de entrega.
? ??Entrega garantizada de datos, pero sin garanta de latencia mxima ni de ancho
de banda.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Las transferencias Bulk se realizan relati vamente rpidas si el bus dispone


de mucho ancho de banda libre, pero en un bus USB con mucho ancho de banda
reservado, pueden alargarse durante periodos de tiempo relativamente grandes.

Slo los dispositivos high y full -speed pueden incorporar endpoints Bulk.

Las transferencias Bulk se componen slo de transacciones de datos. Los


tamaos de los paquetes de datos son:
? Full-speed: 8,16, 32 y 64 bytes.
? High-speed: 512 bytes.
USB hace una gestin good effort para ir dando curso a las distintas
transferencias pendientes en cada momento en todas las pipes Bulk establecidas
con todos los dispositivos. Las transferencias de Control tienen preferencia sobre
las Bulk, por lo que las transferencias Bulk se realizan siempre que no haya otro
tipo de transferencias que hacer en una trama o microtrama.
Las endpoints Bulk-OUT high-speed soportan el protocolo de control de
flujo PING.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

3.2. DIFERENCIA ENTRE CABLE USB Y CABLE PARALELO

Introduccin

Este documento se ha creado para describir las diferencias entre los cables
USB y paralelos. No todos los PC o impresoras disponen de ambos. Las
imgenes y dibujos, as como las descripciones que aparecen a continuacin le
ayudarn a determinar qu conexiones hay en su impresora y en su equipo.

Cul es la diferencia entre un cable usb y un cable paralelo?

Aspectos importantes sobre las conexiones USB

Consideraciones que se deben tener en cuenta

Si el cable no se conecta en el momento adecuado, puede que la impresora


no funcione o n o ofrezca todas las funciones disponibles.

Ventajas del USB

El cable USB tiene la capacidad de conectar varios tipos de dispositivos,


como impresoras, escneres, cmaras y unidades, con una conexin comn.

Sistemas operativos compatibles

Las impresoras HP Deskjet admiten USB en los sistemas operativos siguientes:

? Microsoft Windows XP
? Windows Me
? Windows 98
? Windows 2000

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Cmo se debe conectar el cable USB al PC?

Cmo se debe conectar el cable USB a la impresora?

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Aspectos importantes sobre las conexiones en paralelo:

Consideraciones que se deben tener en cuenta

El tipo de cable es muy importante. El cable de la impresora debe cumplir


la especificacin IEEE1284, es decir, tiene que cumplir determinados estndares
establecidos por el IEEE (Institute of Electrical and Electronics Engineers).
Normalmente puede saber si el cable es compatible, comprobando si lleva
impreso el mensaje "IEEE1284 compliant". Si el cable no cumple la
especificacin IEEE1284, es posible que la impresora y el equipo no puedan
comunicarse adecuadamente y que la impresora imprima caracteres extraos o
que aparezcan los siguientes mensajes de error:
Error al escribir en LPT1
No se puede establecer la comunicacin bidireccional
Impresora sin papel
La impresora no responde
El cartucho de impresin no responde
Si el cable no se conecta en el momento adecuado con Windows XP, puede que
la impresora no ofrezca todas las funciones disponibles.

Sistemas operativos compatibles

La conexin con una cable paralelo es compati ble con todos los sistemas
operativos de Microsoft Windows.

Ventajas de las conexiones en paralelo

Los cables paralelos son los cables ms utilizados para conectar equipos a
impresoras. La mayora de las impresoras y equipos disponen de una conexin en
paralelo.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Cmo se debe conectar el cable paralelo al PC?

Cmo se debe conectar el cable paralelo a la impresora?

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Puedo utilizar conexiones USB y en paralelo a la vez?

Si, un ejemplo es el de las impresoras.

Las impresoras HP Deskjet serie 960C, 980C y 990C pueden imprimir en


puertos paralelos y USB a la vez, pero slo se necesita uno para imprimir. Estas
impresoras pueden conectarse a un equipo mediante un cable USB y a otro
equipo a travs de un cable paralelo. Las impresoras pueden elegir si cambiar
automticamente la recepcin de un tipo de datos (USB) para recibir otro tipo de
datos (paralelos).

Las impresoras HP Deskjet serie 640C, 810C, 830C, 840C, 880C, 895C,
930C, 950C y 970C slo pueden imprimir por un puerto a la vez.

3.3. PRECIOS

Cables USB para todas las necesidades. USB dispone de 2 tipos de conectores (A y
B) que pueden ser a su vez Macho o Hembra. Los cables normalmente tienen
conectores macho, mientras que los dispositivos USB suelen tener el conector
hembra. De esta forma el tpico cable USB sera el modelo US02. La velocidad
soportada por estos cables es de 12 Mbps y hasta 480Mbps en el caso de los cables
para USB 2.0.

US01: Cable USB (AM/AM) 2m


Cable USB con conector tipo A Macho en ambos extremos.
PVP: 2.18 PVD1: 1.71 PVD2: 1.64

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

US02: Cable USB (AM/BM) 2m


Cable USB con conector tipo A Macho en un extremo y B Macho en el otro.
PVP: 1.27 PVD1: 1.00 PVD2: 0.96

US03: Cable USB (AM/MiniUSB5-M) 2m


Cable USB con conector tipo A Macho en un extremo y MiniUSB 5 pines Macho en el otro.
PVP: 2.18 PVD1: 1.71 PVD2: 1.64

US04: Cable USB (AM/AF) 2m


Cable USB con conector tipo A Macho en un extremo y A Hembra en el otro. La funcin de e
USB.
PVP: 1.27 PVD1: 1.00 PVD2: 0.96

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

US05: Cable USB (AM/MiniUSB5-M) 3m


Cable USB con conector tipo A Macho en un extremo y MiniUSB 5 pines Macho en el otro.
PVP: 4.36 PVD1: 3.43 PVD2: 3.29

US06: Cable USB (BM/BM) 2m


Cable USB con conector tipo B Macho en ambos extremos.
PVP: 2.18 PVD1: 1.71 PVD2: 1.64

US07: Cable USB (AM/AM) 5m


Cable USB con conector tipo A Macho en ambos extremos. Longitud del cable de 5 metros.
PVP: 4.36 PVD1: 3.43 PVD2: 3.29

US09: Cable USB (AM/AF) 5m


Cable USB con conector tipo A Macho en un extremo y A Hembra en el otro. La funcin de e
USB. Longitud del cable de 5 metros.
PVP: 4.36 PVD1: 3.43 PVD2: 3.29

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

US90: Cable USB (AM/AF) 3m


Cable USB con conector tipo A Macho en un extremo y A Hembra en el otro. La funcin de e
USB. Longitud del cable de 3 metros.
PVP: 2.18 PVD1: 1.71 PVD2: 1.64

US18: Cable USB (AM/MiniUSB4-M) 2m


Cable USB con conector tipo A Macho en un extremo y MiniUSB 4 pines Macho en el otro.
PVP: 2.18 PVD1: 1.71 PVD2: 1.64

US19: Cable USB (AM/MiniUSB4-M) 3m


Cable USB con conector tipo A Macho en un extremo y MiniUSB 4 pines Macho en el otro.
PVP: 4.36 PVD1: 3.43 PVD2: 3.29

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

U B41: Cable USB (AM/Mini-BM) 2m


Cable USB basado en conector A-Macho en un extremo y Mini -B-Macho (tipo Mitsumi USB
tipo Mini-B es de apariencia similar a la de un conector USB de tipo B, pero de tamao ms r
PVP: 4.36 PVD1: 3.43 PVD2: 3.29

B42: Cable USB (AM/Mini-BM) 3m


Cable USB basado en conector A-Macho en un extremo y Mi ni-B-Macho (tipo Mitsumi USB
tipo Mini-B es de apariencia similar a la de un conector USB de tipo B, pero de tamao ms r
PVP: 6.36 PVD1: 5.00 PVD2: 4.79

US81: Cable USB 2.0 (AM/BM) 2m


Cable USB con conector tipo A Macho en un extremo y B Macho en el otro. Preparado para l
de transmisin de hasta 480Mbps. Compatible con formatos USB anteriores. Longitud del cab
PVP: 2.18 PVD1: 1.71 PVD2: 1.64

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

US87: Cable USB 2.0 (AM/BM) 3m


Cable USB con conector tipo A Macho en un extremo y B Macho en el otro. Preparado para l
de transmisin de hasta 480Mbps. Compatible con formatos USB anteriores. Longitud del cab
PVP: 2.73 PVD1: 2.14 PVD2: 2.05

US82: Cable USB 2.0 (AM/BM) 5m


Cable USB con conector tipo A Macho en un extremo y B Macho en el otro. Preparado para l
de transmisin de hasta 480Mbps. Compatible con formatos USB anteriores. Longitud del cab
PVP: 5.47 PVD1: 4.29 PVD2: 4.12

US83: Cable USB 2.0 (AM/BM) 10m


Cable USB con conector tipo A Macho en un extremo y B Macho en el otro. Preparado para l
de transmisin de hasta 480Mbps. Compatible con formatos USB anteriores. Longitud del cab
PVP: 10.91 PVD1: 8.57 PVD2: 8.22

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

US84: Cable USB 2.0 (AM/AF) 2m


Cable USB con conector tipo A Macho en un extremo y A Hembra en el otro. Preparado para
de transmisin de hasta 480Mbps. Compatible con formatos USB anteriores. Longitud del cab
PVP: 2.18 PVD1: 1.71 PVD2: 1.64

U S88: Cable USB 2.0 (AM/AF) 3m


Cable USB con conector tipo A Macho en un extremo y A Hembra en el otro. Preparado para
de transmisin de hasta 480Mbps. Compatible con formatos USB anteriore s. Longitud del cab
PVP: 2.73 PVD1: 2.14 PVD2: 2.05

US85: Cable USB 2.0 (AM/AF) 5m

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Cable USB con conector tipo A Macho en un extremo y A Hembra en el otro. Preparado para
de transmisin de hasta 480Mbps. Compatible con formatos USB anteriores. Longitud del cab
PVP: 5.47 PVD1: 4.29 PVD2: 4.12

US86: Cable USB 2.0 (AM/AF) 10m


Cable USB con conector tipo A Macho en un extremo y A Hembra en el otro. Preparado pa
de transmisin de hasta 480Mbps. Compatible con formatos USB anteriores. Longitud del cab
PVP: 10.91 PVD1: 8.57 PVD2: 8.22

U B21: Cable USB 2.0 5-pin a AH 30cm (5P-H/A-H)


Cable USB compatible 2.0 y 1.1 diseado para conectar a los cinco pins en lnea de que dispo
para los puertos USB 3-4 y en adelante. Esto permite la conexin de perifricos USB internos
placas madre. Se trata de un cable de 30 cm que en un extremo tiene un un conector de tipo 5
de tipo A Hembra.
PVP: 2.18 PVD1: 1.71 PVD2: 1.64

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

UB22: Cable USB 2.0 5-pin a BH 30cm (5P-H/B-H)


Cable USB compatible 2.0 y 1.1 diseado para conectar a los cinco pins en lnea de que dispo
para los puertos USB 3-4 y en adelante. Esto permite la conexin de perifricos USB internos
placas madre. Se trata de un cable de 30 cm que en un extremo tiene un un conector de tipo 5
de tipo B Hembra.
PVP: 2.18 PVD1: 1.71 PVD2: 1.64

US20: USB 1.1 Extension Cable AM-AF (5m)


Cable prolongador de USB que realimenta la seal en aquellas ocasiones en que sea necesario
buena seal para su correcto funcionamiento, o porque se supere la distancia mxima que perm
dispone de la electrnica necesaria para realizar esta funcin. Se trata de un cable de 5m, con c
Hembra en el otro. Permite encadenar 6 unidades para conseguir un mximo de 30m.
PVP: 21.82 PVD1: 17.14 PVD2: 16.44

U B03: USB 2.0 Extension Cable AM-AF (5m)

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Cable prolongador de USB compatible con USB 2.0 y 1.1 que realimenta la seal en aquellas
que el perifrico requiera una buena seal para su correcto funcionamiento, o porque se supere
Adems de un simple cable, dispone de la electrnica necesaria para realizar esta funcin. Se t
A-Macho en un extremo y A-Hembra en el otro. Permite encadenar 6 unidades para conseguir
PVP: 34.91 PVD1: 27.43 PVD2: 26.30

US71: Icron USB Ranger 110i


Dispositivo que permite extender la longitud mxima que permite USB hasta 100m utilizando
un mdulo que se conecta al puerto USB de un ordenador o concentrador, y en el otro extremo
Hembra, que se conecta al dispositivo USB o concentrador para realizar ms ramificaciones si
bajo y alto consumo. Tamao: 100x80x35mm. Peso: 300gr.
PVP: 486.55 PVD1: 382.29 PVD2: 366.58

US72: Icron USB Ranger 410i


Dispositivo que permite extender la longitud mxima que permite USB hasta 100m utilizando
un mdulo que se conecta al puerto USB de un ordenador o concentrador, y en el otro extremo
A-Hembra, que se conecta al dispositivo USB o concentrador para realizar ms ramificaciones
de bajo y alto consumo. Tamao: 100x80x35mm. Peso: 300gr.
PVP: 506.18 PVD1: 397.71 PVD2: 381.37

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

US73: Icron USB Ranger 422i


Dispositivo que permite extender la lo ngitud mxima que permite USB hasta 500m utilizando
tipo multi -modo (62.5/125 MM o 50/125 MM) o de tipo mono-modo (SM). Se compone de u
puerto USB de un ordenador o concentrador, y en el otro extremo otro mdulo remoto (REX)
se conecta al dispositivo USB o concentrador para realizar ms ramificaciones si es necesario.
alimentacin de 15VDC (incluidas). Lo s conectores de fibra ptica son del tipo MT-RJ y cada
Soporta perifricos USB de bajo y alto consumo ya que las salidas suministran 500mA (4x500
300gr.
PVP: 981.82 PVD1: 771.43 PVD2: 739.73

US74: Icron USB Rover 1300


Dispositivo que permite extender la longitud mxima que permite USB hasta 100m utilizando c
un mdulo que se conecta al puerto USB de un ordenador o conc entrador, y en el otro extremo
Hembra, que se conecta al dispositivo USB o concentrador para realizar ms ramificaciones si
hasta 300mA conectados al mdulo remoto, pues funciona s in fuente de alimentacin y esto ha
remoto sea limitada. El mdulo local conectado al puerto USB, consume 500mA y 5VDC. Tam
peso de 100g.
PVP: 213.82 PVD1: 168.00 PVD2: 161.10

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

U S75: Super-X-Tender USB Cable (45m)


Prolongador de puerto USB ya que permite trasladar un puerto USB
hasta una distancia de 45m desde el PC sin necesidad de usar ninguna
fuente de alimentacin externa. Consiste en un mdulo local y u n
mdulo remoto que se conectan entre ellos con cable estndar UTP de
Cat.5 y basado en conectores RJ45. El usuario puede fabricarse el
latiguillo de red de la distancia que desee, con una longitud mxima de
45m, para asegurar el correcto funcionamiento co n cualquier
dispositivo USB, aunque segn que dispositivo se conecte a la unidad
remota, es posible que funcione con cables de hasta 60m de longitud.
Existe la posibilidad de encadenar hasta 5 Super-X-Tender para
conseguir longitudes mayores. La unidad loc al se suministra con cable
USB de 30cm con conector tipo A-Macho que se conecta al PC,
mientras que la unidad remota dispone de conector tipo A -Hembra.
Ambos mdulos disponen de un conector RJ45 -Hembra para la
interconexin mediante cable UTP Cat.5.
PVP: 117.82 PVD1: 92.57

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

4 APLICACIN A MICROCONTROLADORES
4.1 MICROCONTROLADORES SIN SOPORTE USB
Empezaremos con un ejemplo de un microcontrolador Philips
PDIUSBD11 I2C con soporte USB conectado a un microcontrolador Microchip
PIC16F876 que no tiene soporte USB.
Aqu vemos el interior de un cable USB como ya hemos visto
anteriormente :

En los cables D+ y D- es por donde se mueven la informacin y los datos,


GND va a masa y el Vbus es el que alimenta el dispositivo.
En esta figura vemos el circuito de un microcontrolador con soporte USB
que ya explicaremos en el siguiente punto.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Seguidamente podemos observar en la siguiente figura el microcontrolador


PIC conectado al PDIUSBD11 I2C.

Lo conectamos de esta manera:

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

4.2 MICROCONTROLADORES CON SOPORTE USB


Para poder conectar un conector USB a un microcontrolador pondremos
una resistencia que conectamos a la lnea D+ del conector USB a la seal de
alimentacin del puerto USB. Esta resistencia, es una resistencia pull-up, es una
indicacin para que el host se cargue al dispositivo USB cuando se enchufe.
Indica al host que un dispositivo de alta velocidad esta conectado al bus.
Se conectan dos resistencias entre las lneas D+ y D- del conector y las
patillas del micro. Estas resistencias proporcionan la correcta terminacin para las
lneas de datos USB.
Se conectan dos condensadores de las lneas D+ y D- del microcontrolador
a GND, los cuales sirven para suprimir las altas frecuencias y por lo tanto
desacoplan las entradas.
Por ltimo conectamos dos bobinas, una de la lnea GND del conector
USB a la masa del circuito, y la otra la conectamos a la lnea Vbus del conector a
la alimentacin del circuito. Estas bobinas proporcionan una funcin similar a los
condensares descritos anteriormente, pero para las lneas de alimentacin del
conector USB.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Aqu podemos ver varios ejemplos de circuitos con conectores USB


aplicados a microcontroladores.
Fig. 1: Vemos un conector USB tipo B conectado a un microcontrolador donde
podemos observar lo descrito anteriormente:

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Fig. 2: Aqu vemos otro ejemplo de cmo conectar un microcontrolador a


un conector USB.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Fig. 3: Ejemplo del microcontrolador PIC16C745/765 conectado a un


dispositivo USB:

Requiere una resistencia y un condensador para poder comunicarse con el


dispositivo.
Fig. 4: Por ultimo tenemos un circuito de un conversor de un puerto PS/2, que es
el puerto utilizado para conectar dispositivos como ratones, a un conector USB.

En los microcontroladores PIC esta conexin vara y como podemos


observar no hay bobinas al tratarse un microcontrolador que funciona como
esclavo (se describir mas adelante).
En este ejemplo podemos observar un PIC con soporte USB.
La seal de alimentacin del puerto USB esta especificada a 5 V, sin
embargo algunos dispositivos utilizan 3.3 V, por lo que se pone un jumper para

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

poder seleccionar la tensin entre 5 y 3.3 V. Adems este jumper sirve tambin
para desconectar la tensin que viene por el puerto USB, que de hecho es lo
habitual en dispositivos esclavo, los PICS actuales por ejemplo, solo permiten ser
utilizados como dispositivos esclavo.
Decir tambin que si el conector USB dispone de alimentacin propia a
3.3 V o 5 V independientemente de la alimentacin del microcontrolador, este
actuar como maestro, pero si ambos dispositivos (USB y microcontrolador)
estn alimentados por una sola tensin de 5 V, el microcontrolador funcionar
como esclavo.

4.3 PATILLAJE DEL MICROCONTROLADOR PIC16C745

Los microcontroladores de la familia PIC16C7X5, que actualmente


soloson2 (PIC16C745 y PIC16C765) incorporan un modulo USB, el cual permite
desarrollar perifricos sencillos de baja velocidad (hasta 1.5 Mbs) que solo
requieran transf erencias de control y de interrupcin.
Permiten el uso de hasta 3 puntos finales (endpoints 0,1 y 2).
Dicho mdulo consta de una serie de registros que configuran y regulan su
funcionamiento, as como de un SIE (Serial Interface Engine) encargado de la
generacin del CRC y la sincronizacin de las seales D+ y D-.
Cada vez que se produce una transmisin o recepcin de datos en el bus,
se genera una interrupcin en el PIC ante la cual la rutina de atencin debe
responder gestionando todos los aspectos de bajo nivel de la especificacin USB.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

De esta manera para la aplicacin principal que ejecuta el microcontrolador el


manejo del protocolo USB es transparente.
El fabricante de los PIC ofrece una capa de software consistente en dicha
rutina de atencin a la interrupcin y un sencillo interfase para poder intercambiar
datos entre la aplicacin principal y el modulo USB.

4.4 EJEMPLO DE UN CONTROLADOR DE PERIFERICOS USB


La siguiente figura muestra la estructura interna del controlador de
perifricos USB. Todos los dispositivos USB responden tambin a un mismo
patrn estandarizado, que ms all de las caractersticas propias de cada
fabricante, comprende los mismos elementos funcionales.

? TRANSCEIVER: El cable USB est compuesto por solo cuatro cables:


Vbus, D+, D- y GND. La informacin y los datos se mueven por los cables
D+ y D-, con dos velocidades: 12Mbps o 1.5Mbps, un problema serio de
comunicaciones si no existe un dispositivo capaz de manejar esta situacin.
Este es el Transceiver, fabricado dentro del mismo chip controlador de
perifrico, y puede verse como la interfaz misma de un dispositivo externo
contra el resto del sistema.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

? SERIAL INTERFACE ENGINE - SIE.- El SIE tiene la funcin de


serializar y deserializar las transmisiones, adems maneja los protocolos de
comunicacin, las secuencias de paquetes, el control CRC y la codificacin
NRZI.
? FUNCTION INTERFACE UNIT - FIU.- Este elemento administra los
datos que son transmitidos y recibidos por el cable USB.
Se basa y apoya en el contenido y estado de los FIFOs (a continuacin).
Monitorea los estados de las transacciones, los buffer FIFO, y solicita atencin
para diversas acciones a travs de interrupciones contra la CPU del host.
? FIFOs.- (primero en entrar primero en salir).

Ejemplo:El controlador 8x930Ax tiene un total de 8 buffer tipo FIFO,


cuatro de ellos destinados a la transmisin y cuatro destinados a la recepcin
de datos.

Tanto para la transmisin como para la recepcin, los buffer soportan


cuatro tareas o funciones, num eradas de 0 a 3.
La funcin 0 tiene reservado en el buffer en espacio de 16 bytes, y se
dedica a almacenar informacin de control relacionada a las transferencias. La
funcin 1 es configurable para disponer de ms de 1025 bytes, y finalmente
las funciones 2 y 3 disponen cada una de 16 bytes. Estas tres ltimas
funciones se emplean para el control de interrupciones y transmisiones tanto
isocrnicas como las bulk .

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

4.5 CONEXIN PC MICROCONTROLADOR USB


En la siguiente figura mostramos un ejemplo en el que 2 procesadores, un PC y
un microcontrolador se comunican mediante el bus USB. El microcontrolador se
dedica exclusivamente a la comunicacin con el PC y a la atencin de un sistema
de adquisicin de datos.
El microcontrolador utilizado es un microcontrolador USB cuyas caractersticas
ms generales son:

Microcontrolador para perifricos USB de baja velocidad (low-speed).


Soporta la especificacin USB versin 1.1 (1.5Mbps).
Soporta dos Endpoints (endpoint0 y endpoint1).
Memoria interna RAM de 128 bytes y 2 Kbytes de EPROM.
Dos puertos de entrada/salida: port0 (8 pines) y port1 (4 pines).
La organizacin es RISC de 8 bits:

??
Este microcontrolador soporta transferencias de tipo Interrupcin, que
bsicamente consiste en paquetes mximos de 8 bytes, las transacciones no
pueden ser bidireccionales y para transmitir en ambas direcciones se requiere

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

transferencias separadas y un pipe para cada direccin. Tambin soporta


transferencias de Control.
El programa del microcontrolador se puede separar en tres fases bien
diferenciadas en funcin de la tarea que realiza cada una. La figura siguiente
muestra el esquema de estas tres fases y el orden de ejecucin de cada una:

La descripcin de cada una de estas fases es la siguiente:

1 Fase : Usb Bus Reset: cuando el dispositivo es conectado, el host lo


detecta y provoca una interrupcin de reset para que el dispositivo configure los
registros y punteros necesarios y para que se pueda proceder a la enume racin.
En esta fase el programa debe habilitar y configurar en endpoint 0 para recibir y
contestar a transacciones de tipo Setup e inicializar todas las variables que
posteriormente se utilizarn. Esto se realiza dentro de la rutina de servicio de la
interrupcin BusReset.

2 Fase : Proceso de Enumeracin: esta fase se produce cuando el


dispositivo es conectado al Bus y despus de la fase de Bus Reset. El host debe
reunir la informacin necesaria para que el sistema identifique al dispositivo y
configure el tipo de comunicacin que se producir entr e ambos y encuentre al
driver que tiene que utilizar para establecer la comunicacin. El proceso consiste
primero, en asignar una direccin al device y segundo, el host enva una serie de
peticiones para que el dispositivo mande informacin con el fin de e stablecer la
comunicacin.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

La informacin que debe mandar el dispositivo se estructura en


registros o descriptores que configuran al dipositivo y son transmitidos mediante
transferencia de control y siempre por el endpoint 0. Estos descriptores son lo s
siguientes:
? Device descriptor : contiene informacin bsica del dispositivo como
puede ser nmero de serie, clase de dispositivo, etc.
? Configuracin descriptor: contiene informacin sobre las capacidades y
funciones del dispositivo, tipo de alimentacin de energa que soporta..
? Interface descriptor: contiene informacin sobre el nmero de endpoints
que soporta y el protocolo utilizado.
? Class descriptor : determina la clase del dispositivo.
? Endpoint descriptor: excepto para el endpoint 0, cada endpoint debe ser
configurado. La cofiguracin de cada endpoint consiste en el nmero de
endpoint, direccin de sus comunicaciones (IN, OUT) y numero de bytes
que transmite.

Con estos descriptores y otros del sistema operativo (ej. Windows), debe
encontrar el driver que necesita para comunicarse con el dispositivo. Para
localizar este driver, Windows debe tener cargado un archivo especial de texto
llamado INF que dice al sistema que driver debe utilizar.
Para realizar este proceso de enumeracin en el se debern carg ar en el
programa el cdigo de los descriptores, habilitar y configurar la interrupcin del
Endpoint 0 para aceptar transacciones de tipo Setup, saber que tipo de report ha
solicitado en cada caso el host y mandarlo por el Endpoint 0.
Cuando se termine esta fase de enumeracin se pasar a la fase de gestin del
dispositivo y de las comunicaciones.

3 Fase. Gestin del dispositivo y de las comunicaciones: despus de las dos


fases anteriores en las que se configura y se establece la comunicacin con el host
se pasa a la tercera fase que es la que realmente se centra en gestionar la
funcionalidad para la que se ha diseado el dispositivo.
En el ejemplo que mostramos, en esta fase se controla tanto las seales que le
llegan por el Bus USB como las seales internas del dispositivo. Para entender la

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

programacin que se hace sobre el microcontrolador, se muestra a continuacin


las seales que gestiona:

Las seales o transmisiones que se realizan dentro del bus USB deben estar
relacionadas con un endpoint. En este caso, el microcontrolador
nicamente tiene dos endpoint (endpoint 0 y endpoint 1) y en el ejemplo se han
configurado de la siguiente manera:

? Endpoint 0 : Este endpoint se ha reservado para las transacciones Setup


(transferencias decontrol) que s e producen en la enumeracin y una vez
que ha concluido la enumeracin se configura para responder a
transacciones OUT. Las transacciones OUT que realiza el sistema son dos:
INI in y TXin . Estas dos transacciones son de un bytes cada una y paraque
el microcontrolador sepa cual de las dos ha llegado, el valor del byte que
transmitir distinto para cada una. La rutina que gestiona la interrupcion
del endpoint 0 tendr que reconocer si ha llegado un Setup, un INI in, o
bien un TXin y una vez reconocida la tra nsmisin deber realizar la tarea
necesaria para cada una de ellas.

? Endpoint 1: Este endpoint se ha reservado nicamente para transmitir


paquetes de 8 bytes (transferencia de tipo interrupcin) al host y por lo
tanto para la seal DATA. El endpoint se ha configurado como IN. El

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

protocolo USB realiza cada 10 milisegundos por el Endpoint 1una


encuesta para saber si el dispositivo quiere mandar datos al host ( esta
encuesta la realiza el protocolo USB sobre endpoints de tipo IN ).
Cada vez que se realiza una encuesta se produce una interrupcin (
interrupcin endpoint 1) . Entonces en la rutina deservicio de esta interrupcin se
deber saber si estn los datos cargados en el buffer del endpoint 1 o no. Si los
datos (8bytes) se han guardado en el buffer se transmitirn los datos y si no se
han guardado los datos an se ignora la peticin.

4.6 CONTROLADORES (DRIVERS) DE SOFTWARE

En primer lugar analizamos lo que pasa en los sistemas operativos


windows mas antiguos, que son los que nos pueden causar mayores problemas a
la hora de conectar un dispositivo USB.
Las ltimas versiones del sistema operativo Windows 95 trae una gran
cantidad de controladores para una gama amplia de dispositivos USB, por lo
tanto, lo ms probable es que el mismo sistema operativo reconozca y configure
el dispositivo de forma inmediata y transparente. (aunque de todas maneras se
han detectado fallas de funcionamiento); Adicionalmente el sistema operativo
Windows 98, trae especiales refuerzos en cuanto a cantidad de controladores para
dispositivos USB y calidad de funcionamiento se refiere.
Aunque estos sistemas operativos nunca soportaran a todos, ni mucho
menos controladores de dispositivos que se fabricarn en el futuro, razn por la
cual, Windows 95/98 solicitar el disquete o CD de instalacin, para aquellos
perifricos que no pueda configurar adecuadamente.
Los sistemas operativos ganan en simplicidad. Los drivers para USB estn
definidos por capas, de forma que la gestin del bus, la configuracin bsica de
los dispositivos, su manejo, etc... lo lleva el sistema operativo, mientras que cada
driver especfico slo maneja los dispositivos con los que pueda tratar. De esta
forma, tendremos una serie de mdulos apilados con unas misiones especficas,
que no interfieren la una con la otra.
El driver est organizado por la ya comentada estructura de capas. La parte
principal es el USBD, o Universal Serial Bus Driver (gestor del USB). Aqu estn
contenidas todas las llamadas que los drivers necesitarn para acceder a sus
dispositivos.
Debajo de esta capa est el HCD, el Host Controller Driver, que es la parte
del sistema USB que se dedica a hablar con cada controlador en particular (esto
es necesario ya que as se da soporte a todo tipo de controladores, aunque
inicialmente solo existen dos, los UHCI y los OHCI (acrnimos que significan

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Host Controller Interface -interfase del controlador -, universal para la U y Open -


abierto- para la O).
Por encima del USBD, y como driver est el HUBD, el driver de los hubs,
que es parte obligada del sistema USBD, ya que es parte activa de la gestin de la
configuracin de los dispositivos. Esta parte consta de un demonio en activo
dentro del mismo ncleo llamado khubdd (Kernel Hub Driver Daemon, demonio
en el ncleo del driver de hubs). Este demonio se dedica a esperar a que ocurra
algo en los puertos de los hubs donde se conectan los dispositivos, y cuando algo
ocurre, lo notifica al USBD, que acta en consecuencia, lanzando secuencias de
desconexin, configuracin, desconfiguraci n, cambio de configuracin o forma
de trabajo, etc ... en los dispositivos.
Los drivers actan de una forma similar al HUBD. Un driver, cuando se
carga o inicializa, se registra a s mismo en el sistema USB. Cuando se conecta
un dispositivo, se recorre la lista de drivers registrados en busca del que pueda ser
ms conveniente para este. Cuando se encuentra, se le pide que configure el
dispositivo. Si no lo logra, se busca otro; si no se encuentra ninguno, se pedir
que se cargue un mdulo con un driver par a ese dispositivo. En caso de que no
haya ninguno, se dar por imposible y se dejar el dispositivo como no
configurado y esperando a que se cargue un driver que lo pueda configurar.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

GLOSARIO

? Endpoints: Buffer (bloque de datos) o un registro q ue almacena bytes


que se encuentran en el dispositivo.

? CRC (Cdigo de redundancia cclica): Se trata de un mtodo


matemtico a travs del cual, permite detectar errores en la informacin. Es
comnmente utilizado en la transmisin de datos a travs de
comunicaciones y en los archivos Zip. Valor usado para comprobar que los
datos no se alteren durante la transmisin. El transmisor calcula una CRC y
enva el resultado en un paquete junto con los datos. El receptor calcula la
CRC de los datos recibidos y compara el valor con la CRC del paquete. El
clculo de una CRC es ms complejo que una cifra de comprobacin, pero
puede detectar ms errores de transmisin.

? Data Toggle: Uso alternativo de paquetes DATA0 y DATA1.

? Split: Es un fallo en los servidores de IRC, que hace que salgan muchos
usuarios de una vez. Esto se basa en que los usuarios conectan a un
servidor, que a su vez se conecta con otros. Si dicha conexin entre los
servidores falla se produce un Split o Net Split, haciendo que los usuarios
del mismo servidor puedan seguir hablando entre ellos, pero no con la
gente que est en el resto de servidores, habiendo sido "desconectados"
para ellos.

? Ping : Se utiliza normalmente para verificar si un ordenador esta


funcionando o bien para ver si las conexiones de red responden
adecuadamente.
Cuando se ejecuta este comando, el ordenador enva una serie de pequeos
paquetes al ordenador de destino, cuando el ordenador de destino los recibe
manda una respuesta, y podemos estar seguros que ese ordenador esta
funcionando o esta en red.

? Pipes: Asociacin entre el host y el Endpoints.

? T.T. : Mtodo del circuito de las transiciones.

? Protocolo: conjunto de reglas establecidas para fijar la forma en que se


realizan las transacciones.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

? Firware: conjunto de programas de slo lectura que contienen el


algoritmo para una funcin especfica. Algoritmo o pequeo programa de
bajo nivel grabado en un EEPROM para uso del procesador. Tambin se
llama Microcode.

Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell

También podría gustarte