[UART][Protocol] - YMODEM

김보성·2025년 6월 20일
0
post-thumbnail

YMODEM

  • YMODEM은 시리얼 포트를 통해 바이너리 파일을 전송하기 위해 개발된 통신 프로토콜

  • Chuck Forsberg가 만든 XMODEM 프로토콜의 확장판이며, 파일 이름, 크기 정보 포함, 1KB 단위 전송, 다중 파일 지원 등 기능이 추가되었음


Packet 구조

header packet

  • 송신측에서 처음에 송신하는 패킷으로, 전송할 파일명과 파일 사이즈가 담겨 있음

  • SOH는 0x01 값으로 고정이고, 128 Bytes의 데이터 길이를 가진 패킷이라는 의미

data packet

  • header packet 송신 후 파일 데이터를 담아 보내는 패킷

  • header에 SOH(0x01) 또는 STX(0x02)가 올 수 있음

    • SOH : 128 Bytes Data
    • STX : 1 KBytes Data

File 전송 흐름

정상적으로 파일이 전송되는 경우

전송이 취소되는 경우

  • 수신측에서 취소

    • CRC가 올바르지 않는 등 수신에 실패하면 NACK(0x15)를 송신측으로 보냄
  • 송신측 또는 수신측에서 취소

    • 파일 전송 또는 수신을 취소하고 싶다면 CAN(0x18)을 송신함
profile
Embedded Software Engineer

0개의 댓글