欢迎来到通信人在线![用户登录] [免费注册]

Modem的文件传输协议与AT命令集

浏览:5955  来源:通信人在线  日期:2019-01-03

一、Modem间通信所使用的文件传输协议

同其他数据通信方式类似,Modem间的通信也需要利用协议来完成。一般称这些协议为文件的传输协议。其中较著名的有X Modem协议、Y Modem协议、Z Modem协议、KERMIT协议等。需要注意的是,由于Modem间通信的协议有多种,因此并非任意两台Modem间都能进行正常通信,能够相互通信的Modem必须遵守相同的协议。

1X Modem协议

X Modem协议是一种非常通用的文件传输协议,最初是由WChristensen20世纪70年代提出并实现的。它使用一般的等待式ARQ协议,信息包中数据区的长度是固定的。对于包序号,采取了特殊的保护,该区段由包序号和它的补码组成。其信息包的构成如图1-1-1所示;每一部分的含义与要求详见下表1-1-1

1-1-1X Modem协议中信息包的组成

1-1-1X Modem协议中信息包组成的含义与要求

下图1-1-2和图1-1-3分别为X Modem的发送流程图和接收流程图。

1-1-2X Modem的发送流程图

1-1-3X Modem的接收流程图

由于CRC校验较简单的算术和校验有好得多的性能,人们随后又提出了CRC校验形式的X Modem,称作X Modem-CRC协议。为了与使用算术和校验的X Modem(现在我们称其为X Modem-CHKSUM)保持兼容,X Modem-CRC采用字符C作为协议的启动字符。若经过一段时间后,通信不能建立,则收方换用XMODEM-CHKSUM的启动字符NAK来通知发方发送数据。图1-1-4X Modem-CRC的接收流程图。X Modem-CRC的发送流程与X Modem-CHKSUM基本相同,只是开始建立通信的过程有所不同。

1-1-4X Modem-CRC的接收流程图

X Modem协议是一种设计较为简单的通信协议,最初只是支持单文件的传输,并且接收端利用单字符进行应答,因而其可靠性有时也值得怀疑。X Modem的局限性详见下表1-1-2。尽管存在以上诸多缺陷,对于计算机通信来说,X Modem还是一种非常有效的协议,因而非常流行。一般情况下,用户完全可以放心使用,大多数的通信软件也支持X Modem协议。

1-1-2X Modem的局限性

2Y Modem协议

20世纪80年代初出现的Y Modem协议是在 X Modem协议的基础上进行改进后提出的,它较X Modem协议在效率和可靠性等方面均有很大改进。Y Modem协议与X Modem协议的主要区别详见下表1-2

1-2Y Modem协议与X Modem协议的主要区别

尽管如此,Y Modem协议是在X Modem协议的基础上改进而来的,X Modem的一些固有缺点依然存在于Y Modem协议中。尤其是要求系统支持8位数据,这不适合于一些只支持7位数据的系统,这在下面将要讲到的KERMIT协议中得到了很好的解决。当然,在IBM PC及兼容机中是不存在这个问题的。

3Z Modem协议

Z Modem不但具有纠错能力,而且还是一种流式协议,它不再是由接收方发送ACK引导,而完全以包引导。

4KERMIT

KERMIT协议是一种较X Modem协议更通用的传输协议,它的设计目的就是为不同系统间的数据传输提供一种通用的传输协议。它也是一种发送并等待ARQ协议,只是其信息包的产生非常复杂和灵活。简单地讲,它有表1-4所示的5个特点。

1-4KERMIT协议的特点

由于只要求系统支持七位数据,对于控制字符02H1FH和非七位ASCII字符(80H~0FFH),KERMIT是通过用可打印ASCII字符对它们进行编码来传输的。因此,如果传送的是二进制文件而非标准DOS文本文件时,KERMIT的传输效率非常低。从这个角度讲,KERMIT是最后的选择,如果X Modem等协议能正确地工作,就不要用KERMIT来进行传输。这种编码功能是可选的,当系统支持8位数据格式时,可以不采用编码而直接传输,这有助于提高效率。

5、各种文件传输协议比较

上述几种通信协议的比较如下表1-5所示。

1-5:几种Modem传输协议比较

二、AT命令集

控制Modem可以使用AT命令集。AT命令集最初是由原贺氏(Hayes)公司开发的,现已成为工业界广泛采用的事实标准。AT命令可用来配置Modem使它与通信软件协同工作,与远程系统通信、拨号和呼叫、应答等。AT命令定义了如何配置Modem,如何建立连接以及如何测试Modem

由于大多数的通信软件都提供一个配置和测试Modem的菜单,通过程序解释成AT命令来控制Modem。因此,大多数情况下,不用也没有必要使用AT命令。不过,有一些通信软件可能不支持某些Modem的配置参数,或者要求直接发送AT命令给Modem。在这些情况下,用户就得利用AT命令控制Modem。要注意的是,AT命令是无法代替通信软件的,例如,发送和接收文件必须要由通信软件完成,AT命令无法完成系统间文件传送。

AT命令不能直接在DOS提示符下执行,只能借助于通信软件,例如Windows 3.1下的Terminal程序便是一个好例子。AT命令以AT字符开始,加上命令和参数。有的AT命令为单个字符,有的为一串字符。例如,D命令用于拨号,而&D命令则控制ModemDTR信号的使用。AT命令后面可能带一个数字参数(012,…),例如,E0命令表示禁止字符回显;E1命令则允许字符回显。如果数字没有指明,则假设为0。例如,EE0一样,禁止字符回显。一个命令行可以包括几条命令,但最多不能超过255个字符。尽管 Q1是一条命令,但它算2个字符,空格不算命令行字符。命令行以回车结束。

S寄存器是Modem用于存入配置和操作参数的专用内存。S寄存器通常用来存放一些计数、定时ASCII字符等值。Sr = n用来改变r寄存器的值,例如,AT Sr = n <CR>用来改变r寄存器的值,使之变成nSr?用来显示r寄存器的值,例如,AT Sr<CR>用来显示r寄存器的值。这里<CR>指回车。

欲进一步了解ITU-T建议的调制解调器的请进入

华为商城认证
© 2004-2024 通信人在线 版权所有 备案号:粤ICP备06113876号 网站技术:做网站