Universal Serial Bus

Anuncio
Universal Serial Bus
Universal Serial Bus
The Easy Way to Plug & Play
INTRODUCCION
Cada cierto tiempo dentro del mundo de la computación se dan cambios realmente
importantes, cambios que de cierta forma abren nuevos horizontes y mayores
posibilidades. Es cierto que inicialmente es algo molesto tener que adecuarse a las
nuevas tecnologías, pero como todo cambio en computación e informática, el usuario
es siempre el más beneficiado.
Que este preámbulo nos sirva para presentar a una de las mayores revoluciones en la
computación, una nueva tecnología que dejará completamente en el olvido la forma de
interconectar periféricos a las computadoras, la expandibilidad, la sencillez de configuración y uso del
hardware: El Bus Serial Universal - USB.
Ya desde hace más de un año atrás las empresas de noticias e investigación hablaban concentradas sobre este
tipo de bus, para que luego de mucho trabajo y consenso, la especificación USB Versión 1.0 esté disponible
para todas las empresas de fabricación de hardware del mundo, y por cierto estas ya se hallan ofreciendo, y
lo harán mucho más en el futuro próximo, diversos dispositivos que soportan esta especificación.
La documentación técnica relacionada a USB es realmente abundante y de gran profundidad, no solamente
informática, sino también eléctrica, electrónica y mecánica, (la cual se tratara en detalle mas adelante en
esta bibliografía). Entonces, es recomendable analizar esta tecnología detalladamente, desde sus orígenes y
la motivación para su actual existencia.
MOTIVACION:
La motivación que ha dado origen al Bus Serial Universal proviene de tres aspectos fuertemente
interrelacionados:
1. Conexión del teléfono a la PC
2.
No cabe duda que la unión entre la computación y las comunicaciones ha de ser la base de todo tipo de
aplicaciones de software y hardware en el futuro, y que el teléfono es el accesorio más próximo a todos
por el que se puede establecer comunicación prácticamente con cualquier parte del mundo, ya sea
computadora o persona. Por ende, una nueva tecnología de transmisión de datos debe contemplar a las
computadoras y a los teléfonos como dos elementos indivisibles y mutuamente complementarios.
Uso sencillo
La falta de flexibilidad en la reconfiguración de toda PC ha sido siempre el enemigo de todas las personas
que sin conocer mucho de computación y hardware, desearían mantener actualizada su PC. Más aún, los puertos
de la computadora seriales, paralelos y de juegos, no son tipo Plug&Play. Los usuarios aún tienen problemas
al tener que acercarse a una tienda y solicitar un dispositivo, para que el vendedor le pregunte si desea el
mismo interno o externo, para puerto serial o paralelo, en ISA o PCI. En fin, un serio problema cuya solución
viene dada por el nuevo Bus Serial Universal.
3. Expansión de puertos
Actualmente las computadoras tienen un límite claro de expandibilidad, generalmente se tienen 4 ranuras PCI,
4 ISA, 2 puertos seriales y 1 paralelo. Un problema frecuente es contar con dos o más dispositivos que
requieren del puerto paralelo: la impresora, un escáner, un tape backup, por ejemplo. La especificación USB
ataca este problema frontalmente, brindando la posibilidad de conectar a una computadora, más de un centenar
de dispositivos, cifra realmente importante e inalcanzable (por ahora, claro). Más si hablamos que para unir
un dispositivo nuevo a la computadora no ha de hacer más falta que conectarlo a la misma, sin apagar nada,
sin reiniciar el equipo, sin abrirlo siquiera, y lo que es mejor, auto configuración inmediata.
Todo este bagaje de beneficios parecerían una utopía, quien sabe un sueño pero que ya se constituye
actualmente una verdadera realidad. La especificación USB está ya en el mercado; aunque muchos no lo sepan ya
tiene el potencial USB incorporado en sus computadoras: todos aquellos que tengan en su computadora una BIOS
de finales del año 97 o de inicios del 98, tienen una BIOS que soporta Bus Serial Universal. Claro, poco a
poco los dispositivos USB irán copando el mercado
BENEFICIOS
El trabajo involucrado dentro de la especificación USB es realmente completo, es un estudio muy minucioso que
comprende aspectos tales como: arquitectura del bus, definiciones de protocolos, tipos de transacciones,
administración del bus, programación de interfaces, señales eléctricas, especificaciones electrónicas,
conectores, formas de transmisión, etc. Pero todo esto se puede traducir en beneficios tangibles para el
usuario.
A continuación los mismos:
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (1 of 59) [11/10/2002 10:59:00 a.m.]
Universal Serial Bus
❍
Fácil expansión de periféricos en la PC, no debe hacer falta más que conectar el periférico y
emplearlo. Ni pensar en abrir la computadora.
❍
Bajo costo para aplicaciones que demandan por encima de los 12Mbps, particularmente aplicaciones y
hardware multimediales: micrófonos, parlantes, teléfonos, etc.
❍
Soporte completo para transmisión en tiempo real de voz, audio y video.
Flexibilidad de protocolos para transmisiones mixtas isocrónicas y asincrónicas (analizaremos el
tipo de transmisión isocrónica más adelante, ya que es el eje de transmisión del Bus Serial
Universal y tiene un nivel de conocimiento y difusión relativamente bajo dada su novedad).
❍
❍
❍
❍
Cómoda integración de dispositivos de tecnologías y fabricantes diferentes.
Soporte para plataformas diversas de la línea de las PC compatibles.
Posibilitar la producción de nuevos dispositivos capaces de aprovechar sus ventajas ( nuestro caso)
AMBITO DE APLICACIÓN DEL USB
Hasta este punto no hemos dicho claramente qué es el Bus Serial Universal, así que de forma sencilla podemos
indicar que USB es una nueva forma de interconectar periféricos a las computadoras. Estamos hablando de
dispositivos tales como: teclados, ratones, teléfonos, parlantes, digitalizadores, módems, etc. Pero con una
característica particular: todos los dispositivos tienen el mismo conector y sencillez de conexión.
Esta es una definición bastante global que iremos desmenuzando poco a poco. Sin embargo es importante saber
que el Bus Serial Universal comprende como clientes perfectos a todos los dispositivos que requieren
velocidades de transferencia bajas o medias. Las velocidades medias dentro de este bus son del tipo
isocrónicas (analizaremos este término en su momento), y las velocidades bajas son asincrónicas. La figura 1
muestra comparativamente una tabla de dispositivos que se benefician con cada una de las velocidades
soportadas por USB, en contraste con su hermano mayor FireWire 1394.
USB tiene una velocidad de rendimiento máximo que se halla rondando los 12Mbps, cubriendo las demandas de una
amplia gama de dispositivos seriales del mercado incluyendo a aquellos que requieren velocidades importantes
como los ISDN, elementos de procesamiento de imagen y video, etc.
CARACTERÍSTICAS DE USB
● Todos los dispositivos USB deben tener el mismo tipo de cable y el mismo tipo de conector, más allá de
la función que cumplan. El detalle de los mismos se puede observar en la Figura 2.
●
Los detalles de consumo y administración eléctrica del dispositivo deben ser completamente transparentes
para el usuario.
●
El HOST debe identificar automáticamente un dispositivo agregado mientras opera, y por supuesto
configurarlo.
●
Los dispositivos pueden ser también desconectados mientras la computadora está en uso.
Deben poder compartir un mismo bus tanto dispositivos que requieren de unos pocos Kbps como los que
requieren varios Mbps.
●
●
Más de 127 dispositivos diferentes pueden estar conectados simultáneamente y operando con una misma
computadora sobre el Bus Serial Universal.
●
El bus debe permitir periféricos multifunción, es decir aquellos que pueden realizar varias tareas a la
vez, como lo son algunas impresoras que adicionalmente son fotocopiadoras y máquinas de fax.
●
Capacidad para manejo y recuperación de errores producidos por un dispositivo cualquiera.
Soporte para la arquitectura Conectar y Operar (Plug & Play).
Bajo costo.
●
●
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (2 of 59) [11/10/2002 10:59:00 a.m.]
Universal Serial Bus
Vale la pena mencionar que todos los puntos citados anteriormente no son promesas, sino características
disponible del Bus Serial Universal, es decir que los usuarios pueden beneficiarse de absolutamente todas
estas capacidades.
Figura 2
RESPALDO DEL BUS SERIAL UNIVERSAL
Cuando alguien menciona la palabra Intel, todos tienen la seguridad de estar
respaldados por la empresa más grande de fabricación de microprocesadores del mundo; el
mencionar a Microsoft no es nada menos, todo el que haya tenido un mínimo roce con
computadoras conoce este nombre, y sin duda todos hemos empleado algún software
Microsoft; por su parte IBM es y ha sido siempre uno de los mayores colosos de la
computación en el mundo, especialmente en equipos grandes y de alto rendimiento; DEC Digital Equipment Corporation es otra de las mayores compañías del mundo que cubre
muchos aspectos y productos de la computación; Compac es una empresa cuyos productos
están distribuidos en todas partes del mundo, y varios de ellos son reconocidos por su
calidad; NEC se ha especializado en equipos de imagen como monitores, digitalizadores y
otros elementos para el diseño gráfico; finalmente Northern Telecom es una compañía que
brinda servicios de telefonía de larga distancia, transmisión de datos por líneas
telefónicas estándar, dedicadas, satélite e ISDN especialmente en Estados Unidos y
hacia todo el mundo.
Son principalmente estas siete empresas de nivel mundial, y líderes en el mundo de la
computación las que se han unido en un gran esfuerzo, y han dado vida finalmente al Bus Serial Universal. Con
semejante respaldo, la introducción de USB en el mercado es prácticamente un hecho, y el conocimiento de esta
tecnología es una necesidad.
ARQUITECTURA GENERAL:
El Bus Serial Universal está dado esencialmente por un cable especialmente diseñado para transmisión de datos
entre la computadora (cuyo nombre dentro de la terminología USB es Host), y diferentes periféricos, que
pueden acceder simultáneamente al mismo con el fin de recibir o transmitir datos. Todos los dispositivos
conectados acceden al canal o medio para transmitir sus datos de a cuerdo a las normas de administración del
Host regido por un protocolo que consecutivamente va dando la posibilidad de transmitir a cada periférico,
conociendo redes IBM, el protocolo USB se parece de cierta forma al protocolo Token Ring.
La arquitectura del bus garantiza la posibilidad de que los periféricos sean conectados y desconectados del
Host mientras este y otros periféricos están operando normalmente, característica a la que se denomina
Conectar y Desconectar Dinámico o simplemente En Caliente(Hot Plug&UnPlug), sin perjuicio para ningún
dispositivo en funcionamiento.
Figura 3a
DESCRIPCIÓN DEL SISTEMA USB
La Figura 3b 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
Y las relaciones entre capas del modelo, y las funciones de cada capa.
●
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (3 of 59) [11/10/2002 10:59:00 a.m.]
Universal Serial Bus
Este último punto es conveniente aclararlo. El software al igual que todo sistema, a medida que crece se hace
más complejo, razón por la cual cuando se lo desarrolla, se procede a subdividirlo en programas más pequeños,
cada uno con una tarea específica, pero a los ojos del usuario sigue siendo un todo, aunque en determinados
momentos porciones del mismo estén trabajando y otras no, de a cuerdo a las necesidades de operación del
momento. Por ejemplo, dentro de un procesador de texto, un determinado momento estará funcionando el editor,
otro el corrector, el módulo de almacenamiento en disco, etc.
Dentro del mundo de las redes y la transmisión de datos, los programas de comunicaciones sufren el mismo
proceso de estructuración, aunque el término cambia un poco. Cada porción de código o programa que cumple una
tarea específica se denomina capa.
Como en todo tema nuevo, siempre existe una cantidad importante de términos propios que iremos aclarando
paulatinamente a medida que se presenten con el fin de propiciar un claro entendimiento.
Figura 3b figura3a (hub)
TOPOLOGÍA DEL BUS
La forma física en la que los elementos se interconectan dentro del sistema USB, puede asemejarse a la
topología estrella estratificada piramidalmente (como puede verse en la figura 3b). El centro de cada
estrella es un Hub, un dispositivo que por un lado se conecta al computador o a otro Hub y por otro lado,
permite conectar al mismo varios dispositivos o en su defecto nuevos Hubs. La figura 3A permitirá entender
mejor la idea. Esta disposición significa que los computadores con soporte para USB han de tener tan solo uno
o dos conectores USB, pero ello no representa poder contar con tan solo dos dispositivos de esta clase, quien
sabe un ratón y un teclado. Muchos dispositivos USB han de traer conectores USB adicionales incorporados, por
ejemplo un monitor puede tener 3 ó 4 conectores USB donde pueden ir el teclado, el ratón, y algún otro
dispositivo. Por su parte el teclado puede tener otros más, y así sucesivamente hasta tener 127 dispositivos,
todos funcionando simultáneamente.
Aún así, existirán dispositivos específicos destinados a ampliar la cantidad de conectores, estos se
denominan Hubs, y su funcionamiento como apariencia física está muy cercana a la de los Hubs de redes
Ethernet. Un Hub de 8 puertos o conectores, puede ser acoplado a uno de los puertos USB del computador,
ampliando la cantidad de dispositivos que se pueden emplear.
EL HOST USB
A diferencia de los dispositivos y los Hubs, existe tan solo un Host dentro del sistema USB, que como ya
dijimos es el computador mismo, particularmente una porción del mismo denominado Controlador USB del Host.
Este tiene la misión de hacer de interfaz entre el computador 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. Puede proveer de uno o dos puntos de conexión iniciales, denominados Hub Raíz o (Root
Hub), a partir de los cuales y de forma ramificada irán conectándose los periféricos como lo mencionamos en
el punto anterior.
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 que hemos estado citando reiteradas veces (en nuestro
caso, una placa adquisidora de datos para monitor cardiaco). Es evidente que todos estos dispositivos deben
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (4 of 59) [11/10/2002 10:59:00 a.m.]
Universal Serial Bus
tener la capacidad de soportar la especificación USB en cuanto a protocolos de comunicación se refiere tales
como operaciones de configuración, transmisión y recepción de datos.
INTERFASE FÍSICA – ELÉCTRICA
El Bus Serial Universal transfiere tanto corriente eléctrica como señales de información de 4 cables, cuya
disposición se muestra en la Figura 4.
Figura 4
Por su parte las señales se mueven sobre dos cables y por segmentos comprendidos entre un par de dispositivos
USB, con rangos de velocidad de 12Mbps o 1.5Mbps, para transmisiones de alta y baja velocidad
respectivamente(Full Speed y Low Speed). Ambos modos de transmisión son controlados automáticamente por medio
de los dispositivos USB de manera transparente al usuario. Es importante notar que siempre ha sido un serio
problema manejar velocidades diferentes de transmisión de datos por un mismo cable, y esto no sería posible
sin que todos los dispositivos estén preparados para tal efecto.
Los pulsos de reloj o sincronismo son transmitidos en la misma señal de forma codificada bajo el esquema NRZI
(Non Return To Zero Invert), uno de los más interesantes sistemas de codificación de información. Todos los
paquetes empiezan con un campo de sincronización, este campo de sincronización aparece en el bus luego de un
período de inactividad o Idle seguido de una cadena binaria representada por los estados "KJKJKJKK" en el
esquema NRZI. Los últimos dos bits en el paquete de sincronismo son usados para señalar el primer bit del
campo identificador del paquete o PID(Packet Identifier Field) y seguidamente aparecen todos los subsecuentes
bits del paquete de datos.
Los otros dos cables VBus y GND tienen la misión de llevar el suministro eléctrico a los dispositivos, con un
voltaje de +5V para VBus. Los cables USB permiten una distancia que va de los pocos centímetros a varios
metros, más específicamente 5 metros de distancia máxima entre un dispositivo USB y el siguiente. Es
importante indicar que los cables USB tienen protectores de voltaje a fin de evitar cualquier daño a los
equipos, son estos mismos protectores los que permiten detectar un dispositivo nuevo conectado al sistema y
su velocidad de trabajo.
PROTOCOLO DEL BUS
Toda transferencia de datos o transacción que emplee el bus, involucra al menos tres paquetes de datos. Cada
transacción se da cuando el Controlador de Host decide qué dispositivo hará uso del bus, para ello envía un
paquete al dispositivo específico. Cada uno de los mismos tiene un número de identificación, otorgado por el
Controlador de Host cuando la computadora arranca o bien cuando un dispositivo nuevo es conectado al sistema.
De esta forma, cada uno de los periféricos puede determinar si un paquete de datos es o no para él.
Técnicamente este paquete de datos se denomina Paquete Ficha o Token Packet. Una vez que el periférico
afectado recibe el permiso de transmitir, arranca la comunicación y sus tareas específicas; el mismo
informará al Host con otro paquete que ya no tiene más datos que enviar y el proceso continuará con el
siguiente dispositivo.
Este protocolo tiene un sistema muy eficiente de recuperación de errores, empleando uno de los modelos más
seguros como es el CRC (Código de Redundancia Cíclica).Y puede estar implementado al nivel de software y/o
hardware de manera configurable. De hecho si el control es al nivel de hardware, no vale la pena activar el
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (5 of 59) [11/10/2002 10:59:00 a.m.]
Universal Serial Bus
control por software, ya que sería duplicar tareas innecesariamente.
DESCRIPCIÓN DE LOS DISPOSITIVOS USB
Dentro del sistema USB existen dos tipos de dispositivos, los periféricos y los Hubs, cada uno de los cuales
con características especiales que vale detallar. Empecemos primeramente con los Hubs.
HUBS
Los Hubs son elementos claves dentro de la arquitectura Plug&Play de USB por
lo que simplifican de gran manera la sencillez de la interconexión de
dispositivos a la computadora . La figura 5 muestra Hubs USB ya 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 la
computadora, proceso que desata la configuración del nuevo equipo; 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 de Hub puede asemejarse a una pequeña CPU de supervisión de las múltiples
funciones que deben desempeñar un Hub.
FUNCIONES
Dentro de la terminología USB, todos los dispositivos que pueden ser conectados al
bus USB se denominan Funciones. Son funciones típicas el ratón, el monitor,
altoparlantes, módem, etc. La Figura 3a y 3c las ilustra adecuadamente.
Figura 3c`
Las funciones o dispositivos periféricos son capaces de recibir y transmitir
información, ya sea del usuario o de control. El común denominador a todas las funciones USB es su cable y el
conector del mismo, diseñado y fabricado de a cuerdo a especificaciones del bus, por lo que no cabe
preocuparse por la compatibilidad entre equipos de diferentes fabricantes.
Un aspecto interesante de las funciones, es que pueden ser a su vez nuevos Hubs. Como se puede observar en la
Figura 3a , esta muestra un esquema en el que la 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.
Realmente hay que prepararse para una invasión de productos funciones USB, esta tecnología ha de posibilitar
a muchas empresas mover importantes inversiones intentando copar sectores del mercado nuevos. Por su parte,
las empresas existentes actualmente se hallan migrando sus productos hacia la especificación USB.
EL HOST USB:
La computadora misma o 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 USB:
● Detectar tanto la conexión de nuevos dispositivos USB al sistema como la remoción de aquellos ya
conectados, y por supuesto, configurarlos y ponerlos a disposición del usuario, tarea que involucra
acciones por software.
●
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.
●
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.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (6 of 59) [11/10/2002 10:59:00 a.m.]
Universal Serial Bus
●
●
Recolectar y resumir estadísticas de actividad y estados de los elementos del sistema.
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 computador (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:
●
●
●
●
●
Enumeración y configuración de los dispositivos conectados al sistema.
Administración y control de transferencias isocrónicas de información.
Administración y control de transferencias asincrónicas.
Administración avanzada de suministro eléctrico a los diferentes dispositivos.
Administración de la información del bus y los dispositivos USB.
CONJUNTO INTEGRADO DE CHIPS
Un trabajo tan importante como representa USB tiene que de manera alguna mantener compatibilidad hacia atrás,
es decir y por algún tiempo, los otros tipos de dispositivos que en la forma de tarjetas se insertan a la
tarjeta madre, deben trabajar de forma mancomunada con el bus USB.
Al día de la fecha, además de las
empresas que citábamos: Compac, Digital
Equipment, IBM, Intel, NEC y Northern
Telecom, existen más de 250 otras
empresas menores que fabrican
semiconductores, computadoras,
periféricos y software, todas trabajando por que poner en el mercado la mayor cantidad posible de elementos
USB. En todos los casos, la estructura esquemática de los buses es semejante, para explicar esta estructura
nos basaremos en la usada por INTEL y es la mostrada en las Figuras6-6b
Figura 6
El conjunto de chips PCI de Intel, incluye un controlador de sistema, unidades de control de buses y un chip
muy particular desarrollado para integrar las partes: el 82371SB PCI IDE/ISA Xcelerator - PIIX3. El conjunto
PCI provee de un puente entre el la memoria principal de la computadora y el caché L2, con un ancho de bus de
64 bits para todo tipo de transferencias.
Además de esto, el PIIX3 permite la interconexión entre el bus PCI y el bus ISA, permitiendo el acceso de los
datos al bus USB. Al ser USB un bus serial, y los internos a la computadora son paralelos, hace falta un
serializador y deserializador, que en este caso es el denominado Serial Interface Engine(SIE), elemento que
maneja los protocolos de comunicación USB, la programación de secuencia de paquetes, la detección y
generación de señales, el control CRC (Código de Redundancia Cíclica), la codificación NRZI, y la
identificación de los periféricos con los identificadores del paquete de datos.
En realidad la parte más importante de la estructura de la arquitectura de buses incluyendo al nuevo USB
radica en el PIIX3 y el SIE, dos elementos básicos en el movimiento de datos entre los buses. Todo el esquema
detallado se muestra en la Figura 6b.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (7 of 59) [11/10/2002 10:59:00 a.m.]
Universal Serial Bus
Figura 6b
ARQUITECTURA DE LOS DISPOSITIVOS USB
La Figura 7 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 funciónales. Estos son:
● 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.
●
SERIAL INTERFACE ENGINE(SIE): como lo mencionamos un poco más atrás, pero para el Host USB, 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): éste 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, monitorea los estados de las
transacciones, de los buffers FIFO, y solicita atención para diversas acciones a través de
interrupciones contra el CPU del Host.
●
FIFOs(First In, Firts Out): un controlador de
USB típico tiene, dependiendo de su velocidad
máxima soportada, entre 3 y 32 buffers tipo
FIFO, una mitad destinada a la transmisión y la
otra destinada a la recepción de datos. Tanto
para la transmisión como para la recepción, los
buffers soportan las diferentes formas de
transmisión que USB permite generalmente
impuestas por restricciones de memoria en cada
una. Por lo general las FIFOs se asocian en
pares de transmicion-recepsión identificándose
con un mismo número, pero no hay que perder de
vista que pertenecen a espacios de memoria
separadas. Lo antes dicho tiene una excepción,
esta es la FIFO0 que es bidireccional y ocupa
una única porción de memoria. Esta,
generalmente, tiene reservado en el buffer en
espacio de 8 a 16 bytes, y se dedica a almacenar
información de control relacionada a las
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (8 of 59) [11/10/2002 10:59:00 a.m.]
Universal Serial Bus
transferencias. El resto de las FIFOs tienen asignado un espacio de memoria que puede variar entre 16 y
1024 bytes dependiendo para que tipo de transmisión estén preparadas, estas FIFOs se emplean para el
control de interrupciones y transmisiones tanto isocrónicas como las Bulk (Bulk significa voluminoso o
de gran volumen, traducción poco ilustrativa, por lo cual es preferible entender el término por su
nombre en inglés. Ambos términos tendrán un acápite más adelante).
CARACTERÍSTICA "MUST HAVE"
Todas las últimas publicaciones relacionadas a USB y a toda su funcionalidad, están rutinariamente
mencionando el término "Must Have" (Debe Tener) haciendo alusión a las PCs. Está claro que el término hace
referencia a la capacidad que debe tener una computadora para soportar el bus USB, así que parecería
indefectiblemente que estamos entrando en un mundo de computación que debe cumplir con la especificación USB.
Los modelos de computadoras personales caracterizadas por un procesador Pentium provisto de la tecnología
MMX, traen soporte pleno para las tarjetas madres Intel con soporte USB. Dentro de las tarjetas madres de
Intel con conjuntos de chips PCI, las que traen soporte USB son las siguientes: 430HX, 430VX, 430TX y la
440FX. Todas estas vienen con un Controlador de Host USB incorporado. Pero las computadoras portátiles no
están excluidas de estas capacidades, así que la tarjeta madre Intel 430TX está diseñada para brindar soporte
USB a todos los usuarios de la computación móvil.
Adicionalmente, el sistema operativo más difundido en el mundo Windows
98, que es distribuido con los mismos equipos por una gran cantidad de
fabricantes, viene provisto por todos los controladores (Drivers)
necesarios para poder lanzarse a este nuevo bus sin ningún tipo de
problemas. El resultado de estos dos puntos anteriores son PCs que
están con uno o dos puertos USB en su parte posterior listos para ser
empleados, como se observa en la Figura 8.
Por supuesto, estas computadoras incluyen los puertos habituales
mientras la transición hacia USB se va desarrollando.
Un aspecto más, no todos los sistemas operativos Windows 95 instalados
soportan USB, aunque todos ellos presenten como portada ese logo. La
especificación USB es soportada por los sistemas operativos Windows 95
cuya versión sea la 4.00.950B o superior. Adicionalmente, estas
versiones acarrean una cantidad considerable de BUGS errores con los
cuales hay que lidiar. De todas formas todos estos aspectos están
totalmente corregidos bajo Windows98 (bueno, casi totalmente).
MODELO LÓGICO FUNCIÓNAL USB
El diagrama de la Figura 9 se 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, 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 o Canales de comunicación lógicos.
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 el 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.
Como ya vimos anteriormente, 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.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (9 of 59) [11/10/2002 10:59:01 a.m.]
Universal Serial Bus
En la Figura 10 se representa una estructura mas compleja que la de la Figura 9, vemos aquí que en el USB se
establecen conexiones lógicas ( también llamadas "cañerías" o Pipes) simples con los Endpoints, y también
conjuntos de conexiones lógicas, estas conexiones lógicas son las provistas para las funciones. El software
del sistema maneja el dispositivo usando una conexión lógica predefinida, asociada con el endpoint cero, en
cambio las demandas de los dispositivos son atendidas por el software cliente estableciendo una conexión
entre un "buffer" en el "Host" y un "endpoint" en el dispositivo. Luego, el controlador del Host empaqueta
los datos para transmitirlos, como también coordina la transmisión de estos paquetes, la Figura 11 ilustra
este movimiento.
Los Endpoints
Un endpoint es una porción de memoria singularmente identificable de una función de USB la cual provee la
terminación del flujo de comunicación entre el Host y la función. Cada endpoint posee un único identificador,
la combinación de la dirección de la función mas el numero del endpoint permiten que cada endpoint sean
diferenciados singularmente.
Los endpoints poseen las características que determinan el tipo de servicio de transferencia requerida entre
el Host y la función o dispositivo.
Los endpoints se clasifican de acuerdo a:
● Sus requerimientos de accesos al bus en frecuencia/latencia
●
●
●
Sus requerimientos de ancho de banda
Sus numeración
El tamaño máximo y mínimo del paquete que puede transmitir o recibir
Las Cañerías (pipes)
Poseen dos modos de comunicación:
● Stream(flujo continuo): en este modo, los datos que se mueven a través de una cañería no tienen ninguna
estructura USB definida.
●
Message(mensaje): en este modo, los datos que se mueven a través de una cañería si tienen una estructura
USB definida.
Las cañerías entran en existencia cuando un dispositivo es configurado y, debido a que siempre es el
endpoint0 el utilizado para el proceso de configuración, la cañería asociada a él esta siempre predefinida.
Adicionalmente, esta cañería es usada también después de la configuración para distintos procesos. El
software cliente normalmente pide traslado de los datos mediante Demanda de Paquetes de Entrada/Salida( IRPs)
por una cañería específica. De no haber ningún (IRP) asociado a una cañería en particular, está ociosa o
inactiva y el Host no tomará ninguna acción con respecto a ella.
Cualquier paquete (IRP) que contenga algún tipo de error se descarta, y cuando un endpoint es solicitado y
éste está ocupado, puede informar su estado al Host respondiendo con un paquete NAK. Cualquier número de NAKs
no produce ningún tipo de error en los paquetes (IRPs), por lo que la comunicación no se ve perjudicada en
ningún momento.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (10 of 59) [11/10/2002 10:59:01 a.m.]
Universal Serial Bus
Figura 10
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (11 of 59) [11/10/2002 10:59:01 a.m.]
Universal Serial Bus
Figura 11
Tipos de transmisiones
Paquetes, transacciones y transferencias
Introducción
En este capítulo analizaremos los distintos tipos de paquetes, transacciones y transferencias que ofrece el
USB, focalizando nuestra atención en los tipos de transmisiones usados por nuestra aplicación.
La organización de este capítulo es la siguiente, primeramente brindaremos una amplia introducción a los
distintos tipos y formatos de paquetes, así como a las transacciones que estos componen. Luego,
introduciremos y daremos una completa explicación de los modos de transmisión de Control y de Interrupciones,
y finalizaremos con una breve revisión a los conceptos fundamentales de las transmisiones Bulk y Isocrónica.
Comencemos entonces con el principio.
Paquetes y transacciones
La transferencia de información entre el Host y los endpoints de un dispositivo es distribuida a través de
una serie de transacciones y sobre una serie de Frames. Cada transacción incluye un número determinado de
paquetes y en un frame están incluidas un número determinado de transacciones. Las transacciones se agrupan
formando transferencias o transmisiones, las que poseen sentido propio, y cada transmisión obedece a un tipo
predeterminado como lo son los modos Interrupt, Control, Bulk e Isochronous. Una transferencia puede estar
distribuida entre distintos frames o incluida completamente en uno solo(dependiendo del tamaño de la
información encerrada) mientras que una transacción nunca puede sobrepasar los límites de un frame
determinado. Un frame es un espacio de tiempo de un milisegundo que estructura el sistema de latencia del USB
-hay que tener muy en cuenta este concepto y nunca confundir un frame con un paquete o con alguna unidad de
datos-. La organización de la información dentro de un frame depende del formato al cual obedece el
controlador en el Host(OCHI y UHCI). Nosotros nos basaremos en el formato implementado por Microsoft, Compaq
y National; nos referimos al Open Host Controller Interface u OHCI. Seguidamente se muestran dos figuras, la
figura XX1 muestra las diferentes cualidades de los dos formatos estándares OCHI y UHCI, y la figura XX2
muestra la estructura jerárquica de los distintos componentes de una transferencia o transmisión desde el
punto de vista de traspaso de información entre el Host y un periférico.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (12 of 59) [11/10/2002 10:59:01 a.m.]
Universal Serial Bus
Paquetes
Como ya se ha explicado, en
el cable de conexión del
bus USB la señal de
información es llevada por las líneas D+ y D-, las cuales delimitan los paquetes transmitidos variando sus
niveles de tensión desde el estado de reposo al de SOP(comienzo de paquete) y EOP(final de paquete). Entre
estos delimitadores se encuentra el cuerpo del paquete el cual incluye un campo sincronización y uno de
información. La figuraXX muestra un ejemplo para paquetes de alta velocidad.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (13 of 59) [11/10/2002 10:59:01 a.m.]
Universal Serial Bus
Formato general de los paquetes
Cada paquete comienza con un SOP (comienzo de paquete), seguido de un patrón de sincronización de 8
bits(SYNC) y de un número de bits adicionales que conforman la información a transmitir(INFORMATION) hasta el
límite dado por un EOP(Terminación de paquete). Los bits de SYNC son usados para permitirle al receptor del
paquete sincronizar su reloj interno con el del transmisor.
La porción de información de un paquete consiste en un identificador de paquete o PID(Packet ID), seguido del
mismo identificador invertido o IPID(Inverted PID) y de la información particular(ver figuraXX). Esta última,
es siempre una secuencia de bytes los cuales están codificados usando NRZI y bit stuffing o bit de relleno.
El IPID es un complemento binario de cada bit del PID, mientras que el PID es un identificador que define el
tipo de paquete dentro de cada categoría. Esto se puede ver en la tablaXX.
Existen cuatro tipos de categorías: Token, Data, Handshake y Special.
En las siguientes secciones analizaremos cada tipo de paquete incluido en cada categoría así como los campos
adicionales que los componen más allá de los datos específicos contenidos.
Categoría de Paquetes
Tipos de Paquetes
PID (Valor)
TOKEN
OUT
0b0001
TOKEN
IN
0b1001
TOKEN
SOF
0b0101
TOKEN
SETUP
0b1101
DATA
DATA 0
0b0011
DATA
DATA 1
0b1011
HANDSHAKE
ACK
0b0010
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (14 of 59) [11/10/2002 10:59:01 a.m.]
Universal Serial Bus
HANDSHAKE
NAK
0b1010
HANDSHAKE
STALL
0b1110
SPECIAL
PRE
0b1100
RESERVED
RESERVED
0b0000
0b0100
0b0110
0b0111
0b1000
0b1111
Paquetes Token
Hay cuatro tipos de paquetes Tokens: OUT(de salida),IN (de entrada), SETUP (de configuración) y SOF (de
comienzo de Frame).
La tablaXX abrevia los campos del cuerpo de los paquetes para los cuatros tipos de paquetes Tokens.
Paquetes Token (PID)
Información
Campos del cuerpo del paquete (LSb…...MSb)
OUT
[ 8 bits PID/IPID ] [ 8 bits ADDS ] [ 4 bits ENDP ] [ 5 bits CRC ]
IN
[ 8 bits PID/IPID ] [ 8 bits ADDS ] [ 4 bits ENDP ] [ 5 bits CRC ]
SETUP
[ 8 bits PID/IPID ] [ 8 bits ADDS ] [ 4 bits ENDP ] [ 5 bits CRC ]
SOF
[ 8 bits PID/IPID ] [ 11 bits Frame Number ] [ 5 bits CRC ]
El último campo en todos los paquetes Tokens consta de 5 bits de CRC(código de redundancia cíclica) dentro
del cuerpo del paquete, por lo que el CRC no abarca las porciones SYNC, PID y IPID del paquete.
Los paquetes Token IN, OUT y SETUP incluyen los campos adicionales ADDR y ENDP(dirección de función y número
de endpoint respectivamente).
El campo ADDR contienen la dirección del dispositivo y consta de 7 bits. Por su cantidad de bits este campo
puede direccionar hasta (27) 128 posibles dispositivos -cabe aclarar que un mismo periférico puede contener
más de una dirección dependiendo de la cantidad de funciones que abarque-. De estas direcciones, la dirección
0000000b es usada temporalmente por todos los dispositivos hasta que le sea asignada una única dirección
durante el proceso de enumeración1. Así mismo, cualquier otra dirección puede ser usada para identificar al
hub raíz o root hub. Consecuentemente, hay dos direcciones predefinidas lo que deja un adicional de hasta 126
direcciones las cuales pueden ser asociadas a distintos dispositivos estableciendo así el límite de
expansibilidad del bus USB a un máximo de 126 dispositivos.
El campo ENDP identifica el número de endpoint del dispositivo y consta de 4 bits. Como complemento, el PID
indica la dirección en que deben ser transferidos los datos. Con estos dos campos queda fijado el límite
máximo de endpoints permitidos en un mismo dispositivo a 32 endpoints(16 IN y 16 OUT).
Para los paquetes token OUT, IN y Setup el CRC es computado sobre los campos de ADDR y ENDP.
Los paquetes token SOF incluyen, además del CRC , un solo campo denominado FRAME. Éste contienen el número de
frame presente, el cual se va incrementando cíclicamente hasta sobrepasar le límite fijado por los 11 bits de
este campo luego del cual vuelve a cero.
El significado de los paquetes Token
Cada uno de los paquetes Token inicia una transacción en el bus USB. Los paquetes Token sólo son transmitidos
por el controlador del Host por lo que su dirección es únicamente en sentido descendente.
Los cuatro paquetes Token son:
● OUT: el paquete Token OUT precede a la posterior salida de datos desde Host hacia el dispositivo, o sea
que define las transacciones desde el Host hacia el dispositivo. El campo ADDR identifica al dispositivo
y el campo ENDP identifica al endpoint de salida(OUT Endpoint) involucrado en la transacción.
●
IN: el paquete Token IN precede a una entrada de datos desde el dispositivo hasta el Host. El campo ADDR
identifica al dispositivo y el campo ENDP identifica al endpoint de entrada(IN Endpoint) involucrado en
la transacción
●
SETUP: el paquete Token SETUP es similar al paquete Token OUT excepto por estar siempre dirigido al
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (15 of 59) [11/10/2002 10:59:01 a.m.]
Universal Serial Bus
endpoint bidireccional del dispositivo (Endpoint0) y por transportar información sobre el formato de la
subsiguiente fase de datos.
●
SOF: el paquete Token SOF define el inicio de un Frame. Este, posee algunas considerables diferencias
con respecto a los otros paquetes. Estas son las siguientes: 1°) es sólo soportado por Hubs y
dispositivos de alta velocidad. 2°) este es un paquete de transacción simple, que no presenta una
dirección especifica hacia algún endpoint. 3°) no hay otros paquete como parte de esta transacción, por
lo que ningún dispositivo responderá.
Paquetes de Datos
Los paquetes de datos son usados para transportar los datos específicos entre la memoria del sistema y los
endpoint de un dispositivo. Hay dos tipos de paquetes de datos: DATA 0 y DATA 1. Estos paquetes, poseen dos
campos en el cuerpo del paquete, DATA y CRC. La tablaxx proporciona un resumen de la distribución de los
campos del cuerpo del paquete.
Paquetes de Datos (PID)
Información
Campos del cuerpo del paquete (LSb…...MSb)
DATA 0
[ 8bits PID/IPID ] [ 0-1023 bits DATA ] [ 16 bits CRC ]
DATA 1
[ 8bits PID/IPID ] [ 0-1023 bits DATA ] [ 16 bits CRC ]
Todos los paquetes contienen 16 bits CRC que cubren los datos incluidos, el cual no abarca los campos SYNC,
PID y IPID.
El campo DATA lleva los datos específicos de una transacción. La longitud de este campo, puede variar de
acuerdo al tipo de dato transferido o al tipo de transferencia a la que pertenece.
Significado de los paquetes de datos
Hay dos tipos de paquetes de datos, estos son:
● DATA 0: también conocido como el paquete de datos impar, ya que es el paquete de datos transmitido en
primer, tercer, quinto etc. lugar en una transacción de datos secuencial.
●
DATA 1: también conocido como el paquete de datos par, ya que es el paquete de datos transmitido en
segundo, cuarto, sexto etc. lugar en una transacción de datos secuencial.
Paquetes Handshake
Los paquetes Handshake son usados para devolver información de control de flujo para una transacción de bus.
El receptor de un paquete de datos puede usar los paquetes Handshake para indicarle al transmisor su
disponibilidad para recibir o transmitir datos. Existen tres tipos de paquetes Handshake, estos son: ACK, NAK
y STALL.
Los paquetes Handshake contienen sólo los campos PID y IPID. La tablaXX resume los tres tipos de paquetes:
Paquetes HandShake (PID)
Información
Campos PID (LSb…...MSb)
ACK
[ 8 bits PID/IPID ]
NAK
[ 8 bits PID/IPID ]
SATLL
[ 8 bits PID/IPID ]
Puesto que todos los paquetes Handshake contienen solamente los campos SYNC, PID y IPID el campo CRC no está
incluido, por lo que el IPID provee la detección de errores para el paquete.
El significado de los paquetes Handshake
Los tres tipos de paquetes Handshake son:
● ACK(Acknowledged o reconocimiento): este paquete es transmitido cuando un paquete de datos ha llegado
satisfactoriamente a destino. Es transmitido tanto por el Host como por el Dispositivo. Un paquete de
datos recibido exitosamente es un paquete libre de errores en IPID/PID, en el protocolo de bit stuffing
y en la operación del CRC. El tipo de transferencia isocrónica no permite paquetes Handshake como parte
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (16 of 59) [11/10/2002 10:59:01 a.m.]
Universal Serial Bus
●
●
de sus transacciones, ya que esto incrementaría considerablemente el ancho de banda usado.
NAK(Not Acknowledged o Reconocimiento Negativo): este paquete es transmitido cada ves que el dispositivo
no esta listo para una operación, tanto de transmisión como de recepción de paquetes. Por definición el
Host siempre puede transmitir o recibir un paquete de datos, de lo contrario nunca habría transmitido el
paquete Token(OUT o IN). Consecuentemente el paquete handshake NAK sólo puede ser transmitido hacia
arriba (Upstream) por el dispositivo y sólo puede ser recibido por el Host. Luego de que el controlador
del Host transmita una paquete de datos asociado a un paquete Token de salida (OUT token), el
dispositivo transmite un paquete handshake NAK si no esta listo para recibir los datos. Esto se da
también en el caso de que el Host transmita un paquete token de entrada (IN token) y que el dispositivo
no este listo para transmitir.
STALL: Estos paquetes son transmitidos hacia arriba (Upstream) por los dispositivos cuando endpoint
direccionado presenta o experimenta una condición de error y requiere la intervención del Host para
solucionar el problema antes de que la comunicación puede ser reanudada. Los paquetes STALL sólo pueden
ser transmitidos por los dispositivos y sólo pueden ser recibidos por el controlador del Host. Esto es
así ya que sólo el Host puede generar Requests para manejar la condición de error indicada –los
dispositivos son sólo escrutados por el host y por lo tanto no tiene la habilidad para afectar su
estado-. En caso de que sea necesario, el dispositivo transmite el paquete STALL después de que el host
termine de transmitir los datos asociados a un OUT token o inmediatamente después de recibir un In
token.
Paquetes Special (PRE)
El paquete PRE(Preamble o Introducción) es transmitido hacia los dispositivos por el Host, en alta velocidad,
para indicarle a todos los Hubs que un paquete de baja velocidad será transmitido seguidamente. Los Hubs
toman estos paquetes y los repiten a todos los dispositivos que estén habilitados, sean estos de alta o baja
velocidad.
El paquete subsiguiente que sea transmitido hacia los dispositivos, sea un paquete Handshake, Data o Token;
será transmitidos en baja velocidad.
Paquete Especial (PID)
Información
Campos (LSb…...MSb)
PRE
[ 8 bits PID/IPID ]
Transacciones
Una transacción es una secuencia de paquetes que pueden mover una unidad de datos exitosamente entre la
memoria del sistema y un dispositivo. Una transacción puede tener una, dos o tres fases. Las tres posibles
fases son Token, Data y Handshake. Cada fase de una transacción tiene uno o dos paquetes y las fases
handshake y data son opcionales de acuerdo al tipo de transmisión.
En las figurasxxx se presenta un bosquejo de ambos tipos de transacciones, ya sea tanto para alta velocidad
como para baja velocidad.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (17 of 59) [11/10/2002 10:59:01 a.m.]
Universal Serial Bus
Una transacción de alta velocidad consiste en un solo paquete por fase, mientras que las transacciones de
baja velocidad son ligeramente diferentes, debido a que estas comienzan siempre con un paquete PRE y un
paquete Token como la primera fase en una transacción. La segunda fase, si está presente, comprende de un
paquete PRE seguido de un paquete Data si la transmisión es hacia el dispositivo; si la segunda fase es del
dispositivo hacia el Host, constará de un paquete Data o Handshake. Finalmente, si la tercera fase es
requerida por este tipo de transferencia, constará de un paquete PRE y un Handshake si el controlador de Host
realiza el reconocimiento(ACK paquet). En cambio, si es el dispositivo el que está haciendo el
reconocimiento, la tercer fase será sólo un paquete handshake. Como vemos, los paquetes PRE sólo son usados
en las transacciones de baja velocidad.
Los paquetes de color verde son los paquetes enviados por el controlador de Host, los azules son los paquetes
enviados por los dispositivos .
Los datos son movidos sobre el bus USB a través de una serie de transacciones distribuidas sobre una serie de
frames. Puede tomar bastantes transacciones del bus transferir un volumen de datos entre la memoria del
sistema y un endpoint del dispositivo. Consecuentemente, la secuencia entera de transacciones del bus puede
abarcar mas de un frame para ser completada. Es el controlador del Host quien maneja las transacciones sobre
el USB bus , asuvez es este el que se queda con los paquetes de una transacción , ya que en caso de que se
produzca un error en el Frame, este lo corrige inmediatamente .
Las especificaciones de USB son muy estrictas en cuanto al limite máximo que debe haber para una composición
de paquetes de una transacción , ya que este limite máximo nunca debe sobrepasar el limite o confín de un
Frame.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (18 of 59) [11/10/2002 10:59:01 a.m.]
Universal Serial Bus
Los paquetes de una transacción nunca se interceptan o se mezclan con los paquetes de otra transacción . todos los paquetes que pertenecen
a una transacción son secuenciales , por lo tanto un paquete Token es siempre seguido de un paquete Data y este asuvez será seguido de un
paquete Handshake , esto es así hasta completar un Frame.
Las transacciones son siempre iniciadas por el controlador del Host con un paquete tipo IN , OUT o SETUP (los paquetes PRE preceden a
estos en caso de que sea una transacción de baja velocidad) o un paquete SOF .
Los paquetes IN , OUT y SETUP identifican el dispositivo y al endpoint que será involucrado en la transferencia. Un dispositivo nunca
transmitirá un paquete hasta que no haya ocurrido un paquete IN , OUT o SETUP , asuvez un dispositivo nunca podrá transmitir un paquete
Token , ya que es el controlador de Host quien se encarga de esto.
Para transmisiones OUT y SETUP es el Host quien transmite y es el dispositivo quien recibe , para el caso de los paquetes IN es el
dispositivo es quien transmite y es el Host es quien recibe.
PROTOCOLO CRC (CHEQUEO DE REDUNDANCIA CÍCLICA)
El protocolo CRC es usado para proteger la porción no-PID de los paquetes Data y Token. Esta protección direcciona uno o dos bits de
error. Hay dos maneras diferentes de generar los polinomios a usar para la protección.
●
Para paquetes Token la generación de polinomios es G(x) = X5 + X2 + 1
Este polinomio reserva la cadena "01100" para decir que el paquete se a recibido sin errores , como vemos aquí el residuo que
entrega el polinomio el almacenado en solo 5 bits.
●
Para los paquetes de Datos la generación de polinomios es G(x) = X16 + X15 + X2 + 1
Este polinomio reserva la cadena "1000000000001101" para decir que el paquete se a recibido sin errores , como vemos aquí el
residuo que entrega el polinomio el almacenado son 16 bits.
El protocolo CRC es calculado para transmitirse después que el bits de relleno es adosado a el ,de acuerdo al protocolo NRZI . cuando este
se recibe , el BIT de relleno es primero removido y luego el CRC es calculado.
El USB requiere que en todas transmisiones el código generado por el protocolo de CRC sea el valido . es importante recordar que el bits de
relleno viaja con el código CRC pero no es parte de este protocolo.
El protocolo del USB bus provee un mecanismo de detección de errores bastante robusto , este mecanismo se divide en cuatro categorías:
Esta son:
● señalización con errores
● Paquetes con errores
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (19 of 59) [11/10/2002 10:59:01 a.m.]
Universal Serial Bus
Protocolo de transacción con errores
● Transferencias con errores
1. Señalización con errores
●
Los errores en la señalización son debidos a una incorrecta transmisión en la línea D- y D+ , una vez que la señal error es detectada el
paquete el descartado . los errores en la señalización se previenen desde la SIE ( Serial Interface Engine ).
Esta etapa realiza las siguientes actividades:
● Determinación de la correcta sincronización para los formatos PID y IPID.
● Decodificación de una paquete PID para determinar que paquete fue transmitido.
● Interpretación de los campos ADDR y ENDP o FRAME del cuerpo de una paquete Token.
● Continuamente acepta información del a porción de datos útiles del cuerpo de un paquete.
● Chequeo del CRC residual para una protección campo por campo del cuerpo de un paquete.
Un error en un bits de relleno ocurre cuando se dan consecutivamente mas de 6 bits altos ("1") en el receptor.
1. Paquetes con errores
Cuando un paquete es recibido con errores , ( no detectando errores en la señalización) el receptor descarta este paquete
automáticamente .
Se pueden presentar tres tipo de errores en los paquetes .
Estos son : tipo incorrecto de paquete ( producto de una inconsistencia en PID /IPID) , falla del CRC y paquete de tamaño
desconocido ( este se produce cuando el tamaño mínimo o máximo de un paquete es excedido , esto sucede cuando un paquete EOP
es ignorado).
2. Protocolo de transacción con errores
Una transacción puede ser errónea debido a algún error que se allá suscitado tanto en la señalización o en el paquete . toda transacción que
posea un error en su formato , tiene como consecuencia la perdida del paquete con error y la subsecuencia de paquetes hasta que un paquete
Token valido sea recibido correctamente.
También pueden darse errores por expiración de tiempo o ("Time-out Vilolation"), como ya se a mencionado.
TRANSFERENCIAS BULK
PHASE
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (20 of 59) [11/10/2002 10:59:01 a.m.]
Universal Serial Bus
TOKEN
DATA
HANDSHAKE
■
Transaction Phase and Packet for Bulk Transfers
La transferencia o transmisión Bulk, es una comunicación no periódica o a intervalos irregulares, "explosiva" típicamente empleada por
transferencias que requieren usar todo el ancho de banda disponible o en su defecto son demoradas hasta que el ancho de banda completo
esté disponible. Esto implica particularmente movimientos de imágenes o video, donde se requiere de gran potencial de transferencia en
poco tiempo. Este tipo de transacciones requiere tres fases para poder realizar el movimiento de los datos, como se puede apreciar en la
figura anterior .
Una transacción Bulk comienza con una fase Token , sea esta de entrada (IN) o de salida (OUT) . (note que si la transacción es para un
dispositivo de baja velocidad los paquetes IN y OUT irán precedidos de un paquete PRE .
Este tipo de transacción no garantiza que la tasa de transferencia se mantenga , las transacciones ocurren unas seguidas de otras y solo son
separadas por intervalos de tiempos elevados cuando el controlador de Host asigna el ancho de banda para otra aplicación o requerimiento
del sistema. Es por esto que una transferencia del tipo Bulk no garantiza la transferencia de los archivos en un tiempo prefijado , ya que es el
controlador de Host quien dispone cuando la transferencia se realizara de acuerdo al ancho de banda disponible en ese momento.
Cuando hay otros tipos de transferencias pendientes y una transferencia Bulk esta corriendo , el controlador de Host asigna el 90 % del
ancho de banda a dicha transferencia y un 10 % lo deja para las otras transferencias pendientes . en caso de no haber transferencias
pendientes , el controlador de Host asigna el 100% del ancho de banda .
En este tipo de transmisiones , las transacciones pueden darse con dos fases , o con tres fases . Dos fases cuando son transmitidos los
paquetes Token y Handshake y tres fases cuando son transmitidos los paquetes Token , Data y Handshake. Las transacciones no preasignan
ancho de banda del USB bus .
Otros rasgos permitidos en las transacciones de bus son:
● El soporte del paquete ACK Handshake garantiza que los paquetes Data estén libres de errores
● La retransmisión de una transacción cuando el dispositivo no esta listo para recibir o transmitir un paquete de datos ocurre cuando el
paquete NAK Handshake es transmitido.
● Las transferencias Bulk están definidas solo para dispositivos de alta velocidad .
La figura (xxx) muestra las fases de transacciones y los paquetes requeridos para transmitir datos del dispositivo hacia el Host (Upstream)
cuando el dispositivo esta listo para transmitir los datos .
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (21 of 59) [11/10/2002 10:59:01 a.m.]
Universal Serial Bus
La figura (xxxx) muestra las fases de transacciones y los paquetes requeridos para transmitir datos desde el Host hacia el dispositivo
(Downstream) cuando el dispositivo esta listo para recibir los datos .
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (22 of 59) [11/10/2002 10:59:02 a.m.]
Universal Serial Bus
La figura (xxx) muestra las fases de transacciones y los paquetes requeridos para transmitir datos del dispositivo hacia el Host (Upstream)
cuando el dispositivo no esta listo para transmitir los datos .
La figura (xxxx) muestra las fases de transacciones y los paquetes requeridos para transmitir datos desde el Host hacia el dispositivo
(Downstream) cuando el dispositivo esta no listo para recibir los datos .
En resumen, las características de La transferencia Bulk son:
● Dirección de Transmisión de datos: Los datos aquí se mueven Unidireccionalmente.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (23 of 59) [11/10/2002 10:59:02 a.m.]
Universal Serial Bus
●
●
●
●
●
●
Velocidad: solo alta velocidad. Los traslados de volumen (datos) no permiten velocidad baja . El controlador de Host es el
responsable de que no se selección una configuración de baja velocidad , y establece cual endpoint intervendrá en la transacción.
Control del flujo: Los traslados de volumen (datos) permiten contestaciones NAK y STAL Handshake durante la fase Handshake . el
NAK permite un endpoint para informar al Host que no había ningún espacio o datos disponible en la FIFO del dispositivo. Un
STALL Handshake permite al endpoint del dispositivo informar al Host que las transacciones no tendrán éxito hasta que algún
endpoint-específico tome acción (intervenga) y resuelva la condición STALL.
Estado de los datos: Si la entrega es exitosa se produce un estado de aviso .
Robustez de los datos: Entrega robusta. El receptor responde con un ACK Handshake cuando el CRC pasa con éxito . Si un error
ocurriera, el receptor no contesta con un paquete Handshake y la transacción se reintentará en la próxima vez .
Los Tamaños máximos que puede interpretar son : 8, 16, 32, o 64 bytes para velocidad alta . Los traslados de volumen pueden tener
sólo 2 bites como máximo . Estos tamaños son seleccionados de acuerdo al limite de complejidad de una transacción lógica , de
acuerdo a la razonable eficiencia que se quiera obtener en la transacción de las datos. Es decir que el tamaño se selecciona de acuerdo
a cuan eficaz uno quiere que sea la transacción.
El formato de los Datos : Ningún USB define formato de datos.
Una transferencia Bulk es requerida cuando suceden cualquiera de las siguientes cuatro causas:
● aproximadamente cinco segundos de paquetes NAKs continuos son recibidos por el que transmite (OS dependiente).
● Que ocurran tres interrupciones de la transacción consecutivas .
● El buffer lleno (en transferencia entrantes) o vacío (en transferencia salientes).
TRANSFERENCIAS POR INTERRUPCIONES
Este tipo de comunicación está disponible para aquellos dispositivos que demandan mover muy poca información y poco frecuentemente
(este es nuestro caso , por lo que en esta etapa nos detendremos un poco mas ).
Este tipo de transferencia tiene la particularidad de ser unidireccional, es decir del dispositivo al Host (Upstream) , notificando de algún
evento o solicitando alguna información. Su paquete de datos tiene las mismas dimensiones que el de las transmisiones de control.
La figura (xxx) muestra un resumen las transacciones y los paquetes de una fase a otra , este tipo de transferencias solo esta definido por la
versión de USB 1.0 , en donde se explica el traslado de la información desde el dispositivo hacia el Host (Upstream) en detalle , como se
vera mas adelante . recién en la versión 1.1 de USB se define el traslado de información desde el Host hacia el dispositivo (Downstream).
Las transacciones de las transferencias por Interrupciones son las mismas que las Bulk en cuanto a sus fases como se aprecia en la figura
(xxx)
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (24 of 59) [11/10/2002 10:59:02 a.m.]
Universal Serial Bus
Figure 8.11: Las Fases de la transacción y Paquetes para la transferencia por Interrupción
Otros buses proporcionan signos de interrupción , especializados para indicar demandas de interrupción. Debido a que el USB bus es half
duplex ,no hay ninguna vía dedicada exclusivamente para la señalización , por lo que se usan las transacciones normales del bus para los
manejos de requerimientos o peticiones del Host . las transacciones por interrupciones se han optimizado para que esta actividad se realice
eficazmente.
USB también permite que la transferencia por interrupción lleve un paquete adicional en el evento de interrupción
Por ejemplo, un dispositivo como el "ratón" de una PC con una conexión PS/2 requiere típicamente tres interrupciones para entregar su
posición (Ej.: , x posición, y posición, y estado del botón). Un "ratón" de USB puede entregar el informe de la posición más eficazmente en
una sola transacción .
Un el endpoint de interrupción especifica un periodo (en milisegundos) para determinar cuan a menudo el controlador de Host comienza una
transacción con el endpoint del dispositivo. El controlador de Host garantizara que las transacciones no comiencen nunca antes de la
frecuencia pre-establecida en milisegundos . Por ejemplo, si el periodo especificado es 16, por lo menos una vez cada 16 Frames el
controlador de Host comenzará una transacción de interrupción por una cañería lógica. También se pueden adoptar que sean cada 8, 10, o
también se permiten 13 Frames. Sin embargo no se permite que halla mas de 17 Frames . Obviamente esto es así , debido a que por mas que
el dispositivo puede prevenir una gran cantidad errores en una transmisión , si la cantidad de Frames es mayor a 17 el controlador de Host
no podrá administrar con eficiencia el tiempo en el bus por lo que una transacción exitosa entre el dispositivo y el Host correrá peligro.
Note que, como en el ejemplo, el controlador de Host es libre de comenzar una transacción por mas que el dispositivo no la allá pedido .
como es de esperarse el controlador de Host es quien tiene la voluntad de variar el intervalo de tiempo periodo a periodo.
Por lo general los sistemas operativos escogen los intervalos de tiempos en 2 milisegundos o menores , esto también dependerá de las
solicitudes del dispositivo
El intervalo mas pequeño para la transferencia por interrupción es de 1 milisegundo.
En nuestro caso la solicitud de interrupciones que realiza el dispositivo al controlador de Host es cada 3 (tres) milisegundos . Esto es así
debido a que la señal cardiaca posee un ancho de banda de unos 100 HZ aproximadamente con lo cual si nosotros quisiéramos graficarla
tendríamos que muestrear 25 puntos por segundo para una señal de "monitoreo" o 50 puntos para una señal de "diagnostico" .
Como la norma estable que es conveniente tener la capacidad de muestrear el doble de los puntos a graficar , tendríamos que ser capaces de
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (25 of 59) [11/10/2002 10:59:02 a.m.]
Universal Serial Bus
tomar 50 y 100 puntos respectivamente , vemos aquí que a estas especificaciones las cumplimos con creces ya que estamos tomando los
datos cada 3 milisegundo , lo que significa una toma de 300 muestras por segundos, (unas 3 veces mas de lo necesario por norma).
Prosiguiendo con la explicación sobre el modo de transferencia por interrupción ,vemos las figuras (xxx) que nos describen la transición de
los paquetes para una transferencia por interrupción con información adicional.
Un dispositivo no debe responder con un dato en una fase a menos que tenga datos significantes para proporcionarle al Host. Si no tiene
ningún dato, debe responder con un paquete NAK Handshake en lugar de un paquete del datos. Esta contestación le permite al Host realizar
el proceso mínimo requerido antes de proceder con otras transacciones para otros dispositivos. Cuando un endpoint responde con un paquete
de datos, el controlador de Host genera una interrupción para despertar al software del cliente apropiado. Si el endpoint responde sin datos ,
los espacios son rellenados sin nada significativo , no requiriendo ningún
proceso .
Una serie de transacciones puede usarse para llevar a cabo una transferencia por interrupción .
Cada transacción consiste en o dos fases para transmitir paquetes Token y Handshake o tres fases para transmitir paquetes Token ,
Handshake o Data .Otros rasgos para las transacciones del bus permitidas son:
●
●
●
●
El soporte de los paquetes ACK Handshake garantiza la entrega de los paquetes de datos libres de errores.
El reintento de la transacción se realiza cuando el dispositivo no está listo a transmitir un paquete de datos esto ocurre cuando un
paquete NAK Handshake se transmite. Un paquete NAK Handshake también se transmite cuando el dispositivo no tiene ninguna
interrupción pendiente. El dispositivo será consecutivamente "polled" encuestado cada vez que se produzca un periodo de
interrupción .
Ambos paquetes DATA0 y DATA1 son usados por este tipo de transmisión.
La transferencia por interrupción esta definida tanto para la transmisión de alta velocidad como para la de baja velocidad .
La figura (xxxx) muestra las fases de transacciones y los paquetes requeridos para transmitir datos desde el dispositivo hacia el Host
(Upstream) cuando el dispositivo no tiene información de interrupción .
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (26 of 59) [11/10/2002 10:59:02 a.m.]
Universal Serial Bus
PACKET TRANSMISSION FOR TRANSACTIONS OF AN INTERRUPT IN TRANSFER EITH NO INTERRUPT INFORMATION
La figura (xxxx) muestra las fases de transacciones y los paquetes requeridos cuando el dispositivo necesita intervención del hacia el Host .
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (27 of 59) [11/10/2002 10:59:02 a.m.]
Universal Serial Bus
PAKET TRANSMISSION FOR TRANSACTIONS OF AN INTERRUPT IN TRANSFER WHEN HOST INTERVENTION IS
REQUIRED
Las figuras (xxx) (xxx) y (xxx) muestran las correspondientes transacciones y paquetes para transferencias "OUT" de salida .
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (28 of 59) [11/10/2002 10:59:02 a.m.]
Universal Serial Bus
PACKET TRANSMISSION FOR INTERRUPT OUT TRANSFER WITH INTERRUPT INFORMATION
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (29 of 59) [11/10/2002 10:59:02 a.m.]
Universal Serial Bus
PACKET TRANSMISSION FOR INTERRUPT OUT TRANSFER WITH NO INTERRUPT INFORMATION
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (30 of 59) [11/10/2002 10:59:02 a.m.]
Universal Serial Bus
PACKET TRANSMISSION FOR INTERRUPT OUT TRANSFER WHEN HOST INTERVENTION IS REQUIRED
En resumen, en las características de la transferencia por interrupción se encuentran:
● Dirección de Transmisión de datos: Unidireccional. Sólo para transacciones "IN" es permitido por USB Versión 1.0. La Versión 1.1
agregó la posibilidad de que las transacciones fuesen "OUT".
● Velocidad: Alta y Baja Soportada .
● Control del flujo: Soportado. Las transacciones de este tipo de transferencia permiten respuestas con paquetes NAK y STALL durante
la fase Handshake . Los paquetes NAK lo usan los endpoint del dispositivo para informarle al Host que no hay ningún dato disponible
en la FIFO del dispositivo. Un paquete STALL Handshake permite que el endpoint del dispositivo informe al Host que las
transacciones no tendrán éxito hasta que algún endpoint especifico se tome para resolver la condición actual.
● Entrega de los datos: Periodo garantizado. Se especifica un periodo máximo para las transacciones. Este periodo se especifica como
un número entero (N) en milisegundos . El controlador de Host comenzara una transacción en el bus por lo menos 1 vez por periodo
especificado. Es aquí en donde se esperan , en general que los Endpoints transfieran datos. Los pueden realizar con mayor frecuencia
si lo necesitan .
● Robustez en la entrega de datos: mínima tasa de errores.
● El tamaño máximo de los datos enviados : 0-64 bytes en alta velocidad , 0-8 bytes en baja velocidad. Los datos enviados se clasifican
según tamaño entre un valor del entero de 0 a, 64 bytes (velocidad alta) o de 0 a 8 bytes (velocidad baja). Esto es así para prevenir que
las transacciones que se realizan no se superpongan en el bus.
● USB no impone ningún requisito para el formato en los volúmenes de datos de los paquetes de datos para una transacción por
interrupción.
TRANSFERENCIAS ISOCRONICAS
La transmisión isocrónica o Isochronous es un modo de transmisión bastante desconocido aunque se perfila como
uno de los sistemas de transmisión más importantes en los siguientes años, esta es parte de un conjunto
clásico de formas de transmisión bien conocidas que vamos a mencionar a continuación a fin de comprender
mejor este nuevo concepto.
TRANSMISIÓN ASINCRÓNICA:
Las distintas formas de transmisión de datos a distancia siempre fueron seriales, ya que el desfasaje de
tiempos ocasionado por la transmisión paralela en distancias grandes impide pensar en esta última como apta
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (31 of 59) [11/10/2002 10:59:02 a.m.]
Universal Serial Bus
para cubrir longitudes mayores a algunos pocos metros.
Sobre ello, la transmisión serial ha tropezado con el problema de que la información generada en el
transmisor sea recuperada en la misma forma en el receptor, para lo cual es necesario ajustarse adecuadamente
a un sincronismo entre ambos extremos de la comunicación. Para ello, tanto el receptor como el transmisor
deben disponer de relojes que funcionen a la misma frecuencia y posibilite una transmisión exitosa. Como
respuesta a este problema surgió la transmisión asincrónica, empleada masivamente años atrás para la
comunicación entre los equipos servidores conocidos como Host y sus terminales.
En este modelo cabe entender que ambos equipos poseen relojes funcionando a la misma frecuencia, por lo cual,
cuando uno de ellos desea transmitir, prepara un grupo de bits encabezados por un bit de arranque, un
conjunto de 7 u 8 bits de datos, un bit de paridad (para control de errores), y uno o dos bits de parada. El
primero de los bits enviados anuncia al receptor la llegada de los siguientes, y la recepción de los mismos
es efectuada. El receptor conocer perfectamente cuántos bits le llegarán, y da por recibida la información
cuando verifica la llegada de los bits de parada. Entonces, se denomina transmisión asincrónica no porque no
exista ningún tipo de sincronismo, sino porque el sincronismo no se halla en la señal misma, mas bien son los
equipos mismos los que poseen relojes o clocks que posibilitan la sincronización. La sincronía o asincronía
siempre se comprende a partir de la señal, no de los equipos de transmisión o recepción.
TRANSMISIÓN SINCRÓNICA
En este tipo de transmisión, el sincronismo viaja en la misma señal, de esta forma la transmisión puede
alcanzar distancias mucho mayores como también un mejor aprovechamiento de canal. En la transmisión
asincrónica, los grupos de datos están compuestos por generalmente 10 bits, de los cuales 4 son de control.
Evidentemente el rendimiento no es el mejor. En cambio, en la transmisión sincrónica, los grupos de datos o
paquetes están compuestos por 128 bytes, 1024 bytes o más, dependiendo de la calidad del canal de
comunicaciones. Trucos muy ingeniosos han permitido que la señal misma porte el sincronismo, indicando al
receptor cuándo comienza un bit y cuando termina el mismo. De esta forma la señal puede viajar por muchos más
kilómetros sin temor a perderse o no ser entendida por el receptor.
Las transmisiones sincrónicas ocupan en la actualidad gran parte del mundo de las comunicaciones seriales,
especialmente las que emplean el canal telefónico.
TRANSMISIÓN ISOCRÓNICA
La transmisión isocrónica ha sido desarrollada especialmente para satisfacer las demandas de la transmisión
multimeda por redes, esto es integrar dentro de una misma transmisión, información de voz, video, texto e
imágenes. La transmisión isocrónica es una forma de transmisión de datos en la cual los caracteres
individuales están solamente separados por un número entero de intervalos, medidos a partir de la duración de
los bits. Contrasta con la transmisión asincrónica en la cual los caracteres pueden estar separados por
intervalos aleatorios. La transferencia isocrónica provee comunicación continua y periódica entre el Host y
el dispositivo, con el fin de mover información relevante a un cierto momento. La transmisión isocrónica se
encarga de mover información como por ejemplo de audio y video.
PHASE
TOKEN
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (32 of 59) [11/10/2002 10:59:02 a.m.]
Universal Serial Bus
DATA
HANDSHAKE
■
Transaction Phase and Packet for Isochonous Transfers
La Figura (xxx) resume las transacciones permitidas y paquetes de una fase a otra dentro de una transferencia isocrónica. Se debe notar que
no existe ninguna fase Handshake en las transferencias isocrónicas.
El controlador de Host garantizara que la iniciación de las transacciones comenzaran cada 1 milisegundo por periodo de Frame. Obviamente
una variedad de errores se pueden suscitar en el bus , pero estos son "controlados" por el controlador de Host que es quien maneja el tiempo
de acceso al bus , así se asegura que una transferencia tenga una oportunidad de hacer una transacción precisamente una vez cada 1
milisegundo con el endpoint del dispositivo .
Una serie de transacciones se usa para llevar a cabo un trasferencia isocrónica. Cada transacción consiste en sólo dos fases para transmitir
los paquetes Token y Data. Otros rasgos para las transacciones isocrónicas permitidas en el bus son:
●
●
●
Ninguna fase Handshake se permite. Por consiguiente, la entrega libre de error no puede garantizarse, porque un reintento de la
transmisión nunca se permite.
Sólo el paquete DATA0 se usa para el transmisión. Nunca se usan paquetes DATA1 .
Sólo se definen transferencias isocrónicas para los dispositivos de alta velocidad . Es decir, ninguna transacción para una transferencia
isocrónica incluirá un paquete PRE.
La figura (xxx) muestra las fases de transacciones y los paquetes requeridos para transmitir datos del dispositivo hacia el Host (Upstream) .
La figura (xxx) muestra las fases de transacciones y los paquetes requeridos para transmitir datos del Host hacia el dispositivo
(Downstream) .
En resumen, las transferencias isocrónicas poseen las siguientes características , las cuales son:
● Dirección de Transmisión de datos: Unidireccional. Tanto para transmisiones "IN" u "OUT".
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (33 of 59) [11/10/2002 10:59:02 a.m.]
Universal Serial Bus
●
●
●
●
●
●
Velocidad: Sólo alta velocidad. Para los traslados de volumen no se permite baja velocidad
Control del flujo: No soportado.
Entrega de los datos: Periodo garantizado. Como mínimo 1 milisegundo . Un endpoint no garantiza la localización de los datos dentro
del misma Frame. De hecho, puede ocurrir al final o al comienzo de una Frame.
Robustez de los datos: en el traslado se puede perder datos para conservar la entrega de datos cronometrados.
El tamaño máximo para los datos : 0-1023 bytes. El tamaño de los datos enviados es el más grande de todos los tipos del transferencia
. Las transferencias isocrónicas son las mas eficaces en este sentido .
USB no impone ningún requisito para el formato en los volúmenes de datos de los paquetes de datos para una transacción de
transferencia isocrónica
TRANSFERENCIAS DE CONTROL
Las transmisiones de control son usadas exclusivamente entre el Host y el dispositivo para la configuración del mismo ,como así también las
interfaces y los endpoint . En general , este tipo de transmisiones permiten controlar el flujo de datos , se realiza por un canal bidireccional de alta
fiabilidad , lo cual le permite establecer el modo en que los datos van a ser transferidos. Sus paquetes de datos son de 8, 16, 32 o 64 bytes,
dependiendo de la velocidad del dispositivo que se pretende controlar.
Este tipo de transferencia es soportado por todo tipo de dispositivo , ya que es el modo básico de transmisión de datos con lo cual se lo configura al
dispositivo .
Las transferencias de control son diferentes a las transferencia Bulk , Interrupt y Isochronous ya que esta posee mas capas y la organización de los
estados es diferente , los otros tipos de transferencias no defines estados organizados como parte del protocolo transferido.
La transferencia de control consta de tres estados: Setup , Data (opcional) y Status.
Los estados de los datos pueden consistir en varias transacciones del bus. No deben confundirse estados con fases de la transacción. Las fases de
las transacciones son los paquetes Token ,Data y Handshake .un estado consiste en una o más transacciones sucesivas de estos paquetes . La
Figura (xxx) resume o ilustra los estados y transiciones entre los estados de una transferencia de control.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (34 of 59) [11/10/2002 10:59:02 a.m.]
Universal Serial Bus
El estado de configuración "Setup" consta de solo una transacción. El estado Data consiste en cero o más transacciones, y el estado de
estado "Status" consiste en una sola transacción. Otros rasgos de estas transacciones para una transferencia de control son:
● Se definen transferencias de control para todos los tipos de dispositivos ,ya sea de alta o baja velocidad , incluso los Hubs .
● Para los Hubs y los dispositivos de alta velocidad , la transferencia de control se usa típicamente para el control del dispositivo,
aunque pueden usarse transferencia de control para la transmisión de los datos.
Para los dispositivos de baja velocidad , la transferencia de control se usa para control del dispositivo y transmisión de los datos.
Figura (xxx) muestras las tres estados de una transferencia de control. La organización se discutirá individualmente con sus paquetes
asociados.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (35 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
Transferencia de control : estado de configuración:
La figura (xxx) muestras que los estados de configuración son siempre los primeros estados para una transferencia de control. Una estado de
configuración "Setup" establece o describe como vendrá a continuación del mismo el estado . Los detalles especificados en el estado de
configuración incluyen si el la transferencia de control leerá o escribirá , es decir, si los datos. se mueven del dispositivo al Host o viceversa.
Los estados de control siempre usan un DATA0 PID y es seguido por cero o más transacciones de datos con DATA1 / DATA0 PIDs
alternados. La primera transacción siguiente de un estado de control usa el DATA1 PID. Un estado "estado" viene a continuación de los
estados de datos y completa así una transferencia de control . Cada estado de una transferencia de control se describe en más detalle en los
párrafos siguientes.
Los estados de configuración "Status" de una transferencia de control consiste de solo 3-fases como es mostrado en Figura (xxx).
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (36 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
La fase Token de un estado de configuración consiste de una paquete de baja velocidad PRE (preamble) seguido de un paquete de
configuración.
El paquete de configuración es seguido por un paquete de dato DATA0 que tiene un campo de 8 bytes exactos de longitud , su contenido
son datos específicos que se utilizan como parámetros de control para los restantes estados de una transferencia de control.
En la ultima fase en un estado de configuración es requerido que un paquete ACK Handshake sea enviado por el endpoint. Este endpoint no
podrá enviar otro tipo de paquete Handshake (NAK o STALL).
Si el dispositivo no está listo procesar la petición cuando este recibe un estado de configuración , debera aceptarlo con un paquete ACK
Handshake. Puede, sin embargo, escoger a las transacciones de NAK de cualquier fase subsiguiente hasta que esté listo, o hasta que hallan
pasado cinco (5) segundos . Los estados de configuración de una transferencia de control siempre consisten en una sola transacción del bus,
como mostrado en Figura (xxx)
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (37 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
CONTROL TRANSFER SETUP STAGE TRANSACTION
Transferencia de control : estado de datos:
Una estado de datos de una transferencia de control consiste en cero o mas de 3-fases como puede apreciarse en la figura (xxx).
La parte de los datos contenida en los estados de configuración indica si esta transferencia de control es de lectura o escritura . Si es de
escritura, la fase del paquete Token PIDs será de salida "OUTs". Si es de escritura, la fase del paquete Token PIDs será de salida "INs".
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (38 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
Los estados de configuración también especifican el máximo de longitud permitido para el estado de datos. Un endpoint nunca enviará más
bytes que la longitud especificada en los estados de configuración ni debe enviar mas bytes de los que se pidió. La conducta de un endpoint
es indefinida si el estado de los datos es más largo que el especificado por el estado de configuración.
El segundo estado de una transferencia de control es siempre un estado de datos o de estado , ya que el estado de dato es opcional. Un estado
de datos consiste en una seria de transacciones de entrada o salida. Otras características para los estados de datos son:
● Soporte para los paquetes ACK Handshake para garantizar que los paquetes de datos lleguen sin errores
● Reintento de una transacción cuando un dispositivo no esta listo para recibir o transmitir un paquete. Esto ocurre cuando se envía un
paquete NAK.
● Los paquetes de o para una transmisión Downstream en un estado de configuración deben ser alternados es decir que luego que un
paquete DATA0 es enviado el siguiente deberá ser un paquete DATA1
● Múltiples transacciones pueden ser transmitidas cuando se esta en un estado de estado.
● Cuando la dirección de un endpoint se mando por un paquete IN Token , el dispositivo deberá envía un paquete de datos. El
controlador de Host transmitirá un paquete NAK Handshake para avisar que el paquete llego sin errores
● Cuando el controlador de Host transmite un paquete OUT Token , transmite un paquete de datos independientemente si el dispositivo
esta o no listo para recibir el paquete de datos enviado por el controlador de Host
● Cuando el dispositivo no esta listo para transmitir o recibir , manda un paquete NAK Handshake
● Cuando el dispositivo requiera la intervención del controlador de Host , el dispositivo responde con un paquete STALL Handshake.
Las figuras (xxx) muestra las transacciones por fases y los paquetes requeridos para una transmisión Upstream ( desde el dispositivo hacia el
Host) cuando el dispositivo esta listo para transmitir o recibir un paquete.
Las figuras (xxx) muestras las transacciones por fases y los paquetes requeridos para una transmisión Downstream ( desde el Host hacia el
dispositivo) cuando el dispositivo esta listo para transmitir o recibir un paquete.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (39 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (40 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (41 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (42 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (43 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
Las figuras (xxx) las transacciones por fases y los paquetes requeridos para una transmisión Upstream ( desde el dispositivo hacia el Host)
cuando el dispositivo no esta listo para transmitir o recibir un paquete.
Las figuras (xxx) las transacciones por fases y los paquetes requeridos para una transmisión Downstream ( desde el Host hacia el
dispositivo) cuando el dispositivo no esta listo para transmitir o recibir un paquete.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (44 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (45 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (46 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
Transferencia de control : estado de "estado":
NOTA: debido a que la frase "estado de estado" es poco entendible , la modificaremos a "etapa de estado"
La etapa de estado de una transferencia de control consiste de 3 simples fases como se aprecia en la figura (xxx). Una transacción de una
etapa de estado es lo opuesto a una transacción de estado de datos . si una transacción de una estado de datos usa un OUT PIDs , una
transacción de una etapa de estado usara un IN PIDs y viceversa. Una etapa de estado puede ser detectado por un endpoint cuando la
dirección PID a cambiado . un endpoint debe estar preparado para la venida de una etapa de estado , esta debe poder manejarla
correctamente . esta estado "prematuro" debe realizarse aun cuando la longitud especificada en el estado de configuración indique que mas
transacciones vendrán en un futuro.
La fase de estado lleva información que indica si se ha o no completado la transferencia de control con éxito. Una etapa de estado tiene un
significado mayor que el de "end to end" o sea de terminación , por ejemplo, si una transferencia de controles usada para encender una luz
en un teclado , la etapa de estado no tendrá que devolver el estado de "éxito" hasta que la transferencia de control alla sido aceptada y
descifrada y por el endpoint , como así también que la luz este prendida .
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (47 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
Nota: se debera tener en cuenta que en la figura los campos donde dice "DATA0 /DATA1" debería decir "DATA1 con tamaño o longitud de
paquete igual a cero"
La tabla (xxx) muestras las posibles respuestas de estado definidas por las especificaciones de USB y cuales son las repuestas para una etapa
de estado de una transferencia de control , de lectura y escritura.
Status Response
Read Status Encoding
Write Status Encoding
Success
NULL packet
ACK
Error
STALL
STALL
Busy
NAK
NAK
Otras características relevantes para esta etapa de estado son:
●
●
●
●
●
Soporte de paquetes ACK para garantizar las transacciones libres de errores
Cuando en controlador de Host manda un paquete OUT , el controlador de Host manda o transmite un paquete de longitud cero sea
que el dispositivo este listo o no a recibirlo.
Solo pueden ser transmitidos paquetes del tipo DATA1 , nunca un paquete tipo DATA0 .
Cuando un endpoint es direccionado por un paquete IN u OUT y la operación de control no se a completado , el dispositivo
transmitirá un paquete NAK .
Cuando el endpoint es direccionado por un paquete IN y la operación de control es completada con éxito , el controlador de Host
transmitirá un paquete ACK para visar que recibió los datos sin errores
Las figuras (xxx) muestran las transacciones por fases y los paquetes requeridos para una transmisión Upstream ( desde el dispositivo hacia
el Host) cuando el dispositivo a completado la operación de control.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (48 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
Las figuras (xxx) muestran las transacciones por fases y los paquetes requeridos para una transmisión Downstream ( desde el Host hacia el
dispositivo) cuando el dispositivo a completado la operación de control.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (49 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
Las figuras (xxx) muestran las transacciones por fases y los paquetes requeridos para una transmisión Upstream ( desde el dispositivo hacia
el Host) cuando el dispositivo NO a completado la operación de control.
Las figuras (xxx) muestran las transacciones por fases y los paquetes requeridos para una transmisión Downstream ( desde el Host hacia el
dispositivo) cuando el dispositivo NO a completado la operación de control.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (50 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (51 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (52 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
Las figuras (xxx) muestran las transacciones por fases y los paquetes requeridos para una transmisión Upstream ( desde el dispositivo hacia
el Host) cuando el dispositivo requiere intervención del Host.
Las figuras (xxx) muestran las transacciones por fases y los paquetes requeridos para una transmisión Downstream ( desde el Host hacia el
dispositivo) cuando el dispositivo requiere intervención del Host.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (53 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (54 of 59) [11/10/2002 10:59:03 a.m.]
Universal Serial Bus
Una transferencia de control será retirada cuando se presenten las siguientes condiciones:
●
●
●
Hallan pasado mas de 5 segundos continuos de estar recibiendo paquetes NAKs.
Que se hallan presentado mas de tres consecutivas transacciones con errores.
La etapa de estado es completada.
En resumen:
En las dos próximas tablas resumiremos todos los tipos de transmisiones y sus estados posibles de acuerdo lo define la norma , dentro de
estas dos tabla solo se encontrara la información mas relevante o de mayor importancia a nuestro entender.
Tipo de Transferencia
Acceso al Bus
Tiempo o periodo de
respuesta
Efectividad
Bulk (alta velocidad)
8,16,32,64 bytes
No garantizada
Entrega garantizada
Interrupt (alta y baja
velocidad)
8,16,32,64 bytes
Cada N ms
Entrega garantizada
Isochronous (alta
velocidad)
0 a 1023 bytes
Cada 1 ms
Entrega no garantizada
Control (alta y baja
velocidad)
8,16,32,64 bytes
No garantizada
Entrega garantizada
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (55 of 59) [11/10/2002 10:59:04 a.m.]
Universal Serial Bus
OBJETIVO BÁSICO DE USB:
Desde el punto de vista del usuario, USB es una especificación que ha de posibilitar conectar dispositivos a una computadora
de forma encadenada, sin tener que abrir en absoluto la caja de la computadora o tener que insertar tarjetas. Todo dispositivo
USB tiene la capacidad de ser conectado al computador en pleno funciónamiento, sin tener que reiniciarlo, además la
configuración del dispositivo nuevo es inmediata y completamente transparente al usuario, tras lo cual el dispositivo está listo
para ser empleado sin tocar un tornillo, menos jumpers, dips, canales, irqs, etc. El proceso de conexión USB debe ser sencillo
como se muestra en la Figura 1.
GAMA DE DISPOSITIVOS USB DISPONIBLES:
Este bus está diseñado para soportar: módems, ratones, teclados, monitores, equipos estereofónicos, lectores de CD de baja
velocidad a 4 o 6x (incluyendo quemadores), unidades de disquetes, digitalizadores de imágenes (scanners), teléfonos,
conexiones ISDN, impresoras, unidades para almacenamiento en cinta, etc. En resumen, toda clase de dispositivos existentes
y los que vayan a crearse aprovechando las ventajas USB. La única condición es que el dispositivo no requiera de rangos de
transmisión superiores a los 12Mbps, esto significa que las tarjetas de video, tarjetas de red a 100Mbps y controladoras de
discos duros particularmente, seguirán siendo tarjetas conectadas al interior de la PC. Afortunadamente, estas tarjetas, rara
vez requieren ser removidas de su lugar, lo que no sucede con una impresora o un teléfono por ejemplo. Al día de la fecha
existen más de 250 productos individuales USB en el mercado, y algunos de los mismos se muestran en la Figura 2.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (56 of 59) [11/10/2002 10:59:04 a.m.]
Universal Serial Bus
LAS FUNCIONES USB Y EL HOST USB:
Dentro de la terminología USB, el computador o la PC que soporta este tipo de bus, se denomina Host USB; mientras que por
su parte y dentro de la misma terminología, todo periférico mencionado en el anterior punto, se denomina Función USB.
Además de esta significación, no existe ningún otro término oculto tras estas dos denominaciones.
BENEFICIOS DE INCORPORARSE A LA TECNOLOGÍA USB:
Esta tecnología ha sido diseñada con el objetivo de lograr que la PC y las comunicaciones remotas especialmente con
módems, sean una sola unidad. Y es que las tendencias de computación actuales apuntan a un mundo totalmente
intercomunicado electrónicamente empleando uno de los dispositivos más conocidos como es el computador personal y el
medio de comunicación más diseminado del mundo: el teléfono. Nada es más fácil con USB que lograr este propósito.
ESTIMACIONES ESTADÍSTICAS SOBRE USB:
Ya durante el año pasado cientos de fabricantes han lanzado al mercado computadores y dispositivos USB. Hasta diciembre
de 1997 estaban en el mercado casi 30 millones de computadoras y dispositivos USB, particularmente en los países más
industrializados y de vanguardia tecnológica. Se estima que esta cifra se triplicará durante este 1998. Adicionalmente, ninguna
computadora en el mundo saldrá sin soporte USB. El cambio será realmente dramático.
USB-IF:
Este es un término que no habíamos mencionado anteriormente, ya que incumbe particularmente a empresas dedicadas a
desarrollar productos USB. De todas formas vale aclarar que USB-IF proviene de las siglas en inglés USB - Implementers
Forum o Foro de Desarrolladores USB. Es una organización sin fines de lucro que agrupa a cientos de empresas en el mundo,
donde se ha discutido todas las particularidades de este bus, y se planifican diversas políticas, incluyendo las de mercado.
PUERTOS PARALELOS Y SERIALES:
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 drástico de la noche a la mañana
para todos los dispositivos que poseen muchos usuarios con conectores RS-232 de 9 ó 25 pines, o bien Centronics de 25
orificios. Las 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. Creo que esta no
es una historia a la que no estemos acostumbrados, pasó exactamente lo mismo con las ranuras y tarjetas ISA de 8 bits, las
ranuras y tarjetas VL-Bus o VESA, y en estos momentos se está dando mucho más tajantemente con el procesador Pentium
II. De todas formas ya existen convertores tanto seriales y paralelos a USB, como se muestra en la Figura 3.
CAPACIDAD MÁXIMA DE DISPOSITIVOS USB:
Este es uno de los puntos más fuertes del bus USB, ya que permite conectar más de 127 dispositivos simultáneamente, donde
uno o dos de ellos estarán conectados directamente a la PC o Host USB, y el resto se irán conectando entre sí de forma
encadenada o bien empleando Hubs USB. Es casi irrisorio pensar en semejante cantidad de dispositivos conectados a una
PC, sin embargo nunca hay que estar seguros de nada en el mundo de la computación, como ejemplo basta recordar la vieja
promesa de los interminables 640KB del DOS.
A través de varias ediciones estuvimos analizando bastante de cerca un término que encierra mucha sencillez de uso, pero a
un costo alto reflejado en una estructura compleja, nos referimos a USB. Sin embargo, para todos los usuarios, este ha de ser
un tema que seguramente jamás les motivará preocupación alguna. Claro, existen muchas interrogantes relacionadas al
mismo, por lo cual a través de varias ediciones estuvimos paseando a lo largo y ancho de esta tecnología. Como corolario, en
la anterior edición habíamos tomado preguntas típicas de los grupos de discusión USB de Internet, y esta edición a manera de
cierre completaremos aquellas preguntas que sin duda se han de formular cuando el bus USB esté en este país.
FUNCIÓNAMIENTO BÁSICO USB:
Todo el sistema USB es inteligente, esto significa que una vez que insertado un nuevo dispositivo al sistema, el bus
automáticamente determina que recursos del Host requiere, incluyendo controladores de software (drivers), ancho de banda
necesario (el ancho de banda se refiere a la capacidad del canal de comunicaciones que requiere un dispositivo cualquiera
para enviar sus datos. Mientras más información manipule el dispositivo, más ancho de banda necesitará, y a la inversa). El
mismo proceso se da al remover un dispositivo del equipo, ya que el Host automáticamente elimina todos los componentes
asociados al mismo con el fin de disponer de los recursos otorgados en su momento para futuros dispositivos.
CONTROLADORES (DRIVERS) DE SOFTWARE:
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (57 of 59) [11/10/2002 10:59:04 a.m.]
Universal Serial Bus
Las últimas versiones del popular 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. Adicionalmente el sistema operativo Windows 98 que está a punto de salir al
mercado, traerá especiales refuerzos en cuanto a cantidad de controladores para dispositivos USB se refiere. Claro, jamás los
contendrá a todos ni mucho menos controladores de dispositivos que se fabricarán en un futuro, razón por la cual, Windows
95/98 solicitará el disquete para aquellos periféricos que no pueda configurar adecuadamente.
PRECIO DE LOS EQUIPOS USB:
Este siempre ha sido un tema candente, el precio de los dispositivos es siempre un factor determinante a la hora de
adquirirlos. Pero acá las buenas noticias, se está dando una feroz lucha entre grandes empresas que lanzan al mercado
dispositivos USB, esto significa que en poco tiempo los dispositivos USB estarán por debajo de los precios de los dispositivos
convencionales, incluyendo computadores. Creo que es conveniente desmistificar el hecho de que en computación lo nuevo
es caro, no es así, la tendencia de costos es siempre decreciente para fortuna de todos los usuarios del mundo.
CONECTORES USB SERIE "A" Y SERIE "B":
xisten dos tipos de conectores dentro del Bus Serial Universal. El conector Serie A está pensado para todos los dispositivos
USB que trabajen sobre plataformas de PCs. Serán bastante comunes dentro de los dispositivos listos para ser empleados
con Host PCs, y lo más probables es que tengan sus propios cables con su conector serie A. Sin embargo, esto no se dará en
todos los casos, existirán dispositivos USB que no posean cable incorporado, para los cuales el conector Serie B será una
característica. Sin embargo este no es un problema, ya que ambos conectores son estructuralmente diferentes e insertarlos de
forma equívoca será imposible por la forma de las ranuras. La Figura 1 muestra los diferentes tipos de conectores USB, y la
Figura 2 las respectivas ranuras.
DISPOSITIVOS RÁPIDOS USB:
Realmente USB no ha sido creado para dar soporte a dispositivos que requieren de muy importantes velocidades de
transferencia como los discos duros, tarjetas de red PCI o tarjetas de video. En el ¡Error!Marcador no definido.
mejor de los casos se contará con unidades de CD de 4x o 6x conectadas al bus USB, pero recordemos que el objetivo
primordial de este bus es extraer del interior del computador todo tipo de dispositivo de velocidad media o baja, evitando
conflictos de configuración y administración.
CAMBIOS EN LAS PCs:
La computadoras personales no han de sufrir ningún cambio particular dentro de la forma a la que estamos acostumbrados. La
única diferencia notable se hallará en la parte posterior de las mismas, donde podremos encontrar los dos conectores USB.
Los mismos provienen de una ficha cuyo cable se inserta en una nueva ranura de la tarjeta madre. La Figura 4 muestra esta
ficha, y la Figura 3 muestra una tarjeta madre USB.
Es cierto que las novedades y lo nuevo siempre causa algún tipo de recato dentro del mercado, pero la tecnología USB no es
para nada un caso. USB es todo un conjunto de tecnologías, especificaciones y sobre todo trabajo mancomunado de las más
importantes empresas del mundo por cambiar la cara de la computación, creando una nueva generación de las mismas que
hagan realidad el sueño de incorporar dispositivos nuevos con la máxima facilidad y con el mínimo esfuerzo, y para aseverar
este resultado tendremos bastante tiempo adelante y durante este año con dispositivos USB que le den el verdadero enfoque
de integración telefónica a redes a todas las PCs del mundo.
CHIPS CONTROLADORES USB:
Ya para todas las personas y usuarios de computadoras en el mundo, el hecho de que la empresa Intel esté fabricando algo
más que microprocesadores, es una gran verdad. Adicionalmente a que Intel intenta monopolizar el mercado con el
procesador Pentium I I/III, se halla fabricando una amplia gama de controladores para diferentes dispositivos USB, estos en la
actualidad, están siendo ofertados a una serie de empresas que se dedican exclusivamente a desarrollar los dispositivos USB
empleando accesorios de Intel, tal como suceden con las tarjetas madres.
Cada uno de los chips controladores USB de Intel tiene una función específica, así que no parezca raro el hecho de que
cuando el mercado nuestro se vea saturado de diferentes dispositivos USB, se presenten algunas diferencias relacionadas al
aspecto del controlador interno del dispositivo. Realmente no es imposible memorizar todos los nombres de los controladores
disponibles de Intel, así que a manera de referencia vamos a mencionarlos:
- El 8x930Ax USB Peripheral Controller, ha sido diseñado para periféricos de PCs, incluyendo joysticks digitales, cámaras y
algunos dispositivos relacionados a telefonía.
- El 8x930Hx USB Hub Controller, ha sido diseñado para brindar soporte a aquellos dispositivos que además de cumplir su
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (58 of 59) [11/10/2002 10:59:04 a.m.]
Universal Serial Bus
objetivo propio, tienen la función de trabajar como Hubs. Entre estos se incluyen monitores, impresoras, teclados, etc. Este
controlador también puede dar soporte a Hubs natos.
- El 8x931Ax USB Peripheral Controller, desarrollado también para dispositivos con capacidades complementarias de Hub.
Este es capaz de soportar 9 múltiples conexiones. Por cierto que este controlador es mejor que el primero.
El hecho de que la más grande empresa de fabricación de microprocesadores del planeta esté fabricando no solamente chips
controladores USB, sino también tarjetas madres propias para la tecnología USB está delatando un cambio realmente
importante, seguido muy de cerca por todas las empresas relacionadas a computación del mundo que desean mantenerse en
el mercado.
Durante esta sexta edición destinada a comprender adecuadamente todos los aspectos del Bus Serial Universal, entraremos a
algunas particularidades relacionadas a la arquitectura general del bus y su interrelación con los buses actuales de todos los
sistemas PC, PCI e ISA fundamentalmente. Esto con el objeto de comprender los cambios estructurales a los que estabamos
habituados en buses de datos.
file:///C|/Mis documentos/LIADE/Sitio Nuevo/proyectos/usb-ecg/introduccionseg.htm (59 of 59) [11/10/2002 10:59:04 a.m.]
Descargar