專利名稱:將通信系統(tǒng)中的端口從活動狀態(tài)過渡到待機狀態(tài)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)據(jù)通信,具體來說,涉及使用串行通信總線的 兩個或更多設(shè)備之間的數(shù)據(jù)通信。
技術(shù)背景目前,有各種已知的協(xié)議用于在通過通用總線或備選通信鏈路連 接在一起的兩個或更多電子設(shè)備之間進行通信。這些協(xié)議中最著名的并且最廣泛使用的有USB (通用串行總線)、SATA (串行先進技 術(shù)附屬)、HDMI(高清晰度多媒體接口 )、光纖信道,以及IEEE 1394。IEEE 1394,釆用FireWire ( Apple Computer, Inc.的注冊商 標)和i丄INIC⑧(Sony Corporation的注冊商標)為商標,已經(jīng)廣 泛地用于各種消費類、計算機,以及工業(yè)電子產(chǎn)品中。它特別適用于 諸如數(shù)據(jù)存儲、音頻和視頻、網(wǎng)絡(luò)、總線提供能源的外圍設(shè)備之類的 應(yīng)用中,因為其以高數(shù)據(jù)傳輸速率支持異步和同步數(shù)據(jù),對等配置和 主從配置兩者,菊花鏈和輻射狀配置,以及其有保證的服務(wù)質(zhì)量 (QoS)、低延遲,以及低處理開銷。可以將網(wǎng)絡(luò)構(gòu)想為分成多層,包括,除了其他層,還有物理層 (PHY)和鏈路層。PHY是指網(wǎng)絡(luò)硬件、物理電纜和/或無線連接。PHY 是最基本的網(wǎng)絡(luò)層,只提供傳輸鏈路層的經(jīng)過編碼的輸出的裝置。 PHY負責用戶設(shè)備中的數(shù)字數(shù)據(jù)的表示形式和通過通信信道傳輸?shù)?對應(yīng)信號之間的轉(zhuǎn)換,是其中詳細描述了信令規(guī)范和聯(lián)網(wǎng)規(guī)則的層。 鏈路層是PHY下面的下一層。鏈路層在網(wǎng)絡(luò)中的相鄰節(jié)點之間傳輸 數(shù)據(jù),并一般性地格式化和/或操縱跨PHY傳輸?shù)臄?shù)據(jù),以便與應(yīng) 用連接。IEEE 1394標準最初由電氣與電子工程師學會(IEEE)在IEEE 1394-1995中制定的,標題為IEEE Standard for a High Performance Serial Bus,已經(jīng)修改了兩次,在IEEE 1394a-2000中, 標題為 IEEE Standard for a High Performance Serial Bus-Amendment I,以及在IEEE 1394b-2002中標題為 IEEE Standard for a High Performance Serial Bus-Amendment 2,這里引用 了這些文件作為參考。IEEE 1394a引入了暫停狀態(tài)(在IEEE 1394a - 2000 3.9.5.2中 定義)以及用于進行電源管理的對應(yīng)的恢復狀態(tài)。IEEE 1394b添加 了待機狀態(tài)(在IEEE 1394b-2002 3.10.7.3.1中定義)以及在Beta模 式下操作的設(shè)備的對應(yīng)的恢復狀態(tài)。暫停和待機狀態(tài)兩者不用于普通 串行總線仲裁,而能夠檢測物理電纜斷開連接或恢復信號,因此,降 低了能源消耗,同時可以對物理連接進行連續(xù)的監(jiān)視。IEEE 1394b中待機狀態(tài)與禁用或暫停狀態(tài)相比具有某些優(yōu)點,主要因為作為端口進入或離開待機狀態(tài)的結(jié)果不生成總線重置。這是 有益的,因為總線重置將導致整個總線執(zhí)行總線初始化過程。從PHY 的觀點來看,對于沒有循環(huán)的僅Beta總線,總線初始化一般大約要 花200微秒Oun);如果總線上有一個循環(huán)(或多個循環(huán)),或者如 果總線是混合型總線(即,包含至少一個邊界節(jié)點的操作總線),那 么,總線初始化過程可能要花費長得多的時間時間。從事務(wù)級別來看, 總線重置可能要中斷總線上的通信,并清除PHY中的桂起的請求。 無庸置疑,頻繁的總線重置將顯著降低總線性能,如此,也會降低系 統(tǒng)總的性能,因此,這是不合需要的。令人遺憾的是,利用當前IEEE 1394b規(guī)范,PHY端口并不總 是如預期的那樣過渡到待機狀態(tài)。相反,PHY端口將過渡到暫停狀 態(tài)而其對等端口過渡到待機狀態(tài)。這不能使兩個端口被一個恢復操作同時喚醒,從而待機狀態(tài)的連接返回到活動狀態(tài),因此,這是不合需 要的。此外,當PHY端口進入暫停狀態(tài)或從其暫停狀態(tài)恢復時,將 發(fā)生總線重置。相應(yīng)地,需要增強到IEEE 1394b協(xié)議或其他通信協(xié)議的待機
狀態(tài)的過渡,以便防止不希望的過渡到暫停狀態(tài)而不是待機狀態(tài)。 發(fā)明內(nèi)容根據(jù)如前所述的需求及其他目標,本發(fā)明在其說明性實施例中, 提供了用于將通信系統(tǒng)內(nèi)的端口從活動狀態(tài)過渡到待機狀態(tài)的技術(shù), 而不進入到暫停狀態(tài)或其他非希望的狀態(tài)。如此,本發(fā)明的實施例避 免了在從活動狀態(tài)過渡到省電狀態(tài)時產(chǎn)生總線重置。在本發(fā)明的說明性實施例中,端口可以是PHY端口,而通信系統(tǒng)可以是符合IEEE 1394的通信系統(tǒng)。根據(jù)本發(fā)明的一個方面,將通信系統(tǒng)中的端口從活動狀態(tài)過渡到 待機狀態(tài)的方法包括,傳輸將端口過渡到待機狀態(tài)的信號,以及,在 傳輸將端口過渡到待機狀態(tài)的信號時,將端口從活動狀態(tài)過渡到待機 狀態(tài),而不進入暫停狀態(tài)。端口可以是物理層接口端口,通信系統(tǒng)可 以是符合IEEE 1394的通信系統(tǒng)。根據(jù)本發(fā)明的另 一個方面,用于通信系統(tǒng)的設(shè)備包括至少第一端 口,存儲器和至少一個連接到存儲器和第一端口的處理器。處理器被 配置為使第一端口傳輸將至少笫二端口從活動狀態(tài)過渡到待機狀態(tài) 的信號,以及,在傳輸將第二端口從活動狀態(tài)過渡到待機狀態(tài)的信號 時,將第一端口從活動狀態(tài)過渡到待機狀態(tài),而不進入暫停狀態(tài)。根據(jù)本發(fā)明的另一個方面的數(shù)據(jù)通信系統(tǒng),包括至少一個端口, 用于向至少一個另外的端口傳輸數(shù)據(jù),和/或,從另 一個端口接收數(shù)據(jù)。 數(shù)據(jù)通信系統(tǒng)進一步包括至少一個連接到端口的控制器,控制器用于 將端口過渡到待機狀態(tài),而不進入暫停狀態(tài)。根據(jù)下面的對說明性的實施例的詳細描述,本發(fā)明的這些特點以 及其他特點,優(yōu)點將變得顯而易見,描述應(yīng)與附圖結(jié)合起來閱讀。
圖1是顯示了其中實現(xiàn)了本發(fā)明的技術(shù)的示范性兩設(shè)備通信系 統(tǒng)的方框圖。圖2是顯示了根據(jù)常規(guī)IEEE-1394b通信協(xié)議實現(xiàn)的端口連 接管理器狀態(tài)機的至少一部分的示范性狀態(tài)過渡圖。
圖3是描述了根據(jù)常規(guī)IEEE-1394b通信標準的涉及將端口 從活動狀態(tài)過渡到待機狀態(tài)的模擬信號的示范性時間圖。圖4是顯示了根據(jù)本發(fā)明的實施例的IEEE 1394b端口連接 管理器狀態(tài)機的至少一部分的示范性狀態(tài)過渡圖。圖5是描述了根據(jù)本發(fā)明的實施例的涉及將IEEE 1394b節(jié) 點從活動狀態(tài)過渡到待機狀態(tài)的模擬信號的示范性時間圖。圖6是顯示了根據(jù)本發(fā)明的另一個實施例的IEEE 1394b端 口連接管理器狀態(tài)機的至少一部分的示范性狀態(tài)過渡圖。圖7是顯示了根據(jù)本發(fā)明的實施例的IEEE 1394b端口連接 管理器狀態(tài)機的至少一部分的示范性狀態(tài)過渡圖。圖8是顯示了根據(jù)本發(fā)明的另一個實施例的IEEE 1394b端 口連接管理器狀態(tài)機的至少一部分的示范性狀態(tài)過渡圖,具體實施方式
這里將通過將通信系統(tǒng)端口和對等端口 (以共同的通信總線連接 在一起)從活動狀態(tài)過渡到待機狀態(tài)的示范性方法和設(shè)備,對本發(fā)明 進行描述。本發(fā)明的說明性實施例說明了將一個端口以及其對等端口 從活動狀態(tài)過渡到待機狀態(tài),而不進入暫停狀態(tài),從而避免了產(chǎn)生總 線重置,不管使用的總線速度和/或操作模式如何。盡管這里是結(jié)合物理層接口端口描述本發(fā)明的,但是,可以理解, 本發(fā)明的技術(shù)可以類似地適用于支持待機或備選省電狀態(tài)的其他端 口,可以進行修改,也可以不進行修改,這對于本領(lǐng)域技術(shù)人員是顯 而易見的。盡管這里是結(jié)合符合IEEE 1394的標準描述本發(fā)明的, 但是,可以理解,本發(fā)明的技術(shù)可以類似地適用于支持待機或備選省 電狀態(tài)的其他通信標準和/或非標準的協(xié)議,可以進行修改,也可以不 進行修改,這對于本領(lǐng)域技術(shù)人員是顯而易見的。雖然某些術(shù)語可以 與IEEE 1394b標準一起使用,但是,相同的和/或備選功能語言也 可以類似地適用于其中可以應(yīng)用本發(fā)明的技術(shù)的其他通信協(xié)議。同 樣,這里所使用的變量、函數(shù)、常數(shù)、信號、狀態(tài)等等的某些名稱是 IEEE 1394b標準所說明的那些名稱。對那些本領(lǐng)域技術(shù)人員顯而易
見的是,在不會顯著地改變本發(fā)明的功能的情況下,可以改變特定名 稱、內(nèi)部結(jié)構(gòu),以及實施的裝置。一般而言,除非特別指明,假設(shè)規(guī)范內(nèi)定義的變量充當布爾變量。當變量是TRUE時,已經(jīng)滿足變量的條件。類似地,當變量是 FALSE時,沒有滿足變量的一個或多個條件。這里所使用的符號"!" 代表對應(yīng)于此的變量的邏輯補,而符號"&&"和"||"分別代表邏輯 AND和邏輯OR運算符。圖1是顯示了其中實現(xiàn)了本發(fā)明的技術(shù)的示范性兩設(shè)備數(shù)據(jù)通 信系統(tǒng)100的方框圖。通信可以作為視頻編輯系統(tǒng)、多媒體廣播系 統(tǒng)、網(wǎng)絡(luò)系統(tǒng)等等來實現(xiàn)。通信系統(tǒng)100包括通過通信鏈路106互 連的第一設(shè)備102和第二設(shè)備104。盡管為便于說明只顯示了兩個 設(shè)備,但是,可以理解,本發(fā)明不僅限于任何特定數(shù)量的互連的設(shè)備。 通信鏈路106可以包括無線通信鏈路,例如,蜂窩式、射頻(RF)、 紅外線(IR)、微波、衛(wèi)星等等,還可以包括專用通信線路,例如,電 話、電纜、光纖等等。通信鏈路106可以攜帶若干個信道,通過這 些信道,在第一和第二設(shè)備102、 104之間可以傳輸數(shù)據(jù)。信道可以 具有用來確定在該特定媒體上每秒可以傳輸多少樣本關(guān)聯(lián)的某一數(shù) 據(jù)速率。如本領(lǐng)域技術(shù)人員員所理解的,通過使用多路復用器來將較 低速率的信道聚合到一個較高速率的信道。同樣,也可以通過使用例 如,多路分解器,從較高速率的信道中提取較低速率的信道。第一和第二設(shè)備102、 104可以包括,例如,若干個消費類電子 設(shè)備中的任何一種,包括但不僅限于,數(shù)碼相機、數(shù)字錄像攝像機、 個人數(shù)字助理(PDA)、活動圖像專家組層-3音頻(MP3)設(shè)備、蜂 窩電話等等,計算機外圍設(shè)備,包括但不僅限于個人計算機、打印機、 幀接收器、外部硬盤驅(qū)動器、掃描儀、網(wǎng)絡(luò)集線器等等。在第一設(shè)備 102內(nèi)有鏈路層108,該鏈路層從第一設(shè)備102內(nèi)的電M收數(shù)據(jù), 并向第一設(shè)備102內(nèi)的PHY端口 110傳輸數(shù)據(jù)。PHY端口 110 將數(shù)據(jù)編碼為適當?shù)耐ㄐ艆f(xié)議,以便通過通信鏈路106進行傳輸。 第二設(shè)備104內(nèi)的對等PHY端口 112接收由第一設(shè)備102中的
PHY端口 110傳輸?shù)臄?shù)據(jù)。然后,對等PHY端口 112對接收到 的數(shù)據(jù)進行解碼,并將這樣的經(jīng)過解碼的數(shù)據(jù)提供到第二設(shè)備104 內(nèi)的鏈路層114,以便根據(jù)經(jīng)過解碼的數(shù)據(jù)控制第二設(shè)備104。
對于這里所顯示的說明性實施例,假設(shè)設(shè)備102和104使用 IEEE 1394b通信協(xié)議彼此進行通信,雖然本發(fā)明不僅限于此通信協(xié) 議或任何標準或非標準的通信協(xié)議。盡管可以參考從第一設(shè)備102 到第二設(shè)備104的數(shù)據(jù)的傳輸,但是,數(shù)據(jù)也可以類似地從第二設(shè) 備104傳輸?shù)降谝辉O(shè)備102,從而兩個設(shè)備之間的數(shù)據(jù)傳輸是雙向 的。
由于這里所描述的本發(fā)明的說明性實施例旨在增強串行通信協(xié) 議(即,IEEE 1394b標準)的待機特點,與本發(fā)明的主要相關(guān)性是 分別將第一和第二設(shè)備102和104中的PHY端口 110和112 從活動狀態(tài)(其中,端口能夠檢測所有串行總線信號狀態(tài),并參與普 通總線活動(例如,重置、樹識別、自我識別,以及普通仲裁階段) 直接過渡到待機狀態(tài)。待機是可以用來描述給定端口的低電耗操作模 式的術(shù)語。根據(jù)IEEE 1394b標準,待機是只有Beta模式操作的特 點。如果節(jié)點只有一個活動端口,那么,可以將此端口上的連接置于 待機狀態(tài)。盡管連接處于"待機,,狀態(tài),但是,節(jié)點不參與普通總線活 動,同一個總線上的其他節(jié)點不識別置于"待機"狀態(tài)的節(jié)點的狀態(tài)的 任何變化。如前面所說明的,與連接的暫停操作模式不同,總線重置 不作為節(jié)點進入"待機,,或從"待機,,恢復節(jié)點的過程的一部分而發(fā)生。
第二設(shè)備104中的PHY端口 112可以被視為相對于第一設(shè) 備102中的PHY端口 110的對等PHY。這里可以使用術(shù)語"侄 子,,來定義具有一個處于"待機"狀態(tài)的端口,而所有其他端口 (如果 有的話)都被禁用、斷開連接或暫停的葉節(jié)點。根節(jié)點、具有一個以 上的活動端口的節(jié)點,或具有另一個已經(jīng)處于待機狀態(tài)的端口的節(jié)點 都不能成為"侄子"。連接到"侄子,,節(jié)點的活動節(jié)點可以被稱為"叔叔" 節(jié)點。當一個節(jié)點檢測到包含其節(jié)點標識(ID)和端口地址的待機命 令數(shù)據(jù)包時,該節(jié)點成為"侄子"。雖然"侄子,,節(jié)點不參與普通總線活
動,其"侄子"節(jié)點是一個成員的活動總線, 一般不會識別一個節(jié)點成 為"侄子"時的該節(jié)點的狀態(tài)變化(例如,不發(fā)生總線重置)。如果在 "侄子,,節(jié)點具有一個處于"待機"狀態(tài)的端口時發(fā)生了總線重置,那
么,對等"叔叔"節(jié)點代表"侄子,,節(jié)點代理自我-ID數(shù)據(jù)包(例如,在 自我識別階段或響應(yīng)PHYping數(shù)據(jù)包,由電纜PHY傳輸?shù)腜HY 數(shù)據(jù)包)。
圖2是顯示了根據(jù)常規(guī)IEEE-1394b通信協(xié)議實現(xiàn)的端口連 接管理器狀態(tài)機的至少一部分的示范性狀態(tài)過渡圖200。箭頭代表狀 態(tài)之間的過渡;每一個箭頭上方的文本表示該過渡發(fā)生必需的并且充 分的條件。垂直線和附帶的標記代表狀態(tài),以及在進入到該狀態(tài)調(diào)用 的函數(shù)。IEEE 1394b規(guī)范中包括的端口連接管理器狀態(tài)機定義了 13 個狀態(tài),包括,斷開連接(P0)、恢復(Pl)、活動(P2)、暫停始發(fā)端 (P3)、暫停目標(P4)、已暫停(P5)、禁用(P6)、待機始發(fā)端(P7)、 待機目標(P8)、待機(P9)、恢復(PIO)、未測試(Pll),以及循環(huán)禁 用(P12)。然而,圖200只描述了優(yōu)選情況下本發(fā)明的說明性實施例 所適用的過渡,即,活動、待機始發(fā)端、待機目標、待機、暫停始發(fā) 端、暫停目標和暫停狀態(tài)(例如,P2:P7、 P2:P8、 P2:P3、 P2:P4)中 的一個或多個之間的那些過渡。
根據(jù)圖2所顯示的標準IEEE1394b協(xié)議,當且僅當,其中, 變量"rx_ok,, 、 "do—standby"和"signaled"或其功能等效變量都是 TRUE,端口將從"活動"狀態(tài)(P2)過渡到"待機始發(fā)端,,狀態(tài)(P7)(例 如,P2:P7過渡)。同樣,根據(jù)圖2所顯示的標準IEEE 1394b協(xié) 議,當且僅當,其中,變量"rx—ok"是 FALSE或變量 "suspend—request"和"signaled"兩者都是TRUE,端口從"活動,,狀態(tài) (P2)過渡到"暫停始發(fā)端"狀態(tài)(P3)(例如,P2:P3過渡)。
下面的附錄1顯示了可以由PHY端口 110 ^^用的以C編 程語言編寫的示范性源代碼。此說明性示例是來自IEEE 1394b標準 的"start—tx—packet()"函數(shù)。為了啟動進入待機狀態(tài)的過程,PHY端 口將調(diào)用此函數(shù),然后,該函數(shù)將發(fā)送"STANDBY"信號(這里,在
標記為"STANDBY,,的代碼行中),等待規(guī)定的時間段(等待時間), 然后,將"signaled"變量設(shè)置為TRUE(這里,在標記為"SIGNALED" 的代碼行中)。此等待時間的長度將隨著連接速度及其他設(shè)置而變化; 如果總線是混合型總線,意思是指總線包括舊式(IEEE 1394和/或 IEEE 1394a )和IEEE 1394b節(jié)點,則是最長的(例如,大致320納 秒(ns))。表1具有用于實現(xiàn)此等待時間的每一行示范性代碼,用 在混合型總線的情況下,該特定行負責的等待時間的部分(以納秒表 示)進行標記。這些等待時間(例如,80ns、 20ns、 40ns、 20ns,以 及160ns)的總和是320ns,這是混合型總線的近似的超時時段。
在接收到"STANDBY,,信號時,其對等端口 112,才艮據(jù)如圖2所 示的狀態(tài)圖,將從"活動"狀態(tài)(P2)過渡到"待機目標"狀態(tài)(P8),如 此執(zhí)行"standby_target_ac ons(),,函數(shù),該函數(shù)又將調(diào)用 "activate—connect_detect(RECEIVE—OK_HANSHAKE),,函數(shù)。對于 PHY的端口,后一函數(shù)將把,,bport—sync—ok"(相當于Beta端口的 "rx_ok",如函數(shù)"receive—monkor()"所表示的)i殳置為FALSE,如 果這在如前所述的超時時段內(nèi)發(fā)生,在"signaled,,是TRUE之前, "rxjk,,將是FALSE。相應(yīng)地,PHY端口 110將從"活動,,狀態(tài)(P2) 過渡到"暫停始發(fā)端"狀態(tài)(P3),因為"rxjk"是FALSE,而不是過 渡到"待機始發(fā)端,,狀態(tài)(P7),因為"signaled"不成為TRUE,直到 "rx—ok"不再是TRUE之后。
圖3是描述了根據(jù)常規(guī)IEEE-1394b通信協(xié)議的涉及將PHY 節(jié)點從"活動,,狀態(tài)過渡到"待機,,狀態(tài)的模擬信號的示范性時間圖 300。從圖中顯而易見地看出,根據(jù)常規(guī)IEEE 1394b協(xié)議,PHY端 口 IIO(參見圖1)過渡到"暫停始發(fā)端,,狀態(tài)(P3),而不是過渡到想 要的"待機始發(fā)端"狀態(tài)(P7)。在時間t0,變量"rxjk"是TRUE, 變量"signaled"是FALSE,變量"do—standby"是FALSE,變量 "force—disconnect"是FALSE, "port—state,,是表示端口處于"活動" 狀態(tài)的P2。在時間tl, "do—standby,,是TRUE,表示請求端口過渡 到"待機始發(fā)端,,狀態(tài)(P7)。在等待時間(例如,320ns)之后,由于"signaled,,仍是FALSE, "do—standby,,成為FALSE, "rx—ok,,成為 FALSE,而"por^state,,是P3,表示端口已經(jīng)過渡到"暫停始發(fā)端"狀 態(tài)而不是想要的"待機始發(fā)端,,狀態(tài)。在時間t3, "signaled"成為 TRUE,但此時端口已經(jīng)過渡到"暫停始發(fā)端,,狀態(tài)。如此,在這些情 況下,端口將不會過渡到想要的"待機始發(fā)端"狀態(tài)。相反,端口將過 渡到"暫停始發(fā)端"狀態(tài),而最終過渡到"暫停狀態(tài)",從而在進入并離 開"暫停狀態(tài)"時不希望地產(chǎn)生總線重置。
本發(fā)明的一個方面避免了當請求待機狀態(tài)時將PHY端口 110 過渡到"暫停始發(fā)端,,狀態(tài),從而有利地校正了常規(guī)IEEE 1394b協(xié)議 中的固有缺陷。為了校正此問題,根據(jù)本發(fā)明的另一個方面,當 "d(^standby"是TRUE時,修改從活動狀態(tài)(P2)到"暫停始發(fā)端,, 狀態(tài)(P3)的過渡,以忽視"rx一ok"的丟失。換句話說,在"rxjk"是 FALSE的情況下,不應(yīng)該觸發(fā)過渡,除非"d(^standby"也是FALSE。 在一個實施例中,P2:P3過渡不同于IEEE 1394b規(guī)范中的過渡,即
(!rx一ok II (suspend—request " signaled))"
:(Befa node " 一 loop一to一detect " !bport—sync一o)O " !force—disconnect
變?yōu)?br>
"!cio standby " !rx一o)O II (suspend—request " signaled))" !(BetS一mode " loop_Eo_detect " !bport一sync—ok)" !force—disconnect).
本發(fā)明的另一個方面改變了從"活動,,狀態(tài)(P2)到"待機始發(fā) 端,,狀態(tài)(P7)的過渡,以便它不再要求"rx—ok"為TRUE。此修改允 許端口 一旦聲明了 "signaled"并且在聲明"rxjk,,之前從P2過渡到 P7。在一個實施例中,P2:P3過渡不同于IEEE 1394b規(guī)范中的過渡, 即
rx一ok " do—standby " signaled " 1 force—disconnect
變?yōu)?br>
do—standby " signaled " ! force—ciisc:or:nect
本發(fā)明的實施例可以彼此獨立地實現(xiàn)上述任何一個方面。然而, 優(yōu)選實施例同時包括這兩個方面。
參考圖4,顯示了根據(jù)同時包括上文所提及的兩個方面的本發(fā)明
的實施例的IEEE 1394b端口連接管理器狀態(tài)機的至少一部分的示 范性狀態(tài)過渡圖400。如在圖2所描述的狀態(tài)過渡圖200中那樣, 說明性狀態(tài)過渡圖400描述了活動狀態(tài)(P2)和"暫停始發(fā)端,,(P3)、 "暫停目標"(P4)、"暫停"(P5)、"待機始發(fā)端"(P7)、"待機目標,,(P8) 以及待機(P9)狀態(tài)中的一個或多個之間的過渡。從圖中顯而易見地 看出,與圖2中所描述的狀態(tài)過渡圖200相比,某些狀態(tài)轉(zhuǎn)換已經(jīng) 修改。
圖5是描述了根據(jù)本發(fā)明的實施例的涉及將PHY節(jié)點從"活 動"狀態(tài)過渡到"待機"狀態(tài)的模擬信號的示范性時間圖500。從圖中 顯而易見地看出,時間圖500模擬了 PHY端口 110如何(參見圖 1)過渡想要的"待機始發(fā)端"狀態(tài)而不是"暫停始發(fā)端"狀態(tài)。在時間 t0,變量"rx—ok,,是TRUE,變量"signaled"是FALSE,變量 "do—standby"是 FALSE , 變量"force_disconnect"是 FALSE , "port—state"是表示端口處于活動狀態(tài)的 P2 。在時間 tl , "do—standby,,是TRUE,表示請求端口過渡"待機始發(fā)端,,狀態(tài)(P7)。 在時間t2, "rxjk"成為FALSE;然而,由于實施了本發(fā)明的一個 方面,這不再會導致過渡到"暫停始發(fā)端,,狀態(tài)。在時間t3, "signaled" 成為TRUE, "por^state,,成為P7,表示端口已經(jīng)過渡到"待機始發(fā) 端"狀態(tài)。 一旦"signaled"成為TRUE,此過渡就會發(fā)生,盡管"rxjk" 是FALSE,因為實施了本發(fā)明的一個方面。如此,本發(fā)明的此實施 例糾正了原始IEEE 1394b協(xié)i義中的固有的問題。
應(yīng)該注意,本發(fā)明不僅限于上文所描述的開始和結(jié)束過渡。例如, 可以對于已經(jīng)才艮據(jù)IEEE 1394 Trade Association的 Technical Bulletin TB2002001 (標題為1394b Clarifications and Errata,以下 簡稱為"勘誤表4.25")修改的狀態(tài)機,實現(xiàn)本發(fā)明的一個或多個方面。 勘誤表4.25建議修改P2:P3過渡以忽視"rxjk,,的"反",以便確 保設(shè)備將從活動狀態(tài)(P2)過渡到"禁用"狀態(tài)(P6),而不是過渡到 "暫停始發(fā)端,,狀態(tài)(P3)。
圖6顯示了示范性狀態(tài)過渡圖600,顯示了其中根據(jù)勘誤表
4.25修改了 P2:P3過渡的IEEE 1394b端口連接管理器狀態(tài)機的 至少一部分。如在圖2所描述的狀態(tài)過渡圖200中那樣,說明性狀 態(tài)過渡圖600描述了活動狀態(tài)(P2)和"暫停始發(fā)端,,(P3)、"暫停目 標"(P4)、"暫停,,(P5)、"待機始發(fā)端"(P7)、"待機目標,,(P8)以及待機 (P9)狀態(tài)中的一個或多個之間的過渡。具體來說,從圖中顯而易見地 看出,根據(jù)本發(fā)明的一個方面,P2:P3過渡已經(jīng)從(!rx—ok I (suspend—request " signaled))"! (Bera一mocie " loop—:o—de:e:t " ,bport—sync一ok)"!force—disconnect修改為((!rx—ok " !suspend—request " !disable一request) I I (suspend—request " signaled))"i(Beta mode loop一to一detecc " !bport—syne—ok)" !force—disconnect ,圖7描述了示范性狀態(tài)過渡圖700,顯示了其中根據(jù)勘誤表 4.25并根據(jù)本發(fā)明的至少一個方面修改了 P2:P3過渡的IEEE 1394b端口連接管理器狀態(tài)機的至少一部分。如在圖2所描述的狀 態(tài)過渡圖200中那樣,說明性狀態(tài)過渡圖700描述了活動狀態(tài)(P2) 和"暫停始發(fā)端"(P3)、"暫停目標,,(P4)、"暫停"(P5)、"待機始發(fā) 端,,(P7)、"待機目標"(P8)以及待機(P9)狀態(tài)中的一個或多個之間 的過渡。具體來說,從圖中顯而易見地看出,才艮據(jù)本發(fā)明的一個方面, P2:P3過渡已經(jīng)從《!rx—ok I I (suspend—request " signaled))"!(Beta—mode " loop—to一detect " !bport—sync—ok)"!force—disconnect修改為((! rx ok " !suspend—request " ,disable—request " !do—standby) (suspend—request: " signaled))"!(Beta—mode " loop—to—detect " !bport—sync—ok)" !force_disconnect ,圖8顯示了示范性狀態(tài)過渡圖800,顯示了其中根據(jù)勘誤表 4.25并根據(jù)本發(fā)明的至少一個方面修改了 P2:P3過渡并且其中根據(jù) 本發(fā)明的另一個方面修改了 P2:P7過渡的IEEE 1394b端口連接管 理器狀態(tài)機的至少一部分。如在圖2所描述的狀態(tài)過渡圖200中那樣,說明性狀態(tài)過渡圖800描述了活動狀態(tài)(P2)和"暫停始發(fā) 端"(P3)、"暫停目標"(P4)、"暫停"(P5)、"待機始發(fā)端,,(P7)、"待機目 標"(P8)以及待機(P9)狀態(tài)中的一個或多個之間的過渡。具體來說, 從圖中顯而易見地看出,根據(jù)本發(fā)明的一個方面,P2:P3過渡已經(jīng)從(!rx一ok !I (suspend—request " signaled)) &&! (Beta—mode " loop—t_o—detect " !bport—sync_ok> "!force—disconnect修改為((! rx—ok && ! suspend—request && !disable—request " ! cio—scsnciby) {suspend—request " signaled))"! (Beta—mode " loop_to_ciet:ect " ! bport—sync—ok) && ! force—disconnect:,而P2:P7過渡已經(jīng)從rx一ok " do standby " signaled " ! force—disconnect修改為do—standby " signaled " !force—disconnect ,只作為示例,通過把端口連接管理器狀態(tài)機的相關(guān)部分從如圖2 所示的狀態(tài)過渡圖200中所描述的狀態(tài)修改為如圖6所示的狀態(tài) 過渡圖600中所描述的狀態(tài),對標準IEEE 1394b端口實現(xiàn)勘誤表 4.25,然后,通過把端口連接管理器狀態(tài)機的相關(guān)部分從如圖6所示 的狀態(tài)過渡圖600中所描述的狀態(tài)修改為如圖8所示的狀態(tài)過渡 圖800中所描述的狀態(tài),實現(xiàn)本發(fā)明的一個或多個方面。作為另一 個示例,通過把端口連接管理器狀態(tài)機的相關(guān)部分從如圖6所示的 狀態(tài)過渡圖600中所描述的狀態(tài)修改為如圖7所示的狀態(tài)過渡圖 700中所描述的狀態(tài),可以對已經(jīng)根據(jù)勘誤表4.25而修改過的 IEEE 1394b端口來實現(xiàn)本發(fā)明的一個方面,然后,通過把端口連接 管理器狀態(tài)機的相關(guān)部分從如圖7所示的狀態(tài)過渡圖700中所描 述的狀態(tài)修改為如圖8所示的狀態(tài)過渡圖800中所描述的狀態(tài),實 現(xiàn)本發(fā)明的另一個方面。還可以通過把端口連接管理器狀態(tài)機的相關(guān) 部分從如圖2所示的狀態(tài)過渡圖200中所描述的狀態(tài)修改為如圖 6所示的狀態(tài)過渡圖600中所描述的狀態(tài),對標準IEEE 1394b端 口實現(xiàn)勘誤表4.25和本發(fā)明的一個方面(或多個方面),然后,通
過把端口連接管理器狀態(tài)機的相關(guān)部分從如圖6所示的狀態(tài)過渡圖 600中所描述的狀態(tài)修改為如圖8所示的狀態(tài)過渡圖800中所描 述的狀態(tài),實現(xiàn)本發(fā)明的另一個方面。對于標準IEEE 1394b端口的優(yōu)選實施例將是把其端口連接管 理器狀態(tài)機從如圖2所示的狀態(tài)過渡圖200中所描述的狀態(tài)修改 為如圖8所示的狀態(tài)過渡圖中所描述的狀態(tài),以便勘誤表4.25和本 發(fā)明的說明性實施例中所闡述的有益的修改。再次參考圖l,可以在一個或多個設(shè)備102和104中實現(xiàn)本發(fā) 明的實施例的方法。例如,設(shè)備102可以包括處理器,連接到處理 器的存儲器(例如,通過總線或其他連接裝置),以及用于與處理器 連接的輸入/輸出(I/O)電路。處理器可以被配置為執(zhí)行本發(fā)明的方 法的至少一部分??梢岳斫猓@里所使用的術(shù)語"處理器"可以包括任何處理設(shè)備, 如,包括中央處理單元(CPU)和/或其他的處理電路(例如,網(wǎng)絡(luò)處 理器、數(shù)字信號處理器(DSP)、微處理器等等)。另外,可以理解, 術(shù)語"處理器"可以是指一個以上的處理設(shè)備,與一個處理設(shè)備關(guān)聯(lián)的 各種元件可以由其他處理設(shè)備進行共享。這里所使用的術(shù)語"存儲器" 可以包括存儲器及與處理器或CPU關(guān)聯(lián)的其他計算機可讀取的介 質(zhì),例如,隨機存取存儲器(RAM)、只讀存儲器(ROM)、固定存儲 介質(zhì)(例如,硬盤驅(qū)動器),可移動存儲介質(zhì)(例如,磁盤),快閃 存儲器等等。此外,這里所使用的術(shù)語"1/0電路,,可以包括,例如, 一個或多個輸入設(shè)備(例如,鍵盤、鼠標等等),用于向處理器輸入 數(shù)據(jù),和/或一個或多個輸出設(shè)備(例如,打印機,監(jiān)視器等等),用 于呈現(xiàn)與處理器關(guān)聯(lián)的結(jié)果。相應(yīng)地,如這里所描述的用于執(zhí)行本發(fā)明的方法的應(yīng)用,或其軟 件組件,包括指令或代碼,可以存儲在一種或多種關(guān)聯(lián)的存儲介質(zhì)中 (例如,ROM、固定或可移動存儲器),當準備被利用時,全部加 載或部分地加栽(例如,加載到RAM中)并由處理器執(zhí)行。在任何 情況下,可以理解,如圖1所示的組件的至少一部分可以以硬件、 軟件的各種形式,或其組合來實現(xiàn)(例如,具有關(guān)聯(lián)的存儲器的一個或多個DSP,專用集成電路、功能電路、具有關(guān)聯(lián)的存儲器的一個或 多個可操作地編程的通用數(shù)字計算機等等)。給定了這里所提供的本 發(fā)明的原理,那些本領(lǐng)域技術(shù)人員將能夠設(shè)想本發(fā)明的組件的其他實 現(xiàn)方式。本發(fā)明的技術(shù)的至少一部分可以以集成電路來實現(xiàn)。在形成集成 電路時,在半導體片的表面上通常以重復的模式制造多個相同的小 片。每一個芯片都包括這里所描述的器件,并可以包括其他結(jié)構(gòu)或電 路。從晶片切割單個小片,然后,作為集成電路封裝。那些相關(guān)技術(shù) 領(lǐng)域的人將知道如何切割晶片和封裝小片,以生產(chǎn)集成電路。如此制 造的集成電路被視為本發(fā)明的一部分。雖然這里是參考附圖描述本發(fā)明的說明性實施例的,可以理解, 本發(fā)明不僅限于那些準確的實施例,在不偏離所附的權(quán)利要求的范圍 的情況下,那些相關(guān)技術(shù)領(lǐng)域的人可以作出各種其他更改和修改。
附錄ls""—tx_pack t fspe dCode pkc一3pecd, f'"Type p", bool"n send _cycle—.,tart I ("::DS—stuck) i max—beta—tiner ■ O,'1cur—,peed - pfct—speed,cur—format = pkf.,'egacy—phase—expected ', FALSE.'data—null ^packet = FALSE..:(send—cycle—start) 1 ""ink 3_Link)i K_DATA_indication(odd-iscch_phasc PH一ISOCH一ODD: PH—IS0CH_SVEN, 0, 0, 01 ,'if rBcta—tnodetil) pcrtTarb", DA A_Z>RE5"IX: send_eon"ol(odd_>soch_phas*e CYCLEJTART一ODD: CYCLE^START_EVEM, .'for " = 0. i < NPORT; i —1 (二 f 1d二sat)le—::equc3t l 二 1 " portTarb(signal—port — ipo"Tai:b (signal—po" ■〗 else if fdo—3tandbyUl " portTarb(signal一port — j,Phy_respons i ,STANDBY1 J// STANDBYil Usignal—port , 》 KPCRT) " (c-jr_specd > mir.—opera"ng一specd) 1cur一speed ■ mn—operating—speed,' for (i ■ i < NPOaT.. i"l :*speed_OKM " F/VLSt,'tilae if (: ld"able一request Ul U suspend—request II do_stondt>yi)II phy_ response) I speed_OK|il ■ (cur一speed " po"_spee<Mil > " (Beta—modcUl H pkt =■ LEGAC"; "LE;GACm " Umk -== Lesacy一Ltr.'zO " (cur_speed ■ S103;;po"Tarb", DATA一PRE")O ; else " 〖speed—OK!i"(portTapccci(i, cur—speed, pkt),-1 else porr.Tarb(i, pknLEGACY " DATA-PWIX : DATA_HUL", w"t—symbol time (cur_speed);// 80nsfor " 一 D,. i < NPORT,'if (, (disabJe_"*quest |ij il suspend一request (i 1 || <Jo_standby (i)|| phy_ response)"(Bcta一raodeli" po"T"b"- speed一OK(U II pkt == EXCACY * OATA_PRE"X : DATA—NUUJ ,"((cur—spced < SBOOl " 1Legacy一synbo1—count (cur—apeed)2 > MIH—DELt:TAIUX_SYMBOL_TIMEM deletab二C-Synbo二—time = Legacy—synbol一count lcui:_ pccdi * 2.*if <pkt 一一 u;gw:" 1wai、二cgiicy—ti加ISPEE3—S二GNAL—LENGTH - I'egacy一sym]Doi—ccu::t (c'jr—spccd) >; for " C,' i < NPORT: i")if (1 (disable—rcquc" U 1 II suspend—reque,t | U I I do—3tandby U)I, phy response)waz_Legacy_"me (DATA—PREI"_H0L01 ,' if (cur_apeed -- S100>wa二t—Legacyjinc (2*Legacy_SYTnbcl_count (SIC3) - (SPEtD—SISKAL一LENGTH"OATA—PRF:f:X—卜 ,else wdit_symbol_tiinc<cur_speed ; wait_U*gacy_ti:ne (del"able一aymbo1—time) ,■ if (signal jsort !" N ORTl f for (i i <仲ORT,-""disable—request (i I II suspend—requesti 1 II do一stanctby(il) " ,phy—responsc) portfarb(i, r"£ ,'// 20ns〃 20"s〃 I60nssignaled (aignal_po" !一 MPOBT),-it (signal ;ort '" NPOR"( for (i = !■ < KPORT'- 二"lif < Idiaablc—rcqucsc U 1 II suspend—request 11 i II do_st、、r dby ( i i) " ' phy_responsc> while fact二ve111)// SIGNALED
權(quán)利要求
1.一種將通信系統(tǒng)中的端口從活動狀態(tài)過渡到待機狀態(tài)的方法,所述方法包括下列步驟傳輸將端口過渡到待機狀態(tài)的信號;以及在傳輸所述將端口過渡到待機狀態(tài)的信號時,將端口從活動狀態(tài)過渡到待機狀態(tài),而不進入暫停狀態(tài)。
2. 根據(jù)權(quán)利要求1所述的方法,進一步包括下列步驟 當傳輸所述將端口過渡到待機狀態(tài)的信號時,激活指示器;以及 確保當指示器處于活動狀態(tài)時不進入暫停狀態(tài)。
3. 根據(jù)權(quán)利要求1所述的方法,進一步包括當?shù)诙甘酒魈幱?活動狀態(tài)時,在去激活第一指示器時進入待機狀態(tài)的步驟。
4. 根據(jù)權(quán)利要求1所述的方法,進一步包括在激活第一指示器 時立即進入待機狀態(tài),不管第二指示器的狀態(tài)如何。
5. 根據(jù)權(quán)利要求1所述的方法,其中,通信系統(tǒng)是符合IEEE 1394的通信系統(tǒng),所述方法進一步包括下列步驟確保當?shù)谝蛔兞?"rxjk"是FALSE時不進入暫停狀態(tài),除非第二變量"do—standby,, 也是FALSE 。
6. 根據(jù)權(quán)利要求5所述的方法,其中,確保步驟包括下列步驟 修改端口連接狀態(tài)機中的控制從活動狀態(tài)過渡到暫停狀態(tài)的邏輯表 達式。
7. 根據(jù)權(quán)利要求5所述的方法,其中,確保步驟包括下列步驟 通過用端口連接狀態(tài)機中的條件"(!do—standby || !rx—ok)"替換條件 "!rx一ok",修改端口連接狀態(tài)機中的控制從活動狀態(tài)過渡到暫停狀態(tài) 的邏輯表達式,其中,"!,,代表邏輯補,而"ll"代表邏輯OR函數(shù)。
8. 根據(jù)權(quán)利要求6所述的方法,其中,修改步驟包括作為端 口連接狀態(tài)機中的控制從活動狀態(tài)過渡到暫停狀態(tài)的邏輯表達式中 的條件,刪除變量"rx一ok"的賦值。
9. 一種用于通信系統(tǒng)中的設(shè)備,所述設(shè)備包括至少第一端口; 存儲器;以及至少一個耦接到所述存儲器和所述至少第一端口的處理器,所述 至少一個處理器被配置為使所述至少第一端口傳輸將至少第二端口 從活動狀態(tài)過渡到待機狀態(tài)的信號;以及在傳輸將至少笫二端口從活 動狀態(tài)過渡到待機狀態(tài)的信號時,將所述至少第一端口從活動狀態(tài)過 渡到待機狀態(tài),而不進入暫停狀態(tài)。
10.—種數(shù)據(jù)通信系統(tǒng),包括至少一個端口 ,用于將數(shù)據(jù)傳輸?shù)街辽僖粋€另外的端口和從所述 至少一個另外的端口接收數(shù)據(jù)兩者中的至少一個;以及至少一個耦接到端口的控制器,所述控制器用于將至少一個端口 過渡到待機狀態(tài),而不進入暫停狀態(tài)。
全文摘要
一種將通信系統(tǒng)中的端口從活動狀態(tài)過渡到待機狀態(tài)的方法,包括傳輸將端口過渡到待機狀態(tài)的信號,以及,在傳輸將端口過渡到待機狀態(tài)的信號時,將端口從活動狀態(tài)過渡到待機狀態(tài),而不進入暫停狀態(tài)。端口可以是物理層接口端口,通信系統(tǒng)可以是符合IEEE 1394標準的通信系統(tǒng)。
文檔編號H04L29/06GK101136918SQ20071010427
公開日2008年3月5日 申請日期2007年5月23日 優(yōu)先權(quán)日2006年8月30日
發(fā)明者劉勁松, 周海峰, 文 朱, 許前高 申請人:艾格瑞系統(tǒng)有限公司