專(zhuān)利名稱(chēng):串行總線(xiàn)裝置、傳輸方法以及通用串行總線(xiàn)(usb)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種通用串行總線(xiàn)(Universal Serial Bus; USB)裝置,特別是涉 及一種USB裝置可利用一 USB裝置控制器以模擬多個(gè)虛擬的USB裝置以及一 虛擬的USB集線(xiàn)器(HUB)。
背景技術(shù):
現(xiàn)有的USB裝置利用一 USB裝置控制器芯片,控制每一個(gè)USB裝置,并 且主機(jī)(host computer,如個(gè)人電腦)分配地址給每個(gè)USB裝置。若具有多個(gè)USB 裝置時(shí),則需使用一USB集線(xiàn)器。圖1顯示USB集線(xiàn)器與主機(jī)之間的連接關(guān) 系。USB集線(xiàn)器2模擬四個(gè)下傳(downstream)USB端口,并可控制四個(gè)USB裝 置。在此例中,USB裝置5(如隨身碟flash drive等)可直接地插進(jìn)USB集線(xiàn)器 2的USB端口中。消費(fèi)者裝置4(如PDA、數(shù)碼相機(jī)等)通過(guò)連接線(xiàn)3便可插入 USB集線(xiàn)器2的USB端口中。連接線(xiàn)3可為USB轉(zhuǎn)RS232轉(zhuǎn)換線(xiàn),其具有連 接端3a及3b。連接端3a用以插入一USB端口,而連接端3b用以插入消費(fèi)者 裝置4的RS232端口。
發(fā)明內(nèi)容
本發(fā)明所提供的USB集線(xiàn)器可大大地解決現(xiàn)有技術(shù)的缺點(diǎn)所造成的問(wèn)題。 本發(fā)明的目的在于提供一種裝置,其可作為USB集線(xiàn)器以及可由簡(jiǎn)單的 硬件所完成。
本發(fā)明的特性以及優(yōu)點(diǎn)稍后將會(huì)詳細(xì)介紹。借由后面部分的介紹,將可使 本發(fā)明更明顯易懂。借由稍后所介紹的結(jié)構(gòu)以及申請(qǐng)專(zhuān)利范圍,可使本發(fā)明的 上述和其他目的、特征、和優(yōu)點(diǎn)更容易被了解并達(dá)成。
為了達(dá)到上述目的及優(yōu)點(diǎn),本發(fā)明提供一種通用串行總線(xiàn)(USB)裝置,包 括一邏輯裝置、 一模擬開(kāi)關(guān)、一USB裝置控制器以及一微控制器單元。邏輯裝置連接一USB總線(xiàn),用以接收來(lái)自一主機(jī)的多個(gè)第一總線(xiàn)信號(hào)。該第一總線(xiàn)信 號(hào)具有至少一封包。該封包具有一第一地址字段。該邏輯裝置取出并儲(chǔ)存該第 一地址字段的一原始地址數(shù)值,并產(chǎn)生一固定地址信號(hào)。該固定地址信號(hào)包括 一固定地址數(shù)值以及一地址選擇信號(hào)。該地址選擇信號(hào)同步于該些第一總線(xiàn)信
號(hào)。模擬開(kāi)關(guān)連接該USB總線(xiàn),用以接收該些第一總線(xiàn)信號(hào)以及該邏輯裝置所
產(chǎn)生的該固定地址信號(hào)以及該地址選擇信號(hào)。該模擬開(kāi)關(guān)根據(jù)該地址選擇信 號(hào),在該些第一總線(xiàn)信號(hào)與該固定地址信號(hào)之間切換,以產(chǎn)生多個(gè)第二總線(xiàn)信 號(hào)。該些第二總線(xiàn)信號(hào)大致上等于該些第一總線(xiàn)信號(hào),除了該第一地址字段以 及與該原始地址數(shù)值有關(guān)的字段外,其中該些第二總線(xiàn)信號(hào)的一第二地址字段
具有一固定地址數(shù)值。USB裝置控制器連接該模擬開(kāi)關(guān),用以接收該些第二總 線(xiàn)信號(hào)并執(zhí)行相關(guān)功能。微控制器單元連接該USB裝置控制器。該微控制器單 元連接該邏輯裝置,用以重新得到該被儲(chǔ)存的原始地址數(shù)值。該微控制器單元 載入軟件,用以根據(jù)該重新得到的原始地址數(shù)值,控制該USB裝置控制器的功 能。
本發(fā)明還提供一種串行總線(xiàn)裝置,包括一地址濾除電路、 一串行總線(xiàn)裝置 控制器以及一微控制器單元。地址濾除電路連接一串行總線(xiàn),用以接收來(lái)自一 主機(jī)的多個(gè)第一總線(xiàn)信號(hào)。該第一總線(xiàn)信號(hào)包括至少一封包。該封包具有一第 一地址字段。該地址濾除電路取出并儲(chǔ)存該第一地址字段的一原始地址數(shù)值, 并產(chǎn)生多個(gè)第二總線(xiàn)信號(hào)。該些第二總線(xiàn)信號(hào)大致上等于該些第一總線(xiàn)信號(hào), 除了該第一地址字段以及其它與該第一地址字段的數(shù)值有關(guān)的字段以外,其中 該些第二總線(xiàn)信號(hào)的一第二地址字段包含一固定地址數(shù)值。串行總線(xiàn)裝置控制 器連接該地址濾除電路,用以接收該些第二總線(xiàn)信號(hào)以及執(zhí)行相關(guān)功能。微控 制器單元連接該串行總線(xiàn)裝置控制器。該微控制器單元連接該地址濾除電路, 用以重新得到該被儲(chǔ)存的原始地址數(shù)值。該微控制器單元載入軟件,用以根據(jù) 該重新得到的原始地址數(shù)值,控制該串行總線(xiàn)裝置控制器的功能。
另外,本發(fā)明提供一種傳輸方法,用以通過(guò)一串行總線(xiàn)進(jìn)行傳輸。本發(fā)明 的傳輸方法包括,(a)接收來(lái)自一主機(jī)的多個(gè)第一總線(xiàn)信號(hào),該些第一總線(xiàn)信號(hào) 具有一第一地址字段;(b)取出并儲(chǔ)存該第一地址字段的一原始地址數(shù)值;(c) 產(chǎn)生多個(gè)第二總線(xiàn)信號(hào),該些第二總線(xiàn)信號(hào)大致上等于該些第一總線(xiàn)信號(hào),除了該第一地址字段以及與該原始地址數(shù)值有關(guān)的字段外,其中該些第二總線(xiàn)信 號(hào)的一第二地址字段具有一固定地址數(shù)值;(d)接收該被儲(chǔ)存的原始地址數(shù)值; (e)接收該些第二總線(xiàn)信號(hào),并執(zhí)行一相關(guān)功能;以及(f)根據(jù)所重新得到的該原 始地址數(shù)值,控制該相關(guān)功能的執(zhí)^。
為使本發(fā)明的上述和其他目的、特征、和優(yōu)點(diǎn)能更明顯易懂,下文特舉出 較佳實(shí)施例,并配合所附圖式,作詳細(xì)說(shuō)明如下。
圖1顯示現(xiàn)有USB集線(xiàn)器與主機(jī)及多個(gè)USB裝置之間的連接示意圖。 圖2顯示USB集線(xiàn)器通過(guò)RF信號(hào)與主機(jī)及多個(gè)USB裝置之間所進(jìn)行的 數(shù)據(jù)傳輸示意圖。
圖3顯示本發(fā)明的USB裝置與主機(jī)的連接以及利用RF信號(hào)在多個(gè)消費(fèi)者 裝置間進(jìn)行數(shù)據(jù)傳輸?shù)氖疽鈭D。 ' 圖4顯示圖3的USB裝置的內(nèi)部示意圖。 圖5顯示USB總線(xiàn)信號(hào)封包的示意圖。 圖6顯示圖3的USB裝置內(nèi)的多個(gè)信號(hào)。 圖7顯示CPLD的示意圖。
圖8為USB裝置的MCU所執(zhí)行的程式的流程圖。
主要元件符號(hào)說(shuō)明 1:主機(jī);
2: USB集線(xiàn)器; 3:連接線(xiàn);
3a、 3b:連接端;
4:消費(fèi)者裝置;
6a: USB裝置;
6b:外部接收器裝置;
10: USB裝置;
11: USB裝置控制器;
12:邏輯裝置;13:模擬開(kāi)關(guān); 14: MCU; 15: RF模塊;
Sync:同步字段;
PID:標(biāo)識(shí)字段;
ADDR:地址字段;
ENDP:結(jié)束字段;
CRC5:循環(huán)冗余校驗(yàn)字段;
121:同步濾除器;
122:地址濾除器;
123:選擇信號(hào)產(chǎn)生器;
124:地址產(chǎn)生器;
125、 126:寄存器;
S801 S811:步驟。
具體實(shí)施例方式
本發(fā)明提出一USB裝置,其具有一USB集線(xiàn)器,并可利用RF信號(hào)與多 個(gè)消費(fèi)者裝置以無(wú)線(xiàn)的方式傳輸數(shù)據(jù)。如圖2所示,連接主機(jī)1的USB集線(xiàn) 器2是現(xiàn)有的USB集線(xiàn)器,并且多個(gè)USB裝置6a連接至USB集線(xiàn)器2的USB 端口 。每一個(gè)USB裝置6a利用RF信號(hào)與相對(duì)應(yīng)的外部接收器裝置6b進(jìn)行數(shù) 據(jù)傳輸,并且外部接收器裝置6b通過(guò)RS232連接器與消費(fèi)者裝置4連接在一 起。 '
圖3顯示本發(fā)明的具有USB裝置的系統(tǒng)。USB裝置IO連接主機(jī)1,并與 多個(gè)(如四個(gè))外部接收器裝置6b以無(wú)線(xiàn)的方式(如利用RF信號(hào))進(jìn)行數(shù)據(jù)傳輸。 每一外部接收器裝置6b通過(guò)RS232連接器或其它適合的連接器,與消費(fèi)者裝 置4連接在一起。USB裝置IO具有虛擬集線(xiàn)器功能,使得主機(jī)l以及多個(gè)(在 本實(shí)施例是以四個(gè)為例)USB裝置似乎連接到集線(xiàn)器。因此,舉例而言,主機(jī) l(個(gè)人電腦)的Windows設(shè)備管理器(Device Manager)將會(huì)顯示多個(gè)USB裝置已 連接至個(gè)人電腦。雖然圖3所示的USB裝置10是直接地連接至主機(jī)1,但也可通過(guò)一個(gè)或多個(gè)USB集線(xiàn)器而連接至主機(jī)1。
圖4顯示USB裝置的一可能實(shí)施例。如圖所示,USB裝置IO具有一USB 裝置控制器11、一邏輯裝置12、一模擬開(kāi)關(guān)13、一微控制器單元(microcontroller unit;MCU)14以及一RF模塊15。邏輯裝置12可由復(fù)雜可編程邏輯裝置(complex programmable logic device; CPLD)、現(xiàn)場(chǎng)可編程門(mén)陣歹U(field programmable gate array; FPGA)或?qū)S眉呻娐?application specific IC; ASIC)所執(zhí)行。以下將以 CPLD為例。MCU 14被載入軟件。主機(jī)1提供USB總線(xiàn)信號(hào)A給CPLD 12 以及模擬開(kāi)關(guān)13。 CPLD 12以及模擬開(kāi)關(guān)13 —起執(zhí)行地址濾除功能(稍后再詳 加說(shuō)明),使得模擬開(kāi)關(guān)輸出USB總線(xiàn)信號(hào)D。 USB總線(xiàn)信號(hào)D與原始的USB 總線(xiàn)信號(hào)A相似,不同之處在于將原始的USB總線(xiàn)信號(hào)A的USB裝置地址由 一固定的USB裝置地址所取代,便可得到USB總線(xiàn)信號(hào)D。 USB裝置控制器 11接收USB總線(xiàn)信號(hào)D(此時(shí)USB裝置地址永為該固定的地址),并執(zhí)行USB 裝置控制器的功能(例如,在MCU 14的控制下,產(chǎn)生總線(xiàn)信號(hào)給主機(jī))。稍后 將說(shuō)明MCU 14的控制方式。由USB裝置控制器11所產(chǎn)生的總線(xiàn)信號(hào)將通過(guò) 模擬開(kāi)關(guān)13而被傳送至主機(jī)而不需要作任何形式上的改變。USB裝置控制器 11傳送總線(xiàn)信號(hào)至主機(jī)的方向如圖4的USB裝置控制器11與模擬開(kāi)關(guān)13之 間的左向箭頭以及模擬開(kāi)關(guān)13與主機(jī)之間的左向箭頭所示。原始的USB總線(xiàn) 信號(hào)A的USB裝置地址將被儲(chǔ)存在CPLD 12中,并且為了控制USB裝置控制 器ll, MCU 14存取CPLD 12,用以得到此地址。MCU 14也會(huì)控制RF模塊 15,用以與外部接收器裝置6b(如圖3所示)進(jìn)行數(shù)據(jù)傳輸。
USB總線(xiàn)信號(hào)封包如圖5所示(已省略同步字段(Sync field))。若封包里的 標(biāo)識(shí)(packet identifier)字段PID為SETUP、 IN、或OUT時(shí),地址(address)字 段ADDR將會(huì)追隨標(biāo)識(shí)字段PID。請(qǐng)參考第4及6圖,接下來(lái)將說(shuō)明CPLD 12 與模擬開(kāi)關(guān)13所執(zhí)行的地址濾除功能。如圖4所示,來(lái)自主機(jī)的USB總線(xiàn)信 號(hào)A是同時(shí)被提供至CPLD 12以及模擬開(kāi)關(guān)13。如圖6所示,USB總線(xiàn)信號(hào) A包括一同步字段Sync、 一標(biāo)識(shí)字段PID以及一地址字段、 一結(jié)束字段ENDP 以及一循環(huán)冗余校驗(yàn)字段(cyclic redundancy check field)CRC5。 USB總線(xiàn)信號(hào)A 的地址字段具有數(shù)值A(chǔ)DDRj(虛擬集線(xiàn)器的地址,或是連接至虛擬集線(xiàn)器且為 主機(jī)所想要進(jìn)行數(shù)據(jù)傳輸?shù)腢SB裝置的地址)。CPLD 12接收USB總線(xiàn)信號(hào)A,并產(chǎn)生USB總線(xiàn)信號(hào)B以及一選擇信號(hào)C給模擬開(kāi)關(guān)13。 USB總線(xiàn)信號(hào)B以 及選擇信號(hào)C均同步于USB總線(xiàn)信號(hào)A。 USB總線(xiàn)信號(hào)B的地址字段ADDR 具有數(shù)值A(chǔ)DDRi,其為固定地址,并分配給USB裝置控制器11。在將地址字 段的數(shù)值以ADDRi取代ADDRj后,USB總線(xiàn)信號(hào)B的循環(huán)冗余校驗(yàn)字段CRC5 為一個(gè)重新計(jì)算的新循環(huán)冗余校驗(yàn)值。USB總線(xiàn)信號(hào)B的其它字段可為任意數(shù) 值。借由選擇信號(hào)C的電平,可使模擬開(kāi)關(guān)至少選擇USB總線(xiàn)信號(hào)B中的地 址字段ADDR以及循環(huán)冗余校驗(yàn)字段CRC5,其中USB總線(xiàn)信號(hào)B可為固定 地址信號(hào)。在圖6所示的例子中,USB總線(xiàn)信號(hào)B的結(jié)束字段ENDP位于地址 字段ADDR以及循環(huán)冗余校驗(yàn)字段CRC5之間,其值是來(lái)自USB總線(xiàn)信號(hào)A, 而USB總線(xiàn)信號(hào)B的其它字段的值是為低電平。選擇信號(hào)C選擇USB總線(xiàn)信 號(hào)B的地址字段ADDR、結(jié)束字段ENDP、以及循環(huán)冗余校驗(yàn)字段CRC5以及 選擇USB總線(xiàn)信號(hào)A的所有字段(除了地址字段ADDR外)。選擇信號(hào)C也可 以選擇USB總線(xiàn)信號(hào)A的結(jié)束字段ENDP(在此例中,USB總線(xiàn)信號(hào)B的結(jié)束 字段ENDP可能具有任意數(shù)值)。然而,圖6所示的選擇信號(hào)C的電平變化的 次數(shù)較少,故為較適合的例子。根據(jù)選擇信號(hào)C的電平變化,可使模擬開(kāi)關(guān)13 產(chǎn)生如圖6所示的USB總線(xiàn)信號(hào)D。 USB總線(xiàn)信號(hào)D大致上相似于USB總線(xiàn) 信號(hào)A。將USB總線(xiàn)信號(hào)A的地址字段的數(shù)值A(chǔ)DDRj以數(shù)值A(chǔ)DDRi取代, 再重新計(jì)算循環(huán)冗余校驗(yàn)字段CRC5,便可得到USB總線(xiàn)信號(hào)D。更進(jìn)一步來(lái) 說(shuō),模擬開(kāi)關(guān)13所輸出的USB總線(xiàn)信號(hào)D大致上相似于USB總線(xiàn)信號(hào)A, 除了地扯字段的數(shù)值以及其它與地址字段的數(shù)值有關(guān)的字段外,其余字段的數(shù) 值均相同于USB總線(xiàn)信號(hào)A。因此,USB裝置控制器11總是接收到具有固定 地址ADDRi的USB總線(xiàn)信號(hào)。同時(shí),CPLD 12儲(chǔ)存來(lái)自主機(jī)的USB總線(xiàn)信號(hào) A的原始地址ADDRj,并將地址ADDRj提供給MCU 14。借由此原始地址數(shù) 據(jù),MCU 14控制USB裝置控制器11以及RF模塊15的功能,用以傳輸數(shù)據(jù) 予所需的外部接收器裝置6b。
雖然在圖4所示的實(shí)施例中,CPLD 12以及模擬開(kāi)關(guān)13為獨(dú)立的兩元件, 但也可利用任何適合的模擬以及(或是)數(shù)位電路(如地址濾除電路)來(lái)執(zhí)行 CPLD 12以及模擬開(kāi)關(guān)13所執(zhí)行的地址濾除功能。換言之,取出并置換原始 的USB總線(xiàn)信號(hào)的USB裝置地址,以產(chǎn)生USB總線(xiàn)信號(hào)D。 USB總線(xiàn)信號(hào)D除了地址字段的數(shù)值以及其它與地址字段有關(guān)的字段的數(shù)值與USB總線(xiàn)信號(hào)
A不同以外,其余字段的數(shù)值均相同于USB總線(xiàn)信號(hào)A。
圖7顯示CPLD的一可能實(shí)施例。同步濾除器121接收來(lái)自主機(jī)1的USB 總線(xiàn)信號(hào)A,并偵測(cè)USB總線(xiàn)信號(hào)A的同步字段。若同步字段Sync的值為三 種PID數(shù)值(IN、 OUT、 SETUP)的一者時(shí),同步濾除器121直接輸出未改變過(guò) 的封包。反之,若同步字段的值不同于上述三種PID數(shù)值的任一者時(shí),同步濾 除器121將不會(huì)輸出信號(hào)。選擇信號(hào)產(chǎn)生器123接收同步濾除器121的輸出信 號(hào),并產(chǎn)生如圖6所示的選擇信號(hào)C。地址濾除器122接收同步濾除器121的 輸出信號(hào),并由同步濾除器121的輸出信號(hào)取出USB裝置地址數(shù)值A(chǔ)DDRj。 地址數(shù)值A(chǔ)DDRj是被儲(chǔ)存在寄存器125之中。同時(shí),地址產(chǎn)生器124產(chǎn)生如 圖6所示的具有固定地址數(shù)值A(chǔ)DDRi的USB總線(xiàn)信號(hào)B。地址數(shù)值A(chǔ)DDRi 是被儲(chǔ)存在寄存器126之中。地址產(chǎn)生器124也會(huì)利用來(lái)自同步濾除器121的 輸出信號(hào)的地址數(shù)值A(chǔ)DDRi以及其它字段的數(shù)值,而重新計(jì)算循環(huán)冗余校驗(yàn) 字段CRC5的數(shù)值(根據(jù)USB的規(guī)格,借由地址數(shù)值A(chǔ)DDRi以及結(jié)束字段ENDP 的數(shù)值,便可計(jì)算出循環(huán)冗余校驗(yàn)字段CRC5的數(shù)值)。地址產(chǎn)生器124可接收 選擇信號(hào)C,用以得到USB總線(xiàn)信號(hào)B的正確時(shí)序(correct timing)。地址產(chǎn)生 器124也可利用同步濾除器121的輸出信號(hào),以得到正確時(shí)序。寄存器125及 126由MCU 14所存取。雖然在圖4及圖7所示的實(shí)施例中,CPLD用以執(zhí)行 固定地址產(chǎn)生功能以及地址選擇信號(hào)產(chǎn)生功能,但其它任何適合的邏輯裝置(如 FPGA或ASIC)也可用來(lái)執(zhí)行這些功能。因此,圖4的CPLD 12為一邏輯裝置, 用以接收來(lái)自主機(jī)的USB總線(xiàn)信號(hào)(如USB總線(xiàn)信號(hào)A),并產(chǎn)生具有固定地 址信號(hào)(USB總線(xiàn)信號(hào)B)以及地址選擇信號(hào)(選擇信號(hào)C)給模擬開(kāi)關(guān)13。
MCU 14控制USB裝置控制器11,用以與主機(jī)1進(jìn)行數(shù)據(jù)傳輸,并且在 數(shù)據(jù)傳輸時(shí),可完成兩種系統(tǒng)結(jié)構(gòu)的程序,例如,在USB裝置IO連接(直接地 連接或通過(guò)其它集線(xiàn)器而間接地連接)主機(jī)1、或是有新的外部接收器裝置6b 加入系統(tǒng)、或是外部接收器裝置6b由系統(tǒng)中移除,以及在外部接收器裝置6b 與主機(jī)1之間有數(shù)據(jù)傳輸時(shí)。借由MCU 14可使得USB裝置控制器11與主機(jī) 1之間的數(shù)據(jù)傳輸符合USB標(biāo)準(zhǔn)。圖8為MCU 14執(zhí)行內(nèi)部軟件的流程圖。如 圖所示,在USB裝置10完全地連接至USB系統(tǒng)(g卩USB裝置10插入主機(jī)的USB端口 )后,MCU 14針對(duì)集線(xiàn)器執(zhí)行總線(xiàn)列舉程序(bus enumeration process)(步驟S801、 S802)。主機(jī)分配地址ADDRi給集線(xiàn)器。地址ADDRi是 儲(chǔ)存于CPLD 12之中,并且為一固定地址(步驟S803)。隨后,當(dāng)一新的裝置(例 如,連接消費(fèi)者裝置4的外部接收器裝置6b)加入系統(tǒng)時(shí),MCU14針對(duì)新加入 的裝置執(zhí)行總線(xiàn)列舉程序(步驟S806 S808),主機(jī)將分配地址ADDRj給新加入 的裝置。然后,當(dāng)主機(jī)1與具有地址ADDRj的裝置進(jìn)行數(shù)據(jù)傳輸時(shí),CPLD 12 以及模擬開(kāi)關(guān)13濾除總線(xiàn)信號(hào)的地址字段,使得USB裝置控制器11所接收到 的封包具有固定地址ADDRi,并且MCU 14取得儲(chǔ)存在CPLD 12的原始地址 ADDRj,用以控制USB裝置控制器11。
進(jìn)一步而言,在步驟S801(USB裝置10已連接主機(jī))中,由主機(jī)1傳送至 USB裝置控制器11的任何USB事件均會(huì)被MCU 14所監(jiān)控。由主機(jī)傳送的 USB事件與總線(xiàn)列舉程序有關(guān)??偩€(xiàn)列舉程序在2000年4月27日所公布的 USB 2.0規(guī)格書(shū)中的第4.6及9丄2節(jié)已被介紹過(guò)。MCU 14控制USB裝置控制 器11,用以模擬集線(xiàn)器回應(yīng)主機(jī)1,或是模擬集線(xiàn)器傳送由主機(jī)來(lái)的數(shù)據(jù)(步驟 S802)。在本總線(xiàn)列舉程序中,借由主機(jī)分配給集線(xiàn)器的地址ADDRi是儲(chǔ)存在 CPLD 12之中(例如儲(chǔ)存在圖7所示的寄存器126,地址ADDRi為固定USB裝 置的地址(步驟S803)。 ■ -
在針對(duì)集線(xiàn)器的總線(xiàn)列舉程序完成后,MCU 14監(jiān)控任何來(lái)自RF模塊15 的信號(hào)。RF模塊15將新的USB裝置的地址提供給集線(xiàn)器(步驟S804),就像 MCU 14監(jiān)控由主機(jī)l傳送至USB裝置控制器11的任何USB事件(步驟S809)。 若有新的裝置加入集線(xiàn)器時(shí),則MCU 14控制USB裝置控制器11,用以執(zhí)行 適當(dāng)?shù)募€(xiàn)器數(shù)據(jù)程序,其中集線(xiàn)器會(huì)告知主機(jī)所連接的USB裝置。舉例而言, 在USB2.0規(guī)格中,集線(xiàn)器具有狀態(tài)比特(status bit),其可用以告知USB裝置 與主機(jī)的連接狀態(tài)(連接或移除),并且主機(jī)將使集線(xiàn)器重新得到狀態(tài)比特。然 后,主機(jī)將會(huì)針對(duì)新的裝置開(kāi)始進(jìn)行總線(xiàn)列舉程序。MCU 14借由主機(jī)1的反 應(yīng),或是在總線(xiàn)列舉程序中,主機(jī)所提供的數(shù)據(jù),立即控制USB裝置控制器 11,用以模擬新加入的USB裝置(步驟S808)。在總線(xiàn)列舉程序中,當(dāng)USB裝 置控制器11總是接收到具有固定地址ADDRi的封包時(shí),MCU 14便得到來(lái)自 CPLD 12的地址ADDRj,其中地址ADDRj包含在來(lái)自主機(jī)的封包中(即該地址的USB裝置打算與主機(jī)進(jìn)行數(shù)據(jù)傳輸)(步驟S807)。因此,MCU可控制USB 裝置控制器ll,用以模擬USB裝置的其中一個(gè)。
當(dāng)來(lái)自主機(jī)的USB事件被USB裝置控制器11所接收時(shí),MCU 14控制 USB裝置控制器11,用以模擬所需的USB裝置(即欲與主機(jī)進(jìn)行數(shù)據(jù)傳輸?shù)?USB裝置)(步驟S810及S811)。當(dāng)USB裝置控制器11總是接收到具有固定地 址ADDRi的封包時(shí),MCU 14將會(huì)得到來(lái)自CPLD 12的地址ADDRj,其中地 址ADDRj包含在來(lái)自主機(jī)的封包中(即所需USB裝置的地址)(步驟S810),并 且MCU 14借由主機(jī)的反應(yīng)或是由主機(jī)所提供的數(shù)據(jù),控制USB裝置控制器 11 ,用以模擬具有地址ADDRj的USB裝置(步驟S811)。
雖然沒(méi)有明確地呈現(xiàn)在圖8中,但MCU 14也可管理USB裝置由集線(xiàn)器 移除的動(dòng)作。
利用上述結(jié)構(gòu)及方法,USB裝置10便可模擬一個(gè)或多個(gè)USB集器以及 USB裝置。其可支持USB裝置在符合USB規(guī)格下,在任何時(shí)間連接USB系統(tǒng) 或是由USB系統(tǒng)移除。
USB 2.0為上述傳輸協(xié)議(communication protocol)的一種實(shí)施例,本領(lǐng)域的 技術(shù)人員可利用其它串行總線(xiàn)傳輸協(xié)議。
雖然第3及4圖顯示USB裝置10與外部接收器裝置6b之間的無(wú)線(xiàn)傳輸 是利用RF信號(hào),也可利用任何適合的傳輸方法(包含無(wú)線(xiàn)或有線(xiàn))。
雖然圖4所顯示的實(shí)施例在針對(duì)不同的元件時(shí),是利用分開(kāi)的電路,但也 可將部分或全部的元件結(jié)合在單一電路(如ASIC)中。就這一點(diǎn)而言,所附的申 請(qǐng)專(zhuān)利范圍中所述的不同的元件可能對(duì)應(yīng)一個(gè)或多個(gè)電路(如ASIC)的部分功 能。
任何所屬技術(shù)領(lǐng)域中具有通常知識(shí)者,在不脫離本發(fā)明的精神和范圍內(nèi), 可以在USB裝置中做些許的更動(dòng)與潤(rùn)飾,其中USB裝置具有一個(gè)USB裝置控 制器,用以模擬本發(fā)明所述的具有虛擬的USB集線(xiàn)器的多個(gè)虛擬的USB裝置, 而不需要違反本發(fā)明的精神。因此本發(fā)明的保護(hù)范圍當(dāng)視后附的申請(qǐng)專(zhuān)利范圍 所界定者為準(zhǔn)。
權(quán)利要求
1.一種串行總線(xiàn)裝置,其特征在于,包括一地址濾除電路,連接一串行總線(xiàn),用以接收來(lái)自一主機(jī)的多個(gè)第一總線(xiàn)信號(hào),所述主機(jī)包括至少一封包,所述封包具有一第一地址字段,所述地址濾除電路取出并儲(chǔ)存所述第一地址字段的一原始地址數(shù)值,并產(chǎn)生多個(gè)第二總線(xiàn)信號(hào),所述第二總線(xiàn)信號(hào)大致上等于所述第一總線(xiàn)信號(hào),除了所述第一地址字段以及其它與所述第一地址字段的數(shù)值有關(guān)的字段以外,其中所述第二總線(xiàn)信號(hào)的一第二地址字段包含一固定地址數(shù)值;一串行總線(xiàn)裝置控制器,連接所述地址濾除電路,用以接收所述第二總線(xiàn)信號(hào)以及執(zhí)行相關(guān)功能;以及一微控制器單元,連接所述串行總線(xiàn)裝置控制器,所述微控制器單元連接所述地址濾除電路,用以重新得到所述被儲(chǔ)存的原始地址數(shù)值,所述微控制器單元載入軟件,用以根據(jù)所述重新得到的原始地址數(shù)值,控制所述串行總線(xiàn)裝置控制器的功能。
2. 如權(quán)利要求1所述的串行總線(xiàn)裝置,其特征在于,所述地址濾除電路包括一邏輯裝置,連接所述串行總線(xiàn)裝置控制器,用以接收所述第一總線(xiàn)信號(hào), 所述邏輯裝置取出并儲(chǔ)存所述原始地址數(shù)值,并產(chǎn)生一固定地址信號(hào),所述固 定地址信號(hào)包括所述固定地址數(shù)值以及一地址選擇信號(hào),所述地址選擇信號(hào)與 所述第一總線(xiàn)信號(hào)同步;以及一模擬開(kāi)關(guān),連接所述串行總線(xiàn)裝置控制器,用以接收所述第一總線(xiàn)信號(hào)、 所述固定地址信號(hào)以及來(lái)自所述邏輯裝置的所述地址選擇信號(hào),所述模擬開(kāi)關(guān) 根據(jù)所述地址選擇信號(hào),在所述第一總線(xiàn)信號(hào)以及所述固定地址信號(hào)之間切 換,用以產(chǎn)生所述第二總線(xiàn)信號(hào)。
3. 如權(quán)利要求2所述的串行總線(xiàn)裝置,其特征在于,所述邏輯裝置由復(fù)雜 可編程邏輯裝置、現(xiàn)場(chǎng)可編程門(mén)陣列或?qū)S眉呻娐匪鶊?zhí)行。
4. 如權(quán)利要求2所述的串行總線(xiàn)裝置,其特征在于,所述邏輯裝置包括 一同步濾除器,用以接收所述第一總線(xiàn)信號(hào)并偵測(cè)所述封包的一同步字段;一選擇信號(hào)產(chǎn)生器,連接所述同步濾除器的一輸出端,用以產(chǎn)生所述地址 選擇信號(hào);一地址濾除器,連接所述同步濾除器的所述輸出端,用以取出所述原始地 址數(shù)值;一第一寄存器,用以?xún)?chǔ)存被取出的所述原始地址數(shù)值; 一第二寄存器,用以?xún)?chǔ)存所述固定地址數(shù)值;以及一地址產(chǎn)生器,利用儲(chǔ)存在所述第二寄存器的所述固定地址數(shù)值,產(chǎn)生所 述固定地址信號(hào)。
5. 如權(quán)利要求1所述的串行總線(xiàn)裝置,其特征在于,所述串行總線(xiàn)裝置控 制器與所述主機(jī)采用通用串行總線(xiàn)協(xié)議。
6. 如權(quán)利要求5所述的串行總線(xiàn)裝置,其特征在于,所述微控制器單元控 制所述串行總線(xiàn)裝置控制器,用以模擬一個(gè)或多個(gè)USB集線(xiàn)器以及一個(gè)或多個(gè) USB裝置。
7. 如權(quán)利要求6所述的串行總線(xiàn)裝置,其特征在于,所述微控制器單元控 制所述串行總線(xiàn)裝置控制器,用以完成USB總線(xiàn)列舉程序。
8. 如權(quán)利要求1所述的串行總線(xiàn)裝置,其特征在于,還包括一傳輸模塊, 連接所述微控制器單元,用以與一個(gè)或多個(gè)外部接收器裝置進(jìn)行無(wú)線(xiàn)傳輸,其 中所述外部接收器裝置通過(guò)所述串行總線(xiàn)裝置控制器,與所述主機(jī)進(jìn)行數(shù)據(jù)傳 輸。
9. 如權(quán)利要求8所述的串行總線(xiàn)裝置,其特征在于,所述傳輸模塊為一RF 模塊,所述RF模塊利用RF信號(hào)與所述外部接收器裝置進(jìn)行傳輸。
10. —種傳輸方法,用以通過(guò)一串行總線(xiàn)進(jìn)行傳輸,其特征在于,所述方法 包括下列步驟(a) 接收來(lái)自一主機(jī)的多個(gè)第一總線(xiàn)信號(hào),所述第一總線(xiàn)信號(hào)具有一第一地 址字段;(b) 取出并儲(chǔ)存所述第一地址字段的一原始地址數(shù)值;(c) 產(chǎn)生多個(gè)第二總線(xiàn)信號(hào),所述第二總線(xiàn)信號(hào)大致上等于所述第一總線(xiàn)信 號(hào),除了所述第一地址字段以及與所述原始地址數(shù)值有關(guān)的字段外,其中所述第二總線(xiàn)信號(hào)的一第二地址字段具有一固定地址數(shù)值;(d) 接收所述被儲(chǔ)存的原始地址數(shù)值;(e) 接收所述第二總線(xiàn)信號(hào),并執(zhí)行一相關(guān)功能;以及(f) 根據(jù)所重新得到的所述原始地址數(shù)值,控制所述相關(guān)功能的執(zhí)行。
11. 如權(quán)利要求IO所述的傳輸方法,其特征在于,所述(C)步驟包括-(Cl)產(chǎn)生一固定地址信號(hào),所述固定地址信號(hào)包含所述固定地址數(shù)值以及一地址選擇信號(hào),所述地址選擇信號(hào)同步于所述第一總線(xiàn)信號(hào);以及(C2)根據(jù)所述地址選擇信號(hào),在所述第一總線(xiàn)信號(hào)以及所述固定地址信號(hào) 之間切換,用以得到所述第二總線(xiàn)信號(hào)。
12. 如權(quán)利要求IO所述的傳輸方法,其特征在于,所述第一以及第二總線(xiàn) 信號(hào)均為通用串行總線(xiàn)信號(hào)。
13. 如權(quán)利要求12所述的傳輸方法,其特征在于,所述(f)步驟包括模擬一 個(gè)或多個(gè)USB集線(xiàn)器以及模擬一個(gè)或多個(gè)USB裝置。
14. 如權(quán)利要求13所述的傳輸方法,其特征在于,所述(f)步驟包括完成USB 列舉程序。
15. 如權(quán)利要求IO所述的傳輸方法,其特征在于,還包括 在一個(gè)或多個(gè)外部接收器裝置與所述主機(jī)之間,以無(wú)線(xiàn)的方式傳輸。
16. —種通用串行總線(xiàn)裝置,其特征在于,包括一邏輯裝置,連接一 USB總線(xiàn),用以接收來(lái)自一主機(jī)的多個(gè)第一總線(xiàn)信 號(hào),所述第一總線(xiàn)信號(hào)具有至少一封包,所述封包具有一第一地址字段,所述 邏輯裝置取出并儲(chǔ)存所述第一地址字段的一原始地址數(shù)值,并產(chǎn)生一固定地址 信號(hào),所述固定地址信號(hào)包括一固定地址數(shù)值以及一地址選擇信號(hào),所述地址 選擇信號(hào)同步于所述第一總線(xiàn)信號(hào);一模擬開(kāi)關(guān),連接所述USB總線(xiàn),用以接收所述第一總線(xiàn)信號(hào)以及所述 邏輯裝置所產(chǎn)生的所述固定地址信號(hào)以及所述地址選擇信號(hào),所述模擬開(kāi)關(guān)根 據(jù)所述地址選擇信號(hào),在所述第一總線(xiàn)信號(hào)與所述固定地址信號(hào)之間切換,以 產(chǎn)生多個(gè)第二總線(xiàn)信號(hào),所述第二總線(xiàn)信號(hào)大致上等于所述第一總線(xiàn)信號(hào),除 了所述第一地址字段以及與所述原始地址數(shù)值有關(guān)的字段外,其中所述第二總 線(xiàn)信號(hào)的一第二地址字段具有一固定地址數(shù)值;一 USB裝置控制器,連接所述模擬開(kāi)關(guān),用以接收所述第二總線(xiàn)信號(hào)并 執(zhí)行相關(guān)功能;以及一微控制器單元,連接所述USB裝置控制器,所述微控制器單元連接所 述邏輯裝置,用以重新得到所述被儲(chǔ)存的原始地址數(shù)值,所述微控制器單元載 入軟件,用以根據(jù)所述重新得到的原始地址數(shù)值,控制所述USB裝置控制器的 功能。 '
17. 如權(quán)利要求16所述的通用串行總線(xiàn)裝置,其特征在于,所述邏輯裝置 由復(fù)雜可編程邏輯裝置、現(xiàn)場(chǎng)可編程門(mén)陣列或?qū)S眉呻娐匪鶊?zhí)行。
18. 如權(quán)利要求16所述的通用串行總線(xiàn)裝置,其特征在于,所述邏輯裝置 包括一同步濾除器,用以接收所述第一總線(xiàn)信號(hào)并偵測(cè)所述封包的一同步字段;一選擇信號(hào)產(chǎn)生器,連接所述同步濾除器的一輸出端,用以產(chǎn)生所述地址 選擇信號(hào);一地址濾除器,連接所述同步濾除器的所述輸出端,用以取出所述原始地 址數(shù)值;一第一寄存器,用以?xún)?chǔ)存被取出的所述原始地址數(shù)值; 一第二寄存器,用以?xún)?chǔ)存所述固定地址數(shù)值;以及一地址產(chǎn)生器,利用儲(chǔ)存在所述第二寄存器的所述固定地址數(shù)值,產(chǎn)生所 述固定地址信號(hào)。
19. 如權(quán)利要求16所述的通用串行總線(xiàn)裝置,其特征在于,所述微控制器 單元使所述USB裝置控制器模擬一個(gè)或多個(gè)USB集線(xiàn)器以及模擬一個(gè)或多個(gè) USB裝置。
20. 如權(quán)利要求16所述的通用串行總線(xiàn)裝置,其特征在于,還包括一傳輸 模塊,連接所述微控制器單元,用以與一個(gè)或多個(gè)外部接收器裝置進(jìn)行無(wú)線(xiàn)傳 輸,其中所述外部接收器裝置通過(guò)所述USB裝置控制器,與所述主機(jī)進(jìn)行數(shù)據(jù) 傳輸。
全文摘要
一種具有USB裝置控制器的USB裝置,用以模擬具有虛擬的USB集線(xiàn)器的多個(gè)虛擬的USB裝置。USB裝置控制器被分配到一USB地址,以及在微控制單元及其軟件的控制下,與USB集線(xiàn)器進(jìn)行數(shù)據(jù)傳輸。USB裝置也可具有復(fù)雜可編程邏輯裝置(complex programmable logic device;CPLD)(或是現(xiàn)場(chǎng)可編程門(mén)陣列)以及一模擬開(kāi)關(guān),用以在傳送封包至USB裝置控制器之前,濾除來(lái)自主機(jī)的USB封包,并將封包的地址數(shù)值以固定地址代替。封包的原始地址是儲(chǔ)存在CPLD之中,并由微控制器單元所存取。微控制器單元控制USB裝置控制器,用以模擬一個(gè)或多個(gè)USB集線(xiàn)器以及多個(gè)USB裝置。
文檔編號(hào)G06F13/40GK101308484SQ20081008833
公開(kāi)日2008年11月19日 申請(qǐng)日期2008年3月28日 優(yōu)先權(quán)日2007年5月14日
發(fā)明者薛兆軒 申請(qǐng)人:宏正自動(dòng)科技股份有限公司