Diseño de hardware del subsistema de batería y energía
A partir de Windows 8, los diseñadores de hardware del sistema pueden elegir entre dos topologías de hardware diferentes para los subsistemas de batería y energía en sus plataformas Windows.
Topologías de hardware
Por lo general, Windows espera una de las dos topologías de hardware para el subsistema de alimentación y carga.
La primera topología se muestra en el diagrama de bloques siguiente. Esta topología, que es común en equipos que ejecutan Windows 7, usa un controlador insertado en la plataforma. Normalmente, el controlador insertado realiza varias funciones en un equipo windows móvil, incluido el control de fuente de alimentación, la administración de la carga de la batería, la detección de botones de encendido o conmutador, y la entrada del mouse y el teclado compatibles con PS/2. El controlador insertado normalmente se conecta al silicio principal a través del bus de recuento de patillas bajas (LPC). Las consultas de Windows y se notifican sobre la información del subsistema de energía a través de la interfaz del controlador insertado ACPI.
La segunda topología se muestra en el diagrama de bloques siguiente. Esta topología usa un controlador de carga de batería y un componente de medidor de combustible, que están conectados directamente al silicio principal de la plataforma a través de un simple bus periférico, como I²C. En esta configuración, Windows consulta y recibe una notificación sobre los cambios del subsistema de energía a través de las comunicaciones a través del bus I²C. Una región de operación simple de bus periférico (SPB) permite que el código del método de control ACPI en firmware se comunique con el controlador de carga de la batería y los componentes del medidor de combustible que están conectados al silicio principal a través de un bus I²C.
Operación ACPI con un controlador insertado
Las plataformas que tienen su subsistema de batería y alimentación conectados al controlador insertado de plataforma típico usan la región de operación del controlador insertado ACPI para facilitar las comunicaciones entre el entorno del método de control ACPI y el hardware de la plataforma.
El firmware ACPI debe definir el controlador incrustado en el espacio de nombres ACPI. Esta definición incluye lo siguiente:
- Un nodo Device() para el controlador incrustado.
- Objeto _HID que indica que el dispositivo es un controlador incrustado.
- Objeto _CRS para indicar los recursos de E/S para el controlador incrustado.
- Objeto _GPE que define la SCI para el controlador incrustado.
- Una región de operación que describe la información contenida en el controlador incrustado a la que pueden acceder otros códigos de método de control ACPI en el espacio de nombres, incluido el estado de la batería y los métodos de información.
Para obtener más información, vea la sección 12.11, "Definición de un dispositivo controlador insertado en el espacio de nombres ACPI", en la especificación ACPI 5.0.
Acceso a la información de la batería desde el controlador incrustado
Los métodos de control ACPI acceden a la información del controlador incrustado mediante la lectura de los valores que se describen en la región de operación del controlador insertado.
Notificación a Windows cuando cambia el estado de la batería (controlador incrustado)
Cuando el controlador incrustado detecta un cambio en el estado de la batería, incluido un cambio en el estado de carga o la capacidad restante según lo especificado por _BTP, el controlador incrustado genera una SCI y establece el bit de SCI_EVT bit en el registro de estado del controlador incrustado (EC_SC). El controlador ACPI de Windows, Acpi.sys, se comunica con el controlador incrustado y emite un comando de consulta (QR_EC) para solicitar información específica sobre la notificación que se va a emitir. El controlador incrustado establece un valor de byte correspondiente al método _QXX que se va a ejecutar. Por ejemplo, el controlador incrustado y el firmware ACPI pueden definir el valor 0x33 para que sea una actualización de la información de estado de la batería. Cuando el controlador incrustado establece el valor 0x33 como notificación, Acpi.sys ejecutará el método _QXX. El método _QXX normalmente emite un comando Notify(0x80) en el dispositivo Control Method Battery en el espacio de nombres .
Consumo de energía
Se debe tener especial cuidado en los sistemas modernos en espera para garantizar que se alcancen los objetivos mínimos de duración de la batería para el modo de espera moderno. En los sistemas de espera modernos, la potencia nominal consumida por el controlador insertado para la alimentación y el subsistema de batería debe ser inferior a 5 miliwatts. En los equipos que usan los estados de alimentación tradicionales S3/S4, asegúrese de que el controlador insertado no afecta a los objetivos de duración de la batería. No hay requisitos de energía nominal específicos para los sistemas que usan S3/S4.
Operación ACPI con un subsistema de carga conectado a SPB
Las plataformas también pueden conectar la batería y el subsistema de alimentación conectados al conjunto de chips principal mediante un bus periférico simple (SPB) de bajo consumo, como I²C. En estos diseños, la región de operación GenericSerialBus ACPI se usa para comunicarse entre los métodos de control ACPI y el hardware del subsistema de batería. Conectar el hardware del subsistema de batería a una interrupción GPIO permite ejecutar métodos de control ACPI cuando cambia el estado de la batería.
Cuando la batería y el hardware del subsistema de energía están conectados mediante I²C, el firmware ACPI debe definir lo siguiente:
- Un nodo Device() para el dispositivo del controlador GPIO al que está conectada la interrupción I²C, entre los que se incluyen:
- _HID objeto que describe el identificador de hardware del controlador GPIO.
- _CSR objeto que describe los recursos de interrupción y hardware del controlador GPIO.
- _AEI objeto que asigna una o varias líneas GPIO a la ejecución del método de evento ACPI. Esto permite que los métodos ACPI se ejecuten en respuesta a interrupciones de línea GPIO.
- Un nodo Device() para el controlador I²C al que está conectado el medidor de combustible de la batería y el hardware de carga, entre los que se incluyen:
- _HID y _CSR objetos que describen el identificador de hardware y los recursos del controlador I²C.
- Una región de operación GenericSerialBus dentro del ámbito del dispositivo I²C que describe los registros de comandos virtuales para el dispositivo I²C.
- Definiciones de campo en la región de operación GenericSerialBus. Las definiciones de campo permiten que el código ASL fuera del dispositivo I²C acceda a los registros de comandos virtuales para el dispositivo I²C.
Describir el controlador GPIO y la asignación de líneas GPIO a eventos ACPI permite que los métodos de control para el estado de la batería y la notificación se ejecuten cuando se genera una interrupción GPIO de un dispositivo I²C. Describir la región de operación GenericSerialBus permite que el código ACPI para el estado de la batería se comunique a través del bus I²C y lea los registros y la información del medidor de combustible de la batería y el subsistema de carga.
Acceso a la información de la batería desde el subsistema de carga
El estado de la batería se puede ejecutar mediante métodos de control ACPI enviando y recibiendo comandos sobre el bus I²C al que está conectado el hardware del subsistema de batería. El código del método de control que respalda los métodos de información estática de estado y batería lee y escribe datos de las regiones de operación GenericSerialBus descritas en el espacio de nombres ACPI. El código del método de control puede leer datos del dispositivo de medidor de combustible o información estática sobre la capacidad de la batería y el recuento de ciclo sobre el bus I²C a través de la región de operación GenericSerialBus.
Notificación a Windows cuando cambia el estado de la batería (hardware del subsistema)
El hardware del subsistema de batería puede generar una interrupción cuando cambia el estado o desde una línea GPIO en el silicio principal. La línea GPIO se puede asignar a una ejecución de método de control específica mediante el _AEI objeto bajo el controlador GPIO descrito en ACPI. Cuando se produce la interrupción de GPIO, el subsistema ACPI de Windows ejecuta el método asociado a la línea GPIO específica, que a su vez puede emitir un comando Notify() en el dispositivo Control Method Battery. Esto hace que Windows vuelva a evaluar el estado y los métodos de información estáticos para actualizar el estado de la batería.
Indicadores de potencia y carga
Windows proporciona indicación de la fuente de alimentación y el estado de la batería en el sistema operativo. Esto se presenta al usuario en varios lugares, incluido el icono de la bandeja de batería en el escritorio, en el menú Inicio y directamente en la pantalla Bloqueo.
Windows 8 plataformas también pueden presentar un indicador visible al usuario del estado de carga. En las ilustraciones siguientes se muestran dos ejemplos de interfaz de usuario. El indicador que se usa debe tener poco impacto en el consumo de energía y la experiencia del usuario.
Elementos de interfaz de usuario de carga y energía de Windows
Windows proporciona una indicación de la fuente de alimentación y el estado de carga en tres ubicaciones clave:
- En la pantalla de bloqueo. Se muestra un icono de batería con fuente de alimentación y estado de carga.
- En el indicador de fecha y hora al mantener el puntero sobre el botón Inicio. Se muestra un icono de batería con fuente de alimentación y estado de carga.
- Icono de batería en el escritorio. Se muestra un icono de batería con fuente de alimentación y estado de carga. Hay más información disponible al hacer clic en el icono de batería; esto incluye la capacidad restante, el tiempo estimado restante y los detalles por batería si el sistema tiene varias baterías.
. En el caso de las plataformas modernas compatibles con espera, si el sistema está en S0 y la tapa (si está presente) no está cerrada, Windows ilumina brevemente la pantalla cuando el sistema está conectado al cargador y se aplica la alimentación. Esto permite a los usuarios ver que la plataforma responde a la acción de conectar el cargador.
Indicadores de carga de hardware de plataforma
Los elementos de la interfaz de usuario integrados en Windows abordan los escenarios en los que se ejecuta Windows y la pantalla es visible para el usuario. Sin embargo, estos indicadores en pantalla no son visibles cuando el sistema está apagado, hibernado, en suspensión o en caso contrario, no se está ejecutando.
Una plataforma puede incluir un LED para indicar que la potencia está presente. Es preferible que dicho LED no se coloque en el chasis del sistema. En su lugar, el LED debe estar en el ladrillo de alimentación, el cable de alimentación o el conector de alimentación. Opcionalmente, este LED también puede indicar el estado de carga al usuario.
Si se proporciona un LED, no debe variar en intensidad o color a lo largo del tiempo ni parpadear, ya que esto presenta una distracción a los usuarios. Sin embargo, puede cambiar el color para indicar el estado del cargo; por ejemplo, amarillo al cargar, verde cuando se carga por completo o rojo cuando se produce un error.
Capacidad de la batería de reserva de reloj en tiempo real
Mantener un tiempo preciso es esencial para ofrecer una excelente experiencia de usuario. Además, se requiere un tiempo preciso para conectarse a servicios como Microsoft Store. Todos los sistemas Windows deben mantener un tiempo preciso durante un período de al menos cuatro semanas, incluso cuando está desactivado. Normalmente, esto se hace mediante el empleo de una batería de copia de seguridad independiente para mantener el reloj en tiempo real (RTC). Esto no siempre es posible o práctico en factores de forma altamente portátiles.
Los diseñadores del sistema pueden usar una batería dedicada o reservar una parte de la batería principal del sistema. Dados los requisitos de potencia modestos del RTC, un umbral de reserva relativamente bajo proporcionará garantías que coinciden con las baterías de copia de seguridad dedicadas que existen en los equipos actuales.
Directrices de diseño
OSPM proporciona un método para que los diseñadores del sistema invaliden el evento de batería crítica del sistema operativo Windows. Cuando la batería llega a un nivel crítico (en miliwatt-hours), tal y como se define en el método _BIX (Información extendida de batería – Capacidad de diseño para bajo) en la implementación de la batería del método de control, el firmware emite un comando Notify al sistema operativo. En ese momento, Windows realizará un apagado de emergencia o hibernará para conservar el estado del sistema.
Todos los diseños deben cumplir los siguientes requisitos:
- La capacidad de diseño para bajo en el método _BIX debe establecerse en al menos 675 miliwatt-hours de la capacidad de diseño completa (además de la capacidad necesaria para realizar la acción crítica de forma confiable).
- La capacidad de reserva anterior debe ser inferior al cuatro por ciento de la capacidad de diseño completa.
Rendimiento de carga
El tiempo necesario para cargar completamente la batería del sistema es una preocupación para el usuario. Muchos sistemas se cobran durante la noche o durante otros períodos cuando el usuario no interactúa con el sistema. Sin embargo, cuando la batería está completamente purgada y el usuario quiere usar el sistema de forma portátil, el rendimiento de carga es un problema principal.
Windows recomienda que todas las plataformas sean capaces de cargar la batería del sistema del 5 por ciento al 90 por ciento en cuatro horas o menos cuando el sistema se arranque y en espera moderno con la pantalla apagada.
Los diseñadores del sistema deben prestar especial atención a la tarifa de cargos de los sistemas que admiten la carga basada en bus serie universal (USB). Es posible que los sistemas que tienen carga USB solo y una gran capacidad de batería no cumplan las expectativas del cliente para el rendimiento de carga.
Si la carga USB es necesaria en plataformas con una gran capacidad de batería (más de 30 vatios), el diseñador del sistema también debe proporcionar una entrada dc de alta potencia y agrupar un cargador de CC de alta potencia con el sistema. Esto también permite cargar la batería de la plataforma durante el uso interactivo, lo que podría ser imposible dada la baja potencia de entrada y el alto consumo de energía de una plataforma solo de carga USB con una gran capacidad de batería.