專利名稱:在單一通信線路上傳送多處數(shù)據(jù)信道的方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)傳送方法及其裝置,并且具體描述一種復(fù)用流協(xié)議,該協(xié)議容許在單一物理數(shù)據(jù)傳輸鏈路上傳送多個離散信道的數(shù)據(jù)。
數(shù)量眾多的私人商業(yè)數(shù)據(jù)存儲與檢索系統(tǒng)(通常稱為主機(jī))的出現(xiàn),允許備有計算機(jī)和調(diào)制解調(diào)器的人得以存取別處不能獲得或者很費勁才能獲得的信息。然而,單個主機(jī)常常不包含某人所需要的全部信息。所以,為獲得所需的信息他必須訪問兩個以上的主機(jī)。在某些情況中,可能有必要重復(fù)地在主機(jī)之間交叉訪問才能獲得所需的信息。此外,找到所需的信息以后,為了合并信息或者更新第二主機(jī)的信息要求從一個主機(jī)把一個數(shù)據(jù)文件的一部分或全部傳送給另一主機(jī)。在過去,就必需結(jié)束與第一主機(jī)的通信,撥通第二主機(jī),獲得信息,結(jié)束與第二主機(jī)的通信,撥通第一(或者第三個)主機(jī),以獲得其它的信息,等等。這顯然是一種費時而低效的過程。
已經(jīng)存在的數(shù)據(jù)網(wǎng)業(yè)務(wù)可以使用戶對多個主機(jī)進(jìn)行存取,而且國際電報電話咨詢委員會推薦的X.25和V.42以及LAP-M協(xié)議提供了一種格式,使數(shù)據(jù)能以結(jié)構(gòu)包的形式傳送。一呼叫請求包指定了虛擬線路號。該虛擬線路(有時也稱作虛擬信道)一經(jīng)建立,利用包含在數(shù)據(jù)包中的虛擬線路號,數(shù)據(jù)就被送到指定的主機(jī)或設(shè)備。越來越多的調(diào)制解調(diào)器用戶發(fā)現(xiàn)他們能使用包交換網(wǎng)作為傳統(tǒng)的長途電話通信的一種經(jīng)濟(jì)的代用手段。通過當(dāng)?shù)仉娫捊油ㄒ话粨Q網(wǎng),用戶可以接到國內(nèi)網(wǎng)甚至國際網(wǎng)。包交換技術(shù)提高了系統(tǒng)的總體可靠性,因為網(wǎng)絡(luò)能夠以最高效的方式確定數(shù)據(jù)路由并避開不能服務(wù)的設(shè)備以供眾多的用戶使用。
因此,一旦用戶與這些網(wǎng)中的一個網(wǎng)接通(通常經(jīng)由拔號接續(xù)和調(diào)制解調(diào)器),只需向第一選定主機(jī)送出第一查詢,而第二選定主機(jī)送出第二查詢,等等,他便能從選定的主機(jī)之一獲取信息。然而,由于用戶是通過單一的調(diào)制解調(diào)器進(jìn)入網(wǎng)絡(luò)的,如果數(shù)據(jù)終端設(shè)備不具備X.25或LAP-M功能,則調(diào)制解調(diào)器必須具備X.25或LAP-M功能,并且,用戶必須有辦法通知調(diào)制解調(diào)器某特定的查詢或數(shù)據(jù)段是送往某一特定主機(jī)的。
因此,需要有一種方法可使用戶能夠指定或確認(rèn)一個查詢或一組數(shù)據(jù)是要送往一個特定主機(jī)還是來目某一特定的主機(jī)。
還需要有一種方法可使數(shù)據(jù)終端設(shè)備(DTE)(例如一臺計算機(jī))能夠指示數(shù)據(jù)通信設(shè)備(DCE)(例如一臺調(diào)制解調(diào)器)一組特定的數(shù)據(jù)是要送往連接在網(wǎng)絡(luò)上的某一特定主機(jī)。
又需要有一種方法可使數(shù)據(jù)通信設(shè)備指示數(shù)據(jù)終端設(shè)備一組特定的數(shù)據(jù)已從連接在網(wǎng)絡(luò)中的一個特定主機(jī)發(fā)來。
也需要有一種方法以使一個簡單的裝置能經(jīng)過多個虛擬線路與兩臺或更多其它裝置同時通信。
同時,不同的主機(jī)可能指定不同的壓縮模式、編碼方式或其他準(zhǔn)則。如果只使用一個PAD(組包器/拆包器),進(jìn)行從一個主機(jī)到下一主機(jī)的切換,則用戶將不得不重新配置該P(yáng)AD。因此這就需要一種含有多個獨立PAD的裝置。
通常,數(shù)據(jù)終端設(shè)備(DTE)與數(shù)據(jù)通信設(shè)備(DCE)之間的通信與控制功能是通過發(fā)送數(shù)據(jù)線和接收數(shù)據(jù)線以及其它導(dǎo)線(例如數(shù)據(jù)終端就緒(DTR)線,振鈴指示(RI)線,數(shù)據(jù)傳輸設(shè)備就緒(DSR)線,等等)來完成的。然而,這些其它導(dǎo)線的用途和它們所完成的功能因設(shè)備和制造廠商的不同而異。所以,要求有一種只須使用發(fā)送與接收數(shù)據(jù)線便能工作的通信和控制協(xié)議。
由于要在單一數(shù)據(jù)鏈路上傳送多個信道,傳送一個正規(guī)格式的“斷開”(break)信號會顯著地降低所有信道的有效數(shù)據(jù)傳輸率。如果不是傳送原來形式的“斷開”信號而是只傳送一個“斷開”信號指示,則有效數(shù)據(jù)傳送率便能改善。在某些協(xié)議中,該“斷開”信號的長度具有重要的意義。因此,需要有一種協(xié)議,,它能夠提供出現(xiàn)“斷開”信號的指示和該“斷開”信號長度的指示。
簡言之,本發(fā)明是一種協(xié)議,該協(xié)議使數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通信設(shè)備(DCE)指明一組特定的數(shù)據(jù)要發(fā)往或來自某一特定的主機(jī)。
更具體地說,本發(fā)明是一種這樣的協(xié)議,它使數(shù)據(jù)指派給某一特定的信道。該協(xié)議提供了這樣一種信道選擇;在信道選定后,所有后續(xù)的數(shù)據(jù)都自動地與這一信道和一個特定的主機(jī)相關(guān)聯(lián),直到選定了一個新的信道時為止。
再具體地說,本發(fā)明是一種編碼的協(xié)議,它并不搶先使用數(shù)據(jù)流中的某些字符或比特位組合。本協(xié)議提供某些控制字符(例如DC2與DC4)一般具有特定的含義;當(dāng)在數(shù)據(jù)流中出現(xiàn)某控制字符時,它將被臨時修改以使接收裝置不致把它解釋成為控制字符。
再具體地說,本發(fā)明是一組相關(guān)的協(xié)議,它們既能單獨使用又能結(jié)合使用,以增強(qiáng)單一物理通信鏈路的功能。
再具體地說,本發(fā)明是一種數(shù)據(jù)通信裝置,該裝置具有多個獨立的PAD,可使多個獨立的數(shù)據(jù)的傳送可以發(fā)生在不需要PAD重新配置的情況下。
為此,本發(fā)明的一個目的是提供一種方法以使用戶能夠指定一組數(shù)據(jù)要發(fā)往某特定的信道和一個特定的主機(jī)。
本發(fā)明的另一個目的是提供一種方法以使數(shù)據(jù)終端設(shè)備(DTE)(例如計算機(jī))能夠指示數(shù)據(jù)通信設(shè)備(DCE)(例如調(diào)制解調(diào)器);一組特定的數(shù)據(jù)是要發(fā)往在連接的網(wǎng)絡(luò)中的一個特定的裝置。
本發(fā)明又一目的是提供一種方法以使數(shù)據(jù)通信設(shè)備(DCE)能夠指示數(shù)據(jù)終端設(shè)備(DTE)一組特定的數(shù)據(jù)已從連接的網(wǎng)絡(luò)中的一個特定裝置發(fā)出。
本發(fā)明再一個目的是提供一種編碼協(xié)議,它并不搶先使用數(shù)據(jù)流中的某些字符或比特位組合。
本發(fā)明還有一個目的是提供一組協(xié)議,用以為通信鏈路提供附加的功能和特性。
本發(fā)明再一個目的是提供一種具有多個獨立的PAD的數(shù)據(jù)通信裝置。
本發(fā)明再一個目的是提供一種方法與裝置用以通過提供一種指示數(shù)據(jù)流從一個信道切換到另一信道的命令來在單一數(shù)據(jù)鏈路上載送多個獨立的數(shù)據(jù)信道。
本發(fā)明再一個目的是提供一種方法以使一個單一的裝置能同時與兩個或多個其它裝置在多條虛擬線路上進(jìn)行通信。
本發(fā)明再一個目的是提供一種命令數(shù)據(jù)流協(xié)議,它可以在只包含發(fā)送數(shù)據(jù)線和接收數(shù)據(jù)線的數(shù)據(jù)鏈路上與數(shù)據(jù)一起載送。
本發(fā)明又一個目的是提供一種與其它標(biāo)準(zhǔn)協(xié)議相兼容的數(shù)據(jù)控制協(xié)議。
本發(fā)明又一個目的是用通過傳送一個指示(即“斷開”(break)信號已出現(xiàn))和該“斷開”信號長度的指示,來代替原始格式的“斷開”信號,以提高有效數(shù)據(jù)傳輸率。
本發(fā)明又一個目的是提供一種通信與控制協(xié)議,它能用于每字符至少7比特的任何數(shù)據(jù)鏈路上。
圖1是表示本發(fā)明的較佳適用環(huán)境的方框圖。
圖2是本發(fā)明的較佳實施例中所用的字格式的說明。
圖3是本發(fā)明的較佳實施例的一種方框圖。
圖4A與4B是較佳實施例的傳輸與接收功能的操作流程圖。
現(xiàn)在說明附圖,貫穿所有附圖中,相同的數(shù)字表示相同的部件,下面對本發(fā)明的較佳實施例進(jìn)行說明。圖1是本發(fā)明的較佳環(huán)境的方框圖。數(shù)據(jù)終端設(shè)備(DTE)10(例如計算機(jī))經(jīng)由一數(shù)據(jù)總線11連接到一臺數(shù)據(jù)通信設(shè)備(DCE)12(例如調(diào)制解調(diào)器)。數(shù)據(jù)總線可以是串行數(shù)據(jù)總線也可以是并行數(shù)據(jù)總線。在本實施例中,數(shù)據(jù)總線11是串行數(shù)據(jù)總線,例如RS-232C或者EIA-232D。數(shù)據(jù)通信設(shè)備12經(jīng)由一條電話線13與另一數(shù)據(jù)通信設(shè)備14通信。數(shù)據(jù)通信設(shè)備14經(jīng)由信號通路15連接到一個X.25節(jié)點16。X.25節(jié)點16經(jīng)由多條信號通路17a-17n分別連接到多個遠(yuǎn)程主機(jī)20a-20n。國際電報電話咨詢委員會的X.25,V.42以及其它推薦標(biāo)準(zhǔn)規(guī)定了在信號通路13,15,以及17a-17b上的通信協(xié)議。本發(fā)明只討論數(shù)據(jù)終端設(shè)備10與數(shù)據(jù)通信設(shè)備12之間在總線11上的通信協(xié)議。本發(fā)明只需要使用TX線,RX線和總線11的信號回線。如果需要,可用任何其它導(dǎo)線來協(xié)調(diào)并控制數(shù)據(jù)終端設(shè)備10與數(shù)據(jù)通信設(shè)備12的其它功能。
本發(fā)明是一種在一條物理鏈路(例如總線11)上傳送多路異步數(shù)據(jù)的方法。在它的較佳實施例中,將一臺數(shù)據(jù)終端設(shè)備與一臺數(shù)據(jù)通信設(shè)備或另一臺設(shè)備用鏈路11連接,假定鏈路11完全無差錯,因而不需要考慮檢錯和糾錯方法。差錯控制就是要以包的形式來傳送數(shù)據(jù)包傳送數(shù)據(jù)增加了實現(xiàn)的復(fù)雜性,降低了數(shù)據(jù)吞吐量(有效數(shù)據(jù)傳送率),并由于誤碼檢測而增加了設(shè)備的傳播延遲。由于設(shè)計目標(biāo)之一是提供高效的協(xié)議,所以用戶數(shù)據(jù)是不組包的并且在數(shù)據(jù)終端設(shè)備與數(shù)據(jù)通信設(shè)備之間不使用差錯控制。然而,本發(fā)明并不排除將誤碼檢測與校正方法包括在協(xié)議之內(nèi)。此外,在較佳實施例中,在出現(xiàn)數(shù)據(jù)溢流(信道緩沖器溢出)時發(fā)送一個鏈路狀態(tài)命令。這便控制了必須重發(fā)的誤碼或字節(jié)的數(shù)目。為了這里詳細(xì)說明的方便,假定物理鏈路11為一條RS-232C或E1A-232-D總線,但應(yīng)理解,也可以代之以能傳送至少7比特數(shù)據(jù)字的任何點對點數(shù)據(jù)鏈路。
現(xiàn)在說明圖2,它說明本發(fā)明的較佳實施例中所使用的字格式。在較佳實施例中,數(shù)據(jù)字可以是一個帶偶監(jiān)督、奇監(jiān)督,傳號或空號校驗位的7比特字,或者是不帶校驗位的8比特字。最低有效比特為B0。最高有效比特在使用7比特字時為B6,而在使用8比特字時為B7。B0-B6位分別由數(shù)字30-36指定。校驗位/第7位由數(shù)字37指定。為了方便起見,本發(fā)明的較佳實施例不是采用不同的編程指令來處理7或8比特字,而是屏蔽B7位只觀察數(shù)據(jù)的B0-B6位。
較佳實施例是一組面向字符的協(xié)議,它們可以單獨使用也可以組合使用以對單一的通信鏈路提供增強(qiáng)的功能和特性。有兩種協(xié)議類型,此外,還有一種擴(kuò)充的協(xié)議類型,協(xié)議類型A為多個數(shù)據(jù)傳送通路或信道提供了對每一信道的獨立的流控制,以及設(shè)備流控制。協(xié)議類型B提供了附加的信道控制,并包括命令/數(shù)據(jù)傳送狀態(tài)切換、用戶數(shù)據(jù)與控制信息分離、提供“斷開”信號、以及強(qiáng)迫數(shù)據(jù)傳到包模式設(shè)備。協(xié)議類型B1是協(xié)議B的擴(kuò)展,并提供發(fā)送,接收以及在一個X.25PAD中處理合格的數(shù)據(jù)包的機(jī)制。本較佳實施例具有五層,一層為協(xié)議類型的一種有意義的組合。這五層及其相關(guān)聯(lián)的協(xié)議類型是第一層-類型A;第二層-類型B;第三層-類型A與B;第四層-類型B1;第五層-類型A與B1。
表1描述了協(xié)議類型A的控制碼及其含義。從表1可知共有九條基本命令XON,XOFF,鏈路狀態(tài),選擇信道N,信道N流關(guān)斷,信道N流開通,以及編碼的XON,DC2,和XOFF字符。流控制是以兩種方法實現(xiàn)的設(shè)備流控制和信道流控制。設(shè)備流控制以XON/XOFF來實現(xiàn)。注意,協(xié)議允許將XON/XOFF字符編碼,使這些字符可用在數(shù)據(jù)流中而不影響流控制。例如,假定DTE10要求DCE12停止向DTE10傳送數(shù)據(jù)。DTE10便送出命令13(16進(jìn)制),即XOFF命令,它指示DCE12停止向DTE10傳送。然而,假定DTE10需要將字符XOFF放在數(shù)據(jù)流中傳送給遠(yuǎn)程主機(jī)20中的一個,DTE10將送出命令12(16進(jìn)制)73(16進(jìn)制)給DCE12。這一命令通知DCE12這一XOFF控制字符是一個數(shù)據(jù)字符并已經(jīng)過編碼。因此,它不致于使DCE12停止向DTE10傳送。然而,在將數(shù)據(jù)流經(jīng)向電話線13上送至調(diào)制解調(diào)器14以前,DCE12將經(jīng)過編碼的XOFF字符先轉(zhuǎn)換成傳統(tǒng)的XOFF字符(16進(jìn)制的13)。因此,DTE10能夠?qū)OFF字符送至遠(yuǎn)程主機(jī)而不會有害地影響DCE12的操作。
碼的XOFF字符先轉(zhuǎn)換成傳統(tǒng)的XOFF字符(16進(jìn)制的13)。因此,DTE10能夠?qū)OFF字符送至遠(yuǎn)程主機(jī)而不會有害地影響DCE12的操作。
只要可能,就應(yīng)使用信道流控制(碼12+4N,12+6N)而不用設(shè)備流控制字符11或13(XON或XOFF)。使用信道流控制而不使用設(shè)備流控制,可使一條信道不停止其它信道上的數(shù)據(jù)流。
例如,假定DTE10已經(jīng)在信道1上對1號遠(yuǎn)程主機(jī)送出了一個信息查詢并在信道3上對2號遠(yuǎn)程主機(jī)送出了一個信息請求。并假定,1號遠(yuǎn)程主機(jī)當(dāng)時正忙著不能立即響應(yīng)信息請求。然而,2號遠(yuǎn)程主機(jī)卻可以使用并開始傳送一個相當(dāng)長的信息文件。一般地,由于2號遠(yuǎn)程主機(jī)開始傳送信息在先,所以只要2號遠(yuǎn)程主機(jī)在繼續(xù)傳送信息,用戶便無從確定1號遠(yuǎn)程主機(jī)是否已經(jīng)回答了該請求。然而,本發(fā)明提供了一種方法DTE10可以指示DCE12信道3流關(guān)斷(flowOFF),信道3是2號遠(yuǎn)程主機(jī)使用的信道。由于信道3現(xiàn)在已流關(guān)斷,1號遠(yuǎn)程主機(jī)便可在信道1上向DTE10傳輸它對信息請求的響應(yīng)。1號遠(yuǎn)程主機(jī)完成傳輸以后,用戶便能使DTE10信道3流開通(flowON),并允許2號遠(yuǎn)程主機(jī)完成其信息文件的傳送。
流控制命令的信道地址是從位30-33的計算中得到的。這允許直接尋址14條數(shù)據(jù)信道信道1(0001)至信道14(1110)。碼0000用于停止協(xié)議的使用,而碼1111指示信道地址擴(kuò)充,它表示下一個字節(jié)用于指定一個大于14的信道號碼。這一擴(kuò)充字節(jié)用以為協(xié)議類型A提供附加的信道尋址能力。位36(MSB)至30(LSB)是地址擴(kuò)充碼。位37不用并舍去(被屏蔽掉)。不使用地址擴(kuò)充碼0至31,因為它們與ASCII控制字符相同。地址擴(kuò)充碼127標(biāo)志下一個地址擴(kuò)充,因而需要再增加一個附加字節(jié)來指定擴(kuò)充后的信道號碼。這便可以根據(jù)需要來擴(kuò)充信道的數(shù)量。對于第一擴(kuò)充字節(jié),信道號是從地址擴(kuò)充碼減32得到的,因而該地址擴(kuò)充碼應(yīng)從信道號32得到。由于碼00至1F和碼FF不能用于指定信通號,所以每一增加的地址擴(kuò)充字節(jié)只擴(kuò)充95條信道數(shù)。協(xié)議類型A地址碼/擴(kuò)充碼的一些例子是信道1-31;信道14-3E;信道15-3F,20;信道16-3F,21;信道109-3F,7E;信道110-3F,7F,20;其中的代碼為16進(jìn)制數(shù)字,而且為了方便,如果有校驗位的話,總是邏輯O。
熟悉X.25與V.42協(xié)議的人可以理解這些協(xié)議提供了對各個設(shè)備的尋址能力。例如,假定遠(yuǎn)程主機(jī)20a已被賦值為1號設(shè)備碼,遠(yuǎn)程主機(jī)20b被賦值為2號設(shè)備碼,等等。為了便于討論,并假定這些設(shè)備碼在通過PCE14時不改變。為了方便,又假定DTE10與DCE12已將信道1指定為對應(yīng)于遠(yuǎn)程主機(jī)20a,將信道2指定為對應(yīng)于遠(yuǎn)程主機(jī)20b,等等?,F(xiàn)在假定DTE10已經(jīng)請求遠(yuǎn)程主機(jī)20a和20b提供某種特定的信息,并且這些主機(jī)已開始傳送信息?,F(xiàn)在假定,DTE確定來自遠(yuǎn)程主機(jī)20a的數(shù)據(jù)更為緊要即具有較高的優(yōu)先級。DTE10便向DCE12送出命令信道2流關(guān)斷(12+42(16進(jìn)制))。這就是告訴DCE12DTE10要求停止從信道2接收數(shù)據(jù)。由于DCE12不能再向DTE10送出信道2的數(shù)據(jù),信道2的緩沖器將開始充滿。最終,DCE12將通過電話線13和DCE14,以及X.25或V.42協(xié)議,通知遠(yuǎn)程主機(jī)20b停止數(shù)據(jù)傳送。此后,當(dāng)DTE10已經(jīng)完成了來自遠(yuǎn)程主機(jī)20a的數(shù)據(jù)接收,DTE10將發(fā)出信道2流開通命令(16進(jìn)制12+62),該命令允許DCE12恢復(fù)在信道2上對DTE10的傳輸。一旦信道2的緩沖器部分地空出后,DCE12將通知遠(yuǎn)程主機(jī)20b恢復(fù)數(shù)據(jù)傳輸。
本發(fā)明的較佳實施例限制控制碼為兩個字,它支持14條獨立的雙向數(shù)據(jù)信道(不包括信道0)。每一信道可以具有至少包含7比特數(shù)據(jù)的任何數(shù)據(jù)格式。由于數(shù)據(jù)可以在一條典型的總線上以偶校驗、奇校驗或無校驗來傳送,控制碼也以偶校驗、奇校驗或無校驗傳送,和以前在DTE10與DCE12之間通信的選擇方法一樣。信道0用于傳統(tǒng)的、非復(fù)用的數(shù)據(jù)傳送。
鏈路狀態(tài)命令使得接受該命令的設(shè)備用其當(dāng)前的發(fā)送信道號及其每一接收信道的流控制狀態(tài)來響應(yīng)。這一命令用以確認(rèn)DTE10與DCE12之間已建立的通信鏈路,確定當(dāng)前工作的信道,并確定所支持的信道數(shù)目。在初始化時DCE12執(zhí)行一條鏈路狀態(tài)命令。在本較佳實施例中只有DTE10能發(fā)送鏈路狀態(tài)命令。該鏈路狀態(tài)命令通常是在檢測到接收錯誤或顯示DTE與DCE通信不正常的其它狀況時由DTE10發(fā)出的。
保留命令當(dāng)前還未定義,在被定義以前可不予理睬。這一特性有助于誤碼的檢測。如果未定義的代碼真的沒有定義,那么控制字中的差錯可能導(dǎo)致不可預(yù)料的或有害的結(jié)果。這一特性可以使產(chǎn)品升級,對原先的保留字進(jìn)行定義就可提供附加命令。這些新的命令在升級后的產(chǎn)品中能產(chǎn)生所要求的結(jié)果,而在較早的產(chǎn)品中則不起作用。
如果由于某種原因,要求得到不用翻譯協(xié)議命令與控制字節(jié)的一般數(shù)據(jù)鏈路,則必須發(fā)送“選擇信道0”(鏈路拆線)命令。接受該命令的設(shè)備的響應(yīng)將是返回到單信道(非流)操作方式。如果接收設(shè)備是DCE,它在進(jìn)入單信道鏈路方式前也發(fā)送“選擇信道0”序列。這可以使發(fā)出中斷的DTE能以監(jiān)視回答的“選擇信道O”序列來確定數(shù)據(jù)流的結(jié)束時刻。如果接收設(shè)備是DTE,它不得發(fā)送回答的“選擇信道0”序列,因為這將促使DCE再一次發(fā)送回答的“選擇信道0”序列,從而導(dǎo)致回答的“選擇信道0”序列的無限循環(huán)。當(dāng)然,如果需要,回答的“選擇信道0”序列可以是一個不同的碼,例如12+70(16進(jìn)制)。這樣做,可使接收設(shè)備,不論是DTE或DCE,都能回答該“選擇信道0”序列。
注意除了設(shè)備流控制命令XON和XOFF之外的所有控制碼都以DC2字符(16進(jìn)制12)為開頭。如果數(shù)據(jù)中要用數(shù)值11,12,或13(16進(jìn)制),必需在發(fā)送該特殊字節(jié)之前先發(fā)送DC2。在本較佳實施例中,只觀察一個字的低7位??梢宰⒁獾?2(16進(jìn)制)對應(yīng)于控制字符DC2,而92(16進(jìn)制)的低7位也相當(dāng)于DC2控制字符。同樣,碼91與93表現(xiàn)為XON與XOFF。所以,如果在數(shù)據(jù)中需要值91,92,或93(16進(jìn)制)必須先發(fā)送DC2后隨該特殊字節(jié)。這一方法避免了二進(jìn)制數(shù)據(jù)或者8位數(shù)據(jù)字偶然地與一個DC2,XON或XOFF相似而導(dǎo)致不希望發(fā)生的或有害的結(jié)果。所以,如果使用8位碼,例如ASCII8位字格式,8位字91,92和93(16進(jìn)制)分別用和11,12和13(16進(jìn)制)同樣的編碼,只是其第7位是邏輯1。因此,本發(fā)明可容納7位和8位兩種數(shù)據(jù)流。
將數(shù)據(jù)從一條數(shù)據(jù)傳輸信道上改變到另一條數(shù)據(jù)傳輸信道是以發(fā)送一條“選擇信道N”控制碼來完成的。例如,如果DCE12在信道3上,再在信道1上,再在信道2上向DTE10傳送數(shù)據(jù),則DCE12應(yīng)該發(fā)送16進(jìn)制控制碼12+33,隨著是給信道3的數(shù)據(jù),12+31,隨后是給信道1的數(shù)據(jù),以及12+32,隨后是給信道2的數(shù)據(jù)。
表2示出了DTE與DCE之間的一次對話的實例。這一對話實例僅用于提供一次DTE/DCE交換可能包括的內(nèi)容,不限于此。在步驟1,DTE發(fā)送鏈路狀態(tài)命令。在響應(yīng)該鏈路狀態(tài)命令時,DCE通知DTE它所支持的所有信道的狀態(tài)并指出當(dāng)前所選擇的信道。對該例來說,假定當(dāng)前的傳輸信道為1,這可以是由前面的“選擇通道1”命令或者上電隱含設(shè)置的結(jié)果。在這一例子中,步驟2到6指出DCE支持信道1至4,信道1,2和4為流開通狀態(tài),信道3流關(guān)斷,而當(dāng)前的傳輸信道為1。在步驟7和8中,DTE使信道1流關(guān)斷,然后,由于信道1是當(dāng)前傳輸信道(在步驟6中指明),DTE發(fā)送數(shù)據(jù)串“ThisisA”。注意DCE不能響應(yīng)它,因為信道1是當(dāng)前傳輸信道但DTE已使信道1流關(guān)斷。然而,在步驟9,DTE使信道1流開通。所以,在步驟10,(假定DCE設(shè)置成回波方式)DCE返回數(shù)據(jù)“ThisisA”。在步驟11和12,DTE選擇信道2并發(fā)送數(shù)據(jù)“SampleSession”。在步驟13,DCE接著選擇信道2,因為DTE便是從該信道上發(fā)送數(shù)據(jù)的,然后,在步驟14,返回數(shù)據(jù)“SampleSession”。雖然由于受表2的描述的限制,如象表2只能采用半雙工操作,但對于本發(fā)明而言并無這種限制。就是說,本發(fā)明兼?zhèn)浒腚p工和全雙工兩種通信功能。
在步驟15,DTE選擇信道4,而后,在步驟16,發(fā)送數(shù)據(jù)流“AnotherSession”。在步驟17,DTE以數(shù)據(jù)的形式發(fā)送經(jīng)過編碼的“XON”字符。
從上可知,本發(fā)明提供一種選擇一組虛擬數(shù)據(jù)信道中的特定的一條,并在這些信道上發(fā)送數(shù)據(jù)使得在一條特定的信道上發(fā)送的數(shù)據(jù)最終通向一臺予定的設(shè)備的方法。本發(fā)明也提供了對出現(xiàn)在數(shù)據(jù)流中的某些控制字符進(jìn)行編碼的手段,以使這些控制字符不會導(dǎo)致有害的后果而又能以改變了的格式作為DTE和DCE之間的數(shù)據(jù)流中的一部分照常傳輸。
現(xiàn)在考慮本發(fā)明的較佳實施例在其較佳環(huán)境中的操作過程。表3是典型的通信過程的例子。假定有三個主機(jī)連接到一個X.25節(jié)點上主機(jī)20a是一個銀行服務(wù)點,賦予該主機(jī)設(shè)備號134;主機(jī)20b是一個金融服務(wù)點,賦予其主機(jī)設(shè)備號291;以及主機(jī)20c是一個新聞服務(wù)點,賦予設(shè)備號156。這些設(shè)備號是由X.25網(wǎng)絡(luò)控制器(未示出)所指配的。在步驟1中,用戶已經(jīng)由DTE10命令調(diào)制解調(diào)器12占用電話線13并拔通X.25網(wǎng)絡(luò),現(xiàn)在假定兩個調(diào)制解調(diào)器12與14已經(jīng)接通,并已完成了聯(lián)絡(luò),并且DTE10的用戶要求訪問這三個主機(jī)。在步驟2,用戶用輸入命令“CALLIDAD1,VCN”指令DTE10去訪問第一服務(wù)點,例如,銀行,其中ID表示網(wǎng)絡(luò)識別碼,AD1表示銀行服務(wù)點在這一特定網(wǎng)絡(luò)上的地址(134),而VCN則表示所要的虛擬信道號。VCN號也指定了處理該通信的PAD。PAD1處理信道1上的通信,PAD2處理信道2上的通信,等等。如果沒有給出VCN,則假定選中的是上次使用的信道或者在沒有關(guān)于上次使用信道的信息時,就選擇信道1。DTE10將這一指令送往DCE12,DCE12將與標(biāo)號為ID的網(wǎng)絡(luò)上的具有地址AD1的設(shè)備建立連接。在該例中,這將是銀行主機(jī)20a,DCE1將使用虛擬信道1在DTE10與DCE12之間通信,對DCE12與設(shè)備AD1之間的通信,將使用X.25的信道K1,信道K1是X.25網(wǎng)絡(luò)控制器所指定的邏輯信道號。連接建立后,DCE12便進(jìn)入了PAD連機(jī)狀態(tài)。
在步驟3,數(shù)據(jù)便通過DCE(調(diào)制解調(diào)器)12和14在DTE12與主機(jī)20a(設(shè)備AD1)之間傳送。必須記住某些字符在DTE10和DCE12之間傳送前必須加以編碼,如上面已說明并在表2所示?,F(xiàn)在假定用戶要求訪問主機(jī)20b的金融服務(wù)點。在步驟4用戶按“DLE”鍵和“2”鍵。這就使DTE10向DCE12發(fā)送十六進(jìn)制碼12,32。我們記得碼12,32是切換到信道2和PAD2的命令。這使用DTE10和DCE12在完成了所有剩余的數(shù)據(jù)傳送以后,從虛擬信道1與PAD1轉(zhuǎn)換到虛擬信道2與PAD2并進(jìn)入PAD命令狀態(tài)。在步驟5用戶打入“CALLIDAD2”命令。此時DCE12與具有地址AD2的設(shè)備(金融主機(jī)20b)建立聯(lián)系并進(jìn)入PAD連機(jī)狀態(tài)。在本較佳實施例中,每當(dāng)發(fā)布一條導(dǎo)致任何PAD改變狀態(tài)的命令,也就是進(jìn)入命令狀態(tài)或進(jìn)入連機(jī)狀態(tài),則所有的PAD改變狀態(tài)。X.25網(wǎng)絡(luò)控制器將指派用于DCE12與主機(jī)20b之間的連接。DCE12持有一張PAD虛擬信道與X.25網(wǎng)絡(luò)邏輯信道號之間的相互關(guān)系表,使得去往/來自DTE10的數(shù)據(jù)傳送總是來自/去往適當(dāng)?shù)闹鳈C(jī)20a-20c。在步驟6,數(shù)據(jù)在DTE10和主機(jī)20b之間傳送。
如步驟7-12所示,用戶可以接問主機(jī)20c,再返回主機(jī)20a,等等。因而,用戶經(jīng)由一條單一的拔號連接線,可以同時并獨立地接到多個主機(jī)系統(tǒng)20a-20n。此外,對某些字符加以編碼允許使用整個ASCII字符集以及也允許二進(jìn)制數(shù)據(jù)的傳送,由于使用了本發(fā)明的協(xié)議,能夠輕而易舉地確定一字符是數(shù)據(jù)字符還是命令字符。并注意本發(fā)明在DTE10與X.25網(wǎng)絡(luò)之間提供了一個編碼的接口,使得X.25網(wǎng)絡(luò)的命令能夠通過DCE12發(fā)送而不被DCE12理解為命令。同樣,給DCE12的命令被截住并由DCE12執(zhí)行,且不會送到X.25網(wǎng)絡(luò)。
協(xié)議類型B提供了用以區(qū)別用戶數(shù)據(jù)與控制數(shù)據(jù)(命令與應(yīng)答)、強(qiáng)制某信道進(jìn)入命令狀態(tài)以及生成可變長度的“斷開”信號的信令。協(xié)議類型B也是一個7位協(xié)議,并且可不理睬位37(圖2)。協(xié)議類型B的指示字符或?qū)б址麨镈C4(16進(jìn)制的14)。所以,如果接收到一個其值為14或94(16進(jìn)制)的字符,則下一字符應(yīng)按B類協(xié)議的指令而不是用戶數(shù)據(jù)來處理。如果值為14或94(16進(jìn)制)的字符要作為用戶數(shù)據(jù)發(fā)送,則必須加以編碼。編碼方式與A類協(xié)議中對DC1,DC2和DC3碼的編碼方式相似。經(jīng)過編碼的值14和94(16進(jìn)制)示于表4中。如果可能應(yīng)當(dāng)避免使用值0至1F(16進(jìn)制),由于這些值相應(yīng)于ASCII控制碼。
表4列出了協(xié)議類型B和B1的控制碼。B類協(xié)議支持三條命令加上二個編碼字符。B1類協(xié)議支持B類協(xié)議的所有功能并提供兩個外加的功能??梢钥闯鲆粋€代碼根據(jù)它是被調(diào)制解調(diào)器12發(fā)送或者接收而可以有不同的含義。同樣,某些碼,例如控制數(shù)據(jù)/信道轉(zhuǎn)義碼,說明一定范圍的值是保留字。然而,發(fā)送設(shè)備總是在送出列出的第一個碼時將位30-33置成0,而接收設(shè)備總是響應(yīng)整個范圍的值而不考慮位30-33。
DCE送至DTE的控制數(shù)據(jù)碼指示后隨的數(shù)據(jù)不是用戶數(shù)據(jù),例如PAD業(yè)務(wù)信號或AT命令結(jié)果碼。當(dāng)控制數(shù)據(jù)消息結(jié)束時,DCE必須發(fā)送數(shù)據(jù)元邊界碼,以后跟隨的便認(rèn)為是用戶數(shù)據(jù)了。
DCE在接收時,信道轉(zhuǎn)義碼將信道從數(shù)據(jù)傳送狀態(tài)退出。在X.3PAD的情形中,其作用和PAD撤出(recall)字符相同,即強(qiáng)制PAD進(jìn)入命令狀態(tài)。在AT命令處理器的情況中,此碼強(qiáng)制DCE進(jìn)入命令狀態(tài),就如同DCE已接收到4,549,302號美國專利中所描述的轉(zhuǎn)義序列一樣。如果信道還未結(jié)束命令狀態(tài),則DCE將不理會此碼。如果載波消失或者如果遠(yuǎn)程設(shè)備14清除該虛擬連接,或者如果DTE10發(fā)出了一個具有不少于予定持續(xù)時間的“斷開”信號,DCE也將退出連機(jī)或數(shù)據(jù)傳送狀態(tài)并進(jìn)入PAD命令狀態(tài)。
當(dāng)DCE傳送時,該“斷開”信號所表示的是該DCE已從遠(yuǎn)程設(shè)備14接收到一個具有指定持續(xù)時間的“斷開”信號。當(dāng)DCE接收到“斷開”信號時,這一代碼使DCE向遠(yuǎn)程設(shè)備14發(fā)送一個具有指定持續(xù)時間的“斷開”信號。其第二個字節(jié)(4M)的位33-30構(gòu)成“斷開”信號持續(xù)時間的高4位,第三字節(jié)(4N)的位33-30構(gòu)成“斷開”信號延續(xù)時間的低4位。“斷開”信號長度的分辨率為0.01秒。所以,這一代碼可以指示已接受到或?qū)е律梢粋€持續(xù)期為0到2.55秒的“斷開”信號。
當(dāng)由DCE發(fā)送時,數(shù)據(jù)元界碼標(biāo)示一個數(shù)據(jù)元的終了。一個數(shù)據(jù)元定義為數(shù)據(jù)的整體或數(shù)據(jù)塊。例如,在M一位序列中的三個X.25數(shù)據(jù)包序列構(gòu)成一個數(shù)據(jù)元。在一個數(shù)據(jù)元界碼后面?zhèn)鬏數(shù)臄?shù)據(jù)被認(rèn)為是用戶數(shù)據(jù),除非另有標(biāo)記,例如用控制數(shù)據(jù)碼加以標(biāo)記。
DCE在接收到“提交數(shù)據(jù)碼”后,使得緩沖存儲在信道存儲器(FlFO)中的任何數(shù)據(jù)立即被送到電話線或數(shù)據(jù)鏈路13上,并受DCE14所提供的任何流控制信號的控制。如果DCE不處在包模式中,則數(shù)據(jù)提交碼的接收不起任何作用并被DCE所舍棄。
編碼的DC4字符和編碼的94(16進(jìn)制)的值的代碼也列在表4中。
協(xié)議類型B1擴(kuò)展為應(yīng)用軟件(DTE10中的驅(qū)動程序)提供一種處理X.25合格數(shù)據(jù)(Q位)包的方法。在這一模式中,來自遠(yuǎn)程DCE(14)的一個合格數(shù)據(jù)包由DCE12以ASCII十六進(jìn)制編碼格式并在其前面加有該Q位數(shù)據(jù)的形式傳送給DTE10,而不是由DCE12中的PAD來處理。合格的數(shù)據(jù)包可以在合格數(shù)據(jù)之前加上“提交Q位數(shù)據(jù)碼”來向遠(yuǎn)端DCE14中的PAD傳送,如果DCE12的PAD要處理通常來自DCE14的合格數(shù)據(jù)包,則須在該數(shù)據(jù)包的前面加上“處理Q位數(shù)據(jù)碼”。
DCE發(fā)送該“Q位數(shù)據(jù)碼”表示后面是合格的(Q位)數(shù)據(jù)。在接收到來自遠(yuǎn)程設(shè)備14的一個合格數(shù)據(jù)包時總要發(fā)送這一代碼。此外,上述“數(shù)據(jù)元界碼”是在Q位數(shù)據(jù)元后面發(fā)送的,用于指示Q位數(shù)據(jù)傳輸已完成。在一個M位序列中的多個Q位數(shù)據(jù)包被認(rèn)為是一個數(shù)據(jù)元。如果已經(jīng)送出一個數(shù)據(jù)元界碼,而又出現(xiàn)了更多的合格數(shù)據(jù),則在數(shù)據(jù)元界碼之后,附加的合格數(shù)據(jù)之前必須有一個“Q位數(shù)據(jù)碼”。
DCE在發(fā)送一個數(shù)據(jù)元界碼以后,直到該DCE已從DTE接收到一個完整的合格數(shù)據(jù)消息之前,DCE不再向DTE發(fā)送數(shù)據(jù)。這就允許DTE,在PAD處理來自遠(yuǎn)程設(shè)備14的任何更多的用戶數(shù)據(jù)以前,處理合格數(shù)據(jù)消息。例如,該合格數(shù)據(jù)消息可能是來自遠(yuǎn)程設(shè)備14的一個“SETPAD”消息,并可能已經(jīng)改變了PAD將要發(fā)送此后的用戶數(shù)據(jù)的方式。一般來說,接收到某一X.25設(shè)置,讀消息,或者設(shè)置與讀PAD消息是一次數(shù)據(jù)提交條件。在協(xié)議類型B1有效時,從遠(yuǎn)程設(shè)備14接收的Q位包是不由PAD解碼的。這些數(shù)據(jù)提交條件必須由DTE來處理。
Q位的每一八比特組是以一對ASCII十六進(jìn)制數(shù)字的格式傳送的,它用字符“0”到“9”和“A”到“F”來表示。設(shè)備將該數(shù)字對在流中傳輸,并不包含空格符或分隔符。
DCE收到“提交Q位數(shù)據(jù)碼”就表示隨后是合格的數(shù)據(jù)包,并且這些數(shù)據(jù)應(yīng)立即發(fā)送,和B類協(xié)議接收到數(shù)據(jù)碼后的處理樣。在組裝這些Q位數(shù)據(jù)包時從DTE10收到的數(shù)據(jù)應(yīng)該是以ASCII16進(jìn)制數(shù)字對的格式表示,即只能是字符“0”至“9”,“A”至“F”,以及“a”至“f”收到的不符合這一字符要求的數(shù)據(jù)將被PAD所丟棄。
“處理Q位數(shù)據(jù)碼”在被DCE收到時,它是一種“數(shù)據(jù)提交碼”并使設(shè)備將下一個由Q位組生成的包(或M位序列)發(fā)送到設(shè)備的Q位包處理器(X.29)去進(jìn)行處理,如同它是從遠(yuǎn)程設(shè)備14上收到的一樣。這可使DTE10能向DCE12傳送Q位包,使DCE12處理該包并將處理過的包返回給DTE10。在組裝Q位時接收到的來自DTE10的數(shù)據(jù),應(yīng)具有在“Q位提交碼”所描述的同一格式。
現(xiàn)在轉(zhuǎn)向圖3,這是在調(diào)制解調(diào)器(例如DCE12)中實現(xiàn)的本發(fā)明的較佳實施例的方框圖。插接件50(例如一個RS-232C連接器)至少具有發(fā)送數(shù)據(jù)(TXD)端子,接收數(shù)據(jù)(RXD)端子和信號接地(GND)端子。TXD與RXD端子分別由導(dǎo)線51與67連接到控制碼與狀態(tài)處理器52的RXD輸入端與TXD輸出端多個PAD由控制碼與狀態(tài)處理器52實現(xiàn)??刂拼a與狀態(tài)處理器和PAD52經(jīng)由它的MRXD輸出與導(dǎo)線53向調(diào)制解調(diào)發(fā)送器54的數(shù)據(jù)輸入(DIN)端提供修正過的RXD信號。發(fā)送器54使用導(dǎo)線53上的輸入數(shù)據(jù)生成對應(yīng)于導(dǎo)線53上輸入數(shù)據(jù)的一個經(jīng)過調(diào)制的數(shù)據(jù)載波。發(fā)送器54的經(jīng)過調(diào)制的數(shù)據(jù)載波輸出(COUT)連接到雙工器56的發(fā)送器(T)輸入端。雙工器56的雙向線路(L)端口連接到電話線13。
雙工器56的接收(R)輸出端由導(dǎo)線60連接到一臺調(diào)制解調(diào)接收器61的調(diào)制數(shù)據(jù)載波輸入端(CIN)上。接收器61解調(diào)該輸入數(shù)據(jù)載波在其數(shù)據(jù)輸出(DOUT)端上提供一對應(yīng)于導(dǎo)線60上的輸入調(diào)制數(shù)據(jù)載波信號中所包含的數(shù)據(jù)的數(shù)據(jù)流。接收器61的DOUT輸出端由導(dǎo)線62連接到PAD與控制碼及狀態(tài)處理器52的MTXD輸入端。處理器52經(jīng)由其發(fā)送數(shù)據(jù)輸出端(TXD)與導(dǎo)線64,向RS-232C連接器50的TXD端提供一個已修正的TXD信號。
處理器52的控制端由導(dǎo)線63連接到發(fā)送器54和接收器61的控制端上??刂?數(shù)據(jù)總線65將處理器52和隨機(jī)存取存儲器(RAM)66相連接。在本較佳實施例中,可以認(rèn)為RAM66被分成至少三個區(qū)域發(fā)送先進(jìn)先出(FIFO)寄存器;接收FIFO寄存器;以及虛擬信道號(VCN)對X.25信道號的交叉參照表。15個發(fā)送寄存器(CH.OTFIFO-CH.14TFIFO)和15個接收寄存器(CH.ORFIFO-CH.14RFIFO)用于暫存數(shù)據(jù)。在本較佳實施例中,這些寄存器的每一個具有500至3000字節(jié)的容量。
雖然在本較佳實施例中提供了14個PAD和虛擬信道,本發(fā)明并不限于14個PAD和虛擬信道。如果愿意或需要,可以容易地提供更多的PAD和虛擬信道。
現(xiàn)在考慮對電話線13上從DTE10至DCE12的數(shù)據(jù)的處理。為了便于討論,假定DCE12工作于連機(jī)方式并已選擇了層1操作(協(xié)議類型A)。在RXD線51上的輸入數(shù)據(jù)被處理器52所檢驗以確定是否出現(xiàn)了轉(zhuǎn)義碼序列,XON字符,XOFF字符,DC2字符或?qū)?yīng)于91,92或93(16進(jìn)制)的8位ASCII字符。如果出現(xiàn)了轉(zhuǎn)義序列,處理器52便進(jìn)入命令狀態(tài)。使用轉(zhuǎn)義序列的目的現(xiàn)在已為熟悉本技術(shù)者所公知。在本較佳實施例中,控制碼與狀態(tài)處理器52能響應(yīng)4,549,302號美國專利中所描述的轉(zhuǎn)義序列。如果出現(xiàn)的是XOFF字符,則處理器52將停止在TXD線64上發(fā)送數(shù)據(jù)。如果出現(xiàn)的是XON字符,則處理器52恢復(fù)或連續(xù)在TXD線上發(fā)送數(shù)據(jù)。
如果出現(xiàn)的是DC2字符,則處理器52將檢驗后面的字節(jié)以確定正確的動作方向。如上所述,后隨的字節(jié)可以指示處理器52去選擇一個特定的PAD/信道,接通或斷開一個特定的PAD/信道,解碼這一字節(jié),或者進(jìn)入單信道模式(選擇信道O)。不屬于控制字符的其它字符和解碼后的字節(jié)被處理器52放入選定的數(shù)據(jù)信道的接收FIFO(RFIFO)。例如,如果選定了PAD/信道1,數(shù)據(jù)將進(jìn)入CH.1RFIFO、隨后該數(shù)據(jù)被從FIFO中讀出并以一個X.25/LAPM數(shù)據(jù)包的一部分提供給發(fā)送器54。國際電報電話咨詢委員會推薦X.25指出一個數(shù)據(jù)包包含有一個虛擬線路號,以便通過電話線13把數(shù)據(jù)送到它的正確目的地。然而,DTE10與DCE12間所用的信道約定并不一定對應(yīng)于DCE12的處理器52與連接在電話線13的另一端的X.25網(wǎng)絡(luò)之間所使用的虛擬線路號。所以處理器52管理信道號選擇(DTE10與DCE12之間)和X.25虛擬線路號之間的相互關(guān)系表。
DCE12經(jīng)由電話線13所接收的數(shù)據(jù)被送到適當(dāng)?shù)臄?shù)據(jù)信道的發(fā)送FIFO(TFIFO)中。然后,該相應(yīng)的FIFO(例如CH.lTFIFO)中讀出并檢驗是否出現(xiàn)了XON,XOFF,DC2,91,92或93(16進(jìn)制)字符。如果出現(xiàn)了這些字符,則如上所述它們在放到TXD線64以傳送至DTE10以前被編碼。
雖然本較佳實施例是用RS-232C總線11來描述的,顯然,本發(fā)明并不限于此。例如,也可以使用通用異步接收發(fā)送器(UART)(未示出)以實現(xiàn)并行數(shù)據(jù)總線與總線11之間的接口,將數(shù)據(jù)傳送至/來自并行數(shù)據(jù)總線。也可以通過一個緩沖器(未示出)實現(xiàn)處理器52與并行數(shù)據(jù)總線之間的數(shù)據(jù)傳送。
在本較佳實施例中,電話線13是傳統(tǒng)的模擬電話線,所以用調(diào)制解調(diào)器發(fā)送器54將數(shù)據(jù)信號(DIN)轉(zhuǎn)換成適合于在電話線13上傳送的模擬形式。同樣,調(diào)制解調(diào)器接收器61從電話線13上接收信號,并將這些信號解調(diào)以得到串行數(shù)據(jù)流(DOUT)。然而,本發(fā)明并不限于使用傳統(tǒng)的模擬電話線路。本發(fā)明也能與ISDN(綜合交換數(shù)據(jù)網(wǎng))電話線一起使用,在這一情況中調(diào)制解調(diào)器發(fā)送器54將DIN信號轉(zhuǎn)換成適合于在ISDN電話線13上傳輸?shù)母袷?,而調(diào)制解調(diào)接收器61將從電話線13上接收到的ISDN信號轉(zhuǎn)換成串行數(shù)據(jù)流DOUT。
現(xiàn)在轉(zhuǎn)到圖4A與4B,它們分別是本較佳實施例協(xié)議類型A操作的接收與發(fā)送操作的流程圖。圖4A與4B中的步驟是由處理器52執(zhí)行的。圖4A對應(yīng)于從DTE10接收數(shù)據(jù),而圖4B對應(yīng)于從電話線13上接收數(shù)據(jù)的處理。
在判定80中,處理器52確定輸入數(shù)據(jù)是否對應(yīng)于轉(zhuǎn)義碼序列,如果是,處理器進(jìn)入81操作的命令模式并停留在那里直到輸入一個連機(jī)命令。如果否,處理器52進(jìn)入判定82并檢測字符是否是XOFF字符。如果是,則處理器52在83停止對DTE的發(fā)送,然后返回判定80。如果否,處理器52進(jìn)入判定84,并確定字符是否是XON字符。如果是,處理器52在85恢復(fù)或者繼續(xù)向DTE發(fā)送,然后返回判定80,如果否,處理器52進(jìn)入判定86并確定字符是否DC2字符或DC4字符。如果是,處理器52接著在87確定下一個字符是否對應(yīng)于一條命令。如果是,處理器52在90執(zhí)行該命令,并返回判定80。如果否,則處理器52在91確定下一字符是否是一個編碼字符、如果否,則處理器52在執(zhí)行錯誤處理程序,因為在一個DC2或DC4字符后面跟隨的必須是一個命令字符或者一個編碼字符。如果該字符是一個編碼字符,則處理器52在92解碼該字符,然后在94將該字符置于選定信道的接收FIFO中,例如,CH.2RFIFO如果該字符不是轉(zhuǎn)義碼序列,XOFF,XON字符,DC2字符,和DC4字符,則在94將它放入選定信道的接收FIFO中。放在接收FIFO中的字符以后被處理器52讀出,組裝成數(shù)據(jù)包,然后提供給調(diào)制解調(diào)發(fā)送器54。在較佳實施例中處理器與PAD52將數(shù)據(jù)存儲在一條特定信道的接收FIFO中,并且只有當(dāng)一個完整的包或若干包組裝完成后才將數(shù)據(jù)送至調(diào)制解調(diào)發(fā)送器54。
從調(diào)制解調(diào)接收器61接收的數(shù)據(jù)在放入適當(dāng)信道的接收FIFO以前,按圖4B進(jìn)行處理。處理器52在判定100確定該數(shù)據(jù)字符是否為XON字符,在判定101確定是否為XOFF字符,在判定102確定是否是DC2字符或DC4字符,在判定103確定是否為91,92,93或94(16進(jìn)制)字符。如果是,處理器52在104編碼該數(shù)據(jù)字符,然后在105將該字符放入適當(dāng)?shù)男诺赖陌l(fā)送FIFO中,例如,CH.2TFIFO。如果該字符不是上述字符之一,則處理器52在105將該字符放入發(fā)送FIFO。放在某特定信道的發(fā)送FIFO的數(shù)據(jù),隨后被處理器52讀出,然后經(jīng)由連接器50的TXD接線送給DTE10。在較佳實施例中,只有當(dāng)數(shù)據(jù)已經(jīng)在該FIFO中組裝成一個完整包或若干包后,才從特定信道的發(fā)送FIFO中讀出,并提供給DTE10。
雖然是以X.25網(wǎng)絡(luò)的角度描述的,但本發(fā)明并不限于此。本發(fā)明在DTE-DTE的數(shù)據(jù)傳送中也是有用的,因而不同的數(shù)據(jù)流,例如不同的文件,可以被識別并且參照數(shù)據(jù)流出現(xiàn)的虛擬信道號進(jìn)行不同的處理。
從上所述,可以理解本發(fā)明提供了一種復(fù)用流協(xié)議,方法,以及裝置,藉此DTE和DCE能同時與多個連接在X.25網(wǎng)絡(luò)上的主機(jī)進(jìn)行通信。本發(fā)明同時提供編碼予先確定的字符,使得這些字符可以有選擇地用作數(shù)據(jù)字符或者控制字符。對于熟悉這方面的人員來說,顯然可以從該詳細(xì)描述和附圖,對本發(fā)明做多種多樣的修正、更改并提出其它實施例。因此,本發(fā)明只受以下的權(quán)利要求的限定。
權(quán)利要求
1.在包含一個第一裝置多個連接到一個網(wǎng)絡(luò)節(jié)點的主裝置以及一個介于所述第一裝置與所述網(wǎng)絡(luò)節(jié)點之間的第二裝置且每一所述主裝置具有一個在所述網(wǎng)絡(luò)節(jié)點上預(yù)先確定的地址的通信系統(tǒng)中,用于允許所述第一裝置與所述多個主裝置進(jìn)行同時的通信的一種方法,其特征在于第一裝置的工作過程包括下述步驟向所述第二裝置發(fā)送一個對應(yīng)于某第一所述主裝置的第一信道號向所述第二裝置發(fā)送去往所述第一主裝置的數(shù)據(jù);向所述第二裝置發(fā)送對應(yīng)于某下一個所述主裝置的下一信道號;以及向所述第二裝置發(fā)送去往所述下一個主裝置的數(shù)據(jù);和第二裝置的工作過程包括下述步驟管理信道號與所述主裝置預(yù)定的地址間的相互關(guān)系表;管理多個組包一拆包功能塊(PAD);接收所述第一信道號;生成用于所述第一主裝置的所述予先確定的地址;向所述網(wǎng)絡(luò)節(jié)點發(fā)送該預(yù)先確定的地址;用某第一上述PAD處理所述數(shù)據(jù);向所述網(wǎng)絡(luò)節(jié)點發(fā)送上述處理過的數(shù)據(jù);接收所述第二信道號;生成用于所述第二主裝置的所述預(yù)先確定的地址;向所述網(wǎng)絡(luò)節(jié)點發(fā)送該預(yù)先確定的地址;通過某第二所述PAD處理所述數(shù)據(jù);以及向所述網(wǎng)絡(luò)節(jié)點發(fā)送該處理過的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其中,每一個第一裝置發(fā)送一所述信道號的步驟包括發(fā)送一個第一予先確定的字符;以及發(fā)送一個對應(yīng)于所述信道號的第二字符。
3.根據(jù)權(quán)利要求2所述的方法,其中,每一個第一裝置發(fā)送數(shù)據(jù)的步驟包括檢驗該數(shù)據(jù)的每一個數(shù)據(jù)字符;如果某所述數(shù)據(jù)字符不包括在一預(yù)先確定的字符集合中則發(fā)送該數(shù)據(jù)字符;以及如果所述數(shù)據(jù)字符包括在所述預(yù)先確定的集合中則生成一個對應(yīng)于所述數(shù)據(jù)字符的替代字符並發(fā)送上述第一予先確定的字符再發(fā)所述替代字符。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述替代字符是一個其值大于31的ASCII字符。
5.根據(jù)權(quán)利要求1所述的方法,其中,每一第二裝置處理所述數(shù)據(jù)的步驟包括檢驗每一個從所述第一裝置接收的數(shù)據(jù)字符;如果所述數(shù)據(jù)字符不是某第一預(yù)先確定的字符則向所述PAD發(fā)送所述數(shù)據(jù)字符;如果所述數(shù)據(jù)字符是所述第一預(yù)先確定的字符則檢驗下一個數(shù)據(jù)字符;如果某下一個數(shù)據(jù)沒有包含在一個替代字符的集合中則作為控制信息處理該下一數(shù)據(jù)字符;以及如果所述下一個字符包括在所述代替字符的集合中則生成一個對應(yīng)于所述替代字符的原始數(shù)據(jù)字符並向所述PAD發(fā)送該厚始數(shù)據(jù)字符。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述控制信息包括某上述信道號。
7.根據(jù)權(quán)利要求5所述的方法,其中,所述替代字符集合中的每一個替代字符是一個其值大于31的ASCII字符。
8.根據(jù)權(quán)利要求5所述的方法,其中,所述第二裝置具有與第一所述信道號相關(guān)的一個緩沖存儲器,並且所述控制信息指令所述第二裝置停止以一個指定信道號向所述第一裝置發(fā)送數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的方法,其中,所述控制信息還指令所述第二裝置恢復(fù)以所述指定的信道號向所述第一裝置發(fā)送數(shù)據(jù)。
10.根據(jù)權(quán)利要求1所述的方法,其中,若所述數(shù)據(jù)是一“斷開”序列,所述第一裝置工作過程還包括為所述“斷開”序列確定持續(xù)時間;生成一組字符表示所述“斷開”序列具有所述持續(xù)時間;以及向所述第二裝置發(fā)送一個第一予先確定的字符再發(fā)所述字符組。
11.根據(jù)權(quán)利要求10所述的方法,其中,每一所述第二裝置處理所述數(shù)據(jù)的步驟還包括檢驗從所述第一裝置接收的每一個數(shù)據(jù)字符;若所述數(shù)據(jù)字符不是一個第一予先確定的字符則向所述PAD發(fā)送該數(shù)據(jù)字符;若所述數(shù)據(jù)字符是所述第一予先確定的字符則檢驗下一個數(shù)據(jù)字符;若所述下一個數(shù)據(jù)字符並不表示“斷開”序列則作為控制信息處理所述下一個數(shù)據(jù)字符;以及若所述下一個數(shù)據(jù)字符表示一個“斷開”序列則將具有由所述下一個數(shù)據(jù)字符指定的延續(xù)時間間隔的一了“斷開”序列發(fā)送到所述網(wǎng)絡(luò)節(jié)點。
12.用于允許數(shù)據(jù)終端設(shè)備(DTE),通過數(shù)據(jù)通信設(shè)備(DCE)訪問多個連接到一個預(yù)先確定的節(jié)點的主裝置的一種方法,其特征在于以下步驟使得所述DCE訪問所述預(yù)先確定的節(jié)點;建立一個第一虛擬信道號(VCN)用于在所述DTE與所述DCE之間通信;建立一個第一邏輯信道號(LCN)用于在所述DCE與所述多個主裝置中的一個第一主裝置之間通信;建立一個第二VCN用于在所述DTE與所述DCE之間通信;建立一個第二LCN用于在所述DCE與所述多個主裝置的一個第二主裝置之間通信;管理每一所述VCN與一個對應(yīng)的LCN之間的相互關(guān)系表;以及每當(dāng)所述DTE訪問一具有不同LCN的所述主裝置時,協(xié)調(diào)地改變所述VCN與所述LCN。
13.根據(jù)權(quán)利要求12所述的方法,還包括建立多個虛擬信道號與多個對應(yīng)的邏輯信道號;以及管理所述多個虛擬信道號中每一所述虛擬信道號與所述多個邏輯借道號中的每一所述邏輯信道號之間的所述相互關(guān)系表。
全文摘要
一種用以對連接到一個X25網(wǎng)絡(luò)節(jié)點上的多個主機(jī)進(jìn)行通信并可選擇性地使某字符是控制字符或數(shù)據(jù)字符的方法。該方法檢驗從X25夾網(wǎng)絡(luò)數(shù)據(jù),若屬于保留字,則先經(jīng)編碼后再送到其目的地。并檢驗發(fā)往X25網(wǎng)的數(shù)據(jù),若是控制字符則執(zhí)行該命令,若是數(shù)據(jù)則解碼后再送到X25網(wǎng)。DTE與DCE間的數(shù)據(jù)傳送通過指定一PAD和相應(yīng)于X25網(wǎng)上的特定主機(jī)的虛擬信道號進(jìn)行??墒笵TE和DCF在一條電話線上同時與多個X25主機(jī)通信。
文檔編號H04L29/04GK1042814SQ8910842
公開日1990年6月6日 申請日期1989年11月6日 優(yōu)先權(quán)日1988年11月7日
發(fā)明者理查德·J·伯頓, 約翰·A·科普蘭, 約翰·W·杰爾姆, 托比·L·尼克松, 馬丁·H·索斯?fàn)? 羅伯特·E·韋瑟福德, 拉里·D·貝克爾, 戴維·F·斯特朗 申請人:海斯微型計算機(jī)產(chǎn)品公司