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.]