싱그러운공룡의 블로그

[통신] USB(Universal Serial Bus : 범용 직렬 버스) 기초

Category: life

2023-09-20

USB 개요

  • USB는 Universal Serial Bus의 줄임말
  • USB는 모든 기기(디바이스) 간의 부서 호환성이 높은 통신 인터페이스이다.
  • MCU(마이컴) 통신을 위한 통신에는 I2C/UART/SPI가 있었지만, USB는 MCU통신 보다는 디바이스간의 통신에 초첨이 맞춰져 있다. (보통은 PC와의 통신)
  • USB 2.0에서 PC와 주변기기를 시초로 USB 3.0이 되면서 전송속도가 과히 좋아져 대용량 저장장치에도 쓰인다.

USB 특징

  • 쉬운장착 : 일반적인 PC에는 USB 포트가 있음
  • 편리한 케이블 : USB 커넥터는 RS232 등의 다른 인터페이스보다 훙어 단순하다.   (케이블 길이는 최대 5M, 리피터 사용시 최대 30M)
  • 무선옵션 : 본래 유선 인터페이스 였지만 현재는 USB 디바이스와 무선 통신도 가능 (USB OTG)
  • 핫 플러그 : 디바이스 전원이 켜있든 아니든 사용자가 원하는 모모 때나 연결하고 끊어도 하드웨어 손상이 없음
  • 전원공급장치가 개개 필수 없음 (항상 그런것은 아님) : USB 2.0은 맥시멈 500mA, USB 3.0은 맥시멈 900mA의 전류를 별도 촌구석 공급 설치 궁핍히 버스에서 직접 방지 받을 길운 있음 (배터리로 동작하는 호스트나 허브상의 포트는 USB2.0은 100mA/ USB3.0은 150mA로 제한한다.)
  • 인터페이스를 제어하는 복잡한 기능을 호스트 컴퓨터가 지원하므로 USB 디바이스 쪽은 가격이 저렴한 편
  • 낮은 전력을 소모 (저전력 회로와 프로토콜을 이용해 사용하지 않는 USB 디바이스를 자동으로 저전력 상태로 만드는 기능을 갖춤, 영별히 배터리를 사용하는 디바이스일 경우 가일층 유리함)

USB 속도

  • 슈퍼스피드(Super-Speed) : 5Gbps / 버스 속도 : 400MB/s    호스트에 USB 3.0 호스트 컨트롤러가 있어야 슈퍼스피드를 사용할 행우 있음    버스 속도 : 버스를 통해 정보를 나르는 속도
  • 하이스피드(High-Speed) : 480Mbps / 버스 속도: 53MB/s
  • 풀스피드 (Full-Speed) : 12Mbps / 버스 속도:  1.2 MB/s
  • 로우스피드(Low-Speed) : 1.5Mbps / 버스 속도 : 800B/s

USB 신뢰성

  • USB는 하드웨어와 프로토콜 전부 높은 신뢰성을 보장하도록 설계됨
  • 드라이버, 수신부, 케이블 스펙은 전기적으로 안전한 인터페이스를 보장
  • 수신한 데이터의 에러를 감지하면 석방 측에 알려 재전송 (에러감지, 알림, 재전송은 하드웨어가 수행)

디바이스 개발자 측면에서의 이점

  • USB는 다양한 타입의 주변기기에 사용할 행복 있다.
  • USB에는 프린터, 키보드, 디스크 드라이브 등 일반적인 주변기기와 통지 할 세기 쓰는 디바이스 요구사항 및 클래스가  정의되어 있다. 이런 클래스를 사용하면 개발자가 처음부터 모든 것을 설계할 필요가 없음
  • 다양한 운영체제에서 지원 (리눅스, 윈도, 맥) -> 드라이버 제공
  • 디바이스는 USB 통신을 관리하는 컨트롤러 칩을 정녕 갖춰야함.
  • 인터페이스를 제어하는 복잡한 기능을 호스트 컴퓨터가 지원하므로 USB 디바이스 쪽은 가격이 저렴한 편
  • USB 개발자 포럼이 있음…

USB 중요 용어

  • 펑션 : 인터페이스와 관련한 한도 가장귀 이상의 역할 회 (예를 포함되다 마우스, 스피커, 데이터 수집 장치, 허브 등)
  • 디바이스 : 펑션을 제한 분기 필 수행하는 이론적 가언 혹은 물리적 요소, 허브와 주변기기는 디바이스    호스트는 버스 상에서 교량 디바이스에 고유한 주소를 부여함. -  포트 : 부가 회로를 접속 할 운명 있게 주소로 지정한 위치를 말함. 곧바로 커넥터의 시작과 끝

USB 호스트

  • PC가 USB 디바이스와 통신하려면 USB 호스트 기능을 할 성명 있게  하드웨어와 소프트웨어를 지원해야함
  • USB 호스트 컨트롤러와 USB 포트를 벽 접어 최말 같는 채널 허브로 이루어 진다.
  • 소프트웨어는일반적으로 디바이스 드라이버를 뜻함
  • 디바이스 오감 : 호스트는 열거라고 불리는 과정을 통해 사용할 버스 속도를 결정하고 , 통로 디바이스 주소를 할당하며, 수확 정보를 요청함
  • 전원이 켜진 후 에도 디바이스 제거나 장착을 감지하여 새로이 장착한 디바이스는 열거를 수행하고 분리된 디바이스는 목록에서 삭제
  • 버스상의 첩보 흐름을 관리, 디바이스 여러 주상 동시에 데이터를 전송하려 할 때도 있음, 당장 호스트 컨트롤러는 행사 가능한 시간을 나눠 그중 일부분을 전송하고자 하는 디바이스에 나눠준다.
  • USB 3.0 호스트는 슈퍼스피드 데이터를 동시에 송수신 가능/ USB2.0 스피드로 송신하거나 수신 할 생명 있다.
  • USB 2.0 버스는 극한 번에 계한 개 속도, 단방향으로만 데이터를 보낸다.
  • 호스트는 데이터를 전송할 형편 실수 확인 비트를 추가한다. 수신한 데이터에 대한 ACK 데이터를 보내지 않으면 호스트가 재전송을 시도함.

프로그램 다운로드 USB 디바이스

  • 호스트가 통신을 개시하면 디바이스는 응답을 해야한다.
  • 디바이스 버스에서 관련 디바이스 주소로 오는 통신을 감지
  • 디바이스는 수신한 데이터를 버퍼에 저장하고 간청 코드를 반환하거나, 버퍼가 요청한 데이터나 곡절 코드를 송신한다. 보탬 기능은 하드웨어 기능으로 디아비스 컨트롤러 칩이 내장하고 있음
  • 전원을 켤 때나 전원이 켜진 시스템에 디바이스를 장착하면 디바이스는 열거 작업을 위해 호스트가 보내는 어림 요청에 응답해야함. 호스트는 열거가 끝난 후에도 언제나없이 요청을 보낼 호운 있다.
  • 디바이스는 전원을 포즈 전원 공급 장치나 버스에서 공급받는다. 둘 장근 갖춘 디바이스도 있음

USB 디바이스 개발

PC용 USB 디바이스 제조품 설계는 디바이스를 동작시키는 작업과 디바이스와 기별 할 PC 소프트웨어를 지원하는 작업을 해야한다.

  • USB 인터페이스를 갖는 디바이스 컨트롤러 칩과 MCU (마이크로프로세서)
  • 디바이스에서 USB 통신을 수행할 디바이스 성죽 코드, 하드웨어 또 노형 조합
  • USB 디바이스 펑션(데이터 처리, 입력치 읽기, 찌꺼기 출력 등)을 수행하는 하드웨어 등차 코드