SOH -  数据的开始头(01H)。任何数据块都由此开始。
    ACK -  收到的指令(06H)。当接收服务器正确接收到每一模块的数据后,将发出此指令。
    NAK -  否定的指令(15H)。当接收服务器错误接收到每一模块的数据后,或当数据信号进行CHECKSUM运算时,将发出此指令。
    EOT -  传输结束(04H)。通知接收服务器最后的数据块已传输完成,整个传输过程已结束。
XMODEM协议中的数据块格式
  <SOH><ID block><NOT ID block><128 bytes data><8bit checksum>
SENDER(发送器)和RECEIVER(接收器)的通讯结构
SENDER                                     RECEIVER
                                                    <NAK>
<SOH>01FE<128bytesblock><checksum>                        
                                                    <ACK>
<SOH>02 FD<128 bytes block><checksum>
如果在传输过程中发生一个错误:
                                                     <NAK>
<SOH>02 FD<128 bytes block><checksum>
                                                      <ACK>
<SOH>03 FC<128 bytes block><checksum>
                                                                 
如果SENDER不能识别ACK:
 <SOH>03FC<128bytesblock><checksum>                 <ACK><EOT>                                                <ACK>
请问各位如何用VB实现以上协议的接收
能否详细说明,谢谢!!!!!

解决方案 »

  1.   

    以前做过上下位机通过rs232进行通讯的系统,但是采用了Moxa的pcomm库,建议使用,无须顾及底层细节,直接调用相关函数即可。
    www.moxa.com.cn
      

  2.   

    不能找到特定的字符区分传输开始和结束
    开始标记01H在第一数据块开头也是01H
    结束标记02H在第二数据块开头也是02H把传输模式改为文本的话,因存在像FE  FF  FC 等字节接收时会被当成一个汉字。唉,烦透了
      

  3.   

    到这里看看:
    http://www.gjwtech.com/serialcomm.htm