niujiuru c94ae8b592 新增ymodem模块说明文档 před 10 měsíci
..
Makefile b0abcd231c 实现ymodem协议的c代码完成, 与SecureCRT联调通过 před 10 měsíci
bridge.go 6135d1996b 将ymodem接口暴露给go层 před 10 měsíci
readme.txt c94ae8b592 新增ymodem模块说明文档 před 10 měsíci
ring_buf.c b47d5ef2e0 重新新增ymodem模块, 用c语言实现, 编程中... před 10 měsíci
ring_buf.h b47d5ef2e0 重新新增ymodem模块, 用c语言实现, 编程中... před 10 měsíci
ring_buf_test.c b0abcd231c 实现ymodem协议的c代码完成, 与SecureCRT联调通过 před 10 měsíci
test.bin 8d1788dc38 上传用于ymodem发送测试的test.bin文件 před 10 měsíci
ymodem.c f5d3df796f 优化修改ymodem模块代码 před 10 měsíci
ymodem.go b47d5ef2e0 重新新增ymodem模块, 用c语言实现, 编程中... před 10 měsíci
ymodem.h 7302993d83 优化修改ymodem源码 před 10 měsíci
ymodem_test.c d4340d4539 优化修改ymodem测试代码的日志 před 10 měsíci

readme.txt

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

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

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

数据块尺寸灵活:支持 128 字节(SOH)和 1024 字节(STX)两种数据包格式,优先使用1K大包以提高传输效率。

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

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

多文件批量接收:支持批量连续接收多个文件,发送目前支持单一文件。

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

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

牛九如 2025-12-24 郑州