專利名稱:串行網(wǎng)絡(luò)拓?fù)渖善鞯闹谱鞣椒?br>
技術(shù)領(lǐng)域:
本發(fā)明一般涉及串行通信網(wǎng)絡(luò),更具體地涉及串行網(wǎng)絡(luò)中的故障檢測(cè)與隔離,從而在一條網(wǎng)絡(luò)鏈路或一個(gè)設(shè)備故障時(shí)能進(jìn)行部分操作。
串行通信網(wǎng)絡(luò)與其它著名的網(wǎng)絡(luò),諸如多點(diǎn)式,星形或網(wǎng)格式網(wǎng)絡(luò)相比,具有諸多優(yōu)點(diǎn),最可貴的是良好的分布式輪詢功能,它能以網(wǎng)絡(luò)容量的高利用率容易地在大量的臺(tái)站之間支持同級(jí)層之間的通信。
串行網(wǎng)絡(luò)的主要缺點(diǎn)之一是在任何網(wǎng)絡(luò)部件故障時(shí)有摧毀性故障的傾向。
近年來(lái),開(kāi)發(fā)了大量檢測(cè)與或隔離串行通信網(wǎng)絡(luò)中故障的技術(shù)。較有用的技術(shù)之一是美國(guó)專利3,564,145中所公開(kāi)的當(dāng)前正在使用的IEEE802.5令牌環(huán)(TokenRing)。這一稱作信標(biāo)的技術(shù)以其地址指定一個(gè)故障網(wǎng)絡(luò)部件或臺(tái)站的緊接著的下游站。在一個(gè)靜態(tài)網(wǎng)絡(luò)中(例如網(wǎng)絡(luò)拓?fù)涫枪潭ɑ蛞阎木W(wǎng)絡(luò)),可以采取校正動(dòng)作以繞過(guò)或固定故障的網(wǎng)絡(luò)部件。
另一種技術(shù)(雙環(huán)重新配置)已被證明在隔離串行網(wǎng)絡(luò)中的故障中非常有用,從而在一個(gè)網(wǎng)絡(luò)部件故障之后提供全網(wǎng)絡(luò)或部分網(wǎng)絡(luò)操作。這一技術(shù)采用雙串行環(huán),它可以經(jīng)由開(kāi)關(guān)裝置轉(zhuǎn)換成單環(huán)從而繞過(guò)一個(gè)故障的網(wǎng)絡(luò)部件。下面列出的專利公開(kāi)了多種雙環(huán)重新配置實(shí)現(xiàn)美國(guó)專利3,519,750美國(guó)專利3,876,983美國(guó)專利4,009,469美國(guó)專利4,354,267美國(guó)專利4。390,984美國(guó)專利4,527,270美國(guó)專利4,538,264美國(guó)專利4,594,790美國(guó)專利4,709,365下面列出的專利公開(kāi)了多種用于繞過(guò)單環(huán)串行網(wǎng)絡(luò)中的一個(gè)故障網(wǎng)絡(luò)部件的手動(dòng)與自動(dòng)技術(shù)美國(guó)專利3,458,661美國(guó)專利4,035,770美國(guó)專利4,048,446美國(guó)專利4,245,343美國(guó)專利4,763,329
雖然上述所有技術(shù)本身或者它們的組合都是有用的,然而它們?cè)诟鞣N故障以后不能在一個(gè)串行環(huán)網(wǎng)絡(luò)中提供快速、有效或完全的通信修復(fù)。
諸如IEEE802.5令牌環(huán)網(wǎng)絡(luò)這樣的現(xiàn)代網(wǎng)絡(luò)通常作用位于整個(gè)機(jī)構(gòu)中的許多(多達(dá)數(shù)百個(gè)或更多)端口,這些端口中的許多個(gè)是不利用的或者是連接到待用站上的。此外,為了工作人員的方便,站(各有一唯一身份或地址)是頻繁地從一個(gè)端口轉(zhuǎn)移到另一端口的。
鑒于站的流動(dòng)性以及大量沒(méi)有或僅有待用站連接的端口,伴隨一個(gè)信標(biāo)信息的站身份或地址對(duì)定位故障的網(wǎng)絡(luò)部件的地理位置不提供信息。
美國(guó)專利4,507,777公開(kāi)的技術(shù)(緊接的現(xiàn)用上游鄰接站)在處理串行網(wǎng)絡(luò)中的故障修復(fù)是十分有用的;然而,從這一技術(shù)中所得到的順序站身份或地址并不提供充分的網(wǎng)絡(luò)拓?fù)湫畔?lái)精確地定位故障部件的物理位置。例如,兩個(gè)相鄰的現(xiàn)用站可能在物理網(wǎng)絡(luò)上相隔若干不連接或待用的端口。從而,知道了站X檢測(cè)到一個(gè)故障且站C在X之前并不能物理地定位一個(gè)特定的故障部件。
當(dāng)前的串行環(huán)通信網(wǎng)絡(luò)沒(méi)有用于開(kāi)發(fā)將各物理端口與連接在其上的一個(gè)現(xiàn)用站的身份(identity)或地址精確地相關(guān)聯(lián)的一種精確網(wǎng)絡(luò)拓?fù)涞淖詣?dòng)化設(shè)備。考慮過(guò)兩種解決方法,但沒(méi)有一種是實(shí)用的。各站的啟用時(shí)可將其身份或地址連同用一個(gè)網(wǎng)絡(luò)定義的位置輸入到一個(gè)數(shù)據(jù)庫(kù)或管理程序。這一任務(wù)可由一位操作員手工完成。這是一項(xiàng)繁重的任務(wù)并且在每一個(gè)站上都需要合作的操作人員。另一方面,在各端口上可提供充分的智能,當(dāng)啟用連接在其上的一個(gè)站時(shí)自動(dòng)地向該站提供用于自動(dòng)傳送給一個(gè)數(shù)據(jù)庫(kù)或網(wǎng)絡(luò)管理程序的位置信息或者直接地向一個(gè)數(shù)據(jù)庫(kù)或網(wǎng)絡(luò)管理程序傳送位置信息。單純從成本觀點(diǎn)上來(lái)看,這一解決方案是不實(shí)際的。
本發(fā)明設(shè)想了一種用于將多個(gè)端口連接到一個(gè)串行通信網(wǎng)絡(luò)及生成網(wǎng)絡(luò)及生成網(wǎng)絡(luò)拓?fù)湫畔⒌亩喽丝谶B接單元。所述單元包括多個(gè)通信端口以及兩個(gè)通信適配器,每一個(gè)適配器具有一個(gè)唯一的標(biāo)識(shí)符及將所述適配器連接到該串行通信網(wǎng)絡(luò)從而使各適配器能將包含所述唯一標(biāo)識(shí)符的信息信號(hào)從該網(wǎng)絡(luò)上接收與傳送到該網(wǎng)絡(luò)上的裝置。同時(shí)還包括將所述端口有選擇地在所述至少兩個(gè)適配器之間串聯(lián)的開(kāi)關(guān)裝置,及一個(gè)連接到所述兩個(gè)適配器之一用于從所述兩個(gè)適配器之一上接收一個(gè)包括一個(gè)控制一個(gè)控制信息的源的標(biāo)識(shí)符并且由所有連接到該網(wǎng)絡(luò)上的現(xiàn)用設(shè)備順序提供的一個(gè)預(yù)定的控制信息的控制裝置,以及用于將所接收到的所述兩個(gè)適配器的標(biāo)識(shí)符之間的順序設(shè)備身份關(guān)聯(lián)到所述開(kāi)關(guān)裝置所選擇的端口的裝置,從而生成一個(gè)網(wǎng)絡(luò)拓?fù)洹?br>
圖1是包括根據(jù)本發(fā)明的縮小了的重新配置單元的一個(gè)雙環(huán)網(wǎng)絡(luò)的方框圖;
圖2為展示網(wǎng)絡(luò)信息信號(hào)流的新穎重新配置單元的方框圖;
圖3為類似圖2的展示重新配置單元內(nèi)部通信(非網(wǎng)絡(luò)的)的方框圖;
圖4A至4D示出重新配置單元的不同開(kāi)關(guān)狀態(tài);以及圖5至17為展示圖2與3所示的編程的微處理器的操作的流程圖;以及圖18至20為展示在圖中所示的適配器中所執(zhí)行的新的功能的操作的流程圖。
圖1示出了包括四個(gè)重新配置單元RCU1-RCU4的一個(gè)雙令牌環(huán)網(wǎng)絡(luò)。這些單元由一個(gè)主環(huán)P與一個(gè)輔助環(huán)S互連。在正常或無(wú)故障操作中各RCU設(shè)置有80個(gè)端口并能連接多達(dá)80個(gè)諸如終端T這樣的設(shè)備到主環(huán)上。在這樣連接時(shí),任何設(shè)備Ti能夠經(jīng)由主環(huán)P與其它任何設(shè)備Ti±a進(jìn)行通信,只要這一其它設(shè)備也是連接的并且是可操作的。
當(dāng)主環(huán)中的一個(gè)部件或一條鏈路發(fā)生故障事件時(shí),通過(guò)在一個(gè)或多個(gè)RCU中對(duì)網(wǎng)絡(luò)的切換,將主環(huán)與輔助環(huán)進(jìn)行重新配置,以形成一個(gè)單環(huán),在該單環(huán)上全部或某些設(shè)備T仍可繼續(xù)通信,直到更換或修復(fù)了故障部件。下面將結(jié)合對(duì)附圖的說(shuō)明對(duì)如何完成這一點(diǎn)進(jìn)行說(shuō)明。為了支持重新配置,在P環(huán)與S環(huán)中的單向信號(hào)流是在相反方向上的,如圖1中所示的鏈路段P與S的方向箭頭所指。
圖2與3為單個(gè)RCU的方框圖。在圖2中只展示了信息信號(hào)(或數(shù)據(jù))流,而圖3則只展示了RCU的各種部件之間的內(nèi)部通信。相同的參照數(shù)字將用于圖2與3中相同的部件。
通過(guò)適配器10,15與16以及4個(gè)串聯(lián)的段開(kāi)關(guān)12及它們所服務(wù)的80個(gè)端口,一個(gè)重新配置開(kāi)關(guān)11被連接到主環(huán)與輔助環(huán)上。開(kāi)關(guān)11可在圖4A-4D中所示的狀態(tài)之一中,并將適配器和段開(kāi)關(guān)服務(wù)的端口互連。下面將提供有關(guān)這些狀態(tài)的更詳盡的討論;然而,下面跟著的說(shuō)明將假定開(kāi)關(guān)11是在圖4A所示的正常狀態(tài)中。
由PI適配器10傳遞的信息信號(hào)經(jīng)由重新配置開(kāi)關(guān)11在導(dǎo)線1上作用在一個(gè)第一段開(kāi)關(guān)12上。段開(kāi)關(guān)12是一個(gè)繼電器操作的多極雙擲開(kāi)關(guān),它在一個(gè)位置將導(dǎo)線1與導(dǎo)線2相連并且將導(dǎo)線3與導(dǎo)線4相連。在另一個(gè)位置,導(dǎo)線1直接與導(dǎo)線4相連而導(dǎo)線2與導(dǎo)線3相連。
導(dǎo)線2連接到一個(gè)端口模塊13的一個(gè)輸入端上,該端口模塊包括可連接諸如終端T這樣的設(shè)備的20個(gè)端口。每一個(gè)端口設(shè)置一個(gè)類似于段開(kāi)關(guān)12的繼電器操作的多極雙擲開(kāi)關(guān)14,并且在一種狀態(tài)中將導(dǎo)線1′與導(dǎo)線2′相連并且將導(dǎo)線3′與導(dǎo)線4′相連。第一端口的導(dǎo)線4′連接到第二端口的導(dǎo)線1′,從而在開(kāi)關(guān)在此狀態(tài)中形成一個(gè)所有端口的串聯(lián)連接。最后一個(gè)端口的導(dǎo)線4′連接到與第一段開(kāi)關(guān)12相連的導(dǎo)線3上。
如果所有的端口是現(xiàn)用的(即連接有現(xiàn)用設(shè)備T),所有的開(kāi)關(guān)14將在的描述的第一狀態(tài)中,并且設(shè)備T1-T20將是串聯(lián)的及由PI適配器10傳遞的信息信號(hào)將串行通過(guò)設(shè)備T1-T20傳遞并返回到第一段開(kāi)關(guān)12。第二、第三與第四段開(kāi)關(guān)12及它們所關(guān)聯(lián)的端口與相連的設(shè)備將以相同的方式操作。
第4段開(kāi)關(guān)12的導(dǎo)線4由重新配置開(kāi)關(guān)11連接到PO適配器15的輸入端,而適配器15的輸出端則連接到主環(huán)P(OUF)。
正正常模式中,到達(dá)P(in)的信息信號(hào)串行通過(guò)PI適配器10,第一段開(kāi)關(guān)12與現(xiàn)用連接的設(shè)備T1-T20;爾后串行通過(guò)其余的段開(kāi)關(guān)12及與之關(guān)聯(lián)的現(xiàn)用連接的設(shè)備T,然后通過(guò)PO適配器15。
在正常模式中,在輔助環(huán)S上的信息信號(hào)經(jīng)由重新配置開(kāi)關(guān)11通過(guò)S適配器16直接傳送到S環(huán)的輸出方。如果所有的RCU都在此模式中,S環(huán)不帶來(lái)自設(shè)備T的信息信號(hào)。在其它模式中(圖4B-4D)來(lái)自設(shè)備T的信息信號(hào)通過(guò)已經(jīng)重新配置成單環(huán)的主環(huán)與輔助環(huán)兩者的各一部分。
段開(kāi)關(guān)12與端口開(kāi)關(guān)14經(jīng)由圖3示意性地示出的實(shí)線導(dǎo)線18受微處理器17控制。適配器10、15與16通過(guò)圖3中用點(diǎn)劃線示出的一條總線19與微處理器17通信。
適配器10、15一16以是一IBM16/4令牌環(huán)適配器/A在構(gòu)造與操作上基本相同的。這種適配器與令牌環(huán)介質(zhì)接口并連接到IBMPC或兼容個(gè)人計(jì)算機(jī)的輸入/輸出總線上。適配器與PC間由共享存儲(chǔ)器技術(shù)實(shí)現(xiàn)信息交換。
在這一技術(shù)中,設(shè)置了各設(shè)備既可讀又可寫(xiě)的一個(gè)存儲(chǔ)器區(qū)域,這些設(shè)備周期性地檢驗(yàn)該存儲(chǔ)器,以檢測(cè)這些設(shè)備之一改寫(xiě)部分或全部存儲(chǔ)器內(nèi)容時(shí)導(dǎo)致的改變。這一存儲(chǔ)器區(qū)域的一部分包括若干標(biāo)志比特,它們各定義為一定的含義與功能。
為了修改適配器的功能,定義了三個(gè)附加標(biāo)志。一個(gè)第一標(biāo)志(TBF),當(dāng)設(shè)置時(shí)使適配器能夠傳輸信標(biāo)重新配置(BNR)幀,BNR幀與信標(biāo)正常(BNN)幀是按照IEEE802.5標(biāo)準(zhǔn)的格式與內(nèi)容定義的。第二標(biāo)志MBF指示適配器傳輸BNR幀來(lái)代替它所接收的幀。第三標(biāo)志DIS-TX指示適配器中斷其傳輸代替它所收到的幀的BNN幀所建立的(如果有的話)傳輸通路。爾后描述的圖5-17中的流程圖所示的由微處理器17執(zhí)行的功能可由一臺(tái)適當(dāng)?shù)鼐幊痰腎NTEL80C186微處理器來(lái)執(zhí)行。
如上所述,圖4A中所示的開(kāi)關(guān)11的狀態(tài)是RCU的正常狀態(tài)。即沒(méi)有檢測(cè)到故障。在開(kāi)關(guān)11的這一狀態(tài)中,所有的端口在P環(huán)上適配器10與15之間連接在串聯(lián)電路中,并且適配器16是插入在S環(huán)中的。
如果適配器10在P環(huán)上檢測(cè)到一個(gè)上游故障,它生在正常信標(biāo)幀(BNN)并經(jīng)由串聯(lián)電路將BNN幀向下游傳輸?shù)竭m配器15。此外,它經(jīng)由總線19和微處理器17發(fā)送一人指示這一狀態(tài)的信息。故障可有若干種類,最常見(jiàn)的是由一個(gè)上游RCU中一條電纜的斷路或一人電路部件的故障導(dǎo)致的沒(méi)有信號(hào)。這時(shí),微處理器17記下該故障并在改變開(kāi)關(guān)11的狀態(tài)以前等待進(jìn)一步的信息。
適配器15接收到一個(gè)BNN幀時(shí),在主環(huán)P(out)上向下游發(fā)送一個(gè)信標(biāo)重新配置幀BNR。同時(shí),它經(jīng)由總線19通知微處理器17。微處理器17記下來(lái)自適配器15的信息并經(jīng)由總線19向適配器16發(fā)送一個(gè)信息,這導(dǎo)致適配器16在S環(huán)上向下游發(fā)送BNN幀。如果上游P與下游S環(huán)都斷開(kāi)了,來(lái)自適配器16的BNN幀任何設(shè)備都檢測(cè)不到。然而,在這一情況中,鄰接RCU在S環(huán)上的緊接著的下游適配器16將已檢測(cè)到一個(gè)斷開(kāi)或故障,并已啟動(dòng)在S環(huán)上發(fā)送BNN幀。另一方面如果只有上游P環(huán)發(fā)生故障,則BNN幀將到達(dá)S環(huán)上緊接著的下游RCU上的適配器16。
來(lái)自適配器15的BNR幀向下游行進(jìn)而各適配器10向其連接的微處理器17通知BNR幀的收到。微處理器17設(shè)置一個(gè)定時(shí)器并檢測(cè)判定其S環(huán)上的相關(guān)聯(lián)的適配器16在接收到一個(gè)BNN幀時(shí)是否已經(jīng)檢測(cè)到一個(gè)上游S環(huán)故障。如果適配器16沒(méi)有報(bào)告任何事件,微處理器在定時(shí)到時(shí)以前將不采取任何行動(dòng)。
如果時(shí)間間隔足夠長(zhǎng),考慮進(jìn)環(huán)繞環(huán)的傳播延時(shí),在其它任何介與其間的RCU的時(shí)間過(guò)去以前在主環(huán)P中的一個(gè)故障的緊接著的上游的RCU將或者檢測(cè)到在輔助環(huán)S上的一個(gè)故障或者在該環(huán)上收到一個(gè)BNN及在主環(huán)上收到一個(gè)BNR。
在滿足上述條件時(shí),即,在P環(huán)上收到一個(gè)BNR同時(shí)在S環(huán)上或者收到一個(gè)BNN或者檢測(cè)到故障,微處理器將開(kāi)關(guān)11重新配置成圖4C的示的狀態(tài)。在這一狀態(tài)中,所收到的BNR幀將在輔助環(huán)S上循環(huán)回來(lái)。當(dāng)這一BNR幀被介入其間的適配器16收到時(shí),關(guān)聯(lián)的微處理器復(fù)件超時(shí)周期并保持在正常模式中。
當(dāng)檢測(cè)到上游P環(huán)故障的RCU的適配器16接收到其關(guān)聯(lián)的適配器15初始化的BNR幀時(shí),將其發(fā)送到微處理器17,后者識(shí)別適配器15的身份并將在經(jīng)過(guò)內(nèi)部檢驗(yàn)以后切換到圖4B所示的狀態(tài)中。這時(shí)雙環(huán)已被重新配置并且在一端包含檢測(cè)的RCU(圖4B);在另一端上是P環(huán)中斷開(kāi)或故障的上游的RCU(圖4C);并且介于其間的的有RCU都是以正常狀態(tài)連接的(圖4A)。
故障的環(huán)段包括首先檢測(cè)到故障的適配器10(圖4B)以及在P環(huán)上故障的上游RCU的適配器16。這兩個(gè)由于故障而無(wú)力復(fù)原雙環(huán)操作的適配器將發(fā)送BNN幀。一旦故障排除,一個(gè)適配器將首先接收一個(gè)完整的BNN幀,并且重新發(fā)送這一幀。當(dāng)這兩個(gè)適配器之一接收到帶其本身的身份的一個(gè)BNN時(shí),它知道不能工作的環(huán)已經(jīng)完整或修復(fù)(即,該BNN幀已轉(zhuǎn)過(guò)一周)。此時(shí),根據(jù)IEEE802.5標(biāo)準(zhǔn)的正常恢復(fù)使可執(zhí)行。當(dāng)這一工作完成時(shí),關(guān)聯(lián)的微處理器命令開(kāi)關(guān)11切換到正常狀態(tài)(圖4A)而恢復(fù)雙環(huán)操作。
需要說(shuō)明的是在圖4A、4B與4C中RCU中的所有端口1-80是由兩個(gè)適配器歸類(bracketed)在一起的。在圖4A與4C中適配器10與15將端口1-80歸類在一起,而在圖4B中則由適配器16與15將端口1-80歸在一起。在圖4D中所示的狀態(tài)中端口1-80只連接到一個(gè)適配器(16);然而它們是與網(wǎng)絡(luò)上的的有其它端口隔離的。
結(jié)合IEEE802.5標(biāo)準(zhǔn)規(guī)定的環(huán)形輪詢功能的電路布局,使微處理器17有可能將設(shè)備身份互相關(guān)聯(lián)。環(huán)形輪詢功能是實(shí)現(xiàn)在IEEE802.5令牌環(huán)中的,下面將作一簡(jiǎn)要的說(shuō)明。當(dāng)環(huán)開(kāi)始起動(dòng)或從一個(gè)故障中復(fù)原時(shí)(這通常發(fā)生在一個(gè)設(shè)備加入或離開(kāi)該環(huán)時(shí)),所有的設(shè)備進(jìn)入一個(gè)進(jìn)程,來(lái)選擇環(huán)上具有最高地址或身份的現(xiàn)有設(shè)備作為現(xiàn)用監(jiān)視器,而所有其它設(shè)備則承擔(dān)備用監(jiān)視器的任務(wù)。
這一進(jìn)程一旦完成,現(xiàn)用監(jiān)視器發(fā)送一個(gè)現(xiàn)用監(jiān)視器就位(AMP)幀。這一幀中包括一個(gè)廣播TO(目的)地址字段以及在FROM(源)地址字段中的它自身的地址。此外,該幀包括一個(gè)幀已復(fù)制比特。由于環(huán)是串行的,下一個(gè)現(xiàn)用下游站在任何其它站之前接收該幀(由于它包含一個(gè)廣播地址)。因?yàn)闆](méi)有設(shè)置幀已復(fù)制比特,它便知道現(xiàn)用監(jiān)視器是緊接著的現(xiàn)用上游鄰接站(NAUN)并存儲(chǔ)這一信息。在重發(fā)這一比特以前它還將它設(shè)置,從而使環(huán)上后面的設(shè)備不致誤認(rèn)為現(xiàn)用監(jiān)視器是它們的NAUN。
這一設(shè)備將等待一個(gè)令牌幀,而在接收到一個(gè)令牌幀之后發(fā)送一個(gè)備用監(jiān)視器就位(SMP)幀。與AMP幀相同,它在FROM地址字段中包含它的設(shè)備地址而在TO地址字段中包含一個(gè)廣播地址以及一個(gè)幀已復(fù)制比特。下一個(gè)現(xiàn)用下游設(shè)備重復(fù)上述進(jìn)程。
這一進(jìn)程一直重復(fù)到現(xiàn)用監(jiān)視器接收到一個(gè)帶有未設(shè)置的幀已復(fù)制比特的SMP幀為止。這時(shí)在環(huán)上的每一個(gè)現(xiàn)用設(shè)備已經(jīng)得到了其NAUN的地址或身份,并且環(huán)形輪詢進(jìn)程已經(jīng)完成;然而,上述現(xiàn)有的進(jìn)程并不能標(biāo)識(shí)或關(guān)聯(lián)這些設(shè)備與它們所連接的端口,因?yàn)闆](méi)有足夠的信息可資利用來(lái)做到這一點(diǎn)。任何站都能按次序復(fù)制這些設(shè)備的身份;然而它無(wú)從得到足夠的信息來(lái)將這些設(shè)備的身份關(guān)聯(lián)到任何特定的端口或物理位置。
根據(jù)本發(fā)明,一個(gè)適配器10/15將所接收到的全部環(huán)形輪詢信息包括它本身的環(huán)形輪詢信息傳送給微處理器17。從而微處理器17如環(huán)監(jiān)視器一樣,順序接收環(huán)上所有設(shè)備的身份;然而,與環(huán)監(jiān)視器不同的是它知道它自己的適配器10/15/16所歸類的身份以及其間的80個(gè)端口的狀態(tài),因此有足夠的信息可資利用以將這些身份與現(xiàn)行端口相關(guān)聯(lián)。如果所接收到的身份或地址的數(shù)目等于現(xiàn)用端口的數(shù)目,則認(rèn)為這一關(guān)聯(lián)是準(zhǔn)確的。如果要求更高的可靠性,微處理器可以等待兩個(gè)環(huán)形輪詢循環(huán),然后再宣布關(guān)聯(lián)是準(zhǔn)確的。
一旦得到了這一信息,微處理器便可經(jīng)由適配器(10/15/16)之一將它發(fā)送給駐留在這些設(shè)備之一上的一個(gè)管理程序,諸如IBMLAN(局域網(wǎng))網(wǎng)絡(luò)管理程序。管理程序便可以這一方式從所有RCU接收精確的整個(gè)網(wǎng)絡(luò)的拓?fù)湫畔ⅰ1景l(fā)明的突出優(yōu)點(diǎn)之一便是在不改變各端上的現(xiàn)有設(shè)備或不增加智能設(shè)備的情況下生成這一拓?fù)湫畔ⅰ?br>
根據(jù)IEEE802.5標(biāo)準(zhǔn),凡是要求連網(wǎng)的連接在端口上的設(shè)備必須提供一個(gè)直流的信號(hào)。如果處理器17已經(jīng)啟動(dòng)了該端口,這一信號(hào)導(dǎo)致開(kāi)關(guān)14插入該設(shè)備。這一信號(hào)同時(shí)從總線18上傳送到處理器17。從而,處理器17具有足夠的信息來(lái)維護(hù)一張現(xiàn)用/待用端口表。這一設(shè)備將在其現(xiàn)用狀態(tài)中一直維持這一直流電流,并且在下電或因?yàn)槿魏纹渌虺蔀榇脮r(shí),這一直流電便去掉而微處理器17感測(cè)到這一狀態(tài),并且失掉這一直流電流將14切換到其備用狀態(tài),或者繞過(guò)與改變?cè)摱丝诘臓顟B(tài)到在表中繞過(guò)。
在環(huán)形輪詢的進(jìn)程中,微處理器17建立一張包括這些站的身份的表,這些站的身份是被三個(gè)連接適配器(10、15與16)中選定兩個(gè)的身份所歸類的。在沒(méi)有故障時(shí)(例如一個(gè)設(shè)備并未除去該直流插入信號(hào)但在環(huán)形輪詢序列中未能響應(yīng)),報(bào)告站的數(shù)目將等于現(xiàn)用端口的數(shù)目,并且由于身份是順序提供的,它們能夠很容易地關(guān)聯(lián)到它們所在的特定端口。
另一個(gè)明顯錯(cuò)誤的源可能出現(xiàn)在環(huán)形輪詢已經(jīng)通過(guò)了它的端口而環(huán)形輪詢序列尚未完成之前一個(gè)設(shè)備變成現(xiàn)用的。為了提高所采集到的數(shù)據(jù)的可靠性,希望在認(rèn)為該數(shù)據(jù)是準(zhǔn)確的以前能夠進(jìn)行兩次環(huán)形輪詢序列。
從上面可知,提供三個(gè)適配器10、15與16允許在圖4A-4C所示的配置下實(shí)現(xiàn)拓?fù)渖?,并且還提供一個(gè)適配器連接到非操作的環(huán)部分(圖4B與4C)專用于當(dāng)誘發(fā)開(kāi)關(guān)狀態(tài)改變的故障消失時(shí)恢復(fù)正常狀態(tài)。在圖4D所示的狀態(tài)中,經(jīng)由適配器16連接的設(shè)備是從網(wǎng)絡(luò)的其它部分隔離的,并且適配器16所提供的所有不表輪詢信息或任何其它信息都是與連接到端口的設(shè)備關(guān)聯(lián)的,這些端口是受微處理器17控制的。
在隔離狀態(tài)中(圖4D),適配器16連同經(jīng)由其端口連接到該RCU上的任何現(xiàn)用設(shè)備連結(jié)在一個(gè)單環(huán)中。除了該RCU下電狀態(tài)之外,當(dāng)檢測(cè)到RCU與/或其連接的設(shè)備或電纜的內(nèi)部故障時(shí)將進(jìn)入這一狀態(tài)。這一狀態(tài)當(dāng)微處理器17判定內(nèi)部故障的位置并在適當(dāng)時(shí)通過(guò)一個(gè)或多個(gè)端口開(kāi)關(guān)14與/或一個(gè)或多個(gè)段開(kāi)關(guān)12的操作恢復(fù)局部操作時(shí),允許網(wǎng)絡(luò)的其余部分作為一個(gè)單環(huán)操作。
一種第五狀態(tài)(除了適配器5與PO互換以外其它一圖4D相同)出現(xiàn)在同時(shí)在環(huán)上發(fā)生兩個(gè)故障時(shí),一個(gè)故障在RCU的適配器10的上游而另一故障在該RCU的適配器15的下游。在這一狀態(tài)中,適配器10在該RCU的上游方連接到非工作的環(huán)上而適配器16則在下游方連接到非工作的環(huán)上。適配器15連同連接到該RCU的任何現(xiàn)用設(shè)備連接到一個(gè)隔離的可操作環(huán)上。
圖5-17是用于實(shí)現(xiàn)上述功能微處理器17中所需的程序的流程圖。更具體地,圖5-8當(dāng)作為一個(gè)整體并如所指示地組合時(shí)定義一個(gè)總體處理例行程序。圖9-13示出圖中所指出的名稱的離散模塊,而圖14一15是當(dāng)定時(shí)器到時(shí)時(shí)執(zhí)行的例行程序。
圖5-17中的示的流流程圖使用以下列出并定義的名詞。
TIA、TIB、T2-T6及RAT(復(fù)原激活定時(shí)器)標(biāo)識(shí)在流程圖中設(shè)置與復(fù)位的不同定時(shí)器。
BNR=信標(biāo)重新配置
BNN=信標(biāo)正常RR1=恢復(fù)要求1(這一狀態(tài)存在于PO正在接收BNN或發(fā)送BNR)RR2=恢復(fù)要求2(這一狀態(tài)存在于PO正在接收與重復(fù)BNR)WRAPRI/RO=開(kāi)關(guān)狀態(tài)圖4D(繞回RI/RO)WRAPRO=開(kāi)關(guān)狀態(tài)圖4C(繞回RO)WRAPRI=開(kāi)關(guān)狀態(tài)圖4B(繞回RI)UNWRAPRI/RO=開(kāi)關(guān)狀態(tài)從圖4D改變到4A(解開(kāi)RI/RO)UNWRAPRI=開(kāi)關(guān)狀態(tài)從圖4B改變到4A或從4D到4C(解開(kāi)RI)UNWRAPRO=開(kāi)關(guān)狀態(tài)從圖4C改變到圖4A或從4D到4B(解開(kāi)RO)LM=LANMANAGER(諸如IBM網(wǎng)絡(luò)局域網(wǎng)管理程序這樣的一種程序產(chǎn)品,它收集有關(guān)網(wǎng)絡(luò)操作的信息并向網(wǎng)絡(luò)上的設(shè)備發(fā)布命令)MRO=合并環(huán)出標(biāo)志(當(dāng)環(huán)出不可操作時(shí)該標(biāo)志設(shè)置為“0”)MRI=合并環(huán)入標(biāo)志(當(dāng)環(huán)入不可操作時(shí)該標(biāo)志設(shè)置為“0”)AMP=現(xiàn)用監(jiān)視器就位(IEEE802.5標(biāo)準(zhǔn)中規(guī)定的一個(gè)信息)RF=復(fù)原標(biāo)志
RC=復(fù)原計(jì)數(shù)器NRE=不能復(fù)原的錯(cuò)誤標(biāo)志NAUP=緊接著的現(xiàn)用上游端口AM=連接組件(一個(gè)段開(kāi)關(guān)及連接的端口)AMT=測(cè)試中的連接組件在圖5-17的說(shuō)明中假定網(wǎng)絡(luò)是如圖1所示配置的并且至少包括三個(gè)RCU。如果在RCU間出現(xiàn)了一個(gè)故障,一個(gè)RCU將在主環(huán)P上的故障的緊接著的上游,另一個(gè)將在主環(huán)P上的故障的緊接著的下游,而所有其它的RCU將介于上述定義的RCU之間。如果故障發(fā)生在PI與PO適配器之間,檢測(cè)這一故障的RCU將呈現(xiàn)圖4D中所示的重新配置開(kāi)關(guān)狀態(tài)而所有其它的RCU將介于該故障之間。
程序開(kāi)始于圖5中的加電。如在開(kāi)始框中所示,適配器PI、PO與S的標(biāo)志比特DIS-TX、MBF與TBF設(shè)置為OFF(斷開(kāi))。這時(shí),開(kāi)關(guān)11在圖4D所示的狀態(tài)中并且程序轉(zhuǎn)移到圖8B中(G)處的主程序的一個(gè)子程序上。假定沒(méi)有故障,在801,S適配器將已接收到一個(gè)AMP幀,在802,定時(shí)器T6將被復(fù)位并且程序轉(zhuǎn)移到6。由于RI在803被繞回,所以在805,MRI=1,并且在804RI已接收到一個(gè)AMP,在806RI被解開(kāi)。
程序返回到6。此時(shí)RI是不繞回的。如果PO在807正在接收或808正在發(fā)送一個(gè)BNN,如果T6在809′不活躍則在809裝入定時(shí)器T6并開(kāi)始計(jì)時(shí)。如果定時(shí)器T6是活躍的則進(jìn)至810;然而,RO是假定為可操作的并且程序直接降至810,在那里S如前面所設(shè)想的已經(jīng)接收到一個(gè)AMP幀。在811,RO是可操作的并且MRO=1。在812,RO被解開(kāi)并且定時(shí)器T1A與T1B被復(fù)位。程序返回到圖5中A,在502′TBF(PO與S)被設(shè)置為接通(on),在RI、RO中沒(méi)有故障或內(nèi)部(PI與PO之間)故障時(shí)程序在框502-505之間循環(huán)。這時(shí)RCU開(kāi)關(guān)狀態(tài)示出在圖4A中。
網(wǎng)絡(luò)可以作為一個(gè)雙環(huán)網(wǎng)絡(luò)或者作為一個(gè)單環(huán)重新配置的網(wǎng)絡(luò)操作。只有當(dāng)所有RCU加電并且沒(méi)有故障時(shí)它才作為一個(gè)雙環(huán)網(wǎng)絡(luò)操作。如果存在單一的故障或者如果一個(gè)單一的RCU或多個(gè)鄰接的RCU下電時(shí),包括一部分輔助環(huán)的一個(gè)單環(huán)是可操作的。如果存在著一個(gè)以上的故障或者兩個(gè)或兩個(gè)以上不相鄰的RCU下電,則兩個(gè)或兩個(gè)以上獨(dú)立的單環(huán)是可以操作的。下面的說(shuō)明不受這些條件的影響并將適用于同一情況中的所有RCU。
如果在主環(huán)上發(fā)生了一個(gè)故障或斷開(kāi),一個(gè)RCU將在該斷開(kāi)的緊接著的下游而另一個(gè)則將位于該斷開(kāi)的緊接著的上游。其它任何RCU位于上下游RCU之間。
我們首先考慮故障下游的RCU。PI適配器檢測(cè)到這一故障并發(fā)送一個(gè)BNN并且這一狀態(tài)將通知程序。PO適配器將不轉(zhuǎn)發(fā)這一BNN而在主環(huán)的下游發(fā)送一個(gè)BNR并將此報(bào)告給程序使它進(jìn)入狀態(tài)RR1;從而圖5中的程序?qū)目?02進(jìn)入框507。在圖5中利用了兩種恢復(fù)要求條件RR1與RR2。當(dāng)PO適配器或者發(fā)送BNR幀或者接收BNN幀時(shí)RR1存在,而當(dāng)PO適配器正在接收并轉(zhuǎn)發(fā)BNR幀時(shí)RR2存在。這一信息由PO適配器提供給程序。此時(shí),定時(shí)器T1A不活躍而在508裝入并啟動(dòng)定時(shí)器T1A與T1B,程序在509等待定時(shí)器T1A到時(shí)再前進(jìn)。一旦定時(shí)器T1A到時(shí),程序在510將S適配器中的DIS-TX比特設(shè)置為接通(on)并將TBF比特設(shè)置為斷開(kāi)(off),使S適配器發(fā)送BNN幀而PO適配器將發(fā)送BNR幀,因?yàn)樗腡BF比特在前面已經(jīng)設(shè)置為接通(on)并且它已經(jīng)接收到PI適配器發(fā)送的BNN幀。如果在511PO接收到它自己的BNR幀,則在512定時(shí)器T1A與T1B被復(fù)位而DIS-TX(S)被設(shè)置為斷開(kāi)(OFF)并且程序返回至1。由于PO接收到它自己的BNR,主環(huán)是無(wú)故障的而導(dǎo)致故障指示的事件已消失。
如果PO在513正在接收來(lái)自另一個(gè)適配器的一個(gè)BNR,則在516裝入并啟動(dòng)定時(shí)器T3,斷開(kāi)DIS、TX(S),并接通TBF(S),然后程序轉(zhuǎn)移到圖6中的B;然而,在當(dāng)前的例子中這將不會(huì)發(fā)生,而在框513′程序判定S適配器是否已經(jīng)接收到PO的BNR。如果已經(jīng)接收到則在514復(fù)位計(jì)時(shí)器T5、將DIS-TX(S)斷開(kāi)(OFF),并且將重新配置開(kāi)關(guān)11從圖4A中所示的狀態(tài)改變到圖4D中所示的狀態(tài)來(lái)繞回環(huán)入(RI)與環(huán)出(RO)。然后,程序轉(zhuǎn)移到圖7上的C。此時(shí),在701它執(zhí)行一個(gè)內(nèi)部恢復(fù)模塊并在701′將TBF(PO與S)設(shè)置為斷開(kāi)(OFF)。該內(nèi)部恢復(fù)倒程詳細(xì)示出在圖9中。在假定的條件下這一模塊的功能是檢測(cè)被隔離的環(huán)的完整性,該環(huán)包括S適配器及的有受這一RCU控制的現(xiàn)用端口,見(jiàn)圖4D。如果,如假設(shè)的,在被隔離的環(huán)上不存在故障,S適配器將在702接收一個(gè)AMP幀,環(huán)出(RO)是可操作的并且MRO等于1(703)。在704解開(kāi)環(huán)出(RO)并在705將重新配置開(kāi)關(guān)從圖4D中所示的狀態(tài)改變到圖4B中的示的狀態(tài),復(fù)位定時(shí)器T1A-T1B,然后程序返回圖5中A。
我們現(xiàn)在來(lái)考慮在斷開(kāi)或故障的緊接著的上游的RCU,由于它所采取的行動(dòng)導(dǎo)致下游RCU的PO的BNR返回到S并且接著形成上述單操作環(huán)。參見(jiàn)圖5,上游RCU將通過(guò)以上對(duì)下游RCU所描述的同樣的加電自檢,并且說(shuō)明將從圖5中A開(kāi)始。
在假定的條件下,程序從框502、503與504的否定方向上出口。由于PO適配器正在接收與轉(zhuǎn)發(fā)BNR幀,RR2得到滿足而在是(Y)方向從505出口。在框515檢驗(yàn)定時(shí)器T1B并且是不活躍的。在516裝入并啟動(dòng)定時(shí)器T3,并改變S適配器的標(biāo)志比特,然后,程序轉(zhuǎn)移到圖6上B。
在圖6中,框60/檢驗(yàn)S適配器是否接收到一個(gè)BNR。如果已接收到,則在612復(fù)位定時(shí)器T1A與T1B,然后程序轉(zhuǎn)移回圖5上A???02、603或604的一個(gè)“是”(yes)答復(fù)導(dǎo)致在605裝入與啟動(dòng)定時(shí)器T4并將S適配器中的MSF標(biāo)志比特設(shè)置為接通(ON)。如果的有的答復(fù)是否定的,并且S適配器在606檢測(cè)到一個(gè)故障,則在607復(fù)位定時(shí)器T6并且程序繞回RO及轉(zhuǎn)移到圖8上D。如果框602-604中的指定的條件中任何一個(gè)得到滿足并且定時(shí)器T4被啟動(dòng),對(duì)于緊接著的上游RCU框608將是否定的并且如果定時(shí)器T4在610到時(shí)或者S適配器在611檢測(cè)到一個(gè)故障,則程序?qū)⒃?09繞回RO,復(fù)位定時(shí)器T6,將MBF(S)設(shè)置為斷開(kāi)(OFF)并轉(zhuǎn)移到圖8上D。
轉(zhuǎn)移到D以后,PO與S中的TBF標(biāo)志比特在803′設(shè)置成斷開(kāi)(OFF),并且在假定的條件下,程序?qū)目?03的否定方出口,當(dāng)它在WrapRO(圖4C)狀態(tài)中時(shí)將在框807、808、810與813-815間循環(huán)。在這一循環(huán)中,程序?qū)⒈O(jiān)視來(lái)自S適配器的輸入(框810)。當(dāng)S接收到一個(gè)AMP幀時(shí),表示上游RCU的S適配器與下游RCU的PI適配順之間的輔助環(huán)與主環(huán)通路是可操作的,MRO將為1并且它將通過(guò)框811與812(在這里解開(kāi)RO)從循環(huán)中出口。它返回圖5上A,在那里它將在框502-505之間循環(huán),并且在沒(méi)有任何新故障的情況下,程序繼續(xù)在框502-505之間循環(huán)。
下游RCU,如前所述在解開(kāi)RO(圖7框704)之后返回圖5中A。這將RI留在繞回中。當(dāng)在框502-505間循環(huán)時(shí),它在504等待PI接收一個(gè)AMP幀504。當(dāng)發(fā)生這一事件時(shí),它指示在其RI與上游的RCU的RO之間的主環(huán)與輔助環(huán)中的故障已消失,并在506′如果MRI=1則在框506解開(kāi)RI。由于上游RCU在同樣條件下解開(kāi)其RO,所以S接收到AMP,現(xiàn)在雙環(huán)已復(fù)原。
介乎上游與下游RCU之間的RCU執(zhí)行上游RCU圖5中相同的路徑。然而在圖6中,S適配接收BNR將導(dǎo)致在那個(gè)RCU中的程序在框612或613(這取決于它是在定時(shí)器T3還是T4到時(shí)以前接收到BNR)復(fù)位T1A與T1B后返回圖5的A。這些RCU不改變開(kāi)關(guān)狀態(tài)而中停留在圖4A所示的狀態(tài)中。
當(dāng)一個(gè)PO適配器在503檢測(cè)到一個(gè)故障,則在517裝入并啟動(dòng)定時(shí)器T2,并且程序進(jìn)入510、511、513′與518的循環(huán)中。如果在PO接收一個(gè)BNR幀或者S接收PO的BNR幀之前定時(shí)器T2到時(shí),則在519繞回RI/RO并將DIS-TX(S)斷開(kāi)(OFF)而程序轉(zhuǎn)移到圖8上的E。這時(shí),在817調(diào)用內(nèi)部恢復(fù)模塊(圖9)。這一模塊是用于定位與/或繞過(guò)隔離的環(huán)(圖4D)中的故障部件的。如果繞過(guò)了該部件,S適配器將在801接收一個(gè)AMP幀并在802復(fù)位定時(shí)器T6再去往圖8中的6,如前所述。
如果,反之,不可能完成在功的繞過(guò),則程序?qū)⒃诳?18與801之間循環(huán)直到兩個(gè)PO之一適配器在818接收一個(gè)AMP幀,這一情況下定時(shí)器T5在820被復(fù)位而程序轉(zhuǎn)移到圖7上5。
當(dāng)程序從圖8上的820移到圖7上的5,則繞回RI/RO并且在隔離的環(huán)上存在著一個(gè)不能恢復(fù)的錯(cuò)誤。在這一事件中,S將在702不接收一個(gè)AMP幀而程序?qū)⒃诳?07-711與702之間循環(huán)掛起故障排除,或者在709如果定時(shí)器T5到時(shí),在這一情況中,程序轉(zhuǎn)移到圖8上的E。如果程序以答復(fù)“是”從框707或708出口,則在713′檢測(cè)定時(shí)器T5是否活躍。如果它不是活躍的,則在713被裝入與啟動(dòng)并返回到5。如果定時(shí)器T5是活躍的,程序下降到框709而象上面所述地進(jìn)行。如果PO接收到一個(gè)BNR幀,定時(shí)器T5將在框714復(fù)位。如果PO適配器在710檢測(cè)到一個(gè)故障,程序轉(zhuǎn)移到圖8上的E。在框703MRO不等于1(即RO不能操作)將復(fù)位定時(shí)T6并轉(zhuǎn)移到圖8上的D。
在圖8中,如果定時(shí)器T6在813到時(shí),或者PO適配器在814檢測(cè)到一人故障,則在812繞回RI而程序轉(zhuǎn)移到框817去執(zhí)行一個(gè)圖9中所示的內(nèi)部恢復(fù)例程并從那里前進(jìn)如前所述。
只有當(dāng)RI/RO是繞回時(shí)(圖4D)才進(jìn)入圖9中所示的內(nèi)部恢復(fù)模塊。在框901中將恢復(fù)標(biāo)志設(shè)置為1。如果在902,RAT定時(shí)器是活躍的,則在框903將它復(fù)位并在框904中將NRE設(shè)置為偽(false)。如果在905,內(nèi)部環(huán)被恢復(fù)(即S接收到一個(gè)AMP幀)則在框906檢驗(yàn)恢復(fù)計(jì)數(shù)器的值。如果它不等于3,這將在隔離的環(huán)上不存在故障的情況,在907裝入并啟動(dòng)RAT定時(shí)器并且在908將任何壞的部件報(bào)告給一個(gè)LAN管理程序(如果在908它是駐留在環(huán)上的)并在908′將RF標(biāo)志設(shè)置為零。只有當(dāng)故障或錯(cuò)誤沒(méi)有找著或定位時(shí),恢復(fù)計(jì)數(shù)器RC才成為3,在這一情況中,在909將環(huán)錯(cuò)誤沒(méi)有找到報(bào)告給LAN管理程序并在910啟動(dòng)恢復(fù)再試計(jì)數(shù)器。此時(shí),程序返回到它轉(zhuǎn)移來(lái)的點(diǎn)上。
如果在隔離環(huán)上存在故障或錯(cuò)誤,程序?qū)⑼ㄟ^(guò)框911與912下降由于NRE為偽并且這時(shí)RC是設(shè)定為零的。當(dāng)RAT定時(shí)器到時(shí),恢復(fù)計(jì)數(shù)器RC復(fù)位到零,見(jiàn)圖15中框1501。這一計(jì)數(shù)器是用于防止來(lái)回?cái)[支的,這便是當(dāng)環(huán)被隔離時(shí)沒(méi)有找到故障而重新連接時(shí)立即出現(xiàn)故障。這一計(jì)數(shù)器將這一情況限制為3次再試。這時(shí),程序在913調(diào)用尋找故障(FindFault)。
尋找故障,圖10在1001以等待18秒開(kāi)始。如果在1002內(nèi)部環(huán)被恢復(fù),則程序返回到圖9上的框914。由于沒(méi)有找到故障,在915中將RC增加1。如果任何環(huán)部件已被停用(繞過(guò))則這一信息將在框916中被保存。在這些情況中,程序?qū)⑼ㄟ^(guò)框905、906、907與908返回。
如果在框1002內(nèi)部環(huán)沒(méi)有恢復(fù),這是較典型的情況,則在1003去掉緊接著的現(xiàn)用的上游端口(NAUP)。該NAUP是信標(biāo)發(fā)送器上游的第一個(gè)現(xiàn)用端口并且通常是該NAUN所連接的端口。該NAUN的身份由信標(biāo)設(shè)備所提供并且程序?qū)⑦@一身份與該端口相關(guān)聯(lián),如下面要詳細(xì)描述的。如果內(nèi)部環(huán)在1004恢復(fù),程序在1005調(diào)用圖12的測(cè)試端口(TestPort)。
測(cè)試端口(圖12)在1201恢復(fù)該端口,在這一情況中是NAUP的端口。如果內(nèi)部環(huán)在1202故障,在1203將該端口去掉,在1204標(biāo)志為BAD(壞)并且返回到它以答復(fù)“是”出口的914,并如前述繼續(xù)執(zhí)行。
如果在圖10中,環(huán)并可恢復(fù)(1004)則在1006將信標(biāo)發(fā)送器所連接在的端口去掉。如果內(nèi)部環(huán)在1007恢復(fù),則在1005調(diào)用測(cè)試端口。如果恢復(fù)失敗,則在1008將所有連接的組件去掉。如果在1009內(nèi)部環(huán)未能恢復(fù),則在1010將NRE設(shè)置為真并且程序返回到914,并在“是”支路上從914出口,這是由于已經(jīng)標(biāo)識(shí)了一個(gè)故障(即該S適配器或它上方)。
當(dāng)內(nèi)部環(huán)在1009中恢復(fù)時(shí),在1011發(fā)送一個(gè)測(cè)試幀,如果在1012幀測(cè)試失敗,則在1013將NRE設(shè)置為真,這蛙程序返回914并從那里繼續(xù)進(jìn)行如前所述。
如果測(cè)試幀不失敗,則在1014將AMT設(shè)置為該NAUP的AM并且在1015恢復(fù)AMT。在1016執(zhí)行AMT的幀測(cè)試。如果在1017幀測(cè)試失敗,則在1018將該AMT標(biāo)志為壞的并且恢復(fù)除此AMT以外的所有AM,并在1018′將RC標(biāo)志設(shè)置為零。程序返回914并如前述繼續(xù)進(jìn)行。當(dāng)1017的幀測(cè)試并不失敗,則在1019去掉該AMT,在1020AMT加1模4(或n,這里n等于AM的個(gè)數(shù))并且對(duì)該新的AMT在1021進(jìn)行檢驗(yàn)判定它是否是該NAUP的AMT。如果不是,程序通過(guò)1015、1016等循環(huán)。
如果在1021AMT是該NAUP的AMT,則說(shuō)明所有的AM都已經(jīng)通過(guò)了該循環(huán)沒(méi)有一個(gè)幀測(cè)試失敗在1017檢測(cè)到,程序轉(zhuǎn)移到圖11中F,在那里進(jìn)行其它測(cè)試。
在圖11中,在1101恢復(fù)所有的AM,在1102將AMT設(shè)置成等于該NAUP的AM并在1103去掉該AMT。如果內(nèi)部環(huán)在1104未能恢復(fù),在1105該AMT加1模4并在1106檢驗(yàn)該AMT是否是該NAUP的AMT。如果不是,則程序在1103-1106間循環(huán)。如果所有AM都去掉后內(nèi)部環(huán)仍不恢復(fù),則在1107將NRE設(shè)置為真,在1108公告錯(cuò)誤狀態(tài)而程序返回914。
如果內(nèi)部環(huán)在1104恢復(fù),程序在1109調(diào)用測(cè)試模塊(圖13)。在測(cè)試模塊中(圖13)在1301將該AMT上所有的端口去掉并在1302恢復(fù)該AMT,在1303恢復(fù)端口20(或n,這里n是最高號(hào)碼的端口)。在1304如果該端口是現(xiàn)用的,則在1305調(diào)用并執(zhí)行上面說(shuō)明過(guò)的測(cè)試端口模塊(圖12)。如果在1306該端口是標(biāo)志為壞的則程序返回圖11上的1110,在那里恢復(fù)所有的好端口與組件然后返回到914。如果反之,該端口在1304既不現(xiàn)用也不壞則在1307將端口號(hào)減1,如果在1308端口號(hào)不為零,程序循環(huán)回1304。當(dāng)端口號(hào)為零時(shí)程序返回圖11上1110。
圖14的恢復(fù)再試定時(shí)器到時(shí)模塊調(diào)整恢復(fù)嘗試的次數(shù)與頻度。如前所述,該定時(shí)器當(dāng)找不到環(huán)故障時(shí)在圖9的框910被啟動(dòng)。因而另一次恢復(fù)嘗試必須等待該定時(shí)器到時(shí)。一旦該定時(shí)器到時(shí),在1401將RC設(shè)置為2(圖14)并在1402將RF設(shè)置為0。如果內(nèi)部環(huán)在1403故障,則如前述在1404執(zhí)行圖9的內(nèi)部恢復(fù)。如果它并無(wú)故障,則在1405清除環(huán)錯(cuò)誤未找到(標(biāo)志)并在1406將RC設(shè)置為0。
圖16與17中所示的流程圖定義將端口關(guān)聯(lián)到該端口所連接的波瓣(lobe)或線上所連接的特定終端或設(shè)備的程序模塊,從而在沒(méi)有任何附加設(shè)備或所連接的設(shè)備的特殊報(bào)告的情況下,程序能夠建表標(biāo)識(shí)各終端或設(shè)備所連接的特定端口或波瓣。
程序維護(hù)下列與圖16與17所示的模塊相關(guān)的4張表1.波瓣或端口表2.建站表3.好站表4.連接組件或段表波瓣或端口表包括各端口的狀態(tài)(插入/脫開(kāi))并且是以監(jiān)視由要求訪問(wèn)網(wǎng)絡(luò)的站或終端提供的直流或幻象(phaufom)電流來(lái)進(jìn)行維護(hù)。在沒(méi)有特殊要求的情況下,程序?qū)?dòng)所有的端口,并且來(lái)自一個(gè)站的直流電流的出現(xiàn)將該站插入串聯(lián)電路中。此外,程序從總線18上得知該端口是現(xiàn)用的并將對(duì)應(yīng)于該端口表的表項(xiàng)標(biāo)記為插入的。以相似的方式,如果該直流電流被去掉,則繞過(guò)該端口并將表中對(duì)應(yīng)于該端口的表項(xiàng)標(biāo)記為不插入。此外,如前所述,在一個(gè)端口被繞過(guò)或插入時(shí)更新該表以指示該端口的狀態(tài)。連接組件(AM)或段表是相似的并包括前面所述的在處理器控制下的四個(gè)段或連接組件中每一個(gè)的狀態(tài)(插入/脫開(kāi))。
此外,該程序維護(hù)一張建站表與一張好站表。這兩張表中的每一張包括連接到各波瓣或端口上的站的地址或身份。當(dāng)程序首次識(shí)別一個(gè)連接到一個(gè)端口的一個(gè)站時(shí),將該站的身份插入建站表而在隨后的識(shí)別中,該站的身份進(jìn)入好站表。在好表中的信息被認(rèn)為是可靠的并被用于網(wǎng)絡(luò)管理。
圖16示出用于維護(hù)AM及它們的端口的插入狀態(tài)的一個(gè)中斷例行程序并且在1601每64毫秒執(zhí)行一次。時(shí)間到時(shí),在1602將當(dāng)前AM設(shè)置為1,在1603如果當(dāng)前AM小于或等于4(圖為有4個(gè)AM),則在1604程序從AM表中取出當(dāng)前AM的插入狀態(tài)。如果在1605當(dāng)前的AM剛才脫開(kāi)。則程序在1606清除波瓣與建站表并改變好表中所有連接到該AM的端口的插入狀態(tài)。
如果當(dāng)前AM沒(méi)有脫開(kāi),則在1607檢驗(yàn)AM表判定是否是插入的。如果它沒(méi)有插入,則在1608將當(dāng)前AM值加1而程序循環(huán)回到2,對(duì)下一個(gè)AM重復(fù)上述步驟。在當(dāng)前AM是插入的時(shí),在1609將當(dāng)前波瓣或端口設(shè)置為1并且程序進(jìn)入一個(gè)循環(huán)來(lái)維護(hù)連接到該當(dāng)前AM的20個(gè)端口或波瓣的插入狀態(tài)。
在框1610程序檢測(cè)當(dāng)前波瓣是否小于等于20。如果不小于等于20,這表明當(dāng)前AM中所有的端口都已被維護(hù)而在框1611中將當(dāng)前AM增加1并且程序返回到2去處理下一個(gè)AM(假定在框1603中下一個(gè)AM是等于小于4的)。在當(dāng)前波瓣小于等于20時(shí),程序在1612從波瓣/端口表中取出當(dāng)前波瓣插入狀態(tài)并在1613檢測(cè)是否它剛才脫開(kāi)。為了作出這一判定,表中包括最近三次狀態(tài)改變的過(guò)去歷史或狀態(tài)(例如,110或100,其中1=插入而0=脫開(kāi))。如果該波瓣剛才脫開(kāi),程序在1614清波瓣表與建站表并改變當(dāng)前波瓣在好表中的端口插入狀態(tài),并且在1615將當(dāng)前波瓣增加1,然后返回到3去處理下一個(gè)波瓣的表。
如果該凸子不是剛才脫開(kāi)的,則在1616檢驗(yàn)波瓣表定判定它是否是插入的。如果是,則在1617更新當(dāng)前波瓣的波瓣表狀態(tài)并在1615將當(dāng)前波瓣增加1。
圖17是處理環(huán)輪詢幀或信息的程序模塊的流程圖。如前的述,環(huán)輪詢幀包括源地址或身份及緊接著的現(xiàn)用上游鄰接站(NAUN)的地址或身份,然而,它并不包括任何有關(guān)這兩個(gè)站連接到哪一個(gè)端口或波瓣的信息。這一模塊生成將順序地址或身份與插入的或現(xiàn)用的端口或波瓣相關(guān)聯(lián)的建站表與好站表。
適配順10、15與16中每一個(gè)向處理器17提供它所生成的環(huán)輪詢幀的一份復(fù)制品,此外,適配器16還向處理器17提供不論哪一個(gè)源的所有輪詢幀的一分復(fù)制品。程序模塊在1開(kāi)始,檢驗(yàn)從總線19接收的環(huán)輪詢幀的復(fù)制品。如果幀源是適配器10/16中的環(huán)(取決于開(kāi)關(guān)11的當(dāng)前配置,見(jiàn)圖4A-C)則程序從框1701的“是”支路出口;否則它將循環(huán)。在下面的說(shuō)明中,按照本技術(shù)的流行的實(shí)踐,這些適配器將稱作環(huán)入或環(huán)出介質(zhì)訪問(wèn)控制(MAC)。當(dāng)接收到來(lái)自MAC中的環(huán)的一個(gè)環(huán)輪詢幀時(shí),程序在1702將一個(gè)變量O.S.A.(老的源地址)設(shè)置為等于MAC中的該環(huán)的源地址。程序在1703等待一個(gè)接收到的幀,當(dāng)接收到一個(gè)時(shí),在1704比較NAUN地址。當(dāng)它們比較時(shí),該幀是一個(gè)恰當(dāng)?shù)嘏判虻沫h(huán)輪詢幀,則在1705將源地址與環(huán)出MAC地址進(jìn)行比較。
在1705當(dāng)源地址不等于環(huán)出MAC地址時(shí),在1706將O.S.A.設(shè)置為等于該幀的源地址并對(duì)下一個(gè)插入的端口進(jìn)行搜索。如果在1707一個(gè)也沒(méi)有找到,則在1708清除建站表,然后程序返回到1,因?yàn)檫@是一個(gè)清楚的錯(cuò)誤狀態(tài)而在當(dāng)前環(huán)輪詢周期中任何新的信息都是不可靠的。如果找到了一個(gè),則在1709在好表中檢驗(yàn)源地址,如果不需要其它操作則程序返回到2。
當(dāng)在好站表中沒(méi)有找到源/站地址時(shí),程序在1710檢驗(yàn)建站表,如果源地址在建站表中,則在1711將該地址復(fù)制到好站表中,而程序返回到2去處理下一個(gè)接收到的幀。當(dāng)在1710沒(méi)有在建站表中找到該站地址時(shí),則在1712將它復(fù)制進(jìn)建站表中而程序返回到2。
如果在1705源地址等于環(huán)出MAC地址,則程序在1713搜索下一個(gè)物理地插入的端口。如果在1714找到一個(gè),則指示一個(gè)錯(cuò)誤狀態(tài)并在1715將建站表清零,然后程序返回到1去等待另一個(gè)環(huán)輪詢周期的開(kāi)始。當(dāng)在1714沒(méi)有找到其它插入端口時(shí),這表明成功地完成了當(dāng)前的環(huán)輪詢周期而程序返回到1去等待另一個(gè)周期???707與1714分別檢測(cè)插入的端口的數(shù)目與環(huán)入MAC及環(huán)出MAC地址之間接收到的環(huán)輪詢幀的數(shù)目之間的不夠與過(guò)多失配。
圖18-20是適配器10、15與16(分別為PI、PO與S)中所需的附加代碼的流程圖,以響應(yīng)增加在IBM令牌環(huán)適配器中當(dāng)前所使用的那些附加標(biāo)志比特。這些標(biāo)志比特是由處理器17在總線19上發(fā)送的并且如以前在圖5-8中所描述的那樣被設(shè)置為“接通”與“斷開(kāi)”。
當(dāng)在圖18中1801DIS-TX是設(shè)置為“接通”時(shí),適配器在1802發(fā)送(XMT)一個(gè)信標(biāo)正常(BNN)幀。如果在1803,DIS-TX被關(guān)斷(farned-off)則適配器在1804停止發(fā)送(XMTG)BNN幀并返回開(kāi)始處。如果DIS-TX沒(méi)有關(guān)斷,則它繼續(xù)發(fā)送BNN幀。
在圖19中,如果適配器在1901正在發(fā)送一個(gè)BNN并且在1902TBF標(biāo)志是接通的,則在1903它將發(fā)送一個(gè)BNR幀。如果在1904TBF標(biāo)志不是“斷開(kāi)”的并且在1905信標(biāo)條件仍然存在,它將循環(huán)并發(fā)送BNR。如果在1904TBF是“斷開(kāi)”的,則適配器將在1906停止發(fā)送BNR而發(fā)送標(biāo)準(zhǔn)的IEEE802.5要求令牌幀(claimfokenframe)并返回到開(kāi)始處。
在圖20中,如果在2001標(biāo)志比特MBF是接通的,適配順將在2002發(fā)送一個(gè)BNR幀并繼續(xù)這樣做直到MBF被關(guān)斷;然而,當(dāng)MBF在2003被關(guān)斷時(shí),適配器將在2004停止發(fā)送BNR幀并返回到開(kāi)始處。
對(duì)于通信領(lǐng)域中的技術(shù)人員,本發(fā)明的上述的以及其它的特征與優(yōu)點(diǎn)將是顯而易見(jiàn)的。
權(quán)利要求
1.一種多端口連接單元,用于將多個(gè)端口連接到一個(gè)串行通信網(wǎng)絡(luò)及生成網(wǎng)絡(luò)拓?fù)湫畔ⅲ涮卣髟谟诙鄠€(gè)通信端口;至少兩個(gè)通信適配器,各有一個(gè)唯一的標(biāo)識(shí)符并且各包括用于將所述適配器連接到所述網(wǎng)絡(luò)的裝置,借此各適配器能從網(wǎng)絡(luò)接收及向網(wǎng)絡(luò)發(fā)送包含所述唯一標(biāo)識(shí)符的信息信號(hào);開(kāi)關(guān)裝置,用于有選擇地將所述端口串連在所述至少兩個(gè)適配器之間;以及一個(gè)連接到所述至少兩個(gè)適配順中至少一個(gè)上的控制裝置,用于從那里接收一個(gè)預(yù)定的控制信息,所述控制信息包含該控制信息的源的標(biāo)識(shí)符并且是由連接到該網(wǎng)絡(luò)上的所有現(xiàn)用設(shè)備按序提供的和用于將在所述至少兩個(gè)適配器的標(biāo)識(shí)符之間接收到的順序設(shè)備身份關(guān)聯(lián)到由所述開(kāi)關(guān)裝置選擇的端口的裝置,借此生成一個(gè)網(wǎng)絡(luò)拓?fù)洹?br>
2.一種多端口連接單元,用于將多個(gè)端口連接到單向串行通信網(wǎng)絡(luò)及生成網(wǎng)絡(luò)拓?fù)湫畔?,其特征在于多個(gè)通信端口;至少兩個(gè)通信適配器,各有一個(gè)唯一的標(biāo)識(shí)符及各包括用于將所述適配器連接到一個(gè)單向串行通信網(wǎng)絡(luò)的裝置,借此各適配器能從該網(wǎng)絡(luò)接收及向該網(wǎng)絡(luò)發(fā)送包含所述唯一標(biāo)識(shí)符的信息信號(hào);開(kāi)關(guān)裝置,用于有選擇地將所述端口串連在所述至少兩個(gè)適配器之間;響應(yīng)在所述端口接收到的表示一個(gè)個(gè)附著的設(shè)備要求連網(wǎng)的信號(hào)的第一裝置,用于操作所述開(kāi)關(guān)裝置將該端口插入所述至少兩個(gè)適配器之間的串聯(lián)電路上并用于建立連接在該網(wǎng)絡(luò)中的現(xiàn)用端口的一個(gè)記錄;以及連接到所述至少兩個(gè)適配器的至少一個(gè)的第一控制裝置,用于從那里接收一個(gè)預(yù)定的控制信息,該控制信息包含控制信息的源的標(biāo)識(shí)符并且是由網(wǎng)絡(luò)中所連接的所有現(xiàn)用設(shè)備按順序提供的;以及響應(yīng)于該第一控制裝置與第一裝置的第二控制裝置,用于將所述至少兩個(gè)適配器的標(biāo)識(shí)符之間接收到的順序設(shè)備身份關(guān)聯(lián)到該第一裝置所建立的現(xiàn)用端口記錄借此生成一個(gè)網(wǎng)絡(luò)拓?fù)洹?br>
3.權(quán)利要求2所述的一種多端口連接單元,其特征在于所第二控制裝置建立一張第一表,該表將所述至少兩個(gè)通信適配器的唯一標(biāo)識(shí)符所歸類的順序源地址與所述第一裝置所建立的記錄中的串聯(lián)連接的端口相匹配。
4.權(quán)利要求3所述的一種多端口連接單元,其特征在的述第二控制裝置只在現(xiàn)用端口的數(shù)目等于被所述至少兩個(gè)通信適配器的唯一標(biāo)識(shí)符所歸類的順序源地址的數(shù)目時(shí)才確認(rèn)這種關(guān)聯(lián)。
5.一種用于生成一個(gè)串行數(shù)據(jù)傳輸網(wǎng)絡(luò)中的網(wǎng)絡(luò)拓?fù)湫畔⒌姆椒?,該網(wǎng)絡(luò)包括多個(gè)串連訪問(wèn)端口,各端口適于附著一個(gè)具有對(duì)于該串行網(wǎng)絡(luò)唯一的網(wǎng)絡(luò)身份的現(xiàn)用數(shù)據(jù)傳輸站,一對(duì)專用的通信適配器各具有一個(gè)將串行網(wǎng)絡(luò)中的所述訪問(wèn)端口歸類的唯一網(wǎng)絡(luò)身份,并且在一個(gè)給定的時(shí)間其中每一個(gè)現(xiàn)用的數(shù)據(jù)站與專用適配器以它們?cè)诖芯W(wǎng)絡(luò)中的連接次序在網(wǎng)絡(luò)上發(fā)送一個(gè)第一信息,該信息包括它們的網(wǎng)絡(luò)身份,以及響應(yīng)由一個(gè)現(xiàn)用數(shù)據(jù)站提供插入信號(hào)將該站連接到網(wǎng)絡(luò)上的裝置,其特征在于下述步驟對(duì)該插入信號(hào)作出響應(yīng)生成一張包括各端口的現(xiàn)用/待用狀態(tài)的第一端口表;以及對(duì)來(lái)自該對(duì)專用適配器的第一信息之間接收到的那些第一信息作出響應(yīng)生成至少一張第一表,在該表中將所述第一信息中包括的身份與該端口表中的現(xiàn)用端口關(guān)聯(lián)。
6.權(quán)利要求5所述的方法,其特征在于下述附加步驟將從該對(duì)專用適配器之間的數(shù)據(jù)站接收到的第一信息的數(shù)目與現(xiàn)用端口的數(shù)目進(jìn)行比較并當(dāng)它們相等時(shí)認(rèn)可這種關(guān)聯(lián)是合法的。
7.權(quán)利要求5所述的方法,其特征在于下述附加步驟將所述第二表分成一個(gè)第一建(站)部分與一個(gè)第二好(站)部分;以及只有當(dāng)一個(gè)關(guān)聯(lián)的數(shù)據(jù)站身份以前已經(jīng)輸入了第一建(站)部分時(shí)才將它輸入第二好(站)部分中。
8.權(quán)利要求7所述的方法,其特征在于下述附加步驟將從該對(duì)專用適配器之間的數(shù)據(jù)站接收到的第一信息的數(shù)目與現(xiàn)用端口的數(shù)目進(jìn)行比較;以及當(dāng)來(lái)自該對(duì)專用適配器的第一信息之間所接收到的第一信息的數(shù)目不等于現(xiàn)用端口的數(shù)目時(shí),清除第二表的第一建立部分。
全文摘要
在一個(gè)串行通信網(wǎng)絡(luò)中的多個(gè)訪問(wèn)端口被一對(duì)各連接到一個(gè)編程的處理器上的適配器所歸類。適配器具有唯一的身份并且與任何各具唯一網(wǎng)絡(luò)身份的現(xiàn)用連接的設(shè)備一起參與一個(gè)輪詢序列。處理器維護(hù)現(xiàn)用端口狀態(tài)信息并將在一個(gè)輪詢序列中在適配器的身份之間接收到的設(shè)備身份關(guān)聯(lián)到指示各現(xiàn)用設(shè)備所附著的特定端口的現(xiàn)用端口狀態(tài)信息。
文檔編號(hào)H04L12/42GK1078337SQ9111089
公開(kāi)日1993年11月10日 申請(qǐng)日期1991年11月20日 優(yōu)先權(quán)日1990年12月20日
發(fā)明者杰伊·L·史密斯, 布雷德利·S·特拉比, 安東尼·D·沃克 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司