USB 엔드포인트 및 해당 파이프

USB 디바이스에는 데이터 전송에 사용되는 엔드포인트가 있습니다. 호스트 쪽에서 엔드포인트는 파이프로 표시됩니다. 이 항목에서는 이러한 두 용어를 구분합니다.

요약

  • 엔드포인트는 디바이스의 하드웨어입니다. 파이프는 호스트 쪽의 소프트웨어입니다.
  • 엔드포인트가 구성되지 않았습니다. 파이프가 전송을 위해 구성됨
  • 호스트는 파이프에서 데이터를 보내거나 수신합니다.

USB 엔드포인트

엔드포인트는 USB 디바이스의 버퍼입니다. 엔드포인트는 호스트 운영 체제와 관계없이 하드웨어 자체와 관련된 용어입니다. 호스트는 해당 버퍼에서 데이터를 보내고 받을 수 있습니다. 엔드포인트는 제어 및 데이터 엔드포인트로 분류할 수 있습니다.

모든 USB 디바이스는 기본 엔드포인트 또는 엔드포인트0이라고 하는 주소 0에서 하나 이상의 제어 엔드포인트를 제공해야 합니다. 이 엔드포인트는 양방향입니다. 즉, 호스트는 엔드포인트로 데이터를 보내고 한 번의 전송 내에서 데이터를 수신할 수 있습니다. 제어 전송의 목적은 호스트가 디바이스 정보를 가져오거나, 디바이스를 구성하거나, 디바이스에 고유한 제어 작업을 수행할 수 있도록 하는 것입니다.

데이터 엔드포인트는 선택 사항이며 데이터 전송에 사용됩니다. 단방향이며 형식(컨트롤, 인터럽트, 대량, 등시성) 및 기타 속성이 있습니다. 이러한 모든 속성은 엔드포인트 설명자에 설명되어 있습니다(표준 USB 설명자 참조).

USB 용어에서 엔드포인트의 방향(및 엔드포인트 간 전송)은 호스트를 기반으로 합니다. 따라서 IN은 항상 디바이스에서 호스트로 전송을 의미하고 OUT은 항상 호스트에서 디바이스로의 전송을 나타냅니다. USB 디바이스는 제어 데이터의 양방향 전송을 지원할 수도 있습니다.

디바이스의 엔드포인트는 기능 인터페이스로 그룹화되고 인터페이스 집합은 디바이스 구성을 구성합니다. 자세한 내용은 USB 디바이스 레이아웃을 참조하세요.

호스트 소프트웨어는 디바이스가 구성되기 전 또는 대체 설정을 선택하는 동안 엔드포인트 정보를 볼 수 있습니다. 모든 인터페이스를 반복한 다음 각 인터페이스 설정 목록을 반복하고 설정에서 각 엔드포인트 또는 전체 엔드포인트 집합의 속성을 확인합니다. 엔드포인트 정보를 살펴보면 디바이스의 구성된 상태에 영향을 주지 않습니다.

USB 파이프

데이터는 파이프라는 추상화 를 통해 USB 디바이스와 USB 호스트 간에 전송됩니다. 파이프는 전적으로 소프트웨어 용어입니다. 파이프는 디바이스의 엔드포인트와 대화하고 해당 엔드포인트에는 주소가 있습니다. 파이프의 다른 쪽 끝은 항상 호스트 컨트롤러입니다.

구성 및 인터페이스의 대체 설정을 선택하여 디바이스를 구성할 때 엔드포인트에 대한 파이프가 열립니다. 따라서 I/O 작업의 대상이 됩니다. 파이프에는 엔드포인트의 모든 속성이 있지만 활성 상태이며 호스트와 통신하는 데 사용됩니다.

구성된 엔드포인트를 파이프라고 하는 동안 구성되지 않은 엔드포인트를 엔드포인트라고 합니다.

usb 파이프 및 엔드포인트.