그라운드 임베디드 EN 유튜브 구독

노트 / 통신 프로토콜

USB 기초: PC와 가상 시리얼로 통신하기

디스크립터, 엔드포인트, 클래스. MCU를 USB에 꽂으면 COM 포트로 보이게 하는 CDC까지.

GROUND EMBEDDED · 정리 노트통신 09USB 기초방식용도Control설정, 열거Bulk큰 데이터, 대역 보장 없음 (저장장치…

구조

꽂음PC가 디스크립터 요청장치 종류 확인CDC = 가상 COM드라이버 연결엔드포인트로 데이터
PC가 장치를 알아보는 순서. 장치가 디스크립터로 자기소개를 하면 PC가 맞는 드라이버를 붙입니다.

USB는 호스트(PC)가 모든 통신을 시작합니다. 장치는 호스트가 물어볼 때만 답합니다.

  • 열거: 장치를 꽂으면 호스트가 디스크립터를 읽어 "어떤 장치인지, 무엇을 할 수 있는지" 파악하고 드라이버를 붙입니다.
  • 엔드포인트: 장치 안의 데이터 창구. 0번은 제어용, 나머지는 데이터용(IN은 장치→호스트, OUT은 호스트→장치)

전송 방식

방식 용도
Control 설정, 열거
Bulk 큰 데이터, 대역 보장 없음 (저장장치, CDC)
Interrupt 작고 주기적 (키보드, 마우스)
Isochronous 실시간, 재전송 없음 (오디오)
무료 전자책이 주제를 한 권으로 이어 읽기 (PDF 3권)→

CDC: 가상 COM 포트

CDC 클래스로 구현하면 PC에서 COM 포트로 보여서 시리얼 터미널로 바로 통신할 수 있습니다. 보레이트 설정은 의미가 없고 USB 속도로 오갑니다. STM32CubeMX에서 USB_DEVICE → CDC를 켜면 CDC_Transmit_FS()로 보낼 수 있습니다.

하드웨어 주의

  • USB는 48MHz 정확한 클럭이 필요합니다(HSE 또는 USB 지원 HSI48 + CRS).
  • D+, D-는 90Ω 차동 배선, 커넥터 옆에 ESD 보호
  • 셀프 파워 장치는 VBUS 감지가 필요합니다.
영상으로 이어 보기통신 시리즈 13편UART 통신 완벽정리 | 전기전자, 전자과, 임베디드 개발자 필수 시청PROJECT COURSEI2C로 MPU6050을, UART로 블루투스 모듈을 직접 붙여 보고 싶다면밸런싱 로봇 하나를 요구사항, 회로와 PCB, 펌웨어, 앱까지 실무 순서대로 만드는 강의입니다. 10파트 165강.강의 살펴보기 →FREE PDF무료 전자책 3권 받기이 주제를 한 권으로 이어서 읽고 싶다면. BLDC 모터 제어, 직렬통신, 센서를 책 분량으로 묶었습니다. 이메일만 남기면 바로 받습니다.무료로 받기 →