本模块是一个主要用C语言(便于往单片机上移植)实现的Ymodem协议库，支持通过串口进行文件传输。Ymodem 协议是对 XMODEM 的增强，支持批量文件传输、文件名和文件大小等元数据传递，并使用 CRC-16 进行错误校验，提高了传输的可靠性。 

该模块提供了完整的发送和接收功能，适用于嵌入式系统固件更新、设备配置传输等场景。模块设计注重可移植性和易用性，允许用户通过实现简单的接口来适配不同的底层串口通信驱动。

协议简介Ymodem是一种基于串行通信的发送并等待协议，其核心特征包括：

数据块尺寸灵活：支持 128 字节（SOH）和 1024 字节（STX）两种数据包格式，优先使用1K大包以提高传输效率(发送目前只支持1K大包)。

可靠的错误校验：强制使用 CRC-16 校验算法，确保数据完整性。

文件内容的传输：在传输文件内容前，通过起始帧传递文件名、文件大小等元数据。

多文件批量接收：支持批量连续接收多个文件，接收开启后，会阻塞等待发送端发送，直到会话结束或发生错误；发送目前不支持批量发送多文件，只支持发送单一文件（够用）。

基本的通信流程: 由接收方发起，接收方持续发送字符'C'启动 CRC 模式的传输；-> 发送方收到后，首先发送一个包含文件名和大小的文件头包（起始帧）；
               -> 接收方确认后，发送方开始发送文件数据包；-> 文件传输结束后，发送方发送 EOT，并最终以一个空文件头包结束整个会话。

联调测试的工具：可配合SecureCRT(我的版本v8.5.3)进行串口通信测试，测试文件为 test.bin，大小为61440字节(60K)。

牛九如 2025-12-24 郑州
