基于类串口通信的文件传输协议,ymodem应用非常广泛,比如在MCU IAP中,常用的就是这种协议。ymodem是xmodem的改进版协议,具有传输快速稳定的优点。它可以一次传输1024字节的信息块,同时还支持传输多个文件。
本文ymodem源码基于C语言,采用回调机制,设计为独立的C库,包含了发送端和接收端的实现。
YMODEM协议简介
YMODEM源码简介
/*
* ymodem.h
*
* COPYRIGHT (C) 2019. All rights reserved.
*
* Created on: 2019-06-05
* Author: gyr
*
* \briefYMODEM协议库实现
*
* YMODEM文件传输过程:
*
* 发送端 接收端
* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< C
* SOH 00 FF [filename 00] [filesize 00] [NUL..] CRCH CRCL >>>
* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< C
* SOH 00 FF [filename 00] [filesize 00] [NUL..] CRCH CRCL >>>
* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ACK
* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< C
* STX 01 FE data[1024] CRC CRC>>>>>>>>>>>>>>
* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ACK
* STX 02 FD data[1024] CRC CRC>>>>>>>>>>>>>>
* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ACK
* STX 03 FC data[1