本發(fā)明是有關(guān)于通用串行總線(usb,universalserialbus)傳輸方法,尤其是有關(guān)于延伸usb主機(jī)與usb裝置之間的傳輸范圍的方法以用于等時(shí)傳輸。
背景技術(shù):
電子裝置之間利用usb協(xié)議的數(shù)據(jù)傳輸具有受限的范圍,一般為幾公尺。可延伸usb數(shù)據(jù)傳輸范圍的延伸裝置已經(jīng)被敘述過。例如,美國專利公告號第6,381,666號敘述了「一種可用以延伸標(biāo)準(zhǔn)usb裝置的范圍的方法及設(shè)備。一延伸范圍集線器予以提供,其包含一局域擴(kuò)充器(lex,localexpander)及遠(yuǎn)程擴(kuò)充器(rex,remoteexpander),其最遠(yuǎn)可相隔例如一百公尺」(第6,381,666號專利的摘要)。此專利解釋了受限傳輸范圍的主要原因在于「當(dāng)主機(jī)控制器指示一特定裝置將其信息放置到共享總線上時(shí),所要求的信息必須在產(chǎn)生該指示的該主機(jī)控制器的十六『位時(shí)間』內(nèi)由主機(jī)控制器接收。實(shí)際上,如此確保了usb規(guī)格可藉由限制沒有傳輸信息的期間而提供高效率的帶寬使用。然而,這些要求亦限制了usb裝置的實(shí)際范圍…」(同一專利的第2欄第17-43行)的要求。第6,381,666號專利描述了一種在一延伸距離上的主機(jī)控制器與周邊裝置之間傳送等時(shí)usb數(shù)據(jù)串流的方法,其包含下列步驟:「a.從主機(jī)控制器饋入一第一原始向外數(shù)字信號至局域擴(kuò)充單元,以及響應(yīng)判斷出局域擴(kuò)充單元尚未擁有該向外數(shù)字信號所要求的數(shù)據(jù),傳遞具有長度為零的載荷的綜合數(shù)據(jù)封包至主機(jī)控制器;b.在一信號分配系統(tǒng)上傳送該向外數(shù)字信號以作為一向外傳輸信號;c.接收該向外傳輸信號以作為位于遠(yuǎn)程擴(kuò)充單元的一第一原始向外數(shù)字信號;d.從該遠(yuǎn)程擴(kuò)充器傳遞該第一原始向外數(shù)字信號至至少一個(gè)周邊裝置;e.于該遠(yuǎn)程擴(kuò)充器接收來自該至少一個(gè)周邊裝置的一響應(yīng)數(shù)字信號;f.在該信號分配系統(tǒng)上傳送該響應(yīng)數(shù)字信號以作為一響應(yīng)傳輸信號;g.接收該響應(yīng)傳輸信號以作為位于該局域擴(kuò)充器的一響應(yīng)數(shù)字信號;h.儲存該響應(yīng)數(shù)字信號以作為已儲存的響應(yīng)數(shù)字信號,直到接收到下一個(gè)來自該主機(jī)控制器的原始向外數(shù)字信號,其中下一個(gè)信號是與該第一原始向外數(shù)字信號相同或類似;以及i.轉(zhuǎn)發(fā)該已儲存的響應(yīng)數(shù)字信號至該主機(jī)控制器,以響應(yīng)該下一個(gè)原始向外數(shù)字信號?!?同一專利的再審查專利的請求項(xiàng)1;亦參考圖12及圖9)。步驟a.所提到的內(nèi)含有長度為零的載荷的綜合數(shù)據(jù)封包可用以滿足usb協(xié)議的時(shí)序要求,同時(shí)不會對協(xié)議所攜帶的實(shí)際信息造成干擾(同一專利的第15欄第58-63行)。第6,381,666號專利描述了兩個(gè)其他的用以傳送等時(shí)usb數(shù)據(jù)串流的方法;在這兩個(gè)方法中,響應(yīng)判斷出局域擴(kuò)充單元尚未擁有該向外數(shù)字信號所要求的數(shù)據(jù),局域擴(kuò)充器不傳送響應(yīng)或者傳送否定應(yīng)答封包(negativeacknowledgement(nak)packet)至主機(jī)控制器(分別參照同一專利的圖8及圖19)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明是針對用以延伸等時(shí)usb傳輸?shù)膫鬏敺秶姆椒跋嚓P(guān)設(shè)備。
本發(fā)明的其他特征及優(yōu)點(diǎn)將會在下列描述中提出,從下列描述將得以清楚了解部份特征或優(yōu)點(diǎn),或者藉由實(shí)施本發(fā)明可得知本發(fā)明的其他特征及優(yōu)點(diǎn)。本發(fā)明的目的及其他優(yōu)點(diǎn)將會藉由下列書面說明及其權(quán)利要求與附圖中所特別指出的結(jié)構(gòu)所實(shí)現(xiàn)及達(dá)到。
為了達(dá)到這些及/或其他目的,如本說明書所具體說明及廣泛地描述,本發(fā)明提供一種延伸通用串行總線(usb)主機(jī)與等時(shí)usb傳輸裝置之間的傳輸范圍以用于等時(shí)數(shù)據(jù)傳輸?shù)姆椒ǎ浒?a)提供第一延伸裝置,上述第一延伸裝置通過第一usb纜線耦合至上述usb主機(jī);(b)提供第二延伸裝置,上述第二延伸裝置通過第二usb纜線耦合至上述等時(shí)usb傳輸裝置;(c)通過非usb纜線將上述第一延伸裝置及上述第二延伸裝置彼此耦合;(d)上述usb主機(jī)傳送第一數(shù)據(jù)要求;以及(e)為響應(yīng)接收到上述第一數(shù)據(jù)要求,上述第一延伸裝置傳送第一數(shù)據(jù)封包至上述usb主機(jī),上述第一數(shù)據(jù)封包內(nèi)含具有非零長度的數(shù)據(jù)載荷,其中上述數(shù)據(jù)載荷是上述第一延伸裝置所產(chǎn)生的數(shù)據(jù)或?yàn)橄惹皬纳鲜龅葧r(shí)usb傳輸裝置接收的數(shù)據(jù),上述先前從上述等時(shí)usb傳輸裝置接收的數(shù)據(jù)是來自先前的數(shù)據(jù)通信對話且儲存于上述第一延伸裝置的緩沖器內(nèi)。
于另一觀點(diǎn)中,本發(fā)明提供一種用于等時(shí)數(shù)據(jù)傳輸?shù)姆椒?,上述方法?shí)施于通用串行總線(usb)數(shù)據(jù)傳輸系統(tǒng)中,上述系統(tǒng)包含usb主機(jī)、等時(shí)usb傳輸裝置、通過第一usb纜線耦合至上述usb主機(jī)的第一延伸裝置、通過第二usb纜線耦合至上述等時(shí)usb傳輸裝置的第二延伸裝置,上述第一延伸裝置及上述第二延伸裝置通過非usb纜線彼此耦合,上述方法包含:(a)上述usb主機(jī)傳送第一數(shù)據(jù)要求至上述第一延伸裝置;(b)為響應(yīng)上述第一數(shù)據(jù)要求,上述第一延伸裝置傳送第一數(shù)據(jù)封包至上述usb主機(jī),上述第一數(shù)據(jù)封包內(nèi)含具有非零長度的第一數(shù)據(jù)載荷,其中上述第一數(shù)據(jù)載荷是上述第一延伸裝置所產(chǎn)生的數(shù)據(jù)或?yàn)橄惹皬纳鲜龅葧r(shí)usb傳輸裝置接收的數(shù)據(jù),上述先前從上述等時(shí)usb傳輸裝置接收的數(shù)據(jù)是來自先前的數(shù)據(jù)通信對話且儲存于上述第一延伸裝置的緩沖器內(nèi);(c)上述第一延伸裝置轉(zhuǎn)發(fā)上述第一數(shù)據(jù)要求至上述第二延伸裝置;(d)上述第二延伸裝置轉(zhuǎn)發(fā)上述第一數(shù)據(jù)要求至上述等時(shí)usb傳輸裝置;(e)上述等時(shí)usb傳輸裝置產(chǎn)生第二數(shù)據(jù)封包以響應(yīng)上述第一數(shù)據(jù)要求并將上述第二數(shù)據(jù)封包傳送至上述第二延伸裝置;(f)上述第二延伸裝置將上述第二數(shù)據(jù)封包轉(zhuǎn)發(fā)至上述第一延伸裝置;(g)上述第一延伸裝置將上述第二數(shù)據(jù)封包儲存于上述緩沖器中;(h)上述usb主機(jī)傳送一第二數(shù)據(jù)要求至上述第一延伸裝置;以及(i)為響應(yīng)上述第二數(shù)據(jù)要求,上述第一延伸裝置將儲存于上述緩沖器中的上述第二數(shù)據(jù)封包傳送至上述usb主機(jī)。
于另一觀點(diǎn)中,本發(fā)明提供一種計(jì)算機(jī)程序產(chǎn)品,其包含計(jì)算機(jī)可使用非瞬時(shí)媒體(例如內(nèi)存或儲存裝置),其具有計(jì)算機(jī)可讀程序代碼內(nèi)嵌于其中以用于控制數(shù)據(jù)處理設(shè)備,上述計(jì)算機(jī)可讀程序代碼是配置成使得上述數(shù)據(jù)處理設(shè)備執(zhí)行上述方法。
應(yīng)當(dāng)理解,上述一般性的描述及下述詳細(xì)敘述是示例性且解釋性的,且意欲進(jìn)一步解釋權(quán)利要求所請的本發(fā)明。
附圖說明
圖1是根據(jù)本發(fā)明的一實(shí)施例概要性地顯示通用串行總線(usb)延伸系統(tǒng)。
圖2、圖3及圖4是根據(jù)本發(fā)明的一實(shí)施例概要性地顯示通用串行總線通信方法。
主要組件符號說明:
10:usb主機(jī)
20:第一延伸裝置/局域延伸器
21、41:usb裝置控制器
22:緩沖器
23:處理器
24:usb接口電路
25:接口電路
30:第二延伸裝置/遠(yuǎn)程延伸器
11、31:usb主機(jī)控制器
40:usb裝置
50:第一usb纜線
60:非usb纜線/通信纜線
70:第二usb纜線
s11、s12、s21、s22、s23、s24、s31、s32、s41、s42、s221、s222、s223、s224:步驟
具體實(shí)施方式
圖1是根據(jù)本發(fā)明的一實(shí)施例概要性地顯示一通用串行總線(usb)延伸系統(tǒng),其使得在延伸范圍上的等時(shí)通用串行總線(usb)數(shù)據(jù)傳輸成為可能。usb通信系統(tǒng)包含usb主機(jī)10、usb裝置40、第一延伸裝置(局域延伸器)20以及第二延伸裝置(遠(yuǎn)程延伸器)30,其中usb主機(jī)10包含usb主機(jī)控制器11,usb裝置40包含usb裝置控制器41。上述usb主機(jī)10可為例如個(gè)人計(jì)算機(jī)、服務(wù)器、游戲機(jī)等。上述usb裝置40是等時(shí)usb傳輸裝置例如游戲控制器、usb麥克風(fēng)等。上述第一延伸裝置20通過第一usb纜線50耦合至usb主機(jī)10,上述第二延伸裝置30通過第二usb纜線70耦合至usb裝置40,而第一延伸裝置20及第二延伸裝置30是藉由非usb的通信纜線60例如5類雙絞線(cat-5)或其他纜線彼此耦合。為了方便,第一延伸裝置20稱為局域延伸器,而第二延伸裝置30稱為遠(yuǎn)程延伸器。
第一usb纜線50及第二usb纜線70的長度是在根據(jù)usb標(biāo)準(zhǔn)的限制之內(nèi),而通信纜線60的長度可以較usb標(biāo)準(zhǔn)所指定的長度長得多。因此,藉由使用本發(fā)明所描述的方法,usb主機(jī)10與usb裝置40之間的距離可延伸超過usb標(biāo)準(zhǔn)所指定的限制。
雖然圖2僅顯示一個(gè)usb裝置40,但遠(yuǎn)程延伸器30可包含usb集線器,其可耦合至多個(gè)usb裝置40。
局域延伸器20包含usb裝置控制器21,其通過第一usb纜線50與usb主機(jī)10的usb主機(jī)控制器11通信,使得局域延伸器20相對于usb主機(jī)10作用為usb裝置。遠(yuǎn)程延伸器30包含usb主機(jī)控制器31,其通過第二usb纜線70與usb裝置40的usb裝置控制器41通信,使得遠(yuǎn)程延伸器30相對于usb裝置40作用為usb主機(jī)。局域延伸器20中的usb裝置控制器21及遠(yuǎn)程延伸器30中的usb主機(jī)控制器31可以集成電路(integratedcircuit,ic)、特定應(yīng)用集成電路(asic,applicationspecificic)、現(xiàn)場可程序化門陣列(fpga,fieldprogrammablegatearrays)等實(shí)施。局域延伸器20進(jìn)一步包含usb接口電路24,用以通過第一usb纜線50傳送及接收信號,以及接口電路25,用以通過非usb纜線60傳送及接收信號。遠(yuǎn)程延伸器30包含類似的接口電路(圖未示)。
實(shí)施于圖1的系統(tǒng)中的等時(shí)usb數(shù)據(jù)傳輸方法是參照圖2及圖3進(jìn)行說明。于步驟s11,usb主機(jī)10藉由通過第一usb纜線50傳送對等時(shí)數(shù)據(jù)的第一數(shù)據(jù)要求(例如是令牌信號,in-token)而初始化等時(shí)數(shù)據(jù)傳輸。上述要求將usb裝置40指定為目標(biāo)裝置。局域延伸器20通過通信纜線60將來自usb主機(jī)10的第一數(shù)據(jù)要求轉(zhuǎn)發(fā)至遠(yuǎn)程延伸器30(步驟s21)。
同時(shí),局域延伸器20藉由通過第一usb纜線50傳送第一「偽」數(shù)據(jù)封包至usb主機(jī)而響應(yīng)來自usb主機(jī)10的數(shù)據(jù)要求(步驟s22)。此響應(yīng)是發(fā)生在usb標(biāo)準(zhǔn)所要求的時(shí)間限制之內(nèi)。偽數(shù)據(jù)封包內(nèi)含具有非零長度的「偽」載荷;此偽數(shù)據(jù)是由局域延伸器20所獲得,其方式將于下更加詳細(xì)地說明。偽數(shù)據(jù)封包內(nèi)含封包識別(packetidentified,pid)于其開頭,以及循環(huán)冗余檢測(crc,cyclicredundancycheck)于其末尾。由局域延伸器20所傳送至usb主機(jī)10以響應(yīng)第一數(shù)據(jù)要求的第一數(shù)據(jù)封包中內(nèi)含的數(shù)據(jù)是偽造的,意思是說,該數(shù)據(jù)并非由usb裝置40響應(yīng)于接收第一數(shù)據(jù)要求所提供。usb主機(jī)10以正常方式處理接收到的第一數(shù)據(jù)封包(步驟s12)。換言之,其與usb裝置40無關(guān),因?yàn)榈谝粩?shù)據(jù)封包內(nèi)的數(shù)據(jù)并不是由usb裝置40所產(chǎn)生。
遠(yuǎn)程延伸器30接收來自局域延伸器20的第一數(shù)據(jù)要求,且通過第二usb纜線70將其轉(zhuǎn)發(fā)至usb裝置40(步驟s31)。響應(yīng)接收到第一數(shù)據(jù)要求(步驟s41),usb裝置40產(chǎn)生內(nèi)含所要求的數(shù)據(jù)的數(shù)據(jù)封包(第二數(shù)據(jù)封包),并通過第二usb纜線70傳送(步驟s42)。遠(yuǎn)程延伸器30接收到第二數(shù)據(jù)封包且通過通信纜線60將其轉(zhuǎn)發(fā)至局域延伸器20(步驟s32)。
在接收到來自遠(yuǎn)程延伸器30的第二數(shù)據(jù)封包后,局域延伸器20遂將數(shù)據(jù)儲存于其緩沖器22(步驟s23)。當(dāng)局域延伸器20接收到usb主機(jī)10所發(fā)出的(步驟s11,重復(fù))指定同一目標(biāo)裝置的下一個(gè)數(shù)據(jù)要求(第二數(shù)據(jù)要求)時(shí),局域延伸器20將緩沖器22中所儲存的第二數(shù)據(jù)封包傳送至usb主機(jī)10(步驟s24)。局域延伸器20亦將第二數(shù)據(jù)要求轉(zhuǎn)發(fā)至遠(yuǎn)程延伸器30(步驟s21,重復(fù)),以及遠(yuǎn)程延伸器30及usb裝置40藉由重復(fù)步驟s31、s41、s42及s32而響應(yīng)第二數(shù)據(jù)要求。因此,由usb裝置40所產(chǎn)生以響應(yīng)第二數(shù)據(jù)要求的第三數(shù)據(jù)封包是由局域延伸器20所接收。局域延伸器20將第三數(shù)據(jù)封包儲存于其緩沖器(步驟s23,重復(fù))。本方法藉由重復(fù)步驟s11、s24、s21、s31、s41、s42、s32及s23而繼續(xù)。在每一次的重復(fù)中,usb裝置40所產(chǎn)生且儲存于緩沖器22中以響應(yīng)先前的數(shù)據(jù)要求的數(shù)據(jù)封包是傳送至usb主機(jī)10以作為對目前的數(shù)據(jù)要求的響應(yīng)。
于步驟s22中,第一(偽)數(shù)據(jù)封包中的數(shù)據(jù)載荷是從局域延伸器20的緩沖器22獲得;該數(shù)據(jù)可為局域延伸器20的處理器23(例如中央處理器(cpu))所隨機(jī)產(chǎn)生且放入緩沖器22的數(shù)據(jù),或者其可為從先前的等時(shí)數(shù)據(jù)通信對話所遺留在緩沖器22中的數(shù)據(jù),上述先前的等時(shí)數(shù)據(jù)通信對話是對同一usb裝置進(jìn)行,上述先前的等時(shí)數(shù)據(jù)通信對話例如是早于usb主機(jī)10所發(fā)出的第一數(shù)據(jù)要求。于usb裝置40為麥克風(fēng)的情況中,當(dāng)麥克風(fēng)在被關(guān)閉后再被打開時(shí),緩沖器22內(nèi)含對應(yīng)于在先前的通信對話的末尾所發(fā)生的聲音的音效數(shù)據(jù)。在現(xiàn)有的usb麥克風(fēng)裝置中,緩沖器在麥克風(fēng)開啟時(shí)會被清除。然而,為了實(shí)施本實(shí)施例的方法,本發(fā)明局域延伸器20中的緩沖器22并不會被清除,或者不會完全清除;更確切的說,保留在緩沖器22中的數(shù)據(jù)是用以構(gòu)成步驟s22中的第一(偽)數(shù)據(jù)封包。在本發(fā)明等時(shí)usb數(shù)據(jù)傳輸中,沒有要求所傳送的數(shù)據(jù)的內(nèi)容要是「正確的」;usb主機(jī)10僅要求數(shù)據(jù),并不核對接收到的數(shù)據(jù)的正確性。usb主機(jī)10上的應(yīng)用程序可處理所接收到的數(shù)據(jù),即使未接收到或未正確地接收到某些所要求的數(shù)據(jù)。如上所述,在本發(fā)明中,緩沖器22內(nèi)用以構(gòu)成步驟s22中的第一數(shù)據(jù)封包的數(shù)據(jù)可來自于先前的音頻通信對話。如此一般不會對麥克風(fēng)的功能有不利影響,乃因第一數(shù)據(jù)封包中傳送至usb主機(jī)10的數(shù)據(jù)將會造成非常短暫期間(例如幾微秒)的噪音,其對使用者而言幾乎聽不見。
圖4是顯示當(dāng)局域延伸器接收到來自usb主機(jī)10的數(shù)據(jù)要求時(shí)由局域延伸器20的usb裝置控制器21所實(shí)施的程序(步驟s22)。usb裝置控制器21檢查緩沖器22以判斷來自目標(biāo)usb裝置40(于令牌信號(in-token)的pid中所指定)的數(shù)據(jù)封包是否存在于緩沖器22中(步驟s221)。如以上所述,緩沖器22可內(nèi)含來自先前的通信對話源自于目標(biāo)usb裝置40的數(shù)據(jù)。若數(shù)據(jù)存在于緩沖器22中(于步驟s222中的「是」),則usb裝置控制器21擷取此數(shù)據(jù)并使用該數(shù)據(jù)產(chǎn)生第一數(shù)據(jù)封包(步驟s222),并將該數(shù)據(jù)封包傳送至usb主機(jī)(步驟s223)。另一方面,若緩沖器22并不內(nèi)含任何來自目標(biāo)usb裝置40的數(shù)據(jù)(于步驟s221中的「否」),則usb裝置控制器21傳送中斷信號或緩沖器空閑信號至局域延伸器20的處理器23,以通知其緩沖器22為空閑狀態(tài)(步驟s224),并回到步驟s221以等待數(shù)據(jù)。為響應(yīng)中斷信號或緩沖器空閑信號,處理器23會產(chǎn)生內(nèi)含長度非零的載荷的數(shù)據(jù)封包,其中上述載荷可為隨機(jī)產(chǎn)生并儲存于緩沖器22中。在處理器23將上述數(shù)據(jù)放置在緩沖器22中之后,usb裝置控制器21會執(zhí)行步驟s222及s223以傳送數(shù)據(jù)封包至usb主機(jī)10。
于步驟s22的一替代性實(shí)施例中,局域延伸器20的處理器23會監(jiān)視用于目標(biāo)usb裝置的緩沖器22的緩沖器空閑狀態(tài)。若用于目標(biāo)usb裝置的緩沖器22是空閑的,則處理器23會產(chǎn)生內(nèi)含長度非零的載荷的數(shù)據(jù)封包,并將其放置到緩沖器22中。因此,于步驟s221中,當(dāng)usb裝置控制器21檢查緩沖器22時(shí),于步驟s222及s223中緩沖器22將會內(nèi)含數(shù)據(jù)封包且usb裝置控制器21將會擷取的并將其傳送至usb主機(jī)10。
于步驟s24中由usb裝置控制器21所實(shí)施以響應(yīng)接收到來自usb主機(jī)10的第二數(shù)據(jù)要求的程序?qū)嶋H上是等同于步驟s22的程序;但于步驟s24中,由于局域延伸器20先前已經(jīng)接收usb裝置40所產(chǎn)生的第二數(shù)據(jù)封包,故于步驟s221中緩沖器22將會內(nèi)含數(shù)據(jù),因此usb裝置控制器21將會傳送此數(shù)據(jù)封包至usb主機(jī)10。
應(yīng)注意者為,于步驟s22及s24中,局域延伸器20的usb裝置控制器21所實(shí)施的功能,也就是藉由從緩沖器22擷取數(shù)據(jù)并將其傳送至usb主機(jī)而響應(yīng)來自usb主機(jī)10的數(shù)據(jù)要求,實(shí)際上可等同于現(xiàn)有usb裝置控制器所實(shí)施者。然而,若緩沖器22是空閑的,則本發(fā)明的處理器23會將偽數(shù)據(jù)封包放置到緩沖器22中以達(dá)成步驟s22(亦即傳送具有偽數(shù)據(jù)載荷的數(shù)據(jù)封包至usb主機(jī)10)的結(jié)果。
本領(lǐng)域的技術(shù)人員將得以清楚了解,在不脫離本發(fā)明的精神或范圍之下,可對本發(fā)明的延伸等時(shí)傳輸usb的傳輸范圍的方法及相關(guān)設(shè)備做出若干修改及變更。因此,本發(fā)明意欲涵蓋來自于前附權(quán)利要求的范圍內(nèi)的修改及變更及其均等物。