zhuo1000的个人空间 https://bbs.21ic.com/?1207392 [收藏] [复制] [RSS]

日志

关于YModem协议

已有 301 次阅读2015-8-15 14:35 |个人分类:ISP|系统分类:单片机

Ymodem协议分析

1、明确概念

一步一步来,先把概念搞清楚。

Ymodem协议是一种发送并等待的协议。即发送方发送一个数据包以后,都要等待接收方的确认。如果是ACK信号,则可以发送新的包。如果是NAK信号,则重发或者错误退出。

2、文件传输过程

文件传输过程的开启:

(1)开启是由接收方开启传输,它发一个大写字母C开启传输。然后进入等待(SOH)状态,如果没有回应,就会超时退出。

(2)发送方开始时处于等待过程中,等待C。收到C以后,发送(SOH)数据包开始信号,发送序号(00),补码(FF),“文件名”,“空字符”“文件大小”“除去序号外,补满128字节”,CRC校验两个字节。进入等待(ACK)状态。

(3)接收方收到以后,CRC校验满足,则发送ACK。发送方接收到ACK,又进入等待“文件传输开启”信号,即重新进入等待“C”的状态。

(4)前面接收方只是收到了一个文件名,限制正式开启文件传输,Ymodem支持128字节和1024字节一个数据包。128字节以(SOH)开始,1024字节以(STX)开始。

接收方又发出一个“C”信号,开始准备接收文件。进入等待“SOH”或者“STX”状态。

(5)发送接收到“C”以后,发送数据包,(SOH)(01序号)(FE补码)(128位数据)(CRC校验),等待接收方“ACK”。

(6)文件发送完以后,发送方发出一个“EOT”信号,接收方也以“ACK”回应。

然后接收方会再次发出“C”开启另一次传输,若接着发送方会发出一个“全0数据包”,接收方“ACK”以后,本次通信正式结束。

(7)当然Ymodem相对于Xmodem改进的地方就在于传输再次开启以后,又可以发送另外一个文件,即一次传输允许发送多个文件,但这个特性我就不准备实现了。

SOH 在ASCII码表中为01 数据包开始

STX 在ASCII码表中为02 正文开始

ETX 在ASCII码表中为03 正文结束

EOT 在ASCII码表中为04 数据包结束

ENQ在ASCII码表中为05 询问字符

ACK在ASCII码表中为06 确认




路过

鸡蛋

鲜花

握手

雷人

全部作者的其他最新日志

评论 (0 个评论)