Introducción USB.docx

Embed Size (px)

Citation preview

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 dearbitracin. Una velocidad de 12 Mbps (Full Speed o FS) y un subcanal de 1,5Mbps (Low Speed o LS) para los dispositivos ms lentos, comoratones y joysticks. La coexistencia en un mismo sistema dedispositivos FS y LS se maneja mediante conmutacin automtica ydinmica de velocidad entre unas transferencias y otras. Una conectividad excepcional, ya que puede manejar hasta 127dispositivos simultneamente que se pueden conectar y desconectaren caliente, sin tener que reiniciar el sistema. Una configuracin automtica de dispositivos, que elimina lanecesidad de realizar configuraciones manuales por medio de puenteso conmutadores. La coexistencia de dispositivos iscronos y asncronos. Losdispositivos iscronos se atienden en funcin del ancho de banda ylatencia requeridos, y los asncronos se atienden durante el tiemporestante no consumido por los dispositivos iscronos. Una distribucin de alimentacin desde el Controlador USB, quepermite la conexin tanto de dispositivos alimentados desde el buscomo autoalimentados. Una arquitectura fcilmente escalable para permitir la existenciade 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 7y adems los siguientes OS ajenos a windows: Linux\Mac OS.

High Speed (USB 2.0): 480Mbit/s (60MB/s). Se trata de una extensin delUSB1.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 ControlSon 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 InterrupcinLas 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 hastaahora hemos Visto:

Host: Dispositivo maestro que inicia la comunicacin (Generalmentela computadora).Hub: Dispositivo que contiene uno o mas conectores o conexionesinternas hacia otros dispositivos usb, el cual habilita la comunicacinentre el host y con diversos dispositivos. Cada conector representaun puerto USB.Dispositivo compuesto: Es aquel dispositivo con mltiples interfacesindependientes. Cada una tiene una direccin sobre el buspera cada interfase puede tener un diferente driver device en elhost.Puerto USB: Cada host soporta solo un bus, cada conector en el busrepresenta un puerto USB por lo tanto sobre le bus puede haber unvarios conectores, pero solo existe una ruta y solo un dispositivopuede transmitir informacin a un tiempo.Driver: es un programa que habilita aplicaciones para podersecomunicar con el dispositivo. Cada dispositivo sobre el bus debe tenerun driver, algunos perifricos utilizan los drivers que trae Windows.Puntos terminales (Endpoints): Es una localidad especfica dentrodel dispositivo. El Endpoint es un buffer que almacena mltiplesbytes, tpicamente es un bloque de la memoria de datos o un registrodentro del microcontrolador.Todos los dispositivos deben soportar el punto terminal 0. Este puntoterminal es el que recibe todo el control y la peticiones de estadodurante la enumeracin cuando el dispositivo esta sobre el bus.Tuberas (Pipes): Es un enlace virtual entre el host (la PC) y eldispositivo USB, este enlace configura los parmetros asociados conel ancho de banda que tipo de transferencia se va a utilizar (Control,Bulk, Iscrona o Interrupt) direccin del flujo de datos y el mximoy/o mnimo tamao de los paquetes/buffers.Cada enlace est caracterizado por su banda de paso (Token), su tipode servicio, el nmero de punto terminal (End Point) y el tamao delos paquetes. Estos enlaces se definen y crean durante lainicializacin del USB. Siempre existe un enlace virtual 0 que permitetener acceso a la informacin de configuracin del perifrico USB(estado, control e informacin). La norma USB define 2 tipos deenlaces virtuales (pipe); stream y message.Stream Pipes: se trata de un flujo sin formato USB definido, estosignifica que se puede enviar cualquier tipo de dato. Este tipo de pipesoporta las transferencias bulk, iscronas, e interrupt. Ademstanto el host como el dispositivo USB pueden controlar.Message Pipes: este tipo de enlace virtual si tiene un formato USBdefinido y solo puede soportar la transferencia Control.Cuando se conecta un dispositivo USB a la PC se produce el Procesode Enumeracin, el cual consiste en que el host le pregunta aldispositivo que se presente y le diga cules son sus parmetros, talescomo: 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 detectaque un nuevo dispositivo que ha sido adjuntado al Bus. El host leasigna una direccin al dispositivo adjuntado al bus y habilita suconfiguracin 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 etapaosciladora, registros internos, etc.

PIC18F2550: Caractersticas principalesDentro de la hoja de datos del microcontrolador encontraremos lassiguientes caractersticas.

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

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

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

Esta funcin del microcontrolador no la estudiaremos ya que vamos autilizar el transceptor USB interno del microcontrolador.El PIC18F4550, tambin tiene la posibilidad de conectarse al puertoparalelo mediante USB, es decir puede convertir los datos serialesprovenientes del USB y convertirlos en un dato de 8 bits de formaparalela utilizando la funcin Streaming pararell Port. Esta funcin esutilizada en transmisiones iscronas donde hay que transmitirgrandes volmenes de datos como por ejemplo la comunicacin conmemorias externas.Al protocolo USB tambin lo llaman la pila USB: en las capassuperiores tenemos las funciones bsicas que el usuario puederealizar (comunicacin lgica). esto a su vez va a parar a la segundacapa y luego a la tercera capa (comunicacin fsica) que involucra elaspecto elctrico. En nuestro caso estaramos directamente metidosen la capa superior, pero algunas veces entrando en las otras dos:

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

Como parte de su protocolo, nos encontraremos entre otras cosasque USB maneja la transmisin de datos por paquetes, llamadosTOKEN en la cul el HOST es el iniciador de todas las transferenciasque se producen en el BUS.

En la parte de transmisin de datos USB, los paquetes de datos seencuentran en grupos de paquetes de datos, y dentro de estos,existen unos llamados DATA0, DATA1. hay un proceso llamadosincronizacin del data toggle. A grandes rasgos esto no es ms queun mtodo de validacin de paquetes, y lo que hace es enviaralternadamente a DATA0 y DATA1 en una secuencia seguido de suACK respectivo. todo con el objetivo de mantener lasincronizacin 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 elPIC18F2550 y en el PIC18F4550), as como tambin los otros pinesque intervienen en su funcionamiento.

Breve descripcin del funcionamiento del mdulo USB:La familia de dispositivos PIC18FX455/X550 contiene una interfaz seriecompatible con el SIE (serial interfase engine o mquina con comunicacinserie en espaol) USB full-speed (2.0) y de poca velocidad (1.0) quepermite la comunicacin rpida entre cualquier dispositivo USB y elmicrocontrolador PIC.El SIE puede interconectarse directamente al USB, utilizando eltransmisor - receptor interno, o puede conectarse a travs un transmisorreceptorexterno. El PIC tiene un regulador interno de 3,3V paraalimentar el transmisor-receptor interno en aplicaciones de 5V.Se han incluido algunas caractersticas especiales en el hardware paramejorar el funcionamiento. Se proporciona memoria de puerto dual en lamemoria de datos del dispositivo (RAM del USB) para tener accesodirecto a la memoria desde el ncleo del microcontrolador y desde el SIE.Tambin se proporcionan unos buffer para que el programador elijalibremente 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 transferenciaininterrumpida de volmenes de datos grandes, por ejemplo datossncronos, a los buffer de memoria externos.Bueno ahora veremos en detalle como se comunica la SIE con el exterior ylas diferentes opciones a nivel conexionado del USB con el exterior:

Antes que nada veremos las notas a las referencias 2 y 3 que estndentro de la imagen. Aclarar que estas notas son importantes para nocometer equivocaciones a la hora de programar el cdigo que loconfigura.Entonces:Nota* 2: Las pull - ups externas son opcionales, pero si queremos usarlashay que desactivar las propias resistencias de pull - up internas que tieneel microcontrolador. La activacin o desactivacin de estas resistenciasse hace mediante el bit UPUEN...que se ver ms adelante.Nota* 3: El regulador de voltaje de 3.3v, nos provee de tensin almdulo USB en aplicaciones de 3.3v. En caso de tener una fuente externade 3.3v conectada a Vusb, tenemos que desactivar el mdulo interno delregulador.Vemos en la imagen los diferentes pines que segn configuracin de laSIE, podemos usar un transceptor externo, el fin de este tutorial no esel estudio de los mdulos externos, por lo que se ver muysuperficialmente.Algo Muy importante! que tenemos que ver es el puente bidireccionalentre la SIE y el SSP...este puente nos va a permitir el transporte a altavelocidad de grandes flujos de datos en modo sincrono, por lo que seestudiar 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 registrosson: 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 delUSB):En la siguiente imagen veremos como est constituido:

Este registro de control contiene los bits necesarios para determinar elcomportamiento del bus durante las transferencias. El registro contiene los bitsque 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 paquetesEl 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 seutiliza el modo Doble - Buffering o modo Ping - Pong. Cuando se activa el bitPPBRST, todos los buffers Ping - Pong se fijan a los buffers intermedios. El bitPPBRST, tiene que borrarse por firmware. Este bit se ignora en los modos debuffer que no usen el buffer ping-pong.BIT5: El bit SE0, se utiliza para indicar el estado del bus, si slo se manda uncero.Cuando se permite el mdulo USB, este bit debe supervisarse para determinar silas lneas de datos han salido de una condicin de single-ended cero (slo semanda cero). Esto ayuda a distinguir el estado de ciclo inicial de la seal de resetdel USB.BIT4: El bit PKTDIS, es un flag que indica si el SIE ha inhabilitado latransmisin y la recepcin de paquetes. Este lo bit activa el SIE cuando recibeun SETUP para permitir su procesamiento. Este bit no lo puede activar elmicrocontrolador, slo borrar; al despejarlo el SIE continua la transmisin y/orecepcin. Cualquier acontecimiento pendiente dentro del buffer intermediotodava estar disponible, indicado dentro del registro USTAT en el bufferFIFO.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 lasresistencias pull-up, si se permiten. As, este bit puede utilizarse como unaunin/separacin al USB. Aunque se ignoran todos los estados y bits de control sieste bit est borrado, el mdulo necesita preconfigurarse antes de activar estebit.BIT2: El bit RESUME, permite al perifrico realizar un reinicio ejecutando laseal resume. Para generar un reinicio vlido, por firmware se debe activar elRESUME 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 sedesactiva. Este bit debe activarse por software dentro de la respuesta a unainterrupcin IDLEIF. Debe borrarse por firmware despus de observar unainterrupcin ACTVIF. Cuando este bit est activo, sigue estando el dispositivounido al bus pero las salidas del transmisor-receptor permanecen en reposo. Latensin en el pin VUSB puede variar dependiendo del valor de este bit. Activareste 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 limitaal 500A de corriente. sta es la corriente completa cedida por el dispositivoPIC y su circuito de soporte. Hay que tener cuidado de ceder la corriente mnimacuando 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 delhardware interno y/o externo. La mayor parte de la configuracin se realiza conel registro UCFG. El regulador de tensin del USB se maneja con la configuracinde los registros.El registro UFCG contiene la mayor parte de los bits que dirigen elcomportamiento 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-pongEl registro UCFG tambin contiene dos bits que ayudan a probar el mdulo,eliminando errores y certificaciones del USB. La salida de control de estos bitspermite 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 lneasD+/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 chip1 = 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 relojde 48MHz.0 = dispositivo de poca velocidad: controla los flancos del transmisor; requiere unreloj 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 delbit UOEMON.2: Los bits UPUEN, UTRDIS y FSEN no deben cambiarse mientras el mduloUSB est permitido. Estos valores se deben preconfigurar antes de permitir elmdulo.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 configurasesolamente durante la fase de activacin del mdulo. No se recomienda cambiarestos ajustes mientras que el mdulo est funcionando.Viendo un poco el registro UCFG, en donde se encuentra el bit UTEYE, que es unbit de control de estado del USB que vigila los errores y es un generador depatrones.Luego tenemos al bit UOEMON. Este bit nos muestra cuando las lneas D+ y Destnconduciendo y lo que estos valores representan segn el siguiente cuadro:

Ahora tenemos 2 bit que trabajan de forma conjunta FSEN y UPUEN, segn seasu configuracin activarn o desactivarn las Resistencias Pull - Up internas delmdulo 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 semuestran las posibles configuraciones.