Controlador de filtro USB para admitir cargadores USB

Escriba un controlador de filtro que admita la detección de cargadores, si el controlador de funciones usa los controladores de Synopsys y ChipIdea en caja. Si está escribiendo un controlador de cliente para un controlador de función propietario, la detección de cargadores o conexión se integra en el controlador cliente mediante la implementación de EVT_UFX_DEVICE_PROPRIETARY_CHARGER_SET_PROPERTY, EVT_UFX_DEVICE_PROPRIETARY_CHARGER_RESET y EVT_UFX_DEVICE_DETECT_PROPRIETARY_CHARGER.

La pila de funciones USB permite que el dispositivo, como un teléfono o una tableta, se cargue cuando se conecte a un host y cargador USB tal y como se define en la especificación de carga de batería USB (BC) 1.2.

  • Hay dos tipos de puertos que el dispositivo puede usar para cargar. El dispositivo puede cargar desde un puerto de carga dedicado (DCP) en un cargador que se envía con el dispositivo. Como alternativa, el dispositivo puede desde puertos de bajada estándar o cargar puertos de bajada cuando el dispositivo está conectado a un equipo. Ambos casos son compatibles con la especificación USB BC 1.2.

  • Ciertos cargadores no siguen la especificación. La pila de funciones USB permite que el dispositivo cargue desde esos cargadores USB propietarios.

Para admitir cargadores propietarios y compatibles con especificaciones, estas operaciones son necesarias.

  • El dispositivo puede detectar cuándo un host o cargador USB está conectado o desasociado.
  • El dispositivo es capaz de detectar los diferentes puertos de carga USB definidos por la especificación BC 1.2.
  • En el caso de los cargadores USB definidos por la especificación BC 1.2, el dispositivo carga con la cantidad máxima de corriente permitida por la especificación BC 1.2.
  • El dispositivo es capaz de detectar cargadores USB propietarios.
  • Para cargadores USB propietarios, determine la cantidad máxima de corriente que el dispositivo puede dibujar.
  • Notifique al sistema operativo el tipo de puerto USB que está conectado.
  • Impedir que el dispositivo extraiga la corriente a través de USB en el sistema operativo, incluso si un host USB está conectado y el dispositivo se ha configurado con el host.

Esas operaciones se controlan mediante la extensión de clase de función USB (UFX)/par de controladores de cliente y un controlador de filtro que se carga como filtro inferior en la pila de dispositivos de función USB. El controlador administra la carga USB a partir de la detección del puerto USB para notificar a la pila de batería cuando puede comenzar la carga y la cantidad máxima de corriente que el dispositivo puede dibujar.

Esta es una representación arquitectónica de las pilas de dispositivos.

Carga USB.

Cuando se conecta un puerto USB al dispositivo, el controlador cliente recibe una notificación por el controlador de filtro inferior o por una interrupción. En este momento, el controlador cliente realiza la detección de puertos mediante la comunicación con el hardware USB e informa del tipo de puerto a UFX. Como alternativa, puede solicitar el controlador de filtro. En ese caso, el controlador de filtro coordina con el hardware USB para realizar la detección de puertos USB y devuelve el tipo de puerto detectado al controlador cliente y el controlador de cliente lo pasa a UFX.

Según el tipo de puerto, UFX determina la cantidad máxima de corriente que el dispositivo puede dibujar y enviar esa información al controlador de agregación de carga (CAD). CAD valida la información. Si la corriente es válida, CAD envía una solicitud al controlador de clase de batería para iniciar la carga hasta la corriente máxima especificada. El controlador de clase de batería reenvía la solicitud de carga al controlador de miniclase de la batería para su procesamiento. Si la solicitud de carga especificó que se adjuntó un cargador propietario y la miniclase de la batería controla cargadores propietarios, el controlador de miniclase puede intentar cargar con un máximo de corriente que determina que es adecuado. De lo contrario, la miniclase de la batería solo puede cargar hasta la corriente máxima especificada por CAD.