研究 Xmodem 协议必看的 11 个问题
原文地址
协议作为串口数据传输主要的方式之一,恐怕只有做过
的才有机会 接触一下,网上有关该协议的内容要么是英语要么讲解不详细。笔
者以前写 时研究过 !" ,参考了不少相关资料。这里和
大家交流一下我对 的理解,多多指教!
. 协议是什么?
#$%&# 协议是一种串口通信中 广泛用到的异步文件传输协议。分为标
准 和 !" 两种,前者以 '( 字节块的形式传输数据,后
者字节块为 ! 即 ' 字节,并且 每个块都使用一个校验和过程来进行错误
检测。在校验过程中如果接收方关于一个块的校验和与它在发送方的校验和相
同时,接收方就向发送方发送一个确认字节 )*+,-。由于 需要对每
个块都进行认可,这将导致性能有所下降,特别是延时比较长的场合,这种协
议显得效率更低。
././除了 ,还有 0,1 协议。他们的协议内容和
类似,不同的是 0 允许批处理文件传输,效率更高;
1 则是改进的了 ,它只需要对损坏的块进行重发,其它正确
的块不需要发送确认字节。减少了通信量。
'. 协议相关控制字符
././2$3./...././././4
././25 ./.././././4'
././&$5./...././././4
././*+,./...././././4
././6*,./...././././4
././+*6./...././././4(
././+5781/././././4*
9.标准 协议(每个数据包含有 '( 字节数据)帧格式
..
:./...:./../../../.:./../../../../.././:./../.././:./../../../.:
:/2$3/:/信息包序号 :..信息包序号的补码 :/数据区段 :..校验和 :
::::::
.!" (每个数据包含有 ' 字节数据)帧格式
..
:./...:./../../../.:./../../../../.././:./../.././:./../../../.:
:/25 /:/信息包序号 :..信息包序号的补码 :/数据区段 :..校验和 :
::::::
.数据包说明
././对于标准 协议来说,如果传送的文件不是 '( 的整数倍,那么最