• XModem与YModem


    XModem用在串口异步传文件:

    1 #define SOH 0x01
    2 #define STX 0x02
    3 #define EOT 0x04
    4 #define ACK 0x06
    5 #define NAK 0x15
    6 #define CAN 0x18
    7 #define CTRLZ 0x1A
    View Code

    标准Xmodem协议(每个数据包含有128字节数据)帧格

                                                                                Xmodem包格式

                 Byte1                             Byte2                           Byte3                       Byte4~131            Byte132~133

        Start Of Header(SOH/STX)          Packet NumberID          ~(Packet NumberID)          Packet Data            16-Bit CRC

    0 发送发每次以128字节的帧结构发送,不足128字节则要用CTRLZ填充,每发送一次都要接收从机端回应的信息,因此效率较低,已经废弃

    1 如果正确发下一包则ACK,错误重发则NACK;强制停止则<CAN>,主机不需要发送<EOT>确认

    2 发送方发送完成则发送方发送<EOT>通知接收方。接收方回以<ACK>进行确认;

    3 启动发送由从机发起,'C'表示进行CRC16校验,NAK表示进行累加和校验。校验先CRCH后 CRCL

    Ymodem:

    YModem协议是XModem的改进协议,快速(一次传输1024字节的信息块,同时它还支持批文件传输),传输稳定。YModem分成YModem-1K(数据块1K,帧头STX,用的较多)与YModem-g(去掉CRC,不等待ACK所以速度快)

    YModem的采用的是CRC16-CCITT欧洲版本的CRC校验,它的生成多项式为:x16+x12+x5+1

    1、起始帧的数据格式:

      SOH  00 FF  filename[多加00作为结束 ] filezise[多加00作为结束 ]  NUL[表示剩余以00填充 ] CRCH CRCL

          如果文件大小小于1024则

      SOH 01 FE data[,1A ...1A ]  CRCH CRCL 

    2、数据帧的数据格式:

      STX 01 FE data[1024] CRCH CRCL

            剩余128~1024则:不足1024的用1A填充:       STX [Index] [~index] data[,1A ...1A ]  CRCH CRCL

           剩余0~18则:不足128的用1A填充:       SOH [num] [~~num] data[ ,1A...1A]  CRCH CRCL

    3、结束帧数据结构:

         SOH 00 FF NUL[128个00] CRCH CRCL

    eg:j将文件名为foo.c,大小为4196Byte(16进制为0x1064)的文件作为传输的过程:sizeof("foo.c")=6;sizeof("1064")=5;

     ZMODEM:精华在于实现了类似于TCP在保持一个可靠连接的同时,采用滑窗技术避免过长的确认信息等待,从而提高传输速度。其他特点还包括发送方自动发送、自动重传;串流式(streaming)传输方式,传输速度较快,而且还具有自动改变区段大小和断点续传、快速错误侦测等功能,secureCRT中集成了一个zmodem协议.

  • 相关阅读:
    新标准C++程序设计读书笔记_继承和多态
    新标准C++程序设计读书笔记_运算符重载
    新标准C++程序设计读书笔记_类和对象
    关于在linux中使用图形界面的网络管理工具
    桌面显卡天梯图和桌面cpu天梯图
    关于linux下关于ssd的使用
    archlinux中c语言的rpc编程
    关于eclipse的一些配置
    利用wireshark抓包获取cookie信息
    笔记本中的archlinux调节亮度
  • 原文地址:https://www.cnblogs.com/jieruishu/p/10932268.html
Copyright © 2020-2023  润新知