Al desarrollar un dispositivo USB personalizado, es necesario seleccionar un chip controlador. La selección del chip depende de varios factores de forma, como:
• Facilidad de disponibilidad
• Costo
• Funciones admitidas
Componentes del controlador USB
Para funcionar como un dispositivo USB, el chip controlador tiene los siguientes componentes básicos:
• Transceptor USB
• Motor de interfaz serie (SEI)
• Búfers para almacenar datos USB
Transceptor USB: Proporciona una interfaz de hardware entre el conector USB del dispositivo y el circuito que controla la comunicación USB. Normalmente, el transceptor está presente en el mismo chip controlador, pero a veces se utiliza un transceptor externo.
Mecanismo de interfaz serie: Es una unidad intermedia que se encarga de la transmisión y recepción de paquetes. La unidad no verifica ni manipula los datos, solo envía los datos proporcionados por el chip controlador o almacena los datos recibidos. Las funciones típicas del mecanismo de interfaz serie son:
• Enviar paquetes
• Detectar paquetes entrantes
• Detectar y generar señales SOP (inicio de paquete), EOP (fin de paquete), reinicio y reanudación.
• Codificar y decodificar datos en el formato requerido. Generalmente, NRZI (sin retorno a cero invertido) con relleno de bits
Buffers: Se utilizan para almacenar datos recibidos o datos que deben transmitirse. En algunos controladores, una parte de la memoria de datos está reservada para buffers mientras que en otros se utilizan registros. Los buffers funcionan en orden FIFO (primero en entrar, primero en salir). Controladores en los que los buffers están ubicados en la memoria de datos, los datos se leen/escriben desde la dirección más baja a la dirección más alta. Algunos chips controladores tienen dos buffers paralelos para permitir transferencias más rápidas. Por ejemplo, cuando el primer buffer está transmitiendo datos, el segundo buffer puede contener el siguiente bloque de datos a transmitir. En la recepción, mientras el firmware procesa datos del primer búfer, el segundo búfer puede contener el siguiente bloque de datos recibidos. Algunos controladores admiten cuatro búferes.
Información de configuración, estado y control: los chips controladores USB tienen registros incorporados para almacenar información. Estos registros se utilizan principalmente para almacenar información relacionada con:
• Número de bytes recibidos
• Número de bytes listos para transmitir
• Suspender el estatus estatal
• Qué puntos finales están habilitados
Reloj: El chip controlador necesita una señal de reloj para la comunicación USB. Las fuentes de reloj pueden ser un oscilador de cristal, un resonador cerámico o un reloj en chip
Requisitos del dispositivo USB
Se deben considerar varios factores al seleccionar un chip controlador:
Velocidad de comunicación de datos
Un USB puede admitir tres modos de velocidad diferentes: baja, alta y máxima. Algunos chips controladores solo admiten baja velocidad, algunos admiten baja y alta velocidad, mientras que otros admiten todos los modos de velocidad. La selección del chip controlador debe realizarse de acuerdo con la velocidad de transferencia de datos requerida. En diseños donde sólo se requiere baja velocidad, la inclusión innecesaria de controladores de velocidad completa o alta agregará sobrecostos al dispositivo. Además, los componentes de los circuitos y la fabricación de controladores completos de alta velocidad son costosos.
Longitud del cable
Para dispositivos de baja velocidad, la longitud del cable no puede exceder los tres metros, mientras que los cables completos de alta velocidad pueden tener hasta cinco metros de largo.
Energía consumida
Un dispositivo periférico puede consumir una corriente máxima de 500 mA en USB2.0, mientras que en USB3.0 puede consumir hasta 900 mA de corriente. En los casos en que el requisito actual exceda el estándar USB, se requiere una fuente de alimentación externa.
Tipos de transferencia
Todos los chips controladores USB admiten transferencia de control. Los otros tipos de transferencia (Isócrona, Interrumpida y Masiva) tienen aplicaciones específicas. El chip controlador puede admitir todos los tipos de transferencia. El chip controlador debe seleccionarse según el tipo de transferencia requerida para cumplir el propósito del dispositivo. Por ejemplo, un mouse solo necesita interrumpir la transferencia además de controlar la transferencia. La selección adecuada del chip puede evitar costes adicionales.
firmware
Algunos controladores almacenan firmware en su memoria flash o EEPROM. En consecuencia, estos controladores brindan la funcionalidad de eliminar, actualizar o cambiar el firmware según sea necesario. Aunque algunos controladores tienen memoria dedicada para guardar firmware que no se puede borrar ni reescribir fácilmente. En este caso, el chip controlador deberá sustituirse por otro cada vez que se realice una actualización de firmware.
Otras características
Además de una interfaz USB, un chip controlador puede proporcionar otras funcionalidades como pines GPIO (entrada y salida de uso general), temporizadores, contadores, ADC (convertidor analógico a digital), interrupciones, SPI (interfaz periférica serie), TWI (dos cables). Interfaz serie) y otras características del microcontrolador. Seleccionar un chip controlador USB con capacidad adicional puede eliminar la necesidad de IC o componentes externos en un proyecto.
Chips controladores comunes
Hay una amplia variedad de controladores disponibles que brindan interfaz USB y otras funciones. El uso de ASIC (circuito integrado de aplicación específica) también es una opción para dispositivos de aplicaciones específicas, como el mouse o el teclado. Algunos de ellos se enumeran en la tabla:

Controlador y CPU externa
Hay controladores USB disponibles que pueden conectarse a una CPU o microcontrolador externo. La interfaz se puede realizar mediante protocolos paralelos o en serie. Esto significa que una CPU o un microcontrolador obsoleto que no admite USB puede recibir una interfaz USB mediante un controlador USB. En última instancia, el dispositivo contendrá dos chips separados, un chip controlador USB y un chip CPU/microcontrolador.
Usar dos chips separados puede agregar costo al dispositivo, mientras que usar un controlador USB con una CPU incorporada como PIC18f4550 será menos costoso.
Algunos de los controladores USB que se pueden conectar a chips externos se enumeran a continuación:

Esto completa la serie USB. Ahora es el momento de ensuciarse las manos y comenzar a implementar proyectos utilizando protocolos e interfaces USB.