Vous êtes sur la page 1sur 19

USB (Universal serial bus)

El bus universal serial (USB) fue desarrollado en 1996 por varias empresas, entre ellas: IBM, Intel, Northern Telecom, Compaq, Microsoft, NEC. Fue creado con la finalidad de eliminar los puertos bus ISA o PCI, ya que para su uso se tena que adquirir tarjetas separadas; adems, queran mejorar las capacidades plug-and-play que permite conectar dispositivos sin necesidad de reiniciar. Universal Serial Bus (USB) se conecta ms de ordenadores y perifricos. Tiene el poder para conectarse con todo un nuevo mundo de experiencias PC. USB es la conexin inmediata con la diversin de la fotografa digital o las ilimitadas posibilidades creativas de la imagen digital. Usted puede utilizar un puerto USB para conectar con otras personas a travs del poder de las conferencias PC-telefona y video. A continuacin, se enumeran algunas ventajas:

Configuracin automtica, cuando un usuario conecta un perifrico USB a una PC, Windows detecta el perifrico y carga el software apropiado. La primera vez, Windows puede preguntar al usuario para que inserte un disco con el software del driver, pero aparte de eso la instalacin es automtica. Puede no requerir fuente externa, la interfaz USB incluye una lnea de alimentacin que provee 5V, puede entregar hasta 500 mA. Confiabilidad, la confiabilidad es proporcionada tanto por el hardware, como por los protocolos para la transferencia de data. En cuanto al hardware, debido al diseo elimina la mayor cantidad de ruido que puede causar errores en la data; y en cuanto al protocolo, proporciona la deteccin de errores y notifica al transmisor para que pueda retransmitir, sin necesidad de que requiera alguna programacin adicional o intervencin del usuario.

Pero el puerto USB tiene sus limitaciones:

Velocidad, la mxima velocidad en dispositivos USB es de 400 Mega bits/sec (USB High Speed). Distancia, la distancia es quizs una de las principales desventajas, ya que un segmento de cable no puede ser mayor a 5 metros. Se puede ampliar hasta 30 metros utilizando cables que unan 5 hubs y el dispositivo. Comunicacin punto a punto, toda comunicacin USB es entre un HOST (computadora) y un perifrico. BroadCasting, USB no proporciona un mtodo para enviar mensajes simultneos a varios dispositivos que se encuentras enganchados al bus. Los dispositivos USB, en cuanto a su velocidad de transferencia, se clasifican en cuatro tipos:

Low Speed (USB 1.0): 1.5Mbit/s (192KB/s). Generalmente, empleado por dispositivos de Interfaz Humana (Human Interface Device HID) como ratones y teclados.

Fast o High Speed (USB 1.1): 12Mbit/s (1.5MB/s). Un acceso al bus gestionado directamente por el Controlador USB, para permitir transferencias iscronas y eliminar los tiempos de arbitracin. Una velocidad de 12 Mbps (Full Speed o FS) y un subcanal de 1,5 Mbps (Low Speed o LS) para los dispositivos ms lentos, como ratones y joysticks. La coexistencia en un mismo sistema de dispositivos FS y LS se maneja mediante conmutacin automtica y dinmica de velocidad entre unas transferencias y otras. Una conectividad excepcional, ya que puede manejar hasta 127 dispositivos simultneamente que se pueden conectar y desconectar en caliente, sin tener que reiniciar el sistema. Una configuracin automtica de dispositivos, que elimina la necesidad de realizar configuraciones manuales por medio de puentes o conmutadores. La coexistencia de dispositivos iscronos y asncronos. Los dispositivos iscronos se atienden en funcin del ancho de banda y latencia requeridos, y los asncronos se atienden durante el tiempo restante no consumido por los dispositivos iscronos. Una distribucin de alimentacin desde el Controlador USB, que permite la conexin tanto de dispositivos alimentados desde el bus como autoalimentados. Una arquitectura fcilmente escalable para permitir la existencia de varios Controladores USB en un sistema. La versin 1.1 es soportada por los siguientes sistemas operativos: Windows 98\Windows 2000\Windows XP\Windows Vista\Windows 7 y adems los siguientes OS ajenos a windows: Linux\Mac OS. High Speed (USB 2.0): 480Mbit/s (60MB/s). Se trata de una extensin del USB 1.1, por lo tanto utiliza los mismos cables y conectores, y es compatible con este. USB SuperSpeed (USB 3.0) ofrece mejoras significativas de rendimiento al ubicuo USB estndar, mientras que mantiene la compatibilidad con los miles de millones de dispositivos USB habilitados actualmente desplegados en el mercado. SuperSpeed USB ofrecer 10 veces la velocidad de transferencia de Hi-Speed USB, as como la mejora de la eficiencia energtica. SuperSpeed USB tiene un incremento de 5 Gbps de sealizacin con tasa 10 veces ms de rendimiento Hi-Speed USB. SuperSpeed USB es una tecnologa Sync-N-Go que reduce al mnimo el tiempo de espera del usuario. SuperSpeed USB proporcionar energa optimizada sondeo del dispositivo Efficiency.No y requieren menor potencia activa e inactiva. SuperSpeed USB es compatible con USB 2.0. Dispositivos USB interoperar con las plataformas 2.0. Alberga soporte para USB 2.0 dispositivos heredados. USB inalmbrico de USB-IF (Wireless USB)

Con ms de 2 billones de conexiones por cable USB legado en el mundo de hoy, USB es el estndar de facto en la industria de la computacin personal. Pronto, estos mismos, con conexiones rpidas, interoperables estar disponible en el mundo inalmbrico, con la introduccin de Wireless USB de

la USB-IF. USB inalmbrico es la nueva extensin inalmbrica para USB que combina la velocidad y la seguridad de la tecnologa de cable con la facilidad de uso de la tecnologa inalmbrica. La conectividad inalmbrica ha permitido a un estilo de vida mvil lleno de comodidades para los usuarios de informtica mvil. Inalmbrico USB soporte robusto de alta velocidad de conectividad inalmbrica mediante la utilizacin de los comunes WiMedia MB-OFDM de banda ultra ancha (UWB) como plataforma de radio desarrollada por la Alianza WiMedia. La tecnologa UWB ofrece una solucin de gran ancho de banda, de bajo costo, bajo consumo de energa, y los requisitos fsicos de los dispositivos de consumo electrnicos de ltima generacin. Wireless USB es la primera tecnologa de alta velocidad inalmbrica de interconexin de personal para atender las necesidades de la electrnica de consumo multimedia, perifricos de PC y dispositivos mviles. USB Inalmbrico conservar la funcionalidad del USB con cable al mismo tiempo unwiring la conexin del cable y proporcionar un mayor apoyo para el streaming de medios de comunicacin los dispositivos de CE y los perifricos. Rendimiento inalmbrico USB est dirigido a los 480 Mbps a 3 metros y 110Mbps a 10 metros.

USB 4.0: Est en desarrollo y la transmisin ser por la va ptica y cable elctrico.

Principios de comunicacin entre dispositivos y la PC mediante USB:


A nivel fsico, USB utiliza un cable de 4 conductores para transmitir una seal diferencial (D+ y D-) y alimentacin (VBus = 5V y GND) por medio de conexiones punto a punto. Los dispositivos LS van obligatoriamente equipados con un cable de longitud adecuada (hasta unos 3m, dependiendo de sus caractersticas elctricas), mientras que los FS pueden ir equipados con un cable o utilizar cables independientes de hasta 5m (tambin dependiendo de sus caractersticas elctricas). Se puede dividir las comunicaciones USB en dos categoras: comunicaciones usadas en el proceso de enumeracin del dispositivo y comunicaciones usadas por la aplicacin que llevan a cabo el propsito del dispositivo.

Comunicacin en el proceso de enumeracin:


En el proceso de enumeracin, el firmware del dispositivo responde a una serie de peticiones del host. El host tiene que aprender acerca del dispositivo para poder prepararse para el intercambio de data. Por lo tanto, el dispositivo debe identificar cada peticin, proporcionar la informacin requerida y tomar otras decisiones especificadas por las peticiones. En la PC, Windows es el que se encarga de realizar el proceso de enumeracin, entonces este proceso no involucra programacin por parte del usuario. Sin embargo, para completar el proceso de enumeracin, en la primera vez que el dispositivo se introduce en la PC, Windows debe localizar un archivo de extensin INF que identifica el nombre de archivo y la ruta en donde se encuentra el driver del dispositivo. Si los archivos requeridos estn disponibles y el firmware funciona correctamente, el proceso de enumeracin es transparente para los usuarios.

Comunicaciones en la aplicacin:
Despus de que el host ha intercambiado informacin para el proceso de enumeracin con el dispositivo y un driver ha sido asignado y cargado, este tipo de comunicacin puede empezar. En el host, las aplicaciones pueden usar funciones API estndar Windows u otra librera para leer y escribir en el dispositivo. En el dispositivo, transferir data tpicamente requiere poner la data a enviar en el buffer transmisor del controlador o recuperar datos recibidos del buffer receptor, y cuando se completa una transferencia, asegurar que el dispositivo se encuentre listo para la

siguiente transferencia. Cada transferencia de data usa uno de los cuatro tipos de transferencia: control, interrupcin (interrupt), masiva (bulk), o iscrona (isochronous). Cada uno tiene un formato y protocolo que se adecua a sus diferentes necesidades.

Elementos de una tranferencia:


Cada transferencia USB consiste en una o ms transacciones, y cada transaccin contiene paquetes que contienen informacin. Para poder entender esto, es necesario conocer acerca de los endpoints y tuberas (Pipes).

Endpoints:
Generalmente, un endpoint es un bloque de memoria de datos o un registro en el chip controlador. La data almacenada en un endpoint puede ser data recibida o data esperando a ser transmitida. El host tambin tiene buffers que almacenan data recibida y data esperando a ser transmitida, pero el host no tiene endpoints. En vez de eso, el host sirve como el inicio y el fin para las comunicaciones con los endpoints de los dispositivos. La especificacin USB define a un endpoint del dispositivo como una porcin nica direccionable de un dispositivo USB que es la fuente o el sumidero de informacin en el flujo de la comunicacin entre el host y el dispositivo. Esta definicin sugiere que un endpoint lleva data solo en una direccin. Sin embargo, un endpoint de control es un caso especial que es bidireccional. La direccin de un endpoint consiste en un nmero de endpoint y una direccin (transmisin o recepcin). El nmero est definido desde la perspectiva del host: Endpoint de entrada provee data para enviar al host y un endpoint de salida almacena informacin recibida del host. Un endpoint configurado para transferencia de control debe transmitir en ambas direcciones. Por lo tanto, un endpoint de control consta de un par de endpoints de entrada y salida que comparten el nmero de endpoint. Cada dispositivo debe tener el endpoint 0 configurado como un endpoint de control. Raramente, se necesita endpoints de control adicionales.

Tuberas (pipes):
Antes de que una transferencia ocurra, el host y el dispositivo deben establecer un camino o una tubera. Una tubera USB (USB pipe) es una asociacin entre el endpoint del dispositivo y el software controlador del host. El host establece tuberas durante el proceso de numeracin. Si el dispositivo es removido del bus, el host remueve las tuberas que ya no se necesitan. El host puede tambin requerir nuevas tuberas o remover algunas ya no necesarias en otros tiempos cuando pide una configuracin alterna o una interfaz para un dispositivo. Cada dispositivo tiene una tubera de control por defecto que usa el endpoint 0. La informacin de configuracin recibida por el host incluye un endpoint descriptor para cada endpoint que el dispositivo quiere usar. Cada endpoint descriptor es un bloque de informacin que dice al host que necesita para conocer acerca del endpoint para poder comunicarse con l. La informacin incluye direccin del endpoint, el tipo de transferencia a usar y el mximo tamao de los paquetes de data, y cuando es apropiado, el intervalo deseado para las transferencias.

Tipos de transferencia:
USB est diseado para manejar muchos tipos de perifricos con diversos requisitos para la velocidad de transferencia, el tiempo de respuesta y la correccin de errores. Cada uno de los cuatro tipos de transferencia de data maneja diferentes necesidades, y un dispositivo puede soportar los tipos de transferencia que son los ms adecuados para su propsito.

A) Transferencias de Control Son los nicos tipos de transferencia que tienen funciones definidas por la especificacin USB. Las transferencias de control habilitan al host a leer informacin acerca del dispositivo, asigna una direccin al dispositivo, selecciona configuraciones y otras propiedades. Todos los dispositivos USB deben soportar transferencias de control. B) Transferencias Masivas (Bulk Transfers) Las transferencias masivas son tiles para transmitir data cuando el tiempo no es un factor crtico. Una transferencia masiva puede enviar grandes cantidades de data sin obstruir el bus, debido a que aplaza la transferencia a los otros tipos de transferencia y espera a que se disponga de tiempo. C) Transferencias de Interrupcin Las transferencias de interrupcin son tiles cuando la data se tiene que transferir dentro de un perodo especfico de tiempo. Por ejemplo, el teclado y el mouse USB utilizan este tipo de transferencia. El nombre transferencia por interrupcin sugiere que el dispositivo puede enviar datos de forma espontnea que provoca una interrupcin por hardware en el host. Sin embargo, este tipo de transferencia al igual que los dems tipos de transferencia ocurre solamente cuando el host consulta al dispositivo. Son consideradas como interrupciones, porque garantizan que el host consulte o mande data con un mnimo de demora. D) Transferencias Iscronas (Isochronous Transfers) Este tipo de transferencia se produce de manera constante y peridica. Suelen contener informacin que es sensible al tiempo, como un flujo de datos o video. Es una forma de garantizar que un bloque de datos llegue rpidamente en un bus ocupado, incluso si los datos no necesitan una transferencia en tiempo real. A diferencia de la transferencia masiva, una vez que una transferencia iscrona comienza, el host garantiza el tiempo para una transferencia a una velocidad constante. Antes de seguir con nuestro curso vamos a describir lo que hasta ahora hemos Visto: Host: Dispositivo maestro que inicia la comunicacin (Generalmente la computadora). Hub: Dispositivo que contiene uno o mas conectores o conexiones internas hacia otros dispositivos usb, el cual habilita la comunicacin entre el host y con diversos dispositivos. Cada conector representa un puerto USB. Dispositivo compuesto: Es aquel dispositivo con mltiples interfaces independientes. Cada una tiene una direccin sobre el bus pera cada interfase puede tener un diferente driver device en el host. Puerto USB: Cada host soporta solo un bus, cada conector en el bus representa un puerto USB por lo tanto sobre le bus puede haber un varios conectores, pero solo existe una ruta y solo un dispositivo puede transmitir informacin a un tiempo. Driver: es un programa que habilita aplicaciones para poderse comunicar con el dispositivo. Cada dispositivo sobre el bus debe tener un driver, algunos perifricos utilizan los drivers que trae Windows. Puntos terminales (Endpoints): Es una localidad especfica dentro del dispositivo. El Endpoint es un buffer que almacena mltiples bytes, tpicamente es un bloque de la memoria de datos o un registro dentro del microcontrolador. Todos los dispositivos deben soportar el punto terminal 0. Este punto terminal es el que recibe todo el control y la peticiones de estado

durante la enumeracin cuando el dispositivo esta sobre el bus. Tuberas (Pipes): Es un enlace virtual entre el host (la PC) y el dispositivo USB, este enlace configura los parmetros asociados con el ancho de banda que tipo de transferencia se va a utilizar (Control, Bulk, Iscrona o Interrupt) direccin del flujo de datos y el mximo y/o mnimo tamao de los paquetes/buffers. Cada enlace est caracterizado por su banda de paso (Token), su tipo de servicio, el nmero de punto terminal (End Point) y el tamao de los paquetes. Estos enlaces se definen y crean durante la inicializacin del USB. Siempre existe un enlace virtual 0 que permite tener acceso a la informacin de configuracin del perifrico USB (estado, control e informacin). La norma USB define 2 tipos de enlaces virtuales (pipe); stream y message. Stream Pipes: se trata de un flujo sin formato USB definido, esto significa que se puede enviar cualquier tipo de dato. Este tipo de pipe soporta las transferencias bulk, iscronas, e interrupt. Adems tanto el host como el dispositivo USB pueden controlar. Message Pipes: este tipo de enlace virtual si tiene un formato USB definido y solo puede soportar la transferencia Control. Cuando se conecta un dispositivo USB a la PC se produce el Proceso de Enumeracin, el cual consiste en que el host le pregunta al dispositivo que se presente y le diga cules son sus parmetros, tales como: Consumo de energa expresada en unidades de Carga. Numero y tipos de Puntos terminales. Clase del producto. Tipo de transferencia. Razn de escrutinio, etc. El proceso de enumeracin es inicializado por el host cuando detecta que un nuevo dispositivo que ha sido adjuntado al Bus. El host le asigna una direccin al dispositivo adjuntado al bus y habilita su configuracin permitiendo la transferencia de datos sobre el bus. Ahora que ya tenemos una nocin sobre como trabaja el puerto USB, vamos a ver un poco el PIC18F2550, su estructura interna, la etapa osciladora, registros internos, etc.

PIC18F2550: Caractersticas principales


Dentro de la hoja de datos del microcontrolador encontraremos las siguientes caractersticas.

Nota n 1: Soporta solo Full Speed y Low Speed * 1 Nota n 2: Soporta modos interruptivo, iscrono y bulk transfer. Nota n 3: Al tener una arquitectura optimizada para C utilizaremos un compilador de C como puede ser C de CCS para nuestros programas. 1: Veamos el siguiente cuadro:

Segn este cuadro vemos que 1.5Mb/seg. Es el total de ancho de banda que posee el bus por lo cual es imposible que el micro se comunique con el Host a esa velocidad ya que hay perdidas derivadas de restricciones del protocolo, otros perifricos conectados al Host, etc. En la mayora de los casos nos vamos a poder comunicar a 64KB/seg. La distribucin de pines del PIC18F2550 es la siguiente:

Los pines marcados de rojo son los que le dan al PIC la capacidad de conectarse con un controlador USB externo. El mismo se conectara de la siguiente manera:

Esta funcin del microcontrolador no la estudiaremos ya que vamos a utilizar el transceptor USB interno del microcontrolador. El PIC18F4550, tambin tiene la posibilidad de conectarse al puerto paralelo mediante USB, es decir puede convertir los datos seriales provenientes del USB y convertirlos en un dato de 8 bits de forma paralela utilizando la funcin Streaming pararell Port. Esta funcin es utilizada en transmisiones iscronas donde hay que transmitir grandes volmenes de datos como por ejemplo la comunicacin con memorias externas. Al protocolo USB tambin lo llaman la pila USB: en las capas superiores tenemos las funciones bsicas que el usuario puede realizar (comunicacin lgica). esto a su vez va a parar a la segunda capa y luego a la tercera capa (comunicacin fsica) que involucra el aspecto elctrico. En nuestro caso estaramos directamente metidos en la capa superior, pero algunas veces entrando en las otras dos:

Nosotros trabajaremos programando en C y las capas se distribuirn de la siguiente manera: primera capa (superior): programacin bsica en C. segunda capa (intermedio): llamados a los drivers que trae el compilador de C. tercera capa (inferior): llamados a los drivers que trae el compilador de C (procesos dentro de los drivers) y conexin del mdulo USB al HOST. Volviendo al tema de los pipes y los Endpoint, los mismos se pueden graficar de la siguiente manera:

Como parte de su protocolo, nos encontraremos entre otras cosas que USB maneja la transmisin de datos por paquetes, llamados TOKEN en la cul el HOST es el iniciador de todas las transferencias que se producen en el BUS.

En la parte de transmisin de datos USB, los paquetes de datos se encuentran en grupos de paquetes de datos, y dentro de estos, existen unos llamados DATA0, DATA1. hay un proceso llamado sincronizacin del data toggle. A grandes rasgos esto no es ms que un mtodo de validacin de paquetes, y lo que hace es enviar alternadamente a DATA0 y DATA1 en una secuencia seguido de su ACK respectivo. todo con el objetivo de mantener la

sincronizacin transmisor <-> receptor.

MDULO USB DEL PIC18F2550:


Bueno para empezar veremos donde estn ubicados los pines D- y D+ (Correspondientes a las seales de datos del puerto USB en el PIC18F2550 y en el PIC18F4550), as como tambin los otros pines que intervienen en su funcionamiento.

Breve descripcin del funcionamiento del mdulo USB: La familia de dispositivos PIC18FX455/X550 contiene una interfaz serie compatible con el SIE (serial interfase engine o mquina con comunicacin serie en espaol) USB full-speed (2.0) y de poca velocidad (1.0) que permite la comunicacin rpida entre cualquier dispositivo USB y el microcontrolador PIC. El SIE puede interconectarse directamente al USB, utilizando el transmisor - receptor interno, o puede conectarse a travs un transmisorreceptor externo. El PIC tiene un regulador interno de 3,3V para alimentar el transmisor-receptor interno en aplicaciones de 5V. Se han incluido algunas caractersticas especiales en el hardware para mejorar el funcionamiento. Se proporciona memoria de puerto dual en la memoria de datos del dispositivo (RAM del USB) para tener acceso directo a la memoria desde el ncleo del microcontrolador y desde el SIE. Tambin se proporcionan unos buffer para que el programador elija libremente el uso de la memoria dentro del espacio de la RAM del USB. Existe un puerto paralelo para transmitir grandes cantidades de datos (SSP), para esto se ha proporcionado la ayuda de transferencia ininterrumpida de volmenes de datos grandes, por ejemplo datos sncronos, a los buffer de memoria externos. Bueno ahora veremos en detalle como se comunica la SIE con el exterior y las diferentes opciones a nivel conexionado del USB con el exterior:

Antes que nada veremos las notas a las referencias 2 y 3 que estn

dentro de la imagen. Aclarar que estas notas son importantes para no cometer equivocaciones a la hora de programar el cdigo que lo configura. Entonces: Nota* 2: Las pull - ups externas son opcionales, pero si queremos usarlas hay que desactivar las propias resistencias de pull - up internas que tiene el microcontrolador. La activacin o desactivacin de estas resistencias se hace mediante el bit UPUEN...que se ver ms adelante. Nota* 3: El regulador de voltaje de 3.3v, nos provee de tensin al mdulo USB en aplicaciones de 3.3v. En caso de tener una fuente externa de 3.3v conectada a Vusb, tenemos que desactivar el mdulo interno del regulador. Vemos en la imagen los diferentes pines que segn configuracin de la SIE, podemos usar un transceptor externo, el fin de este tutorial no es el estudio de los mdulos externos, por lo que se ver muy superficialmente. Algo Muy importante! que tenemos que ver es el puente bidireccional entre la SIE y el SSP...este puente nos va a permitir el transporte a alta velocidad de grandes flujos de datos en modo sincrono, por lo que se estudiar tambin en su momento. Ver la siguiente imagen en donde se muestra dicho puente:

Estado y control del mdulo USB: En total hay 22 registros para manejar las transacciones del USB. Los registros son: Registro de control del USB (UCON) Registro de configuracin del USB (UCFG) Registro de estado de la transferencia del USB (USTAT) Registro de direccin de dispositivo USB (UADDR) Registros del nmero del frame (UFRMH: UFRML) Registros activadores de los Endpoints de 0 a 15 (UEPN) El primer registro que estudiaremos ser el UCON (registro de control del

USB): En la siguiente imagen veremos como est constituido:

Este registro de control contiene los bits necesarios para determinar el comportamiento del bus durante las transferencias. El registro contiene los bits que gobiernan lo siguiente: Permiso del perifrico principal del USB Reset de los punteros tipo ping-pong Control del modo al suspender Desactivar la transferencia de paquetes El significado de los diferentes bits se muestra a continuacin: BIT7: Bit no implementado se lee como "0" BIT6: El bit PPBRST, se encarga de controlar el estado del reset, cuando se utiliza el modo Doble - Buffering o modo Ping - Pong. Cuando se activa el bit PPBRST, todos los buffers Ping - Pong se fijan a los buffers intermedios. El bit PPBRST, tiene que borrarse por firmware. Este bit se ignora en los modos de buffer que no usen el buffer ping-pong. BIT5: El bit SE0, se utiliza para indicar el estado del bus, si slo se manda un cero. Cuando se permite el mdulo USB, este bit debe supervisarse para determinar si las lneas de datos han salido de una condicin de single-ended cero (slo se manda cero). Esto ayuda a distinguir el estado de ciclo inicial de la seal de reset del USB. BIT4: El bit PKTDIS, es un flag que indica si el SIE ha inhabilitado la transmisin y la recepcin de paquetes. Este lo bit activa el SIE cuando recibe un SETUP para permitir su procesamiento. Este bit no lo puede activar el microcontrolador, slo borrar; al despejarlo el SIE continua la transmisin y/o recepcin. Cualquier acontecimiento pendiente dentro del buffer intermedio todava estar disponible, indicado dentro del registro USTAT en el buffer FIFO. BIT3: El bit USBEN, la operacin total del mdulo USB se controla con este bit. Activar este bit setea el mdulo y resetea todos los bits PPBI en el Buffer a 0. Este bit tambin activa el regulador de tensin del chip y conecta las resistencias pull-up, si se permiten. As, este bit puede utilizarse como una unin/separacin al USB. Aunque se ignoran todos los estados y bits de control si este bit est borrado, el mdulo necesita preconfigurarse antes de activar este bit. BIT2: El bit RESUME, permite al perifrico realizar un reinicio ejecutando la seal resume. Para generar un reinicio vlido, por firmware se debe activar el RESUME durante 10ms y entonces borrar el bit. BIT1: El bit SUSPND, coloca el mdulo y soporte del circuito (es decir, regulador de tensin) en un modo de baja potencia. El reloj de entrada al SIE se desactiva. Este bit debe activarse por software dentro de la respuesta a una interrupcin IDLEIF. Debe borrarse por firmware despus de observar una interrupcin ACTVIF. Cuando este bit est activo, sigue estando el dispositivo

unido al bus pero las salidas del transmisor-receptor permanecen en reposo. La tensin en el pin VUSB puede variar dependiendo del valor de este bit. Activar este bit antes de un IDLEIF dar lugar a comportamiento imprevisible del bus. Nota: Cuando est en el modo de suspensin, el bus del dispositivo USB se limita al 500A de corriente. sta es la corriente completa cedida por el dispositivo PIC y su circuito de soporte. Hay que tener cuidado de ceder la corriente mnima cuando el dispositivo entre en el modo de suspensin. BIT0: Bit no implementado se lee como "0" Registro de configuracin del USB: Antes de comunicarse con el USB, se tiene que configurar el mdulo del hardware interno y/o externo. La mayor parte de la configuracin se realiza con el registro UCFG. El regulador de tensin del USB se maneja con la configuracin de los registros. El registro UFCG contiene la mayor parte de los bits que dirigen el comportamiento del mdulo USB. stos incluyen: Velocidad del bus (Alta velocidad vs Baja velocidad) Permiso de las resistencias pull-up del chip Permiso del transmisor del chip Uso del buffer ping-pong El registro UCFG tambin contiene dos bits que ayudan a probar el mdulo, eliminando errores y certificaciones del USB. La salida de control de estos bits permite el monitor de estado y generacin de patrones de ojo.

BIT 7: UTEYE: Bit de permiso del Tes. patrn de ojo del USB. 1 = prueba del patrn de ojo permitido. 0 = prueba del patrn de ojo inhabilitado. BIT 6: UOEMON: Bit de permiso del monitor OE del USB. 1 = seal del UOE* activa; indica los intervalos durante los cuales las lneas D+/D- estn conduciendo. 0 = seales del UOE* inactivas. BIT 4: UPUEN: Bit de permiso del pull-up del chip. 1 = Pull-up del chip permitido (pull-up en D+ con FSEN=1 o en D- con FSEN=0). 0 = Pull-up del chip desactivado. BIT 3: UTRDIS: Bit inhabilitador del transmisor del chip 1 = Transmisor del chip inhabilitado; la interfaz digital del transmisor permitida. 0 = transmisor del chip activo. BIT 2: FSEN: Bit de permiso del Full-Speed. 1 = dispositivo Full-speed: controla los flancos del transmisor; requiere un reloj de 48MHz. 0 = dispositivo de poca velocidad: controla los flancos del transmisor; requiere un reloj de 6MHz. BIT 1-0 PPB1:PPB0: Bits de configuracin de los buffer ping-pong. 11 = buffers ping-pong permitidos en los End-Points 1 a 15. 10 = buffers ping-pong permitidos en todos los End-Points.

01 = buffer ping-pong permitido en los End-Points de salida 0. 00 = buffers ping-pong inhabilitados. Nota 1: 1: Si se activa UTRDIS, la seal UOE* estar activa independiente del ajuste del bit UOEMON. 2: Los bits UPUEN, UTRDIS y FSEN no deben cambiarse mientras el mdulo USB est permitido. Estos valores se deben preconfigurar antes de permitir el mdulo. 3: Este bit solamente es vlido cuando el transmisor del chip est activo (UTRDIS = 0); si no, se ignora. Nota 2: La velocidad del USB, la transmisin y las pull-up deben configurase solamente durante la fase de activacin del mdulo. No se recomienda cambiar estos ajustes mientras que el mdulo est funcionando. Viendo un poco el registro UCFG, en donde se encuentra el bit UTEYE, que es un bit de control de estado del USB que vigila los errores y es un generador de patrones. Luego tenemos al bit UOEMON. Este bit nos muestra cuando las lneas D+ y Destn conduciendo y lo que estos valores representan segn el siguiente cuadro:

Ahora tenemos 2 bit que trabajan de forma conjunta FSEN y UPUEN, segn sea su configuracin activarn o desactivarn las Resistencias Pull - Up internas del mdulo USB o configuraran el mdulo USB para trabajar a full - speed o slow speed. Veamos el circuito lgico que realiza estas acciones y una pequea tabla donde se muestran las posibles configuraciones.

Vous aimerez peut-être aussi