专利名称:在单一通信线路上传送多处数据信道的方法及其装置的制作方法
技术领域:
本发明涉及数据传送方法及其装置,并且具体描述一种复用流协议,该协议容许在单一物理数据传输链路上传送多个离散信道的数据。
数量众多的私人商业数据存储与检索系统(通常称为主机)的出现,允许备有计算机和调制解调器的人得以存取别处不能获得或者很费劲才能获得的信息。然而,单个主机常常不包含某人所需要的全部信息。所以,为获得所需的信息他必须访问两个以上的主机。在某些情况中,可能有必要重复地在主机之间交叉访问才能获得所需的信息。此外,找到所需的信息以后,为了合并信息或者更新第二主机的信息要求从一个主机把一个数据文件的一部分或全部传送给另一主机。在过去,就必需结束与第一主机的通信,拨通第二主机,获得信息,结束与第二主机的通信,拨通第一(或者第三个)主机,以获得其它的信息,等等。这显然是一种费时而低效的过程。
已经存在的数据网业务可以使用户对多个主机进行存取,而且国际电报电话咨询委员会推荐的X.25和V.42以及LAP-M协议提供了一种格式,使数据能以结构包的形式传送。一呼叫请求包指定了虚拟线路号。该虚拟线路(有时也称作虚拟信道)一经建立,利用包含在数据包中的虚拟线路号,数据就被送到指定的主机或设备。越来越多的调制解调器用户发现他们能使用包交换网作为传统的长途电话通信的一种经济的代用手段。通过当地电话接通一包交换网,用户可以接到国内网甚至国际网。包交换技术提高了系统的总体可靠性,因为网络能够以最高效的方式确定数据路由并避开不能服务的设备以供众多的用户使用。
因此,一旦用户与这些网中的一个网接通(通常经由拔号接续和调制解调器),只需向第一选定主机送出第一查询,而第二选定主机送出第二查询,等等,他便能从选定的主机之一获取信息。然而,由于用户是通过单一的调制解调器进入网络的,如果数据终端设备不具备X.25或LAP-M功能,则调制解调器必须具备X.25或LAP-M功能,并且,用户必须有办法通知调制解调器某特定的查询或数据段是送往某一特定主机的。
因此,需要有一种方法可使用户能够指定或确认一个查询或一组数据是要送往一个特定主机还是来目某一特定的主机。
还需要有一种方法可使数据终端设备(DTE)(例如一台计算机)能够指示数据通信设备(DCE)(例如一台调制解调器)一组特定的数据是要送往连接在网络上的某一特定主机。
又需要有一种方法可使数据通信设备指示数据终端设备一组特定的数据已从连接在网络中的一个特定主机发来。
也需要有一种方法以使一个简单的装置能经过多个虚拟线路与两台或更多其它装置同时通信。
同时,不同的主机可能指定不同的压缩模式、编码方式或其他准则。如果只使用一个PAD(组包器/拆包器),进行从一个主机到下一主机的切换,则用户将不得不重新配置该PAD。因此这就需要一种含有多个独立PAD的装置。
通常,数据终端设备(DTE)与数据通信设备(DCE)之间的通信与控制功能是通过发送数据线和接收数据线以及其它导线(例如数据终端就绪(DTR)线,振铃指示(RI)线,数据传输设备就绪(DSR)线,等等)来完成的。然而,这些其它导线的用途和它们所完成的功能因设备和制造厂商的不同而异。所以,要求有一种只须使用发送与接收数据线便能工作的通信和控制协议。
由于要在单一数据链路上传送多个信道,传送一个正规格式的“断开”(break)信号会显著地降低所有信道的有效数据传输率。如果不是传送原来形式的“断开”信号而是只传送一个“断开”信号指示,则有效数据传送率便能改善。在某些协议中,该“断开”信号的长度具有重要的意义。因此,需要有一种协议,,它能够提供出现“断开”信号的指示和该“断开”信号长度的指示。
简言之,本发明是一种协议,该协议使数据终端设备(DTE)和数据通信设备(DCE)指明一组特定的数据要发往或来自某一特定的主机。
更具体地说,本发明是一种这样的协议,它使数据指派给某一特定的信道。该协议提供了这样一种信道选择;在信道选定后,所有后续的数据都自动地与这一信道和一个特定的主机相关联,直到选定了一个新的信道时为止。
再具体地说,本发明是一种编码的协议,它并不抢先使用数据流中的某些字符或比特位组合。本协议提供某些控制字符(例如DC2与DC4)一般具有特定的含义;当在数据流中出现某控制字符时,它将被临时修改以使接收装置不致把它解释成为控制字符。
再具体地说,本发明是一组相关的协议,它们既能单独使用又能结合使用,以增强单一物理通信链路的功能。
再具体地说,本发明是一种数据通信装置,该装置具有多个独立的PAD,可使多个独立的数据的传送可以发生在不需要PAD重新配置的情况下。
为此,本发明的一个目的是提供一种方法以使用户能够指定一组数据要发往某特定的信道和一个特定的主机。
本发明的另一个目的是提供一种方法以使数据终端设备(DTE)(例如计算机)能够指示数据通信设备(DCE)(例如调制解调器);一组特定的数据是要发往在连接的网络中的一个特定的装置。
本发明又一目的是提供一种方法以使数据通信设备(DCE)能够指示数据终端设备(DTE)一组特定的数据已从连接的网络中的一个特定装置发出。
本发明再一个目的是提供一种编码协议,它并不抢先使用数据流中的某些字符或比特位组合。
本发明还有一个目的是提供一组协议,用以为通信链路提供附加的功能和特性。
本发明再一个目的是提供一种具有多个独立的PAD的数据通信装置。
本发明再一个目的是提供一种方法与装置用以通过提供一种指示数据流从一个信道切换到另一信道的命令来在单一数据链路上载送多个独立的数据信道。
本发明再一个目的是提供一种方法以使一个单一的装置能同时与两个或多个其它装置在多条虚拟线路上进行通信。
本发明再一个目的是提供一种命令数据流协议,它可以在只包含发送数据线和接收数据线的数据链路上与数据一起载送。
本发明又一个目的是提供一种与其它标准协议相兼容的数据控制协议。
本发明又一个目的是用通过传送一个指示(即“断开”(break)信号已出现)和该“断开”信号长度的指示,来代替原始格式的“断开”信号,以提高有效数据传输率。
本发明又一个目的是提供一种通信与控制协议,它能用于每字符至少7比特的任何数据链路上。
图1是表示本发明的较佳适用环境的方框图。
图2是本发明的较佳实施例中所用的字格式的说明。
图3是本发明的较佳实施例的一种方框图。
图4A与4B是较佳实施例的传输与接收功能的操作流程图。
现在说明附图,贯穿所有附图中,相同的数字表示相同的部件,下面对本发明的较佳实施例进行说明。图1是本发明的较佳环境的方框图。数据终端设备(DTE)10(例如计算机)经由一数据总线11连接到一台数据通信设备(DCE)12(例如调制解调器)。数据总线可以是串行数据总线也可以是并行数据总线。在本实施例中,数据总线11是串行数据总线,例如RS-232C或者EIA-232D。数据通信设备12经由一条电话线13与另一数据通信设备14通信。数据通信设备14经由信号通路15连接到一个X.25节点16。X.25节点16经由多条信号通路17a-17n分别连接到多个远程主机20a-20n。国际电报电话咨询委员会的X.25,V.42以及其它推荐标准规定了在信号通路13,15,以及17a-17b上的通信协议。本发明只讨论数据终端设备10与数据通信设备12之间在总线11上的通信协议。本发明只需要使用TX线,RX线和总线11的信号回线。如果需要,可用任何其它导线来协调并控制数据终端设备10与数据通信设备12的其它功能。
本发明是一种在一条物理链路(例如总线11)上传送多路异步数据的方法。在它的较佳实施例中,将一台数据终端设备与一台数据通信设备或另一台设备用链路11连接,假定链路11完全无差错,因而不需要考虑检错和纠错方法。差错控制就是要以包的形式来传送数据包传送数据增加了实现的复杂性,降低了数据吞吐量(有效数据传送率),并由于误码检测而增加了设备的传播延迟。由于设计目标之一是提供高效的协议,所以用户数据是不组包的并且在数据终端设备与数据通信设备之间不使用差错控制。然而,本发明并不排除将误码检测与校正方法包括在协议之内。此外,在较佳实施例中,在出现数据溢流(信道缓冲器溢出)时发送一个链路状态命令。这便控制了必须重发的误码或字节的数目。为了这里详细说明的方便,假定物理链路11为一条RS-232C或E1A-232-D总线,但应理解,也可以代之以能传送至少7比特数据字的任何点对点数据链路。
现在说明图2,它说明本发明的较佳实施例中所使用的字格式。在较佳实施例中,数据字可以是一个带偶监督、奇监督,传号或空号校验位的7比特字,或者是不带校验位的8比特字。最低有效比特为B0。最高有效比特在使用7比特字时为B6,而在使用8比特字时为B7。B0-B6位分别由数字30-36指定。校验位/第7位由数字37指定。为了方便起见,本发明的较佳实施例不是采用不同的编程指令来处理7或8比特字,而是屏蔽B7位只观察数据的B0-B6位。
较佳实施例是一组面向字符的协议,它们可以单独使用也可以组合使用以对单一的通信链路提供增强的功能和特性。有两种协议类型,此外,还有一种扩充的协议类型,协议类型A为多个数据传送通路或信道提供了对每一信道的独立的流控制,以及设备流控制。协议类型B提供了附加的信道控制,并包括命令/数据传送状态切换、用户数据与控制信息分离、提供“断开”信号、以及强迫数据传到包模式设备。协议类型B1是协议B的扩展,并提供发送,接收以及在一个X.25PAD中处理合格的数据包的机制。本较佳实施例具有五层,一层为协议类型的一种有意义的组合。这五层及其相关联的协议类型是第一层-类型A;第二层-类型B;第三层-类型A与B;第四层-类型B1;第五层-类型A与B1。
表1描述了协议类型A的控制码及其含义。从表1可知共有九条基本命令XON,XOFF,链路状态,选择信道N,信道N流关断,信道N流开通,以及编码的XON,DC2,和XOFF字符。流控制是以两种方法实现的设备流控制和信道流控制。设备流控制以XON/XOFF来实现。注意,协议允许将XON/XOFF字符编码,使这些字符可用在数据流中而不影响流控制。例如,假定DTE10要求DCE12停止向DTE10传送数据。DTE10便送出命令13(16进制),即XOFF命令,它指示DCE12停止向DTE10传送。然而,假定DTE10需要将字符XOFF放在数据流中传送给远程主机20中的一个,DTE10将送出命令12(16进制)73(16进制)给DCE12。这一命令通知DCE12这一XOFF控制字符是一个数据字符并已经过编码。因此,它不致于使DCE12停止向DTE10传送。然而,在将数据流经向电话线13上送至调制解调器14以前,DCE12将经过编码的XOFF字符先转换成传统的XOFF字符(16进制的13)。因此,DTE10能够将XOFF字符送至远程主机而不会有害地影响DCE12的操作。
码的XOFF字符先转换成传统的XOFF字符(16进制的13)。因此,DTE10能够将XOFF字符送至远程主机而不会有害地影响DCE12的操作。
只要可能,就应使用信道流控制(码12+4N,12+6N)而不用设备流控制字符11或13(XON或XOFF)。使用信道流控制而不使用设备流控制,可使一条信道不停止其它信道上的数据流。
例如,假定DTE10已经在信道1上对1号远程主机送出了一个信息查询并在信道3上对2号远程主机送出了一个信息请求。并假定,1号远程主机当时正忙着不能立即响应信息请求。然而,2号远程主机却可以使用并开始传送一个相当长的信息文件。一般地,由于2号远程主机开始传送信息在先,所以只要2号远程主机在继续传送信息,用户便无从确定1号远程主机是否已经回答了该请求。然而,本发明提供了一种方法DTE10可以指示DCE12信道3流关断(flowOFF),信道3是2号远程主机使用的信道。由于信道3现在已流关断,1号远程主机便可在信道1上向DTE10传输它对信息请求的响应。1号远程主机完成传输以后,用户便能使DTE10信道3流开通(flowON),并允许2号远程主机完成其信息文件的传送。
流控制命令的信道地址是从位30-33的计算中得到的。这允许直接寻址14条数据信道信道1(0001)至信道14(1110)。码0000用于停止协议的使用,而码1111指示信道地址扩充,它表示下一个字节用于指定一个大于14的信道号码。这一扩充字节用以为协议类型A提供附加的信道寻址能力。位36(MSB)至30(LSB)是地址扩充码。位37不用并舍去(被屏蔽掉)。不使用地址扩充码0至31,因为它们与ASCII控制字符相同。地址扩充码127标志下一个地址扩充,因而需要再增加一个附加字节来指定扩充后的信道号码。这便可以根据需要来扩充信道的数量。对于第一扩充字节,信道号是从地址扩充码减32得到的,因而该地址扩充码应从信道号32得到。由于码00至1F和码FF不能用于指定信通号,所以每一增加的地址扩充字节只扩充95条信道数。协议类型A地址码/扩充码的一些例子是信道1-31;信道14-3E;信道15-3F,20;信道16-3F,21;信道109-3F,7E;信道110-3F,7F,20;其中的代码为16进制数字,而且为了方便,如果有校验位的话,总是逻辑O。
熟悉X.25与V.42协议的人可以理解这些协议提供了对各个设备的寻址能力。例如,假定远程主机20a已被赋值为1号设备码,远程主机20b被赋值为2号设备码,等等。为了便于讨论,并假定这些设备码在通过PCE14时不改变。为了方便,又假定DTE10与DCE12已将信道1指定为对应于远程主机20a,将信道2指定为对应于远程主机20b,等等。现在假定DTE10已经请求远程主机20a和20b提供某种特定的信息,并且这些主机已开始传送信息。现在假定,DTE确定来自远程主机20a的数据更为紧要即具有较高的优先级。DTE10便向DCE12送出命令信道2流关断(12+42(16进制))。这就是告诉DCE12DTE10要求停止从信道2接收数据。由于DCE12不能再向DTE10送出信道2的数据,信道2的缓冲器将开始充满。最终,DCE12将通过电话线13和DCE14,以及X.25或V.42协议,通知远程主机20b停止数据传送。此后,当DTE10已经完成了来自远程主机20a的数据接收,DTE10将发出信道2流开通命令(16进制12+62),该命令允许DCE12恢复在信道2上对DTE10的传输。一旦信道2的缓冲器部分地空出后,DCE12将通知远程主机20b恢复数据传输。
本发明的较佳实施例限制控制码为两个字,它支持14条独立的双向数据信道(不包括信道0)。每一信道可以具有至少包含7比特数据的任何数据格式。由于数据可以在一条典型的总线上以偶校验、奇校验或无校验来传送,控制码也以偶校验、奇校验或无校验传送,和以前在DTE10与DCE12之间通信的选择方法一样。信道0用于传统的、非复用的数据传送。
链路状态命令使得接受该命令的设备用其当前的发送信道号及其每一接收信道的流控制状态来响应。这一命令用以确认DTE10与DCE12之间已建立的通信链路,确定当前工作的信道,并确定所支持的信道数目。在初始化时DCE12执行一条链路状态命令。在本较佳实施例中只有DTE10能发送链路状态命令。该链路状态命令通常是在检测到接收错误或显示DTE与DCE通信不正常的其它状况时由DTE10发出的。
保留命令当前还未定义,在被定义以前可不予理睬。这一特性有助于误码的检测。如果未定义的代码真的没有定义,那么控制字中的差错可能导致不可预料的或有害的结果。这一特性可以使产品升级,对原先的保留字进行定义就可提供附加命令。这些新的命令在升级后的产品中能产生所要求的结果,而在较早的产品中则不起作用。
如果由于某种原因,要求得到不用翻译协议命令与控制字节的一般数据链路,则必须发送“选择信道0”(链路拆线)命令。接受该命令的设备的响应将是返回到单信道(非流)操作方式。如果接收设备是DCE,它在进入单信道链路方式前也发送“选择信道0”序列。这可以使发出中断的DTE能以监视回答的“选择信道O”序列来确定数据流的结束时刻。如果接收设备是DTE,它不得发送回答的“选择信道0”序列,因为这将促使DCE再一次发送回答的“选择信道0”序列,从而导致回答的“选择信道0”序列的无限循环。当然,如果需要,回答的“选择信道0”序列可以是一个不同的码,例如12+70(16进制)。这样做,可使接收设备,不论是DTE或DCE,都能回答该“选择信道0”序列。
注意除了设备流控制命令XON和XOFF之外的所有控制码都以DC2字符(16进制12)为开头。如果数据中要用数值11,12,或13(16进制),必需在发送该特殊字节之前先发送DC2。在本较佳实施例中,只观察一个字的低7位。可以注意到12(16进制)对应于控制字符DC2,而92(16进制)的低7位也相当于DC2控制字符。同样,码91与93表现为XON与XOFF。所以,如果在数据中需要值91,92,或93(16进制)必须先发送DC2后随该特殊字节。这一方法避免了二进制数据或者8位数据字偶然地与一个DC2,XON或XOFF相似而导致不希望发生的或有害的结果。所以,如果使用8位码,例如ASCII8位字格式,8位字91,92和93(16进制)分别用和11,12和13(16进制)同样的编码,只是其第7位是逻辑1。因此,本发明可容纳7位和8位两种数据流。
将数据从一条数据传输信道上改变到另一条数据传输信道是以发送一条“选择信道N”控制码来完成的。例如,如果DCE12在信道3上,再在信道1上,再在信道2上向DTE10传送数据,则DCE12应该发送16进制控制码12+33,随着是给信道3的数据,12+31,随后是给信道1的数据,以及12+32,随后是给信道2的数据。
表2示出了DTE与DCE之间的一次对话的实例。这一对话实例仅用于提供一次DTE/DCE交换可能包括的内容,不限于此。在步骤1,DTE发送链路状态命令。在响应该链路状态命令时,DCE通知DTE它所支持的所有信道的状态并指出当前所选择的信道。对该例来说,假定当前的传输信道为1,这可以是由前面的“选择通道1”命令或者上电隐含设置的结果。在这一例子中,步骤2到6指出DCE支持信道1至4,信道1,2和4为流开通状态,信道3流关断,而当前的传输信道为1。在步骤7和8中,DTE使信道1流关断,然后,由于信道1是当前传输信道(在步骤6中指明),DTE发送数据串“ThisisA”。注意DCE不能响应它,因为信道1是当前传输信道但DTE已使信道1流关断。然而,在步骤9,DTE使信道1流开通。所以,在步骤10,(假定DCE设置成回波方式)DCE返回数据“ThisisA”。在步骤11和12,DTE选择信道2并发送数据“SampleSession”。在步骤13,DCE接着选择信道2,因为DTE便是从该信道上发送数据的,然后,在步骤14,返回数据“SampleSession”。虽然由于受表2的描述的限制,如象表2只能采用半双工操作,但对于本发明而言并无这种限制。就是说,本发明兼备半双工和全双工两种通信功能。
在步骤15,DTE选择信道4,而后,在步骤16,发送数据流“AnotherSession”。在步骤17,DTE以数据的形式发送经过编码的“XON”字符。
从上可知,本发明提供一种选择一组虚拟数据信道中的特定的一条,并在这些信道上发送数据使得在一条特定的信道上发送的数据最终通向一台予定的设备的方法。本发明也提供了对出现在数据流中的某些控制字符进行编码的手段,以使这些控制字符不会导致有害的后果而又能以改变了的格式作为DTE和DCE之间的数据流中的一部分照常传输。
现在考虑本发明的较佳实施例在其较佳环境中的操作过程。表3是典型的通信过程的例子。假定有三个主机连接到一个X.25节点上主机20a是一个银行服务点,赋予该主机设备号134;主机20b是一个金融服务点,赋予其主机设备号291;以及主机20c是一个新闻服务点,赋予设备号156。这些设备号是由X.25网络控制器(未示出)所指配的。在步骤1中,用户已经由DTE10命令调制解调器12占用电话线13并拔通X.25网络,现在假定两个调制解调器12与14已经接通,并已完成了联络,并且DTE10的用户要求访问这三个主机。在步骤2,用户用输入命令“CALLIDAD1,VCN”指令DTE10去访问第一服务点,例如,银行,其中ID表示网络识别码,AD1表示银行服务点在这一特定网络上的地址(134),而VCN则表示所要的虚拟信道号。VCN号也指定了处理该通信的PAD。PAD1处理信道1上的通信,PAD2处理信道2上的通信,等等。如果没有给出VCN,则假定选中的是上次使用的信道或者在没有关于上次使用信道的信息时,就选择信道1。DTE10将这一指令送往DCE12,DCE12将与标号为ID的网络上的具有地址AD1的设备建立连接。在该例中,这将是银行主机20a,DCE1将使用虚拟信道1在DTE10与DCE12之间通信,对DCE12与设备AD1之间的通信,将使用X.25的信道K1,信道K1是X.25网络控制器所指定的逻辑信道号。连接建立后,DCE12便进入了PAD连机状态。
在步骤3,数据便通过DCE(调制解调器)12和14在DTE12与主机20a(设备AD1)之间传送。必须记住某些字符在DTE10和DCE12之间传送前必须加以编码,如上面已说明并在表2所示。现在假定用户要求访问主机20b的金融服务点。在步骤4用户按“DLE”键和“2”键。这就使DTE10向DCE12发送十六进制码12,32。我们记得码12,32是切换到信道2和PAD2的命令。这使用DTE10和DCE12在完成了所有剩余的数据传送以后,从虚拟信道1与PAD1转换到虚拟信道2与PAD2并进入PAD命令状态。在步骤5用户打入“CALLIDAD2”命令。此时DCE12与具有地址AD2的设备(金融主机20b)建立联系并进入PAD连机状态。在本较佳实施例中,每当发布一条导致任何PAD改变状态的命令,也就是进入命令状态或进入连机状态,则所有的PAD改变状态。X.25网络控制器将指派用于DCE12与主机20b之间的连接。DCE12持有一张PAD虚拟信道与X.25网络逻辑信道号之间的相互关系表,使得去往/来自DTE10的数据传送总是来自/去往适当的主机20a-20c。在步骤6,数据在DTE10和主机20b之间传送。
如步骤7-12所示,用户可以接问主机20c,再返回主机20a,等等。因而,用户经由一条单一的拔号连接线,可以同时并独立地接到多个主机系统20a-20n。此外,对某些字符加以编码允许使用整个ASCII字符集以及也允许二进制数据的传送,由于使用了本发明的协议,能够轻而易举地确定一字符是数据字符还是命令字符。并注意本发明在DTE10与X.25网络之间提供了一个编码的接口,使得X.25网络的命令能够通过DCE12发送而不被DCE12理解为命令。同样,给DCE12的命令被截住并由DCE12执行,且不会送到X.25网络。
协议类型B提供了用以区别用户数据与控制数据(命令与应答)、强制某信道进入命令状态以及生成可变长度的“断开”信号的信令。协议类型B也是一个7位协议,并且可不理睬位37(图2)。协议类型B的指示字符或导引字符为DC4(16进制的14)。所以,如果接收到一个其值为14或94(16进制)的字符,则下一字符应按B类协议的指令而不是用户数据来处理。如果值为14或94(16进制)的字符要作为用户数据发送,则必须加以编码。编码方式与A类协议中对DC1,DC2和DC3码的编码方式相似。经过编码的值14和94(16进制)示于表4中。如果可能应当避免使用值0至1F(16进制),由于这些值相应于ASCII控制码。
表4列出了协议类型B和B1的控制码。B类协议支持三条命令加上二个编码字符。B1类协议支持B类协议的所有功能并提供两个外加的功能。可以看出一个代码根据它是被调制解调器12发送或者接收而可以有不同的含义。同样,某些码,例如控制数据/信道转义码,说明一定范围的值是保留字。然而,发送设备总是在送出列出的第一个码时将位30-33置成0,而接收设备总是响应整个范围的值而不考虑位30-33。
DCE送至DTE的控制数据码指示后随的数据不是用户数据,例如PAD业务信号或AT命令结果码。当控制数据消息结束时,DCE必须发送数据元边界码,以后跟随的便认为是用户数据了。
DCE在接收时,信道转义码将信道从数据传送状态退出。在X.3PAD的情形中,其作用和PAD撤出(recall)字符相同,即强制PAD进入命令状态。在AT命令处理器的情况中,此码强制DCE进入命令状态,就如同DCE已接收到4,549,302号美国专利中所描述的转义序列一样。如果信道还未结束命令状态,则DCE将不理会此码。如果载波消失或者如果远程设备14清除该虚拟连接,或者如果DTE10发出了一个具有不少于予定持续时间的“断开”信号,DCE也将退出连机或数据传送状态并进入PAD命令状态。
当DCE传送时,该“断开”信号所表示的是该DCE已从远程设备14接收到一个具有指定持续时间的“断开”信号。当DCE接收到“断开”信号时,这一代码使DCE向远程设备14发送一个具有指定持续时间的“断开”信号。其第二个字节(4M)的位33-30构成“断开”信号持续时间的高4位,第三字节(4N)的位33-30构成“断开”信号延续时间的低4位。“断开”信号长度的分辨率为0.01秒。所以,这一代码可以指示已接受到或导致生成一个持续期为0到2.55秒的“断开”信号。
当由DCE发送时,数据元界码标示一个数据元的终了。一个数据元定义为数据的整体或数据块。例如,在M一位序列中的三个X.25数据包序列构成一个数据元。在一个数据元界码后面传输的数据被认为是用户数据,除非另有标记,例如用控制数据码加以标记。
DCE在接收到“提交数据码”后,使得缓冲存储在信道存储器(FlFO)中的任何数据立即被送到电话线或数据链路13上,并受DCE14所提供的任何流控制信号的控制。如果DCE不处在包模式中,则数据提交码的接收不起任何作用并被DCE所舍弃。
编码的DC4字符和编码的94(16进制)的值的代码也列在表4中。
协议类型B1扩展为应用软件(DTE10中的驱动程序)提供一种处理X.25合格数据(Q位)包的方法。在这一模式中,来自远程DCE(14)的一个合格数据包由DCE12以ASCII十六进制编码格式并在其前面加有该Q位数据的形式传送给DTE10,而不是由DCE12中的PAD来处理。合格的数据包可以在合格数据之前加上“提交Q位数据码”来向远端DCE14中的PAD传送,如果DCE12的PAD要处理通常来自DCE14的合格数据包,则须在该数据包的前面加上“处理Q位数据码”。
DCE发送该“Q位数据码”表示后面是合格的(Q位)数据。在接收到来自远程设备14的一个合格数据包时总要发送这一代码。此外,上述“数据元界码”是在Q位数据元后面发送的,用于指示Q位数据传输已完成。在一个M位序列中的多个Q位数据包被认为是一个数据元。如果已经送出一个数据元界码,而又出现了更多的合格数据,则在数据元界码之后,附加的合格数据之前必须有一个“Q位数据码”。
DCE在发送一个数据元界码以后,直到该DCE已从DTE接收到一个完整的合格数据消息之前,DCE不再向DTE发送数据。这就允许DTE,在PAD处理来自远程设备14的任何更多的用户数据以前,处理合格数据消息。例如,该合格数据消息可能是来自远程设备14的一个“SETPAD”消息,并可能已经改变了PAD将要发送此后的用户数据的方式。一般来说,接收到某一X.25设置,读消息,或者设置与读PAD消息是一次数据提交条件。在协议类型B1有效时,从远程设备14接收的Q位包是不由PAD解码的。这些数据提交条件必须由DTE来处理。
Q位的每一八比特组是以一对ASCII十六进制数字的格式传送的,它用字符“0”到“9”和“A”到“F”来表示。设备将该数字对在流中传输,并不包含空格符或分隔符。
DCE收到“提交Q位数据码”就表示随后是合格的数据包,并且这些数据应立即发送,和B类协议接收到数据码后的处理样。在组装这些Q位数据包时从DTE10收到的数据应该是以ASCII16进制数字对的格式表示,即只能是字符“0”至“9”,“A”至“F”,以及“a”至“f”收到的不符合这一字符要求的数据将被PAD所丢弃。
“处理Q位数据码”在被DCE收到时,它是一种“数据提交码”并使设备将下一个由Q位组生成的包(或M位序列)发送到设备的Q位包处理器(X.29)去进行处理,如同它是从远程设备14上收到的一样。这可使DTE10能向DCE12传送Q位包,使DCE12处理该包并将处理过的包返回给DTE10。在组装Q位时接收到的来自DTE10的数据,应具有在“Q位提交码”所描述的同一格式。
现在转向图3,这是在调制解调器(例如DCE12)中实现的本发明的较佳实施例的方框图。插接件50(例如一个RS-232C连接器)至少具有发送数据(TXD)端子,接收数据(RXD)端子和信号接地(GND)端子。TXD与RXD端子分别由导线51与67连接到控制码与状态处理器52的RXD输入端与TXD输出端多个PAD由控制码与状态处理器52实现。控制码与状态处理器和PAD52经由它的MRXD输出与导线53向调制解调发送器54的数据输入(DIN)端提供修正过的RXD信号。发送器54使用导线53上的输入数据生成对应于导线53上输入数据的一个经过调制的数据载波。发送器54的经过调制的数据载波输出(COUT)连接到双工器56的发送器(T)输入端。双工器56的双向线路(L)端口连接到电话线13。
双工器56的接收(R)输出端由导线60连接到一台调制解调接收器61的调制数据载波输入端(CIN)上。接收器61解调该输入数据载波在其数据输出(DOUT)端上提供一对应于导线60上的输入调制数据载波信号中所包含的数据的数据流。接收器61的DOUT输出端由导线62连接到PAD与控制码及状态处理器52的MTXD输入端。处理器52经由其发送数据输出端(TXD)与导线64,向RS-232C连接器50的TXD端提供一个已修正的TXD信号。
处理器52的控制端由导线63连接到发送器54和接收器61的控制端上。控制/数据总线65将处理器52和随机存取存储器(RAM)66相连接。在本较佳实施例中,可以认为RAM66被分成至少三个区域发送先进先出(FIFO)寄存器;接收FIFO寄存器;以及虚拟信道号(VCN)对X.25信道号的交叉参照表。15个发送寄存器(CH.OTFIFO-CH.14TFIFO)和15个接收寄存器(CH.ORFIFO-CH.14RFIFO)用于暂存数据。在本较佳实施例中,这些寄存器的每一个具有500至3000字节的容量。
虽然在本较佳实施例中提供了14个PAD和虚拟信道,本发明并不限于14个PAD和虚拟信道。如果愿意或需要,可以容易地提供更多的PAD和虚拟信道。
现在考虑对电话线13上从DTE10至DCE12的数据的处理。为了便于讨论,假定DCE12工作于连机方式并已选择了层1操作(协议类型A)。在RXD线51上的输入数据被处理器52所检验以确定是否出现了转义码序列,XON字符,XOFF字符,DC2字符或对应于91,92或93(16进制)的8位ASCII字符。如果出现了转义序列,处理器52便进入命令状态。使用转义序列的目的现在已为熟悉本技术者所公知。在本较佳实施例中,控制码与状态处理器52能响应4,549,302号美国专利中所描述的转义序列。如果出现的是XOFF字符,则处理器52将停止在TXD线64上发送数据。如果出现的是XON字符,则处理器52恢复或连续在TXD线上发送数据。
如果出现的是DC2字符,则处理器52将检验后面的字节以确定正确的动作方向。如上所述,后随的字节可以指示处理器52去选择一个特定的PAD/信道,接通或断开一个特定的PAD/信道,解码这一字节,或者进入单信道模式(选择信道O)。不属于控制字符的其它字符和解码后的字节被处理器52放入选定的数据信道的接收FIFO(RFIFO)。例如,如果选定了PAD/信道1,数据将进入CH.1RFIFO、随后该数据被从FIFO中读出并以一个X.25/LAPM数据包的一部分提供给发送器54。国际电报电话咨询委员会推荐X.25指出一个数据包包含有一个虚拟线路号,以便通过电话线13把数据送到它的正确目的地。然而,DTE10与DCE12间所用的信道约定并不一定对应于DCE12的处理器52与连接在电话线13的另一端的X.25网络之间所使用的虚拟线路号。所以处理器52管理信道号选择(DTE10与DCE12之间)和X.25虚拟线路号之间的相互关系表。
DCE12经由电话线13所接收的数据被送到适当的数据信道的发送FIFO(TFIFO)中。然后,该相应的FIFO(例如CH.lTFIFO)中读出并检验是否出现了XON,XOFF,DC2,91,92或93(16进制)字符。如果出现了这些字符,则如上所述它们在放到TXD线64以传送至DTE10以前被编码。
虽然本较佳实施例是用RS-232C总线11来描述的,显然,本发明并不限于此。例如,也可以使用通用异步接收发送器(UART)(未示出)以实现并行数据总线与总线11之间的接口,将数据传送至/来自并行数据总线。也可以通过一个缓冲器(未示出)实现处理器52与并行数据总线之间的数据传送。
在本较佳实施例中,电话线13是传统的模拟电话线,所以用调制解调器发送器54将数据信号(DIN)转换成适合于在电话线13上传送的模拟形式。同样,调制解调器接收器61从电话线13上接收信号,并将这些信号解调以得到串行数据流(DOUT)。然而,本发明并不限于使用传统的模拟电话线路。本发明也能与ISDN(综合交换数据网)电话线一起使用,在这一情况中调制解调器发送器54将DIN信号转换成适合于在ISDN电话线13上传输的格式,而调制解调接收器61将从电话线13上接收到的ISDN信号转换成串行数据流DOUT。
现在转到图4A与4B,它们分别是本较佳实施例协议类型A操作的接收与发送操作的流程图。图4A与4B中的步骤是由处理器52执行的。图4A对应于从DTE10接收数据,而图4B对应于从电话线13上接收数据的处理。
在判定80中,处理器52确定输入数据是否对应于转义码序列,如果是,处理器进入81操作的命令模式并停留在那里直到输入一个连机命令。如果否,处理器52进入判定82并检测字符是否是XOFF字符。如果是,则处理器52在83停止对DTE的发送,然后返回判定80。如果否,处理器52进入判定84,并确定字符是否是XON字符。如果是,处理器52在85恢复或者继续向DTE发送,然后返回判定80,如果否,处理器52进入判定86并确定字符是否DC2字符或DC4字符。如果是,处理器52接着在87确定下一个字符是否对应于一条命令。如果是,处理器52在90执行该命令,并返回判定80。如果否,则处理器52在91确定下一字符是否是一个编码字符、如果否,则处理器52在执行错误处理程序,因为在一个DC2或DC4字符后面跟随的必须是一个命令字符或者一个编码字符。如果该字符是一个编码字符,则处理器52在92解码该字符,然后在94将该字符置于选定信道的接收FIFO中,例如,CH.2RFIFO如果该字符不是转义码序列,XOFF,XON字符,DC2字符,和DC4字符,则在94将它放入选定信道的接收FIFO中。放在接收FIFO中的字符以后被处理器52读出,组装成数据包,然后提供给调制解调发送器54。在较佳实施例中处理器与PAD52将数据存储在一条特定信道的接收FIFO中,并且只有当一个完整的包或若干包组装完成后才将数据送至调制解调发送器54。
从调制解调接收器61接收的数据在放入适当信道的接收FIFO以前,按图4B进行处理。处理器52在判定100确定该数据字符是否为XON字符,在判定101确定是否为XOFF字符,在判定102确定是否是DC2字符或DC4字符,在判定103确定是否为91,92,93或94(16进制)字符。如果是,处理器52在104编码该数据字符,然后在105将该字符放入适当的信道的发送FIFO中,例如,CH.2TFIFO。如果该字符不是上述字符之一,则处理器52在105将该字符放入发送FIFO。放在某特定信道的发送FIFO的数据,随后被处理器52读出,然后经由连接器50的TXD接线送给DTE10。在较佳实施例中,只有当数据已经在该FIFO中组装成一个完整包或若干包后,才从特定信道的发送FIFO中读出,并提供给DTE10。
虽然是以X.25网络的角度描述的,但本发明并不限于此。本发明在DTE-DTE的数据传送中也是有用的,因而不同的数据流,例如不同的文件,可以被识别并且参照数据流出现的虚拟信道号进行不同的处理。
从上所述,可以理解本发明提供了一种复用流协议,方法,以及装置,藉此DTE和DCE能同时与多个连接在X.25网络上的主机进行通信。本发明同时提供编码予先确定的字符,使得这些字符可以有选择地用作数据字符或者控制字符。对于熟悉这方面的人员来说,显然可以从该详细描述和附图,对本发明做多种多样的修正、更改并提出其它实施例。因此,本发明只受以下的权利要求的限定。
权利要求
1.在包含一个第一装置多个连接到一个网络节点的主装置以及一个介于所述第一装置与所述网络节点之间的第二装置且每一所述主装置具有一个在所述网络节点上预先确定的地址的通信系统中,用于允许所述第一装置与所述多个主装置进行同时的通信的一种方法,其特征在于第一装置的工作过程包括下述步骤向所述第二装置发送一个对应于某第一所述主装置的第一信道号向所述第二装置发送去往所述第一主装置的数据;向所述第二装置发送对应于某下一个所述主装置的下一信道号;以及向所述第二装置发送去往所述下一个主装置的数据;和第二装置的工作过程包括下述步骤管理信道号与所述主装置预定的地址间的相互关系表;管理多个组包一拆包功能块(PAD);接收所述第一信道号;生成用于所述第一主装置的所述予先确定的地址;向所述网络节点发送该预先确定的地址;用某第一上述PAD处理所述数据;向所述网络节点发送上述处理过的数据;接收所述第二信道号;生成用于所述第二主装置的所述预先确定的地址;向所述网络节点发送该预先确定的地址;通过某第二所述PAD处理所述数据;以及向所述网络节点发送该处理过的数据。
2.根据权利要求1所述的方法,其中,每一个第一装置发送一所述信道号的步骤包括发送一个第一予先确定的字符;以及发送一个对应于所述信道号的第二字符。
3.根据权利要求2所述的方法,其中,每一个第一装置发送数据的步骤包括检验该数据的每一个数据字符;如果某所述数据字符不包括在一预先确定的字符集合中则发送该数据字符;以及如果所述数据字符包括在所述预先确定的集合中则生成一个对应于所述数据字符的替代字符並发送上述第一予先确定的字符再发所述替代字符。
4.根据权利要求3所述的方法,其中,所述替代字符是一个其值大于31的ASCII字符。
5.根据权利要求1所述的方法,其中,每一第二装置处理所述数据的步骤包括检验每一个从所述第一装置接收的数据字符;如果所述数据字符不是某第一预先确定的字符则向所述PAD发送所述数据字符;如果所述数据字符是所述第一预先确定的字符则检验下一个数据字符;如果某下一个数据没有包含在一个替代字符的集合中则作为控制信息处理该下一数据字符;以及如果所述下一个字符包括在所述代替字符的集合中则生成一个对应于所述替代字符的原始数据字符並向所述PAD发送该厚始数据字符。
6.根据权利要求5所述的方法,其中,所述控制信息包括某上述信道号。
7.根据权利要求5所述的方法,其中,所述替代字符集合中的每一个替代字符是一个其值大于31的ASCII字符。
8.根据权利要求5所述的方法,其中,所述第二装置具有与第一所述信道号相关的一个缓冲存储器,並且所述控制信息指令所述第二装置停止以一个指定信道号向所述第一装置发送数据。
9.根据权利要求8所述的方法,其中,所述控制信息还指令所述第二装置恢复以所述指定的信道号向所述第一装置发送数据。
10.根据权利要求1所述的方法,其中,若所述数据是一“断开”序列,所述第一装置工作过程还包括为所述“断开”序列确定持续时间;生成一组字符表示所述“断开”序列具有所述持续时间;以及向所述第二装置发送一个第一予先确定的字符再发所述字符组。
11.根据权利要求10所述的方法,其中,每一所述第二装置处理所述数据的步骤还包括检验从所述第一装置接收的每一个数据字符;若所述数据字符不是一个第一予先确定的字符则向所述PAD发送该数据字符;若所述数据字符是所述第一予先确定的字符则检验下一个数据字符;若所述下一个数据字符並不表示“断开”序列则作为控制信息处理所述下一个数据字符;以及若所述下一个数据字符表示一个“断开”序列则将具有由所述下一个数据字符指定的延续时间间隔的一了“断开”序列发送到所述网络节点。
12.用于允许数据终端设备(DTE),通过数据通信设备(DCE)访问多个连接到一个预先确定的节点的主装置的一种方法,其特征在于以下步骤使得所述DCE访问所述预先确定的节点;建立一个第一虚拟信道号(VCN)用于在所述DTE与所述DCE之间通信;建立一个第一逻辑信道号(LCN)用于在所述DCE与所述多个主装置中的一个第一主装置之间通信;建立一个第二VCN用于在所述DTE与所述DCE之间通信;建立一个第二LCN用于在所述DCE与所述多个主装置的一个第二主装置之间通信;管理每一所述VCN与一个对应的LCN之间的相互关系表;以及每当所述DTE访问一具有不同LCN的所述主装置时,协调地改变所述VCN与所述LCN。
13.根据权利要求12所述的方法,还包括建立多个虚拟信道号与多个对应的逻辑信道号;以及管理所述多个虚拟信道号中每一所述虚拟信道号与所述多个逻辑借道号中的每一所述逻辑信道号之间的所述相互关系表。
全文摘要
一种用以对连接到一个X25网络节点上的多个主机进行通信并可选择性地使某字符是控制字符或数据字符的方法。该方法检验从X25夹网络数据,若属于保留字,则先经编码后再送到其目的地。并检验发往X25网的数据,若是控制字符则执行该命令,若是数据则解码后再送到X25网。DTE与DCE间的数据传送通过指定一PAD和相应于X25网上的特定主机的虚拟信道号进行。可使DTE和DCF在一条电话线上同时与多个X25主机通信。
文档编号H04L29/04GK1042814SQ8910842
公开日1990年6月6日 申请日期1989年11月6日 优先权日1988年11月7日
发明者理查德·J·伯顿, 约翰·A·科普兰, 约翰·W·杰尔姆, 托比·L·尼克松, 马丁·H·索斯尔, 罗伯特·E·韦瑟福德, 拉里·D·贝克尔, 戴维·F·斯特朗 申请人:海斯微型计算机产品公司