文档介绍:Xmodem 协议  传输过程
Xmodem 协议 
1。帧格式
 _______ ____________ __________________ __________ ___________
 |     |            |                  |          |            |
 | SOH | 信息包序号| 信息包序号的补码| 数据区段| 算术校验和| 
 |_____|________ _  |_______________  _|________  |_________  _|
 
 说明:
 SOH 帧的开头字节,代表信息包中的第一个字节
 
 信息包序号: 对 256 取模所得到当前包号,第一个信息包的序号为 1
  而信息包序号范围 0~255
 
 信息包序号的补码: 当前信息包号的补码
 
 数据区段: 数据区段的长度固定为 128 字节,其内容没有任何限制,可以是
  文本数据或二进制数据
 
 算术校验和: 1字节的算术校验和,只对数据区段计算后对 256 取模而得 
 
2。传输逻辑
 1> 收发双方拨号连通后,发送方等待接收方传来 NAK 信号。当第一个 NAK 到达,
  发送方解释为开始发送第一个包
 2> 发送方一旦收到第一个 NAK ,启动了传输,发送方就将数据以每次 128 字节
  打包成帧格式传送,再等待接收方的确认信号
 3> 发送方收到接收方传来的 ACK 信号,解释为信息包被正确接收,并有发送下一
  个包的含义 
 4> 发送方收到接收方传来的 NAK 信号,解释为请求重发同一数据包
 5> 发送方收到接收方传来的 CAN 信号,解释为请求无条件停止传输过程
 
 6> 发送方正常传输完全部数据,需要正常结束,发送 EOT 信号通知接收方。接收
  方用 ACK 进行确认
 7> 接收方发送 CAN 无条件停止传输过程,发送方收到 CAN 后,不发送 EOT 确认
 
 8> 虽然信息包是以 SOH 来标志一个信息包的起始的,但在 SOH 位置上出现的 EOT
  则表示数据传输结束,再也没有数据传过来
 9> 接收方首先应确认信息包序号的完整性,通过对信息包序号取补,然后和信息包
  序号的补码异或,结果为 0 表示正确,结果不为 0 则发送 NAK 请求重传
 10>
接收方确认信息包序号正确后,然后检查是否期望的序号。如果不是期望得到的
  信息包序号,说明发生严重错误,应该发送一个 CAN 来中止传输
 11> 对于10>情况的唯一例外,是收到的包的信息包序号与前一个信息包序号相同,
  此中情况,接收方简单忽略这个重复的包,向发送方发出 ACK ,准备接收下一个包
 12> 接收方确认了信息包序号的完整性和是正确期望的后,只对 512 字节的数据区段
  进行算术和校验,结果与帧中最后一个字节(算术