Ymodem 协议详解
Ymodem 协议详解 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数据帧