Protocolo USB aplicado a placas con microcontroladores

Transcripción

Protocolo USB aplicado a placas con microcontroladores
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
Protocolo USB aplicado a placas
con microcontroladores
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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. TAXONOMÍA
1.3.3. LISTA DE HERRAMIENTAS
1.4. ARQUITECTURA DEL USB
1.4.1. DESCRIPCION DEL SISTEMA
2. TOPOLOGÍA 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. APLICACIÓN A MICROCONTROLADORES
4.1 PATILLAJE MICROCONTROLADOR PIC
4.2 CONTROLADOR PERIFERICOS USB
4.3. CONEXIÓN PC-MICROCONTROLADOR
4.4. CONTROLADORES (DRIVES) DE SOFTWARE
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
1. INTRODUCCIÓN AL USB
1.1. INTRODUCCIÓN
Cada día aparecen nuevas utilidades de mucha más potencia, con más
posibilidades y mucho más gráficas, que requieren de más 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 periféricos y componentes de mayor capacidad, discos duros
con más Gigas, tarjetas de video más potentes, procesadores más rápidos,
etc ... pero también necesitamos que la "vía" por la que se van a transmitir
esos datos sea más fiable y más rápida, de forma que se ajuste a los
avances producidos.
Por esta razón, aparecen nuevos medios físicos más rápidos, en un
principio teníamos la interfaz serie y paralelo, pero era necesario unificar
todos los conectores creando uno más sencillo y de mayores prestaciones.
Así nació el USB (Universal Serial Bus) una de las mayores revoluciones
en la computación, una tecnología que dejó completamente en el olvido la
forma de interconectar periféricos a las computadoras, la expansibilidad, la
sencillez de configuración y uso del hardware.
Ya desde hace algunos años, las empresas de noticias e investigación
hablaban sobre este tipo de bus, para que luego de mucho trabajo y
consenso, la especificación USB Versión 2.0 estuviera disponible para
todas las empresas de fabricación de hardware del mundo, ofreciendo
diversos dispositivos que soportan esta especificación.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
La documentación técnica relacionada con USB es realmente abundante y
de gran profundidad, no solamente informática, sino también eléctrica,
electrónica y mecánica. Por esta razón es altamente recomendable
analizarla detalladamente, desde sus orígenes y la motivación para su
actual existencia.
1.2. ¿QUÉ ES USB?
El Bus Universal en Serie (USB) consiste en
una norma para bus periférico desarrollada
por las industrias de computadoras y
telecomunicaciones (Compaq, HewlettPackard, Intel, Lucent, Microsoft, NEC y
Philips) . Un computador con USB permite
adjuntar dispositivos periféricos
rápidamente, sin necesidad de reiniciar ni de
volver a configurar el sistema. Los
dispositivos con USB se configuran automáticamente tan pronto como se
han adherido físicamente.
La computadora cuenta normalmente con dos conectores USB. Además, se
pueden unir dispositivos con USB en una cadena para conectar más de dos
dispositivos a la computadora.
1.3. ANTECEDENTES
Este capítulo presenta una breve descripción de los
antecedentes del Bus Serial Universal (USB),
incluyendo metas de diseño, herramientas del bus y
tecnologías existentes.
1.3.1. METAS DEL USB
El USB está especificado para ser una extensión estándar para la industria
de arquitectura PC con un enfoque en periféricos para PC que habilita
aplicaciones para consumidores y negocios. Los siguientes criterios se
aplicaron en la definición de la arquitectura del USB:
? Fácil de usar por los periféricos de expansión PC
? Solución de bajo costo que soporte ratas de transferencia arriba
de 480 Mb/s
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 isocrónica y
mensajería asincrónica
? Comprensión de varias configuraciones PC y factores de forma
? Provisión de una interface estándar
? habilitación de nuevas clases de dispositivos que aumenten la
capacidad de los PC
? iFull compatibilidad de retroalimentación de los dispositivos
USB con las versiones previas de la especificación.
1.3.2. TAXONOMÍA
La figura 3.1 describe una taxonomía para el rango de carga de trabajo
para el tráfico de datos que puede ser servido a través del USB. Como
puede verse, un bus de 480 Mb/s comprende los rangos de datos de
velocidad alta, full velocidad y baja velocidad. Típicamente, los tipos de
datos de alta velocidad y full velocidad pueden ser isocrónicos, mientras
los datos de baja velocidad vienen de herramientas interactivas. El USB es
principalmente un bus de PC pero puede ser fácilmente aplicado a otras
herramientas computacionales como Host-centric. La arquitectura del
software para la futura extensión del USB provee soporte para múltiples
Controladores Host USB.
Figura 3-1. Taxonomía del Espacio de Aplicación
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
1.3.3. LISTAS DE HERRAMIENTAS
La especificación USB provee una selección de atributos que puede
conseguir múltiples puntos de integración precio/desempeño y puede
habilitar funciones que permiten diferenciación del nivel de sistema y
componente. Las herramientas son categorizadas por los siguientes
beneficios:
Fácil de usar por el usuario final
? Modelo simple de cables y conectores
? Detalles eléctricos aislados del usuario final (e.g., terminaciones
del bus)
? Periféricos auto-identificables, mapeo automático de la
configuración y la función 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 isocrónicas tan bien como
asincrónicas con los mismos conductores
? Soporta operación concurrente de muchos dispositivos
(conexiones múltiples)
? Soporta hasta 127 dispositivos físicos
? Soporta transferencia de múltiple flujo de datos y mensajes entre
el host y los dispositivos
? Permite dispositivos compuestos (i.e., periféricos compuestos de
muchas funciones)
? Disminuye el protocolo aéreo, resultando en alta utilización del
bus
Ancho de Banda Isocrónica
? Ancho de banda garantizado y bajo estado latente apropiado para
telefonía, audio, vídeo, etc.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
Flexibilidad
? Soporta un ancho rango de tamaños 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 recuperación de error de encabezamiento/falla
está dentro del protocolo
? La inserción y remoción dinámica de dispositivos es identificada
en tiempo real
? Soporte de identificación 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 implementación
? Bajo costo del subcanal a 1.5 Mb/s
? Optimizado para integración entre periféricos y el hardware host
? Utilizable por desarrolladores de periféricos de bajo costo
? Uso cómodo de tecnologías
Trayectoria de mejoramiento
? Arquitectura mejorada para soporte múltiple de controladores
host USB en un sistema
1.4. ARQUITECTURA DEL USB
Este capítulo 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
periféricos de banda ancha accesibles
simultáneamente. Los periféricos adjuntados parten
la banda ancha del USB a través de la
programación del host, protocolo de prueba-base. El bus permite que los
periféricos sean adjuntados, configurados, usados y detectados mientras el
host y otros periféricos están en operación.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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. DESCRIPCIÓN DEL SISTEMA USB
Un sistema USB es descrito por tres áreas definidas:
? Interconexión USB
? Dispositivos USB
? Host USB
La interconexión USB es la manera en la que los dispositivos USB son
conectados para una comunicación con el host. Esta incluye lo siguiente:
? Topología del Bus: Modelo de conexión entre los dispositivos
USB y el host
? Conexiones Inter-capas: En términos 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.
? Programación USB: El USB provee una interconexión partida.
El acceso a la interconexión es programado en orden para
soportar transferencia isocrónica de datos y para eliminar el
arbitraje aéreo.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
2.TOPOLOGIA Y PROTOCOLOS
La Figura muestra la estratificación del
sistema USB. El mismo está compuesto por tres
áreas claramente demarcadas: (1) el host USB,
(2) los dispositivos USB y, (3) toda la
interconexión USB. La interconexión USB es la
manera en la cual los dispositivos USB se
conectan y comunican con el host, esto incluye:
la topología del bus o el modelo de conexión
entre los dispositivos USB y el host; los
modelos de flujo de datos, es decir la forma en
la que la información se mueve en el sistema
entre los diversos elementos del mismo; la
planificación USB que define la secuencia en la
cual los dispositivos accederán 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 conexión
adicionales a los existentes en el host, o bien diferentes dispositivos típicos
periféricos. Es evidente que todos estos dispositivos deben tener la capacidad de
soportar la especificación USB en cuanto a protocolos de comunicación se
refiere, operaciones USB , configuración y reseteo USB.
La topología del bus USB adopta forma de estrella y se organiza por
niveles. En un bus USB existen dos tipos de elementos: Anfitrión (“host”) y
dispositivos; a su vez los dispositivos pueden ser de dos tipos: Concentradores y
Funciones:
El anfitrión 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 porción del mismo denominado
Controlador USB del Host. Este tiene la
misión de hacer de interfaz entre el micro
mismo y los diferentes dispositivos.
Existen algunas particularidades respecto a
este controlador. Su implementación es
una combinación de hardware y software
todo en uno, es decir firmware. Puede
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
proveer de uno o dos puntos de conexión iniciales, denominados Hub Raíz, a
partir de los cuales y de forma ramificada irán conectándose los periféricos.
El Host USB trabaja con los diferentes dispositivos valiéndose 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 conexión de nuevos dispositivos USB al sistema como la
atención de aquellos ya conectados, y por supuesto, configurarlos y
ponerlos a disposición 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 información generada por el usuario
mismo.
3. Administrar y regular los flujos de control entre el host y los dispositivos
USB, es decir la información que se mueve con el objeto de mantener el
orden dentro de los elementos del sistema.
4. Recolectar y resumir estadísticas de actividad y estados de los elementos
del sistema.
5. Proveer de una cantidad limitada de energía eléctrica para aquellos
dispositivos que pueden abastecerse con tan solo la energía eléctrica
proveniente desde el ordenador (el teclado y el ratón son dos ejemplos
claros).
Por otra parte, al nivel de software las funciones del Controlador de Host se
incrementan y complican:
1. Enumeración y configuración de los dispositivos conectados al sistema.
2. Administración y control de transferencias isocrónicas de información.
3. Administración y control de transferencias asincrónicas.
4. Administración avanzada de suministro eléctrico a los diferentes
dispositivos.
5. Administración de la información del bus y los dispositivos USB.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 interconexión de dispositivos al computador. Son el
centro de una estrella, y sirven para conectar con el sistema anfitrión, con otro
hub o con una función. Cada hub puede proporcionar 500 mA de energía y de
alimentación (+5 V.cc + 0.25V.Las Figuras muestran hubs USB disponibles en el
mercado.
Bajo una óptica eléctrica y teleinformática,
los hubs son concentradores cableados que
permiten múltiples conexiones simultáneas. Su
aspecto más interesante es la concatenación,
función por la que a un hub se puede conectar otro
y otro, ampliando la cantidad de puertos
disponibles para periféricos.
El hub USB tiene la capacidad de detectar si un periférico
ha sido conectado a uno de sus puertos, notificando de
inmediato al Controlador de Host en el computador, proceso que
inicia la configuración del equipo nuevo; adicionalmente, los
hubs también son capaces de detectar la desconexión de un
dispositivo, notificando al Controlador de Host que debe
remover las estructuras de datos y programas de administración
(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 entrarían en colapso. La
protección de los dispositivos lentos de los rápidos 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 función de analizar,
corregir y retransmitir la información que llega al hub, hacia los puertos del
mismo. Mantiene una memoria consistente en varios registros de interfaz que le
permiten sostener diálogos con el host y llevar adelante algunas funciones
administrativas además de las meramente operativas; mientras que el Controlador
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
de Hub puede asemejarse a una pequeña CPU de supervisión de las múltiples
funciones que deben desempeñar un hub.
Una función Es dentro de la terminología USB, todos los dispositivos que
pueden ser conectados al bus USB, a excepción de los hubs .Es un dispositivo
capaz de transmitir o recibir datos de información 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 anfitrión.. El
común denominador a todas las funciones USB es su cable y el conector del
mismo, diseñado 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 típicas el ratón, el monitor, módem, 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 más. En un esquema tan sencillo, existen 14 puertos disponibles
para todo tipo de periféricos, entre los que podemos citar: ratón, tablilla
digitalizadora, lápiz óptico, teclado, impresora, un teléfono ISDN, etc.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
En general cada segmento del bus representa una conexión punto a punto de
alguno de los tipos siguientes:
Sistema anfitrión
Función
Sistema anfitrión
Concentrador
Concentrador
Concentrador
Concentrador
Función
Topología estrella del bus USB
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 introducción 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 estarán disponibles en el
mercado seguirán manteniendo estos
puertos con sus características habituales,
sin embargo se plantea que a la larga
desaparezcan poco a poco con el
transcurrir de los años. 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 lógicos: entre el Software Cliente y la Función, el Controlador USB y el
dispositivo, y finalmente la capa física, donde la transmisión realmente sucede.
Es importante entender que este modelo es muy parecido al OSI, el estándar de
redes, y su comprensión radica en el hecho de que si bien existe un solo canal
físico, pero los datos son manejados en cada punto por unidades homólogas, tal
como si estuviesen sosteniendo una comunicación directa. Por esta razón se las
denomina Capas Lógicas.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
El nivel superior lógico es el agente de transporte de datos que mueve la
información entre el Software Cliente y el dispositivo. Existe un Software Cliente
en el host, y un Software De Atención al mismo en cada una de las funciones o
periféricos USB. A este nivel, el host se comunica con cada uno de los periféricos
en alguna de las varias formas posibles de transmisión que soporta USB. El
Software Cliente solicita a los dispositivos diversas tareas y recibe respuestas de
ellos a través de esta capa.
La capa lógica intermedia es administrada por el Software de Sistema
USB, y tiene la función de facilitarles las tareas particulares de comunicación a la
capa superior, cabe decir, administra la parte del periférico con la que la capa
superior desea comunicarse, maneja la información de control y comando del
dispositivo, etc. Su objetivo es permitir a la capa superior concentrarse en las
tareas específicas tendientes a satisfacer las necesidades del usuario,
adicionalmente gestiona el control interno de los periféricos.
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 periférico, y lo
más importante, el costo final de los dispositivos USB.
La capa física del modelo lógico USB comprende los puertos físicos, el
cable, los voltajes y señales, el hardware y funcionamiento del hardware. Esta
capa tiene el objetivo de liberar a las capas superiores de todos los problemas
relacionados a la modulación, voltajes de transmisión, saltos de fase, frecuencias
y características netamente físicas de la transmisión. 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 dividía 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, Interrupción e
Isócronas full/low-speed, en USB 2.0 también 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 Díaz, María José Fresneda, Mónica Jiménez, 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 máximo reservado en cada trama a cada endpoint
Isócrono o de Interrupción es el de una transacción por trama.
USB 2.0 soporta dos tipos de endpoints Isócronos y de Interrupción:
? ??Endpoints de ancho de banda normal, que precisan hasta 1,024 bytes por
microtrama (una transacción).
? ??Endpoints de alto ancho de banda (High Bandwidth), que precisan más de
1,024 bytes por microtrama, hasta un máximo 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 también mantiene la estructura de la transacción, formada en base
a la secuencia de paquetes Token-Dato-Validación (Handshake), definida en USB
1.x. Básicamente USB 2.0 añade 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 numeración
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 isócronas de alta velocidad y alto ancho
de banda.
? ??MDATA, empleado en transacciones isócronas de alta velocidad y alto ancho
de banda y en transacciones Split (las transacciones se describen más adelante).
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
En el grupo de paquetes de Validación (Handshake), aparte de los tres
tipos definidos en USB 1.x (ACK(recepción 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” (todavía 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 código asignado por USB
1.x al paquete especial PRE. Se recuerda aquí la descripción del paquete PRE,
para mostrar que no hay posibilidad de error en cuanto a que un mismo código
identifique a dos paquetes distintos:
? ??PRE (Preámbulo): Definido en USB 1.x para indicar que a continuación se va a
transmitir en modo baja velocidad. Sólo lo puede transmitir un host USB 1.x (en
modo full-speed) inmediatamente antes del campo de token de la transacción
low-speed.
? ??ERR (Error): Se usa para indicar errores en transacciones Split high-speed.
Reutiliza el código del tipo de paquete PRE. Sólo lo puede transmitir un
concentrador USB 2.0 (en modo high-speed) en el campo de validación
(handshake) de una transacción Split.
? ??SPLIT: Lo transmite el host en el campo de token de una transacción Split.
? ??PING: Lo transmite el host en el campo de token de una transacción de control
de flujo PING.
?Paquete de Token SOF y Número de Microtrama
En USB 1.x, el número de la trama es un campo de 11 bits que el host
incrementa una vez por trama, y que envía sólo en el paquete SOF (Start-OfFrame) al principio de cada trama. USB 2.0 utiliza este mismo campo para
indicar el número de microtrama. En este caso, el host no envía todos los bits del
número de microtrama (14 bits), sino solamente los 11 bits más altos. Como
cada trama (1 ms) contiene 8 microtramas (125 us), el efecto de lo anterior es
que el host USB 2.0 envía durante 8 microtramas consecutivas un paquete SOF
con el mismo número de trama. Los dispositivos full-speed reciben un paquete
SOF cada milisegundo con un número de trama secuencial. Los dispositivos
high-speed reciben un paquete SOF cada 125 microsegundos, pero con el mismo
número de trama en cada grupo de 8 consecutivos.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
Los dispositivos high-speed que necesiten llevar un control del número de
microtrama, pueden detectar cuándo un paquete SOF tiene un número 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 número de trama serán
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 detección 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 función de detección 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 Interrupción high-speed high bandwidth realizadas en la
misma microtrama, hacen uso del mecanismo Data Toggle (uso alternativo de
paquetes DATA0 y DATA1).
? ??En transacciones Isócronas-IN high-speed high-bandwidth, el dispositivo envía
los datos utilizando las siguientes secuencias de paquetes:
? En el caso de 1 transacción 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 Isócronas-OUT high-speed high-bandwidth, el host envía los
datos utilizando las siguientes secuencias de paquetes:
? En el caso de 1 transacción 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 Interrupción-OUT, el host alterna los paquetes
DATA0 y DATA1 en la manera habitual (data toggle).
? ??En transacciones Complete-Split de Interrupción-IN, el concentrador también
alterna los paquetes DATA0 y DATA1, siempre que la transacción en el bus
full/low-speed se haya completado durante una microtrama. Cuando se da el caso
de que la transacción en el bus full/low-speed abarca dos microtramas, la
respuesta del concentrador en la primera transacción Complete-Split usa el
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 transacción Complete-Split en la siguiente microtrama, para obtener
el resto de los datos (que se transmitirán mediante un paquete DATA0 o DATA1,
según corresponda en la secuencia Data Toggle).
? ??En transacciones Start-Split Isócronas-OUT, el host siempre usa el paquete
DATA0.
? ??En transacciones Complete-Split Isócronas-IN, el concentrador usa el paquete
MDATA para todos los paquetes excepto para el último, en que usa el paquete
DATA0 (la transacción 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 máxima cantidad de información útil que se puede transferir en un
paquete de datos depende de la velocidad del dispositivo y del tipo de
transferencia.
Paquete de Validación (Handshake) NYET
Se utiliza sólo 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.
? ??También lo puede transmitir un concentrador high-speed como respuesta a una
transacción Split, cuando el concentrador todavía no ha concluido la transacción
full/low-speed con el dispositivo, o bien cuando el concentrador no puede atender
la transacción en ese momento.
?Paquete Especial de Handshake ERR
Se utiliza sólo en modo high-speed, y lo puede transmitir un concentrador
high-speed en el campo de handshake de una transacción Complete-Split, para
informar de un error en la transacción full/low-speed.
?Paquetes Especiales de Token para Transacciones Split
Aparte de las transacciones definidas en USB 1.x (Control, Bulk,
Interrupción e Isócronas), USB 2.0 define las transacciones Split. Sólo los
controladores de host y los concentradores USB 2.0 deben soportar este nuevo
tipo de transacción, ya que es invisible a los dispositivos.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
Este tipo de transacción es el que permite la comunicación con dispositivos
full/low speed conectados a concentradores que funcionan en modo high-speed.
El host comienza una transacción Split cuando envía al concentrador, en modo
high-speed, toda la información necesaria para que el concentrador ejecute ahora
una transacción full/low-speed con el dispositivo. Toda la información 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 transacción 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 envíe, 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 información necesaria para que el concentrador ejecute ahora una
transacción full/low-speed con el dispositivo.
? ??Complete Split: La utiliza el host para leer del concentrador, en modo highspeed, la respuesta del dispositivo full/low-speed.
Un campo en el propio paquete SPLIT identifica el tipo de transacción.
Paquete Especial de Token PING para Control de Flujo
Un caso bastante frecuente y que produce una gran pérdida 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 momentáneamente recibir
nuevos datos hasta que se desocupe el buffer de recepción.
En USB 1.x, esta situación la controla el dispositivo devolviendo una
validación (handshake) NAK en la transacción OUT en la que el host ha
transmitido un nuevo paquete de datos. Esta validación indica que el dispositivo
no ha podido recibir los datos porque no tiene espacio suficiente en su buffer de
recepción, y el host debe reintentar la transmisión posteriormente.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 transacción ya se ha consumido, ya que el paquete
de datos se ha transferido íntegramente. Esto produce una pobre utilización del
bus cuando se suceden múltiples transacciones OUT con respuesta negativa
(NAK) por parte del dispositivo.
USB 2.0 define un nuevo protocolo de control de flujo más eficiente,
denominado PING, que debe ser utilizado por las transferencias de tipo BulkOUT 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 transmisión 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 validación 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
periódicamente mediante paquetes PING hasta que recibe un handshake ACK, en
cuyo caso procede a la transmisión del paquete de datos.
Una vez que se produce la recepción de un paquete de datos, el dispositivo
puede contestar con una validación ACK, para indicar la correcta recepción del
paquete y que tiene espacio para el siguiente paquete, o con una validación
NYET, para indicar la correcta recepción 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 vías de comunicación 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 comunicación (pipes)
necesarias entre el sistema y cada uno de los endpoints disponibles en dicha
configuración. 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 Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
El sistema elige una cierta configuración en función de la funcionalidad particular
que se precise del dispositivo.
Existen 4 tipos de endpoints (Bulk, Control, Interrupción e Isócrono) y 2
tipos de pipes (Control o Mensaje y Stream). Las posibles combinaciones son:
? ??Pipe de Control o Mensaje. Es una vía de comunicación 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 comunicación
bidireccional. Todos los dispositivos USB disponen de dos endpoints de Control
en la dirección 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 través de esta pipe, el
sistema puede leer del dispositivo toda la información descriptiva necesaria para
enterarse del tipo de dispositivo, posibles configuraciones, protocolos que
soporta, número y tipos de endpoints que soporta en cada posible configuración,
etc. Esta información descriptiva son los Descriptores.
? ??Pipe Stream. Es una vía de comunicación unidireccional entre el host y un
endpoints de los tipos Bulk, Interrupción o Isócrono. 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 básicas entre las transferencias USB 1.x y USB 2.0 son:
? ??Tamaños máximos de los paquetes de datos en cada tipo de transferencia.
? ??Reserva de tiempo de microtrama para las transferencias de Control, de
Interrupción e Isócronas.
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
dirección 0, para poder establecer la Pipe de Control por Defecto.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 tamaños máximos del paquete de datos
durante la transacción de datos son:
? ??Full-speed: 8, 16, 32, ó 64 bytes
? ??High-speed: 64 bytes
? ??Low-speed: 8 bytes.
USB hace una gestión “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 envío 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 más transferencias de Control pendientes que tiempo reservado, pero
hay tiempo adicional en la trama o microtrama no consumido por transferencias
de Interrupción o Isócronas, entonces el host puede utilizar dicho tiempo
adicional para enviar nuevas transferencias de Control.
? ??Si hay más transferencias de Control pendientes que tiempo disponible en una
trama o microtrama, el host selecciona cuáles se procesan, quedando el resto
pendientes para una próxima 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 Isócronas
Las transferencias Isócronas están diseñadas para soportar aquellos
dispositivos que precisan una entrega de datos a velocidad constante, y en la que
no importa la pérdida eventual de información. Esto es necesario para
aplicaciones en que la información de tiempo va implícita en la propia velocidad
de transmisión/recepción de datos (isocronismo).
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
Para ello, las transferencias Isócronas proporcionan:
? ??Ancho de banda garantizado
? ??Latencia limitada
? ??Velocidad de transferencia de datos constante garantizada a través de la pipe
? ??En caso de error en la entrega, no se reintenta la transmisión
? ??Sin control de flujo
Sólo los dispositivos high y full-speed pueden incorporar endpoints Isócronos.
Las transferencias Isócronas se componen sólo de transacciones de datos.
Las frecuencias y los tamaños de los paquetes de datos son:
? ??Full-speed: 1 transacción por trama de hasta 1,023 bytes.
? ??High-speed: 1 transacción por microtrama de hasta 1,024 bytes.
? ??High-speed high-bandwidth: 2 ó 3 transacciones por microtrama de hasta 1,024
bytes cada una.
La gestión que hace USB para garantizar las transferencias es la de
establecer o no la pipe en función de que haya suficiente tiempo libre de trama o
microtrama para realizarlas. Para ello, los endpoints Isócronos indican qué
cantidad de información como máximo 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 función de eso la establece o no.
La reserva de tiempo de trama o microtrama para acomodar transferencias
Isócronas y de Interrupción es como máximo el tiempo no reservado para
transferencias de Control. El sistema USB puede ir estableciendo pipes Isócronas
y de Interrupción 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 Interrupción
Las transferencias de Interrupción están diseñadas para soportar aquellos
dispositivos que precisan enviar o recibir datos de manera no frecuente, pero con
ciertos límites de latencia.
Para ello, las transferencias de Interrupción proporcionan:
? ??Tiempo máximo 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 Interrupción.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
??
Las transferencias de Interrupción se componen sólo de transacciones de
datos. Los tamaños 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 gestión que hace USB para garantizar las transferencias es la de
establecer o no la pipe en función de que haya suficiente tiempo libre de trama o
microtrama para realizarlas. Para ello, Las transferencias de Interrupción indican
qué cantidad de información como máximo debe transferir la pipe en cada
transacción, así como el tiempo máximo entre transacciones, de forma que el
sistema USB puede calcular si hay suficiente tiempo o no para acomodar la pipe,
y en función de eso la establece o no.
El tiempo máximo entre transacciones (tiempo de latencia máximo)
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 4´096 seg.
La reserva de tiempo de trama o microtrama para acomodar transferencias
Isócronas y de Interrupción es como máximo el tiempo no reservado para
transferencias de Control. El sistema USB puede ir estableciendo pipes Isócronas
y de Interrupción 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 están diseñadas 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 función del ancho de banda disponible.
? ??Reintento de transferencias en caso de errores de entrega.
? ??Entrega garantizada de datos, pero sin garantía de latencia máxima ni de ancho
de banda.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
Las transferencias Bulk se realizan relati vamente rápidas 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.
Sólo los dispositivos high y full -speed pueden incorporar endpoints Bulk.
Las transferencias Bulk se componen sólo de transacciones de datos. Los
tamaños de los paquetes de datos son:
? Full-speed: 8,16, 32 y 64 bytes.
? High-speed: 512 bytes.
USB hace una gestión “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 Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
3.2. DIFERENCIA ENTRE CABLE USB Y CABLE PARALELO
Introducción
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
imágenes y dibujos, así como las descripciones que aparecen a continuación le
ayudarán a determinar qué conexiones hay en su impresora y en su equipo.
¿Cuál 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, escáneres, cámaras y unidades, con una conexión común.
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 Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
¿Cómo se debe conectar el cable USB al PC?
¿Cómo se debe conectar el cable USB a la impresora?
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 especificación IEEE1284, es decir, tiene que cumplir determinados estándares
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
especificación IEEE1284, es posible que la impresora y el equipo no puedan
comunicarse adecuadamente y que la impresora imprima caracteres extraños o
que aparezcan los siguientes mensajes de error:
Error al escribir en LPT1
No se puede establecer la comunicación bidireccional
Impresora sin papel
La impresora no responde
El cartucho de impresión 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 conexión 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 más utilizados para conectar equipos a
impresoras. La mayoría de las impresoras y equipos disponen de una conexión en
paralelo.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
¿Cómo se debe conectar el cable paralelo al PC?
¿Cómo se debe conectar el cable paralelo a la impresora?
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 sólo se necesita uno para imprimir. Estas
impresoras pueden conectarse a un equipo mediante un cable USB y a otro
equipo a través de un cable paralelo. Las impresoras pueden elegir si cambiar
automáticamente la recepción 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 sólo 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 típico cable USB sería 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 Díaz, María José Fresneda, Mónica Jiménez, 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 función de e
USB.
PVP: 1.27
PVD1: 1.00
PVD2: 0.96
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 función de e
USB. Longitud del cable de 5 metros.
PVP: 4.36
PVD1: 3.43
PVD2: 3.29
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 función 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 Díaz, María José Fresneda, Mónica Jiménez, 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 tamaño más 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 tamaño más 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 transmisión 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 Díaz, María José Fresneda, Mónica Jiménez, 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 transmisión 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 transmisión 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 transmisión 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 Díaz, María José Fresneda, Mónica Jiménez, 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 transmisión 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 transmisión 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 Díaz, María José Fresneda, Mónica Jiménez, 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 transmisión 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 transmisión 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 diseñado para conectar a los cinco pins en línea de que dispo
para los puertos USB 3-4 y en adelante. Esto permite la conexión de periféricos 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 Díaz, María José Fresneda, Mónica Jiménez, 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 diseñado para conectar a los cinco pins en línea de que dispo
para los puertos USB 3-4 y en adelante. Esto permite la conexión de periféricos 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 señal en aquellas ocasiones en que sea necesario
buena señal para su correcto funcionamiento, o porque se supere la distancia máxima que perm
dispone de la electrónica necesaria para realizar esta función. Se trata de un cable de 5m, con c
Hembra en el otro. Permite encadenar 6 unidades para conseguir un máximo 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 Díaz, María José Fresneda, Mónica Jiménez, 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 señal en aquellas
que el periférico requiera una buena señal para su correcto funcionamiento, o porque se supere
Además de un simple cable, dispone de la electrónica necesaria para realizar esta función. 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 máxima que permite USB hasta 100m utilizando
un módulo 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 más ramificaciones si
bajo y alto consumo. Tamaño: 100x80x35mm. Peso: 300gr.
PVP: 486.55
PVD1: 382.29
PVD2: 366.58
US72: Icron USB Ranger 410i
Dispositivo que permite extender la longitud máxima que permite USB hasta 100m utilizando
un módulo 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 más ramificaciones
de bajo y alto consumo. Tamaño: 100x80x35mm. Peso: 300gr.
PVP: 506.18
PVD1: 397.71
PVD2: 381.37
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
US73: Icron USB Ranger 422i
Dispositivo que permite extender la lo ngitud máxima 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 módulo remoto (REX)
se conecta al dispositivo USB o concentrador para realizar más ramificaciones si es necesario.
alimentación de 15VDC (incluidas). Lo s conectores de fibra óptica son del tipo MT-RJ y cada
Soporta periféricos 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 máxima que permite USB hasta 100m utilizando c
un módulo 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 más ramificaciones si
hasta 300mA conectados al módulo remoto, pues funciona s in fuente de alimentación y esto ha
remoto sea limitada. El módulo 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 Díaz, María José Fresneda, Mónica Jiménez, 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 alimentación externa. Consiste en un módulo local y u n
módulo remoto que se conectan entre ellos con cable estándar 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 máxima de
45m, para asegurar el correcto funcionamiento co n cualquier
dispositivo USB, aunque según 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 módulos disponen de un conector RJ45 -Hembra para la
interconexión mediante cable UTP Cat.5.
PVP: 117.82
PVD1: 92.57
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
4 APLICACIÓN 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 información 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 Díaz, María José Fresneda, Mónica Jiménez, 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 Díaz, María José Fresneda, Mónica Jiménez, 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 línea D+ del conector USB a la señal de
alimentación del puerto USB. Esta resistencia, es una resistencia pull-up, es una
indicación 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 líneas D+ y D- del conector y las
patillas del micro. Estas resistencias proporcionan la correcta terminación para las
líneas de datos USB.
Se conectan dos condensadores de las líneas 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 línea GND del conector
USB a la masa del circuito, y la otra la conectamos a la línea Vbus del conector a
la alimentación del circuito. Estas bobinas proporcionan una función similar a los
condensares descritos anteriormente, pero para las líneas de alimentación del
conector USB.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
Fig. 2: Aquí vemos otro ejemplo de cómo conectar un microcontrolador a
un conector USB.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 conexión varía 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 señal de alimentación 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 Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
poder seleccionar la tensión entre 5 y 3.3 V. Además este jumper sirve también
para desconectar la tensión 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 también que si el conector USB dispone de alimentación propia a
3.3 V o 5 V independientemente de la alimentación del microcontrolador, este
actuará como maestro, pero si ambos dispositivos (USB y microcontrolador)
están alimentados por una sola tensión 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 periféricos sencillos de baja velocidad (hasta 1.5 Mbs) que solo
requieran transf erencias de control y de interrupción.
Permiten el uso de hasta 3 puntos finales (endpoints 0,1 y 2).
Dicho módulo consta de una serie de registros que configuran y regulan su
funcionamiento, así como de un SIE (Serial Interface Engine) encargado de la
generación del CRC y la sincronización de las señales D+ y D-.
Cada vez que se produce una transmisión o recepción de datos en el bus,
se genera una interrupción en el PIC ante la cual la rutina de atención debe
responder gestionando todos los aspectos de bajo nivel de la especificación USB.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
De esta manera para la aplicación 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 atención a la interrupción y un sencillo interfase para poder intercambiar
datos entre la aplicación principal y el modulo USB.
4.4 EJEMPLO DE UN CONTROLADOR DE PERIFERICOS USB
La siguiente figura muestra la estructura interna del controlador de
periféricos USB. Todos los dispositivos USB responden también a un mismo
patrón estandarizado, que más allá de las características 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 información 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 situación.
Este es el Transceiver, fabricado dentro del mismo chip controlador de
periférico, y puede verse como la interfaz misma de un dispositivo externo
contra el resto del sistema.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
?
SERIAL INTERFACE ENGINE - SIE.- El SIE tiene la función de
serializar y deserializar las transmisiones, además maneja los protocolos de
comunicación, las secuencias de paquetes, el control CRC y la codificación
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 continuación).
Monitorea los estados de las transacciones, los buffer FIFO, y solicita atención
para diversas acciones a través 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 transmisión y cuatro destinados a la recepción
de datos.
Tanto para la transmisión como para la recepción, los buffer soportan
cuatro tareas o funciones, num eradas de 0 a 3.
La función 0 tiene reservado en el buffer en espacio de 16 bytes, y se
dedica a almacenar información de control relacionada a las transferencias. La
función 1 es configurable para disponer de más 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
isocrónicas como las bulk .
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
4.5 CONEXIÓN 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 comunicación con el PC y a la atención de un sistema
de adquisición de datos.
El microcontrolador utilizado es un microcontrolador USB cuyas características
más generales son:
·
Microcontrolador para periféricos USB de baja velocidad (low-speed).
·
Soporta la especificación USB versión 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 organización es RISC de 8 bits:
??
Este microcontrolador soporta transferencias de tipo Interrupción, que
básicamente consiste en paquetes máximos de 8 bytes, las transacciones no
pueden ser bidireccionales y para transmitir en ambas direcciones se requiere
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
transferencias separadas y un pipe para cada dirección. También soporta
transferencias de Control.
El programa del microcontrolador se puede separar en tres fases bien
diferenciadas en función de la tarea que realiza cada una. La figura siguiente
muestra el esquema de estas tres fases y el orden de ejecución de cada una:
La descripción 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 interrupción de reset para que el dispositivo configure los
registros y punteros necesarios y para que se pueda proceder a la enume ración.
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 utilizarán. Esto se realiza dentro de la rutina de servicio de la
interrupción BusReset.
2ª Fase : Proceso de Enumeración: esta fase se produce cuando el
dispositivo es conectado al Bus y después de la fase de Bus Reset. El host debe
reunir la información necesaria para que el sistema identifique al dispositivo y
configure el tipo de comunicación que se producirá entr e ambos y encuentre al
driver que tiene que utilizar para establecer la comunicación. El proceso consiste
primero, en asignar una dirección al device y segundo, el host envía una serie de
peticiones para que el dispositivo mande información con el fin de e stablecer la
comunicación.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
La información 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 información básica del dispositivo como
puede ser número de serie, clase de dispositivo, etc.
?
Configuración descriptor: contiene información sobre las capacidades y
funciones del dispositivo, tipo de alimentación de energía que soporta..
?
Interface descriptor: contiene información sobre el número 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 cofiguración de cada endpoint consiste en el número de
endpoint, dirección 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 enumeración en el se deberán carg ar en el
programa el código de los descriptores, habilitar y configurar la interrupción 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 enumeración se pasará a la fase de gestión del
dispositivo y de las comunicaciones.
3ª Fase. Gestión del dispositivo y de las comunicaciones: después de las dos
fases anteriores en las que se configura y se establece la comunicación 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 diseñado el dispositivo.
En el ejemplo que mostramos, en esta fase se controla tanto las señales que le
llegan por el Bus USB como las señales internas del dispositivo. Para entender la
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
programación que se hace sobre el microcontrolador, se muestra a continuación
las señales que gestiona:
Las señales 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 enumeración y una vez
que ha concluido la enumeración 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 nsmisión 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 interrupción) al host y por lo
tanto para la señal DATA. El endpoint se ha configurado como IN. El
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 interrupción (
interrupción endpoint 1) . Entonces en la rutina deservicio de esta interrupción se
deberá saber si están los datos cargados en el buffer del endpoint 1 o no. Si los
datos (8bytes) se han guardado en el buffer se transmitirán los datos y si no se
han guardado los datos aún se ignora la petición.
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 más 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 fabricarán en el futuro, razón por la
cual, Windows 95/98 solicitará el disquete o CD de instalación, para aquellos
periféricos que no pueda configurar adecuadamente.
Los sistemas operativos ganan en simplicidad. Los drivers para USB están
definidos por capas, de forma que la gestión del bus, la configuración básica de
los dispositivos, su manejo, etc... lo lleva el sistema operativo, mientras que cada
driver específico sólo maneja los dispositivos con los que pueda tratar. De esta
forma, tendremos una serie de módulos apilados con unas misiones específicas,
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í están
contenidas todas las llamadas que los drivers necesitarán 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 (acrónimos que significan
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, 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 gestión de la
configuración de los dispositivos. Esta parte consta de un demonio en activo
dentro del mismo núcleo llamado khubdd (Kernel Hub Driver Daemon, demonio
en el núcleo 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 actúa en consecuencia, lanzando secuencias de
desconexión, configuración, desconfiguració n, cambio de configuración o forma
de trabajo, etc ... en los dispositivos.
Los drivers actúan 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
más 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 módulo 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 Díaz, María José Fresneda, Mónica Jiménez, 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 (Código de redundancia cíclica): Se trata de un método
matemático a través del cual, permite detectar errores en la información. Es
comúnmente utilizado en la transmisión de datos a través de
comunicaciones y en los archivos Zip. Valor usado para comprobar que los
datos no se alteren durante la transmisión. El transmisor calcula una CRC y
envía 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
cálculo de una CRC es más complejo que una cifra de comprobación, pero
puede detectar más errores de transmisión.
? 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 conexión 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 envía una serie de pequeños
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: Asociación entre el host y el Endpoints.
? T.T. : Método 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 Díaz, María José Fresneda, Mónica Jiménez, Inma Montell
Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores
? Firware: conjunto de programas de sólo lectura que contienen el
algoritmo para una función específica. Algoritmo o pequeño programa de
bajo nivel grabado en un EEPROM para uso del procesador. También se
llama Microcode.
Manuel Cabeza, Priscilla Cruz, Ángel Díaz, María José Fresneda, Mónica Jiménez, Inma Montell

Documentos relacionados