[牛人杂谈]

Xmodem文件传输协议

[复制链接]
1422|8
手机看帖
扫描二维码
随时随地手机跟帖
dongnanxibei|  楼主 | 2017-5-18 19:47 | 显示全部楼层 |阅读模式
FTP 即 File Transfer Protocol 的缩写, 串行通信的文件传输协议主要有: Xmodem、Ymodem、 Zmodem 和 KERMIT 等。
Xmodem 协议一般支持 128 字节的数据包,并且支持一般校验和、 CRC 两种校验方式,在出现数据包错误的情况下支持多次重传(一般为 10 次)。 Xmodem 协议传输由接收程序和发送程序完成。先由接收程序发送协商字符, 协商校验方式,协商通过之后发送程序就开始发送数据包, 接收程序接收到完整的一个数据包之后按照协商的方式对数据包进行校验。 校验通过之后发送确认字符,然后发送程序继续发送下一包;如果校验失败,则发送否认字符,发送程序重传此数据包。




1、定义: <SOH> 01H<EOT> 04H<ACK> 06H<NAK> 15H<CAN> 18H
2、 UART 格式: Asynchronous8 databitsno parityone stopbit  


dongnanxibei|  楼主 | 2017-5-18 19:50 | 显示全部楼层
协议简介
Xmodem 协议是由 Ward Chritensen 于 70 年代提出并实现的,传输数据单位为信息包,包含一个标题开始字符<SOH>,一个单字节包序号,一个包序号的补码, 128 个字节数据和一个单字节的校验和。 它把数据划分成 128 个字符的小包进行发送, 每发送一个小包都要检查是否正确, 如果信息包正确接收方发送一个字节<ACK>的应答; 有错重发则发送一个字节<NAK>应答, 要求重发。因此 Xmodem 是一种发送等待协议,具有流量控制功能。优点:简单通用,几乎所有通信软件都支持该协议。 缺点:慢。

使用特权

评论回复
dongnanxibei|  楼主 | 2017-5-18 19:51 | 显示全部楼层
  
Byte1
  
Byte2
Byte3
Byte4 -- 131
Byte132
Start Of Hearder
Packet Number
~(Packet Number)
Packet Data
CheckSum

检验和信息包格式


Xmodem 协议的数据包格式在 90 年代经过一次修改,传输数据单位仍为信息包,包含一个标题开始字符SOH,一个单字节包序号,一个包序号的补码,128个字节数据和一个双字节的CRC16 校验。所以新的协议格式信息包如图1-2所示。
  
Byte1
  
Byte2
Byte3
Byte4 -- 131
Byte132 -- 133
Start Of  Hearder
Packet Number
~(Packet  Number)
Packet Data
16-Bit CRC
CRC校验信息包格式

使用特权

评论回复
dongnanxibei|  楼主 | 2017-5-18 19:55 | 显示全部楼层
谁看看,能否搞个通用的,方便移植的代码出来。
用 UART 做文件传输(采用 Xmodem协议).pdf (705.42 KB)

使用特权

评论回复
heisexingqisi| | 2017-5-18 20:07 | 显示全部楼层
楼主有心了,这么老的资料都翻出来了。

使用特权

评论回复
xixi2017| | 2017-5-18 21:48 | 显示全部楼层
是一种不错的通信协议。

使用特权

评论回复
晨海| | 2020-5-26 15:52 | 显示全部楼层
感谢楼主

使用特权

评论回复
天灵灵地灵灵| | 2020-5-26 20:22 | 显示全部楼层
学习学习。

使用特权

评论回复
xinxianshi| | 2020-5-26 21:25 | 显示全部楼层
不太了解看看。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

187

主题

3481

帖子

16

粉丝