You are on page 1of 60

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Protocolo USB aplicado a placas con microcontroladores

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

INDICE
1. INTRODUCCION AL BUS USB 1.1. IMTRODICCION 1.2. QUE ES USB? 1.3. ANTECEDENTES 1.3.1. METAS DEL USB 1.3.2. TAXONOMA 1.3.3. LISTA DE HERRAMIENTAS 1.4. ARQUITECTURA DEL USB 1.4.1. DESCRIPCION DEL SISTEMA 2. TOPOLOGA Y PROTOCOLOS 2.1. TOPOLOGIA DEL BUS. DISPOSITIVOS USB 2.1.1. MODELO LOGICO FUNCIONAL. 2.2. PROTOCOLO 2.2.1. TRAMAS Y MICROTRAMAS 2.2.2 ENDPOINTS HIGH-SP EED Y HIGH BANDWIDTH. 2.2.3 PROTOCOLO I: PAQUETES Y TRANSACCIONES. 2.2.4. PROTOCOLO II: PIPES Y TRANSFERENCIAS 3. CONECTORES 3.1. PATILLAJE 3.2. DIFERENCIA ENTRE CABLE USB Y CABLE PARALELO 3.3. PRECIOS 4. APLICACIN A MICROCONTROLADORES 4.1 PATILLAJE MICROCONTROLADOR PIC 4.2 CONTROLADOR PERIFERICOS USB 4.3. CONEXIN PC-MICROCONTROLADOR 4.4. CONTROLADORES (DRIVES) DE SOFTWARE

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

1. INTRODUCCIN AL USB
1.1. INTRODUCCIN Cada da aparecen nuevas utilidades de mucha ms potencia, con ms posibilidades y mucho ms grficas, que requieren de ms capacidad y por lo tanto resulta que nuestras tareas ordinarias cada vez son de mayor volumen. Para que podamos almacenar, transmitir o recibir dichas tareas, aparecen en el mercado perifricos y componentes de mayor capacidad, discos duros con ms Gigas, tarjetas de video ms potentes, procesadores ms rpidos, etc ... pero tambin necesitamos que la "va" por la que se van a transmitir esos datos sea ms fiable y ms rpida, de forma que se ajuste a los avances producidos. Por esta razn, aparecen nuevos medios fsicos ms rpidos, en un principio tenamos la interfaz serie y paralelo, pero era necesario unificar todos los conectores creando uno ms sencillo y de mayores prestaciones. As naci el USB (Universal Serial Bus) una de las mayores revoluciones en la computacin, una tecnologa que dej completamente en el olvido la forma de interconectar perifricos a las computadoras, la expansibilidad, la sencillez de configuracin y uso del hardware.

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

La documentacin tcnica relacionada con USB es realmente abundante y de gran profundidad, no solamente informtica, sino tambin elctrica, electrnica y mecnica. Por esta razn es altamente recomendable analizarla detalladamente, desde sus orgenes y la motivacin para su actual existencia.

1.2. QU ES USB? El Bus Universal en Serie (USB) consiste en una norma para bus perifrico desarrollada por las industrias de computadoras y telecomunicaciones (Compaq, HewlettPackard, Intel, Lucent, Microsoft, NEC y Philips) . Un computador con USB permite adjuntar dispositivos perifricos rpidamente, sin necesidad de reiniciar ni de volver a configurar el sistema. Los dispositivos con USB se configuran automticamente tan pronto como se han adherido fsicamente. La computadora cuenta normalmente con dos conectores USB. Adems, se pueden unir dispositivos con USB en una cadena para conectar ms de dos dispositivos a la computadora. 1.3. ANTECEDENTES Este captulo presenta una breve descripcin de los antecedentes del Bus Serial Universal (USB), incluyendo metas de diseo, herramientas del bus y tecnologas existentes.

1.3.1. METAS DEL USB El USB est especificado para ser una extensin estndar para la industria de arquitectura PC con un enfoque en perifricos para PC que habilita aplicaciones para consumidores y negocios. Los siguientes criterios se aplicaron en la definicin de la arquitectura del USB: ? Fcil de usar por los perifricos de expansin PC ? Solucin de bajo costo que soporte ratas de transferencia arriba de 480 Mb/s
Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

? Full soporte para datos de voz, audio y video en tiempo real ? Protocolo flexible para modo mixto de transferencia isocrnica y mensajera asincrnica ? Comprensin de varias configuraciones PC y factores de forma ? Provisin de una interface estndar ? habilitacin de nuevas clases de dispositivos que aumenten la capacidad de los PC ? iFull compatibilidad de retroalimentacin de los dispositivos USB con las versiones previas de la especificacin. 1.3.2. TAXONOMA La figura 3.1 describe una taxonoma para el rango de carga de trabajo para el trfico de datos que puede ser servido a travs del USB. Como puede verse, un bus de 480 Mb/s comprende los rangos de datos de velocidad alta, full velocidad y baja velocidad. Tpicamente, los tipos de datos de alta velocidad y full velocidad pueden ser isocrnicos, mientras los datos de baja velocidad vienen de herramientas interactivas. El USB es principalmente un bus de PC pero puede ser fcilmente aplicado a otras herramientas computacionales como Host-centric. La arquitectura del software para la futura extensin del USB provee soporte para mltiples Controladores Host USB.

Figura 3-1. Taxonoma del Espacio de Aplicacin

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

2.TOPOLOGIA Y PROTOCOLOS
La Figura muestra la estratificacin del sistema USB. El mismo est compuesto por tres reas claramente demarcadas: (1) el host USB, (2) los dispositivos USB y, (3) toda la interconexin USB. La interconexin USB es la manera en la cual los dispositivos USB se conectan y comunican con el host, esto incluye: la topologa del bus o el modelo de conexin entre los dispositivos USB y el host; los modelos de flujo de datos, es decir la forma en la que la informacin se mueve en el sistema entre los diversos elementos del mismo; la planificacin USB que define la secuencia en la cual los dispositivos accedern al bus; finalmente, las relaciones entre capas del modelo, y las funciones de cada capa. 2.1. TOPOLOGIA DEL BUS.DISPOSITIVOS USB Los dispositivos USB pueden ser hubs que provean puntos de conexin adicionales a los existentes en el host, o bien diferentes dispositivos tpicos perifricos. Es evidente que todos estos dispositivos deben tener la capacidad de soportar la especificacin USB en cuanto a protocolos de comunicacin se refiere, operaciones USB , configuracin y reseteo USB. La topologa del bus USB adopta forma de estrella y se organiza por niveles. En un bus USB existen dos tipos de elementos: Anfitrin (host) y dispositivos; a su vez los dispositivos pueden ser de dos tipos: Concentradores y Funciones: El anfitrin o host: A diferencia de los dispositivos y los hubs, existe tan solo un host dentro del sistema USB, que es el ordenador mismo, particularmente una porcin del mismo denominado Controlador USB del Host. Este tiene la misin de hacer de interfaz entre el micro mismo y los diferentes dispositivos. Existen algunas particularidades respecto a este controlador. Su implementacin es una combinacin de hardware y software todo en uno, es decir firmware. Puede

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

El hub USB tiene la capacidad de detectar si un perifrico ha sido conectado a uno de sus puertos, notificando de inmediato al Controlador de Host en el computador, proceso que inicia la configuracin del equipo nuevo; adicionalmente, los hubs tambin son capaces de detectar la desconexin de un dispositivo, notificando al Controlador de Host que debe remover las estructuras de datos y programas de administracin (drivers) del dispositivo retirado. Otra de las funciones importantes de los hubs es la de aislar a los puertos de baja velocidad de las transferencias a alta velocidad, proceso sin el cual todos los dispositivos de baja velocidad conectados al bus entraran en colapso. La proteccin de los dispositivos lentos de los rpidos ha sido siempre un problema serio dentro de las redes mixtas, como es USB. El hub est compuesto por dos partes importantes: El Controlador del Hub y el Repetidor del Hub. El Repetidor del Hub tiene la funcin de analizar, corregir y retransmitir la informacin que llega al hub, hacia los puertos del mismo. Mantiene una memoria consistente en varios registros de interfaz que le permiten sostener dilogos con el host y llevar adelante algunas funciones administrativas adems de las meramente operativas; mientras que el Controlador
Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

Topologa estrella del bus USB


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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

El nivel superior lgico es el agente de transporte de datos que mueve la informacin entre el Software Cliente y el dispositivo. Existe un Software Cliente en el host, y un Software De Atencin al mismo en cada una de las funciones o perifricos USB. A este nivel, el host se comunica con cada uno de los perifricos en alguna de las varias formas posibles de transmisin que soporta USB. El Software Cliente solicita a los dispositivos diversas tareas y recibe respuestas de ellos a travs de esta capa. La capa lgica intermedia es administrada por el Software de Sistema USB, y tiene la funcin de facilitarles las tareas particulares de comunicacin a la capa superior, cabe decir, administra la parte del perifrico con la que la capa superior desea comunicarse, maneja la informacin de control y comando del dispositivo, etc. Su objetivo es permitir a la capa superior concentrarse en las tareas especficas tendientes a satisfacer las necesidades del usuario, adicionalmente gestiona el control interno de los perifricos. El acceso al bus es bajo la modalidad de Ficha o Token, lo que involucra siempre complejidad de protocolos, especialmente si agregamos dos velocidades posibles: 12Mbps 1.5Mbps. Todos estos algoritmos y procesos son administrados por el Host USB, reduciendo la complejidad del perifrico, y lo ms importante, el costo final de los dispositivos USB. La capa fsica del modelo lgico USB comprende los puertos fsicos, el cable, los voltajes y seales, el hardware y funcionamiento del hardware. Esta capa tiene el objetivo de liberar a las capas superiores de todos los problemas relacionados a la modulacin, voltajes de transmisin, saltos de fase, frecuencias y caractersticas netamente fsicas de la transmisin. As que dejemos este punto a las empresas que fabrican los diferentes dispositivos de hardware USB. 2.2. PROTOCOLO 2.2.1. TRAMAS Y MICROTRAMAS USB 1.x divida el tiempo en tramas de 1 milisegundo. Adicionalmente, USB 2.0 define un tiempo de microtrama de 125 microsegundos. Al igual que en USB 1.x se reservan ciertos porcentajes del tiempo de trama, para dar servicio a las distintas transacciones de Control, Interrupcin e Iscronas full/low-speed, en USB 2.0 tambin se reservan ciertos porcentajes del tiempo de microtrama, para dar servicio a los distintos tipos de transacciones de alta velocidad.

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

2.2.2. ENDPOINTS HIGH-SPEED Y HIGH BANDWIDTH En USB 1.x, el tiempo mximo reservado en cada trama a cada endpoint Iscrono o de Interrupcin es el de una transaccin por trama. USB 2.0 soporta dos tipos de endpoints Iscronos y de Interrupcin: ? ??Endpoints de ancho de banda normal, que precisan hasta 1,024 bytes por microtrama (una transaccin). ? ??Endpoints de alto ancho de banda (High Bandwidth), que precisan ms de 1,024 bytes por microtrama, hasta un mximo de 3,072 bytes (3 transacciones). 2.2.3 PROTOCOLO I: PAQUETES Y TRANSACCIONES USB 2.0 mantiene la arquitectura centralizada definida en USB 1.x, en la que el host es el iniciador de todas las transferencias que se producen en el bus. Los dispositivos deben mantenerse a la espera hasta recibir del host un paquete especial (token) dirigido a l, indicando el tipo de transferencia a realizar. USB 2.0 tambin mantiene la estructura de la transaccin, formada en base a la secuencia de paquetes Token-Dato-Validacin (Handshake), definida en USB 1.x. Bsicamente USB 2.0 aade algunos tipos de paquetes nuevos, para implementar las nuevas funciones y protocolos que se han incorporado. En el grupo de paquetes de Token, siguen existiendo los definidos en USB 1.x (IN(direcciones de dispositivo transmisor de los datos), OUT(direcciones de dispositivo destinatario de los datos), SOF(indicador de comienzo y numeracin de trama) y SETUP(direcciones de dispositivo destinatario de comandos de control)), aunque USB 2.0 reutiliza el tipo SOF: ? ??USB 1.x utiliza el token SOF para indicar el Principio de Trama (una vez cada milisegundo). USB 2.0 usa este mismo token para indicar el Principio de Microtrama (una vez cada 125 microsegundos). En el grupo de paquetes de Datos, aparte de los dos tipos definidos en USB 1.x (DATA0(paquete de datos par) y DATA1(paquete de datos impar)), USB 2.0 define dos nuevos tipos: ? ??DATA2, empleado en transacciones iscronas de alta velocidad y alto ancho de banda. ? ??MDATA, empleado en transacciones iscronas de alta velocidad y alto ancho de banda y en transacciones Split (las transacciones se describen ms adelante).

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

En el grupo de paquetes de Validacin (Handshake), aparte de los tres tipos definidos en USB 1.x (ACK(recepcin de paquete de datos libre de errores), NAK(receptor no puede aceptar datos o el transmisor no puede enviar) y STALL(los dispositivos TX/RX detenidos o no pueden soportar un comando)), USB 2.0 define un nuevo paquete: ? ??NYET, significa Not YET (todava no), y se emplea en los protocolos Split y de control de flujo PING. Por ltimo, en el grupo de paquetes Especial, USB 2.0 define tres nuevos tipos de paquetes, reutilizando uno de ellos (ERR) el cdigo asignado por USB 1.x al paquete especial PRE. Se recuerda aqu la descripcin del paquete PRE, para mostrar que no hay posibilidad de error en cuanto a que un mismo cdigo identifique a dos paquetes distintos: ? ??PRE (Prembulo): Definido en USB 1.x para indicar que a continuacin se va a transmitir en modo baja velocidad. Slo lo puede transmitir un host USB 1.x (en modo full-speed) inmediatamente antes del campo de token de la transaccin low-speed. ? ??ERR (Error): Se usa para indicar errores en transacciones Split high-speed. Reutiliza el cdigo del tipo de paquete PRE. Slo lo puede transmitir un concentrador USB 2.0 (en modo high-speed) en el campo de validacin (handshake) de una transaccin Split. ? ??SPLIT: Lo transmite el host en el campo de token de una transaccin Split. ? ??PING: Lo transmite el host en el campo de token de una transaccin de control de flujo PING. ?Paquete de Token SOF y Nmero de Microtrama En USB 1.x, el nmero de la trama es un campo de 11 bits que el host incrementa una vez por trama, y que enva slo en el paquete SOF (Start-OfFrame) al principio de cada trama. USB 2.0 utiliza este mismo campo para indicar el nmero de microtrama. En este caso, el host no enva todos los bits del nmero de microtrama (14 bits), sino solamente los 11 bits ms altos. Como cada trama (1 ms) contiene 8 microtramas (125 us), el efecto de lo anterior es que el host USB 2.0 enva durante 8 microtramas consecutivas un paquete SOF con el mismo nmero de trama. Los dispositivos full-speed reciben un paquete SOF cada milisegundo con un nmero de trama secuencial. Los dispositivos high-speed reciben un paquete SOF cada 125 microsegundos, pero con el mismo nmero de trama en cada grupo de 8 consecutivos.

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Los dispositivos high-speed que necesiten llevar un control del nmero de microtrama, pueden detectar cundo un paquete SOF tiene un nmero de trama distinto del anterior, e iniciar un contador interno de microtrama (de 3 bits) a 0. Cada uno de los siguientes 7 paquetes SOF con el mismo nmero de trama sern los correspondientes a las microtramas 1 a 7. ?Paquetes de Datos USB 2.0 sigue haciendo un uso de los paquetes DATA0 y DATA1, como parte del mecanismo de deteccin de errores Data Toggle en los casos definidos en USB 1.x; adicionalmente USB 2.0 define los nuevos paquetes DATA2 y MDATA, de nuevo con la funcin de deteccin de errores en los nuevos casos definidos en USB 2.0. Uso de los paquetes de datos en los nuevos casos definidos en USB 2.0 es: ? ??Las transacciones de Interrupcin high-speed high bandwidth realizadas en la misma microtrama, hacen uso del mecanismo Data Toggle (uso alternativo de paquetes DATA0 y DATA1). ? ??En transacciones Iscronas-IN high-speed high-bandwidth, el dispositivo enva los datos utilizando las siguientes secuencias de paquetes: ? En el caso de 1 transaccin por microtrama, se usa el paquete DATA0. ? En el caso de 2 transacciones por microtrama, se usa la secuencia de paquetes DATA1-DATA0. ? En el caso de 3 transacciones por microtrama, se usa la secuencia de paquetes DATA2-DATA1-DATA0. ? ??En transacciones Iscronas-OUT high-speed high-bandwidth, el host enva los datos utilizando las siguientes secuencias de paquetes: ? En el caso de 1 transaccin por microtrama, se usa el paquete DATA0. ? En el caso de 2 transacciones por microtrama, se usa la secuencia de paquetes MDATADATA1. ? En el caso de 3 transacciones por microtrama, se usa la secuencia de paquetes MDATAMDATA-DATA2. ? ??En transacciones Start-Split de Interrupcin-OUT, el host alterna los paquetes DATA0 y DATA1 en la manera habitual (data toggle). ? ??En transacciones Complete-Split de Interrupcin-IN, el concentrador tambin alterna los paquetes DATA0 y DATA1, siempre que la transaccin en el bus full/low-speed se haya completado durante una microtrama. Cuando se da el caso de que la transaccin en el bus full/low-speed abarca dos microtramas, la respuesta del concentrador en la primera transaccin Complete-Split usa el
Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

paquete MDATA, para indicar al host que faltan datos por enviar, y que debe ejecutar otra transaccin Complete-Split en la siguiente microtrama, para obtener el resto de los datos (que se transmitirn mediante un paquete DATA0 o DATA1, segn corresponda en la secuencia Data Toggle). ? ??En transacciones Start-Split Iscronas-OUT, el host siempre usa el paquete DATA0. ? ??En transacciones Complete-Split Iscronas-IN, el concentrador usa el paquete MDATA para todos los paquetes excepto para el ltimo, en que usa el paquete DATA0 (la transaccin full-speed puede abarcar varias microtramas, por lo que los paquetes MDATA informan al host que debe seguir enviando transacciones Complete-Split en cada microtrama, hasta que reciba un paquete DATA0). La mxima cantidad de informacin til que se puede transferir en un paquete de datos depende de la velocidad del dispositivo y del tipo de transferencia. Paquete de Validacin (Handshake) NYET Se utiliza slo en modo high-speed, y se puede transmitir en dos circunstancias: ? ??Lo puede transmitir un endpoint high-speed tipo Bulk-OUT o de Control, como respuesta durante el protocolo de control de flujo PING. ? ??Tambin lo puede transmitir un concentrador high-speed como respuesta a una transaccin Split, cuando el concentrador todava no ha concluido la transaccin full/low-speed con el dispositivo, o bien cuando el concentrador no puede atender la transaccin en ese momento. ?Paquete Especial de Handshake ERR Se utiliza slo en modo high-speed, y lo puede transmitir un concentrador high-speed en el campo de handshake de una transaccin Complete-Split, para informar de un error en la transaccin full/low-speed. ?Paquetes Especiales de Token para Transacciones Split Aparte de las transacciones definidas en USB 1.x (Control, Bulk, Interrupcin e Iscronas), USB 2.0 define las transacciones Split. Slo los controladores de host y los concentradores USB 2.0 deben soportar este nuevo tipo de transaccin, ya que es invisible a los dispositivos.

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Este tipo de transaccin es el que permite la comunicacin con dispositivos full/low speed conectados a concentradores que funcionan en modo high-speed. El host comienza una transaccin Split cuando enva al concentrador, en modo high-speed, toda la informacin necesaria para que el concentrador ejecute ahora una transaccin full/low-speed con el dispositivo. Toda la informacin queda almacenada en el concentrador, en el TT correspondiente al puerto al que est conectado el dispositivo (o en el nico TT disponible si se trata de un concentrador mono-TT). Mientras el concentrador ejecuta esta transaccin con el dispositivo full/lowspeed, el bus queda libre para ejecutar nuevas transacciones high-speed con otros dispositivos. La respuesta del dispositivo full/low-speed queda almacenada a su vez en el TT del concentrador, disponible para cuando el host posteriormente indique al concentrador que la enve, en modo high-speed. USB 2.0 define el token especial SPLIT para llevar a cabo las transacciones Split. Este es el nico paquete de token de 4 bytes, a diferencia de los paquetes de token normales de 3 bytes. USB 2.0 define dos transacciones Split que hacen uso del token especial SPLIT: ? ??Start Split: La utiliza el host para enviar al concentrador, en modo high-speed, toda la informacin necesaria para que el concentrador ejecute ahora una transaccin full/low-speed con el dispositivo. ? ??Complete Split: La utiliza el host para leer del concentrador, en modo highspeed, la respuesta del dispositivo full/low-speed. Un campo en el propio paquete SPLIT identifica el tipo de transaccin.

Paquete Especial de Token PING para Control de Flujo Un caso bastante frecuente y que produce una gran prdida de ancho de banda til en un bus USB 1.x, se da cuando los dispositivos full/low-speed contienen endpoints tipo Bulk-OUT y de Control que necesitan un tiempo para procesar los datos recibidos, de forma que no pueden momentneamente recibir nuevos datos hasta que se desocupe el buffer de recepcin. En USB 1.x, esta situacin la controla el dispositivo devolviendo una validacin (handshake) NAK en la transaccin OUT en la que el host ha transmitido un nuevo paquete de datos. Esta validacin indica que el dispositivo no ha podido recibir los datos porque no tiene espacio suficiente en su buffer de recepcin, y el host debe reintentar la transmisin posteriormente.

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Desafortunadamente, para cuando el dispositivo informa que no tiene espacio, la mayor parte del tiempo de la transaccin ya se ha consumido, ya que el paquete de datos se ha transferido ntegramente. Esto produce una pobre utilizacin del bus cuando se suceden mltiples transacciones OUT con respuesta negativa (NAK) por parte del dispositivo. USB 2.0 define un nuevo protocolo de control de flujo ms eficiente, denominado PING, que debe ser utilizado por las transferencias de tipo BulkOUT y de Control. Las transferencias de Control deben soportar este protocolo en las fases de Datos y de Estado, pero no en la fase de Setup. Este nuevo protocolo evita la transmisin de paquetes de datos hasta que el host sabe que el dispositivo puede aceptarlos. El host pregunta al dispositivo high-speed mediante el paquete especial de token PING, y el dispositivo puede contestar con una validacin ACK, para indicar que tiene espacio para recibir un nuevo paquete de datos, o con un handshake NAK, para indicar que no tiene espacio. El host pregunta peridicamente mediante paquetes PING hasta que recibe un handshake ACK, en cuyo caso procede a la transmisin del paquete de datos. Una vez que se produce la recepcin de un paquete de datos, el dispositivo puede contestar con una validacin ACK, para indicar la correcta recepcin del paquete y que tiene espacio para el siguiente paquete, o con una validacin NYET, para indicar la correcta recepcin del paquete y que no tiene espacio para el siguiente paquete. El host puede seguir transmitiendo paquetes de datos en tanto que el dispositivo siga contestando con ACK. En el momento en que el dispositivo conteste con NYET, el host debe volver al proceso de preguntar al dispositivo mediante paquetes PING antes de enviar un nuevo paquete de datos. 2.2.4. PROTOCOLO II: PIPES Y TRANSFERENCIAS USB 1.x define las vas de comunicacin entre las aplicaciones que se ejecutan en el host (clientes) y los distintas endpoints en los dispositivos USB (servidores), y las denomina pipes. Cuando un dispositivo USB se conecta a un sistema, y el sistema lo reconoce y lo configura, el dispositivo queda organizado como un cierto conjunto de endpoints de distintos tipos (existen 4 tipos de endpoints). Entonces el sistema establece todas las vias de comunicacin (pipes) necesarias entre el sistema y cada uno de los endpoints disponibles en dicha configuracin. El dispositivo puede implementar varias posibles configuraciones, con distintos conjuntos de de distintos tipos transferencias en cada una de ellas.

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

El sistema elige una cierta configuracin en funcin de la funcionalidad particular que se precise del dispositivo. Existen 4 tipos de endpoints (Bulk, Control, Interrupcin e Iscrono) y 2 tipos de pipes (Control o Mensaje y Stream). Las posibles combinaciones son: ? ??Pipe de Control o Mensaje. Es una va de comunicacin bidireccional entre el host y dos endpoints de Control en un dispositivo USB. Un endpoints es de Salida y el otro es de Entrada, de forma que se pueda establecer la comunicacin bidireccional. Todos los dispositivos USB disponen de dos endpoints de Control en la direccin 0, uno de entrada y uno de salida, de manera que el sistema siempre puede establecer una pipe de Control con el dispositivo, incluso antes de configurarlo (se denomina Pipe de Control por Defecto, y es la nica pipe que se puede establecer antes de configurar al dispositivo). A travs de esta pipe, el sistema puede leer del dispositivo toda la informacin descriptiva necesaria para enterarse del tipo de dispositivo, posibles configuraciones, protocolos que soporta, nmero y tipos de endpoints que soporta en cada posible configuracin, etc. Esta informacin descriptiva son los Descriptores. ? ??Pipe Stream. Es una va de comunicacin unidireccional entre el host y un endpoints de los tipos Bulk, Interrupcin o Iscrono. Si un dispositivo necesita transferencias bidireccionales de un tipo de endpoint concreto, el sistema debe establecer dos pipes, una de salida (con un endpoint de salida) y otra de entrada (con un endpoint de entrada). Las diferencias bsicas entre las transferencias USB 1.x y USB 2.0 son: ? ??Tamaos mximos de los paquetes de datos en cada tipo de transferencia. ? ??Reserva de tiempo de microtrama para las transferencias de Control, de Interrupcin e Iscronas.

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Las transferencias de Control se componen de 3 transacciones denominadas Setup-Dato-Estado. Los tamaos mximos del paquete de datos durante la transaccin de datos son: ? ??Full-speed: 8, 16, 32, 64 bytes ? ??High-speed: 64 bytes ? ??Low-speed: 8 bytes. USB hace una gestin best effort para ir dando curso a las distintas transferencias de Control pendientes en cada momento en todas las pipes de Control establecidas con todos los dispositivos. Para ello se hace la siguiente reserva del tiempo de trama o microtrama: ? ??En un bus full/low-speed, la reserva es del 10% del tiempo de trama. ? ??En un bus high-speed, la reserva es del 20% del tiempo de microtrama. Las reglas definidas por USB para el envo de las transferencias pendientes son: ? ??Si el tiempo de trama o microtrama utilizado por las transferencias de Control pendientes es inferior al reservado, el tiempo restante puede utilizarse para transferencias Bulk. ? ??Si hay ms transferencias de Control pendientes que tiempo reservado, pero hay tiempo adicional en la trama o microtrama no consumido por transferencias de Interrupcin o Iscronas, entonces el host puede utilizar dicho tiempo adicional para enviar nuevas transferencias de Control. ? ??Si hay ms transferencias de Control pendientes que tiempo disponible en una trama o microtrama, el host selecciona cules se procesan, quedando el resto pendientes para una prxima trama o microtrama. Los enpoints de Control high-speed soportan el protocolo de control de flujo PING en las transacciones de Dato y Estado de salida. ? Transferencias Iscronas Las transferencias Iscronas estn diseadas para soportar aquellos dispositivos que precisan una entrega de datos a velocidad constante, y en la que no importa la prdida eventual de informacin. Esto es necesario para aplicaciones en que la informacin de tiempo va implcita en la propia velocidad de transmisin/recepcin de datos (isocronismo).

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Para ello, las transferencias Iscronas proporcionan: ? ??Ancho de banda garantizado ? ??Latencia limitada ? ??Velocidad de transferencia de datos constante garantizada a travs de la pipe ? ??En caso de error en la entrega, no se reintenta la transmisin ? ??Sin control de flujo Slo los dispositivos high y full-speed pueden incorporar endpoints Iscronos. Las transferencias Iscronas se componen slo de transacciones de datos. Las frecuencias y los tamaos de los paquetes de datos son: ? ??Full-speed: 1 transaccin por trama de hasta 1,023 bytes. ? ??High-speed: 1 transaccin por microtrama de hasta 1,024 bytes. ? ??High-speed high-bandwidth: 2 3 transacciones por microtrama de hasta 1,024 bytes cada una. La gestin que hace USB para garantizar las transferencias es la de establecer o no la pipe en funcin de que haya suficiente tiempo libre de trama o microtrama para realizarlas. Para ello, los endpoints Iscronos indican qu cantidad de informacin como mximo debe transferir la pipe en cada trama o microtrama, de forma que el sistema USB puede calcular si hay suficiente tiempo o no para acomodar la pipe, y en funcin de eso la establece o no. La reserva de tiempo de trama o microtrama para acomodar transferencias Iscronas y de Interrupcin es como mximo el tiempo no reservado para transferencias de Control. El sistema USB puede ir estableciendo pipes Iscronas y de Interrupcin con distintos dispositivos hasta agotar dicha reserva: ? ??Full-speed: Hasta un 90% del tiempo de trama. ? ??High-Speed: Hasta un 80 % del tiempo de microtrama.

? ??Transferencias de Interrupcin Las transferencias de Interrupcin estn diseadas para soportar aquellos dispositivos que precisan enviar o recibir datos de manera no frecuente, pero con ciertos lmites de latencia. Para ello, las transferencias de Interrupcin proporcionan: ? ??Tiempo mximo de servicio (latencia) garantizado ? ??Reintento de transferencia en el siguiente periodo, en caso de eventual fallo en la entrega. ?? Todos los dispositivos high, full y low-speed pueden incorporar endpoints de Interrupcin.
Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

?? Las transferencias de Interrupcin se componen slo de transacciones de datos. Los tamaos de los paquetes de datos son: ? ??Low-speed: hasta 8 bytes. ? ??Full-speed: hasta 64 bytes. ? ??High-speed: hasta 1,024 bytes. ? ??High-speed high-bandwidth: 2 3 transacciones por microtrama de hasta 1,024 bytes cada una. ? La gestin que hace USB para garantizar las transferencias es la de establecer o no la pipe en funcin de que haya suficiente tiempo libre de trama o microtrama para realizarlas. Para ello, Las transferencias de Interrupcin indican qu cantidad de informacin como mximo debe transferir la pipe en cada transaccin, as como el tiempo mximo entre transacciones, de forma que el sistema USB puede calcular si hay suficiente tiempo o no para acomodar la pipe, y en funcin de eso la establece o no. El tiempo mximo entre transacciones (tiempo de latencia mximo) especificado por cada dispositivo puede ser: ? ??Low-speed: de 10 a 255 ms ? ??Full-speed: de 1 a 255 ms ? ??High-speed: de 125 us a 4096 seg. La reserva de tiempo de trama o microtrama para acomodar transferencias Iscronas y de Interrupcin es como mximo el tiempo no reservado para transferencias de Control. El sistema USB puede ir estableciendo pipes Iscronas y de Interrupcin con distintos dispositivos hasta agotar dicha reserva: ? ??Full y Low-speed: Hasta un 90% del tiempo de trama. ? ??High-Speed: Hasta un 80 % del tiempo de microtrama. Transferencias Bulk Las transferencias Bulk estn diseadas para soportar aquellos dispositivos que precisan enviar o recibir grandes cantidades de datos, con latencias que pueden tener amplias variaciones, y en que las transacciones pueden utilizar cualquier ancho de banda disponible. Para ello, las transferencias Bulk proporcionan: ? ??Acceso al bus en funcin del ancho de banda disponible. ? ??Reintento de transferencias en caso de errores de entrega. ? ??Entrega garantizada de datos, pero sin garanta de latencia mxima ni de ancho de banda.

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Las transferencias Bulk se realizan relati vamente rpidas si el bus dispone de mucho ancho de banda libre, pero en un bus USB con mucho ancho de banda reservado, pueden alargarse durante periodos de tiempo relativamente grandes. Slo los dispositivos high y full -speed pueden incorporar endpoints Bulk. Las transferencias Bulk se componen slo de transacciones de datos. Los tamaos de los paquetes de datos son: ? Full-speed: 8,16, 32 y 64 bytes. ? High-speed: 512 bytes. USB hace una gestin good effort para ir dando curso a las distintas transferencias pendientes en cada momento en todas las pipes Bulk establecidas con todos los dispositivos. Las transferencias de Control tienen preferencia sobre las Bulk, por lo que las transferencias Bulk se realizan siempre que no haya otro tipo de transferencias que hacer en una trama o microtrama. Las endpoints Bulk-OUT high-speed soportan el protocolo de control de flujo PING.

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

3.2. DIFERENCIA ENTRE CABLE USB Y CABLE PARALELO Introduccin Este documento se ha creado para describir las diferencias entre los cables USB y paralelos. No todos los PC o impresoras disponen de ambos. Las imgenes y dibujos, as como las descripciones que aparecen a continuacin le ayudarn a determinar qu conexiones hay en su impresora y en su equipo. Cul es la diferencia entre un cable usb y un cable paralelo?

Aspectos importantes sobre las conexiones USB Consideraciones que se deben tener en cuenta Si el cable no se conecta en el momento adecuado, puede que la impresora no funcione o n o ofrezca todas las funciones disponibles. Ventajas del USB El cable USB tiene la capacidad de conectar varios tipos de dispositivos, como impresoras, escneres, cmaras y unidades, con una conexin comn. Sistemas operativos compatibles Las impresoras HP Deskjet admiten USB en los sistemas operativos siguientes: ? ? ? ? Microsoft Windows XP Windows Me Windows 98 Windows 2000

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Cmo se debe conectar el cable USB al PC?

Cmo se debe conectar el cable USB a la impresora?

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Aspectos importantes sobre las conexiones en paralelo: Consideraciones que se deben tener en cuenta El tipo de cable es muy importante. El cable de la impresora debe cumplir la especificacin IEEE1284, es decir, tiene que cumplir determinados estndares establecidos por el IEEE (Institute of Electrical and Electronics Engineers). Normalmente puede saber si el cable es compatible, comprobando si lleva impreso el mensaje "IEEE1284 compliant". Si el cable no cumple la especificacin IEEE1284, es posible que la impresora y el equipo no puedan comunicarse adecuadamente y que la impresora imprima caracteres extraos o que aparezcan los siguientes mensajes de error: Error al escribir en LPT1 No se puede establecer la comunicacin bidireccional Impresora sin papel La impresora no responde El cartucho de impresin no responde Si el cable no se conecta en el momento adecuado con Windows XP, puede que la impresora no ofrezca todas las funciones disponibles. Sistemas operativos compatibles La conexin con una cable paralelo es compati ble con todos los sistemas operativos de Microsoft Windows.

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Cmo se debe conectar el cable paralelo al PC?

Cmo se debe conectar el cable paralelo a la impresora?

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Puedo utilizar conexiones USB y en paralelo a la vez? Si, un ejemplo es el de las impresoras. Las impresoras HP Deskjet serie 960C, 980C y 990C pueden imprimir en puertos paralelos y USB a la vez, pero slo se necesita uno para imprimir. Estas impresoras pueden conectarse a un equipo mediante un cable USB y a otro equipo a travs de un cable paralelo. Las impresoras pueden elegir si cambiar automticamente la recepcin de un tipo de datos (USB) para recibir otro tipo de datos (paralelos). Las impresoras HP Deskjet serie 640C, 810C, 830C, 840C, 880C, 895C, 930C, 950C y 970C slo pueden imprimir por un puerto a la vez.

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

US01: Cable USB (AM/AM) 2m Cable USB con conector tipo A Macho en ambos extremos. PVP: 2.18 PVD1: 1.71

PVD2: 1.64

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

US02: Cable USB (AM/BM) 2m Cable USB con conector tipo A Macho en un extremo y B Macho en el otro. PVP: 1.27 PVD1: 1.00 PVD2: 0.96

US03: Cable USB (AM/MiniUSB5-M) 2m Cable USB con conector tipo A Macho en un extremo y MiniUSB 5 pines Macho en el otro. PVP: 2.18 PVD1: 1.71 PVD2: 1.64

US04: Cable USB (AM/AF) 2m Cable USB con conector tipo A Macho en un extremo y A Hembra en el otro. La funcin de e USB. PVP: 1.27 PVD1: 1.00 PVD2: 0.96

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

US05: Cable USB (AM/MiniUSB5-M) 3m Cable USB con conector tipo A Macho en un extremo y MiniUSB 5 pines Macho en el otro. PVP: 4.36 PVD1: 3.43 PVD2: 3.29

US06: Cable USB (BM/BM) 2m Cable USB con conector tipo B Macho en ambos extremos. PVP: 2.18 PVD1: 1.71

PVD2: 1.64

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

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

US18: Cable USB (AM/MiniUSB4-M) 2m Cable USB con conector tipo A Macho en un extremo y MiniUSB 4 pines Macho en el otro. PVP: 2.18 PVD1: 1.71 PVD2: 1.64

US19: Cable USB (AM/MiniUSB4-M) 3m Cable USB con conector tipo A Macho en un extremo y MiniUSB 4 pines Macho en el otro. PVP: 4.36 PVD1: 3.43 PVD2: 3.29

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

US84: Cable USB 2.0 (AM/AF) 2m Cable USB con conector tipo A Macho en un extremo y A Hembra en el otro. Preparado para de transmisin de hasta 480Mbps. Compatible con formatos USB anteriores. Longitud del cab PVP: 2.18 PVD1: 1.71 PVD2: 1.64

U S88: Cable USB 2.0 (AM/AF) 3m Cable USB con conector tipo A Macho en un extremo y A Hembra en el otro. Preparado para de transmisin de hasta 480Mbps. Compatible con formatos USB anteriore s. Longitud del cab PVP: 2.73 PVD1: 2.14 PVD2: 2.05

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


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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

US86: Cable USB 2.0 (AM/AF) 10m Cable USB con conector tipo A Macho en un extremo y A Hembra en el otro. Preparado pa de transmisin de hasta 480Mbps. Compatible con formatos USB anteriores. Longitud del cab PVP: 10.91 PVD1: 8.57 PVD2: 8.22

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

En los cables D+ y D- es por donde se mueven la informacin y los datos, GND va a masa y el Vbus es el que alimenta el dispositivo. En esta figura vemos el circuito de un microcontrolador con soporte USB que ya explicaremos en el siguiente punto.

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Seguidamente podemos observar en la siguiente figura el microcontrolador PIC conectado al PDIUSBD11 I2C.

Lo conectamos de esta manera:

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

4.2 MICROCONTROLADORES CON SOPORTE USB


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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

Aqu podemos ver varios ejemplos de circuitos con conectores USB aplicados a microcontroladores. Fig. 1: Vemos un conector USB tipo B conectado a un microcontrolador donde podemos observar lo descrito anteriormente:

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

Requiere una resistencia y un condensador para poder comunicarse con el dispositivo. Fig. 4: Por ultimo tenemos un circuito de un conversor de un puerto PS/2, que es el puerto utilizado para conectar dispositivos como ratones, a un conector USB.

En los microcontroladores PIC esta conexin vara y como podemos observar no hay bobinas al tratarse un microcontrolador que funciona como esclavo (se describir mas adelante). En este ejemplo podemos observar un PIC con soporte USB. La seal de alimentacin del puerto USB esta especificada a 5 V, sin embargo algunos dispositivos utilizan 3.3 V, por lo que se pone un jumper para
Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

4.3 PATILLAJE DEL MICROCONTROLADOR PIC16C745

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

4.4 EJEMPLO DE UN CONTROLADOR DE PERIFERICOS USB


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

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

SERIAL INTERFACE ENGINE - SIE.- El SIE tiene la funcin de serializar y deserializar las transmisiones, adems maneja los protocolos de comunicacin, las secuencias de paquetes, el control CRC y la codificacin NRZI. FUNCTION INTERFACE UNIT - FIU.- Este elemento administra los datos que son transmitidos y recibidos por el cable USB.

Se basa y apoya en el contenido y estado de los FIFOs (a continuacin). Monitorea los estados de las transacciones, los buffer FIFO, y solicita atencin para diversas acciones a travs de interrupciones contra la CPU del host.
?

FIFOs .- (primero en entrar primero en salir).

Ejemplo:El controlador 8x930Ax tiene un total de 8 buffer tipo FIFO, cuatro de ellos destinados a la transmisin y cuatro destinados a la recepcin de datos.

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

4.5 CONEXIN PC MICROCONTROLADOR USB


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

Microcontrolador para perifricos USB de baja velocidad (low-speed). Soporta la especificacin USB versin 1.1 (1.5Mbps). Soporta dos Endpoints (endpoint0 y endpoint1). Memoria interna RAM de 128 bytes y 2 Kbytes de EPROM. Dos puertos de entrada/salida: port0 (8 pines) y port1 (4 pines).

La organizacin es RISC de 8 bits:

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

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

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

La informacin que debe mandar el dispositivo se estructura en registros o descriptores que configuran al dipositivo y son transmitidos mediante transferencia de control y siempre por el endpoint 0. Estos descriptores son lo s siguientes:
? ? ? ? ?

Device descriptor : contiene informacin bsica del dispositivo como puede ser nmero de serie, clase de dispositivo, etc. Configuracin descriptor : contiene informacin sobre las capacidades y funciones del dispositivo, tipo de alimentacin de energa que soporta.. Interface descriptor : contiene informacin sobre el nmero de endpoints que soporta y el protocolo utilizado. Class descriptor : determina la clase del dispositivo. Endpoint descriptor : excepto para el endpoint 0, cada endpoint debe ser configurado. La cofiguracin de cada endpoint consiste en el nmero de endpoint, direccin de sus comunicaciones (IN, OUT) y numero de bytes que transmite.

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

3 Fase. Gestin del dispositivo y de las comunicaciones: despus de las dos fases anteriores en las que se configura y se establece la comunicacin con el host se pasa a la tercera fase que es la que realmente se centra en gestionar la funcionalidad para la que se ha diseado el dispositivo. En el ejemplo que mostramos, en esta fase se controla tanto las seales que le llegan por el Bus USB como las seales internas del dispositivo. Para entender la
Manuel Cabeza, Priscilla Cruz, ngel Daz, Mara Jos Fresneda, Mnica Jimnez, Inma Montell

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

programacin que se hace sobre el microcontrolador, se muestra a continuacin las seales que gestiona:

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

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

Endpoint 1: Este endpoint se ha reservado nicamente para transmitir paquetes de 8 bytes (transferencia de tipo interrupcin) al host y por lo tanto para la seal DATA. El endpoint se ha configurado como IN. El

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

4.6 CONTROLADORES (DRIVERS) DE SOFTWARE


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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

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

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

GLOSARIO
? Endpoints: Buffer (bloque de datos) o un registro q ue almacena bytes que se encuentran en el dispositivo. ? CRC (Cdigo de redundancia cclica): Se trata de un mtodo matemtico a travs del cual, permite detectar errores en la informacin. Es comnmente utilizado en la transmisin de datos a travs de comunicaciones y en los archivos Zip. Valor usado para comprobar que los datos no se alteren durante la transmisin. El transmisor calcula una CRC y enva el resultado en un paquete junto con los datos. El receptor calcula la CRC de los datos recibidos y compara el valor con la CRC del paquete. El clculo de una CRC es ms complejo que una cifra de comprobacin, pero puede detectar ms errores de transmisin. ? Data Toggle: Uso alternativo de paquetes DATA0 y DATA1. ? Split: Es un fallo en los servidores de IRC, que hace que salgan muchos usuarios de una vez. Esto se basa en que los usuarios conectan a un servidor, que a su vez se conecta con otros. Si dicha conexin entre los servidores falla se produce un Split o Net Split, haciendo que los usuarios del mismo servidor puedan seguir hablando entre ellos, pero no con la gente que est en el resto de servidores, habiendo sido "desconectados" para ellos. ? Ping : Se utiliza normalmente para verificar si un ordenador esta funcionando o bien para ver si las conexiones de red responden adecuadamente. Cuando se ejecuta este comando, el ordenador enva una serie de pequeos paquetes al ordenador de destino, cuando el ordenador de destino los recibe manda una respuesta, y podemos estar seguros que ese ordenador esta funcionando o esta en red. ? Pipes: Asociacin entre el host y el Endpoints. ? T.T. : Mtodo del circuito de las transiciones. ? Protocolo: conjunto de reglas establecidas para fijar la forma en que se realizan las transacciones.

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

Trabajo de LSED: Protocolo USB aplicado a placas con microcontroladores

? Firware: conjunto de programas de slo lectura que contienen el algoritmo para una funcin especfica. Algoritmo o pequeo programa de bajo nivel grabado en un EEPROM para uso del procesador. Tambin se llama Microcode.

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

You might also like