USB(범용 직렬 버스)

USB(유니버설 직렬 버스)는 주변 장치에 대한 표준 저비용 연결을 보장하는 확장 가능한 플러그 앤 플레이 직렬 인터페이스를 제공합니다. USB 장치에는 키보드, 마우스, 조이스틱, 프린터, 스캐너, 저장 장치, 모뎀, 화상 회의 카메라 등이 포함됩니다.

USB-IF는 공식 USB 사양, 테스트 사양 및 도구를 유지하는 SIG(특수 관심 그룹)입니다.

Windows 운영 체제에는 공식 USB 사양을 준수하는 USB 호스트 컨트롤러, 허브 및 디바이스 및 시스템에 대한 기본 지원이 포함됩니다. Windows는 USB 디바이스와 통신하는 디바이스 드라이버애플리케이션을 개발하는 데 사용할 수 있는 프로그래밍 인터페이스도 제공합니다.

디바이스 빌더용 USB 아이콘드라이버 개발자용 USB 아이콘앱 개발자용 USB 아이콘USB HCK 인증 아이콘

Windows의 USB

개발 도구

USB 샘플

Windows용 USB 드라이버 또는 앱 만들기

USB 드라이버 개발을 소개합니다. 디바이스에 USB 드라이버를 제공하는 데 가장 적합한 모델을 선택하는 방법에 대한 정보를 제공합니다.

USB 클라이언트 드라이버 작성(KMDF, UMDF)

이 섹션에는 Microsoft Visual Studio에 포함된 USB 템플릿을 사용하여 첫 번째 사용자 모드 및 커널 모드 USB 드라이버를 작성하는 방법에 대한 자습서가 포함되어 있습니다.

USB 호스트 컨트롤러 드라이버 작성

사양을 준수하지 않는 xHCI 호스트 컨트롤러를 개발하거나 사용자 지정 비 xHCI 하드웨어(예: 가상 호스트 컨트롤러)를 개발하는 경우 UCX와 통신하는 호스트 컨트롤러 드라이버를 작성할 수 있습니다. 예를 들어 USB 디바이스를 지원하는 무선 도크를 고려해 보세요. PC는 TCP를 통한 USB를 전송으로 사용하여 무선 도크를 통해 USB 디바이스와 통신합니다.

USB 디바이스에 대한 함수 컨트롤러 드라이버 작성

호스트에서 디바이스로 보낸 모든 USB 데이터 전송 및 명령을 처리하는 컨트롤러 드라이버를 개발할 수 있습니다. 이 드라이버는 Microsoft에서 제공하는 UFX(USB 함수 컨트롤러 확장)와 통신합니다.

USB 함수 컨트롤러용 Windows 드라이버 개발

USB 함수 클래스 확장(UFX) 참조

USB Type-C 커넥터 드라이버 작성

Windows 10 새 USB 커넥터 USB Type-C에 대한 지원을 소개합니다. Microsoft에서 제공하는 클래스 확장 모듈인 UcmCx와 통신하는 커넥터용 드라이버를 작성하여 Power Delivery를 지원하는 포트인 Type-C를 지원하는 포트와 같은 Type-C 커넥터와 관련된 시나리오를 처리할 수 있습니다.

USB Type-C 커넥터용 Windows 드라이버 개발

USB 커넥터 관리자 클래스 확장(UcmCx) 참조

USB 이중 역할 컨트롤러 드라이버 작성

USB 이중 역할 컨트롤러는 이제 Windows 10 지원됩니다. Windows에는 ChipIdea 및 Synopsis 컨트롤러용 기본 제공 클라이언트 드라이버가 포함되어 있습니다. 다른 컨트롤러의 경우 Microsoft는 이중 역할 클래스 확장(UrsCx)과 해당 클라이언트 드라이버가 이중 역할 컨트롤러의 역할 전환 기능을 처리하기 위해 서로 통신할 수 있도록 하는 프로그래밍 인터페이스 집합을 제공합니다.

이 기능에 대한 자세한 내용은 다음을 참조하세요.

USB 이중 역할 드라이버 스택 아키텍처

USB 이중 역할 컨트롤러 드라이버 프로그래밍 참조

에뮬레이트된 디바이스용 USB 드라이버 작성

에뮬레이트된 USB(유니버설 직렬 버스) 호스트 컨트롤러 드라이버와 연결된 가상 USB 디바이스를 개발할 수 있습니다. 두 구성 요소는 모두 Microsoft에서 제공하는 UdeCx(USB 디바이스 에뮬레이션 클래스 확장)와 통신하는 단일 KMDF 드라이버로 결합됩니다.

에뮬레이트된 USB 디바이스용 Windows 드라이버 개발(UDE)

에뮬레이트된 USB 호스트 컨트롤러 드라이버 프로그래밍 참조

USB 드라이버 개발을 위한 WDF 확장

UWP 앱 작성

  • USB 디바이스와 대화하고 완료하기 시작: UWP 앱에서 USB 기능을 구현하는 방법에 대한 단계별 지침을 제공합니다. USB 디바이스에 대해 이러한 앱을 작성하려면 Visual Studio 및 Microsoft Windows SDK(소프트웨어 개발 키트)가 필요합니다.

  • Windows.Devices.Usb: UWP 네임스페이스 프로그래밍 참조입니다.

Windows 데스크톱 앱 작성

Windows를 사용하여 USB 디바이스 테스트

MUTT(Microsoft USB 테스트 도구) 디바이스 개요

USB 하드웨어 또는 소프트웨어를 테스트하고, 작업 및 기타 시스템 이벤트의 추적을 캡처하고, USB 드라이버 스택이 클라이언트 드라이버 또는 애플리케이션에서 보낸 요청에 응답하는 방법을 관찰하는 데 사용할 수 있는 도구에 대한 정보를 가져옵니다.

하드웨어 공급업체 및 디바이스 제조업체가 Windows 하드웨어 인증 제출을 위해 USB 디바이스 및 호스트 컨트롤러를 준비할 수 있도록 하는 하드웨어 인증 키트의 테스트 개요를 읽어보세요.

범용 직렬 버스 4(USB4™)

USB용 기타 리소스

  • 공식 USB 사양: USB 프로토콜에 대한 완전한 기술 세부 정보를 제공합니다.

  • Microsoft Windows USB Core 팀 블로그: Microsoft USB 팀에서 작성한 게시물을 확인하세요. 이 블로그는 Windows PC에 있는 다양한 USB 호스트 컨트롤러 및 USB 허브에서 작동하는 Windows USB 드라이버 스택에 중점을 둡니다. USB 클라이언트 드라이버 개발자 및 USB 하드웨어 디자이너가 드라이버 스택 구현을 이해하고, 일반적인 문제를 resolve, 추적 및 로그 파일을 수집하기 위해 도구를 사용하는 방법을 설명하는 데 유용한 리소스입니다.

  • OSR 온라인 목록 - ntdev: 커널 모드 드라이버 개발자를 위해 OSR Online 에서 관리하는 토론 목록입니다.

  • Windows 하드웨어 개발자 센터: Windows 운영 체제에서 작동하는 USB 디바이스 및 드라이버를 개발하는 데 익숙하지 않은 개발자의 질문과 대답을 기반으로 하는 기타 리소스입니다.

학습을 위한 USB 하드웨어

  • MUTT 디바이스: MUTT 및 SuperMUTT 디바이스 및 함께 제공되는 소프트웨어 패키지는 HCK USB 테스트 제품군에 통합됩니다. USB 컨트롤러, 디바이스 및 시스템, 특히 스트레스 테스트의 개발 주기 동안 사용할 수 있는 자동화된 테스트를 제공합니다.

  • OSR USB FX2 학습 키트: USB 드라이버 개발을 접하는 경우. 이 키트는 이 설명서 집합에 포함된 USB 샘플을 연구하는 데 가장 적합합니다. OSR Online Store에서 학습 키트를 가져올 수 있습니다.

Microsoft에서 제공하는 USB 드라이버에 대해 알아보기

  • Windows의 USB 디바이스 쪽 드라이버: USB 함수 스택의 아키텍처를 설명합니다.

  • Windows의 USB 호스트 쪽 드라이버: USB(유니버설 직렬 버스) 드라이버 스택 아키텍처에 대한 개요를 제공합니다. Microsoft는 EHCI 및 xHCI 컨트롤러에 연결된 디바이스와 상호 운용하는 드라이버의 핵심 스택을 제공합니다.

  • USB-IF 디바이스 클래스 드라이버: 지원되는 USB 디바이스 클래스에 대한 Microsoft 제공 드라이버를 나열합니다. Windows는 많은 USB-IF 승인 디바이스 클래스, 오디오, 대용량 스토리지 등에 대한 기본 제공 디바이스 클래스 드라이버를 제공합니다.

  • USB 제네릭 함수 드라이버–WinUSB: WinUSB는 Windows Vista 이후 모든 버전의 Windows에 포함된 USB 디바이스용 일반 드라이버입니다. Windows는 사용자 지정 디바이스의 함수 드라이버 및 복합 디바이스의 함수로 로드할 수 있는 Winusb.sys 제공합니다.

  • 복합 디바이스용 USB 일반 부모 드라이버–Usbccgp: 여러 기능이 있는 USB 디바이스용 부모 드라이버입니다. Usbccgp는 각 함수에 대해 PDO(물리적 디바이스 개체)를 만듭니다. 이러한 개별 PDO는 Winusb.sys 드라이버 또는 USB 디바이스 클래스 드라이버일 수 있는 각각의 USB 함수 드라이버를 관리합니다.