Conectividad de Bus de dispositivo (pen-device-bus-connectivity)
Nota
Este artículo contiene referencias al término esclavo, un término que Microsoft ya no usa. Cuando se quite el término del software, se quitará también del artículo.
En este tema se describen los métodos de conectividad de bus para un dispositivo de lápiz de Windows.
Un dispositivo integrado de lápiz de Windows puede usar los controladores de bandeja de entrada proporcionados por Microsoft para conectarse a su host de Windows, mediante HID a través de USB, HID a través de I²C o (a partir de Windows 11) HID a través de SPI. Sin embargo, puede usar cualquier otro bus que desee, siempre y cuando proporcione el controlador de minipuerto HID de terceros necesario para el dispositivo de lápiz. En el diagrama siguiente se muestra la pila de controladores Windows 11 para un dispositivo de lápiz de Windows.
Para obtener compatibilidad completa con Windows 11 para ediciones de escritorio (Home, Pro, Enterprise y Education), se recomienda usar los controladores de bandeja de entrada proporcionados por Microsoft. Si decide usar un controlador de minipuerto de terceros, debe agregar este controlador de terceros al OEM adecuado y a las imágenes de restauración del sistema y, a continuación, hacer que estas imágenes estén disponibles para su descarga en Windows Update.
En las secciones siguientes se muestran algunos ejemplos de configuraciones de dispositivos.
Dispositivos I²C
Un módulo integrado de lápiz de Windows se define como la combinación de un controlador IC y un sensor.
Un módulo de lápiz de Windows que se conecta a su host de Windows a través del bus I²C debe, como mínimo, exponer los cinco pines de conexión siguientes:
- Una línea de datos (SDA)
- Una línea de reloj (SCL)
- Una línea de interrupción
- Una línea de fuente de alimentación
- Una conexión a tierra (GND)
A continuación se muestra un diagrama de las líneas de conexiones entre un dispositivo de lápiz de Windows y su host de Windows.
Al conectarse a un controlador I²C, es importante comprender las demandas de ancho de banda de todos los componentes que comparten ese controlador. Se recomienda una velocidad de reloj I²C mínima de 400 KHz para un lápiz integrado de Windows. Se recomienda encarecidamente que los controladores integrados de lápiz de Windows no compartan el mismo controlador I²C con componentes que tienen un uso elevado de ancho de banda.
Se recomienda conectar la línea de interrupción (también denominada línea ATTN) a un controlador GPIO on-SoC o a ioAPIC. El recurso GPIO o IOAPIC al que está conectada la línea de interrupción, debe ser capaz de activar el SoC (y configurarlo). La funcionalidad de reactivación permite que el lápiz integrado de Windows active el sistema en varios escenarios.
Si decide usar la funcionalidad de reactivación, la línea de alimentación que está conectada al dispositivo integrado de lápiz de Windows no debe compartirse con otros dispositivos que no sean compatibles con reactivación. Para que los escenarios de reactivación funcionen correctamente, la línea de alimentación que se usa debe activarse durante las condiciones de espera/S3 conectadas.
Entradas de tabla ACPI
Un dispositivo de lápiz de Windows conectado a través de I²C debe definir una entrada en la tabla Advanced Configuration and Power Interface (ACPI) del host, para que el host reconozca el dispositivo. Para obtener más información sobre ACPI, consulte Advanced Configuration and Power Interface Specification.
La entrada de la tabla ACPI debe especificar la siguiente información:
Entrada | Descripción |
---|---|
Nombre de entrada del dispositivo ACPI | Una identificación de 4 caracteres única para la tabla ACPI, para hacer referencia al dispositivo. Por ejemplo, "WPEN". |
Id. de hardware ACPI | Identificador de hardware ACPI de 4 caracteres + 4 números para hacer referencia al dispositivo. Esto se expone en el administrador de dispositivos. Por ejemplo, "MSFT0001". |
Id. compatible | Esto siempre debe ser "PNP0C50" para indicar que el dispositivo es compatible con HID I²C. |
Controlador I²C | Especifica un controlador I²C en el host de Windows. Este controlador se usa para conectar el lápiz al host de Windows y permite que el lápiz y el host se comuniquen. Por ejemplo, "I2C3" : para indicar el controlador I²C n.º 3. |
Dirección esclava de I²C | Especifica la dirección esclava I²C para el dispositivo. El host usa esta dirección para señalar el dispositivo de lápiz en el bus I²C para la comunicación. Por ejemplo, "0x6F". |
Velocidad I²C | Especifica la velocidad máxima admitida por el dispositivo y el controlador I²C. Especificar la velocidad en la tabla ACPI garantiza una comunicación confiable. Esta velocidad no debe ser inferior a 400 000Hz (0x61A80). |
Controlador GPIO | Controlador GPIO al que está conectada la línea de interrupción del lápiz. Esto indica al host dónde "escuchar" las señales de interrupción. Por ejemplo, "GPIO0" : para indicar el controlador GPIO #0. |
Recurso de GPIO/Anclar | Pin del controlador GPIO al que está conectada la línea de interrupción del lápiz. A continuación, el host asocia este pin GPIO específico con señales de interrupción del lápiz. Por ejemplo, "{35}" : para indicar el pin 35. |
Tipo de recurso GPIO | Define las restricciones alrededor del recurso GPIO. Esta entrada para la tabla ACPI debe establecerse en "Exclusivo", a menos que desee seleccionar Reactivación de SoC. Si decide seleccionar SoC Wake, establezca esta entrada en "ExclusiveAndWake". |
Tipo de aserción de interrupción de GPIO | Define el tipo de desencadenador que el lápiz proporcionará para sus interrupciones. Esto puede ser "desencadenado por el perímetro" o "Desencadenado por el nivel". Los dispositivos compatibles con I²C HID deben usar interrupciones "desencadenadas por el nivel". |
Nivel de aserción de interrupción de GPIO | Define el nivel de voltaje en la línea de interrupción, cuando el dispositivo afirma la interrupción. Esto se puede especificar como "ActiveLow" o "ActiveHigh". |
Dispositivos USB
Un módulo de lápiz integrado de alta velocidad/velocidad completa de Windows que está conectado a través de USB 2.0, debe exponer los pines necesarios para la conectividad del host.
La conexión con el host puede adoptar muchas formas y es a discreción del integrador.
Tenga en cuenta que, al conectarse a un concentrador USB, es importante comprender las demandas de ancho de banda de todos los componentes que comparten el concentrador. Se recomienda encarecidamente que los dispositivos de ancho de banda alto y los controladores integrados de lápiz de Windows no compartan el mismo concentrador USB, ya que esto puede dar lugar a demandas de ancho de banda que superan la capacidad del bus.
Dispositivos de puente USB (I²C -> USB)
Si usa un puente USB para conectar un lápiz integrado de Windows I²C al host, el puente debe exponer el lápiz integrado de Windows como un nodo de dispositivo distinto, con los atributos únicos del dispositivo (wVendorID, wProductID, wVersionID).
Dispositivos HID SPI
Un módulo de lápiz de Windows se define como la combinación de un controlador IC y un sensor.
Un módulo de lápiz de Windows que se conecta a su host de Windows a través del bus SPI debe, como mínimo, exponer los cinco pines de conexión siguientes:
- Una línea de datos (SDA)
- Una línea de reloj (SCL)
- Una línea de selección de chip (SS)
- Una línea de interrupción
- Una línea de fuente de alimentación
- Una conexión a tierra (GND)
A continuación se muestra un diagrama de las líneas de conexiones entre un dispositivo windows Pen y su host de Windows.
Entradas de tabla ACPI
Un dispositivo de lápiz de Windows que esté conectado a través de SPI debe definir una entrada en la tabla Advanced Configuration and Power Interface (ACPI) del host, para que el host reconozca el dispositivo. Para obtener más información sobre ACPI, consulte Advanced Configuration and Power Interface Specification.
La entrada de la tabla ACPI debe especificar la información tal como se describe en el artículo Plug and Play compatibilidad con HID sobre SPI.