oracle wiki (usb 컨트롤러)에서 :

USB 호스트 컨트롤러 루트 허브라는 임베디드 허브가 있습니다. 시스템의 후면 패널에 보이는 포트는 루트 허브의 포트입니다.

내가 이해하는 것은 루트 허브가 단순히 모든 USB 허브가 결합되는 지점입니다.

-루트 허브는 하드웨어의 일부입니까, 아니면 USB 장치의 모든 데이터가 결합되는 지점을 나타내는 데 사용되는 용어입니까?

-루트 허브와 컨트롤러 (UHCI, OHCI, EHCI) 사이에는 다양한 유형의 인터페이스가 있습니다. 그렇다면 컨트롤러를 루트 허브와 실제 컴퓨터 사이의 “중개자”로 생각하는 것이 맞습니까?

답변

두 개 이상의 루트 허브를 가질 수 있으므로 모든 허브가 모이는 지점이 아닙니다. 루트 허브를 열거를위한 여러 시작점 중 하나로 생각하는 것이 더 편리합니다.

루트 허브는 하드웨어의 한 부분입니다.보다 구체적으로는 호스트 컨트롤러의 일부입니다. 칩 또는 칩셋의 일부).

인터페이스 언급 한 것은 호스트 컨트롤러 인터페이스 (HCI), 즉 루트 허브가 아닌 호스트 컨트롤러의 인터페이스입니다. 기본적으로 호스트 컨트롤러와 통신하기 위해 소프트웨어가 액세스 할 수있는 레지스터입니다.

위에서 볼 때 “중간자”라는 용어는 그림처럼 적용 할 수 없다고 생각합니다.

UPDATE :

다음은 관계를 설명하기위한 간단한 아날로그입니다.

차량은 컨트롤러이며 소프트웨어 (운전자)가 컨트롤러를 작동하는 데 사용할 수있는 인터페이스 (페달)가 있습니다. 또한 자동차 기능의 필수 부분 을 수행하는 엔진 (루트 허브)이 있습니다.

운전자가 페달을 사용하여 엔진을 작동한다고 말할 수 있지만 맞지만 그렇지 않습니다. 정확합니다. 페달과 엔진 사이에는 상당히 많은 부분이 있기 때문입니다. 이러한 부분은 컨트롤러의 내부 논리 회로에 해당합니다.

따라서보다 정확한 표현은 “운전자가 페달, 스티어링을 사용하여 자동차를 제어합니다. 엔진은 자동차의 일부이기 때문에 전체 주행 과정에서 역할을 담당합니다. “라는 컴퓨터 용어로는”소프트웨어가 HCI를 사용하는 호스트 컨트롤러이고 루트 허브는 호스트 컨트롤러의 일부이므로 USB 통신을 지원하는 작업을 공유합니다. “

댓글

  • 그래서 호스트 컨트롤러는 호스트 컨트롤러 인터페이스 (HCI)를 통해 소프트웨어와 통신하는 칩이며 해당 칩은 하나 이상의 루트 허브에 연결되어 USB 장치와 컨트롤러간에 (및 컨트롤러에서 소프트웨어로) 데이터를 전달할 수 있습니까?
  • 거의 맞았습니다. 호스트 컨트롤러가 루트 허브에 " 연결되지 " 루트 허브는 컨트롤러의 일부입니다. 그리고 PC에는 일반적으로 여러 컨트롤러 (칩셋에 내장되고 마더 보드의 별도 칩)가 있기 때문에 요즘에는 시스템에 여러 루트 허브가 있습니다. ' 더 나은 설명으로 답변을 업데이트하겠습니다.

답변

일반 USB 허브는 하나의 (업스트림) 링크에서 여러 다운 스트림 포트로 USB 트래픽을 분할 할 수있는 USB 장치 입니다. 많은 포트에서 다가오는 트래픽을 하나의 업스트림으로 mux합니다. 이를 위해 각 허브에는 연결 / 연결 해제 / 일시 중지 / 재개 / 비활성화 등과 같은 포트 기능을 제어하는 특수 제어 파이프가 있습니다. 이러한 기능은 USB 패킷을 사용하여 각 특정 포트로 전달되는 USB 유형 제어 트랜잭션을 통해 제어됩니다. -토큰 프로토콜. 이 프로토콜은 모든 유효한 수준의 허브 스택 업까지 작동하며 각 포트에는 USB 응답 내에서 잘 정의 된 상태 비트가 있습니다.

루트 허브는 (a) 업스트림이 호스트와 직접 연결된다는 점을 제외하면 유사한 기능을 수행합니다. 컨트롤러 파이프 / 버스 및 (b) 각 포트의 다양한 상태 비트는 호스트 PCI 공간의 32 비트 레지스터에 직접 매핑됩니다. 이것은 하드웨어의 일부입니다.

그러나 USB 트리의 모든 포트간에 비트 단위 호환성을 유지하고 모든 포트에 대한 범용 액세스를 제공하기 위해 호스트 컨트롤러 드라이버 소프트웨어에는 일반적으로 레지스터 기반 포트 제어 상태 (PORTSC)를 변환하는 특수 계층이 있습니다. )를 표준 USB 포트 상태 형식으로 변환합니다. 이는 다음 Microsoft 문서 에 설명되어 있습니다.

여기에 이미지 설명 입력

원으로 표시된 레이어가이 포트 상태 변환을 제공한다고 생각합니다. 그 후 시스템은 루트 허브 포트와 일반 허브 포트의 차이를 인식하지 못합니다.

답변

이것은 구현 세부 사항입니다. , 대부분.

USB 허브는 삽입 / 제거 감지, 포트 전원 제어 및 장치에 번호가 할당되기 전에 사용되는 열거 프로토콜의 업스트림 측을 구현합니다.

각 USB 다운 스트림 포트는 컨트롤러에 직접 연결되어 있든 별도의 장치에 연결되어 있든간에 두 가지 사양을 갖는 것은 어리석은 일입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다