ymodem协议上位机_YMODEM协议简介

YMODEM协议是一个文件传输协议,由Chuck Forsberg于上世纪90年代开发完成,通常用于资源受限的设备。

ST官方在STM32CubeHAL库中提供了一个IAP例程,其使用的便是YMODEM协议。这个协议有比较多的变种(YMODEM作者在其协议手册中提及),以至于大家的实现不太一样,本文以STM32CubeHAL库中IAP例程的实现为标准。

下面先对YMODEM协议进行介绍,然后进行代码实现和例程试验。

1. YMODEM协议简介

YMODEM协议的传输过程如下图所示(摘自YMODEM协议手册):

8f2ed0d542973236bf90268f80bc1136.png

  • 其中“sb foo.*”指的是Linux中的sb命令,可在Linux终端执行 sb --help查看使用方法

  • 上图中YMODEM协议传输的数据块是128字节,其实YMODEM协议还支持1024字节的数据块,或者128字节和1024字节混合模式。详情请查阅YMODEM协议手册。

  • SOH 表示本数据块大小为128字节

  • STX 表示本数据块大小为1024字节

  • 本文中EOT指令仅有一次会话,即上图中的最后一次

2. 起始帧的数据格式

YMODEM的起始帧的数据块大小为128字节,传输的是文件名、文件大小、文件

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ymodem协议是一种用于在计算之间进行文件传输的通信协议。它是一种可靠性较高的协议,通过使用数据包序列号、校验和和重传制来确保文件传输的准确性。 在使用Ymodem协议进行文件传输时,上位是指发送文件的计算,vc下载指的是使用Visual C++ (VC)编程语言进行文件下载。 要使用Ymodem协议在上位上实现VC下载,我们可以按照以下步骤进行: 1. 在VC编程环境中,创建一个新的项目,选择适当的文件传输相关函数库或插件。 2. 在项目中引入Ymodem协议的相关函数和类,这些函数和类通常是由编程语言自带或由第三方开发者提供。 3. 设置上位与目标计算之间的串口通信参数,例如波特率、数据位、校验位、停止位等。确保上位与目标计算之间可以进行有效的串口通信。 4. 实现文件选择和发送功能。在上位中,通过与用户交互来选择要传输的文件,并将选定的文件发送到目标计算。使用Ymodem协议,将文件切割成数据包,添加序列号和校验和,然后通过串口发送给目标计算。 5. 实现文件接收功能。在目标计算上,等待上位发送文件。使用Ymodem协议,接收数据包,检查序列号和校验和,如果数据包有误,可以要求上位重传。最终,将接收到的数据包合并成完整的文件。 6. 在文件传输过程中,可以显示传输进度条,以提供用户友好的界面和反馈。 7. 完成文件传输后,确保及时关闭串口连接,释放相关资源。 通过上述步骤,我们可以在VC编程环境中实现使用Ymodem协议进行文件下载的功能。这样能够确保传输的可靠性和准确性,使得文件传输过程更加方便和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值