Skip to content

Universal Serial Bus (USB)

USB는 컴퓨터의 각종 주변 기기들을 쉽게 연결하기 위한 인터페이스 규약으로
2024년 현재 다른 규격들을 제치고 진정한 Universal (범용) 규약 으로 자리 잡음.

당초에는 노트북 의 확장성을 위해 개발 되었으나,
오늘날 휴대폰 및 휴대용 선풍기, 스피커 등등의 거의 모든 컴퓨터나 휴대폰 관련 주변기기의 인터페이스 로 자리잡았다.

또한

  • 주변기기 연결(제어 및 데이터 통신)이 주 목적이었지만,
  • 어느새 주변기기의 전원 공급 및 휴대기기의 충전 단자의 표준까지 된 상태이다.
  • 더욱이 원래 USB 내에서도 여러 Connector 방식이 있었으나
  • 최근엔 USB-C Type으로 통일되어가는 추세임.

규격이 계속해서 발전하고 있기 때문에, 최신 내용을 점검해 보는 게 좋음.
아래 내용은 USB2.0 정도 수준에 조사된 내용이 대부분 인지라 수치 등의 부분은 달라져 있을 수 있음.



History

1994년 Intel, Microsoft, NEC, DEC, 컴팩, 노텔 등 7개 기업이 공동으로 개발을 시작:

  • 당시 직렬과 병렬 포트를 대체하는 새로운 주변기기 연결 표준을 목표로 함.
  • 연결성과 사용 편의성 개선을 주안점으로 둠.

USB 1.0 (1996)

  • 1.5 Mbps 와 12 Mbps 의 2가지 모드의 데이터 전송 속도 지원.
  • 초기의 경우, 호환성 및 안정성 문제로 그리 널리 사용되지 못함.

USB 1.1 (1998)

  • 1.0 당시의 문제점을 다수 개선.
  • 본격적으로 시장에서 채택되기 시작.

USB 2.0 (2000.4)

  • 최대 480 Mbps 데이터 전송 속도 제공
  • 외장 하드디스크 등의 대중화에 기여.

USB 3.0 (2008)

  • 5 Gbps 의 전송속도 지원.
  • SuperSpeed 모드 도입.
  • 높은 하위 호환성을 유지.

USB 3.1 (2013)

  • 최대 10 Gbps 전송속도 지원.
  • SuperSpeed+ 라는 별칭으로 불림: 고해상도 비디오 전송 가능.
  • USB-PD(USB Power Delivery) 가 본격적으로 구현 (최대 100W, 20V, 5A).
  • USB-C 포트 등장: 양면 대칭 디자인!!

USB 3.2 (2017)

  • 최대 20 Gbps 전송속도 지원.

USB 4.0 (2019)

  • 최대 40 GbPs 전송속도 지원.
    • 20 Gbps에서 시작하여 옵션으로 40 Gbps을 지원.
    • 즉, 모든 USB 4.0 기기는 최대속도가 적어도 20 Gbps는 보장.
  • 썬더볼트 3 protocol과 호환.
    • 모든 썬더볼트 4 의 경우, USB 4.0을 완전히 지원.
    • 단, 모든 USB 4.0은 썬더볼트 4를 지원하는 건 아님.
  • 디스플레이 포트 및 PCI 익스프레스에 대해 Tunneling(터널링) 지원.
    • 하나의 케이블로 모니터와 외장하드 등을 동시에 연결.
  • 데이터 전송(Display Port, PCIe)과 전력공급 (USB Power Delivery, USB-PD) 를 동시에 처리할 수 있음: 최대 240W

Tunneling 이란?

다양한 Data Protocol을 하나의 물리적 연결 을 통해
동시에 전송 할 수 있도록 데이터를 Encapsulation 하여 전송.
예를 들어 하나의 연결선으로 비디오, 오디오, 기타 데이터 스트림을 동시에 처리할 수 있음.

Thunderbolt (썬더볼트) 란?

Apple과 Intel이 공동개발한 고속 데이터 전송 및 멀티프로토콜 연결 기술 (2011년 1.0 발표).
2020년 발표된 4.0의 경우,
USB-C 포트를 통해 최대 40Gbps의 속도로 데이터를 전송하며,
하나의 케이블로 데이터, 비디오, 오디오, 전력공급을 동시에 처리. 4K/ 8K 디스플레이 연결과 외장 GPU, 하드 등의 다양한 주변기기의 연결을 하나의 케이블로 처리케 함.



특징.

  • Host Controller가 End Point들 Device들을 제어하는 방식
    • 이 Host Controller (Mather Board Chipset에 통합되는 추세) 에만 IRQ (Interrupt ReQuest)가 할당되기만 하면
    • 여러 개의 USB 주변기기 (이론상 127개)를 연결할 수 있다 는 높은 확장성을 가짐.
    • 덕분에 주변기기의 Controller (End Point) 구성이 단순하고,
    • CPU(Host Controller 제어) 의존도가 높은 편임.
      • 초기엔 IEEE1394 (Firewire)에 비해 CPU 점유울도 높고 느렸지만,
      • CPU의 어마어마한 발전으로 인해 단점이라고 하기 어렵게 되었고
      • 오히려 controller가 단순하여 많은 주변기기에 저가로 구현할 수 있다는 장점이 된 상태임
      • 참고로 IEEE1394은 "고가로 유명한 SCSI방식"의 후계자였는데 그 역시 고가로 인해 저가인 USB에 밀리게 된 것이 참 재밌는 사실 중 하나임.
  • Hot PluggingPlug and Play 를 지원하여 컴퓨터 전원을 끌 필요 없이 주변기기 추가가 가능함.
    • Hot Plugging : 전원이 켜있는 상태에서 Device를 탈부착하는 것을 의미.
    • Plug and Play : 연결(plug)하면 자동적으로 인식하며, 드라이버가 없는 경우는 드라이버 설치 작업이 시작(이 경우, 사용자와 interaction은 필요)되고, 이미 드라이버가 있는 경우는 그대로 해당 주변기기를 사용(play)할 수 있는 기능.
  • 고속의 데이터 통신 지원 (USB 3.2 : 20Gbps, USB 4 : 40Gbps).
  • 5V (0.5A)를 기본 전압 으로 사용하여 RS-232에 비해 01 전환이 빠르다는 장점을 가짐
    • 데이터 전송에 국한된 내용임.
    • 최근엔 급속충전용으로 사용되면서 최대전압이 20V (USB 3.1), 48V (USB 4)가 되는 USB-PD (USB Power Delivery) 방식이 제정되었음.
      • 이들은 별개의 규약이지만 데이터 전송의 경우와 마찬가지로 Type-C 케이블로 동작 하므로 사용자 입장에선 차이를 못 느낀다.
      • 충전 중 데이터 전송도 가능.
      • 2021년 USB-PD 3.1 이 발표 되면서 최대 240W 의 전력 공급이 가능해짐.
    • 2022년에 노트북 중에서 외부 단자가 오직 USB-C 포트만 있는 경우도 등장함.
  • USB 2.0 까지는 4개의 선 (5V, GND, Differential Signaling x2 )으로 구성 (하지만 오늘날 USB-C에선 24개의 선으로 늘어남)
  • Header와 payload로 구성된 Packet으로 데이터를 전송 함.

USB의 경우,

  • 확장성이 커지면서
  • 여러 분야의 요구가 충돌하는 문제가 발생하고 있으며
  • 점점 복잡해지고 있음.

전송방법

Host와 Device 간의 데이터 전송만 가능 하며
각 장치간의 직접적인 데이터 교환은 안 됨.
(즉, 장치간의 전송에도 Host가 개입해야한다.)

다음의 전송모드로 구성됨.

Isochronous Transfer (등시성 전송)

  • 항상 같은 속도로 데이터 전송을 보장 하는 전송모드.
  • 데이터 전송 중 오류가 발생하더라도 재전송을 요구하지 않음.
  • Audio/Video 데이터 전송 등에 사용된다.
  • 가장 높은 우선순위의 Frame으로 8 Mbps의 전송속도를 보장.
  • 데이터 방향을 알려주는 Token Packet (이는 Out Token = Host가 Device 에게 데이터를 보냄을 알림)과 전송 데이터인 Data Packet으로 구성됨.
-chronous
시간을 의미하는 접미사.

Interrupt Transfer (인터럽트 전송)

  • HID (Human Interface Device)와 데이터 전송에 사용됨(저속 전송 모드임).
  • 1.5Mbps 의 속도를 보임.
  • 작은 크기의 데이터가 비주기적으로 보내짐.
  • device가 인터럽트 요청을 queue에 차례대로 쌓아두고 host가 polling(device에게 보내줄 데이터가 있는지 확인하고 가져가는 것을 의미)을 하면 해당 요청들이 host로 보내짐.

Bulk Transfer (벌크전송)

  • 앞서 두 전송모드를 수행하다가 여유가 있을 때 실행됨.
  • 프린터 등과의 통신처럼 많은 데이터가 신뢰성 있게 전송되어야 하나 실시간 처리는 필요없는 경우에 사용 됨.
  • 외장 HDD와의 데이터 전송도 이 방식을 이용.

Control Transfer (제어전송)

  • Device들에 명령을 내리거나 상태 제어를 하는데 사용됨.

참고하면 좋은 사이트