專利名稱::用于通用數(shù)據(jù)交換網(wǎng)關(guān)的方法和裝置的制作方法
背景技術(shù):
:發(fā)明領(lǐng)域本發(fā)明涉及計算機網(wǎng)絡(luò)協(xié)議網(wǎng)關(guān),特別是涉及適于電源線聯(lián)網(wǎng)系統(tǒng)的網(wǎng)關(guān)。相關(guān)技術(shù)的描述計算機特別是個人計算機的廣泛應(yīng)用,造成了計算機網(wǎng)絡(luò)數(shù)量的迅速增長。將兩臺或多臺計算機聯(lián)網(wǎng)到一起允許計算機共享信息、文件資源、打印機等。把兩臺或多臺個人計算機和打印機連接到一起形成一個網(wǎng)絡(luò),原則上,是一個簡單的任務(wù)。計算機和打印機可以使用一根電纜簡單地連接到一起,并且在計算機上安裝必要的軟件。在網(wǎng)絡(luò)術(shù)語中,電纜是網(wǎng)絡(luò)介質(zhì),計算機和打印機是網(wǎng)絡(luò)節(jié)點。網(wǎng)絡(luò)節(jié)點使用一個或多個協(xié)議,如傳輸控制協(xié)議、網(wǎng)間協(xié)議(TCP/IP),進行相互“對話”。網(wǎng)關(guān)用于執(zhí)行從一個協(xié)議到另一個協(xié)議的協(xié)議轉(zhuǎn)換,這樣使用不同協(xié)議的網(wǎng)絡(luò)能夠相互連接。例如,Prodigy網(wǎng)絡(luò)服務(wù)具有用于在它的內(nèi)部專用電子郵件格式和國際互聯(lián)網(wǎng)電子郵件格式之間進行轉(zhuǎn)換的一個網(wǎng)關(guān)。標準網(wǎng)絡(luò)協(xié)議,一般在設(shè)計時假設(shè)每個網(wǎng)絡(luò)節(jié)點都是一個具有基本的數(shù)據(jù)處理和存儲能力的“智能”設(shè)備。例如,一臺典型的個人計算機(PC)有足夠的處理和存儲能力,來處理幾乎任何網(wǎng)絡(luò)協(xié)議。但是,一臺典型的打印機是一個“啞的”設(shè)備,并不具有必須的處理和存儲能力。一些制造商提供允許打印機被連接到網(wǎng)絡(luò)的網(wǎng)絡(luò)打印機適配器。該打印機適配器,是提供類似于全配置個人計算機的數(shù)據(jù)處理和存儲能力的單板計算機。該網(wǎng)絡(luò)打印機適配器,因此把“啞的”打印機轉(zhuǎn)換為一個“智能”設(shè)備。盡管網(wǎng)絡(luò)打印機適配器確實起作用,但是它們的價格相對昂貴,因此不適于在一些家庭和小型辦公環(huán)境中使用。此外,該打印機適配器也不適于用來將其它非PC設(shè)備連接到網(wǎng)絡(luò)。例如,用戶經(jīng)常希望將啞的設(shè)備,如戶外的燈、報警系統(tǒng)、電話系統(tǒng)等諸如此類的設(shè)備,連接到他們的計算機網(wǎng)絡(luò)。購買網(wǎng)絡(luò)適配器插件,來把這些啞設(shè)備的每一個變?yōu)橐粋€智能設(shè)備,將不可避免地費用昂貴。用于智能設(shè)備的協(xié)議一般稱為“網(wǎng)絡(luò)協(xié)議”。用于啞設(shè)備的協(xié)議經(jīng)常稱為“控制協(xié)議”。在性能和復(fù)雜性兩方面,網(wǎng)絡(luò)協(xié)議與控制協(xié)議都大不相同。由于這些不同,設(shè)計用于在網(wǎng)絡(luò)協(xié)議之間進行數(shù)據(jù)轉(zhuǎn)換的網(wǎng)關(guān),一般不適于在控制協(xié)議之間進行數(shù)據(jù)轉(zhuǎn)換的任務(wù)。而更為困難的任務(wù),是在網(wǎng)絡(luò)協(xié)議和控制協(xié)議之間進行數(shù)據(jù)轉(zhuǎn)換。已有的家庭用控制/自動產(chǎn)品,傾向于使用基于對等模型的控制協(xié)議而不是集中式的客戶/服務(wù)器模型。這嚴重限制了這些產(chǎn)品的應(yīng)用,因為每個節(jié)點需要在本地存儲狀態(tài)信息和規(guī)則。由于缺少容易使用的、集中式的用戶接口部件,配置網(wǎng)絡(luò)很困難。而且,在競爭產(chǎn)品間(如X-10和CEBus)的互操作性基本上是不可能的。發(fā)明概述通過提供一個低成本、容易使用、靈活、可靠并且可伸縮的網(wǎng)關(guān)結(jié)構(gòu),解決了這些以及其它的問題,該結(jié)構(gòu)允許在一個或多個網(wǎng)絡(luò)協(xié)議和一個或多個控制協(xié)議之間進行數(shù)據(jù)轉(zhuǎn)換。各種不同的協(xié)議能夠在相同的物理網(wǎng)絡(luò)介質(zhì)上同時使用。該網(wǎng)關(guān)也提供使網(wǎng)絡(luò)協(xié)議以隧道方式通過一個選定的協(xié)議和集中控制。因此,為數(shù)據(jù)和控制網(wǎng)絡(luò)的終端用戶,尤其是在家庭和小型辦公環(huán)境中,該網(wǎng)關(guān)提供了極大的益處。通過使用所述網(wǎng)關(guān),終端用戶可以容易而方便地把傳統(tǒng)上相互獨立、互不兼容的網(wǎng)絡(luò)聯(lián)網(wǎng)成為一個普遍可訪問的、集中管理的“超級網(wǎng)絡(luò)”,該網(wǎng)絡(luò)連接計算機、打印機、報警系統(tǒng)、家庭設(shè)備、照明系統(tǒng)和電話系統(tǒng)等。該網(wǎng)關(guān)提供一個集中式節(jié)點數(shù)據(jù)庫,支持傳統(tǒng)的協(xié)議如TCP/IP,規(guī)則引擎以及面向目標類庫接口。使用普通的、容易使用的圖形用戶接口,如國際互聯(lián)網(wǎng)瀏覽器,該網(wǎng)關(guān)提供廣泛的家庭/小型辦公室自動化和控制能力。通過自動的設(shè)備發(fā)現(xiàn),簡化了配置。通過備用服務(wù)器提供的系統(tǒng)容錯性能,增強了對集中式節(jié)點數(shù)據(jù)庫的訪問。當與電源線網(wǎng)絡(luò)一起使用時,該網(wǎng)關(guān)提供在電源線上分配不同類型的數(shù)據(jù)流的能力。例如,擁有電纜調(diào)制解調(diào)器或其它類型的高速國際互聯(lián)網(wǎng)連接的網(wǎng)絡(luò)用戶,可以把國際互聯(lián)網(wǎng)業(yè)務(wù)分配到家庭/辦公室中的任何地點,而不需要除了已有的電力線以外的附加附加線路。音頻數(shù)據(jù)也很容易通過電源線在整個家庭/辦公室中分配。該網(wǎng)關(guān)提供的路由處理器,允許實際上任何傳統(tǒng)的數(shù)據(jù)聯(lián)網(wǎng)服務(wù)和現(xiàn)在通用的協(xié)議,在電源線上被路由。附圖的簡要描述當與以下列出的附圖一起閱讀時,在本
技術(shù)領(lǐng)域:
內(nèi)熟練的人員,從以下的詳細描述中,將很容易地意識到公開的本發(fā)明的優(yōu)點和特征。圖1是具有如個人計算機的智能節(jié)點和如外部安全照明的啞節(jié)點的網(wǎng)絡(luò)的一個框圖。圖2是七層OSI網(wǎng)絡(luò)模型的框圖。圖3是通用的網(wǎng)關(guān)結(jié)構(gòu)的框圖。圖4是展示服務(wù)器激活算法的框圖。圖5是展示一個規(guī)則的各部分的數(shù)據(jù)圖表。圖6是用于智能設(shè)備的一個PLX網(wǎng)絡(luò)模型的框圖。圖7是用于啞設(shè)備的一個PLX網(wǎng)絡(luò)模型框圖。圖8是展示介質(zhì)訪問算法的一個流程圖。圖9A是展示活動的網(wǎng)絡(luò)服務(wù)器發(fā)信號(spitting)算法的一個流程圖。圖9B是展示客戶發(fā)信號(spitting)算法的一個流程圖。圖10是展示活動的網(wǎng)絡(luò)服務(wù)器輪詢算法的一個流程圖。圖11是展示一個PLX邏輯組隔離(LoGI)包的字段框圖。圖12是展示一個PLX原始數(shù)據(jù)包的字段的框圖。圖13是展示一個PLX令牌包的字段的框圖。圖14是展示一個PLX直接確認(DACK)包的字段的框圖。圖15是展示一個PLX掩碼的排隊插入包(LIPG)的字段的框圖。圖16是展示一個PLX直接排隊插入(LIPD)包的字段的框圖。圖17是展示一個PLX內(nèi)部主機包的字段的框圖。圖18是展示一個PLX公共應(yīng)用語言(CommonApplicationLanguage)(CAL)請求包的框圖。圖19是展示一個PLXCAL響應(yīng)包的框圖。圖20是展示一個PLX單個信道傳輸狀態(tài)包的框圖。圖21是展示一個PLX多信道傳輸狀態(tài)包的框圖。圖22是展示一個PLX包定時的一個定時圖。在圖中,任何三位數(shù)字的第一位數(shù)字,一般標識組件第一次出現(xiàn)的圖的號碼。使用四位參考號碼的地方,前兩位數(shù)字標識圖的號碼。在一個典型的網(wǎng)絡(luò)環(huán)境中,網(wǎng)絡(luò)介質(zhì)100配置為承載不同數(shù)據(jù)協(xié)議的數(shù)據(jù)業(yè)務(wù)。因此,如圖1中例子所示,計算機103可以使用TCP/IP協(xié)議與計算機104通信,而計算機104使用一控制協(xié)議,如在公開的本申請中標為附錄A的部分中所描述的電源線交換(PLX)協(xié)議,與照明系統(tǒng)118進行通信。附錄A包括申請?zhí)枮?9/211950,標題為“電源線交換協(xié)議的方法和裝置”的美國申請的部分,在此引證作為參考。一個通用的網(wǎng)關(guān)作為一個軟件程序,在一臺計算機上運行,如計算機104上。該通用的網(wǎng)關(guān)在不同的網(wǎng)絡(luò)協(xié)議之間,以及不同的物理網(wǎng)絡(luò)之間,提供連接。例如,如圖1中所示,該通用的網(wǎng)關(guān)作為一個軟件程序,在計算機104上運行,連接TCP/IP協(xié)議到PLX協(xié)議,因此允許計算機103與照明系統(tǒng)118通信。在計算機104上運行的通用網(wǎng)關(guān)軟件,也提供在各自的物理網(wǎng)絡(luò)之間的數(shù)據(jù)傳輸,因此允許在各自的物理網(wǎng)絡(luò)上的設(shè)備相互通信。在圖1中,該通用的網(wǎng)關(guān)提供在網(wǎng)絡(luò)130和照明系統(tǒng)118之間的數(shù)據(jù)傳輸。該通用的網(wǎng)關(guān)與分層的網(wǎng)絡(luò)協(xié)議兼容。為智能節(jié)點(如計算機103和104)配置的大部分網(wǎng)絡(luò),是基于由開放系統(tǒng)接口(OSI)委員會開發(fā)的一個網(wǎng)絡(luò)結(jié)構(gòu)模型。該OSI結(jié)構(gòu)定義了一個網(wǎng)絡(luò)模型,其中列出了在一個通信系統(tǒng)中的每一個單獨的硬件和軟件層,層之間的內(nèi)部相關(guān)性,以及每一層所執(zhí)行的單一功能。圖2展示了該OSI結(jié)構(gòu)被分為七個層,從最低到最高為物理層201;數(shù)據(jù)鏈路層202;網(wǎng)絡(luò)層203;傳送層204;對話層205;表示層206;和應(yīng)用層207。每層使用直接在其下面的層,并且為直接在其上面的層提供服務(wù)。在一些實施中,一層可能本身由多個子層組成。一層是兩個或多個通信設(shè)備或計算機的軟件和/或硬件環(huán)境,一個特定的網(wǎng)絡(luò)協(xié)議在該通信設(shè)備或計算機中運行。一個網(wǎng)絡(luò)連接可以被看成為一組或多或少獨立的協(xié)議,每一個在不同的層或級中。最低層管理在不同節(jié)點的硬件之間直接的節(jié)點到節(jié)點的通信;最高層由用戶應(yīng)用程序組成。每層使用在其下面的層,并且為在其上面的層提供服務(wù)。在一個主機上的每個聯(lián)網(wǎng)組成部分的硬件或軟件,使用適用于它的層的協(xié)議,與在另一個節(jié)點上的相應(yīng)的組成部分(它的“對等”)進行通信。這樣的分層協(xié)議有時被稱為對等協(xié)議。分層協(xié)議的優(yōu)點,在于由一層到另一層傳遞信息的方法,被清晰地確定為協(xié)議的組成部分,并且防止了在一個協(xié)議層內(nèi)的改變影響到另一個協(xié)議層。這簡化了設(shè)計和維護通信系統(tǒng)的任務(wù)。物理層201是OSI分層的模型中的最低層。它涉及網(wǎng)絡(luò)中電的和機械的連接,包括介質(zhì)訪問控制(MAC)部分。介質(zhì)訪問控制是指對于數(shù)據(jù)傳輸介質(zhì)100(例如網(wǎng)絡(luò)電纜)的控制和訪問。物理層201被數(shù)據(jù)鏈路層202使用。數(shù)據(jù)鏈路層202是OSI模型中的由下數(shù)的第二層。數(shù)據(jù)鏈路層202把數(shù)據(jù)分成幀(為了在物理層201上發(fā)送),并接收確認幀。數(shù)據(jù)鏈路層202執(zhí)行錯誤檢測和重傳未被正確接收的幀。數(shù)據(jù)鏈路層202為網(wǎng)絡(luò)層203提供一個無差錯的虛擬信道。數(shù)據(jù)鏈路層202被典型地分為一個高的子層,邏輯鏈路控制(LLC),和包括介質(zhì)訪問控制(MAC)的部分的一個低的子層。網(wǎng)絡(luò)層203是OSI七層模型中的由下數(shù)的第三層。網(wǎng)絡(luò)層203決定通過數(shù)據(jù)鏈路層202的由發(fā)送者到接受者的數(shù)據(jù)包的路由,并且被傳送層204使用。最常用的網(wǎng)絡(luò)層協(xié)議是IP。傳送層204(或“主機-主機層”)是OSI模型中處于中間的層。傳送層204決定怎樣使用網(wǎng)絡(luò)層203,來提供一個虛擬的無差錯的、點對點的連接,因此第一個節(jié)點可以傳送信息到第二個節(jié)點,并且信息將未被破壞地和以正確的次序到達。傳送層204建立和釋放節(jié)點間的連接。對話層205是OSI模型中的由上數(shù)的第三層。對話層205使用傳送層204來建立在不同節(jié)點上的過程間的連接。對話層205處理安全性和對話的建立。表示層206是OSI模型中的由上數(shù)的第二層。表示層206執(zhí)行如文本壓縮、編碼或格式轉(zhuǎn)換等功能,來消除節(jié)點間的差異。表示層206允許在應(yīng)用層中不兼容的過程,通過對話層進行通信。應(yīng)用層207是OSI模型中的最高層。應(yīng)用層207與用戶對于網(wǎng)絡(luò)的視圖(如格式化的電子郵件信息)相關(guān)。表示層206為應(yīng)用層207提供獨立于在網(wǎng)絡(luò)上使用格式的熟悉的本地數(shù)據(jù)表示。應(yīng)用層協(xié)議的例子包括遠程登錄、文件傳送協(xié)議(FTP)、簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)、簡單郵件傳送協(xié)議(SMTP)、網(wǎng)間控制報文協(xié)議(ICMP)、NetWare核心協(xié)議(NCP)、路由信息協(xié)議(RIP)、服務(wù)廣告協(xié)議(SAP)、一般的文件傳送協(xié)議(TFTP)、系統(tǒng)錯誤容限協(xié)議(SFTP)。圖3展示了通用網(wǎng)關(guān)300的結(jié)構(gòu),以及該通用網(wǎng)關(guān)300如何與其它軟件組成部分,如應(yīng)用程序、硬件驅(qū)動等,相互作用。應(yīng)用程序302,使用一組網(wǎng)關(guān)基礎(chǔ)級304,與網(wǎng)關(guān)300進行通信。網(wǎng)關(guān)基礎(chǔ)級304與數(shù)據(jù)庫訪問模塊306、事件處理器310、調(diào)度320、運行時間操作系統(tǒng)服務(wù)(RTOS)311進行通信。數(shù)據(jù)庫訪問模塊306包括一被調(diào)用的信息儲存庫(一節(jié)點數(shù)據(jù)庫)308。節(jié)點數(shù)據(jù)庫308可以組織為數(shù)據(jù)庫、鏈接列表、表、圖、容器等。數(shù)據(jù)庫訪問模塊306還與事件處理器310以及有效負荷/協(xié)議處理裝置312通信。該有效負荷/協(xié)議處理裝置包括一個或多個有效負荷/協(xié)議處理器,如原始數(shù)據(jù)處理器316、流式數(shù)據(jù)處理器317和CAL控制處理器318。事件處理器310還與規(guī)則引擎314以及調(diào)度320進行通信。調(diào)度320還與RTOS311、規(guī)則引擎314、PLX設(shè)備驅(qū)動322以及傳統(tǒng)設(shè)備驅(qū)動326進行通信。該PLX設(shè)備驅(qū)動包括PLX控制設(shè)備驅(qū)動323(用于啞設(shè)備)和PLX數(shù)據(jù)設(shè)備驅(qū)動324(用于智能設(shè)備)。網(wǎng)關(guān)300提供由一個協(xié)議到另一個協(xié)議的協(xié)議轉(zhuǎn)換,這樣兩個使用不同協(xié)議的網(wǎng)絡(luò)可以互聯(lián)。該網(wǎng)絡(luò)可以是真正的、物理網(wǎng)絡(luò),也可以是虛擬網(wǎng)絡(luò)(如,只存在于軟件中)。網(wǎng)關(guān)300在傳統(tǒng)協(xié)議和主要的(如所需的)協(xié)議(如電源線協(xié)議)之間提供接口。傳統(tǒng)協(xié)議這一術(shù)語并不限于以前使用的協(xié)議。傳統(tǒng)協(xié)議這一術(shù)語,而是指除了主要協(xié)議以外的其它任何協(xié)議。傳統(tǒng)設(shè)備驅(qū)動包括,如X-10驅(qū)動329CEBus驅(qū)動332。而且每個傳統(tǒng)設(shè)備驅(qū)動,可選擇地,包括用于使傳統(tǒng)設(shè)備驅(qū)動與網(wǎng)關(guān)適配的一個調(diào)整(shim)。在一個實施例中,電源線協(xié)議作為主要協(xié)議,但是網(wǎng)關(guān)300并非如此限定。因此,主要協(xié)議可以是任何協(xié)議,包括,如TCP/IP、IPX、ADSL以及在本公開文本其它地方所列或本領(lǐng)域內(nèi)所知的任何協(xié)議。對于流式傳統(tǒng)設(shè)備驅(qū)動362,如以太網(wǎng)驅(qū)動362和ADSL驅(qū)動364,網(wǎng)關(guān)提供了傳統(tǒng)堆棧352。傳統(tǒng)堆棧352支持OSI協(xié)議堆棧,如TCP/IP堆棧353和SPX/IPX堆棧354。傳統(tǒng)堆棧352與流式傳統(tǒng)設(shè)備驅(qū)動362以及路由處理器355通信。路由處理器355與流式傳統(tǒng)設(shè)備驅(qū)動362、傳統(tǒng)堆棧352以及有效負荷/協(xié)議處理裝置312通信。傳統(tǒng)堆棧352還與傳統(tǒng)應(yīng)用350通信。網(wǎng)關(guān)300作為不同類型網(wǎng)絡(luò)之間的一個鏈接點,為控制和數(shù)據(jù)網(wǎng)絡(luò)兩者提供支持,其中控制和數(shù)據(jù)網(wǎng)絡(luò)包括但不限于以太網(wǎng)、數(shù)字用戶線(DSL和ADSL)、電源線交換(PLX)、X-10以及CEBus。網(wǎng)關(guān)300具有兩個主要功能,即節(jié)點管理和數(shù)據(jù)路由。作為節(jié)點管理者,網(wǎng)關(guān)300負責(zé)發(fā)現(xiàn)、列舉、檢索、存儲以及處理網(wǎng)絡(luò)節(jié)點狀態(tài)信息。狀態(tài)信息存儲在節(jié)點數(shù)據(jù)庫308中。節(jié)點數(shù)據(jù)庫308基于Generic公共應(yīng)用語言(CAL)技術(shù)規(guī)格。EIA-600中定義的CEBus,是用于控制總線設(shè)備的一種工業(yè)標準控制語言。EIA-600為用于家庭的LAN中的公共應(yīng)用語言提供了一個框架。GenericCAL在EIA-721系列標準(包括EIA-721.1、EIA-721.2、EIA-721.3和EIA-721.4)中定義。CEBus工業(yè)委員會(CIC)定義了一個家庭即插即用(HPP)技術(shù)規(guī)格,通過為使用GenericCAL定義“語法”規(guī)則,該HPP技術(shù)規(guī)格使框架細節(jié)化。HPP技術(shù)規(guī)格為家庭中的產(chǎn)品和系統(tǒng),細節(jié)化了一組行為特征,這些行為特征允許產(chǎn)品或系統(tǒng)根據(jù)家庭中的狀態(tài)采取行動。例如,該技術(shù)規(guī)格定義了家庭內(nèi)的不同狀況,如“居住者不在”或“居住者在家睡覺”,來允許系統(tǒng)采取適當?shù)男袆?,如啟動安全系統(tǒng)、關(guān)閉室內(nèi)的燈或設(shè)置溫度。HPP技術(shù)規(guī)格也包括用于開發(fā)基于Windows’95PC的家庭控制應(yīng)用的信息。EIA-600中定義的公共應(yīng)用語言,提供了用于在多個產(chǎn)業(yè)部門(如娛樂、計算機、加熱/制冷、廚房設(shè)備等)生產(chǎn)的家庭LAN產(chǎn)品中通信的一個框架。每個產(chǎn)業(yè)部門定義產(chǎn)品使用語言的“應(yīng)用環(huán)境”(如語法規(guī)則)。作為支持組織建立了CIC,該組織協(xié)助多個產(chǎn)業(yè)部門開發(fā)“協(xié)調(diào)的”應(yīng)用環(huán)境。對于那些為基于CAL的可互操作產(chǎn)品,尋求家用LAN市場的產(chǎn)業(yè)部門,CIC的HPP是兼容的應(yīng)用環(huán)境的一個綱要。CEBus/GenericCAL技術(shù)規(guī)格全部在此引證,作為參考。網(wǎng)關(guān)300也提供規(guī)則引擎314,規(guī)則引擎監(jiān)視節(jié)點狀態(tài)變化,并根據(jù)狀態(tài)變化,根據(jù)使用通用的規(guī)則定義語言(RDL)的語法定義的規(guī)則,采取行動。通過使用調(diào)度控制塊(DCB),網(wǎng)關(guān)300也處理數(shù)據(jù)流和路由任務(wù)。路由處理器355提供這樣的功能,如TCP/IP隧道通過PLX、代理服務(wù)器以及網(wǎng)址翻譯等。提供調(diào)整(shim)(328、330),用于允許基于非PLX電源線的節(jié)點無縫隙地插入PLX網(wǎng)絡(luò)。網(wǎng)關(guān)基礎(chǔ)級304提供被用戶接口和系統(tǒng)管理應(yīng)用302使用的面向?qū)ο蟮腁PI庫。網(wǎng)關(guān)300進一步提供支持,允許使用傳統(tǒng)的、非通用的網(wǎng)絡(luò)API(MFC、TLI、套接字、家庭API等)與網(wǎng)絡(luò)節(jié)點進行通信。這允許傳統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)(以太網(wǎng)、ADSL等)的透明的數(shù)據(jù)流在網(wǎng)絡(luò)上通過,包括控制網(wǎng)關(guān)300使用Java和WebBrowser管理的節(jié)點的能力。節(jié)點數(shù)據(jù)庫308是由網(wǎng)關(guān)300存儲的節(jié)點數(shù)據(jù)儲存庫。節(jié)點數(shù)據(jù)包括由每個客戶節(jié)點得到的節(jié)點配置文件夾,事件序列,客戶節(jié)點聯(lián)編和規(guī)則。網(wǎng)關(guān)300的其它組成部分,通過一組訪問方法306訪問節(jié)點數(shù)據(jù)庫308。事件處理器310和規(guī)則引擎314,負責(zé)當客戶節(jié)點中狀態(tài)發(fā)生變化,作為結(jié)果而發(fā)生的行為。規(guī)則引擎314翻譯與狀態(tài)變化相關(guān)的規(guī)則,并負責(zé)規(guī)劃通知或作為規(guī)則求值結(jié)果可能觸發(fā)的CAL發(fā)送請求。規(guī)則引擎314與節(jié)點數(shù)據(jù)庫308和事件處理器310一起工作。事件處理器310處理事件序列和執(zhí)行事件通知。這些事件通知包括到網(wǎng)關(guān)300其它組成的內(nèi)部通知,和到已經(jīng)注冊以接收事件通知的應(yīng)用302的外部通知。在網(wǎng)關(guān)300和應(yīng)用302之間的互操作通過網(wǎng)關(guān)基礎(chǔ)級304完成。調(diào)度320負責(zé)管理網(wǎng)關(guān)300運行時的操作,包括發(fā)送/接收序列處理、線路初始化以及管理等。需要管理的網(wǎng)關(guān)活動包括應(yīng)用CAL發(fā)送請求、原始流式數(shù)據(jù)請求、接收事件和后臺管理任務(wù)。調(diào)度320提供普通的接口到網(wǎng)絡(luò)設(shè)備驅(qū)動322、326,允許支持不同類型的網(wǎng)絡(luò)節(jié)點,而不需要對于驅(qū)動322、326服務(wù)的潛在的網(wǎng)絡(luò)控制器硬件的詳細信息。設(shè)備驅(qū)動322、326直接與網(wǎng)絡(luò)通信硬件(USB或并行端口PLX節(jié)點、X-10調(diào)整(shim)、CEBus調(diào)整(shim)等)通信,并且處理數(shù)據(jù)鏈路層202功能(如產(chǎn)生/翻譯MAC頭、低級定時等)。直接與潛在的硬件對話的驅(qū)動322、326部分,是典型的平臺式技術(shù)規(guī)格,用于支持不同類型的可能存在于驅(qū)動和硬件之間的連接(如通用串行總線(UBS)、并行端口、防火端口、PCI插槽、ISA插槽、串行端口等)。網(wǎng)關(guān)300提供調(diào)整(shim)組成328、330,用于處理由傳統(tǒng)的X-10和CEBus節(jié)點接收的控制數(shù)據(jù)到網(wǎng)關(guān)300使用格式的轉(zhuǎn)換。在有效負荷/協(xié)議處理裝置312中的有效負荷/協(xié)議處理器316-318,負責(zé)解釋和執(zhí)行接收的包數(shù)據(jù)。數(shù)據(jù)處理器316-317與路由處理器355共同工作。路由處理器355解釋原始數(shù)據(jù)包的頭。路由處理器355也查詢地址和路由表,該表協(xié)助導(dǎo)向在不同的傳統(tǒng)協(xié)議堆棧352和傳統(tǒng)的流式驅(qū)動362之間的數(shù)據(jù)流。為了維護在不同的平臺和操作系統(tǒng)上編碼的可移植性,平臺特定編碼在RTOS311提供的平臺抽象層中被隔離。典型的運行時服務(wù)包括線路計劃、儲存器管理、中斷處理、時鐘、同步、優(yōu)先權(quán)計劃和初始化等。網(wǎng)關(guān)300中的許多組成,直接或間接地與節(jié)點數(shù)據(jù)庫308相互作用。最初建立和維護數(shù)據(jù)庫的任務(wù),主要由調(diào)度320、驅(qū)動322、326以及有效負荷/包處理裝置312處理。用戶接口和管理應(yīng)用,通過網(wǎng)關(guān)基礎(chǔ)級304訪問和/或修改節(jié)點數(shù)據(jù)庫308。節(jié)點數(shù)據(jù)庫308是結(jié)構(gòu)化的,這樣實時訪問快且高效。在速度/存儲使用之間進行了折衷,通常其中存儲器使用效率比訪問速度被賦予更高的優(yōu)先權(quán)。在一些實施例中,節(jié)點數(shù)據(jù)庫308的部分,存儲在非揮發(fā)性儲存器中。節(jié)點數(shù)據(jù)庫308包含客戶節(jié)點配置和節(jié)點狀態(tài)信息。這包括與每個客戶節(jié)點相關(guān)的使用環(huán)境、對象和實例變量(IV)信息。在使用網(wǎng)絡(luò)命令和網(wǎng)絡(luò)請求的節(jié)點發(fā)現(xiàn)過程中,獲得這個信息。這個信息中,動態(tài)的IV存儲在永久性儲存器中。對于大多數(shù)對象(不包括節(jié)點控制和環(huán)境控制),這包括定義節(jié)點狀態(tài)的當前值IV。節(jié)點數(shù)據(jù)庫308也包含一些節(jié)點確定的信息。在每個節(jié)點存在的節(jié)點環(huán)境之外,節(jié)點數(shù)據(jù)庫308包含包括用于節(jié)點管理的對象的數(shù)據(jù)庫服務(wù)器環(huán)境。該數(shù)據(jù)庫服務(wù)器環(huán)境包括網(wǎng)絡(luò)節(jié)點列表對象,該對象中包含網(wǎng)關(guān)300了解的客戶節(jié)點地址矩陣。通過一組普通的訪問方法306訪問節(jié)點數(shù)據(jù)庫308。由于大多數(shù)訪問直接或間接來自網(wǎng)絡(luò)信息,數(shù)據(jù)庫訪問方法306,使用典型的網(wǎng)絡(luò)取得(Get)和設(shè)置(Set)方法,負責(zé)取得和設(shè)置變量值。這種方法包括GetValue、GetArray、SetValue、SetArray、SetON和SetOFF。哪種方法適用,決定于所作用的實例變量的類型。例如,CAL網(wǎng)絡(luò)定義了四種IV數(shù)據(jù)類型布爾型(GetValue、SetValue、SetON、SetOFF),數(shù)值型(GetValue、SetValue),字符串型(GetValue、SetValue),和數(shù)據(jù)型(GetArray、SetArray)。大部分時候,這些方法使用一組相似的鍵,它們確定起作用的數(shù)據(jù)和輸入變量的任何數(shù)值。每種方法隨后返回所請求的信息(如果有)和狀態(tài)。例如,作用于CALIV的用于以上方法的普通的原型如下ENUM_STATUS<method>(NodeID,ContextID,ObjectID,IVID,args,…,*retumVal)在此例中,NodeID,ContextID,ObjectID和IVID為鍵。對于非CAL目標,使用不同的一組鍵。當在一個實例變量上進行設(shè)置時,通過事件處理器310產(chǎn)生事件通知到規(guī)則引擎314,指示一個狀態(tài)變化已經(jīng)發(fā)生。然后,規(guī)則引擎314翻譯關(guān)于發(fā)生變化的實例變量的規(guī)則/報告狀態(tài),如果已經(jīng)規(guī)定了操作,則通過事件處理器310規(guī)劃事件。這樣做的結(jié)果可能是通過調(diào)度320發(fā)送一個網(wǎng)絡(luò)請求,或者通過基礎(chǔ)級304通知到較高層應(yīng)用302。如上文所述,當產(chǎn)生一個訪問請求來GET或SET一個節(jié)點IV時一般要提供四條信息(或鍵)。這些信息包括一NodeID,一ContextID,一ObiectID和一IVID。NodeID是設(shè)置過程中分配的節(jié)點地址(這可以在制造時或在運行時動態(tài)設(shè)置)。對于PLX網(wǎng)絡(luò),這是一個4字節(jié)字段,取值在0x00000001和0xffffffef之間;高于此范圍的地址專供廣播和其它PLX特定應(yīng)用。對于非PLX網(wǎng)絡(luò),一般需要進行一些地址映像/翻譯。路由處理器355負責(zé)地址翻譯。ContextID長度為2字節(jié),其高字節(jié)為一個可選擇的應(yīng)用環(huán)境編號,取值范圍為0xA0-0xDE或在未被使用時為0。ContextID的低字節(jié)是一個應(yīng)用等級值,取值范圍為0x00-0x9E(這些在通用CAL技術(shù)規(guī)格中定義)。ObiectID是一個1字節(jié)的目標編號值,取值范圍為0x01-0x3E。IVID為一個ASCII碼字符(或字符串),其在一個給定的應(yīng)用環(huán)境和目標類型之中確定一實例變量。通過一組應(yīng)用環(huán)境描述一個節(jié)點;每種應(yīng)用環(huán)境包括一組目標;每個目標包括一組IV。數(shù)據(jù)庫是結(jié)構(gòu)化的,這樣訪問給定所述四條信息的一個IV,包括以下查詢算法。1)NodeID映像到一個節(jié)點列表入口(一般使用一散列算法),其中每個節(jié)點指向一應(yīng)用環(huán)境記錄矩陣。ContextID未定義,這樣它可以被用作到所需的應(yīng)用環(huán)境記錄的直接索引,因此,在此出現(xiàn)線性查詢。一個節(jié)點一般僅有幾個(2或3個)應(yīng)用環(huán)境。每個應(yīng)用環(huán)境記錄包含到一個目標記錄矩陣的一個指針(或一個鏈接的列表)。2)ObiectID是格式型的,這樣它可以用作到所需目標記錄的一個直接索引。每個目標記錄包含到IV記錄矩陣的一個指針。3)線性檢索用于定位所需的IV,基于IVID將作用于此IV。這樣操作是有效的,因為大部分客戶節(jié)點只在節(jié)點數(shù)據(jù)庫308存儲幾個IV。大部分GET/SET請求與所述IV的當前值有關(guān)。如果當前值總是存儲在IV列表的開頭,則幾乎不需要擴展的線性檢索。網(wǎng)關(guān)300用于填充網(wǎng)絡(luò)節(jié)點列表的發(fā)現(xiàn)過程,根據(jù)節(jié)點類型的不同而不同。對于使用CAL的典型的PLX節(jié)點,使用以下算法1)在網(wǎng)絡(luò)上廣播一個CAL“連接測試程序(Ping)”請求(一般在初始化過程中完成此操作,但也可以定期進行)。這種請求的格式與其它任何CAL命令/請求的格式相似,并使用以下參數(shù)ContextClass=0(通用的應(yīng)用環(huán)境),ObjectNumber=1(節(jié)點控制目標),Method=50h=PING_REQUEST(未在普通CAL技術(shù)規(guī)格中定義),IV=<任何IV均可>。這種請求與標準CAL請求不同,標準CAL請求可以直接發(fā)送到一個節(jié)點或者廣播到所有節(jié)點。連接測試程序(Ping)請求不需要來自接收者的導(dǎo)典型的CAL格式響應(yīng)包。2)接收CAL連接測試程序(Ping)請求的節(jié)點,發(fā)回一個CAL連接測試程序響應(yīng)到發(fā)送的節(jié)點。盡管這個包被稱為一個“響應(yīng)”,該包的語法與傳統(tǒng)的CAL響應(yīng)包不同。該響應(yīng)在次序上不同,以允許連接測試程序請求被作為廣播發(fā)送。除了方法編碼為51h而不是50h之外,響應(yīng)包的格式(它實際上類似CAL命令/請求,而不是CAL響應(yīng))與連接測試程序請求相似。3)當網(wǎng)關(guān)300由未列在網(wǎng)絡(luò)節(jié)點列表中的一個節(jié)點接收到一個連接測試程序響應(yīng)時,網(wǎng)關(guān)300增加該節(jié)點到列表中,并把該節(jié)點的IV信息加入到節(jié)點數(shù)據(jù)庫308。4)可選擇地,網(wǎng)關(guān)300發(fā)送一個CAL請求,到節(jié)點列表中的在一定長度的時間內(nèi)未收到信息的任何節(jié)點。如果該節(jié)點無法響應(yīng),它被由列表中移去。5)當一個客戶節(jié)點加電或復(fù)位時,也發(fā)送連接測試程序響應(yīng)包。對于傳統(tǒng)的控制節(jié)點(如X-10或CEBus節(jié)點),根據(jù)該節(jié)點的傳統(tǒng)技術(shù)規(guī)格,節(jié)點發(fā)現(xiàn)過程不同。網(wǎng)關(guān)300在調(diào)整(shim)328,330協(xié)助下,處理這些節(jié)點。調(diào)整(shim)328,330對于上述的CAL節(jié)點發(fā)現(xiàn)方法和非PLX驅(qū)動使用的傳統(tǒng)方法都了解。作為對一個連接測試程序請求的響應(yīng),該調(diào)整(shim)把連接測試程序請求轉(zhuǎn)換為在傳統(tǒng)控制網(wǎng)絡(luò)上執(zhí)行節(jié)點發(fā)現(xiàn)所需的相同請求(或請求組)。當節(jié)點被發(fā)現(xiàn)后,調(diào)整(shim)328,330產(chǎn)生連接測試程序響應(yīng)包,并把它們上傳到網(wǎng)關(guān)300的較高層。對于網(wǎng)關(guān)300的其余部分來說,這些傳統(tǒng)的控制節(jié)點是PLX節(jié)點。以下將進一步論述調(diào)整(shim)328,330。網(wǎng)關(guān)300允許用戶接口和管理應(yīng)用302通過基礎(chǔ)級304訪問節(jié)點數(shù)據(jù)庫308。在這方面,網(wǎng)關(guān)300作為應(yīng)用服務(wù)器。為了增強應(yīng)用302對節(jié)點數(shù)據(jù)庫308的可訪問性,網(wǎng)關(guān)300支持多個應(yīng)用服務(wù)器的存在,其中一個服務(wù)器作為活動的應(yīng)用服務(wù)器,其它作為備用應(yīng)用服務(wù)器。每個服務(wù)器存儲相同的節(jié)點數(shù)據(jù)庫308,并通過偵聽網(wǎng)絡(luò)業(yè)務(wù)、監(jiān)視網(wǎng)絡(luò)節(jié)點狀態(tài)變化,相應(yīng)地更新它的節(jié)點數(shù)據(jù)庫308,保持它的節(jié)點數(shù)據(jù)庫308的信息與其它節(jié)點的信息一致(同步)。但是,活動的應(yīng)用服務(wù)器是真正評估與狀態(tài)變化相關(guān)的規(guī)則并執(zhí)行所需的事件通知的僅有節(jié)點。如果活動的應(yīng)用服務(wù)器由于某些原因變得無法工作,則一臺備用服務(wù)器將檢測到這種情況并成為“活動的”。在圖4中,展示了一個應(yīng)用服務(wù)器節(jié)點402激活的過程,由同步框404開始,在此,節(jié)點402更新其節(jié)點數(shù)據(jù)庫308。更新節(jié)點數(shù)據(jù)庫308之后,過程前進到一個判定框406。在判定框406中,如果該節(jié)點處于活動的服務(wù)器狀態(tài),則過程前進到活動的服務(wù)器框408;否則,過程前進到備用服務(wù)器框420。在完成活動的服務(wù)器框408后,過程前進到判定框412。在判定框412中,如果檢測到服務(wù)器靜止請求,則過程前進到設(shè)定備用框410;否則,過程前進到判定框414。如果在判定框414中,檢測到一客戶請求,過程前進到響應(yīng)框416;否則,過程返回同步框404。在完成設(shè)定備用框410或響應(yīng)框416后,過程返回同步框404。在備用服務(wù)器框420完成后,過程前進到判定框422。在判定框422中,如果檢測到一個未被確認的客戶請求,過程前進到設(shè)置活動的框424;否則,過程返回到同步框404。在完成設(shè)置活動的框424后,過程前進到通知框426,通知其它應(yīng)用服務(wù)器高性能節(jié)點當前服務(wù)器節(jié)點將成為活動的。在框426完成后,過程返回到同步框404。當客戶節(jié)點中發(fā)生狀態(tài)變化時,將會涉及到規(guī)則引擎314和事件處理器310。因為當執(zhí)行設(shè)置(SET)方法時發(fā)生狀態(tài)變化,所以每個SET方法通過事件處理器310將變化通知規(guī)則引擎314。然后,規(guī)則引擎314檢查是否存在與所改變的IV相關(guān)的任何規(guī)則,并決定是否需要事件通知。規(guī)則可以由用戶通過用戶接口使用基礎(chǔ)級304,把不同的節(jié)點相互結(jié)合來創(chuàng)建。對于一些不需要明確的用戶定義的節(jié)點和常規(guī)操作,也存在默認規(guī)則。規(guī)則可以簡單或復(fù)雜。簡單規(guī)則是那些特征為用戶節(jié)點之間是一對一或一對多結(jié)合關(guān)系的規(guī)則。簡單一對一規(guī)則的舉例,如“如果照明開關(guān)A切換到開狀態(tài),則接通照明燈泡A。”一對多規(guī)則的舉例,如“如果照明開關(guān)A切換到開狀態(tài),則接通照明燈泡A、B、C和D?!睆?fù)雜規(guī)則處理多對一或多對多結(jié)合(如“如果照明開關(guān)A切換到開狀態(tài)并且用戶具有安全間距,則接通照明燈泡A、B、C和D?!?。網(wǎng)關(guān)300為規(guī)則定義提供一個通用的語法,稱為通用RulesDefinitionLanguage(RDL)。圖5是展示規(guī)則的各部分以及應(yīng)用502與規(guī)則504之間相互作用的結(jié)構(gòu)圖。如圖5中所示,應(yīng)用502創(chuàng)建包括規(guī)則504的一個或多個規(guī)則。規(guī)則504可以包含涉及條件表示506的“if”描述。條件表示506可以包括一個或多個常量506、一個或多個運算符512以及一個或多個IV。在規(guī)則504中的一個“then”子句確定返回到應(yīng)用502的通知514。每個常量包含一個值。每個運算符包含一個運算標識符(ID)。每個IV包括一個ID、一個值和一個觸發(fā)狀態(tài)(state)。觸發(fā)狀態(tài)(state)包括邊緣觸發(fā)和非邊緣觸發(fā)。每個通知包括一個通知ID和一個信息ID。一個規(guī)則包括一個事件和一個操作。該操作是一個應(yīng)用明確的字符串矩陣。事件是一個描述是否網(wǎng)絡(luò)上存在給定狀態(tài)的邏輯表達。使用以下語法確定事件字符串。該語法具有未定義的終端符號整型_常量(integer_constant)、字符型_常量(character_constant)、浮點_常量(floating_constant)和字符串(string)。注意標識符終端具有確定的格式。插入記號‘^’或磅符號‘#’后的第一個integer_constant是一個十六進制的節(jié)點地址。第二個(可選擇的)integer_constant是一個十六進制的CAL應(yīng)用環(huán)境編號。第三個integer_constan是一個十六進制的CAL應(yīng)用環(huán)境類型。第四個integer_constant是一個十六進制的CAL目標編號。character_constant是一個CAL實例變量(IV)。在標識符之前的插入符號確定一個“邊緣觸發(fā)的”或“justchanged”iv。磅符號表示該iv是“l(fā)evel”或“已有值”。一個規(guī)則只能有一個“邊緣觸發(fā)的”標識符。規(guī)則語法IFOR表達THENACTION表達OR表達AND_表達OR_表達AND_表達AND_表達等式_表達AND_表達&&等式_表達等式_表達關(guān)系_表達等式_表達==關(guān)系_表達等式_表達!=關(guān)系_表達關(guān)系_表達相加_表達關(guān)系_表達<相加_表達關(guān)系_表達>相加_表達關(guān)系_表達<=相加_表達關(guān)系_表達>=相加_表達相加_表達相乘_表達相加_表達+相乘_表達相加_表達-相乘_表達相乘_表達初始_表達相乘_表達*初始_表達相乘_表達/初始_表達相乘_表達%初始_表達初始_表達標識符常量字符串(OR表達)標識符^integer_constant.integer_constantoptoptinteger_constant.integer_constant.character_constant#integer_constant.integer_constantoptoptinteger_constant.integer_constant.character_constant常量整型_常量(integer_constant)字符型_常量(character_constant)浮點_常量(floating_constant)ACTION表達通知_就用_為_此_規(guī)則_注冊發(fā)送_PLX_包_到_節(jié)點對于包含嵌入的使用傳統(tǒng)的語法(如RDL之外的一種語法)規(guī)則的非PLX節(jié)點,規(guī)則引擎314(在調(diào)整(shim)328,330的幫助下)把傳統(tǒng)語法轉(zhuǎn)換為RDL語法。調(diào)度320負責(zé)導(dǎo)向出現(xiàn)在網(wǎng)關(guān)300中的命令和操作流。在初始化過程中,調(diào)度320調(diào)用RTOS311來創(chuàng)建用于管理運行時操作的不同的處理器線程。按照優(yōu)先級順序列表,所述處理器線程包括1)接收有效負荷線程,2)原始數(shù)據(jù)(流式)傳輸線程,3)CAL傳輸線程,以及4)低優(yōu)先級的空閑線程(可選用的)。以上所列的大部分處理器線程,發(fā)送包到客戶節(jié)點。在調(diào)用一個設(shè)備驅(qū)動發(fā)送的例程之前,這些線程首先在TxFreeCount信號裝置上等待(靜止),該信號裝置表明所述驅(qū)動能夠處理發(fā)送請求。而且,CAL發(fā)送線程確保CAL包不被發(fā)送到處于“延遲”模式的客戶。延遲模式將在下文論述。調(diào)度320還管理處理器線程所作用的隊列。處理器線程和其它網(wǎng)關(guān)300組成部分調(diào)用調(diào)度320,來增加并移去包到/由隊列。調(diào)度320使用調(diào)度控制塊來描述CAL請求/響應(yīng)包和原始數(shù)據(jù)流片段。DCB結(jié)構(gòu)定義(用C/C++語法)如下TypedefstructsDCB{void*link;UNITE8*buffer;UNIT32destDevAddress;UNITE32srcDevAddress;UNIT16TimeStamp;UNIT16reservedl;UNIT8destSocket;UNIT8srcSocket;UNIT8sequenceNo;UNIT8bufferSize;UNIT8controlInfo;UNIT8reserved2[5];}tDCB,*PDCB;其中l(wèi)ink域可以由DCB擁有者用于任何用途。它典型地用于DCB隊列管理。buffer和bufferSize域指向并定義DCB所描述的包/片段數(shù)據(jù)的長度。destDevAddress和srcDevAddress確定與DCB相關(guān)的目標和源節(jié)點。destSocket和srcSocket可以用于進一步確定在節(jié)點中的目標/源應(yīng)用。timeStamp域被網(wǎng)關(guān)300用來協(xié)助處理不同的時效條件。sequenceNo用于排序包,主要用于原始數(shù)據(jù)包流。controlInfo域用來儲存用于指明需要DCB和相關(guān)數(shù)據(jù)包的特定特征/處理的不同位域和標志。這些位控制諸如數(shù)據(jù)加密、授權(quán)和數(shù)據(jù)流等特性。reservedl和reserved2域由網(wǎng)關(guān)300在內(nèi)部使用,并被外部應(yīng)用使用。所述接收有效負荷線程一般是由調(diào)度320發(fā)起的最高優(yōu)先級線程,并且無論何時當設(shè)備驅(qū)動322、325把接收的包排隊后,就執(zhí)行。在設(shè)備驅(qū)動322、325中的中斷/輪詢服務(wù)例程,可以優(yōu)先于此線程。此線程負責(zé)從接收隊列移去包,并把包傳遞給有效負荷/協(xié)議處理裝置312來進一步處理。此線程一直執(zhí)行到接收隊列變空為止(或者可以直到達到一些門限為止)然后處于靜止直至排隊更多的接收包之后。當以下兩個條件成立時,原始數(shù)據(jù)傳輸線程執(zhí)行1)一個原始數(shù)據(jù)/流式傳輸請求已被一個應(yīng)用排隊;和2)任何具有更高優(yōu)先級的線程/中斷處理器已執(zhí)行結(jié)束。原始傳輸線程在發(fā)送隊列中得到另一個入口,并把它傳給適當?shù)脑O(shè)備驅(qū)動發(fā)送例程。這個過程一直重復(fù)到在發(fā)送隊列中沒有任何報告,或已經(jīng)達到一些門限。原始數(shù)據(jù)傳輸線程然后處于靜止,直到安排了新的傳輸之后。CAL傳輸線程與原始數(shù)據(jù)線程相似。兩者之間的主要差別在于CAL傳輸線程處理不同的發(fā)送隊列。CAL傳輸線程根據(jù)CAL請求事件工作。CAL請求事件一般作為應(yīng)用304的請求結(jié)果而被安排。這些應(yīng)用請求被調(diào)度320放到CAL發(fā)送隊列上。該CAL傳輸可以用于讀(GET)和寫(SET)儲存在遠端節(jié)點中或節(jié)點數(shù)據(jù)庫308中的狀態(tài)信息。CAL傳輸也可以由內(nèi)部的和外部的狀態(tài)變化來產(chǎn)生,所述狀態(tài)變化觸發(fā)由規(guī)則引擎314翻譯的規(guī)則中定義的事件??臻e線程在系統(tǒng)中工作在低優(yōu)先級并且是可選擇的。如果被選用,該空閑線程處理在較高優(yōu)先級線程執(zhí)行時被不確定地延遲而可以不受影響的低優(yōu)先級任務(wù)。低優(yōu)先級任務(wù)一般包括以下操作1)儲存器管理和垃圾收集任務(wù);2)發(fā)送看門狗/連接測試程序(Ping)包來檢測和老化無響應(yīng)節(jié)點;和3)使高速緩存數(shù)據(jù)庫信息與非高速緩存(持久的)備份儲存同步。如果支持空閑線程,則調(diào)度320提供到其它模塊的接口,這樣可以計劃空閑線程調(diào)用低優(yōu)先級任務(wù)。設(shè)備驅(qū)動322、326接收來自調(diào)度320的一般請求(由調(diào)度控制塊或DCB描述),并把這些請求轉(zhuǎn)換為適合于潛在的網(wǎng)絡(luò)節(jié)點的I/O請求。設(shè)備驅(qū)動322、326也處理由網(wǎng)絡(luò)硬件接收的包,并創(chuàng)建DCB,該DCB然后被傳遞到調(diào)度320用于進一步處理。網(wǎng)關(guān)300與設(shè)備驅(qū)動322、326僅通過調(diào)度線程部分接口。設(shè)備驅(qū)動322、326提供的到調(diào)度320的接口包括傳遞一個DCB的一個驅(qū)動發(fā)送(DriverSend)接口。介質(zhì)抽象組成(MAC)模塊建立一個MAC頭,并起始實際的到網(wǎng)絡(luò)控制器硬件的包發(fā)送。一驅(qū)動中斷/輪詢在有效負荷接收隊列上的例程隊列接收事件,該事件然后由接收有效負荷線程在后邊的階段處理。以下的大部分論述,假設(shè)設(shè)備驅(qū)動驅(qū)動一個基于PLX的節(jié)點。但是,提供到較高層的接口是通用的,這樣網(wǎng)關(guān)也支持其它的設(shè)備驅(qū)動。提供調(diào)整(shim)328、330以允許網(wǎng)關(guān)300無隙地支持基于非PLX的節(jié)點如X-10和當?shù)谻EBus節(jié)點。當一個驅(qū)動,如PLX控制驅(qū)動323安裝后,一個驅(qū)動初始化模塊,把驅(qū)動所服務(wù)的網(wǎng)絡(luò)接口硬件置于一個功能狀態(tài)。初始化完成之后,驅(qū)動323和硬件就準備好發(fā)送和接收包。驅(qū)動初始化部分一般包括設(shè)置一接收處理ISR/輪詢例程,確定/保留硬件資源,以及開始任何管理線程。一般一個時效線程用于檢查傳輸超時和設(shè)備驅(qū)動/硬件死機問題。發(fā)送時,調(diào)度320使用一DCB,把包/片段數(shù)據(jù)地址以及控制信息提供給驅(qū)動323。驅(qū)動323然后創(chuàng)建適當?shù)腗AC頭,并起始傳輸。能夠同時處理的傳輸數(shù)量是一個依賴與硬件/固件的值(在此稱為TxFreeCount),該值可以在初始化時讀出。在把傳輸數(shù)據(jù)復(fù)制到網(wǎng)絡(luò)控制器后,DriverSend例程啟動一個發(fā)送時效計時器。此時,除非同步地收到表明傳輸完成的響應(yīng)(在發(fā)送之后,DriverSend例程返回之前),該傳輸將一直處于一種“懸掛”狀態(tài),直到網(wǎng)絡(luò)硬件指示傳輸完成狀態(tài)。當傳輸處于懸掛狀態(tài)時,只要網(wǎng)絡(luò)控制器還有可用的緩存空間,這由TxFreeCount定義,就可以繼續(xù)進行更多的發(fā)送。一旦懸掛的發(fā)送數(shù)量等于TxFreeCount,DriverSend例程就被鎖住(意味著不可以出現(xiàn)更多的發(fā)送),并且保持鎖住狀態(tài),直到接收到傳輸成功狀態(tài)或傳輸超時狀態(tài)之后,ISR/輪詢例程為它解鎖。驅(qū)動中斷/輪詢服務(wù)例程(或ISR處理器)以最高優(yōu)先級在系統(tǒng)中運行(尤其是中斷應(yīng)用環(huán)境中),并負責(zé)解釋/去除接收的包的MAC頭,并且使用調(diào)度320排隊包,以被適當?shù)挠行ж摵商幚砥饔糜诤笃谔幚?。接收包為以下類型之?)內(nèi)部(或本地)控制/狀態(tài)包;2)CAL命令/請求包;3)CAL立即響應(yīng)包;4)CAL延遲響應(yīng);5)原始流數(shù)據(jù)。內(nèi)部控制/狀態(tài)包主要用于表示傳輸完成或錯誤狀態(tài)。在ISR處理器中傳輸狀態(tài)包的處理,一般根據(jù)狀態(tài)所用的傳輸包類型(如CAL/原始、本地/遠端)的不同而不同。對于原始片段和CAL包,如果狀態(tài)指示傳輸已經(jīng)成功完成,則ISR例程調(diào)整TxFreeCount以允許下一個發(fā)送進行。萬一發(fā)生超時錯誤,CAL傳輸首先將重傳適當?shù)拇螖?shù)直到發(fā)送成功,或達到最大重傳次數(shù)而放棄。對原始數(shù)據(jù)片段傳輸超時的處理與對CAL傳輸?shù)奶幚硐嗨?,例外的是,在一些情況下(取決于原始數(shù)據(jù)流的特性和接收方的設(shè)置),可能需要一些附加的重傳處理。原始流片段一般使用包排隊來協(xié)助管理數(shù)據(jù)流。根據(jù)接收原始流應(yīng)用的需要,對于超時重傳碼,不僅需要重傳超時的傳輸,而且需要重傳額外的懸起的原始傳輸(那些具有較高序列號的),而不管這些懸起的傳輸是否成功結(jié)束。這將協(xié)助確保接收的應(yīng)用或路由處理器將以升序接收包。接收的應(yīng)用/路由器將丟掉無序的包。CAL請求/響應(yīng)和原始流包由ISR處理器排隊,然后由接收有效負荷線程和適當?shù)挠行ж摵?協(xié)議處理器處理。特殊的處理還被用于CAL包,來核實沒有新的CAL請求被發(fā)送到CAL響應(yīng)正在懸起的遠端節(jié)點。另外,如果從遠端節(jié)點接收到一個CAL請求,一般,在適當?shù)腃AL響應(yīng)發(fā)送之前,不允許發(fā)送任何新的CAL包到該節(jié)點。對于傳統(tǒng)的控制網(wǎng)絡(luò)設(shè)備驅(qū)動(如X-10驅(qū)動328和CEBus驅(qū)動332),調(diào)整(shim)323,330提供允許這些非PLX驅(qū)動使用網(wǎng)關(guān)300的接口。傳輸時,調(diào)整(shim)328,330檢查由調(diào)度320發(fā)送的CAL包,并把這些包轉(zhuǎn)換為潛在的傳統(tǒng)驅(qū)動/設(shè)備能識別的等價格式。接收時,調(diào)整(shim)328,330把接收的傳統(tǒng)數(shù)據(jù)轉(zhuǎn)換為CAL格式,建立一個DCB,并把該DCB傳給調(diào)度320。在發(fā)送和傳輸過程中,調(diào)整(shim)328,330一般執(zhí)行一些地址翻譯,把4字節(jié)的DCB地址轉(zhuǎn)換為潛在的傳統(tǒng)驅(qū)動使用的地址格式。接收到的包可能包含CAL控制信息或原始流數(shù)據(jù)(可能包括打印機數(shù)據(jù)、隧道的以太網(wǎng)/ADSL數(shù)據(jù)等)。這些有效負荷由有效負荷/協(xié)議處理裝置312提供的適當?shù)挠行ж摵?協(xié)議處理器處理。CAL處理器318包括CAL翻譯器,該翻譯器負責(zé)解釋和處理由控制網(wǎng)絡(luò)節(jié)點接收的CAL請求/響應(yīng)控制包。有效負荷處理器線程把CAL包由客戶傳到CAL處理器,用于進一步處理。CAL翻譯器也提供一些基本的CAL解釋例程到其它處理CAL信息的網(wǎng)關(guān)組成部分。當調(diào)度320調(diào)用CAL處理器318時,調(diào)度把指向CAL信息的一個指針放到其它數(shù)據(jù)中,傳到發(fā)出包的客戶節(jié)點地址,以及所要作用的客戶節(jié)點地址。除了包是由應(yīng)用302發(fā)出的那些情況之外,這兩個地址一般相同。CAL信息被分類為命令(一般也稱為請求)或響應(yīng)信息。來自客戶節(jié)點的CAL命令,一般是狀態(tài)改變通知,告訴網(wǎng)關(guān)300“設(shè)置我的狀態(tài)變量為一些新的值”的一些結(jié)果。特殊功能客戶,如那些由應(yīng)用304控制的客戶,根據(jù)客戶的請求,也發(fā)送CAL命令來取得或設(shè)置其它客戶狀態(tài)(實例)變量。這些包一般需要在下一部分所描述的特殊處理。CAL命令包可以包含一個或多個命令。單個命令CAL包的格式<contextID><object#><method/macro>[<IV>[<arguments>]]CAL翻譯器把信息分成它的組成部分,映象方法標識符到適當?shù)臄?shù)據(jù)庫訪問方法,然后使用該ID和變量參數(shù)調(diào)用該數(shù)據(jù)庫訪問方法。數(shù)據(jù)庫訪問方法306執(zhí)行被請求的操作,并且如果IV被改變,就通知規(guī)則引擎314。規(guī)則引擎314評估施加于改變的IV的任何規(guī)則,并且如果被許可,就通過上述的事件處理器310計劃事件通知/行動。客戶節(jié)點使用CAL響應(yīng)包響應(yīng)CAL命令。CAL響應(yīng)的形式為<statustoken>[<returneddata>],其中<statustoken>是響應(yīng)類型的一個一字節(jié)指示(完成、失敗false或錯誤),<returned>數(shù)據(jù)是作為命令信息結(jié)果而返回的任何數(shù)據(jù)。當接收到這些包之一時,把它與原始CAL命令/請求相聯(lián)系。當客戶立即響應(yīng)請求時,這種聯(lián)系相對容易。當響應(yīng)被延遲時,響應(yīng)復(fù)雜一些。在發(fā)送對前一個請求的響應(yīng)之前,客戶不可以發(fā)送CAL請求包到網(wǎng)絡(luò)上,這使得這種聯(lián)系成為可能。網(wǎng)關(guān)300不發(fā)送請求到處于“延遲”模式的客戶。這允許網(wǎng)關(guān)300,按客戶儲存發(fā)送到客戶的最后請求(或命令)。當接收到客戶響應(yīng)后,這個信息允許CAL處理器318決定怎樣處理返回的信息。原始數(shù)據(jù)處理器316處理非CAL接收數(shù)據(jù)。網(wǎng)關(guān)300支持可以在不同的應(yīng)用中發(fā)起的多個同時的數(shù)據(jù)流。原始數(shù)據(jù)處理器316區(qū)分原始數(shù)據(jù)流的方法,涉及套接字段,單獨的套接字編號與每個原始數(shù)據(jù)流類型相聯(lián)系。原始數(shù)據(jù)流的例子包括以太網(wǎng)/ADSL網(wǎng)絡(luò)包、打印機數(shù)據(jù)、音頻流及其它類似數(shù)據(jù)。除了檢查套接字編號之外,原始數(shù)據(jù)處理器316極少分析原始數(shù)據(jù)。包數(shù)據(jù)以及相聯(lián)系的DCB然后被傳遞到負責(zé)那個套接字編號的路由處理器355。路由處理器355提供允許網(wǎng)關(guān)300由傳統(tǒng)數(shù)據(jù)網(wǎng)絡(luò)(以太網(wǎng)、ADSL、令牌環(huán)等)重定向網(wǎng)絡(luò)數(shù)據(jù)業(yè)務(wù)到所需網(wǎng)絡(luò)的功能。例如,使用網(wǎng)關(guān)300來重定向網(wǎng)絡(luò)數(shù)據(jù)業(yè)務(wù)由一個傳統(tǒng)網(wǎng)絡(luò)到諸如PLX電源線網(wǎng)絡(luò)的一個網(wǎng)絡(luò),提供了許多需要的特征,包括但不限于1)允許擴展傳統(tǒng)的以太網(wǎng),來容納基于電源線的節(jié)點,而不需要附加的以太網(wǎng)電纜連接;2)允許寬帶數(shù)據(jù)在電源線上傳送;3)對于基于電源線的網(wǎng)絡(luò)客戶,允許代理服務(wù)器性能;4)允許使用隧道技術(shù)使傳統(tǒng)協(xié)議堆棧(TCP/IP、PX/IPX、NetBEUI等)通過電源線。路由處理器355執(zhí)行的一個重要任務(wù)是地址翻譯。在初始化時,路由處理器355獲得在由網(wǎng)關(guān)300發(fā)起的DCB傳輸中用作srcDevAddress的4字節(jié)地址。路由處理器355,把這個地址翻譯成適于處理器與其通信的傳統(tǒng)堆棧和/或驅(qū)動的形式。以下部分將描述路由處理器355使用隧道技術(shù),使網(wǎng)絡(luò)數(shù)據(jù)包通過使用DCB的不同協(xié)議(如PLX協(xié)議)。使用隧道技術(shù)是把一個由第一個協(xié)議的包封裝或包裝到用于第二個協(xié)議的包內(nèi)。封裝的包然后通過第二個協(xié)議傳過網(wǎng)絡(luò)。到達它的目的地之后,封裝的包被拆封,并現(xiàn)出來自第一個協(xié)議的原始包。在初始化過程中,路由處理器355設(shè)置前述的地址映象/翻譯表。路由處理器355也了解每個DCB支持的包/片段的最大長度。路由處理器355從調(diào)度320獲得這些信息。不同的路由處理器355通過使用套接字編號來確定。公知的套接字地址可以為專門使用保留或在初始化過程中動態(tài)地獲得。當路由處理器355由傳統(tǒng)堆棧或驅(qū)動獲得一個目標為電源線設(shè)備的發(fā)送請求時,路由處理器355把要發(fā)送的數(shù)據(jù)分成不大于所支持的最大DCB數(shù)據(jù)長度的片段。然后創(chuàng)建DCB,并把序列號賦給每個片段。第一個片段總是序列號為0,最后的片段具有序列設(shè)置的高位??蛇x擇地,如果在其它層中校驗和功能不能滿足要求,路由處理器355可以把校驗和加到包中。這些DCB包然后傳給調(diào)度320,用于在原始發(fā)送序列上排隊。這將喚醒原始發(fā)送線程,為了在電源線上傳輸,該線程把DCB傳遞給適當?shù)脑O(shè)備驅(qū)動。設(shè)備驅(qū)動完成每次傳輸時,Tx狀態(tài)標記到DCB中,DCB被返回到路由處理器355。在所有的DCB被返回后,路由處理器355執(zhí)行傳統(tǒng)協(xié)議所需的發(fā)送完成操作。由于超時/重傳問題由調(diào)度320和設(shè)備驅(qū)動處理,并且在許多情況下也由傳統(tǒng)堆棧處理,路由處理器355可以選擇不執(zhí)行任何附加的重傳操作。由于路由處理器355可能同時由多個發(fā)送者接收數(shù)據(jù)片段,接收處理稍微復(fù)雜一些。另外,在一些情況下,片段可能順序不對或被丟掉。路由處理器355有一個能夠處理所有這些可能性的接收模塊。一般,當有效負荷/協(xié)議處理器316傳遞一個開始DCB/片段到路由處理器之一時,該DCB/片段被放到為發(fā)送地址保留的接收隊列上。當收到每個DCB后,接收者檢查最后片段序列號或接收超時。當所有片段被收到并通過完整性校驗后,路由處理器355執(zhí)行傳統(tǒng)協(xié)議/驅(qū)動所需的步驟,來指示接收事件。這一般將涉及重組包和可能復(fù)制相關(guān)的接收數(shù)據(jù)到傳統(tǒng)模塊352提供的緩沖器之中。在每個接收DCB所描述的被處理后,DCB被返回到自由DCB列表。網(wǎng)關(guān)基礎(chǔ)級304是基于面向?qū)ο蟮母拍?如Java、C++、smalltalk等),它為不同類型的應(yīng)用提供一種訪問和管理節(jié)點信息的方法,所述節(jié)點信息儲存于節(jié)點數(shù)據(jù)庫306、規(guī)則引擎314、事件處理器310以及網(wǎng)關(guān)300提供的其它服務(wù)之中。這允許終端用戶應(yīng)用302為終端用戶提供很寬范圍的有用性能。例如,網(wǎng)關(guān)基礎(chǔ)級304使獨立的應(yīng)用和Jave瀏覽器程序能夠列舉、監(jiān)視并控制節(jié)點數(shù)據(jù)庫308中描述的節(jié)點。通過使用規(guī)則定義語言(RulesDefinitionLanguage)定義簡單或復(fù)雜的規(guī)則,這些應(yīng)用/程序可以定義節(jié)點之間的不同組合。通過把應(yīng)用302自己注冊為事件通知目標,也可以使應(yīng)用302在變化發(fā)生時了解數(shù)據(jù)庫變化。盡管以上對于本發(fā)明的特定實施例進行了描述和說明,但是本領(lǐng)域內(nèi)的熟練人員仍然可以對其進行不同的改變和改進,而不背離附錄A之后的權(quán)利要求中所定義的本發(fā)明的范圍和精神。附錄APLX協(xié)議一個廉價的、易于使用的、靈活的、可靠的、并且可伸縮的網(wǎng)絡(luò)結(jié)構(gòu)/協(xié)議,該網(wǎng)絡(luò)結(jié)構(gòu)/協(xié)議允許多個智能的和啞的節(jié)點通過一個共用的數(shù)據(jù)/控制信道進行通信。該聯(lián)網(wǎng)協(xié)議允許網(wǎng)絡(luò)上的任何節(jié)點把自己指定為活動的網(wǎng)絡(luò)服務(wù)器。該活動的網(wǎng)絡(luò)服務(wù)器輪詢基于一個排隊卡的客戶節(jié)點。未激活的節(jié)點被自動從排隊卡移去,因而減少不必要的輪詢業(yè)務(wù)量。這種結(jié)構(gòu)減少了沖突,而為真正的數(shù)據(jù)傳輸保留了帶寬。該協(xié)議提供了為控制和數(shù)據(jù)聯(lián)網(wǎng)兩者所需的支持。通過在網(wǎng)絡(luò)上分配時隙,并允許兩個智能節(jié)點互相直接對話且由活動的網(wǎng)絡(luò)服務(wù)器仲裁,為流式數(shù)據(jù)和同步數(shù)據(jù)提供支持。該活動的網(wǎng)絡(luò)服務(wù)器也能夠分配單獨的數(shù)據(jù)信道,因此大量的數(shù)據(jù)業(yè)務(wù)可以獨立于該主網(wǎng)絡(luò)的運行地流動。作為活動的網(wǎng)絡(luò)服務(wù)器的該網(wǎng)絡(luò)節(jié)點,可以在動態(tài)的基礎(chǔ)上更換,并且典型地由在一個靜止的網(wǎng)絡(luò)上起始一個傳輸請求的第一個節(jié)點決定??蛻艄?jié)點由使用尋址隔離模式的動態(tài)輪詢進行尋址。該PLX結(jié)構(gòu),包括PLX協(xié)議,非常適于使用在建筑內(nèi)已有的電力電源導(dǎo)線(電源線)作為網(wǎng)絡(luò)介質(zhì)的網(wǎng)絡(luò)。使用已有的電源線來傳輸數(shù)據(jù)意味著用戶不需要安裝網(wǎng)絡(luò)電纜。該PLX結(jié)構(gòu)為網(wǎng)絡(luò)節(jié)點提供強大的、確定性的媒體接入能力。節(jié)點通過使用尋址隔離模式的動態(tài)輪詢進行尋址。提供了一個可行的數(shù)據(jù)信道,用于診斷、變元傳送和一般的數(shù)據(jù)傳送的應(yīng)用系統(tǒng)。在一個實施例中,該PLX協(xié)議提供了全球單一的識別碼、節(jié)點文件夾和32位的虛擬尋址能力。這使得該PLX協(xié)議與即插即用型的網(wǎng)絡(luò)相兼容。在一個實施例中,該PLX結(jié)構(gòu)提供了諸如同級、多個服務(wù)器、簡單的配置、安全、數(shù)據(jù)報檢測、多種數(shù)據(jù)格式以及優(yōu)先權(quán)計劃的特征。錯誤檢測,如CRC和校驗和以及數(shù)據(jù)完整性能力是一些PLX實施例的一部分。該PLX結(jié)構(gòu)用于智能節(jié)點、啞的節(jié)點,并且該結(jié)構(gòu)用于從簡單控制到復(fù)雜數(shù)據(jù)流的數(shù)據(jù)處理。在一個實施例中,PLX可以由狀態(tài)(state)機器邏輯或一個微控制器來實施。一個流線型的低端的節(jié)點(啞的節(jié)點)可以被實施來使用整個PLX能力的一個子集。中端的節(jié)點,如器具,適合在此公開的該協(xié)議。高端的節(jié)點(智能節(jié)點),如PC、PBX、內(nèi)部通信/監(jiān)視系統(tǒng)、打印機、鼠標以及其它數(shù)據(jù)密集型的節(jié)點也可以在PLX結(jié)構(gòu)中找到適用性。該PLX為數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳送層定義了操作規(guī)則。在一個實施例中,PLX包括數(shù)據(jù)鏈路層的介質(zhì)訪問控制(MAC)部分。該MAC協(xié)議是管理怎樣以及何時物理介質(zhì)能夠被每個節(jié)點訪問的一組規(guī)則。在一個實施例中,該MAC協(xié)議使用一個減少在電源線上發(fā)生沖突的動態(tài)中心分布式令牌傳遞結(jié)構(gòu)。該PLX結(jié)構(gòu)允許網(wǎng)絡(luò)上的任何節(jié)點指定自己作為負責(zé)仲裁令牌請求的活動的網(wǎng)絡(luò)服務(wù)器。當節(jié)點為非激活狀態(tài)時,它們進入一種“靜止”狀態(tài),因而減少了任何不必要的“輪詢”業(yè)務(wù)量。這種結(jié)構(gòu)減少了沖突,而為真正的數(shù)據(jù)傳輸保留了寶貴的帶寬。該PLX結(jié)構(gòu),在一些方面,是一個為控制和數(shù)據(jù)兩方面聯(lián)網(wǎng)所需的支持包的客戶/服務(wù)器聯(lián)網(wǎng)結(jié)構(gòu)。通過在網(wǎng)絡(luò)上分配時隙,并允許兩個智能節(jié)點互相直接對話且由活動的網(wǎng)絡(luò)服務(wù)器仲裁,能夠為流式數(shù)據(jù)和同步數(shù)據(jù)提供支持。該活動的網(wǎng)絡(luò)服務(wù)器也能夠分配單獨的數(shù)據(jù)信道,因此大量的數(shù)據(jù)業(yè)務(wù)可以獨立于該主網(wǎng)絡(luò)的運行地流動。作為活動的網(wǎng)絡(luò)服務(wù)器的該網(wǎng)絡(luò)節(jié)點,可以在動態(tài)的基礎(chǔ)上更換,并且典型地由在一個靜止的網(wǎng)絡(luò)上起始一個傳輸請求的第一個節(jié)點決定。另外,該活動的網(wǎng)絡(luò)服務(wù)器是獨立于應(yīng)用服務(wù)器地被選定的。應(yīng)用服務(wù)器典型地在一固定節(jié)點位置。該網(wǎng)絡(luò)服務(wù)器可以是任何能勝任的服務(wù)器節(jié)點。在一個實施例中,PLX提供組合的介質(zhì)訪問能力,包括一個為在未激活的(靜止的)網(wǎng)絡(luò)介質(zhì)上的最初訪問的數(shù)據(jù)報檢測算法,被為插入到一個激活的網(wǎng)絡(luò)上的中心控制的令牌傳遞跟隨。這有效地把多個訪問與一個無沖突的、令牌傳遞型的環(huán)境,以及確定性的附加的益處聯(lián)系在一起。在一個實施例中,PLX用一個數(shù)據(jù)報的出現(xiàn),來決定最初的介質(zhì)可訪問性。特別是通過匹配一個特定的前同步碼/長度序列組合,來檢測該數(shù)據(jù)報。在一個實施例中,通過使用一個僅僅傳遞令牌到在系統(tǒng)上的激活的節(jié)點的、集中式動態(tài)輪詢算法,PLX減少在網(wǎng)絡(luò)上的業(yè)務(wù)量。一旦一個節(jié)點變?yōu)榉羌せ畹?,該?jié)點就被從輪詢的列表中移去。這種選擇性的輪詢過程,是基于節(jié)點通過一個被稱為“在總線上發(fā)信號(spitting)”,把它們自己插入到輪詢的列表中的能力。這種發(fā)信號(spitting)過程,提供對于輪詢列表的實時的、飛擊式(on-the-fly)插入。這種發(fā)信號(spitting)過程,允許多個節(jié)點響應(yīng)被視為一個單個的系統(tǒng)響應(yīng)。這個系統(tǒng)響應(yīng)允許活動的服務(wù)器節(jié)點(正在進行輪詢的節(jié)點)來進一步把要求插入到輪詢列表的特定的節(jié)點區(qū)分出來。從輪詢列表中實時的、飛擊式(on-the-fly)的退出(de-insertion)插入由一個老化(aging)過程提供。經(jīng)過一個預(yù)先定義的時間段后,如果他們沒有使用令牌,未激活的節(jié)點最終被從輪詢列表中移去(分離插入)。在一個實施例中,如果一個節(jié)點未能響應(yīng)一個令牌請求,該時效過程進一步被加速。在一個實施例中,基于介質(zhì)的帶寬能力,輪詢列表被設(shè)置為一個固定的容量(節(jié)點的數(shù)量)。傳輸具有較低的優(yōu)先權(quán)的數(shù)據(jù)(如用于照明系統(tǒng)的控制數(shù)據(jù))的節(jié)點,被從輪詢列表中移去,目的是為傳輸具有較高的優(yōu)先權(quán)的數(shù)據(jù)(如音頻/視頻流式數(shù)據(jù))的節(jié)點讓出空間。在一個實施例中,在該PLX中的介質(zhì)訪問控制(MAC)層,通過使用一個備用的接收緩沖器和忙響應(yīng)信號交換,提供一種自我調(diào)節(jié)機制。在一個實施例中,自我調(diào)節(jié)是通過提供一個MAC報頭,在每個節(jié)點中的用于保持該MAC報頭的一個拷貝的足夠大的接收區(qū)來完成。即使一個節(jié)點被先前的包請求完全淹沒,通過一個忙響應(yīng),這個被淹沒的節(jié)點也能夠?qū)σ粋€請求作出響應(yīng)。該忙響應(yīng)通知正在傳輸?shù)墓?jié)點,正在傳輸?shù)墓?jié)點必須截止它的包突發(fā)或序列,因此根據(jù)每個接收節(jié)點的能力協(xié)調(diào)該系統(tǒng)。一個節(jié)點的加電時的自動通告特征,提供了遠端數(shù)據(jù)庫服務(wù)器的再同步。在一個新節(jié)點加電時,該新節(jié)點將通告它新出現(xiàn)在介質(zhì)上。在一個實施例中,PLX提供優(yōu)選的服務(wù)器選擇和kick-start算法。因為PLX是一個客戶/服務(wù)器型的結(jié)構(gòu),一個單個的節(jié)點被典型地選定來仲裁介質(zhì)訪問。在一個典型的電源線網(wǎng)絡(luò)上,并非所有的節(jié)點要建立為平等的。因此,PLX的一個實施例允許一個用戶選擇一個處于最中心位置(如鄰近一個開關(guān)板)的節(jié)點作為優(yōu)選的“活動的網(wǎng)絡(luò)服務(wù)器”。如果該優(yōu)選的服務(wù)器未激活,遠端的節(jié)點可以激活該優(yōu)選的服務(wù)器。一個簡單的喚醒算法允許一個未激活的優(yōu)選的服務(wù)器再次變?yōu)榧せ畹摹T谝粋€客戶/服務(wù)器模型中,開始,一個節(jié)點請求訪問介質(zhì)的令牌。一旦一個客戶節(jié)點被發(fā)給令牌,在一個特定的時間內(nèi),它可以接管該介質(zhì)。在此期間,它可以與系統(tǒng)上的任何節(jié)點直接通信,而獨立于服務(wù)器的涉及之外。在此期間結(jié)束后,介質(zhì)訪問控制被釋放回服務(wù)器節(jié)點。因此,介質(zhì)的仲裁首先以客戶/服務(wù)器的方式進行,接下來是一個對等關(guān)系的時隙。在一個實施例中,PLX包括一個動態(tài)的仲裁服務(wù)器。該仲裁到介質(zhì)訪問的服務(wù)器,基于活動性被動態(tài)地指定。當?shù)谝粋€要傳輸包的節(jié)點,發(fā)現(xiàn)系統(tǒng)是“未激活的”,并且經(jīng)過喚醒優(yōu)選的服務(wù)器(如果有一個存在)的幾次嘗試后,出現(xiàn)這種動態(tài)的指定,承擔活動的網(wǎng)絡(luò)服務(wù)器的職責(zé)。在PLX網(wǎng)絡(luò)上,任何具有服務(wù)器能力的節(jié)點都能成為活動的網(wǎng)絡(luò)服務(wù)器。在一個實施例中,本網(wǎng)絡(luò)協(xié)議提供了通過電源線介質(zhì)發(fā)送和接收流式數(shù)據(jù)。在一個實施例中,流式數(shù)據(jù)包括數(shù)字語音數(shù)據(jù)。在一個實施例中,流式數(shù)據(jù)包括數(shù)字視頻數(shù)據(jù)。在一個實施例中,通過電源線介質(zhì),該網(wǎng)絡(luò)協(xié)議被用來提供數(shù)字PBX型功能和/或數(shù)字內(nèi)部通信功能。在家里已有的電源線上,該網(wǎng)絡(luò)協(xié)議可以被用來擴展寬帶數(shù)字聯(lián)網(wǎng)服務(wù)(如DSL、電纜、ISDN等)遍及家里。該網(wǎng)絡(luò)協(xié)議可以同時處理和管理三種或多種聯(lián)網(wǎng)業(yè)務(wù)控制業(yè)務(wù);數(shù)據(jù)業(yè)務(wù);以及流式數(shù)據(jù)業(yè)務(wù)(流多媒體數(shù)據(jù))。該網(wǎng)絡(luò)協(xié)議提供區(qū)分優(yōu)先權(quán)方案,以根據(jù)一個給定的節(jié)點的聯(lián)網(wǎng)需求(如一個為語音設(shè)備決定的需求),允許有保證的訪問時間。PLXOSI模型圖2中示出的OSI上面的五層203-207中的每一層,都給網(wǎng)絡(luò)應(yīng)用增加了有效的開銷。如圖3所示,PLX使用被稱為公共應(yīng)用語言(CAL)的一個相對小的應(yīng)用層607,和一個相對小的傳送/網(wǎng)絡(luò)層603,來補充下邊的數(shù)據(jù)鏈路層602和物理層601。601-603和607中的每一層,都被典型地表示在PLX順從性節(jié)點中。如圖3所示,PLX數(shù)據(jù)聯(lián)網(wǎng)節(jié)點(智能節(jié)點),也可以包括在應(yīng)用層207、網(wǎng)絡(luò)層203和傳送層204中的傳統(tǒng)的OSI網(wǎng)絡(luò)性能(如TCP/IP,IPX,Windows,NetWare,等)。PLX順從性節(jié)點典型地包含數(shù)量減少的控制信息,該控制信息僅使用PLX堆棧的在PLX節(jié)點之間傳遞,如包含在601-603和607層中的。PLX物理層PLX物理層601處理與網(wǎng)絡(luò)硬件、網(wǎng)絡(luò)電纜,并且典型地,包括實際的硬件本身相接口的硬件細節(jié)。PLX物理層包括諸如調(diào)制技術(shù)、使用的頻率、輸出功率等屬性。在一個實施例中,PLX使用如下所述的數(shù)字電源線(DPL)技術(shù)。PLX數(shù)據(jù)鏈路層PLX數(shù)據(jù)鏈路層602處理與介質(zhì)100接口的細節(jié),如尋址能力、介質(zhì)仲裁計劃、間隙之間的間隔、退出算法等。數(shù)據(jù)鏈路層602典型地包括一個報頭,其中包括源/目的地址、長度和錯誤檢測/校正數(shù)據(jù),如循環(huán)冗余校驗(CRC)或校驗和數(shù)據(jù)。PLX網(wǎng)絡(luò)層網(wǎng)絡(luò)/傳送層603,有時被稱為網(wǎng)間網(wǎng)層,負責(zé)為數(shù)據(jù)包在網(wǎng)絡(luò)上由一個地點到另一個地點進行路由。在PLX內(nèi),網(wǎng)絡(luò)層603典型地處理使用在一個MAC報頭字段中的系統(tǒng)、單個節(jié)點、套接字、和網(wǎng)絡(luò)地址字段。PLX傳送層PLX網(wǎng)絡(luò)/傳送層603,為駐留在其上面的應(yīng)用層607,提供在兩個主機之間的一個數(shù)據(jù)流。傳送層603也包括序列號和/或請求/應(yīng)答型的確認信息。與OSI傳送層203相比,在PLX中,傳送層603被減小規(guī)模并連成一個整體,來允許控制應(yīng)用。傳送層603提供請求/應(yīng)答信號交換算法、重傳算法、超時算法等。PLX幾乎完全在一個MAC報頭的控制字段中,實施網(wǎng)絡(luò)/傳送層603。PLX應(yīng)用層PLX應(yīng)用層607處理應(yīng)用的細節(jié),并且根據(jù)正在使用的是何種傳輸,PLX應(yīng)用層607可以使用信號交換協(xié)議和/或請求/應(yīng)答協(xié)議來確保包的發(fā)送。在OSI各層的協(xié)議中存在大量的重復(fù)字段。這種重復(fù)轉(zhuǎn)換為更多的開銷,使用更多的空間,并且需要附加的處理能力。在PLX協(xié)議中,許多OSI字段并不需要而被典型地省略掉。包括在不同的OSI協(xié)議中的不同的元件的檢測,顯示出數(shù)據(jù)鏈路層602在沒有上面三層時,可以作許多過濾。這種過濾是有益的,因為數(shù)據(jù)鏈路層602經(jīng)常典型地被限制在也負責(zé)硬件問題的硬件邏輯中,如多個節(jié)點為相同的通信信道競爭(如多個網(wǎng)卡為相同的網(wǎng)絡(luò)連線競爭)。在一個實施例中,一個特定的網(wǎng)絡(luò)節(jié)點的網(wǎng)絡(luò)硬件,過濾除了目的地為該特定的網(wǎng)絡(luò)節(jié)點的數(shù)據(jù)包以外的所有的東西。在這樣的一個系統(tǒng)下,節(jié)點僅需要對一個數(shù)據(jù)包的數(shù)據(jù)部分進行語法分析。用于DPL的兩個協(xié)議PLX優(yōu)先地定義了兩個協(xié)議用于數(shù)字電源線(DPL);一個低級協(xié)議和一個高級協(xié)議。低級協(xié)議定義。該低級協(xié)議提供了數(shù)據(jù)鏈路層602的一個限定,并限定了如何從相同的介質(zhì)100,以相對較少的聯(lián)網(wǎng)和傳送功能進行包的過濾、發(fā)送和接收。高級協(xié)議定義。PLX節(jié)點包含數(shù)量減少的控制信息。每一個PLX節(jié)點使用一個通用的應(yīng)用層607來控制特殊的節(jié)點屬性。這允PLX系統(tǒng)可以具有不管節(jié)點類型的特征。在硬件報頭被分離出來后,應(yīng)用層607譯碼或分析控制信息。物理層數(shù)字電源線(DPL)技術(shù)規(guī)格PLX協(xié)議是一個多用途的協(xié)議,該協(xié)議可以與許多種類型的網(wǎng)絡(luò)介質(zhì)(如數(shù)據(jù)傳輸系統(tǒng))一起使用,網(wǎng)絡(luò)介質(zhì)包括光傳輸、光纖傳輸、射頻傳輸系統(tǒng)、雙絞線傳輸系統(tǒng)、同軸電纜傳輸系統(tǒng)、衛(wèi)星傳輸系統(tǒng)、數(shù)字電源線(DPL)系統(tǒng)等。DPL系統(tǒng),也稱為電源線載波系統(tǒng),使用電力供給連線(如建筑物中的110伏特交流(VAC)電路)來承載數(shù)字數(shù)據(jù)。在一個實施例中,PLX協(xié)議被用于具有DPL的連接中,該DPL具有一個單個的低速率信道(350-1000kbps)、約為5.6MHz的低速載頻、約為80dB或更好的動態(tài)范圍、低的帶寬使用率(依賴于速率,但約為1MHz)。在一個實施例中,PLX協(xié)議被用于具有DPL的連接中,該DPL具有多個速率信道(共4-8mbps)、直至30MHz或更高的高速載頻、和約為80dB或更好的動態(tài)范圍。在一個典型的DPL系統(tǒng)上,在數(shù)據(jù)之前的傳輸載波被典型地允許為至少20微秒,并且直到接收器檢測不到載波為止,發(fā)送器停止發(fā)送之間的時間可以為15微秒或更長。低級協(xié)議層PLX技術(shù)規(guī)格從簡單的控制到復(fù)雜的數(shù)據(jù)流網(wǎng)絡(luò),該PLX協(xié)議大小可調(diào)。在一個實施例中,該PLX協(xié)議被適配為可以權(quán)衡GenericCAI技術(shù)規(guī)格的大部分特征。在EIA-600中定義的CEBus,是用來控制總線設(shè)備的一種工業(yè)標準控制語言。EIA-600為用在家庭中的LAN中的通用應(yīng)用語言提供了一個框架。GenericCAI在EIA-721系列標準(包括EIA-721.1、EIA-721.2、EIA-721.3和EIA-721.4)中定義。CEBus工業(yè)委員會(CIC)定義了一個家用的即插即用(HPP)技術(shù)規(guī)格,通過為使用該語言定義“語法”規(guī)則,該技術(shù)規(guī)格具體化了該框架。該HPP技術(shù)規(guī)格細節(jié)化了家庭中的產(chǎn)品和系統(tǒng)的一組行為特征,這將允許它們基于家庭的狀態(tài)采取行動。例如,該技術(shù)規(guī)格區(qū)分了家庭中的不同條件,如“居住者不在”或“居住者在家并在睡覺”,來允許家庭系統(tǒng)采取適當?shù)男袆?,如啟動安全系統(tǒng)、關(guān)掉內(nèi)部電燈,或設(shè)置溫度。HPP技術(shù)規(guī)格也包括為開發(fā)基于Windows′95PC的家庭控制應(yīng)用的信息。在EIA-600中定義的通用應(yīng)用語言,為不同工業(yè)部門(如娛樂、計算機、加熱/制冷、廚房用具等)生產(chǎn)的家庭中LAN產(chǎn)品之間的通信提供了一個框架。每個工業(yè)部門定義它的產(chǎn)品所使用語言的“應(yīng)用環(huán)境”(如語法規(guī)則)。CIC作為支持組織被創(chuàng)立,該組織幫助不同的工業(yè)部門開發(fā)“協(xié)調(diào)的”應(yīng)用環(huán)境。對于那些追求具有基于可互操作的產(chǎn)品的CAL的家庭LAN市場的工業(yè)部門,CIC的HPP是協(xié)調(diào)的應(yīng)用環(huán)境的綱要。CEBus/GenericCAL技術(shù)規(guī)格在此全部插入作為參考。介質(zhì)訪問概述PLX可以是具有中心控制的令牌傳遞計劃或DSMA/CTP的數(shù)據(jù)報檢測多訪問協(xié)議的特征。因為多個對等體被允許訪問相同的物理介質(zhì)100,PLX提出了為每個節(jié)點把數(shù)據(jù)放到介質(zhì)100上時,使用的一組通用的規(guī)則。PLX從不同數(shù)量的協(xié)議集成了幾個特征,來創(chuàng)建一個單獨的、高效的、確定性的環(huán)境。PLX提供數(shù)據(jù)報檢測。每個PLX節(jié)點可以檢測介質(zhì)100的業(yè)務(wù)量,如果介質(zhì)100目前靜止時,指定它自己。通過一個有組織的令牌傳遞型機制避免沖突。PLX包括為處理到介質(zhì)的訪問而選擇一個單獨的、中心的仲裁節(jié)點的方法。該中心節(jié)點(活動的服務(wù)器)負責(zé)確保在一個活動的系統(tǒng)上有一個令牌。PLX使用選擇性的動態(tài)輪詢來提供設(shè)計的簡化、實施的簡易性、無沖突的訪問、系統(tǒng)的接收和隨后釋放令牌、和用于數(shù)據(jù)的可靠傳遞(請求/應(yīng)答)的一個確認序列。當節(jié)點是“未激活”時,PLX提供維持“靜止的”介質(zhì)100的能力。典型地,在PLX中,只有“激活的”節(jié)點在介質(zhì)100上通信。為即插即用功能,PLX也提供一個全球?qū)ぶ酚媱?,和隔離多節(jié)點爭用介質(zhì)100的一種算法。PLX也為流應(yīng)用提供時間確定機制、或確保的時隙,和為快速回轉(zhuǎn)時隙(times)而提供減少的單元長度(包長度)。PLX提供多速率支持、熱交換、確認(athentication)和安全、控制和管理包。此外,在高層協(xié)議中,PLX提供許多控制聯(lián)網(wǎng)的功能。結(jié)果,通過應(yīng)用許多不同拓撲的先進功能,介質(zhì)訪問的方法被高度地優(yōu)化。介質(zhì)訪問方法介質(zhì)訪問方法列出了用于獲取對介質(zhì)100的訪問的規(guī)則。PLX獲取對介質(zhì)100的訪問的方法典型地包括三步;1.數(shù)據(jù)報檢測或“偵聽”;2.在總線上發(fā)信號(spitting);和3.中心控制的令牌傳遞。根據(jù)在系統(tǒng)上出現(xiàn)的令牌,節(jié)點具有作為活動的網(wǎng)絡(luò)服務(wù)器節(jié)點或作為一個客戶節(jié)點的特征。在一個PLX系統(tǒng)上,對介質(zhì)100的起始訪問是通過偵聽活動來完成,然后自我指定為活動的網(wǎng)絡(luò)服務(wù)器,最后是活動的網(wǎng)絡(luò)服務(wù)器的系統(tǒng)的中心控制的令牌傳遞。圖5是展示介質(zhì)訪問算法的一個流程圖,PLX用該算法來仲裁哪個節(jié)點被允許在介質(zhì)100上“通話”。圖5中的流程圖由一個加電和通告過程框801開始,其中每個節(jié)點在加電后,通告它在介質(zhì)100上的出現(xiàn)。通告完成后,過程前進到一個判定框802。該節(jié)點(空閑的)在判定框802處循環(huán),直到接收到一個傳輸(Tx)準備好的命令,據(jù)此,過程前進到一個判定框803。如果在判定框803中,節(jié)點不在排隊卡上或者節(jié)點是活動的服務(wù)器,過程前進到一個數(shù)據(jù)報判定框804;否則,過程前進到一個判定框816。在判定框816中,如果該節(jié)點接收到令牌,那么過程前進到一個傳輸包框814;否則,過程前進到一個超時(timeout)判定框810。在判定框810中,如果未發(fā)生超時,則過程返回到判定框816;否則,過程前進到數(shù)據(jù)報檢測框804。在傳輸包框814中,過程傳送一個傳輸包并前進到一個輪詢框815。在輪詢框815中,活動的網(wǎng)絡(luò)服務(wù)器輪詢激活的節(jié)點,如與圖7相關(guān)的描述的那樣,或者返回,如果節(jié)點是客戶。完成輪詢框815后,過程前進到一個判定框802。在數(shù)據(jù)報檢測框804中,節(jié)點偵聽介質(zhì)一段特定的時間,然后前進到一個判定框805。在過程框804的偵聽階段中,如果介質(zhì)醒來,則過程前進到一個LIP請求判定框806;否則,過程前進到過程框812。在過程框812中,節(jié)點發(fā)送一個“喚醒”包,并前進到一個判定框814。在判定框814中,如果已經(jīng)發(fā)送了三個喚醒包而未得到響應(yīng),則過程前進到一個自我指定框813;否則,過程返回到數(shù)據(jù)報檢測框804。在自我指定框813中,節(jié)點指定自己作為活動的服務(wù)器節(jié)點,并且過程前進到傳輸包框814。在LIP請求判定框806中,過程檢測LIP請求的出現(xiàn)。如果沒有LIP請求出現(xiàn),過程前進到一個超時判定框809,否則,過程前進到一個過程框807。在超時判定框809中,過程檢測來看一個特定包的時效期間是否已經(jīng)過去。如果該期間已經(jīng)過去,則過程返回到判定框802;否則,過程返回到LIP請求判定框806。在過程框807中,節(jié)點在總線上發(fā)信號(spit)然后前進到一個判定框808。在判定框808中,過程檢測來看該節(jié)點是否已經(jīng)被選中(draft)。如果節(jié)點被選中(draft),則過程返回到接收令牌判定框816;否則,過程返回到LIP請求判定框806???02、803、810和814-816,是中心控制的令牌傳遞算法的部分。框804、805和811-813,是數(shù)據(jù)報檢測(偵聽)算法的部分。框806-809是在總線上發(fā)信號(spitting)算法的部分。如圖5所示,開始的訪問介質(zhì)100是根據(jù)介質(zhì)是“睡眠的”或“醒來的”,通過兩種不同的方法之一來完成。如果介質(zhì)是睡眠的,一個期望訪問的節(jié)點將自我指定為活動的網(wǎng)絡(luò)服務(wù)器。如果介質(zhì)100是激活的(也就是說,正在被一個活動的網(wǎng)絡(luò)服務(wù)器使用),則一個期望訪問的客戶節(jié)點將向該活動的網(wǎng)絡(luò)服務(wù)器請求訪問。該活動的網(wǎng)絡(luò)服務(wù)器維持一個發(fā)出訪問請求的客戶節(jié)點排隊卡。通過被稱為“在總線上發(fā)信號(spitting)”的一個過程,一個客戶節(jié)點請求被放到排隊卡上。典型地任何具有服務(wù)器性能的節(jié)點,都可以指定自己作為活動的網(wǎng)絡(luò)服務(wù)器,但是,在一個給定的節(jié)點中,并不要求包括服務(wù)器性能的特性。一旦一個活動的網(wǎng)絡(luò)服務(wù)器被選定,它必須能夠建立并維持包括一個要被輪詢的激活的節(jié)點列表的一個“排隊卡”。當所有激活的節(jié)點變?yōu)殪o止后(通過一個老化過程),活動的網(wǎng)絡(luò)服務(wù)器釋放作為活動的服務(wù)器的當前狀態(tài),并且介質(zhì)100再次變?yōu)殪o止的(睡著的)。典型地,活動的網(wǎng)絡(luò)服務(wù)器是被一個要在介質(zhì)100上傳輸?shù)墓?jié)點自我指定的。當一個節(jié)點沉默一段時間后,該激活的節(jié)點被從排隊卡上移去。當一個具有較高優(yōu)先權(quán)數(shù)據(jù)的節(jié)點需要訪問排隊卡時,激活的節(jié)點也將被從排隊卡上移去。排隊卡典型地有一個最大的時隙(slots)數(shù)量。換句話說,排隊卡有一個最大的可以進入排隊卡的節(jié)點數(shù)量。時隙(slots)數(shù)量一般由在介質(zhì)100上可用的帶寬和不同的節(jié)點所需的帶寬決定。如果N是排隊卡中時隙的最大數(shù)量,t是一個特定的節(jié)點可以保持令牌的最長時間(以毫秒計),那么每個激活的節(jié)點至少約每隔N*t毫秒獲得一次令牌。因此,排隊卡提供決定機制,在此機制中一個激活的節(jié)點將在一個規(guī)則的、可預(yù)測的基礎(chǔ)上得到輪詢。例如,流式視頻數(shù)據(jù)具有比流式音頻數(shù)據(jù)更高的優(yōu)先權(quán)。因此,如果N個流式視頻節(jié)點已經(jīng)進入到排隊卡上,一個流式音頻節(jié)點請求進入到排隊卡上將被拒絕。但是,當該流式音頻節(jié)點每次請求進入到排隊卡上時,將被發(fā)給令牌。這說明了排隊卡的一個屬性。列在排隊卡上的節(jié)點將被自動輪詢,因此將在一個規(guī)則的基礎(chǔ)上獲得令牌而不必請求令牌。未列在排隊卡上的節(jié)點,只有在請求令牌后或一個請求被放到排隊卡上后,才收到令牌。一個特定的節(jié)點提供的數(shù)據(jù)的優(yōu)先權(quán),決定于與在如下所述的節(jié)點文件夾目標中共同描述的網(wǎng)絡(luò)級別字段。對于一個特定的節(jié)點的網(wǎng)絡(luò)級別,也可以在該節(jié)點地址(設(shè)備類型字段)的最高四位中找到。節(jié)點信號標志每個PLX節(jié)點管理兩個本地信號標志,這些信號標志反應(yīng)系統(tǒng)當前的狀態(tài)和在系統(tǒng)中節(jié)點的涉及。這些信號標志幫助節(jié)點決定是否需要開始偵聽過程。典型地,節(jié)點管理這兩個信號標志,因為它們被用來獲得到介質(zhì)100的訪問(當節(jié)點要傳輸時)。第一個信號標志反映“系統(tǒng)狀態(tài)”。系統(tǒng)的狀態(tài)是“正在使用(awake)”或“靜止(asleep)”,這決定于介質(zhì)100是否處于激活的狀態(tài)(如,在介質(zhì)100上檢測到包)。第二個信號標志被稱為“本地節(jié)點狀態(tài)”。該本地節(jié)點狀態(tài)反映一個節(jié)點的三個可能的狀態(tài)之一,如下(1)該節(jié)點是一個活動的網(wǎng)絡(luò)服務(wù)器節(jié)點;(2)該節(jié)點是一個激活的客戶節(jié)點,或(3)該節(jié)點是一個未激活的客戶節(jié)點。本地節(jié)點狀態(tài)說明一個節(jié)點是否應(yīng)開始偵聽算法,該節(jié)點是否目前在排隊卡上(正在被輪詢),或該節(jié)點目前是活動的服務(wù)器?!跋到y(tǒng)狀態(tài)”信號標志每個節(jié)點對系統(tǒng)是否正在使用或處于靜止得出各自的結(jié)論。這個結(jié)論是基于排隊插入請求包(LIP)在介質(zhì)100上的出現(xiàn)。當一個節(jié)點檢測到一個LIP包時,系統(tǒng)狀態(tài)信號標志變?yōu)檎谑褂谩H绻?jīng)過一段時間后,LIP包未被檢測到,該節(jié)點把系統(tǒng)狀態(tài)切換為靜止。這含義是,如果一個活動的網(wǎng)絡(luò)服務(wù)器存在,它應(yīng)該不時地發(fā)送LIP包來使客戶節(jié)點保持于正在使用狀態(tài)。一個節(jié)點使用這個信號標志來決定是否它必須偵聽介質(zhì)100。只有當系統(tǒng)狀態(tài)為靜止時,節(jié)點才需要通過一個偵聽過程來爭用介質(zhì)100?!氨镜毓?jié)點狀態(tài)”信號標志在一個客戶節(jié)點的最后傳輸后,活動的網(wǎng)絡(luò)服務(wù)器,將持續(xù)一至十秒,分配令牌(輪詢)到目前在它的排隊卡上的這個客戶節(jié)點。在此時,活動的網(wǎng)絡(luò)服務(wù)器確定該節(jié)點完成了傳輸,并使該節(jié)點“老化”,從排隊卡上去掉??蛻艄?jié)點必須能夠檢測這個。當客戶節(jié)點正在接收到令牌時,它被認為是激活的。當客戶節(jié)點目前沒有接收到令牌,它被認為是未激活的。只有當通過一個稱為“在總線上發(fā)信號(spitting)”的處理過程,被活動的網(wǎng)絡(luò)服務(wù)器插入到排隊卡中后,一個未激活的客戶才能在介質(zhì)100上傳輸。下表A1列出了可能的節(jié)點信號標志狀態(tài),和對于在介質(zhì)上傳輸來說每個狀態(tài)的含義。<tablesid="table1"num="001"><table>系統(tǒng)狀態(tài)節(jié)點狀態(tài)下一步傳輸行動正在工作激活的在排隊卡上等待令牌正在工作未激活的不在排隊卡上在總線上發(fā)信號(Spit)靜止激活的不良狀態(tài)偵聽,然后指定作為服務(wù)器靜止未激活的偵聽,然后指定作為服務(wù)器</table></tables>表A1.有一個準備好的新的傳輸?shù)墓?jié)點的下一步行動數(shù)據(jù)報檢測或“偵聽”上文所討論的系統(tǒng)狀態(tài)信號標志,是決定一個節(jié)點是否開始偵聽的主要因素。它也是決定節(jié)點是否應(yīng)把自己指定為活動的網(wǎng)絡(luò)服務(wù)器,或是否接受作為一個客戶的順從角色的主要因素。典型地,偵聽只在開始在一個靜止的系統(tǒng)上傳輸前執(zhí)行。如果有任何節(jié)點在介質(zhì)100上傳輸,則一個活動的網(wǎng)絡(luò)服務(wù)器早已被選定來發(fā)送LIP包和仲裁令牌的分配,并且系統(tǒng)正在使用中。如果系統(tǒng)正在使用,節(jié)點應(yīng)作為一個客戶。當一個節(jié)點確定它有一個包準備好發(fā)送到介質(zhì)100上,并且系統(tǒng)狀態(tài)信號標志是靜止,該節(jié)點執(zhí)行一個偵聽過程來決定它的下一步,并在這個起始過程中把沖突減到最小。這應(yīng)是在PLX網(wǎng)絡(luò)上,兩個節(jié)點可能為介質(zhì)100競爭的僅有的期間,并且會發(fā)生可能的未知沖突。因而,提供了一個加強的補償算法。有兩個在偵聽中尋址的可能的情況(1)節(jié)點剛加電并需要傳輸它的“通告”或“CAL-ping”包,來宣布它加入到當前系統(tǒng);或(2)節(jié)點是未激活的并正在嘗試喚醒系統(tǒng)。在其中任一情況,如果一個服務(wù)器在偵聽時被檢測到,該節(jié)點應(yīng)立即開始查找一個LIP包。一個LIP包將允許該節(jié)點插入到活動的網(wǎng)絡(luò)服務(wù)器的排隊卡上,并進行隨后的令牌傳遞和節(jié)點傳輸。開始“偵聽/連接測試程序(Ping)”通告一旦一個節(jié)點加電,則通過發(fā)送一個廣播CAL-ping包,該節(jié)點通告其在系統(tǒng)中的出現(xiàn)。通過“推進”信息而不是總是嘗試去“取出”信息,這樣使得自動發(fā)現(xiàn)機制更加強大。因為剛剛加電的節(jié)點,沒有關(guān)于系統(tǒng)的歷史記錄,與一個普通的喚醒過程相比,它的偵聽算法稍有不同。在廣播一個CAL-ping包之前,初始的偵聽可能持續(xù)800ms。這是通過對業(yè)務(wù)實際偵聽一段限定的時間,然后在那段時間內(nèi)隨機地傳送一個廣播喚醒包三次,如果該節(jié)點存在,允許優(yōu)選的服務(wù)器輪詢這個節(jié)點。這個序列重復(fù)三次,在每次結(jié)束時,廣播一個CAL-ping包到所有節(jié)點,表明已成功地進入到系統(tǒng)上。偵聽/連接測試程序(Ping)過程的這個序列由偽代碼給出如下1)a)偵聽介質(zhì)100,持續(xù)一個小于125ms的隨機數(shù)量的時間長度(查找一個LIP包)。b)發(fā)送一個廣播喚醒包三次,其中間隔600μs間隙空間。c)繼續(xù)偵聽,以完成一整個125ms的時間段。2)a)偵聽介質(zhì)100,持續(xù)一個小于125ms的隨機數(shù)量的時間長度(查找一個LIP包)。b)發(fā)送一個廣播喚醒包三次,其中間隔600μs間隙空間。c)繼續(xù)偵聽,以完成一整個125ms的時間段。3)a)“偵聽”介質(zhì)100,持續(xù)一個小于125ms的隨機數(shù)量的時間長度(查找一個LIP包)。b)發(fā)送一個廣播喚醒包三次,其中間隔600μs間隙空間。c)繼續(xù)“偵聽”,以完成一整個125ms的時間段。4)指定作為活動的網(wǎng)絡(luò)服務(wù)器,并且發(fā)送一個“CAL-ping”包來表明出現(xiàn)。5)取消指定作為活動的網(wǎng)絡(luò)服務(wù)器。以上偵聽/連接測試程序(ping)過程在節(jié)點加電后立即發(fā)生,因此這個過程所用的執(zhí)行時間一般并非很長。如下所述,運行時的喚醒過程,經(jīng)常被執(zhí)行,因此理想地具有一個短的執(zhí)行時間。運行時“偵聽/喚醒”序列一旦一個節(jié)點加電后并在系統(tǒng)上通告它的出現(xiàn),該節(jié)點開始工作在一種運行時模式中。在該節(jié)點運行時模式工作中,如果一個節(jié)點需要傳輸一個包到一個靜止的系統(tǒng)上,它經(jīng)過一個相似的事件序列,來嘗試并喚醒一個優(yōu)選的服務(wù)器。如果優(yōu)選的服務(wù)器不存在,并且沒有活動的網(wǎng)絡(luò)服務(wù)器存在,那么該節(jié)點指定它自己作為活動的網(wǎng)絡(luò)服務(wù)器,并開始輪詢客戶節(jié)點。為偵聽/喚醒算法的一個偽代碼列表給出如下。在如下給出的算法之外,為了更快的響應(yīng)時間,節(jié)點也可以選擇性地監(jiān)視介質(zhì)100并使用本地節(jié)點信號標志來反映系統(tǒng)的狀態(tài)。該本地節(jié)點信號標志與喚醒包一起使用來進一步減少與這個過程相關(guān)的等待時間。1)a)偵聽介質(zhì)100,持續(xù)一個小于125ms的隨機數(shù)量的時間長度(查找一個LIP包)。b)發(fā)送一個廣播喚醒包三次,其中間隔600μs間隙空間。c)繼續(xù)“偵聽”,以完成一整個125ms的時間段。2)a)偵聽介質(zhì)100,持續(xù)一個小于125ms的隨機數(shù)量的時間長度(查找一個LIP包)。b)發(fā)送一個廣播喚醒包三次,其中間隔600μs間隙空間。c)繼續(xù)偵聽,以完成一整個125ms的時間段。3)a)偵聽介質(zhì)100,持續(xù)一個小于125ms的隨機數(shù)量的時間長度(查找一個LIP包)。b)發(fā)送一個廣播喚醒包三次,其中間隔600μs間隙空間。c)繼續(xù)偵聽,以完成一整個125ms的時間段。4)指定作為活動的網(wǎng)絡(luò)服務(wù)器,并且發(fā)送一個“CAL-ping”包來表明出現(xiàn)。5)取消指定作為活動的網(wǎng)絡(luò)服務(wù)器。在總線上發(fā)信號(Spitting)當系統(tǒng)上的一個節(jié)點有一個包準備好要發(fā)送,并且系統(tǒng)處于工作狀態(tài)(一個活動的網(wǎng)絡(luò)服務(wù)器存在并正在分配令牌)時,“發(fā)信號(spitting)”過程發(fā)生。該活動的網(wǎng)絡(luò)服務(wù)器是被授權(quán)來允許在介質(zhì)100上訪問的唯一節(jié)點。該活動的網(wǎng)絡(luò)服務(wù)器的排隊卡是一個機制,通過這個機制,未激活的客戶節(jié)點可以獲得到介質(zhì)100的訪問。各節(jié)點發(fā)信號(spit)來進入活動的網(wǎng)絡(luò)服務(wù)器的排隊卡。在典型的運行時工作期間,網(wǎng)絡(luò)將呈現(xiàn)兩種狀態(tài)之一靜止狀態(tài)或工作狀態(tài)。根據(jù)網(wǎng)絡(luò)當前的狀態(tài),發(fā)信號(spitting)過程稍有不同。靜止和工作狀態(tài)當活動的網(wǎng)絡(luò)服務(wù)器確定沒有節(jié)點目前需要服務(wù)(發(fā)送包),網(wǎng)絡(luò)進入靜止狀態(tài),并且作為結(jié)果,停止傳送令牌。使網(wǎng)絡(luò)停止活動之前,在一個特定的時間內(nèi),活動的網(wǎng)絡(luò)服務(wù)器發(fā)送一系列掩碼組LIP(LIPG)請求包。如果LIPG請求包序列沒有得到來自任何客戶節(jié)點的響應(yīng),活動的網(wǎng)絡(luò)服務(wù)器變?yōu)槲醇せ顮顟B(tài),并且網(wǎng)絡(luò)變?yōu)殪o止狀態(tài)。請求傳輸?shù)墓?jié)點到網(wǎng)絡(luò)上的后續(xù)進入,隨后通過上文所述的通常的爭用處理、偵聽算法來完成。工作狀態(tài)象征特定網(wǎng)絡(luò)上的節(jié)點,這些節(jié)點正在與一個或多個遠端節(jié)點交換信息。在工作狀態(tài),介質(zhì)訪問由活動的網(wǎng)絡(luò)服務(wù)器和它的排隊卡控制。通過使用為目前在排隊卡上的節(jié)點的一個令牌傳遞計劃,和通過為嘗試進入到排隊卡上的節(jié)點的發(fā)信號(spitting),減少了沖突?!霸诳偩€上發(fā)信號(spitting)”序列在總線上發(fā)信號(spitting)的序列允許活動的網(wǎng)絡(luò)服務(wù)器周期性地發(fā)送一個LIPG包。靜止的客戶節(jié)點被允許響應(yīng)LIPG包。一旦發(fā)現(xiàn)一個響應(yīng),該活動的網(wǎng)絡(luò)服務(wù)器發(fā)送一個未掩碼的LIPD請求到所有的節(jié)點,希望得到帶有需要令牌的節(jié)點的地址的一個單獨響應(yīng)。如果多于一個節(jié)點競爭令牌,將見不到響應(yīng),并且活動的網(wǎng)絡(luò)服務(wù)器進入一個節(jié)點隔離序列。圖6A和6B分別說明了一個活動的網(wǎng)絡(luò)服務(wù)器和客戶節(jié)點在總線上發(fā)信號(spitting)的過程。在圖6A中,一個活動的網(wǎng)絡(luò)服務(wù)器在總線上發(fā)信號(spitting)的過程,始于起始框901,此時開始一個節(jié)點變?yōu)榛顒拥木W(wǎng)絡(luò)服務(wù)器。該過程由起始框901前進到一個輪詢框902。在輪詢框902中,活動的網(wǎng)絡(luò)服務(wù)器輪詢當前在排隊卡上的所有節(jié)點。一旦輪詢結(jié)束,該過程前進到發(fā)送框903。在發(fā)送框903中,活動的服務(wù)器發(fā)送一個未掩碼的LIP請求,然后前進到一個判定框904。在判定框904中活動的服務(wù)器檢測LoGI響應(yīng)。如果收到一個LoGI響應(yīng),則過程前進到一個過程框905;否則,該過程返回到輪詢框902。在過程框905中,該活動的網(wǎng)絡(luò)服務(wù)器發(fā)送一個未掩碼的LIPD請求,然后前進到一個判定框906。在判定框906中,活動的服務(wù)器檢測一個直接ACK(DACK)響應(yīng)。如果一個單獨的DACK響應(yīng)被接收到,則該過程前進到一個過程框907。如果多個DACK響應(yīng)被接收到,或者如果沒有接收到DACK響應(yīng),則該過程前進到一個節(jié)點隔離框910。在過程框907中,發(fā)送DACK響應(yīng)的客戶節(jié)點被加到排隊卡上,然后過程返回到輪詢框902。在過程框910(開始節(jié)點隔離算法)中,過程初始化一個LIPG掩碼,并前進到一個過程框911。在過程框911中,該掩碼被更新(如在掩碼中的一個下一位被切換),并且過程前進到一個發(fā)送框912。在發(fā)送框912中,一個掩碼的LIPG請求被發(fā)送,并且過程前進到一個判定框913。在判定框913中,過程檢測一個LoGI響應(yīng)。如果一個LoGI響應(yīng)被接收到,過程前進到一個判定框915,否則,過程前進到一個過程框914。在過程框914中,在過程框911中最近被切換的掩碼位,被恢復(fù)到切換前的值,并且過程前進到一個判定框915。在判定框915中,如果掩碼中所有的位已經(jīng)被切換,過程前進到一個過程框916,否則,過程返回到過程框911。在過程框916中,活動的網(wǎng)絡(luò)服務(wù)器發(fā)送一個掩碼的LIPG請求,并前進到一個判定框917。在判定框917中,如果一個DACK響應(yīng)被接收到,則過程前進到一個過程框907;否則,過程返回到輪詢框902。過程框903-907是一個服務(wù)器發(fā)信號(spitting)起始的序列的部分。過程框910-917是一個服務(wù)器發(fā)信號(spitting)節(jié)點隔離序列的部分。圖6B是展示客戶發(fā)信號(spitting)算法的一個流程圖,在一個正在工作的網(wǎng)絡(luò)上的一個客戶,由一個開始框931開始。由開始框981,過程前進到一個判定框982,在此檢測發(fā)送狀態(tài)。如果該發(fā)送狀態(tài)是“已準備好”,則過程前進到一個判定框983;否則,過程前進到一個空閑框988(該空閑框返回到判定框982)。在判定框983中,如果節(jié)點已經(jīng)接收到系統(tǒng)令牌,則過程前進到一個發(fā)送框989;否則,過程前進到一個判定框984。在發(fā)送框989中,該節(jié)點發(fā)送一個數(shù)據(jù)包,然后過程返回到判定框982。在判定框984中,如果該節(jié)點接收到一個LIPD請求,則過程前進到一個過程框990;否則,過程前進到一個判定框986。在判定框986中,過程檢查超時或系統(tǒng)靜止狀態(tài)。如果過程檢測到超時和靜止,則過程前進到一個過程框987,在此當前的節(jié)點指定它自己作為活動的服務(wù)器。在過程框990中,由LIPD的掩碼與當前節(jié)點的節(jié)點地址相比較,并且過程前進到一個判定框991。在判定框991中,如果掩碼與該節(jié)點匹配,則過程前進到一個響應(yīng)框992;否則,過程返回到判定框982。在響應(yīng)框992中,該節(jié)點響應(yīng)網(wǎng)絡(luò)服務(wù)器(恰當?shù)貛в幸粋€LoGI或DACK),并且過程返回到判定框982。組LIP(LIPG)查詢當網(wǎng)絡(luò)正在工作時,活動的網(wǎng)絡(luò)服務(wù)器定時地廣播組LIP查詢。一個組LIP(LIPG)查詢,要求從任何數(shù)量的節(jié)點的一個邏輯的組隔離(LoGI)響應(yīng)。在一個無沖突的機制中的一個正在工作的網(wǎng)絡(luò)期間,這種機制給客戶節(jié)點一個機會來被插入到排隊卡上。LoGI包的優(yōu)點在于,多個節(jié)點可以同時發(fā)送這種包(假設(shè)它們在同一個時間段上),結(jié)果將是一個單獨的LoGI包。因此,由接收的節(jié)點看來,多個LoGI響應(yīng)結(jié)果是一個單獨的LoGI包。起始的LIP序列包是一個未掩碼的組LIP(LIPG)查詢,該未掩碼的組LIP(LIPG)查詢被發(fā)送來確定是否網(wǎng)絡(luò)上的任一節(jié)點要開始LIP序列以插入到排隊卡。如果發(fā)現(xiàn)一個LoGI響應(yīng),可能僅僅是一個單個的節(jié)點要插入,因此下一步發(fā)送一個未掩碼的直接的LIP(LIPG)包。如果未發(fā)現(xiàn)一個直接的響應(yīng),則發(fā)送帶有一個掩碼地址的作為組包的后續(xù)的LIPG包。這是一個艱巨而低效的隔離機制,用來隔離一個特定的節(jié)點以插入到排隊卡。這是通過系統(tǒng)地傳送一個位掩碼實現(xiàn)的,該位掩碼一次隔離遠端節(jié)點32位地址的一個單個的位。如果兩個或多個沖突的節(jié)點同時請求令牌,必須執(zhí)行這種隔離機制。直接的LIP(LIPD)查詢直接的LIP(LIPD)查詢被作為由一個LIPG查詢的一個LoGI響應(yīng)的結(jié)果發(fā)送。該LIPD查詢的目的是加速LIP過程,這通過發(fā)送一個未掩碼的LIPD請求到所有節(jié)點,希望只有一個單個的節(jié)點響應(yīng)(這應(yīng)是大部分時候的情況)。這個LIPD包由包括響應(yīng)節(jié)點的地址的一個普通的DACK響應(yīng)來響應(yīng)。如果是一個單個的節(jié)點響應(yīng),則響應(yīng)被發(fā)現(xiàn),并且該節(jié)點的地址被恰當?shù)丶尤氲脚抨牽ㄉ?。但是,如果LIPD請求未被發(fā)現(xiàn),(由于多個節(jié)點同時響應(yīng))則活動的網(wǎng)絡(luò)服務(wù)器繼續(xù)隔離,通過普通的隔離算法,使用LIPG包來只選擇競爭的節(jié)點中的一個,插入到“排隊卡”。因此,該LIPD包僅僅用來加速隔離過程,希望僅僅有一個單個的節(jié)點響應(yīng)請求。節(jié)點隔離序列如果一個節(jié)點響應(yīng)起始的LIPG,但是由于某種原因由LIPD查詢未發(fā)現(xiàn)一個單個的響應(yīng),則活動的網(wǎng)絡(luò)服務(wù)器自動地進入節(jié)點隔離。隔離序列使用要求一個LoGI響應(yīng)的LIPG包。這允許多個同時的響應(yīng)被活動的網(wǎng)絡(luò)服務(wù)器發(fā)現(xiàn)。通過發(fā)送帶有第一個地址(最低有效的)位組的一個包,“活動的網(wǎng)絡(luò)服務(wù)器”開始這個序列。當且僅當這個特定的地址位與它們自己的相匹配時,需要發(fā)送的節(jié)點響應(yīng)這個包。這一算法是一種簡單的“與”,隨后和原始的掩碼相比較。如果兩個值相匹配,則用一個LoGI響應(yīng)這個包。該活動的網(wǎng)絡(luò)服務(wù)器,然后發(fā)送具有未用的預(yù)先匹配的掩碼的下一個包,這個包帶有下一個位組。再次,當整個位序列匹配時,節(jié)點將響應(yīng)。如果沒有節(jié)點響應(yīng),活動的網(wǎng)絡(luò)服務(wù)器清除當前位,并重傳這個包。這個過程將繼續(xù)直到所有32位被識別并發(fā)現(xiàn)一個匹配。這時,單獨地被識別的節(jié)點被加到活動的網(wǎng)絡(luò)服務(wù)器的排隊卡。中心控制的令牌傳遞(輪詢)當系統(tǒng)正在工作時,希望給包括在排隊卡上的每個節(jié)點(通過發(fā)信號(spitting)過程)一個確定性的時隙,在此時隙中節(jié)點可以訪問介質(zhì)100。進一步還希望給每個節(jié)點相同的機會在繁忙的介質(zhì)100上發(fā)送。以太網(wǎng)缺乏上述的兩個優(yōu)點中的任何一個,而令牌環(huán)具有以上兩個優(yōu)點。令牌環(huán)具有一個缺點,它需要每個節(jié)點了解它的上行和下行鄰居的地址,并且需要一個令牌持續(xù)存在/循環(huán)。傳統(tǒng)的令牌環(huán)網(wǎng)絡(luò)的開銷需求,與PLX所關(guān)注的的啞節(jié)點不兼容。而且,一個電源線網(wǎng)絡(luò)的特別的聯(lián)網(wǎng)需求,也并非有益于這樣嚴格的令牌循環(huán)。因此PLX引入具有一個動態(tài)的排隊卡的中心控制的令牌傳遞(CTP)機制。在CTP中,活動的網(wǎng)絡(luò)服務(wù)器節(jié)點負責(zé)確保一個令牌存在、每個需要令牌的節(jié)點得到它、靜止的節(jié)點可以醒來并接收令牌、并且令牌被以一個確定性的方式公平地分配。在CTP下,活動的服務(wù)器以外的節(jié)點被作為客戶來引用。活動的網(wǎng)絡(luò)服務(wù)器的職責(zé),是通過前述的數(shù)據(jù)報檢測或偵聽過程,自我指定的。經(jīng)過一段預(yù)先確定的在介質(zhì)100上無活動的時間段后,活動的網(wǎng)絡(luò)服務(wù)器的職責(zé)被釋放。在一個實施例中,活動的服務(wù)器的職責(zé),經(jīng)過無活動的約5秒鐘后,被釋放。在系統(tǒng)活動中,該活動的網(wǎng)絡(luò)服務(wù)器負責(zé)輪詢在排隊卡中的每個客戶節(jié)點,也允許新節(jié)點有機會通過發(fā)信號(spitting)過程把它們自己插入到排隊卡中。圖7是展示網(wǎng)絡(luò)服務(wù)器輪詢算法的一個流程圖,由開始框1001開始,在此一個節(jié)點變?yōu)榛顒拥姆?wù)器。過程由開始框1001前進到一個判定框1002,在此過程確定發(fā)送一個周期性的LIP包的需求。如果需要一個LIP包,則過程前進到過程框1010,否則,過程前進到一個過程框1003。在過程框1010中,節(jié)點執(zhí)行與圖6A一起描述的活動的服務(wù)器發(fā)信號(spitting)過程。在完成過程框1010后,過程前進到過程框1003。在過程框1003中,過程獲得在排隊卡中的下一入口,并前進到一個判定框1004。在過程框1004中,如果排隊卡上的所有入口都已處理過(也就是,如果所有的客戶節(jié)點都已經(jīng)有一次機會講話),則過程前進到一個過程框1011;否則,過程前進到一個過程框1005。在過程框1011中,令牌被分給活動的服務(wù)器(因此允許活動的服務(wù)器講話),并且過程前進到過程框1005。在過程框1005中,令牌被發(fā)給從排隊卡上得到的下一個節(jié)點,并且過程前進到一個判定框1007。在判定框1007中,如果一個響應(yīng)超時發(fā)生,則過程前進到過程框1012;否則,過程前進到一個判定框1007。在判定框1007中,如果客戶節(jié)點沒有使用令牌,則過程前進到過程框1012。在過程框1012中,一個激活的節(jié)點的計數(shù)被減少,并且過程前進到判定框1008。在判定框1008中,如果所有的節(jié)點都是未激活的,則過程前進到一個過程框1009;否則,過程返回到判定框1002。在過程框1009中,活動的服務(wù)器回復(fù)為一個未激活的客戶節(jié)點。包的類型和格式一個PLX網(wǎng)絡(luò)上的包,可以根據(jù)包的目的使用不同的格式。不同的包的格式可以方便地分組為三個不同的類別。一種格式允許多個節(jié)點同時發(fā)送/接收相同的響應(yīng)包而沒有干擾或解調(diào)問題。這些包被稱為邏輯組隔離(LoGI)包,并且主要被用來廣播/重廣播和確認。其它兩種類型的包,被稱為原始數(shù)據(jù)有效負荷包和命令有效負荷包,當一個單個的節(jié)點在任何給定點在線上通信時使用這兩種包。一個原始數(shù)據(jù)有效負荷包,被一個需要發(fā)送/接收與它的應(yīng)用有關(guān)的信息的應(yīng)用使用。來自主節(jié)點的包是原始數(shù)據(jù)有效負荷包,任何CAL包也是原始數(shù)據(jù)有效負荷包。一個PLX命令有效負荷包被用來管理介質(zhì)訪問和流。PLX命令包在適配器的固件和硬件中產(chǎn)生和終結(jié),并且不被傳遞到主節(jié)點上。PLX命令包便于令牌、確認、排隊插入等的平滑流動,是所有的PLX網(wǎng)絡(luò)所固有的。邏輯組隔離(LoGI)響應(yīng)包當一個節(jié)點發(fā)出一個組請求(一個可能得到多個同時響應(yīng)的請求)到網(wǎng)絡(luò)上時,使用第一種形式。因為PLX希望是一個較少沖突的、或在一些情況下無沖突的環(huán)境,所以很難檢測到?jīng)_突。因此,同時響應(yīng)是可能的。如圖8所示的LoGI包1100,包括一個兩字節(jié)的NULL字段,跟著多個兩字節(jié)的全“1”字段,并由一個兩字節(jié)的NULL字段結(jié)束。在這種包中的數(shù)據(jù)是非常秘密的,但是它確實達到它的幫助分離組響應(yīng)到一個單個的節(jié)點的目的。一個掩碼的LIPG包一個在LoGI包之前。掩碼意味著多于一個節(jié)點可以與掩碼的地址匹配,因此,多個同時響應(yīng)可能發(fā)生。LIPG包在后文描述。通過加長一個特定包中的1序列,LoGI包也可以包含一些非常簡單化的數(shù)據(jù)。加長的包必須與一個時間位移一起使用,來標識不同類型的響應(yīng)。廣播包使用這種特性,來允許由一個或多個節(jié)點以同時的方式標識的一個忙的響應(yīng)。有效負荷包第二種形式被用來在網(wǎng)絡(luò)上承載一個有效負荷。這是用在網(wǎng)絡(luò)上的最普通的形式,并且是用于發(fā)送和接收有用的數(shù)據(jù)信息的有效的形式。有效負荷包使用另外的兩種形式,這兩種形式指明接收者的范圍以及它們期望收到何種形式的響應(yīng)。它們具有組尋址(典型的廣播包)和直接尋址的包類型。因為只期望一個單個的響應(yīng),所以組尋址的包只能接收LoGI響應(yīng)包,而直接尋址的包接收直接的ACK確認或DACK包。有效負荷包類型進一步細分為兩個不同的類型,這兩種不同的類型決定在包中有效負荷的使用。它們是原始數(shù)據(jù)包和PLX命令包。原始數(shù)據(jù)包圖9示出了一個原始數(shù)據(jù)包1200的格式,格式中包括一個前同步碼字段1201、一個長度字段1202、一個長度字段1203、一個控制字段1204、一個目標地址字段1205、一個源地址字段1206、一個序列字段1207、一個確認字段1208、一個DSK字段1209、一個SSK字段1210、一個有效負荷字段1211和一個CRC字段1212。原始數(shù)據(jù)包1200由一個活動的服務(wù)器節(jié)點或客戶節(jié)點發(fā)送。長度字段1202、長度字段1203、控制字段1204、目標地址字段1205、源地址字段1206、序列字段1207、然后為確認字段1208、DSK字段1209和SSK字段1210,是一個MAC報頭1215的組成部分。有效負荷字段1211包括要被一個適當?shù)挠行ж摵商幚砥鞣治龅膽?yīng)用層信息。主機PC和CAL譯碼器是有效負荷處理器的例子。在一個實施例中,原始數(shù)據(jù)包1200有一個三字節(jié)的前同步碼字段1201,一個13-15字節(jié)的MAC報頭1215、一個直至255字節(jié)的有效負荷部分1211和一個2字節(jié)的CRC1212。PLX(外部的)命令包通過為兩個節(jié)點通過簡短的包序列通信提供一個方法,PLX命令包被使用以便于數(shù)據(jù)流上下介質(zhì)100。關(guān)于PLX命令包的變化的描述如下令牌包一個PLX令牌包1300的格式如圖10所示,包括前同步碼字段1201、長度字段1202、長度字段1203、控制字段1204、目標地址字段1205和CRC字段1212。長度字段1202、長度字段1203和控制字段1204,分別具有0x05、0x05和0x17的(十六位進制)值。令牌包1300被發(fā)送到直接的地址節(jié)點,并請求有效負荷包的兩種中的一種。不需要留意的節(jié)點應(yīng)簡單地直接確認(DACK)(狀態(tài)字段設(shè)置為0x03),意思是它們沒有任何東西要表示并且將不使用該令牌??蛻艄?jié)點在正在工作的網(wǎng)絡(luò)上傳送之前,需要調(diào)用一個令牌(通過LIP過程)。只要一個客戶節(jié)點繼續(xù)使用令牌,活動的網(wǎng)絡(luò)服務(wù)器將繼續(xù)交給它令牌。但是,如果客戶節(jié)點重復(fù)地以一個“令牌未被使用”的響應(yīng)來回應(yīng),則活動的網(wǎng)絡(luò)服務(wù)器將使該節(jié)點老化并且該節(jié)點被從排隊中移去。一個令牌包包括通常的MAC報頭(減去一個源地址)和CRC,但是,數(shù)據(jù)字段未被使用(數(shù)據(jù)字段的長度為0)。令牌只能來自地址固定為0xfffffffe的“活動的網(wǎng)絡(luò)服務(wù)器”,因此不需要源地址字段。直接確認(DACK)包一個PLX令牌包1400的格式如圖11所示,包括前同步碼字段1201、長度字段1202、長度字段1203、控制字段1204、目標地址字段1205、一個狀態(tài)字段1401和CRC字段1212。長度字段1202、長度字段1203和控制字段1204,分別具有0x06、0x06和0x07的(十六位進制)值。一個DACK包被一個接收節(jié)點發(fā)送,來確認包或包序列的接收有效。DACK包只由直接地址信息包返回(LIPD包除外)。一個DACK包被用來終結(jié)在網(wǎng)絡(luò)上兩個節(jié)點間的典型的信號交換序列,并且結(jié)果涉及三個節(jié)點…1)活動的網(wǎng)絡(luò)服務(wù)器、2)請求的節(jié)點和3)響應(yīng)的節(jié)點。(如果活動的網(wǎng)絡(luò)服務(wù)器是當前請求的目的地,請求/響應(yīng)節(jié)點也可以是“活動的網(wǎng)絡(luò)服務(wù)器”。)該DACK的狀態(tài)字段根據(jù)接收包的節(jié)點類型(活動的網(wǎng)絡(luò)服務(wù)器或客戶節(jié)點)改變。DACK包送回請求的節(jié)點(由響應(yīng)的節(jié)點),釋放控制給請求的節(jié)點來繼續(xù)一個包流,DACK包送回“活動的網(wǎng)絡(luò)服務(wù)器”(由請求的節(jié)點),釋放控制給“活動的網(wǎng)絡(luò)服務(wù)器”,表示一個包流的結(jié)束。如果一個響應(yīng)或DACK包沒有接收到,請求的節(jié)點負責(zé)重復(fù)請求一個包。該DACK包包括一個典型的MAC報頭和CRC,以及一個1字節(jié)有效負荷。狀態(tài)字段包括被接收包的信息,并在這個字段中被返回。狀態(tài)字段1401的值列在表A2中。表A2.DACK狀態(tài)字段1101的值DACK節(jié)點描述0x0全部接收緩沖區(qū)滿(失敗)0x1全部失敗(多信道響應(yīng))0x2服務(wù)器令牌由節(jié)點使用0x3服務(wù)器令牌未被節(jié)點使用0x4服務(wù)器令牌響應(yīng)喚醒請求0x9全部打印機序列編號錯誤0xa全部打印機未插入錯誤0xb全部打印機脫機錯誤0xc全部打印機一般錯誤0xd全部打印機無紙錯誤0xe全部打印機不能識別錯誤0xf全部成功應(yīng)當注意,這些信息是在實際的介質(zhì)100本身上被傳遞,并且可能不是傳遞到主機節(jié)點的狀態(tài)。請見關(guān)于內(nèi)部PLX包的部分,關(guān)于被傳遞到主機的狀態(tài)信息的更多信息的Tx狀態(tài)。排隊插入包(LIPD和LIPG)圖12展示了一個PLXLIPG包1500的格式,PLXLIPG包包括前同步碼字段1201、長度字段1202、長度字段1203、控制字段1204、目標地址字段1205、一個掩碼字段1501和CRC字段1212。長度字段1202、長度字段1203和控制字段1204,分別具有0x09、0x09和0x23的(十六位進制)值。圖13展示了一個PLXLIPD包1600的格式,PLXLIPD包包括前同步碼字段1201、長度字段1202、長度字段1203、控制字段1204、目標地址字段1205、一個NULL字段1601和CRC字段1212。長度字段1202、長度字段1203和控制字段1204,分別具有0x09、0x09和0x23的(十六位進制)值。排隊插入包(LIP)被定時地由“活動的網(wǎng)絡(luò)服務(wù)器”發(fā)送,以允許新接收的成員進入已有的排隊卡。這是由兩個單獨的包來完成的,它們都被廣播到正在偵聽的節(jié)點。第一個包,LIPG包1500,包含LIP掩碼字段1501。在用一個LoGI響應(yīng)回應(yīng)之前,該掩碼1501必須與遠端的地址相匹配。第二個包,LIPD包1600,通過使響應(yīng)的節(jié)點用包含它的源地址(以便插入到排隊卡中)的一個DACK包來響應(yīng),被用來加速插入過程。因此,LIPG包被掩碼,并且具有在LIP掩碼字段中的一個相應(yīng)的位序列。一個節(jié)點應(yīng)使用一個LoGI包來響應(yīng)LIPG包。相似地,LIPD包未被掩碼,意思是,任何希望進入排隊卡的節(jié)點(這意味著該節(jié)點并未在排隊卡上),應(yīng)使用一個DACK來響應(yīng)。有效負荷包幀格式以下是可能出現(xiàn)在一個有效負載類型的包中的每個字段的描述。這對原始數(shù)據(jù)和PLX命令包類型兩者都成立。盡管前同步碼/開始序列并不是包格式的部分,但是它是預(yù)先確定的位模式,這種位模式被用來進行檢測載波、把硬件與輸入的包同步、決定位計數(shù)或在當前包內(nèi)的后續(xù)字節(jié)的線速率。前同步碼的長度由建立一個有效載波的出現(xiàn)和在線路上同步所需的位計數(shù)時間的最小值決定。前同步碼1201的位模式為值序列0xaa第一個同步字節(jié)0x31第一個同步字節(jié)0xnn速率/第三個同步字節(jié)速率(或第三個同步)字節(jié)確定輸入數(shù)據(jù)(由長度字節(jié)1202開始)的速率,概述如下值速率0x55低速率-650k0xdd中速率-1000k0x99高速率-1.19m0x11保留最后,該前同步碼之后是兩個雙重的長度字節(jié)1202-1203,1202-1203描述包的長度。這些字節(jié)將以新的速率進入。長度字段長度字段1202-1203被用來指示輸入包的長度。長度字段1202-1203被硬件使用(在缺少載波檢測信號時)來確定有效包的接收。一旦包的長度達到后,就為有效性檢測CRC字段1212。一個PLX包的長度因此最好限制在總共256字節(jié)之內(nèi)(不包括前同步碼字段1201和CRC字段1212)。長度包括MAC報頭1215(控制、地址等)、可選字段和有效負荷字段1211。長度字段被重復(fù)兩次(1202、1203)來確保輸入數(shù)據(jù)流的有效性(它作為前同步碼的一個延伸)。在包接收開始前,長度字段1202-1203必須相互匹配(前同步碼也匹配)??刂谱侄稳缟衔乃荆行ж摵砂梢允且韵聝煞N類型之一PLX命令包或原始數(shù)據(jù)包。PLX命令包類型可以進一步分類為兩個子類型外部和內(nèi)部PLX命令。內(nèi)部PLX命令包,是指通過本地連接(USB、1584、串行等)在硬件和主機節(jié)點的驅(qū)動之間的信號交換。外部PLX命令包,是指在電源線介質(zhì)100本身上的信號交換包,它管理對介質(zhì)100的訪問??刂谱侄?204根據(jù)包的類型而改變,如表A3所示,每一個位表示一個特定的定義。表A3控制字段1204中的位位PLX(外部)PLX(內(nèi)部)原始(非PLX)0包_類型(1)包_類型(1)包_類型(0)1PLX_子類型(1)PLX_子類型(0)原始_ACK_類型02PLX_ACK_類型保留(0)原始_ACK_類型13保留(0)保留(0)密碼4外部_子類型內(nèi)部_子類型套接字5外部_子類型內(nèi)部_子類型保留(0)6外部_子類型內(nèi)部_子類型PID7外部_子類型內(nèi)部_子類型保留(0)包類型包類型位被用來指示一個給定的包是否是PLX類型、原始數(shù)據(jù)類型或非-PLX類型。因為PLX協(xié)議請求得到不同的處理,并在大多情況下由微控制器固件處理,并且原始數(shù)據(jù)包典型地由一個單獨的應(yīng)用或主機軟件處理,所以在控制字段中進行區(qū)分是有益的。原始數(shù)據(jù)包,典型地包含要被傳遞到適當?shù)膽?yīng)用軟件的原始有效負荷信息。這種情況的一個例外,是包含微控制器中的翻譯器的部分和在主機中的部分的CAL包。位0包類型1PLX命令包=10原始數(shù)據(jù)包=0PLX子包類型PLX命令典型地為兩種形式之一。第一種形式是來自電線的由另一個節(jié)點的一個請求,第二種形式是來自主機的一個請求,來自主機的請求并不送到電線上。因為微控制器固件對這兩種類型的響應(yīng)進行區(qū)分,并且這兩種類型彼此是完全獨立的,所以建立這個位。位1PLX子包類型1外部的PLX命令包=10內(nèi)部的PLX命令包=0PLXACK類型令牌和DACK命令包被用來傳送到介質(zhì)100訪問的權(quán)利,并終結(jié)一個序列,在此“活動的網(wǎng)絡(luò)服務(wù)器”暫時釋放對介質(zhì)100的控制到另一個節(jié)點。另外兩個PLX命令包,LIPG和LIPD,要求一個響應(yīng)包。該響應(yīng)類型是LoGI類型或DACK類型兩者之一。這個位確定節(jié)點應(yīng)使用什么類型的響應(yīng)。位2PLXACK類型1用一個DACK響應(yīng)=10用一個DACK響應(yīng)=0PLX子包外部的類型PLX技術(shù)規(guī)格,提供在一個中心控制的(服務(wù)器仲裁令牌)令牌傳遞系統(tǒng)中,兩個節(jié)點之間的無連接的、有確認的和無確認的數(shù)據(jù)傳送服務(wù)。這些位允許這種通信進行。在一個客戶開始發(fā)送前,活動的網(wǎng)絡(luò)服務(wù)器把一個直接的令牌放到介質(zhì)100上。一個客戶節(jié)點,使用直接返回活動的網(wǎng)絡(luò)服務(wù)器節(jié)點的一個DACK響應(yīng)包,終結(jié)到介質(zhì)100的訪問權(quán)利。當輪詢客戶節(jié)點時,活動的網(wǎng)絡(luò)服務(wù)器維持激活的節(jié)點的一個排隊卡。為進入到排隊卡上,一個客戶節(jié)點恰當?shù)仨憫?yīng)一個直接的LIP請求(LIPD)或一個組LIP請求(LIPG)。節(jié)點一旦在排隊卡上,它們將被輪詢,并且它們可以以確認的或非確認的形式,發(fā)送和接收具有有效負荷信息的包。以下是一個在介質(zhì)100上被允許的有效的PLX子包外部的類型的一個表。位(7、6、5、4)字節(jié)的值包的子類型00000x07DACK00010x17令牌00100x27LIPD0x23LIPG其它…保留注如果一個DACK/GACK未被請求的節(jié)點,在預(yù)先確定的間隙間隔要求內(nèi)接收到,則發(fā)送的節(jié)點(請求的或響應(yīng)的)負責(zé)重傳該請求(響應(yīng))。PLX子包內(nèi)部的類型PLX技術(shù)規(guī)格允許在一個主機節(jié)點上,如一臺PC上,存在協(xié)議端口。周期性地,該主機節(jié)點需要訪問在所連接的節(jié)點上的信息,主機節(jié)點物理上與該節(jié)點連接。這被認為是一個內(nèi)部的PLX請求,因為該請求是為所連接的節(jié)點而發(fā),并且一般不應(yīng)被放到電線上來被發(fā)送到一個遠端的節(jié)點。以下是可能的內(nèi)部PLX子類型的描述。位(7、6、5、4)字節(jié)的值包的子類型11110xf1信號交換錯誤00010x11CAL請求00100x21CAL響應(yīng)00110x31Tx狀態(tài)11xx保留內(nèi)部的子類型被從主機發(fā)送并被硬件吸收,并且一個適當?shù)捻憫?yīng)被返回到主機節(jié)點。內(nèi)部的包從來不被發(fā)送到介質(zhì)100上。因而,這種包類型不在有效負荷包部分下定義,但是在PLX(內(nèi)部的)主機包定義的部分中。原始ACK類型原始ACK類型確定了什么類型的響應(yīng)應(yīng)跟隨在當前的原始數(shù)據(jù)包之后。響應(yīng)類型具有以下四種形式之一突發(fā)(無響應(yīng))、雙LoGI、LoGI和DACK。突發(fā)的類型是自我說明性的,包被一個接一個地發(fā)送。一個突發(fā)序列的最后一個包,應(yīng)當具有一個指定的不同的ACK確認類型(為完成該突發(fā)序列,使用一個響應(yīng))。一個雙LoGI序列允許發(fā)送組或廣播請求。如果一個節(jié)點不能緩存這個包,則該節(jié)點在第一個間隙間隔內(nèi)響應(yīng),如果該節(jié)點正確地接收和分析這個包,則它在一個延遲的間隙間隔內(nèi)響應(yīng)。LoGI響應(yīng)被導(dǎo)向一個單個的節(jié)點,并且是最有效的響應(yīng)機制。一個LoGI包的長度具有最高的帶寬利用率,但是不能包含關(guān)于響應(yīng)的很多信息。DACK響應(yīng)被導(dǎo)向一個特定的節(jié)點,但是與LoGI類型相比,能夠包含響應(yīng)內(nèi)的很多信息。位(2、1)包的子類型00突發(fā)01雙LoGI10LoGI11DACK密碼密碼位允許由驗證字節(jié)開始的包內(nèi)容被加密。一個加密方案使用一個256位Diffie-Hellman信號交換來進行密鑰交換,此后,一個秘密的32字節(jié)矩陣被通過介質(zhì)100安全地發(fā)送。隨后的事務(wù)可以為安全通信使用加密矩陣。位3密碼當前的包被加密=1當前的包未被加密=0套接字典型地,一個PLX原始數(shù)據(jù)有效負荷包將包含以下字段長度。字段長度前同步碼12013字節(jié)長度1202、903重復(fù)的2字節(jié)控制12041字節(jié)目的地址12054字節(jié)源地址12064字節(jié)有效負荷12110-255字節(jié)CRC12122字節(jié)當同一個節(jié)點上有多個應(yīng)用時,通過使用一種機制來使包能夠被路由到在一個特定的節(jié)點地址中的適當?shù)膽?yīng)用。這些類型的應(yīng)用使用一個套接字字段。第一個字節(jié)是目標套接字地址,而第二個字節(jié)是源套接字地址。因此,由于設(shè)定這個位,MAC報頭的長度增加2個字節(jié)。當使用時,這個字段將緊跟著確認字節(jié)字段,并且如果以下的位被置1,則它就被包括進來。位4套接字1包括套接字字段0不包括套接字字段協(xié)議ID(PID)每個包都包含能夠被較高級協(xié)議,如IPX、TCP/IP或CAL,解析的信息。PLX僅僅被用作傳送裝置,以封裝要穿過網(wǎng)絡(luò)被發(fā)送/接收的這些類型的包。典型地,較高級的解析程序存在于一個主機系統(tǒng)上;但是,需要硬件來包含CAL解析功能的一個最小設(shè)置。這樣,硬件解析CAL請求,并把所有的其它請求交給適當?shù)挠行ж摵商幚沓绦?。一些協(xié)議信息可以駐留在硬件中(如在ROM、FLASH存儲器等之中),其它協(xié)議信息由主機節(jié)點解析。這個位決定是否需要硬件協(xié)議處理器來開始解析這個包。位6協(xié)議ID(PID)1協(xié)議ID存在(微解析)0協(xié)議ID不存在(原始-主機解析)原始包的含義是數(shù)據(jù)的第一個字節(jié)不是這種類型的協(xié)議的一個字節(jié)編碼,而是協(xié)議報頭本身的第一個字節(jié)。具有PID解析性能的包譯碼第一個字節(jié)編碼來決定由哪個協(xié)議解析這個包。以下是當PID位被設(shè)定時可用的選擇。第一個數(shù)據(jù)字節(jié)代表解析當前的包所需的協(xié)議類型字節(jié)的值定義類型0xff保留n/a0xfe完成的包cebusResp0xfd失敗的包cebusResp0xfc錯誤的包cebusResp0xdf-0xfb保留n/a0xa0-0xde前后關(guān)系編號(CAL)cebusCmd0x9f保留(CAL)cebusCmd0x00-0x9e前后關(guān)系級別(CAL)cebusCmd目的地址字段目的地址字段1205包含當前包的目的節(jié)點。當一個節(jié)點有一個請求或響應(yīng)另一個節(jié)點的請求時,它把響應(yīng)包的目的地址,放到目的地址字段1205中。如果該節(jié)點只能與活動的網(wǎng)絡(luò)服務(wù)器或數(shù)據(jù)庫服務(wù)器通信,它將把那個地址放到目的地址字段1205中。否則,目的地址一般由請求包的源地址字段1206中得到。一些PLX地址是眾所周知的。這些眾所周知的PLX地址列出如下地址描述0x00000000-0xffffffef有效的單個節(jié)點地址0xfffffff0-0xfffffffc保留0xfffffffd應(yīng)用服務(wù)器節(jié)點地址0xfffffffe活動的網(wǎng)絡(luò)服務(wù)器節(jié)點地址0xffffffff廣播節(jié)點地址源地址字段源地址1206包含用于當前包的節(jié)點地址。當一個節(jié)點有一個請求或響應(yīng)另一個節(jié)點的請求時,它把它自己的節(jié)點地址,放到源地址字段1206中。該節(jié)點地址使用8字節(jié)GUID的一部分,與節(jié)點的類型結(jié)合,形成一個四字節(jié)的節(jié)點地址。使用由GUID的最低有效的7個半字節(jié),并將節(jié)點的類型蓋寫節(jié)點地址的最高有效半字節(jié)(第8半字節(jié))。例如If…GUID=0x123456789ABCDEFANDNoteType=0x03Then…SourceAddress=0x39ABCDEFEndIf序列編號字段序列字段1207為一個主機應(yīng)用,提供重建或重組一個數(shù)據(jù)包或序列的能力,為了在介質(zhì)100上傳輸,該數(shù)據(jù)包或序列被分為較小的包。重復(fù)的序列編號可以被拋棄,而未收到的序列編號可以被重傳。編號為較長的數(shù)據(jù)流提供了數(shù)據(jù)完整性。在序列字段1207內(nèi)的值決定于應(yīng)用,并且如果需要,可以為另一個應(yīng)用使用。確認字段確認字段1208允許每個包在接收完成前被確認。確認字段1208典型地通過對于加密矩陣的第一個兩字節(jié)求異或而被植入(seeded)。因此,在一個安全系統(tǒng)內(nèi)的所有節(jié)點將植入(seeded)相同的確認值,并且所有這些節(jié)點都應(yīng)通過這個確認程序。該確認字段為增強完整性被進一步加密。有效負荷字段數(shù)據(jù)有效負荷字段1211被用來為接收節(jié)點提供信息。有效負荷數(shù)據(jù)的第一個字節(jié)可以包含決定怎樣解析內(nèi)容的一個字節(jié)編碼。這個第一個數(shù)據(jù)字節(jié)與上文所述的原始(RAW)位共同使用。循環(huán)冗余檢驗(CRC)字段在已發(fā)送的包中,循環(huán)冗余檢驗(CRC)字段1212被用來提供一個可靠的錯誤檢測技術(shù)。為了確認,根據(jù)完成和比較,它被重新評估。不能通過這項檢測的包被拋棄。CRC算法被選得足夠高效而且簡單,以提供理想水平的可靠性而沒有不適當?shù)拈_銷(在軟件和硬件中)。提供一個這樣的CRC算法是理想的,該算法足夠快可以為發(fā)送和接收的包進行實時的(on-the-fly)CRC計算。實時計算(當一個位或字節(jié)被收到,CRC就被更新,而不是等待整個包被收到,對于發(fā)送也是同樣)不是強制性的,但是有助于系統(tǒng)的總的處理能力和性能。在一個實施例中,G(X)由G(x)=x16+x15+x11+x8+x6+x5+x4+x3+x+1給出。PLX(內(nèi)部的)主機包PLX內(nèi)部的主機包永遠不到介質(zhì)100上,這樣,包的描述看起來較簡單。不需要前同步碼1201,不需要重復(fù)的長度字段1202、903,不需要地址字段1205、906,也不需要CRC字段1212。圖14展示了一個PLX內(nèi)部的主機包的格式,包括一個長度字段1701、一個控制字段1702和一個數(shù)據(jù)字段1703。數(shù)據(jù)字段1703包含控制字段指定的任何東西。如前面的控制字段的定義(它也應(yīng)用于PLX內(nèi)部的主機包)所示,存在在硬件和主機節(jié)點間通過的許多包,它們促進業(yè)務(wù)流。以下是每種類型的包的定義。CAL請求包圖15展示了一個CAL請求包1800的格式,包括一個長度字段1701、一個控制字段1702和一個CAL數(shù)據(jù)字段1803??刂谱侄?702的值為0x11。一個CAL請求包1800被主機節(jié)點發(fā)送到硬件節(jié)點,以接收表示在硬件上的CAL信息。因為PLX節(jié)點可以具有應(yīng)用編碼或獨立于硬件/ASIC的一個主機處理器,CAL信息也可以在這兩個獨立的處理器之間傳播。這樣,主機處理器從所連接的節(jié)點定時地收集CAL信息。CAL響應(yīng)包圖16展示了一個CAL響應(yīng)包1900的格式,包括一個長度字段1701、一個控制字段1702和一個CAL響應(yīng)字段1903??刂谱侄?702的值為0x21。由于與上文所述同樣的原因,一個CAL響應(yīng)包被由硬件節(jié)點發(fā)往所連接的主機節(jié)點。這個響應(yīng)包1900作為對一個在前的CAL請求包1800的響應(yīng)而被發(fā)送。Tx狀態(tài)包(單信道、速率)圖17展示了一個單信道CAL響應(yīng)包2000的格式,包括一個長度字段1701、一個控制字段1702和一個數(shù)據(jù)字段1903??刂谱侄?702的值為0x21。圖18展示了一個多信道CAL響應(yīng)包2100的格式,包括一個長度字段1701、一個控制字段1702和一個數(shù)據(jù)字段2103??刂谱侄?702的值為0x31。有兩種格式的Tx狀態(tài)包。一種格式是為單信道、單速率的應(yīng)用,使用時控制字段的值為0x21。第二種格式是為多信道、多速率的解決方案,使用時控制字段的值為0x31。單信道、單速率的解決方案只有兩個可用的Tx緩沖區(qū),這兩個Tx緩沖區(qū)的狀態(tài)被定時地通過一個內(nèi)部的PLX信號交換傳回主機節(jié)點。這些Tx狀態(tài)包的目的是閉合關(guān)于被從主機節(jié)點交給硬件的顯著的傳送事件的環(huán)。經(jīng)常,在一個DACK包內(nèi)被返回的相同的值,為了與這個發(fā)送事件有關(guān)的信息,將被傳遞給主機,但是,很多時候DACK是到一個外部的PLX事件,在此情況下,該DACK值不應(yīng)被交給主機節(jié)點。當主機節(jié)點發(fā)起傳送請求時,該DACK值被交回給主機節(jié)點。相應(yīng)地,PLX使用如下所示的重復(fù)的DACK狀態(tài)值。在介質(zhì)上得到的DACK狀態(tài)值0x0=接收緩沖區(qū)滿(失敗)0x2=令牌被節(jié)點使用(未被傳給主機)0x3=令牌未被節(jié)點使用(未被傳給主機)0x4=令牌響應(yīng)“喚醒”請求(未被傳給主機)0x9=打印機序列編號錯誤0xa=打印機未插入錯誤0xb=打印機脫機錯誤0xc=打印機一般錯誤0xd=打印機無紙錯誤0xe=打印機未知錯誤0xf=成功值0x9到0xe來自打印機節(jié)點的DACK響應(yīng)。打印機響應(yīng)值被未改變地傳回主機節(jié)點。值0xf是一個成功的DACK響應(yīng),如果是主機發(fā)起請求,則這個值被未加改變地傳回主機節(jié)點。值0x2到0x4是到外部的PLX命令包的DACK響應(yīng)值,不應(yīng)被傳回主機節(jié)點。唯一奇怪的狀態(tài)值是0x0,0x0在電線上的意思是接收節(jié)點忙,因此無法接收包。硬件識別這種狀態(tài)并將重傳這個包(經(jīng)常是節(jié)點并非忙)一個特定數(shù)量的次數(shù)。如果接收節(jié)點在一段非常長的時間一直處于忙狀態(tài),則該包被最終放棄,并且一個“失敗-0xf”響應(yīng)狀態(tài)被傳回主機節(jié)點。一個0x0的值被傳回主機節(jié)點不表示任何含義。這是傳輸事件未被完成的缺省值,主機節(jié)點將等待直到一個非零狀態(tài)被放入這個字段中。值0x1從來不在電線上被返回。如果一個節(jié)點接收到一個有錯誤數(shù)據(jù)的包,它僅簡單地不響應(yīng)這個包,發(fā)送的節(jié)點將被要求重傳這個包。只有當一個發(fā)送包超時并達到它的最大重傳次數(shù),值0x1才被傳回主機。以下是一個展示一般被返回主機節(jié)點的Tx狀態(tài)值的表(注意這些值并非在所有的情況下與DACK響應(yīng)值相同)Tx狀態(tài)數(shù)據(jù)字段值0x0=對此Tx緩沖區(qū)無Tx狀態(tài)0x1=失敗(Tx超時或接收緩沖區(qū)滿)0x9=打印機序列編號錯誤0xa=打印機未插入錯誤0xb=打印機脫機錯誤0xc=打印機一般錯誤0xd=打印機無紙錯誤0xe=打印機未知錯誤0xf=成功這個意思是以下的DACK信息未被通過一個內(nèi)部的Tx狀態(tài)包傳給主機節(jié)點。未傳給主機節(jié)點的另外的Tx狀態(tài)信息0x0=接收緩沖區(qū)滿(失敗)0x2=令牌被節(jié)點使用(未被傳給主機)0x3=令牌未被節(jié)點使用(未被傳給主機)0x4=令牌響應(yīng)“喚醒”請求(未被傳給主機)Tx狀態(tài)字節(jié)被進一步分為兩部分,每部分半字節(jié),代表兩個Tx緩沖區(qū)狀態(tài)。在Tx狀態(tài)字段中的值以及它們各自的含義列出如下。Tx狀態(tài)值舉例0x0f=第一個Tx緩沖區(qū)成功發(fā)送0xf0=第二個Tx緩沖區(qū)成功發(fā)送0xff=兩個Tx緩沖區(qū)成功發(fā)送0x1f=第二個Tx緩沖區(qū)失敗,第一個Tx緩沖區(qū)成功等…Tx狀態(tài)包(多信道、速率)Tx狀態(tài)包的第二種格式用于多信道、多速率的解決方案。全部前面論述的關(guān)于單信道Tx狀態(tài)包,以及它如何與DACK值相關(guān),依然適用。不同點在于,包含在多信道/速率Tx狀態(tài)包中的數(shù)據(jù)信息的量。該包將基本包含一個代表每個信道的單個的前文定義的狀態(tài)字節(jié)。結(jié)果是多個數(shù)據(jù)字節(jié),每個字節(jié)代表一個具有兩個獨立的Tx緩沖區(qū)的單個的信道。包定時、間隔和重發(fā)為在介質(zhì)100上傳輸?shù)乃械陌?,必須符合嚴格的定時要求。這些定時要求是使該系統(tǒng)平穩(wěn)而無沖突地運行的規(guī)則。為了恰當?shù)剡\行,必須嚴格地、強制性地堅持這些規(guī)則。在平時運行中,一個“活動的網(wǎng)絡(luò)服務(wù)器”出現(xiàn)在系統(tǒng)上,并且仲裁所有激活的節(jié)點到介質(zhì)100的訪問。以下假設(shè)適用于這樣一個出現(xiàn)在介質(zhì)100上的激活的狀態(tài)。在介質(zhì)100上未激活,意味著每個節(jié)點都處于靜止狀態(tài),并且在指定節(jié)點作為“活動的網(wǎng)絡(luò)服務(wù)器”前,必須經(jīng)過平常的“偵聽”過程。進一步,該PLX系統(tǒng)的特征在于確認的信號交換序列。確認包要在特定的時間間隔內(nèi)被返回。除了確認包(DACK、LoGI或雙LoGI)外,傳送任何信息前都需要令牌包。活動的網(wǎng)絡(luò)服務(wù)器是具有傳送令牌和LIP包權(quán)利的唯一節(jié)點??蛻艄?jié)點僅僅傳送有效負荷和確認包。典型的包定時圖19是展示包定時和間隔的一個定時圖。包定時的定義涉及第一個參考時間2202和第二個參考時間2204。第二個參考時間跟著第一個參考時間2202,之間有一個平均的包間間隙(I/Gap)50μs(微秒)。以上所示的圖假定一個運行在650kbps的系統(tǒng)的定時。除了間隙定時外,所有的值都應(yīng)被調(diào)整為如表A4所給出,表A4中上標1表示一個參考第一個參考2202的時間,上標2表示一個參考第二個參考2204的時間。表A4包定時350kbps700kbps1.2mbps1.4mbps最小I/Gap115μs15μs15μs15μs平均I/Gap150μs50μs50μs50μs前同步碼130μs65μs38μs33μsLoGI包2140μs70μs40μs35μsDloGI包2185μs92μs54μs46μsDACK2335μs168μs98μs84μsTxRetryLoGI1205μs103μs61μs52μsTxRetryDACK1400μs200μs117μs100μsTxRetryDloGI1320μs160μs94μs80μs內(nèi)部令牌13+ms3+ms3+ms3+ms在平時狀態(tài)下,典型的包定時需要接收包的節(jié)點在一個預(yù)先確定的時間內(nèi)響應(yīng)。除LoGI/雙LoGI確認包外,這個響應(yīng)時間對于所有的包是一致的。因此,包定時的兩種情況是1)LoGI/雙LoGI響應(yīng)和2)所有的其它響應(yīng)。其它包定時在一個特定的時間內(nèi),節(jié)點把一個包傳回有效負荷包發(fā)出的節(jié)點,突發(fā)包和確認包除外,它們不需要響應(yīng)包。響應(yīng)包的類型可以是DACK包、LoGI包或有效負荷包。響應(yīng)包符合上文中圖19所示的間隙間隔需要。最小的響應(yīng)時間典型地長于15微秒,最大的響應(yīng)時間典型地不應(yīng)超過50微秒。如果一個發(fā)送節(jié)點未接收到前面的發(fā)送的確認,為了增加傳遞的可靠性,它必須開始一個重傳過程。這個重傳過程典型地在最長的可能的確認序列或一個DACK包加上最長的可能間隙間隔或在650kbps時約700微秒后開始。節(jié)點特定信息每個節(jié)點用一個特定數(shù)量的信息配置,形成了該特定節(jié)點的特性。PLX節(jié)點需要這個最小量的信息,以在系統(tǒng)上實現(xiàn)完全的功能。唯一標識、可尋址性和全球唯一標識(GUID)當一PLX節(jié)點插入一個電力系統(tǒng)中時,它可以馬上準備好行動。每個節(jié)點具有一個燒入的序列號,其中最低有效的28位被用作該節(jié)點運行時的地址。這并不能確保全球的單一性,但是她確實限定了可能性,因為你找到具有沖突地址的兩個節(jié)點的機會是1比268百萬。這個運行時的長地址只輕微減少吞吐量,但是在簡單化系統(tǒng)時(因為節(jié)點從工廠出來時已預(yù)先設(shè)置),它增強了即插即用的能力并使用容易。普通的設(shè)備環(huán)境和節(jié)點文件夾目標CEBus/GenericCAL兼容節(jié)點,至少有一個普通的設(shè)備環(huán)境和一個具有相關(guān)的實例變量(IVs)的節(jié)點控制目標。PLX背離CEBus/GenericCAL定義的報告條件和節(jié)點尋址,(兩者都與該PLX客戶/服務(wù)器結(jié)構(gòu)有關(guān),而與CEBus/GenericCAL的對等結(jié)構(gòu)相反。因此,PLX重新定義了普通的設(shè)備環(huán)境/節(jié)點控制目標,作為具有稍微不同的IV描述的節(jié)點文件夾目標。而且,每個PLX順從性節(jié)點包含與節(jié)點文件夾目標相關(guān)的實例變量。每個節(jié)點都負責(zé)包含一個預(yù)先定義的屬性組,該屬性組標識節(jié)點并把節(jié)點放到具有一般已知屬性的一組節(jié)點類型中。每個節(jié)點的節(jié)點文件夾目標信息,最好被硬性編碼進在該節(jié)點中的非揮發(fā)性存儲器中。該信息根據(jù)請求被發(fā)送到服務(wù)器。一個節(jié)點文件夾目標由一個實例變量的列表組成。每個PLX節(jié)點至少包括,一個普通的設(shè)備環(huán)境(0x00)、一個節(jié)點文件夾目標(0x01)和特定的實例變量(IV),如以下表A5所示(其中R/W表示讀/寫)。表A5<tablesid="table3"num="003"><table>字節(jié))hR/Wdarea_address用于路由和網(wǎng)絡(luò)標識目的(1字節(jié))。這個IV總是全球可讀(與network_name一起)。aR/Wdunit_address用于直接尋址包的節(jié)點ID(4字節(jié))tRdnetwork_class定義設(shè)備的網(wǎng)絡(luò)種類,并將被用于重寫該設(shè)備MAC地址的最高四位,以區(qū)分令牌分配的優(yōu)先次序。以下是優(yōu)先次序和與網(wǎng)絡(luò)類型相關(guān)的值0x01視頻系統(tǒng)Ⅰ0x02視頻系統(tǒng)Ⅱ0x03音頻系統(tǒng)Ⅰ0x04音頻系統(tǒng)Ⅱ0x05保留0x06安全系統(tǒng)0x07應(yīng)用監(jiān)視系統(tǒng)0x08HVAC系統(tǒng)0x09照明系統(tǒng)0x0a應(yīng)用系統(tǒng)0x0b數(shù)據(jù)聯(lián)網(wǎng)系統(tǒng)0x0c保留0x0d保留0x0e保留0x0f通用系統(tǒng)fRdbuffering以字節(jié)為單位的接收緩沖區(qū)大小xRcproduct_rev產(chǎn)品修訂等級(ASCⅡ字節(jié))bR/Wddynamic-mask包括可以由一個單個位表示特征的一些動態(tài)節(jié)點功能。位0混合模式1=允許</table></tables>下表A6列出了被“應(yīng)用服務(wù)器”存儲、管理和維護,并存在于應(yīng)用服務(wù)器的數(shù)據(jù)庫中的客戶IV。因此,客戶不需要涉及有關(guān)存儲或提供關(guān)于這些IV的信息。僅為主要情況的通用設(shè)備環(huán)境的部分,也是一個規(guī)則目標(0x03),該規(guī)則目標使用由CAL定義的數(shù)據(jù)存儲目標,以及為我們的目的而定義的一些單獨的IV。表A6規(guī)則目標允許遠端的節(jié)點使用一個方法,來在規(guī)則列表中增加(繼承)、刪除(不繼承)以及查看(獲取矩陣)規(guī)則。通過提供一個通用的設(shè)備環(huán)境,該網(wǎng)絡(luò)能夠包含一個節(jié)點列表。節(jié)點能夠包含一個設(shè)備環(huán)境列表。節(jié)點能夠有每個設(shè)備環(huán)境的一個目標列表。給出目標列表,節(jié)點也能夠包含特定的實例變量。許多這些列表在GenericCAL技術(shù)規(guī)格中(而不是網(wǎng)絡(luò)和節(jié)點列表)被說明。當被要求時,節(jié)點使用上文所示的為它的特定配置的節(jié)點文件夾的特定的部分進行響應(yīng)。該節(jié)點文件夾允許一個自動配置特定節(jié)點的方法,該節(jié)點在所考慮的網(wǎng)絡(luò)中是唯一的。為了被唯一地標識,重復(fù)的節(jié)點能夠提供另一水平的的配置。安全通過一個兩步過程實現(xiàn)安全。開始,在網(wǎng)絡(luò)上加電的每個節(jié)點立即被放入公共網(wǎng)絡(luò)中。公共網(wǎng)絡(luò)是為所有節(jié)點分配的默認的網(wǎng)絡(luò),它們?yōu)樗衅渌墓补?jié)點所見,并且它們的確認ID被賦值為NULL。一旦一個節(jié)點,通過下述的密鑰交換過程變?yōu)榘踩珪r,它的確認ID變?yōu)橛杉用芫仃囈?guī)定的一個值。每個節(jié)點被指派到這個專用/安全網(wǎng)絡(luò),它們被給與32字節(jié)的矩陣,由此它們加密或解密隨后的包。這是通過一個被稱為Diffie-Hellman的密鑰交換技術(shù),使用一個256位密鑰實現(xiàn)的。使用一個有效的取冪算法,來減少被用在密鑰交換中計算數(shù)值所需的時間。一旦加密矩陣被存儲在網(wǎng)絡(luò)上每個節(jié)點的存儲器中,就執(zhí)行加密和解密。在一個實施例中,加密和解密使用了基于一個帶反饋異或的一個流密碼技術(shù)。也可以使用其它算法,包括,例如,DES、RC4、MD5等等。附加的特征報告狀態(tài)詳細說明因為與它們在CAL下相比,在PLX下報告狀態(tài)被不同地處理,該PLX處理規(guī)則的方法在此示出。這些變化用來說明在一個嚴格的CAL報告狀態(tài)方法中的許多限制。不同點在下表A7中示出。表A7與GenericCAL相比PLX的優(yōu)點CebusCALPLX每個目標一個規(guī)則每個目標多個規(guī)則每個目標一個有效的IV每個目標多個有效的IV只有簡單規(guī)則簡單的和復(fù)雜的規(guī)則固定的規(guī)則靈活的規(guī)則因為PLX規(guī)則存在于服務(wù)器上,與在GenericCAL下的分布式規(guī)則相對,通過它的單個的、功能強大的引擎,PLX在它如何處理規(guī)則上,功能更強大。PLX客戶節(jié)點將它們的IV中的變化,匯報到服務(wù)器。任何IV變化都如此。當服務(wù)器檢測到一個IV變化時,該服務(wù)器查看變化的特定目標/IV組合,該服務(wù)器查看它的規(guī)則列表,并且該服務(wù)器測試每個規(guī)則的有效性。因此,每個目標都被配置為包含以下兩個IV,這兩個IV處理為特定目標建立的每個規(guī)則,相關(guān)的IV列出如下。實際的report_header、report_address、report_condition和previous_value變量,每個被保存在矩陣所指向的規(guī)則中。調(diào)用程序簡單地傳遞這個指針(或目錄)到規(guī)則引擎,而規(guī)則引擎將從主用的規(guī)則列表,解析它需要的適當?shù)男畔?。非揮發(fā)性存儲器使用每個節(jié)點在一個靜態(tài)的存儲位置,如ROM中,包含節(jié)點文件夾信息。另外,節(jié)點也可以在非揮發(fā)性存儲器中,存儲其它信息,如確認密鑰,但是,這是一個選擇,并非任何PLX順從性節(jié)點都需要。其它的選擇性的存儲器需求,包括路由信息和其它的動態(tài)表??蛻糇兓ㄖ蛻艄?jié)點典型地報告狀態(tài)變化到應(yīng)用服務(wù)器節(jié)點。意思是,即使應(yīng)用服務(wù)器告訴一個客戶改變它的狀態(tài),該客戶回報應(yīng)用服務(wù)器它的狀態(tài)已經(jīng)改變。這減少了應(yīng)用服務(wù)器數(shù)據(jù)庫未與真正的客戶節(jié)點變量同步的問題。這是所希望的,因為應(yīng)用服務(wù)器包含,與客戶變量的變化相關(guān)的報告的狀態(tài)和規(guī)則。該客戶在此方面智能較少,因此它們應(yīng)當把適當?shù)淖兓ㄖ獞?yīng)用服務(wù)器。該應(yīng)用服務(wù)器典型地不更新屬于一個特定的客戶節(jié)點的它的數(shù)據(jù)庫變量,直到從那個客戶節(jié)點接收到確認,通知該“應(yīng)用服務(wù)器”該客戶節(jié)點已經(jīng)改變狀態(tài)。權(quán)利要求1.一種配置為允許在一個計算機網(wǎng)絡(luò)上的多個節(jié)點使用一種或多種數(shù)據(jù)協(xié)議進行通信的網(wǎng)關(guān),其中使用一種介質(zhì)協(xié)議在一種網(wǎng)絡(luò)介質(zhì)上傳輸所述的一種或多種數(shù)據(jù)協(xié)議,所述網(wǎng)關(guān)進一步提供一個應(yīng)用編程接口,用于與所述多個節(jié)點進行通信,所述網(wǎng)關(guān)包括包含在一個網(wǎng)絡(luò)上節(jié)點的信息的一個內(nèi)部節(jié)點數(shù)據(jù)庫;配置為用來提供一種活動模式和一種備用模式的一個軟件模塊,所述活動模式被配置用于維護所述內(nèi)部節(jié)點數(shù)據(jù)庫,并提供到所述節(jié)點數(shù)據(jù)庫的訪問,所述備用模式被配置用于維護所述內(nèi)部節(jié)點數(shù)據(jù)庫作為一個外部節(jié)點數(shù)據(jù)庫的一個鏡像復(fù)制。2.如權(quán)利要求1中所述的網(wǎng)關(guān),其中所述內(nèi)部節(jié)點數(shù)據(jù)庫進一步包括根據(jù)一個客戶節(jié)點的一種狀態(tài)變化確定所采取的行動的規(guī)則。3.如權(quán)利要求2中所述的網(wǎng)關(guān),其中所述規(guī)則是簡單的規(guī)則。4.如權(quán)利要求2中所述的網(wǎng)關(guān),其中所述規(guī)則是復(fù)雜的規(guī)則。5.如權(quán)利要求2中所述的網(wǎng)關(guān),進一步包括配置為用于翻譯所述規(guī)則的一個規(guī)則引擎。6.如權(quán)利要求2中所述的網(wǎng)關(guān),進一步包括調(diào)整(shim),所述的調(diào)整配置為用于把規(guī)則翻譯為一種規(guī)則定義語言。7.如權(quán)利要求2中所述的網(wǎng)關(guān),其中所述狀態(tài)變化包括在所述客戶節(jié)點的一個實例變量中的一個變化。8.如權(quán)利要求1中所述的網(wǎng)關(guān),其中所述內(nèi)部節(jié)點數(shù)據(jù)庫通過發(fā)布連接測試程序(Ping)請求進行更新。9.如權(quán)利要求1中所述的網(wǎng)關(guān),其中所述軟件模塊配置為當檢測到一個未被確認的客戶請求后,轉(zhuǎn)變?yōu)樗龌顒幽J健?0.如權(quán)利要求1中所述的網(wǎng)關(guān),進一步配置為通過隧道方式使一個第一種協(xié)議通過一個第二種協(xié)議。11.如權(quán)利要求10中所述的網(wǎng)關(guān),其中所述介質(zhì)是一電源線,并且所述介質(zhì)協(xié)議是一電源線協(xié)議。12.如權(quán)利要求1中所述的網(wǎng)關(guān),其中所述介質(zhì)是一電源線,并且所述介質(zhì)協(xié)議是一PLX協(xié)議。13.如權(quán)利要求7中所述的網(wǎng)關(guān),進一步包括配置為當在所述客戶節(jié)點的一個實例變量中一個變化發(fā)生時通知一個用戶應(yīng)用的一事件處理器。14.如權(quán)利要求1中所述的網(wǎng)關(guān),進一步包括一個面向目標的應(yīng)用編程接口。15.如權(quán)利要求14中所述的網(wǎng)關(guān),進一步包括一互聯(lián)網(wǎng)瀏覽器,所述瀏覽器配置為用于提供到所述內(nèi)部節(jié)點數(shù)據(jù)庫中信息的一個用戶接口。16.如權(quán)利要求15中所述的網(wǎng)關(guān),其中所述用戶接口配置為允許一個用戶控制在一個電源線網(wǎng)絡(luò)上的節(jié)點。17.一個計算機網(wǎng)絡(luò)包括一電源線網(wǎng)絡(luò)介質(zhì);和通過使用調(diào)度控制塊,用于路由原始數(shù)據(jù)信息由所述電源線網(wǎng)絡(luò)介質(zhì)到用戶應(yīng)用的網(wǎng)關(guān)裝置。18.一個網(wǎng)關(guān)包括一個節(jié)點數(shù)據(jù)庫;用于建立并翻譯調(diào)度控制塊的調(diào)度裝置;用于控制一網(wǎng)絡(luò)接口適配器的設(shè)備驅(qū)動裝置;和用于把所述設(shè)備控制塊與所述設(shè)備驅(qū)動裝置適配的調(diào)整(shim)裝置。19.使用一所需的協(xié)議在一個網(wǎng)絡(luò)上的節(jié)點之間進行通信的一種方法,所述方法包括建立包含關(guān)于所述節(jié)點信息的一節(jié)點數(shù)據(jù)庫;指定一活動的網(wǎng)關(guān)節(jié)點來維護所述節(jié)點數(shù)據(jù)庫,所述活動的網(wǎng)關(guān)節(jié)點提供一種或多種訪問所述節(jié)點數(shù)據(jù)庫的訪問方法;和在一個或多個備份服務(wù)器節(jié)點中,鏡像所述節(jié)點數(shù)據(jù)庫。20.如權(quán)利要求19中所述的方法,進一步包括翻譯和執(zhí)行規(guī)則,當一狀態(tài)變化在一個客戶節(jié)點中發(fā)生時,所述規(guī)則確定將采取的行動。21.如權(quán)利要求20中所述的方法,其中所述規(guī)則由一個規(guī)則引擎翻譯。22.如權(quán)利要求20中所述的方法,進一步包括步驟當所述狀態(tài)變化發(fā)生時,產(chǎn)生事件通知。23.如權(quán)利要求22中所述的方法,其中所述通知提供給一調(diào)度。24.如權(quán)利要求20中所述的方法,進一步包括步驟把接收的數(shù)據(jù)翻譯為一規(guī)則定義語言。25.如權(quán)利要求20中所述的方法,其中所述狀態(tài)變化包括所述客戶節(jié)點的一個實例變量中的一變化。26.如權(quán)利要求19中所述的方法,進一步包括發(fā)布連接測試程序(Ping)請求并偵聽對所述連接測試程序(Ping)請求的響應(yīng)的步驟,所述響應(yīng)用于更新所述節(jié)點數(shù)據(jù)庫。27.如權(quán)利要求19中所述的方法,進一步包括步驟所述活動的服務(wù)器變?yōu)殪o止后,激活所述備份服務(wù)器節(jié)點之一。28.如權(quán)利要求19中所述的方法,進一步包括步驟把在第一種協(xié)議中的原始包裝入所述的所需協(xié)議中的封裝包,并以隧道方式使所述原始包通過所述的所需協(xié)議。29.如權(quán)利要求19中所述的方法,其中所述介質(zhì)是一電源線,并且所述介質(zhì)協(xié)議是一電源線協(xié)議。30.如權(quán)利要求19中所述的方法,其中所述介質(zhì)是一電源線,并且所述介質(zhì)協(xié)議是一PLX協(xié)議。31.如權(quán)利要求19中所述的方法,進一步包括步驟在所述客戶節(jié)點的一個實例變量中,一個變化發(fā)生時,通知一用戶應(yīng)用。32.如權(quán)利要求19中所述的方法,進一步包括步驟使用一互聯(lián)網(wǎng)瀏覽器來瀏覽所述節(jié)點數(shù)據(jù)庫中的信息。33.如權(quán)利要求19中所述的方法,進一步包括步驟使用一互聯(lián)網(wǎng)瀏覽器來控制在一個電源線網(wǎng)絡(luò)上的節(jié)點。全文摘要本發(fā)明涉及允許在一種或多種網(wǎng)絡(luò)協(xié)議以及一種或多種控制協(xié)議之間傳送數(shù)據(jù)的一種通用網(wǎng)關(guān)(104)。不同的協(xié)議可以在相同的物理網(wǎng)絡(luò)介質(zhì)(100)上同時使用,或在各自的網(wǎng)絡(luò)(100,130)上同時使用。通過使用所述網(wǎng)關(guān)(104),終端用戶可以把傳統(tǒng)上相互獨立、互不兼容的網(wǎng)絡(luò)聯(lián)網(wǎng)成為一個普遍可訪問的、集中管理的“超級網(wǎng)絡(luò)”。所述網(wǎng)關(guān)(104)提供集中式節(jié)點數(shù)據(jù)庫,對傳統(tǒng)協(xié)議的支持,規(guī)則引擎,以及面向目標級別的程序庫接口。通過備用服務(wù)器節(jié)點提供的系統(tǒng)容錯性能,增強對該集中式節(jié)點數(shù)據(jù)庫的高可靠性訪問。此外,所述網(wǎng)關(guān)(104)提供在電源線上分配不同類型的數(shù)據(jù)流的能力。所述網(wǎng)關(guān)(104)提供的路由處理器,允許在電源線上路由實際上任何傳統(tǒng)的數(shù)據(jù)聯(lián)網(wǎng)服務(wù),如TCP/IP。文檔編號G06F13/00GK1296585SQ99803953公開日2001年5月23日申請日期1999年1月21日優(yōu)先權(quán)日1998年1月22日發(fā)明者A·沃拜克,T·N·李申請人:英特羅杰斯公司