USB 디바이스 레이아웃
USB(유니버설 직렬 버스) 디바이스는 구성, 인터페이스, 대체 설정 및 엔드포인트를 통해 기능과 기능을 정의합니다. 이 문서에서는 이러한 개념에 대한 개략적인 개요를 제공합니다.
USB 구성은 주로 전원 기능 및 인터페이스를 중심으로 디바이스의 기능과 기능을 정의합니다. 디바이스에는 여러 구성이 있을 수 있지만 한 번에 하나의 구성만 활성화됩니다. 활성 구성은 USB 드라이버 스택에서 선택되지 않지만 애플리케이션, 드라이버, 디바이스 드라이버에서 시작할 수 있습니다. 디바이스 드라이버가 활성 구성을 선택합니다.
구성에는 디바이스의 기능을 정의하는 하나 이상의 USB 인터페이스 가 있을 수 있습니다. 일반적으로 함수와 인터페이스 사이에는 일대일 상관 관계가 있습니다. 그러나 특정 디바이스는 하나의 함수와 관련된 여러 인터페이스를 노출합니다. 이 경우 디바이스에는 IAD(인터페이스 연결 설명자)가 있을 수 있습니다. IAD는 특정 함수에 속하는 인터페이스를 그룹화합니다.
각 인터페이스에는 디바이스 간에 데이터를 전송하는 데 사용되는 하나 이상의 엔드포인트가 포함되어 있습니다. 또한 인터페이스에는 인터페이스와 연결된 함수의 대역폭 요구 사항을 정의하는 대체 설정 이 포함되어 있습니다. 요약하자면, 엔드포인트 그룹은 인터페이스를 구성하고 인터페이스 집합은 디바이스의 구성을 구성합니다.
그렇다면 활성 구성을 선택하는 것은 무엇을 의미할까요? 디바이스 초기화 중에 USB 디바이스용 디바이스 드라이버는 구성, 해당 구성 내의 하나 이상의 인터페이스 및 각 인터페이스에 대한 대체 설정을 선택해야 합니다. 대부분의 USB 디바이스는 여러 인터페이스 또는 여러 대체 설정을 제공하지 않습니다. 예를 들어 OSR USB FX2 학습 키트 디바이스에는 하나의 대체 설정과 3개의 엔드포인트가 있는 하나의 인터페이스가 있습니다. 학습 키트에 대한 자세한 내용은 OSR Online을 참조하세요.
단일 인터페이스 디바이스
이 다이어그램은 단일 인터페이스가 있는 디바이스의 구성을 보여줍니다.
이 예제에서 다이어그램은 기본 엔드포인트라고 하는 엔드포인트 0을 보여줍니다. 모든 USB 디바이스에는 컨트롤 전송에 사용되는 기본 엔드포인트가 있어야 합니다(USB 제어 전송 참조). 구성 0에는 하나의 인터페이스, 즉 하나의 대체 설정이 있는 인터페이스 0이 있습니다. 대체 설정 0은 인터페이스의 세 엔드포인트를 모두 사용합니다.
다중 인터페이스 디바이스
다기능 디바이스의 경우 디바이스에 여러 인터페이스가 있습니다. 특정 함수 또는 인터페이스를 사용하기 위해 클라이언트 드라이버는 인터페이스 및 연결된 대체 설정을 선택합니다. 웹캠과 같은 다기능 USB 디바이스를 고려합니다. 디바이스에는 비디오 캡처(카메라) 및 오디오 입력(마이크)의 두 가지 기능이 있습니다. 디바이스는 비디오를 스트리밍하는 비디오 인터페이스에서 엔드포인트를 정의합니다. 디바이스에는 마이크를 통해 오디오 입력을 사용하는 별도의 인터페이스에 다른 엔드포인트가 있습니다. 디바이스의 구성에는 이러한 인터페이스가 모두 포함됩니다.
이 다이어그램은 웹캠 디바이스의 구성을 보여줍니다.
이 예제에서는 다이어그램에 기본 엔드포인트가 표시됩니다. 구성 0에는 인터페이스 0과 인터페이스 1의 두 가지 인터페이스가 있습니다. 인터페이스 0에는 세 가지 대체 설정이 있습니다. 대체 설정 중 하나만 지정된 시간에 활성화됩니다. 대체 설정 0은 엔드포인트를 사용하지 않지만 대체 설정 1과 2는 엔드포인트 1을 사용합니다. 일반적으로 비디오 카메라는 스트리밍에 등시 엔드포인트 를 사용합니다. 엔드포인트 유형에 대해 엔드포인트가 사용 중이면 버스에서 대역폭이 예약됩니다. 카메라가 비디오를 스트리밍하지 않는 경우 클라이언트 드라이버는 대체 설정 0을 선택하여 대역폭을 절약할 수 있습니다. 웹캠이 비디오를 스트리밍하는 경우 클라이언트 드라이버는 대체 설정 1 또는 대체 설정 2로 전환하여 품질 수준을 높이고 버스 대역폭을 늘릴 수 있습니다. 인터페이스 1에는 두 가지 대체 설정이 있습니다. 인터페이스 0과 마찬가지로 대체 설정 0은 엔드포인트를 사용하지 않습니다. 대체 설정 1은 엔드포인트 4를 사용하도록 정의됩니다.
구성 내의 두 인터페이스 간에 엔드포인트를 공유할 수 없습니다. 디바이스는 엔드포인트 주소를 사용하여 파이프 재설정과 같은 데이터 전송 또는 엔드포인트 작업의 대상 엔드포인트를 결정합니다. 이러한 모든 작업은 호스트에서 시작됩니다.
디바이스 사용을 시작하기 전에 디바이스 레이아웃에 대한 정보를 가져옵니다. USBView 는 연결된 모든 USB 컨트롤러 및 USB 디바이스를 찾아볼 수 있는 애플리케이션입니다. 연결된 각 디바이스에 대해 디바이스, 구성, 인터페이스 및 엔드포인트 설명자를 보고 디바이스의 기능에 대한 아이디어를 얻을 수 있습니다.
다음으로, 표준 USB 설명자를 참조 하세요.