Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta sección se describe cómo escribir un controlador para un dispositivo de controlador de bus periférico simple (SPB) o para un dispositivo periférico conectado a un SPB. La categoría SPB incluye autobuses como I²C y SPI. El proveedor de hardware de un dispositivo de controladora SPB proporciona un controlador SPB para administrar las funciones de hardware en la controladora. Este controlador podría admitir una familia de dispositivos de controlador similares. El proveedor de hardware para un dispositivo periférico conectado a SPB proporciona un controlador periférico SPB para administrar las funciones de hardware en el dispositivo periférico. Este controlador puede admitir una familia de dispositivos periféricos en una variedad de plataformas de hardware que proporcionan SPB compatibles.
En versiones de Windows anteriores a Windows 8, el sistema operativo obtuvo información de los dispositivos conectados a SPB en una placa base de PC solo indirectamente a través del firmware de la plataforma. A partir de Windows 8, los proveedores de hardware pueden proporcionar controladores de Windows para controlar directamente sus controladores SPB y sus dispositivos periféricos conectados a SPB, y para que estos dispositivos estén disponibles para su uso por parte del sistema operativo y las aplicaciones. Para obtener más información, consulte Controladores de controlador SPB y Controladores de dispositivos periféricos SPB.
Los SPBs se usan con frecuencia para conectar dispositivos periféricos de baja velocidad a conjuntos de chips de placa base y módulos de Sistema en un Chip (SoC). Un circuito integrado requiere menos pines para conectarse a un bus serie que a un bus paralelo, que transmite varios bits por ciclo de reloj. Normalmente, los SPB se usan en aplicaciones sensibles a los costos en las que los recuentos de patillas bajos y las conexiones simples son más importantes que la velocidad de transmisión de datos. Dado que las SPB se ejecutan a baja velocidad y requieren pocas conexiones eléctricas, se usan con frecuencia en aplicaciones en las que se debe conservar la energía de la batería.
Por ejemplo, la placa base pc en un equipo portátil podría usar un bus I²C para comunicarse con un dispositivo de baja velocidad que supervisa el nivel de batería. Del mismo modo, el módulo SoC de un teléfono inteligente u otro dispositivo móvil podría usar un bus I²C para conectarse a un dispositivo sensor, como un acelerómetro, un dispositivo GPS o un sensor de temperatura.
Un SPB no es un bus Plug and Play. Los dispositivos periféricos suelen tener conexiones fijas a un SPB y no se pueden quitar. Incluso si un dispositivo periférico se puede desconectar de una ranura en un SPB, la ranura normalmente se dedica a este dispositivo. Durante el inicio del sistema, el firmware ACPI de la plataforma de hardware enumera los dispositivos periféricos conectados a SPB para el administrador plug and Play y especifica los recursos de hardware dedicados a cada dispositivo.
Incluido en estos recursos es un identificador de conexión que identifica la conexión del dispositivo con el SPB. El identificador de conexión encapsula la información (por ejemplo, una dirección de bus y una frecuencia de reloj de bus) que requiere un controlador SPB para establecer una conexión con el dispositivo. Otros recursos de hardware pueden incluir un punto de interrupción al que el controlador conecta su ISR. Sin embargo, los recursos de hardware del dispositivo no incluyen memoria para los registros de dispositivos. Un dispositivo periférico conectado a SPB no está asignado a la memoria y solo se puede acceder a él a través del SPB. Para obtener más información, consulte identificadores de conexión para SPB-Connected dispositivos periféricos.
Un SPB no proporciona ningún medio específico del bus para transmitir solicitudes de interrupción de dispositivos periféricos al procesador. En su lugar, un dispositivo periférico conectado a SPB indica una interrupción a través de una ruta de acceso de hardware independiente que se encuentra fuera del SPB y del controlador SPB. La rutina de servicio de interrupción (ISR) para un dispositivo periférico conectado a SPB debe ejecutarse en IRQL = PASSIVE_LEVEL para que pueda enviar solicitudes de E/S de forma sincrónica para acceder serialmente a los registros de hardware del dispositivo a través del SPB. Para obtener más información, consulte Interrupciones de dispositivos periféricos SPB-Connected.