x-model协议分析和在vivi代码中的实现

本文介绍了XMODEM协议的工作原理,强调其在异步文件传输中的应用,特别是在帧格式、传输逻辑和超时处理方面的特点。在VIVI代码中,实现XMODEM协议接收方需发送NAK信号。详细分析了接收数据的函数,包括获取字符、处理超时及错误处理机制。最后,阐述了核心的xmodem_receive函数,用于将接收到的数据存储到指定地址。
摘要由CSDN通过智能技术生成

首先介绍xmodel协议:

XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。

如果接收方关于一个块的校验和与它在发送方的校验和相同时,接收方就向发送方发送一个认可字节。然而,这种对每个块都进行认可的策略将导致低性能,特别是具有很长传播延迟的卫星连接的情况时,问题更加严重。

  使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K,它以1024字节一块来传输数据。ZMODEM是最有效的一个XMODEM版本,它不需要对每个块都进行认可。事实上,它只是简单地要求对损坏的块进行重发。ZMODEM对按块收费的分组交换网络是非常有用的。不需要认可回送分组在很大程度上减少了通信量。
  YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征,另外在一次单一会话期间为发送一组文件,增加了批处理文件传输模式。

帧格式

  | SOH | 信息包序号 | 信息包序号的反码 | 数据区段 | 算术校验和 |
  |_____|________ _|________________|________|__________|
  说明:
  SOH 帧的开头字节,代表信息包中的第一个字节
  信息包序号: 对 256 取模所得到当前包号,第一个信息包的序号为 1
  而信息包序号范围 0~255
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值