Compartir a través de


Arquitectura e información general sobre HID sobre el transporte SPI

En este artículo se describe la pila de controladores para dispositivos que admiten HID a través del transporte SPI.

Información general y arquitectura

La pila de controladores HID SPI consta de componentes existentes y nuevos proporcionados por Microsoft, así como componentes proporcionados por el fabricante de silicio SPI. En la ilustración siguiente se muestran la pila y estos componentes.

La pila de controladores HID sobre SPI.

Windows proporciona una interfaz para autobuses sencillos y de bajo consumo para comunicarse de forma eficaz con el sistema operativo. Esta interfaz se conoce como bus periférico simple (SPB) y admite buses como el circuito integrado (I2C) y la interfaz periférica serie (SPI). Para obtener más información sobre SPB, consulte el tema Simple peripheral bus (SPB).

Windows proporciona un controlador de miniport HID basado en KMDF que implementa la versión 1.0 de la especificación de protocolo para HID sobre SPI. Este controlador se denomina HIDSPI.sys. Windows carga este controlador en función de una coincidencia de identificador compatible, que se expone mediante la configuración avanzada y la interfaz de energía (ACPI). Los integradores de sistemas pueden usar una extensión INF para cargar este controlador en función del identificador de hardware de su periférico. El controlador garantiza que las aplicaciones que usan la compatibilidad de nivel de aplicación de IOCTLs HID para el software que aprovecha los IOCTLs y el conjunto de API de HID. Se proporciona una conexión GPIO al controlador, que permite al dispositivo afirmar una interrupción cuando requiere atención o tiene datos.

Nota:

El controlador de dispositivo HIDSPI.sys solo admite el bus SPI. No admite I2C, SMBUS ni otros buses de bajo consumo en Windows.

Controlador del controlador SPI

El controlador SPI expone una interfaz IOCTL del bus periférico serie (SPB) para realizar operaciones de lectura y escritura. Este controlador proporciona los intrínsecos del controlador real (por ejemplo, SPI). La extensión de clase SPB, en nombre del controlador del controlador, controla toda la interacción con el centro de recursos e implementa las colas necesarias para administrar destinos simultáneos.

Nota:

El controlador HID SPI no funcionará en sistemas que no tengan un bus SPI compatible con la plataforma SPB. Póngase en contacto con el fabricante del sistema para determinar si el bus SPI del sistema del dispositivo es compatible con la plataforma SPB.

Controlador del controlador GPIO

El controlador de entrada y salida de uso general (GPIO) entrega interrupciones del dispositivo a través de GPIO. A menudo, se trata de un componente subordinado simple que usa patillas GPIO para indicar Windows de nuevos datos u otros eventos. GPIO también puede controlar el dispositivo mediante enfoques distintos del canal SPI.

El centro de recursos

Las conexiones en una plataforma SoC suelen no detectarse, ya que no hay ningún estándar para la enumeración de dispositivos en los autobuses que se usan en SoC. Como resultado, estos dispositivos deben definirse estáticamente en advanced Configuration and Power Interface (ACPI). Además, los componentes suelen tener varias dependencias que abarcan varios buses, en lugar de una estructura de árbol de bifurcación estricta.

El centro de recursos es un proxy que administra las conexiones entre todos los dispositivos y controladores de bus. El controlador HIDSPI usa el centro de recursos para volver a enrutar las solicitudes abiertas del dispositivo al controlador de controlador adecuado. Para obtener más información sobre el centro de recursos, consulte el tema Identificadores de conexión para dispositivos conectados de SPB.

Extensión de clase HIDSPI (HIDSPICx)

En el caso de las implementaciones que requieren un mayor rendimiento o integración, es posible que los fabricantes del sistema desarrolle silicio personalizado para procesar transacciones HIDSPI. Para ello, la extensión de clase HIDSPICx se proporciona con Windows. HIDSPICx permite el desarrollo de un controlador de controlador HWA HIDSPI personalizado sin usar SpbCx.

Para los dispositivos HWA, el proveedor proporciona un controlador de cliente responsable de implementar la interfaz definida por la extensión de clase y comunicarse con la extensión de clase.

Pila de controladores HIDSPICx y HWA.