다음을 통해 공유


SPI 전송을 통해 HID에 대한 아키텍처 및 개요

이 섹션에서는 SPI 전송을 통해 HID를 지원하는 디바이스의 드라이버 스택에 대해 설명합니다.

아키텍처 및 개요

HID SPI 드라이버 스택은 MICROSOFT에서 제공하는 기존 및 새 구성 요소와 SPI 실리콘 제조업체에서 제공하는 구성 요소로 구성됩니다. 다음 그림에서는 스택 및 이러한 구성 요소를 보여 줍니다.

HID over SPI 드라이버 스택입니다.

Windows는 운영 체제와 효과적으로 통신할 수 있는 저전력의 간단한 버스에 대한 인터페이스를 제공합니다. 이 인터페이스를 간단한 SPB(주변 버스)라고 하며 Inter-Integrated 회로(I2C) 및 SPI(직렬 주변 장치 인터페이스)와 같은 버스를 지원합니다. SPB에 대한 자세한 내용은 SPB(단순 주변 장치 버스) 항목을 참조하세요.

Windows는 SPI를 통한 HID에 대한 프로토콜 사양 버전 1.0을 구현하는 KMDF 기반 HID 미니포트 드라이버를 제공합니다. 이 드라이버의 이름은 HIDSPI.sys. Windows는 ACPI(고급 구성 및 전원 인터페이스)에 의해 노출되는 호환되는 ID 일치를 기반으로 이 드라이버를 로드합니다. 시스템 통합자는 확장 INF를 사용하여 주변 장치의 하드웨어 ID에 따라 이 드라이버를 로드할 수 있습니다. 드라이버는 HID IOCTL 및 API 집합을 활용하는 소프트웨어에 대해 HID IOCTLs 애플리케이션 수준 호환성을 사용하는 앱이 있는지 확인합니다. GPIO 연결이 드라이버에 제공되므로 주의가 필요하거나 데이터가 있을 때 디바이스가 인터럽트를 어설션할 수 있습니다.

참고

HIDSPI.sys 디바이스 드라이버는 SPI 버스만 지원합니다. Windows에서는 I2C, SMBUS 또는 기타 저전력 버스를 지원하지 않습니다.

SPI 컨트롤러 드라이버

SPI 컨트롤러 드라이버는 읽기 및 쓰기 작업을 수행하기 위해 SPB(직렬 주변 장치 버스) IOCTL 인터페이스를 노출합니다. 이 드라이버는 실제 컨트롤러 내장 함수(예: SPI)를 제공합니다. 컨트롤러 드라이버를 대신하여 SPB 클래스 확장은 리소스 허브와의 모든 상호 작용을 처리하고 동시 대상을 관리하는 데 필요한 큐를 구현합니다.

참고

HID SPI 드라이버는 SPB 플랫폼과 호환되는 SPI 버스가 없는 시스템에서 작동하지 않습니다. 디바이스 시스템의 SPI 버스가 SPB 플랫폼과 호환되는지 여부를 확인하려면 시스템 제조업체에 문의하세요.

GPIO 컨트롤러 드라이버

gpIO(범용 입력/출력) 컨트롤러는 GPIO를 통해 디바이스에서 인터럽트(인터럽트)를 제공합니다. 이는 종종 GPIO 핀을 사용하여 Windows에 새 데이터 또는 기타 이벤트를 알리는 간단한 하위 구성 요소입니다. GPIO는 SPI 채널 이외의 접근 방법으로 디바이스를 제어할 수도 있습니다.

리소스 허브

SoC 플랫폼의 연결은 일반적으로 검색할 수 없습니다. SoC에서 사용되는 버스에 디바이스 열거형에 대한 표준이 없기 때문입니다. 따라서 이러한 디바이스는 ACPI(고급 구성 및 전원 인터페이스)에서 정적으로 정의되어야 합니다. 또한 구성 요소에는 엄격한 분기 트리 구조가 아닌 여러 버스에 걸쳐 여러 종속성이 있는 경우가 많습니다.

리소스 허브는 모든 디바이스 및 버스 컨트롤러 간의 연결을 관리하는 프록시입니다. HIDSPI 드라이버는 리소스 허브를 사용하여 디바이스 열기 요청을 적절한 컨트롤러 드라이버로 다시 라우팅합니다. 리소스 허브에 대한 자세한 내용은 SPB 연결된 디바이스에 대한 연결 ID 항목을 참조하세요.

HIDSPI 클래스 확장(HIDSPICx)

더 큰 성능 또는 통합이 필요한 구현의 경우 시스템 제조업체가 HIDSPI 트랜잭션을 처리하기 위한 사용자 지정 실리콘을 개발할 수 있습니다. 이를 위해 HIDSPICx 클래스 확장은 Windows와 함께 제공됩니다. HIDSPICx를 사용하면 SpbCx를 사용하지 않고도 사용자 지정 HIDSPI HWA 컨트롤러 드라이버를 개발할 수 있습니다.

HWA 디바이스의 경우 공급업체는 클래스 확장에 정의된 인터페이스를 구현하고 클래스 확장과 통신하는 클라이언트 드라이버를 제공합니다.

HIDSPICx 및 HWA 드라이버 스택입니다.