YMODE协议注意事项详解

目录

YMODE协议概述

1. Ymodem 帧格式

1.1 帧头

1.2 包序号

1.3 帧长度

1.4 校验

2.Ymodem握手信号

3.Ymodem起始帧

4.Ymodem数据帧

5.Ymodem结束帧

6.Ymodem常用命令

YMODE-应用场景

YMODE整体分类总结


YMODE协议概述

        YMODEM协议是一个文件传输协议,由Chuck Forsberg于上世纪90年代开发完成,通常用于资源受限的设备。本质上由XMODE演变而来,具有传输快速稳定的优点。 是一种调制解调器所使用的一种纠错协议。它类似于Modem协议。YModem协议使用循环冗余码校验作为检错的方法。YModem是一种比较高效的文件传输协议,每包数据1024或者128字节,协议格式如下:

1. Ymodem 帧格式

Ymodem 有两种帧格式,主要区别是信息块长度不一样。

1.1 帧头

帧头表示两种数据帧长度,主要是信息块长度不同。

1.2 包序号

数据包序号只有1字节,因此计算范围是0~255;对于数据包大于255的,序号归零重复计算

1.3 帧长度

【1】以SOH(0x01)开始的数据包,信息块是128字节,该类型帧总长度为133字节。

【2】以STX(0x02)开始的数据包,信息块是1024字节,该类型帧总长度为1029字节  

1.4 校验

Ymodem采用的是CRC16校验算法,校验值为2字节,传输时CRC高八位在前,低八位在后;CRC计算数据为信息块数据,不包含帧头、包号、包号反码

2.Ymodem握手信号

握手信号由接收方发起,在发送方开始传输文件前,接收方需发送YMODEM_C (字符C,ASII码为0x43)命令,发送方收到后,开始传输起始帧。

3.Ymodem起始帧

Ymodem起始帧并不直接传输文件内容,而是先将文件名和文件大小置于数据帧中传输;起始帧是以SOH 133字节长度帧传输,格式如下。

其中包号为固定为0;Filename为文件名称,文件名称后必须加0x00作为结束;Filesize为文件大小值,文件大小值后必须加0x00作为结束;余下未满128字节数据区域,则以0x00填充。

4.Ymodem数据帧

Ymodem数据帧传输,在信息块填充有效数据。

5.Ymodem结束帧

Ymodem的结束帧采用SOH 133字节长度帧传输,该帧不携带数据(空包),即数据区、校验都以0x00填充。

6.Ymodem常用命令

YMODE-应用场景

         文件下载、IAP等单片机程序升级是应用比较普遍的场景

YMODE整体分类总结

        YModem分成YModem-1K与YModem-g。 YModem-1K用1024字节信息块传输取代标准的128字节传输,数据的发送回使用CRC校验,保证数据传输的正确性。它每传输一个信息块数据时,就会等待接收端回应ACK信号,接收到回应后,才会继续传输下一个信息块,保证数据已经全部接收。 YModem-g传输形式与YModem-1K差不多,但是它去掉了数据的CRC校验码,同时在发送完一个数据块信息后,它不会等待接收端的ACK信号,而直接传输下一个数据块。正是它没有涉及错误校验,才使得它的传输速度比YModem-1K来得块。 一般都会选择YModem-1K传输,平时所说的YModem也是指的是YModem-1K。

  • 32
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芯源义码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值