다음을 통해 공유


최신 대기 상태 플랫폼을 위한 Wi-Fi 전원 관리

최신 대기 상태 전원 모델을 구현하는 Windows 하드웨어 플랫폼에서 Wi-Fi 장치는 플랫폼이 최신 대기 전원 상태에 있는 동안 네트워크에 연결된 상태로 유지됩니다. 긴 배터리 수명을 위해서는 최신 대기 상태 중에, 그리고 디스플레이가 켜져 있을 때 Wi-Fi 장치의 올바른 전원 관리가 아주 중요합니다.

Wi-Fi 컴퓨터 시스템, 장치 및 인터넷 간의 대기 시간이 짧은 고대역폭 통신을 가능하게 하는 유비쿼터스 중거리 무선 기술입니다.

최신 대기를 지원하는 모든 Windows 하드웨어 플랫폼에는 Wi-Fi 장치 또는 MBB(모바일 광대역) 장치가 장착되어 있어야 합니다. Wi-Fi 통합은 더 일반적이고 광범위하기 때문에 Wi-Fi 장치가 거의 항상 사용하도록 설정되고 연결될 것으로 예상됩니다.

개요

최신 대기 플랫폼의 Wi-Fi 장치는 장치와 플랫폼 전체의 전력 소비를 줄이기 위해 몇 가지 주요 전원 관리 기능을 지원해야 합니다.

절전 모드라고 하는 첫 번째 기능을 사용하면 Wi-Fi 장치가 액세스 지점에 연결된 상태로 유지되는 동안 전원 소비를 줄일 수 있습니다. 절전 모드는 데이터 전송 대기 시간이 늘어나면 전력 소비를 줄입니다. 대기 시간이 짧은 연결(예: VOIP 호출)이 필요한 경우를 제외하고 플랫폼이 배터리 전원으로 실행되는 경우 전원 절약 모드는 항상 사용하도록 설정되어야 합니다. 자세한 내용은 Wi-Fi 자동 절전 모드를 참조하세요.

두 번째 주요 전원 관리 기능은 패턴 일치 절전 모드 해제입니다. 이 기능을 사용하면 Windows는 Wi-Fi 장치가 저장된 패턴과 일치하는 네트워크 패킷 감지 시 Wi-Fi 장치가 SoC(System on a Chip)를 절전 모드에서 해제할 준비가 되도록 할 수 있습니다. 패턴 일치 절전 모드 해제는 최신 대기 중에만 작동합니다. 패턴 일치 절전 모드 해제를 사용하는 동안 Wi-Fi 장치는 매우 낮은 전원 모드에서 작동하며 특정 시스템 서비스 또는 등록된 애플리케이션(예: 푸시 알림 및 전자 메일)으로 향하는 들어오는 데이터를 수신 대기합니다. 한편 하드웨어 플랫폼의 다른 구성 요소는 저전력 상태입니다. 자세한 내용은 네트워크 절전 모드 해제 이벤트를 참조하세요.

또한 최신 대기 플랫폼의 Wi-Fi 장치는 다음 런타임 전원 관리 기능을 지원해야 합니다.

이 문서에서는 SDIO(Secure Digital Input/output) 또는 PCI Express(PCIe) 버스를 통해 SoC에 연결되거나 SoC 자체에 물리적으로 통합된 최신 대기 플랫폼의 Wi-Fi 장치에 대한 설계 지침을 제공합니다. Microsoft는 최신 대기 플랫폼에서 USB(유니버설 직렬 버스)를 통해 연결하는 Wi-Fi 장치를 테스트하지 않았으며 이러한 장치에 대한 설계 지침을 게시하지 않았습니다.

Wi-Fi 장치는 Wi-Fi 장치 공급업체가 제공하는 Wi-Fi 미니포트 드라이버에 의해 관리됩니다. Windows는 절전 모드 및 패턴 일치 절전 모드를 구성하기 위해 장치에 전원 관리 요청(NDIS OID)을 발급합니다. Windows는 플랫폼이 최신 대기 모드에 진입하고 나갈 때 패턴 일치 절전 모드 해제를 사용 설정 및 사용하지 않도록 설정합니다. Wi-Fi 미니포트 드라이버는 SDIO, PCIe 또는 소유 SoC 버스를 통해 Wi-Fi 장치를 구성하여 이러한 요청을 처리합니다.

최신 대기 플랫폼의 Wi-Fi 장치는 거의 항상 전원이 켜지고 전력 효율이 높을 것으로 예상됩니다. Wi-Fi 링크를 통해 데이터를 전송하지 않고 절전 모드를 사용하는 경우 Wi-Fi 장치는 평균 10밀리와트 미만을 사용해야 합니다. 사용자가 비행기 모드를 사용하도록 설정하거나 Windows 설정 애플리케이션에서 Wi-Fi를 명시적으로 해제하여 라디오 켜짐/꺼짐 상태를 꺼짐으로 설정한 경우 Wi-Fi 장치는 평균 1밀리와트 미만을 사용해야 합니다.

장치 전원 관리 모드

Wi-Fi 장치는 여러 전원 관리 모드를 지원해야 합니다. 각 모드는 장치 활동, 네트워크 연결 및 패턴 일치 절전 모드 해제의 사용을 조합한 것입니다.

활성

Wi-Fi 장치는 네트워크에 연결되어 있으며 데이터를 적극적으로 전송하고 있습니다.

전환 메커니즘: Wi-Fi 장치 하드웨어는 연결된 유휴 모드에서 활성 모드로 자율적으로 전환됩니다.

연결된 유휴 상태

Wi-Fi 장치가 네트워크에 연결되어 있지만 데이터를 적극적으로 전송하지는 않습니다.

전환 메커니즘:

  • Wi-Fi 장치 하드웨어는 연결된 유휴 모드에서 활성 모드로 자율적으로 전환됩니다.
  • 활성 모드에서 장치의 전력 소비는 무선 기술(즉, 802.11a/b/g/n), 액세스 지점까지의 거리, 전송되는 데이터의 수량 등의 요인이 될 것입니다.
연결된 절전 모드

Wi-Fi 장치는 액세스 지점에 연결되어 있지만 플랫폼의 나머지 부분은 전력이 매우 낮은 상태입니다. 패턴 일치 절전 모드 해제가 사용 설정되어, 수신되는 특정 네트워크 패킷 집합에서 Wi-Fi 장치가 SoC를 절전 모드에서 해제합니다.

전환 메커니즘:

  • Wi-Fi 장치가 D0을 벗어나기 전에 NDIS는 OID_PM_ADD_WOL_PATTERN 요청을 보내 Wi-Fi 미니포트 드라이버에 wake-on-LAN 패턴을 추가하도록 지시합니다.
  • Wi-Fi 미니포트 드라이버에서 패턴 일치 절전 모드 해제를 사용 설정하도록 지시하기 위해, NDIS는 OID_PM_PARAMETERS 요청을 보냅니다.
  • NDIS는 NDIS_DEVICE_POWER_STATE 값이 NdisDeviceStateD2(SDIO의 경우) 또는 NdisDeviceStateD3(PCIe의 경우)인 OID_PNP_SET_POWER 요청을 보냅니다.
연결이 끊어진 절전 모드

기본 설정 액세스 지점이 범위 내에 없기 때문에 Wi-Fi 장치는 전원이 공급되지만 액세스 지점에 연결되지 않습니다. 플랫폼의 나머지 부분에서는 전력 상태가 매우 낮습니다. 패턴 일치 절전 모드 해제가 사용 설정되고 네트워크 오프로드 목록이 Wi-Fi 장치로 연결됩니다. Wi-Fi 장치는 네트워크 오프로드 목록을 사용하여 연결할 기본 설정 네트워크를 주기적으로 검색합니다.

전환 메커니즘:

  • Wi-Fi 장치는 네트워크 오프로드 목록을 사용하여 연결할 기본 설정 네트워크를 주기적으로 검색합니다.
  • 이러한 정기적인 검사 중에 일치하는 네트워크가 발견되면 Wi-Fi 장치는 SoC를 절전 모드에서 해제합니다.
라디오 꺼짐

Wi-Fi 장치에는 여전히 전원이 적용되어 있지만 라디오(RF 구성 요소)의 전원이 꺼져 있습니다.

전환 메커니즘:

  • D0에 있는 동안 NDIS는 값이 FALSE인 OID_DOT11_NIC_POWER_STATE 요청을 보내 라디오 전원을 꺼야 함을 나타냅니다.
장치 전원이 꺼짐

Wi-Fi 장치가 완전히 전원이 꺼졌습니다.

전환 메커니즘:

  • NDIS는 NDIS_DEVICE_POWER_STATE 값이 NdisDeviceStateD3인 OID_PNP_SET_POWER 요청을 보냅니다.
  • Wi-Fi 장치가 SDIO 또는 PCIe에 연결된 경우 시스템 ACPI 펌웨어는 SoC에서 Wi-Fi 장치로 GPIO 라인을 사용하여 Wi-Fi 장치에서 전원을 제거하거나 다시 설정합니다.
  • Wi-Fi 장치가 SoC에 통합된 경우 시스템 펌웨어는 독점 메커니즘을 사용하여 Wi-Fi 장치의 전원을 끄거나 다시 설정해야 합니다.

평균 전력 소비 및 종료 대기 시간

다음 표에서는 각 전원 관리 모드에 대해 활성 상태로 종료될 때 예상되는 전원 사용량 및 대기 시간을 보여 냅니다. 이러한 수치의 경우 연결이 끊어진 절전 모드 및 전원 제거 모드를 제외하고 Wi-Fi 장치가 WPA2-Personal 보안이 있는 단일 액세스 지점에 지속적으로 연결되어 있다고 가정합니다.


런타임 장치 전원 관리 장치 전원 상태 평균 전력 소비량 활성으로 대기 시간 종료
활성 모드 D0 <= 750밀리와트 해당 없음
연결된 유휴 모드 D0 <= 25밀리와트 <= 100밀리초
연결된 절전 모드 SDIO에 대해 D2, PCIe에 대해 D3 <= 10밀리와트 <= 300밀리초
연결이 끊어진 절전 모드 SDIO에 대해 D2, PCIe에 대해 D3 <= 10밀리와트 <= 300밀리초
라디오 꺼짐 모드 D0 또는 D2 <= 1밀리와트 <= 2초
전원이 제거된 모드(절전 모드 해제가 비활성화됨) D3 <= 1밀리와트 <= 5초

SDIO 연결 장치의 경우 D2는 최신 대기에 대해 절전 모드 해제가 가능한 가장 깊은 장치 전원 상태입니다. PCIe 연결 장치의 경우 D3(더 구체적으로는 D3hot 하위 상태)는 최신 대기에 대해 가장 깊은 절전 모드에서 해제 가능한 장치 전원 상태입니다.

Windows 8, Windows 8.1 및 Windows 10은 SDIO 버스를 통해 연결하는 오프-SoC Wi-Fi 장치에서 최신 대기를 지원합니다. Windows 8.1은 또한 PCIe 버스를 통해 연결하는 오프 SoC Wi-Fi 장치에서 최신 대기를 지원합니다.

Wi-Fi 장치가 회로를 공유하는 경우의 요구 사항

일부 Wi-Fi 장치 설계에서 Wi-Fi 장치는 Bluetooth 및 선택적 FM 무선 통신 장치와 아날로그 및 RF 회로를 공유합니다. 이러한 Wi-Fi 장치 설계에서는 Wi-Fi 장치와 다른 통합 통신 장치 간에 전원 상태 종속성이 없어야 합니다. Wi-Fi 장치에는 무선 절전 모드에서 평균 전력 소비량이 1밀리와트 미만이 되도록 내부 전원 게이팅 회로가 있어야 합니다.

소프트웨어 전원 관리 메커니즘

Wi-Fi 장치의 전원 관리는 주로 Wi-Fi 미니포트 드라이버가 Windows 네트워킹 하위 시스템으로부터 수신하는 NDIS 명령을 기반으로 합니다. Wi-Fi 미니포트 드라이버는 이러한 NDIS 명령(OID 요청이라고 함)을 장치별 메시지로 변환하여 I/O 버스를 통해 Wi-Fi 장치로 전송합니다.

NDIS 드라이버 개발은 Wi-Fi 장치 전원 관리의 범위를 벗어나는 복잡한 작업입니다. 이 섹션을 이해하는 데 도움이 되도록 네이티브 802.11 무선 LAN 항목을 검토하세요. Wi-Fi 개발자인 경우 Windows 하드웨어 인증 키트의 네트워킹 장치 테스트 집합에 익숙해지고, 이러한 테스트를 Wi-Fi 장치와 해당 Wi-Fi 미니포트 드라이버가 올바르게 작동하도록 하기 위한 사실상의 참조로 사용해야 합니다.

최신 대기 플랫폼이 S5(종료) 시스템 전원 상태에 있는 경우를 제외하고 Wi-Fi 장치는 항상 전원이 켜져 있고 네트워크에 연결되어 있어야 합니다. 따라서 최신 대기 상태 중에, 그리고 디스플레이가 켜져 있을 때 Wi-Fi 장치의 올바른 전원 관리는 시스템 배터리 수명에 아주 중요합니다. Wi-Fi 장치의 전원 관리 모드는 장치가 소프트웨어 요청에 응답하여 새 네트워크를 검색하거나 장치 자체에서 액세스 지점의 연결이 끊어진 것을 감지할 때 자주 변경될 수 있습니다. 다음 설명에 나와 있는 소프트웨어 전원 관리 메커니즘 및 결과 전력 소비는 Wi-Fi 장치가 합리적인 신호 강도를 가진 단일 액세스 지점에 연결되어 있다고 가정합니다.

Wi-Fi 미니포트 드라이버는 최신 대기 중에, 그리고 디스플레이가 켜져 있는 경우 모두 Wi-Fi 장치의 전력 효율을 보장하기 위해 다음과 같은 주요 전원 관리 기능을 사용하도록 설정해야 합니다.

다음 단락에서는 이러한 두 기능에 대한 요구 사항을 자세히 설명합니다.

절전 모드 및 패턴 일치 절전 모드 외에도, Wi-Fi 장치와 Wi-Fi 미니포트 드라이버는 몇 가지 다른 기능을 지원해야 합니다. 자세한 내용은 Wi-Fi 전원 관리에 대한 기타 요구 사항을 참조하세요.

절전 모드

802.11 사양은 Wi-Fi 네트워크에 대한 Wi-Fi 자동 절전 모드(즉, 절전 폴링)를 설명합니다. 이 모드에서 Wi-Fi 라디오는 브로드캐스트 비콘의 하위 집합에 대한 폴링을 건너뛰어 장치의 평균 전력 소비를 줄입니다. Windows는 장치가 활성(D0), 연결된 유휴 상태(D0) 또는 연결된 절전 모드(SDIO의 경우 D2, PCIe의 경우 D3) 전원 관리 모드에 있을 때 Wi-Fi 장치가 절전 모드를 사용 설정하도록 요구합니다. 절전 모드는 Wi-Fi 장치가 무선 전원 관리 모드에 있을 때 의미가 없습니다.

Wi-Fi 미니포트 드라이버는 Wi-Fi 장치가 다음과 같은 전원 관리 모드에 있을 때 절전 모드를 지원하고 사용하도록 설정해야 합니다.

  • 활성(D0)
  • 연결된 유휴 상태(D0)
  • 연결된 절전 모드(D2/D3)

Wi-Fi 미니포트 드라이버는 DOT11_EXTSTA_ATTRIBUTES 구조체의 bAutoPowerSaveMode 멤버를 TRUE로 설정하여 절전 모드의 자동 협상을 지원하는 것을 Windows에 보고해야 합니다. 이 설정에 대한 응답으로 Windows는 Wi-Fi 미니포트 드라이버에 OID_DOT11_POWER_MGMT_MODE_AUTO_ENABLED 요청을 보냅니다. 이 요청은 절전 모드를 자동으로 사용하도록 드라이버에 지시합니다. Wi-Fi 미니포트 드라이버는 사용하도록 설정할 올바른 절전 수준을 결정하는 데 원격 액세스 지점 및 Wi-Fi 장치 자체의 기능을 사용해야 합니다.

자동 절전 모드를 사용하도록 설정하는 경우 Windows는 Wi-Fi 미니포트 드라이버에 OID_DOT11_POWER_MGMT_REQUEST 요청을 보낼 수 있습니다. 이 메시지는 정의된 4가지 절전 수준 중 하나를 지정합니다. 이 메시지의 절전 수준은 현재 운영 체제 또는 사용자의 절전 기대치에 대해 Wi-Fi 미니포트 드라이버에 도움이 되는 정보로 여겨야 합니다. 드라이버에서 원격 액세스 지점이 절전 모드를 지원한다는 것을 감지할 수 없는 경우 OID_DOT11_POWER_MGMT_REQUEST 요청에서 반환된 값을 사용할 수 있습니다.

패턴 일치 절전 모드 해제

Windows는 최신 대기 플랫폼의 모든 네트워킹 장치가 패턴 일치 절전 모드 해제를 지원하도록 요구합니다. 이 기능을 사용하면 네트워크 장치는 SoC 또는 칩셋이 꺼져 있는 동안 (들어오는 패킷을 장치에 저장된 패턴과 비교하여) 흥미로운 패킷에 대한 네트워크 연결을 모니터링하고, 일치하는 패턴이 감지되었을 때 SoC 또는 칩셋의 주 프로세서를 절전 모드에서 해제할 수 있습니다. 주 프로세서에서 Wi-Fi 처리를 오프로드하는 이 기능은 최신 대기 상태에서 저전력 작동을 달성하는 데 핵심입니다. 플랫폼이 최신 대기로 전환되고 Wi-Fi 장치가 연결된 절전 모드(SDIO에 대해 D2, PCIe에 대해 D3)는 Windows는 Wi-Fi 장치가 감시해야 하는 흥미로운 패턴의 컬렉션을 Wi-Fi 미니포트 드라이버에 보냅니다.

패턴 일치 절전 모드 해제는 최신 대기를 지원하는 핵심 기능입니다. 패턴 일치 절전 모드 해제는 Wi-Fi 장치가 연결된 절전 모드(D2/D3)에 있을 때 사용하도록 설정됩니다. Wi-Fi 장치가 이 모드에 들어가기 전에, Windows는 지정된 패턴 집합과 일치하는 패킷을 제외한 모든 네트워크 패킷을 무시하도록 장치에 지시합니다. Windows는 현재 사용 중인 서비스 및 애플리케이션(예: 푸시 알림 및 전자 메일)을 기반으로 일치하는 패턴을 빌드합니다. Wi-Fi 장치에 패턴 일치를 오프로드하면 나머지 하드웨어 플랫폼을 해제하거나 저전력 모드에서 작동할 수 있습니다. 한편, Wi-Fi 장치는 계속 켜진 상태로 중요한 수신 네트워크 트래픽을 기다립니다.

패턴 일치 절전 모드 해제를 지원하려면 Wi-Fi 미니포트 드라이버는 먼저 연결된 절전 모드(D2/D3) 모드를 지원하고 D2/D3 전원 상태에서 시스템을 해제할 수 있다는 것을 보급해야 합니다. 패턴 일치 절전 모드 해제 지원을 보급하려면 Wi-Fi 미니포트 드라이버는 다음을 수행해야 합니다.

  • NDIS_PM_CAPABILITIES 구조체의 SupportedWoLPacketPatterns 멤버에서 NDIS_PM_WOL_BITMAP_PATTERN 비트를 설정하여 Wi-Fi 장치가 비트맵 패턴 검색에 따라 SoC 절전 모드 해제를 지원한다는 것을 나타냅니다.

  • NDIS_PM_CAPABILITIES 구조체의 MinPatternWakeUp 멤버를 NdisDeviceStateD2(SDIO의 경우) 또는 NdisDeviceStateD3(PCIe의 경우)로 설정하여 장치가 D2/D3 전원 상태이고 일치하는 패턴이 검색될 때 Wi-Fi 장치가 SoC를 절전 모드에서 해제할 수 있다는 것을 나타냅니다.

  • NDIS_PM_CAPABILITIES 구조체의 NumTotalWoLPatterns 멤버를 22진수 이상의 값으로 설정합니다. 이 값은 Windows가 SoC를 절전 모드에서 해제하기 위해 최대 22개 이상의 고유한 일치 패턴으로 Wi-Fi 장치를 프로그래밍할 수 있음을 나타냅니다.

  • NDIS_PM_CAPABILITIES 구조체의 Flags 멤버에서 NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED 비트를 설정합니다. 이 플래그는 Wi-Fi 장치가 SoC를 절전 모드에서 해제하도록 만든 패킷의 스토리지 및 검색이 Wi-Fi 장치에서 지원된다는 것을 나타냅니다.

Windows가 시스템 서비스 또는 호스팅된 애플리케이션에 패턴 일치 절전 모드 해제 지원이 필요한 것을 처음 감지하면 Wi-Fi 미니포트 드라이버에 OID_PM_ADD_WOL_PATTERN 요청을 보내 일치시킬 패턴을 지정합니다. 이 요청은 Wi-Fi 장치가 연결된 절전 모드(D2/D3)로 전환되기 전에 잘 전송됩니다.

패턴 일치 절전 모드 해제를 사용하도록 설정하여 연결된 대기 상태에 진입

하드웨어 플랫폼이 최신 대기 상태가 되면 Windows는 NdisDeviceStateD2(SDIO의 경우) 또는 NdisDeviceStateD3(PCIe의 경우)의 장치 전원 상태를 지정하는 OID_PNP_SET_POWER 요청을 전송하여 Wi-Fi 장치를 연결된 절전 모드(SDIO의 경우 D2, PCIe의 경우 D3)로 전환합니다 이 요청에 대한 응답으로 Wi-Fi 미니포트 드라이버는 다음을 수행해야 합니다.

  1. 기본 버스 드라이버 또는 하드웨어에 새 I/O 요청 전송을 중지합니다. Wi-Fi 장치가 SoC 외부에 있고 SDIO를 통해 연결된 경우 기본 버스 드라이버는 Windows SD 버스 드라이버인 Sdbus.sys가 됩니다. Wi-Fi 장치가 SoC 외부에 있고 PCIe를 통해 연결된 경우 기본 버스 드라이버는 Windows PCI 버스 드라이버인 Pci.sys가 됩니다. Wi-Fi 장치가 SoC에 통합된 경우 SoC 공급업체에서 기본 버스 드라이버를 제공합니다.

  2. 모든 진행 중인 I/O 요청을 기다린 후 대기 중인 모든 I/O 요청을 완료합니다.

  3. 구성된 모든 절전 모드 해제 패턴 및 절전 모드 해제 이벤트에 대해 Wi-Fi 장치를 프로그래밍합니다.

  4. Wi-Fi 장치를 연결된 절전 모드에 대해 올바른 저전력 상태(D2/D3)로 전환합니다.

  5. Wi-Fi 장치가 SoC 외부에 있고 SDIO 버스를 통해 연결된 경우:

    1. 대역 외 GPIO 절전 모드 해제 인터럽트를 사용하여 SoC를 절전 모드에서 해제하도록 Wi-Fi 장치를 구성합니다. (자세한 내용은 지원되는 하드웨어 전원 구성을 참조하세요.)

    2. Wi-Fi 장치 인터럽트 마스크 및 관련된 모든 타이머를 취소합니다. Wi-Fi 미니포트 드라이버는 SdBusSubmitRequest 루틴을 호출하여 SDP_FUNCTION_INT_ENABLE 속성을 FALSE로 설정해야 합니다.

    3. Wi-Fi 장치 인터럽트 전달을 중지하도록 SD 버스 드라이버에 지시합니다. Wi-Fi 미니포트 드라이버는 SdBusSubmitRequest 루틴을 호출하여 SDP_SET_CARD_INTERRUPT_FORWARD 속성을 FALSE로 설정해야 합니다.

    4. NdisDeviceStateD2 상태에 대한 OID_PNP_SET_POWER 요청을 완료합니다.

  6. Wi-Fi 장치가 SoC 외부에 있고 PCIe 버스를 통해 연결된 경우:

    1. PCIe 표준(PM_PME 메시지 사용, 이 내용은 다음 섹션에서 자세히 설명)에 따라 시스템을 절전 모드에서 해제하도록 Wi-Fi 장치를 구성합니다.

    2. Wi-Fi 장치 인터럽트를 마스크합니다. Wi-Fi 미니포트 드라이버는 IoDisconnectInterruptEx 루틴을 호출하여 인터럽트의 연결을 끊어야 합니다.

    3. NdisDeviceStateD3 상태에 대한 OID_PNP_SET_POWER 요청을 완료합니다.

Wi-Fi 장치가 연결된 절전 모드에 있는 경우 장치는 연결된 Wi-Fi 네트워크에 대한 연결을 유지하고, 일치하는 절전 모드 해제 패턴을 확인하고, 네트워크 상태가 변경될 때 SoC를 절전 모드에서 해제해야 합니다. 예를 들어 액세스 지점이 갑자기 연결이 끊어지면 Wi-Fi 장치는 SoC를 절전 모드에서 해제할 수 있어야 합니다.

다음 그림에서는 SoC 외부에 있고 SDIO 버스를 통해 SoC와 통신하는 Wi-Fi 장치를 지원하기 위한 소프트웨어 및 하드웨어 구성 요소의 구성을 보여 줍니다. SDIO를 통해 연결된 Wi-Fi 장치

일치하는 패턴에 대한 최신 대기 종료

Wi-Fi 장치가 일치하는 패턴의 패킷을 검색하는 경우 먼저 이 패킷을 로컬 비휘발성 스토리지에 저장하여 나중에 Wi-Fi 미니포트 드라이버에서 검색해야 합니다. Windows는 적절한 시스템 서비스 또는 애플리케이션이 수신 패킷에 대한 알림을 받을 수 있도록, 드라이버가 패킷에 대한 정보를 검색하도록 합니다.

다음으로, Wi-Fi 장치는 SoC를 절전 모드에서 해제하는 인터럽트를 생성해야 합니다.

Wi-Fi 장치가 SDIO 포트의 SoC 외부에 있는 경우 대역 외 GPIO 인터럽트를 통해 인터럽트를 전달하고 SoC가 절전 모드에서 해제되도록 해야 합니다. 그런 다음 ACPI 하위 시스템은 Wi-Fi 장치에 대한 GPIO 인터럽트로 인해 SoC가 절전 모드에서 해제되었는지 확인하고 NDIS 포트 드라이버가 Wi-Fi 미니포트 드라이버를 대신하여 ACPI 드라이버에서 자동으로 보류 중으로 놔둔 대기-절전 모드 해제 IRP(IRP_MN_WAIT_WAKE 요청)를 완료하여 응답합니다.

Wi-Fi 장치가 PCIe 버스의 SoC 외부에 있고 ACPI 펌웨어가 운영 체제에 네이티브 PCIe 기능을 제어하도록 부여하는 경우 절전 모드 해제 이벤트는 다음 단계를 사용하여 PCIe 사양에 따라 처리됩니다.

  1. Wi-Fi 장치가 저전력 상태로 넘어가면 NDIS 포트 드라이버는 대기-절전 모드 해제 IRP를 Wi-Fi 드라이버 스택 아래로, 받은 편지함 PCI 버스 드라이버인 Pci.sys에 자동으로 보냅니다(ACPI 드라이버인 Acpi.sys 아님). 이는 향후 절전 모드 해제 이벤트를 예상하며 IRP를 보류 중으로 표시합니다.

  2. Wi-Fi 장치가 절전 모드에서 해제되어야 하는 경우 PCIe 계층 구조의 루트에 WAKE 알림을 생성해야 합니다. 이를 위해 장치는 PCIe 버스를 통해 대역 내 PM_PME 메시지를 보냅니다.

  3. 절전 모드 해제 알림은 Wi-Fi 장치 위의 PCIe 계층 구조의 루트 포트로 라우팅됩니다. 루트 포트는 D0 전원 상태이며 받은 편지함 PCI 버스 드라이버 Pci.sys PME 인터럽트(PME 인터럽트)를 생성해야 합니다.

  4. 루트 포트의 PCI 버스 드라이버는 해당 루트 포트 아래에 있는 전체 장치 계층 구조를 D0으로 다시 가져옵니다.

  5. PCI 버스 드라이버는 계층 구조에서 각 장치의 PME_Status 비트를 검사하여 WAKE 알림을 발급했는지 확인합니다. Wi-Fi 장치의 PMEStatus 비트가 설정된 경우 PCI 버스 드라이버는 해당 장치에 대해 보류 중인 미해결 대기-절전 모드 해제 IRP를 완료합니다. 그러면 1단계에서 보류 중인 IRP가 NDIS로 돌아갑니다.

자세한 내용은 Wake on LAN의 저전력을 참조하세요.

Wi-Fi 장치가 SoC에 통합된 경우 장치의 작업은 오프-SoC, SDIO 포트 구현에 대해 설명한 것과 유사합니다. SoC 공급업체는 ACPI 펌웨어의 DSDT 테이블에 있는 장치를 설명해야 합니다. 그런 다음 ACPI 하위 시스템은 Wi-Fi 장치를 열거하고 대기-절전 모드 해제 IRP를 완료합니다. Wi-Fi 장치가 통합된 SoC를 사용하는 시스템 통합업체는 Wi-Fi 장치 통합 및 드라이버 개발을 위해 SoC 공급업체와 긴밀히 협력하는 것이 좋습니다.

대기-절전 모드 해제 IRP가 완료되면 NDIS는 우선 스택 아래로 D0 IRP(DevicePowerState 유형의 IRP_MN_SET_POWER 요청)를 버스 드라이버로 보냅니다. D0 IRP를 완료하기 전에 NDIS는 Wi-Fi 미니포트 드라이버에 목표 상태가 NdisDeviceStateD0인 OID_PNP_SET_POWER 요청을 보냅니다. 이에 대한 응답으로 Wi-Fi 미니포트 드라이버는 다음을 수행해야 합니다.

  1. Wi-Fi 장치 하드웨어를 검사하여 절전 모드 해제의 이유를 확인합니다. Wi-Fi 미니포트 드라이버는 NDIS_STATUS_PM_WAKE_REASON 상태 이벤트를 생성하여 절전 모드 해제 이유를 NDIS에 알려야 합니다. 들어오는 네트워크 패킷으로 인해 절전 모드 해제 인터럽트가 발생하는 경우, 드라이버는 수신한 다른 패킷을 NDIS에 전달하기 전에 일반 NDIS 데이터 경로를 통해 이 패킷을 NDIS에 전달해야 합니다.

  2. Wi-Fi 장치가 연결된 유휴 상태(D0) 모드로 전환하는 데 필요한 레지스터 상태 또는 기타 하드웨어 컨텍스트를 복원합니다.

  3. Wi-Fi 장치가 SoC 외부에 있고 SDIO를 통해 연결된 경우 Wi-Fi 미니포트 드라이버는 다음을 수행해야 합니다.

    1. 인터럽트를 Wi-Fi 미니포트 드라이버에 전달하도록 SD 버스 드라이버에 지시합니다. Wi-Fi 미니포트 드라이버는 SdBusSubmitRequest 루틴을 호출하여 SDP_SET_CARD_INTERRUPT_FORWARD 속성을 TRUE로 설정해야 합니다.

    2. Wi-Fi 장치 인터럽트를 마스크합니다. Wi-Fi 미니포트 드라이버는 SdBusSubmitRequest 루틴을 호출하여 SDP_FUNCTION_INT_ENABLE 속성을 TRUE로 설정해야 합니다.

  4. IRP_MN_SET_POWER 요청을 완료합니다.

패턴 일치 절전 모드 해제 및 저전력 유휴 상태에서 SoC를 절전 모드 해제하는 기능은 최신 대기 중에 네트워크 연결을 유지하는 데 필수적입니다. Wi-Fi 드라이버 개발자는 이러한 필수 기능을 구현하는 Wi-Fi 미니포트 드라이버를 개발하기 위해 Microsoft와 긴밀히 협력해야 합니다.

Wi-Fi 전원 관리를 위한 기타 요구 사항

절전 모드 및 패턴 일치 절전 모드 외에도, Wi-Fi 장치 및 미니포트 드라이버는 최신 대기 플랫폼의 Wi-Fi 장치에 대한 몇 가지 다른 런타임 전원 관리 기능을 지원해야 합니다. 이러한 기능은 Wi-Fi 장치 및 전체 하드웨어 플랫폼에서 전력 소비를 줄이는 데 필수적입니다. 앞에서 설명한 대로 Wi-Fi 장치 및 미니포트 드라이버는 다음 기능을 지원해야 합니다.

라디오 켜기/끄기 상태

Wi-Fi 미니포트 드라이버는 Windows 요청에 응답하여 Wi-Fi 장치의 라디오 켜기/끄기 상태를 변경해야 합니다. 사용자가 비행기 모드를 사용하도록 설정하거나 Windows 설정 애플리케이션에서 Wi-Fi를 명시적으로 해제하여 라디오 켜짐/꺼짐 상태를 꺼짐으로 변경할 수 있습니다.

사용자가 Wi-Fi 장치의 라디오 켜짐/꺼짐 상태를 꺼짐으로 변경하면 Windows는 값이 FALSE인 OID_DOT11_NIC_POWER_STATE 요청을 Wi-Fi 미니포트 드라이버에 보냅니다. 이에 대한 대응으로 Wi-Fi 미니포트 드라이버는 대역 내 메시지를 사용하여 Wi-Fi 장치의 무선(RF 하위 시스템)에서 전원을 제거하고 평균 1밀리와트 이하를 소비하는 전원 상태에 장치를 배치해야 합니다.

사용자가 Wi-Fi 장치의 라디오 켜짐/꺼짐 상태를 켜짐으로 변경하면 Windows는 값이 TRUE인 OID_DOT11_NIC_POWER_STATE 요청을 Wi-Fi 미니포트 드라이버에 보냅니다. 이에 대한 응답으로 Wi-Fi 미니포트 드라이버는 대역 내 메시지를 사용하여 Wi-Fi 장치의 라디오에 전원을 적용하고 장치를 연결된 유휴 상태 전원 모드로 되돌려야 합니다.

Wi-Fi 장치의 라디오 켜짐/꺼짐 상태가 꺼짐으로 설정되면 Wi-Fi 장치는 D0 또는 D2 전원 상태일 수 있습니다. NDIS는 Wi-Fi 미니포트 드라이버에 라디오 켜짐/꺼짐 상태 변경을 알리기 전에 항상 Wi-Fi 장치를 D0 전원 상태로 전환합니다. 사용자가 이전에 라디오 켜짐/꺼짐 상태를 꺼짐으로 설정한 경우 Wi-Fi 미니포트 드라이버는 하드웨어 플랫폼이 최신 대기 상태로 진입할 때 특정 작업을 수행할 필요가 없습니다. 라디오 켜짐/꺼짐 상태가 꺼짐으로 설정된 경우 라디오는 최신 대기 상태로 유지되며, 시스템이 최신 대기를 종료한 후에도 사용자가 상태를 켜짐으로 변경할 때까지 라디오 켜짐/꺼짐 상태가 계속 꺼짐 상태로 유지됩니다.

NLO(네트워크 목록 오프로드)

NLO(네트워크 목록 오프로드) 기능을 사용하면 Wi-Fi 프로필 정보를 Wi-Fi 장치의 로컬 스토리지에 복사할 수 있습니다. Wi-Fi 장치는 모든 액세스 지점에 대해 사용 가능한 모든 채널을 검색하는 대신 이 프로필 정보를 사용하여 제한된 수의 채널에서 기본 설정 네트워크를 검색하여 Wi-Fi 장치에서 사용하는 전원을 줄입니다. 최신 대기 플랫폼의 Wi-Fi 장치 및 Wi-Fi 미니포트 드라이버는 네트워크 목록 오프로드를 지원해야 합니다. 이 지원에는 OID_DOT11_OFFLOAD_NETWORK_LIST 요청 처리가 포함됩니다.

NLO 기능을 보급하려면 Wi-Fi 미니포트 드라이버가 NDIS_PM_CAPABILITIES 구조체의 MediaSpecificWakeUpEvents 멤버에서 NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_SUPPORTED 플래그를 설정해야 합니다.

ARP/NS 오프로드

Wi-Fi 미니포트 드라이버 및 Wi-Fi 장치는 ARP/NS 오프로드를 지원해야 하며, 이를 통해 Wi-Fi 장치가 일반적인 네트워크 요청에 자율적으로 응답할 수 있습니다. ARP/NS 오프로드 기능은 간단하고 예측 가능한 응답이 있는 일반적인 네트워크 요청에 대해 SoC의 절전 모드가 해제되지 않도록 방지합니다. ARP/NS 오프로드에 대한 지원을 나타내려면 Wi-Fi 미니포트 드라이버는 NDIS_PM_CAPABILITIES 구조체의 SupportedProtocolOffloads 멤버에서 NDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED 및 NDIS_PM_PROTOCOL_OFFLOAD_NS_SUPPORTED 플래그를 설정해야 합니다.

또한 Wi-Fi 미니포트 드라이버 및 Wi-Fi 장치는 하나 이상의 IPv4 ARP 오프로드 주소와 두 개 이상의 DIPv6 NS 오프로드 주소를 지원해야 합니다. Wi-Fi 미니포트 드라이버는 NDIS_PM_CAPABILITIES 구조체의 NumArpOffloadIPv4Addresses 멤버를 1 이상의 값으로 설정해야 합니다. Wi-Fi 미니포트 드라이버는 NDIS_PM_CAPABILITIES 구조체의 NumNSOffloadIPv6Addresses 멤버 값을 2 이상의 값으로 설정해야 합니다. Windows는 OID_PM_ADD_PROTOCOL_OFFLOAD 요청을 사용하여 ARP 및 NS 오프로드 주소를 Wi-Fi 미니포트 드라이버에 제공합니다.

D0 패킷 병합

Wi-Fi 장치 및 Wi-Fi 미니포트 드라이버는 D0 패킷 병합을 지원해야 합니다. 이 기능은 Wi-Fi 장치가 SoC에서 일괄 처리된 검색을 위해 우선 순위가 낮은 일반 네트워크 패킷을 일괄 처리할 수 있도록 하는 기능입니다. 이 기능은 코어 칩셋 인터럽트의 전반적인 양과 빈도를 줄여 SoC가 저전력 상태에서 더 오래 유지되어 배터리 수명을 연장할 수 있도록 합니다. Wi-Fi 미니포트 드라이버는 NDIS_RECEIVE_FILTER_CAPABILITIES 구조에서 여러 값을 설정하여 D0 패킷 병합에 대한 지원을 보급합니다.

다음 멤버 목록에는 Wi-Fi 장치가 지원해야 하고 Wi-Fi 미니포트 드라이버가 보고하는 데 필요한 D0 패킷 병합 기능이 요약되어 있습니다. Wi-Fi 미니포트 드라이버는 NDIS_RECEIVE_FILTER_CAPABILITIES 구조에서 이러한 기능을 지정해야 합니다. 각 멤버에 대해, 이 구조체의 특정 멤버에 필요한 최소값이 목록에 나와 있습니다. NDIS는 패킷 병합 필터를 설정하기 위해 Wi-Fi 미니포트 드라이버에 OID_RECEIVE_FILTER_SET_FILTER 요청을 보냅니다. 패킷 병합 필터는 Wi-Fi 장치의 병합 버퍼에서 일괄 처리해야 하는 패킷을 나타냅니다.

SupportedQueueProperties

NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE

참고   이 플래그는 하드웨어 기능을 나타내기 위해 항상 HardwareReceiveFilterCapabilities에 있어야 합니다. 이 플래그는 *PacketCoalescing 고급 키워드가 0이 아닌 경우에만 CurrentReceiveFilterCapabilities에 있어야 합니다.
EnabledFilterTypes, 최소값:

NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED

SupportedFilterTests, 최소값:

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED

SupportedHeaders, 최소값:

NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED
NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED
NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED
NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED
NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED

SupportedMacHeaderFields, 최소값:

NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED
NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED
NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED

SupportedARPHeaderFields, 최소값:

NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED
NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED
NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED

SupportedIPv4HeaderFields, 최소값:

NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED

SupportedIPv6HeaderFields, 최소값:

NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED

SupportedUdpHeaderFields, 최소값:

NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED

MaxFieldTestsPerPacketCoalescingFilter, 최소값:

5

MaxPacketCoalescingFilters, 최소값:

10

NDIS는 이러한 필터가 더 이상 필요하지 않은 경우 이전에 설정된 패킷 병합 필터를 지우기 위해 OID_RECEIVE_FILTER_CLEAR_FILTER 요청을 보냅니다. NDIS는 개별 패킷 병합 필터를 동적으로 설정하고 지울 수 있습니다. Wi-Fi 미니포트 드라이버는 항상 현재 패킷 병합 필터 집합을 추적해야 하지만 Wi-Fi 장치가 D0 전원 상태(활성 모드 또는 연결된 유휴 모드)에 있는 경우에만 병합을 적용할 수 있습니다.

동적 DTIM 구성

Wi-Fi 미니포트 드라이버는 DTIM(배달 트래픽 표시 메시지) 간격의 동적 구성을 지원해야 합니다. 연결된 절전 모드(SDIO의 경우 D2, PCIe의 경우 D3) 동안 DTIM 간격을 더 큰 값으로 동적으로 조정하면 Wi-Fi 장치가 액세스 지점에 대한 연결을 지속적으로 유지하면서 거의 전력을 소비하지 않습니다. DTIM 간격이 길어지는 추가 대기 시간은 연결된 절전 모드(D2/D3) 모드에서 중요하지 않습니다.

Wi-Fi 미니포트 드라이버는 다음 지침을 구현하여 동적 DTIM 간격을 지원해야 합니다.

  • (STA 모드에 있는) Wi-Fi 장치는 액세스 지점에 수신 대기 간격 값으로 10을 보급해야 합니다. 이 값은 액세스 지점이 10개의 비콘 간격 동안 Wi-Fi 클라이언트에 대한 데이터를 캐시하도록 합니다.

  • Wi-Fi 장치가 연결된 절전 모드(D2/D3) 모드로 전환되도록 준비하려면 드라이버가 DTIM 간격의 길이를 약 500밀리초로 변경해야 합니다. 지정할 DTIM 값은 TIM(일반 트래픽 표시 메시지)의 값에 따라 달라집니다. 예를 들어 TIM이 현재 100밀리초인 경우 Wi-Fi 장치는 DTIM 값을 5(500밀리초 간격)로 사용해야 합니다. TIM이 현재 300밀리초인 경우 Wi-Fi 장치는 DTIM 값으로 2(600밀리초 간격)를 사용해야 합니다.

Wi-Fi 장치가 다시 연결된 유휴 상태(D0) 모드로 전환되면 Wi-Fi 장치는 액세스 지점과 협상된 원래 DTIM으로 돌아가야 합니다.

Wi-Fi 연결 절전 모드 해제 트리거

최신 대기 중에 Wi-Fi 장치가 네트워크에 연결되면 Wi-Fi 장치 및 Wi-Fi 미니포트 드라이버도 일련의 Wi-Fi 연결 절전 모드 해제 트리거를 기반으로 SoC 절전 모드 해제를 지원해야 합니다. 요구 사항은 다음과 같습니다.

  • 최신 대기 상태에서 GTK(WPA/WPA2) 및 IGTK 새로 고침(WPA2)을 수행합니다.
  • GTK 및 IGTK 핸드셰이크 오류 발생을 지원합니다.
  • 802.1x EAP-요청/ID 패킷이 수신될 때 절전 모드 해제 기능을 지원합니다.
  • 4방향 핸드셰이크 요청이 수신될 때 절전 모드 해제 기능을 지원합니다.
  • 현재 액세스 지점과의 wake-on-association-lost를 지원합니다.

이러한 Wi-Fi별 이벤트에서 SoC의 절전 모드를 해제하면 Wi-Fi 연결이 위태로워지거나 Wi-Fi 장치가 연결된 액세스 지점에 대한 연결이 끊어질 때 Windows가 알림을 받을 수 있습니다. 이에 대한 대응으로 Windows는 Wi-Fi 미니포트 드라이버 및 장치에 대체 Wi-Fi 네트워크에 연결하도록 지시할 수 있습니다. 또는 Windows는 그 대신 MBB(모바일 광대역) 라디오를 사용하여 연결을 설정할 수 있습니다. Wi-Fi 미니포트 드라이버는 NDIS_PM_CAPABILITIES 구조체의 SupportedWakeUpEvents 멤버에서 이러한 각 절전 모드 해제 트리거 기능(예: NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_SUPPORTED 플래그 설정)을 지정해야 합니다.

지원되는 하드웨어 전원 구성

Windows는 최신 대기 플랫폼에서 Wi-Fi 장치에 대한 세 가지 하드웨어 전원 관리 구성을 지원합니다. Wi-Fi 장치는 SoC 외부에 있고 SDIO 또는 PCIe를 통해 연결되어야 하거나, SoC 칩에 물리적으로 통합되고 독점 내부 버스를 통해 연결되어야 합니다.

시스템 디자이너는 USB 버스 연결을 사용하여 최신 대기 플랫폼에 Wi-Fi 장치를 통합해서는 안 됩니다.

SoC 외부에 있음, SDIO를 통해 연결됨

앞의 블록 다이어그램에 표시된 이 구성에서 Wi-Fi 장치는 SoC 외부에 있으며 SDIO 버스를 통해 SoC에 연결됩니다. Wi-Fi 장치에는 SoC의 GPIO 핀에 하나 이상의 핀이 연결되어 있을 수 있습니다. Wi-Fi 장치는 항상 전원이 켜진 전원 레일에 연결되거나 PMIC(전원 관리 IC)에 직접 연결되어야 합니다.

Wi-Fi 장치는 Wi-Fi 장치의 인터럽트 출력 핀에서 SoC의 GPIO 핀으로 라우팅되는 대역 외 신호 라인을 통해 절전 모드 해제 인터럽트를 생성할 수 있어야 합니다. Wi-Fi 장치의 절전 모드 해제 신호가 최신 대기 중 SoC를 가장 낮은 전력 상태에서 해제할 수 있도록, 장치의 인터럽트 라인은 SoC의 항상 켜져 있는 GPIO 핀에 연결되어야 합니다. 시스템 통합자는 ACPI GpioInt 매크로를 사용하여 ACPI 네임스페이스의 Wi-Fi 장치에서 GPIO 인터럽트 연결을 설명해야 합니다. GpioInt 매크로의 공유 필드는 GPIO 인터럽트가 시스템을 절전 모드에서 해제할 수 있다는 것을 나타내도록 ExclusiveAndWake로 설정해야 합니다. ExclusiveAndWake 설정을 사용하면 ACPI 드라이버가 Wi-Fi 장치에 대한 대기-절전 모드 해제 IRP를 자동으로 완료하고, 장치가 SoC를 인터럽트할 때 장치가 연결된 절전 모드(D2)에 있는 경우 장치를 연결된 유휴 상태(D0) 모드로 되돌릴 수 있습니다. ACPI 펌웨어는 Wi-Fi 장치가 플랫폼의 연결된 절전 모드(D2)를 해제할 수 있다는 것을 나타내야 합니다. 이렇게 하려면 시스템 통합자는 다음 예제와 같이 Wi-Fi 장치 아래의 ACPI 네임스페이스에 _S4W 및 _S0W 개체를 모두 포함해야 합니다.

    Name(_S0W, 2)
    Name(_S4W, 2)

이 예제의 값인 2는 D2 장치 전원 상태를 나타냅니다.

선택에 따라, Wi-Fi 장치에는 SoC의 GPIO 출력 핀에서 사용 설정 또는 다시 설정 신호를 받는 입력 핀이 있을 수 있습니다. GPIO 핀은 시스템 펌웨어에 의해 제어됩니다. GPIO 핀을 전환하여 완전히 전원을 끄거나 Wi-Fi 장치를 다시 설정할 수 있습니다. 이러한 GPIO 핀을 사용하여 Wi-Fi 장치를 사용 설정하거나 다시 설정하는 경우 시스템 통합자는 GPIO 작업 영역에 이 핀을 노출해야 합니다. 또한 시스템 통합자는 ACPI 네임스페이스의 Wi-Fi 장치 아래에 _PS0 및 _PS3 제어 메서드를 포함해야 합니다.

_PS3 메서드의 구현은 GPIO 작업 영역을 통해 GPIO 출력 핀의 상태를 변경하여 Wi-Fi 장치의 전원을 켜거나 다시 설정해야 합니다. Wi-Fi 장치에 특정한 다시 설정 타이밍 요구 사항이 있는 경우, 시스템 통합자는 ACPI 절전 모드 메서드를 사용하여 실행을 지연시키거나 재설정 라인을 일정한 시간 동안 필요한 신호 수준으로 유지하여 ACPI 펌웨어에서 이러한 요구 사항을 구현해야 합니다.

_PS0 제어 방법의 구현은 Wi-Fi 장치에 전원을 안정적으로 적용하고 장치를 작동시켜야 합니다.

SoC 외부에 있음, PCIe를 통해 연결됨

이 구성에서 Wi-Fi 장치는 SoC 외부에 있으며 PCIe 버스에 연결됩니다. 장치는 연결된 절전 모드 또는 연결이 끊어진 절전 모드에서 작동할 때 D3 장치 전원 상태에 있습니다. D3에 있는 동안 장치는 D3hot 하위 상태로 유지되며 D3cold 하위 상태에 진입하지 않습니다. Wi-Fi 장치는 항상 전원이 켜져 있거나 PMIC(시스템 전원 관리 IC)에 직접 연결된 시스템 전원 레일에 연결되어야 합니다.

참고   Wi-Fi 하드웨어는 PME(절전 모드 해제 이벤트)를 생성하는 데 PCI 아키텍처를 사용해야 합니다.

D3의 경우 장치는 PCIe 버스를 통해 대역 내 전파되는 PM_PME 메시지를 전송하여 절전 모드 해제 이벤트에 신호를 보낼 수 있어야 합니다. 절전 모드 해제 이벤트는 PCIe 루트 포트에서 인터럽트를 생성하고, 이 인터럽트는 받은 편지함 PCI 버스 드라이버 Pci.sys에 의해 처리됩니다.

네이티브 PCIe 기능에 대한 운영 체제 제어를 부여하려면 ACPI 펌웨어에 ACPI 네임스페이스에 _OSC 제어 메서드가 포함되어야 합니다. 또한 ACPI 네임스페이스는 Wi-Fi 장치가 연결된 절전 모드 또는 연결이 끊어진 절전 모드에서 플랫폼을 절전 모드로 전환할 수 있다는 것을 나타내는 _S0W 개체를 포함해야 합니다. 이 개체는 ACPI 네임스페이스의 Wi-Fi 장치 아래에 있어야 하며 다음 예제와 같이 선언되어야 합니다.

    Name(_S0W, 3)

다음 그림에서는 SoC 외부에 있고 PCIe 버스를 통해 SoC와 통신하는 Wi-Fi 장치를 지원하기 위한 소프트웨어 및 하드웨어 구성 요소의 구성을 보여 줍니다.

PCIe를 통해 연결된 Wi-Fi 장치

SoC에 통합됨

Wi-Fi 장치가 SoC에 통합된 경우 Wi-Fi 미니포트 드라이버와 소유 SoC 버스 드라이버 간의 긴밀한 결합이 필요합니다. 이 드라이버의 구현은 이 문서의 범위를 벗어납니다. 그러나 Wi-Fi 미니포트 드라이버는 소프트웨어 전원 관리 메커니즘에 설명된 모든 기능을 구현해야 합니다.

시스템 통합자는 SoC에 직접 통합된 Wi-Fi 장치에 대한 ACPI 구현 세부 정보에 대해서는 SoC 공급업체에 문의해야 합니다.

테스트 및 유효성 검사

Wi-Fi 장치의 테스트 및 유효성 검사는 전력 소비량을 직접 측정하고 패턴 일치 절전 모드 해제가 올바르게 작동하는지 확인하는 데 중점을 두어야 합니다.

장치 전력 소비의 직접 측정은 Wi-Fi 장치에 대한 테스트 및 유효성 검사에서 중요한 부분입니다. 플랫폼이 S5(shutown) 시스템 전원 상태가 아닌 경우 Wi-Fi 장치가 거의 항상 켜지므로 시스템 통합자는 다양한 시스템 시나리오 및 구성에서 Wi-Fi 전력 소비를 테스트하고 유효성을 검사해야 합니다. 다음 표에 나와 있는 두 가지 유형의 연결에 대해 Wi-Fi 장치의 전력 소비량을 직접 측정하는 것이 좋습니다.


시나리오 목표 평균 전력 의견
비행기 모드, 라디오 꺼짐
  • 화면 켜짐, D0 상태
<= 1밀리와트 디스플레이가 켜져 있을 때와 최신 대기 중에 라디오가 꺼질 수 있습니다. 라디오가 꺼져 있으면 D0 및 D2 모두에 대해 전력 소비량이 평균 1밀리와트 이하여야 합니다.
화면 켜짐, 유휴 상태
  • 절전 모드가 자동으로 사용 설정되어 있음
  • 활성 데이터 전송 없음
  • DTIM이 액세스 지점 지원에 대해 구성됨
  • WPA2-개인 보호
<= 10밀리와트 다양한 소비자 및 상업용 Wi-Fi 액세스 지점에 연결된 Wi-Fi 장치를 사용하여 테스트를 수행해야 합니다.
연결된 절전 모드
  • 화면 꺼짐, 패턴 일치 절전 모드 해제가 사용 설정됨, D2 상태
  • DTIM이 5로 구성됨
  • WPA2-개인 보호
<= 10밀리와트

전원 관리 검사 목록

시스템 통합업체 및 SoC 공급업체는 아래 검사 목록을 사용하여 Wi-Fi 장치 및 Wi-Fi 미니포트 전원 관리 설계가 Windows 8 및 Windows 8.1과 호환되는지 확인해야 합니다.

참고Windows 하드웨어 인증 키트에는 Wi-Fi 장치가 Windows 8 및 Windows 8.1과 호환되는지 확인할 수 있는 광범위한 Wi-Fi 드라이버 테스트 모음이 포함되어 있습니다. Wi-Fi 장치 공급업체 및 Wi-Fi 미니포트 드라이버 개발자는 Windows 하드웨어 인증 키트 테스트를 검토하고 이를 사용하여 설계 주기에서 가능한 한 빨리 드라이버 구현의 유효성을 검사하는 것이 좋습니다.

  • Wi-Fi 장치 공급업체는 다음을 수행하는 드라이버를 개발해야 합니다.

    • 패턴 일치 절전 모드 해제를 지원.
    • 절전 모드를 지원.
    • 라디오 켜짐/꺼짐을 지원.
    • NLO(네트워크 목록 오프로드)를 지원.
    • D0 패킷 병합을 지원.
    • wake-on-AP-disconnect 및 추가 Wi-Fi 절전 모드 해제 트리거를 지원.
    • ARP/NS 오프로드를 지원.
    • 동적 DTIM 구성을 지원.
    • Windows 하드웨어 인증 키트에서 적용 가능한 모든 네트워킹 테스트를 통과.
  • Wi-Fi 장치가 SoC 외부에 있고 SDIO를 통해 연결된 경우 시스템 통합자는 다음을 수행하려면 Wi-Fi 장치에 대한 하드웨어 및 펌웨어를 개발해야 합니다.

    • Wi-Fi 장치의 Wi-Fi 절전 모드 해제 인터럽트를 SoC의 상시 GPIO 핀으로 라우팅합니다.

    • 공유 필드가 ExclusiveAndWake로 설정된 ACPI 네임스페이스의 Wi-Fi 장치 아래에 GPIOInt 매크로를 포함합니다.

    • ACPI 네임스페이스의 Wi-Fi 장치 아래에 D2에 대해 가장 깊은 절전 모드 해제 상태가 0x2인 _S4W 개체를 포함합니다. "Name(_S4W, 2)"으로 지정합니다.

    • ACPI 네임스페이스의 Wi-Fi 장치 아래에 D2에 대해 가장 깊은 절전 모드 해제 상태가 0x2인 _S0W 개체를 포함합니다. "Name(_S0W, 2)"으로 지정합니다.

    • 전원 사용 또는 다시 설정 신호를 SoC의 GPIO 출력 핀에서 Wi-Fi 장치로 라우팅합니다.

    • GPIO 작업 영역에서 선택적 전원 사용 설정 또는 다시 설정 GPIO 출력 핀에 대해 설명합니다.

    • _PS3 및 _PS0 제어 메서드 및/또는 _PRn 전원 리소스 참조를 제공합니다. 이러한 항목은 ACPI 네임스페이스의 Wi-Fi 장치 아래에 있어야 합니다.

    • _PS3 메서드 또는 전원 리소스 메서드를 구현하여 Wi-Fi 장치에서 전원을 제거합니다.

    • _PS0 메서드 또는 전원 리소스 메서드를 구현하여 Wi-Fi 장치에 전원을 복원합니다.

    • _PS3 및 _PS0 메서드 구현에 장치별 전원 켜기 또는 다시 설정 시퀀싱 타이밍을 포함합니다. 절전 모드 메서드를 사용하여 ACPI 메서드 실행을 지연할 수 있습니다.

  • Wi-Fi 장치가 SoC 외부에 있고 PCIe를 통해 연결된 경우 시스템 통합자는 다음을 수행하려면 Wi-Fi 장치에 대한 하드웨어 및 펌웨어를 개발해야 합니다.

    • 네이티브 PCIe 기능에 대한 운영 체제 제어를 부여하기 위해 ACPI 네임스페이스에 _OSC 제어 메서드를 포함합니다.

      ACPI 네임스페이스의 Wi-Fi 장치 아래에 D3에 대해 가장 깊은 절전 모드 해제 상태가 0x3인 _S4W 개체를 포함합니다. "Name(_S4W, 3)"으로 지정합니다.

  • 시스템 통합자는 다음을 수행하여 Wi-Fi 장치의 올바른 전원 관리를 테스트하고 유효성을 검사해야 합니다.

    • 무선 해제 모드에서 Wi-Fi 장치의 평균 전력 소비량이 1밀리와트 미만인지 확인합니다.

    • 장치가 연결된 절전 모드에 있을 때 Wi-Fi 장치의 평균 전력 소비량이 10밀리와트 미만인지 확인합니다(SDIO의 경우 D2; PCIe용 D3 모드 또는 연결된 유휴(D0) 모드이며 데이터를 적극적으로 전송하지 않습니다.

    • Wi-Fi 미니포트가 패턴 일치 절전 모드 해제를 올바르게 지원하고 일치하는 패턴이 검색될 때 가장 깊은 유휴 상태에서 SoC를 깨울 수 있는지 확인합니다.

    • 장치가 연결된 액세스 지점과의 연결이 끊어졌을 때 Wi-Fi 장치가 SoC를 가장 깊은 유휴 상태에서 해제할 수 있는지 확인합니다.

    • Wi-Fi 장치가 SoC에 대한 가짜 절전 모드 해제를 생성하지 않는지 확인합니다.

    • Windows 하드웨어 인증 키트에 제공된 테스트를 사용하여 Wi-Fi 장치가 NLO(네트워크 목록 오프로드), ARP/NS 오프로드 및 D0 패킷 병합을 올바르게 구현했는지 확인합니다.