USB 기초와 용어

Bruce Han·2023년 3월 29일
0
post-thumbnail

USB 기초

1. USB의 설계 목표

USB는 다양한 Device에서 사용할 수 있는 단일 인터페이스이며, 주변기기 Type마다 다른 Connector를 쓰기 않고 단일 Interface를 사용한다.
또한, 모든 표준 PC 확장 기능을 지원할 수 있는 융통성이 있다.

이러한 USB의 설계 목표에는 쓰기 쉽게 하자는 것이 가장 중요하다.

2. 용어

Function

Function은 Interface와 관련된 한 개 이상의 기능 집합이다.
예시로 마우스, 스피커, 데이터 수집장치가 있다.

Device

Function을 한 개 이상 수행하는 논리적 요소나 물리적 요소이다.
예시로 Hub와 주변기기가 있는데, Host가 Bus 상의 각 Hub와 주변기기같은 Device에 고유한 주소를 부여한다.

Port

회로를 접속할 수 있게 주소로 지정한 위치다.

3. Host 역할

Device 감지

전원이 켜지면 USB Device를 Host에 알려준다.

Host는 열거(Enumeration) 과정을 통해서 사용할 Bus 속도를 결정하고, 각 Device 주소를 할당하며 추가 정보를 요청한다.

Data 흐름 관리

Host는 Bus상의 데이터 흐름을 관리한다.

Device 여러 대가 동시에 데이터를 전송하려 할 때, Host Controller는 사용 가능한 시간을 나눠 그중 일부분을 전송하고자 하는 Device에게 나눠준다.

열거 중에 Device Driver는 전송 타이밍을 보장하는데 필요한 대역폭을 요청한다.
Host는 요청받은 대역폭을 할당할 수 없으면 통신을 시작하지 못한다.
그러면 Driver는 더 작은 대역폭을 요청하거나 기다려야 한다.

Error 확인

Host는 데이터를 전송할 때 Error Check Bit를 추가한다.
Data를 수신하면 Device는 수신한 데이터를 계산한 후 그 결과를 수신한 Error Check Bit와 비교한다.

결과가 일치하지 않으면 Device는 수신한 데이터에 대한 ACK를 보내지 않으므로 Host가 재전송한다.

전원 공급

Host는 전원을 켜니까 Device를 장착할 때 모든 Device에 전원을 공급한다.

Device와 데이터 교환

Host의 주 임무인 Device와 데이터로 교환하는 작업

4. Device 역할

통신 감지

Device는 Bus에서 해당 Device 주소로 오는 통신을 감지해야 한다.

표준 요청에 응답

전원을 켤 때나 전원이 켜진 시스템에 Device를 장착하면, Device는 열거 작업을 위해 호스트가 보내는 표준 요청에 응답해야 한다.

Host는 열거가 끝나는 후에도 언제나 요청을 보낼 수 있다.

Error 확인

전원 관리

Host와 데이터 교환

Host가 데이터를 보낼 때 각 전송에 대해 Device는 자신이 데이터 전송을 받을 것인지, BUSY 상태라 받을 수 없는지를 응답한다.

Device가 Host로 데이터를 보낼 때는 Device는 각 시도에 대한 code 또는 BUSY 신호로 응답해야 한다.

Device는 Host가 요청할 때만 데이터를 보낸다.

열거

Host가 Device를 열거하려면 다음 과정을 수행해야 한다.

  1. Host의 표준 USB 요청이나 Bus 상의 기타 이벤트에 응답할 수 있어야 한다.
    1-1. 이벤트는 Device의 USB 기능을 설명한 자료구조인 Descriptor들이 요구한다.

  2. Window Host의 경우, Device를 확인하고 Driver를 할당할 수 있게 Device Driver와 INF 파일을 만들어준다.

References

profile
만 가지 발차기를 한 번씩 연습하는 사람은 두렵지 않다. 내가 두려워 하는 사람은 한 가지 발차기를 만 번씩 연습하는 사람이다. - Bruce Lee

0개의 댓글