다음을 통해 공유


배터리 및 전원 하위 시스템 하드웨어 디자인

Windows 8 시스템 하드웨어 디자이너는 Windows 플랫폼의 배터리 및 전원 하위 시스템에 대해 두 가지 하드웨어 토폴로지 중에서 선택할 수 있습니다.

하드웨어 토폴로지

일반적으로 Windows는 전원 및 충전 하위 시스템에 대해 두 가지 하드웨어 토폴로지 중 하나를 예상합니다.

첫 번째 토폴로지는 다음 블록 다이어그램에 나와 있습니다. Windows 7을 실행하는 PC에서 흔히 볼 수 있는 이 토폴로지는 플랫폼의 포함된 컨트롤러를 사용합니다. 포함된 컨트롤러는 일반적으로 전원 제어, 배터리 충전 관리, 전원 단추/스위치 감지, PS/2 호환 키보드 및 마우스 입력을 포함하여 모바일 Windows PC에서 여러 기능을 수행합니다. 포함된 컨트롤러는 일반적으로 LPC(낮은 핀 수) 버스를 통해 코어 실리콘에 연결됩니다. Windows는 ACPI 임베디드 컨트롤러 인터페이스를 통해 전원 하위 시스템 정보를 쿼리하고 이에 대한 알림을 받습니다.

Windows 7에서 일반적인 토폴로지

두 번째 토폴로지는 다음 블록 다이어그램에 나와 있습니다. 이 토폴로지는 I²C와 같은 간단한 주변 버스를 통해 플랫폼의 핵심 실리콘에 직접 연결되는 배터리 충전 컨트롤러 및 연료 계기 구성 요소를 사용합니다. 이 구성에서 Windows는 I²C 버스를 통한 통신을 통해 전원 하위 시스템 변경을 쿼리하고 이에 대한 알림을 받습니다. SPB(간단한 주변기기 버스) 작업 영역을 사용하면 펌웨어의 ACPI 제어 방법 코드가 I²C 버스를 통해 코어 실리콘에 연결된 배터리 충전 컨트롤러 및 연료 계기 구성 요소와 통신할 수 있습니다.

배터리 충전 컨트롤러 및 연료 게이지

포함된 컨트롤러를 사용하는 ACPI 작업

일반적인 플랫폼 포함된 컨트롤러에 연결된 배터리 및 전원 하위 시스템이 있는 플랫폼은 ACPI 포함된 컨트롤러 작업 영역을 사용하여 ACPI 제어 방법 환경과 플랫폼 하드웨어 간의 통신을 용이하게 합니다.

ACPI 펌웨어는 ACPI 네임스페이스에 포함된 컨트롤러를 정의해야 합니다. 이 정의에는 다음이 포함됩니다.

  • 포함된 컨트롤러에 대한 Device() 노드.
  • 장치가 포함된 컨트롤러임을 나타내는 _HID 개체.
  • 포함된 컨트롤러의 I/O 리소스를 나타내는 _CRS 개체.
  • 포함된 컨트롤러에 대한 SCI를 정의하는 _GPE 개체.
  • 포함된 컨트롤러 내에 포함된 정보를 설명하는 작업 영역. 배터리 상태 및 정보 메서드를 포함하여 네임스페이스의 다른 ACPI 제어 메서드 코드에서 액세스할 수 있습니다.

자세한 내용은 ACPI 5.0 사양에서 섹션 12.11, "ACPI 네임스페이스에서 포함된 컨트롤러 장치 정의"를 참조하세요.

포함된 컨트롤러에서 배터리 정보에 액세스

ACPI 제어 메서드는 포함된 컨트롤러의 작업 영역에 설명된 값을 읽어 포함된 컨트롤러의 정보에 액세스합니다.

배터리 상태가 변경되면 Windows에 알리기(내장 컨트롤러)

포함된 컨트롤러가 충전 상태 또는 _BTP에 의해 지정된 남은 용량 변화를 포함하여 배터리 상태의 변화를 감지하면 포함된 컨트롤러는 SCI를 생성하고 포함된 컨트롤러 상태 명령(EC_SC) 레지스터에 SCI_EVT 비트를 설정합니다. Acpi.sys Windows ACPI 드라이버는 포함된 컨트롤러와 통신하고 쿼리 명령(QR_EC)을 실행하여 전송될 알림에 대한 특정 정보를 요청합니다. 포함된 컨트롤러는 실행할 _QXX 메서드에 해당하는 바이트 값을 설정합니다. 예를 들어 포함된 컨트롤러 및 ACPI 펌웨어는 배터리 상태 정보에 대한 업데이트로 0x33 값을 정의할 수 있습니다. 포함된 컨트롤러가 0x33 값을 알림으로 설정하면 Acpi.sys는 _QXX 메서드를 실행합니다. _QXX 메서드는 일반적으로 네임스페이스의 제어 메서드 배터리 장치에서 Notify(0x80) 명령을 실행합니다.

전력 소비

최신 대기 상태에 대한 최소 배터리 수명 목표를 달성하려면 최신 대기 상태 시스템에서 특별한 주의를 기울여야 합니다. 최신 대기 상태 시스템에서 포함된 컨트롤러가 전원 및 배터리 하위 시스템에 대해 사용하는 명목 전력은 5밀리와트 미만이어야 합니다. 기존 S3/S4 전원 상태를 사용하는 PC의 경우, 포함된 컨트롤러가 배터리 수명 목표에 영향을 주지 않도록 합니다. S3/S4를 사용하는 시스템에는 명목상 전원 요구 사항이 없습니다.

SPB에 연결된 충전 하위 시스템을 사용하는 ACPI 작업

플랫폼은 I²C와 같은 저전력 단순 SPB(주변 버스)를 사용하여 코어 칩셋에 연결된 배터리 및 전원 하위 시스템을 연결할 수도 있습니다. 이러한 디자인에서 ACPI 제어 방법과 배터리 하위 시스템 하드웨어 간에 통신하는 데 ACPI GenericSerialBus 작업 영역이 사용됩니다. 배터리 하위 시스템 하드웨어를 GPIO 인터럽트에 연결하면 배터리 상태가 변경될 때 ACPI 제어 방법을 실행할 수 있습니다.

I²C를 사용하여 배터리 및 전원 하위 시스템 하드웨어를 연결하는 경우 ACPI 펌웨어는 다음을 정의해야 합니다.

  • 다음을 포함하여, I²C 인터럽트가 연결된 GPIO 컨트롤러 장치에 대한 Device() 노드.
    • GPIO 컨트롤러의 하드웨어 ID를 설명하는 _HID 개체.
    • GPIO 컨트롤러의 인터럽트 및 하드웨어 리소스를 설명하는 _CSR 개체.
    • 하나 이상의 GPIO 라인을 ACPI 이벤트 메서드 실행에 매핑하는 _AEI 개체. 이렇게 하면 GPIO 라인 중단에 대한 응답으로 ACPI 메서드를 실행할 수 있습니다.
  • 다음을 포함하여, 배터리 연료 게이지와 충전 하드웨어가 연결된 I²C 컨트롤러에 대한 Device() 노드:
    • I²C 컨트롤러의 하드웨어 ID 및 리소스를 설명하는 _HID 및 _CSR 개체.
    • SPB 장치에 대한 가상 명령 레지스터를 설명하는 SPB 장치 범위 내의 GenericSerialBus 작업 영역.
    • GenericSerialBus 작업 영역 내의 필드 정의. 필드 정의를 사용하면 SPB 장치 외부의 ASL 코드에서 SPB 장치의 가상 명령 레지스터에 액세스할 수 있습니다.

GPIO 컨트롤러를 설명하고 GPIO 라인을 ACPI 이벤트에 매핑하면 I²C 장치에서 GPIO 인터럽트가 제기되는 경우 배터리 상태 및 알림에 대한 제어 방법을 실행할 수 있습니다. GenericSerialBus 작업 영역을 설명하면 배터리 상태에 대한 ACPI 코드가 I²C 버스를 통해 통신하고 배터리 연료 게이지 및 충전 하위 시스템의 레지스터 및 정보를 읽을 수 있습니다.

충전 하위 시스템의 배터리 정보 액세스

배터리 상태는 배터리 하위 시스템 하드웨어가 연결되어 있는 I²C 버스를 통해 명령을 주고받아 ACPI 제어 방법으로 실행할 수 있습니다. 상태 및 배터리 정적 정보 메서드를 지원하는 제어 메서드 코드는 ACPI 네임스페이스에 설명된 GenericSerialBus 작업 영역에서 데이터를 읽고 씁니다. 제어 방법 코드는 연료 게이지 장치에서 데이터를 읽거나 GenericSerialBus 작업 영역을 통해 I²C 버스의 배터리 용량 및 주기 수에 대한 정적 정보를 읽을 수 있습니다.

배터리 상태가 변경되면 Windows에 알리기(하위 시스템 하드웨어)

배터리 하위 시스템 하드웨어는 상태가 변경되거나 코어 실리콘의 GPIO 라인에서 인터럽트를 생성할 수 있습니다. GPIO 라인은 ACPI에 설명된 GPIO 컨트롤러 아래의 _AEI 개체를 사용하여 특정 제어 메서드 실행에 매핑할 수 있습니다. GPIO 인터럽트 발생 시 Windows ACPI 하위 시스템은 특정 GPIO 라인과 연결된 메서드를 실행합니다. 그러면 제어 방법 배터리 장치에서 Notify() 명령을 실행할 수 있습니다. 그 결과로 Windows가 상태 및 정적 정보 방법을 다시 평가하여 배터리 상태를 업데이트합니다.

전원 및 충전 표시기

Windows는 운영 체제의 전원 및 배터리 상태를 보여줍니다. 이는 바탕 화면의 배터리 트레이 아이콘, 시작 메뉴에서, 그리고 잠금 화면에서 바로 표시되는 등 여러 위치에서 사용자에게 표시됩니다.

Windows 8 플랫폼은 사용자에게 충전 상태 표시기를 표시할 수도 있습니다. 다음 그림에서는 두 가지 UI 예제를 보여줍니다. 사용되는 지표는 전력 소비 및 사용자 환경에 거의 영향을 미치지 않아야 합니다.

Windows 전원 및 충전 사용자 인터페이스 요소

Windows는 세 가지 주요 위치에서 전원 및 충전 상태를 보여줍니다.

  • 잠금 화면. 전원 및 충전 상태가 있는 배터리 아이콘이 표시됩니다.
  • 시작 단추를 마우스로 가리킬 때 시간 및 날짜 표시기. 전원 및 충전 상태가 있는 배터리 아이콘이 표시됩니다.
  • 바탕 화면의 배터리 아이콘. 전원 및 충전 상태가 있는 배터리 아이콘이 표시됩니다. 배터리 아이콘을 클릭하면 남은 용량, 남은 예상 시간 및 시스템에 여러 배터리가 있는 경우 배터리별 세부 정보를 포함하여 자세한 정보를 확인할 수 있습니다.

. 최신 대기 상태가 가능한 플랫폼의 경우 시스템이 S0에 있고 뚜껑(있는 경우)이 닫혀 있지 않으면 Windows는 시스템이 충전기 및 전원에 연결될 때 디스플레이에 잠시 불빛이 깜박입니다. 이렇게 하면 사용자는 플랫폼이 충전기 연결 작업에 응답하는 것을 볼 수 있습니다.

플랫폼 하드웨어 충전 표시기

Windows에서 기본 제공되는 사용자 인터페이스 요소는 Windows가 실행 중이고 사용자에게 디스플레이가 표시되는 시나리오를 다룹니다. 그러나 시스템이 종료되거나, 최대 절전 모드이거나, 절전 모드이거나, 실행되지 않을 때는 이러한 화면 표시기가 표시되지 않습니다.

플랫폼에는 전원에 연결된 것을 나타내는 LED가 포함될 수 있습니다. 이러한 LED는 시스템 섀시에 배치하지 않는 것이 좋습니다. 대신 LED는 전원 브릭, 전원 케이블 또는 전원 커넥터에 있어야 합니다. 필요에 따라 이 LED는 사용자에게 충전 상태를 나타낼 수도 있습니다.

LED가 제공되는 경우 사용자에게 방해가 되므로 시간이 지남에 따라 빛의 세기 또는 색상이 달라지거나 깜박이지 않아야 합니다. 그러나 충전 상태를 나타내기 위해 색을 변경할 수 있습니다. 예를 들어, 충전 중에는 노란색, 완전히 충전되면 녹색, 오류가 발생할 때 빨간색이 될 수 있습니다.

실시간 클록 예약 배터리 용량

정확한 시간을 유지하는 것은 훌륭한 사용자 환경을 제공하는 데 필수적입니다. 또한 Microsoft Store와 같은 서비스에 연결하려면 시간이 정확해야 합니다. 모든 Windows 시스템은 꺼져 있는 경우에도 최소 4주 동안 정확한 시간을 유지해야 합니다. 일반적으로 이 작업은 RTC(실시간 시계)를 유지하기 위해 별도의 백업 배터리를 사용하여 수행됩니다. 매우 높은 이동성을 가진 폼 팩터에서는 항상 가능하거나 실용적이지는 않습니다.

시스템 디자이너는 전용 배터리를 사용하거나 주 시스템 배터리의 일부를 예약할 수 있습니다. RTC의 적당한 전력 요구 사항을 가정할 때, 상대적으로 낮은 예약 임계값은 오늘날의 PC에 존재하는 전용 백업 배터리와 일치하는 수준의 보장을 제공합니다.

디자인 지침

OSPM은 시스템 디자이너가 Windows OS 위험 배터리 이벤트를 재정의하는 방법을 제공합니다. 배터리가 제어 방법 배터리 구현의 _BIX(배터리 정보 확장 – 낮은 용량 디자인) 메서드에 정의된 대로 위험한 수준(밀리와트시)에 도달하면 펌웨어는 OS에 알림 명령을 발행합니다. 이 시점에서 Windows는 시스템 상태를 유지하기 위해 비상 종료 또는 최대 절전 모드를 수행합니다.

모든 설계는 다음과 같은 요구 사항을 충족해야 합니다.

  • _BIX 메서드의 낮은 디자인 용량은 전체 디자인 용량의 675밀리와트시 이상으로 설정해야 합니다(중요한 작업을 안정적으로 수행하는 데 필요한 용량에 더해).
  • 위의 예약 용량은 전체 디자인 용량의 4% 미만이어야 합니다.

충전 성능

시스템 배터리를 완전히 충전하는 데 필요한 시간은 사용자에게 중요한 부분입니다. 많은 시스템은 사용자가 시스템과 상호 작용하지 않는 밤 시간 또는 다른 기간 동안 충전됩니다. 그러나 배터리가 완전히 방전되고 사용자가 이동 중에 시스템을 사용하려는 경우 충전 성능은 중요한 요소가 됩니다.

Windows는 시스템이 부팅될 때 화면이 꺼진 최신 대기 상태에서 모든 플랫폼이 5%에서 90%까지 4시간 이내에 시스템 배터리를 충전할 수 있도록 권장합니다.

시스템 디자이너는 USB(유니버설 직렬 버스) 기반 충전만 지원하는 시스템의 충전에 특별한 주의를 기울여야 합니다. USB 충전만 있고 배터리 용량이 큰 시스템은 충전 성능에 대한 고객의 기대에 미치지 못할 수 있습니다.

배터리 용량이 30와트보다 큰 플랫폼에서 USB 충전이 필요한 경우 시스템 디자이너는 고성능 DC 입력을 제공하고 시스템에 고속 DC 충전기를 번들로 함께 제공해야 합니다. 이렇게 하면 대화형 사용 중에 플랫폼 배터리를 충전할 수도 있습니다. 그렇지 않으면 배터리 용량이 큰 USB 충전 전용 플랫폼의 낮은 입력 전력과 높은 전력 소비를 감안할 때 불가능할 수 있습니다.