專利名稱:實現(xiàn)usb主機遠(yuǎn)程訪問的虛擬usb系統(tǒng)和設(shè)備及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通用串行總線(USB)技術(shù),特別涉及一種用于實現(xiàn)USB主機遠(yuǎn)程訪問的虛擬USB系統(tǒng)、一種用于實現(xiàn)USB主機遠(yuǎn)程訪問的終端虛擬USB設(shè)備、一種實現(xiàn)USB主機遠(yuǎn)程訪問的遠(yuǎn)端虛擬USB設(shè)備、以及一種實現(xiàn)USB主機遠(yuǎn)程訪問的方法。
背景技術(shù):
按照USB規(guī)范定義,USB總線僅支持點到點的互聯(lián)、且傳輸距離有限。但隨著USB 技術(shù)的發(fā)展,現(xiàn)有技術(shù)中已經(jīng)能夠?qū)崿F(xiàn)USB主機通過網(wǎng)絡(luò)訪問USB設(shè)備。如圖1所示,IP網(wǎng)絡(luò)遠(yuǎn)端側(cè)的PC機作為遠(yuǎn)端USB主機、其可與IP網(wǎng)絡(luò)(本文所述的“IP網(wǎng)絡(luò)”是指以太網(wǎng)、ATM、WLAN、3G等任一中支持IP協(xié)議的網(wǎng)絡(luò))交互,IP網(wǎng)絡(luò)終端側(cè)的PC機作為終端USB主機、其可與IP網(wǎng)絡(luò)交互,終端USB主機還通過USB線纜直連有終端USB設(shè)備。基于如圖1所示的架構(gòu),遠(yuǎn)端USB主機能夠通過IP網(wǎng)絡(luò)與終端USB主機交互、并通過終端USB主機訪問終端USB設(shè)備(如圖1中的虛線雙箭頭曲線所示)。參見圖2并結(jié)合圖1,遠(yuǎn)端USB主機和終端USB主機均采用標(biāo)準(zhǔn)的USB主機軟硬件架構(gòu),即USB主機應(yīng)用程序、USB主機設(shè)備類驅(qū)動、USB主機協(xié)議棧驅(qū)動、USB主機控制器驅(qū)動、USB主機控制器、以及USB主機接口,此外,遠(yuǎn)端USB主機和終端USB主機的USB主機應(yīng)用程序與USB主機設(shè)備類驅(qū)動之間,均增設(shè)有支持網(wǎng)絡(luò)傳輸?shù)能浖允惯h(yuǎn)端USB主機對終端USB設(shè)備的讀寫請求和數(shù)據(jù)可通過支持網(wǎng)絡(luò)傳輸?shù)能浖?,在遠(yuǎn)端USB主機的USB主機應(yīng)用程序與終端USB主機的USB主機設(shè)備類驅(qū)動之間以IP報文的方式傳遞,即,遠(yuǎn)端USB主機通過調(diào)用終端USB主機的USB主機設(shè)備類驅(qū)動、USB主機協(xié)議棧驅(qū)動、USB主機控制器驅(qū)動、USB主機控制器、以及USB主機接口(如圖2中的虛線雙箭頭折線所示),從而相當(dāng)于將終端USB主機連接管理的終端USB設(shè)備虛擬到遠(yuǎn)端USB主機上、并使遠(yuǎn)端USB主機的USB 主機應(yīng)用程序認(rèn)為該終端USB設(shè)備直連于遠(yuǎn)端USB主機,進(jìn)而實現(xiàn)遠(yuǎn)端USB主機對終端USB 設(shè)備的遠(yuǎn)程訪問。上述方案雖然能夠?qū)崿F(xiàn)遠(yuǎn)端USB主機對終端USB設(shè)備的遠(yuǎn)程訪問,但該方案要求遠(yuǎn)端USB主機和終端USB主機必須運行相同的操作系統(tǒng)(例如雙方都是Windows操作系統(tǒng))、以確保遠(yuǎn)端USB主機和終端USB主機的USB設(shè)備驅(qū)動軟件架構(gòu)和設(shè)備管理方式均相同,還要求遠(yuǎn)端USB主機和終端USB主機必須運行完整的USB主機設(shè)備類驅(qū)動(即除了支持基本功能的設(shè)備類驅(qū)動之外還需要包含支持其它所有功能的設(shè)備類驅(qū)動)、以確保終端 USB設(shè)備既能夠被終端USB主機訪問也能被遠(yuǎn)端USB主機訪問。因此,如圖1和圖2所示的方案僅適用于能夠裝在操作系統(tǒng)、以及完整USB主機設(shè)備類驅(qū)動的PC機之間。而對于如圖3所示的終端USB設(shè)備與終端USB主機(非PC機)集成于同一嵌入設(shè)備的情況,由于嵌入式操作系統(tǒng)種類繁多、其并不像PC機領(lǐng)域只有有限的幾種操作系統(tǒng), 因而終端USB主機必須與遠(yuǎn)端USB主機采用相同的操作系統(tǒng)的這種要求,對于嵌入式的終端USB主機來說屬于不可接受的限制;而且,嵌入式的USB主機中通常僅能夠支持一款USB 設(shè)備的基本功能、而無法支持其它功能,因而終端USB主機必須運行完整的USB主機設(shè)備類驅(qū)動的這種要求,對于嵌入式的終端USB主機來說也屬于難以接受的限制;從而,就使得遠(yuǎn)端USB主機無法訪問終端USB設(shè)備??梢?,現(xiàn)有USB主機遠(yuǎn)程訪問僅適用于能夠裝在操作系統(tǒng)、以及完整USB主機設(shè)備類驅(qū)動的PC機之間,從而使得USB主機遠(yuǎn)程訪問的通用性較差。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種用于實現(xiàn)USB主機遠(yuǎn)程訪問的虛擬USB系統(tǒng)、以及一種實現(xiàn)USB主機遠(yuǎn)程訪問的方法,能夠提高USB主機遠(yuǎn)程訪問的通用性。本發(fā)明還提供了一種用于實現(xiàn)USB主機遠(yuǎn)程訪問的終端虛擬USB設(shè)備、以及一種實現(xiàn)USB主機遠(yuǎn)程訪問的遠(yuǎn)端虛擬USB設(shè)備,能夠支持USB主機遠(yuǎn)程訪問通用性的提高。本發(fā)明提供的一種用于實現(xiàn)USB主機遠(yuǎn)程訪問的虛擬USB系統(tǒng),該虛擬USB系統(tǒng)應(yīng)用于遠(yuǎn)端USB主機與終端USB之間、并包括終端虛擬USB設(shè)備,其承載于具有網(wǎng)絡(luò)接入功能并可與終端USB設(shè)備直連的終端 USB主機,且其可調(diào)用終端USB主機的USB主機協(xié)議棧實現(xiàn)與終端USB設(shè)備的交互、以及可調(diào)用終端USB主機的網(wǎng)絡(luò)協(xié)議棧實現(xiàn)網(wǎng)絡(luò)交互;遠(yuǎn)端虛擬USB設(shè)備,其承載于具有USB功能并可與遠(yuǎn)端USB主機直連的網(wǎng)絡(luò)接入設(shè)備,且其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧實現(xiàn)與遠(yuǎn)端USB主機的交互、以及可調(diào)用網(wǎng)絡(luò)接入設(shè)備的網(wǎng)絡(luò)協(xié)議棧實現(xiàn)網(wǎng)絡(luò)交互;其中,終端虛擬USB設(shè)備用于獲取終端USB設(shè)備的設(shè)備信息、并通過網(wǎng)絡(luò)提供給遠(yuǎn)端虛擬USB設(shè)備;遠(yuǎn)端虛擬USB設(shè)備用于在遠(yuǎn)端USB主機需要訪問終端USB設(shè)備時,將通過網(wǎng)絡(luò)接收自終端虛擬USB設(shè)備的終端USB設(shè)備的設(shè)備信息提供給遠(yuǎn)端USB主機,然后模擬終端USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作、并協(xié)同終端虛擬USB設(shè)備在遠(yuǎn)端USB主機與終端USB設(shè)備之間傳遞該讀寫操作所涉及的讀寫請求和數(shù)據(jù)。遠(yuǎn)端虛擬USB設(shè)備進(jìn)一步向遠(yuǎn)端USB主機提供自身維護(hù)的USB設(shè)備列表、以供遠(yuǎn)端USB主機選擇所要訪問的USB設(shè)備,該USB設(shè)備列表中的可選USB設(shè)備包含該遠(yuǎn)端虛擬 USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備、以及遠(yuǎn)端虛擬USB設(shè)備通過網(wǎng)絡(luò)接收到的設(shè)備信息所對應(yīng)的終端USB設(shè)備;且,遠(yuǎn)端虛擬USB設(shè)備進(jìn)一步在遠(yuǎn)端USB主機選擇USB設(shè)備列表中的網(wǎng)絡(luò)接入設(shè)備時,觸發(fā)該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備向遠(yuǎn)端USB主機提供該網(wǎng)絡(luò)接入設(shè)備的設(shè)備信息、以使該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備可作為獨立的遠(yuǎn)端USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作;以及,進(jìn)一步在遠(yuǎn)端USB主機準(zhǔn)備變更其訪問的USB設(shè)備時, 觸發(fā)在線熱插拔。終端虛擬USB設(shè)備包括遠(yuǎn)端信息存儲模塊,其存儲有預(yù)先設(shè)置的遠(yuǎn)端虛擬USB設(shè)備的IP地址;終端信息獲取模塊,其可調(diào)用終端USB主機的USB主機協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于獲取與該終端USB主機直連的終端USB設(shè)備包含有USB設(shè)備地址的設(shè)備信息,并依據(jù)遠(yuǎn)端信息存儲模塊所存儲的IP地址向?qū)?yīng)的遠(yuǎn)端虛擬USB設(shè)備發(fā)送所獲取的設(shè)備信息;終端解析轉(zhuǎn)發(fā)模塊,其可調(diào)用終端USB主機的USB主機協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于通過對USB端點號和USB設(shè)備地址的解析將來自遠(yuǎn)端虛擬USB設(shè)備的讀請求、或?qū)懻埱蠛蛯憯?shù)據(jù)傳遞至終端USB主機直連的終端USB設(shè)備,并通過添加IP地址將來自終端USB主機直連的終端USB設(shè)備的讀數(shù)據(jù)傳遞至遠(yuǎn)端虛擬USB設(shè)備。遠(yuǎn)端虛擬USB設(shè)備包括終端信息存儲模塊,用于存儲終端虛擬USB設(shè)備的IP地址、以及終端虛擬USB設(shè)備所發(fā)送的終端USB設(shè)備包含有USB設(shè)備地址的設(shè)備信息;虛擬設(shè)備實現(xiàn)模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于在遠(yuǎn)端USB主機訪問終端USB設(shè)備時,將終端信息存儲模塊中的設(shè)備信息提供給遠(yuǎn)端USB 主機;遠(yuǎn)端解析轉(zhuǎn)發(fā)模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于接收并區(qū)分終端虛擬USB設(shè)備通過網(wǎng)絡(luò)所發(fā)送的終端USB設(shè)備的設(shè)備信息和讀數(shù)據(jù);將該設(shè)備信息和終端虛擬USB設(shè)備的IP地址直接存放至終端信息存儲模塊;通過添加IP地址將遠(yuǎn)端USB主機針對終端USB設(shè)備的包含有USB端點號和USB設(shè)備地址的讀請求、或包含有USB端點號和USB設(shè)備地址的寫請求和寫數(shù)據(jù)傳遞至終端虛擬USB設(shè)備,以及,通過對 USB端點號和USB設(shè)備地址的解析將該讀數(shù)據(jù)發(fā)送至遠(yuǎn)端主機。終端信息存儲模塊中進(jìn)一步維護(hù)有USB設(shè)備列表,該USB設(shè)備列表中的可選USB 設(shè)備包含所述終端USB設(shè)備、以及該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備;且,遠(yuǎn)端虛擬USB設(shè)備進(jìn)一步包括設(shè)備選擇切換模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧,用于向遠(yuǎn)端USB主機提供所述USB設(shè)備列表、以供遠(yuǎn)端USB主機選擇所要訪問的USB設(shè)備;在遠(yuǎn)端USB主機準(zhǔn)備訪問終端USB設(shè)備之前,觸發(fā)網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧向與遠(yuǎn)端USB主機提供該網(wǎng)絡(luò)接入設(shè)備的設(shè)備信息、以使該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備可作為獨立的遠(yuǎn)端USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作;在遠(yuǎn)端USB主機準(zhǔn)備訪問終端USB設(shè)備時,觸發(fā)虛擬設(shè)備實現(xiàn)模塊將終端信息存儲模塊中的設(shè)備信息提供給遠(yuǎn)端USB主機;以及,在遠(yuǎn)端 USB主機變更其訪問的USB設(shè)備時,觸發(fā)在線熱插拔。終端USB主機為多個、每個終端USB主機分別承載有一個IP地址不同的終端虛擬 USB設(shè)備。終端USB主機直連多個終端USB設(shè)備。本發(fā)明提供的一種用于實現(xiàn)USB主機遠(yuǎn)程訪問的終端虛擬USB設(shè)備,該終端虛擬 USB設(shè)備承載于具有網(wǎng)絡(luò)接入功能并可與終端USB設(shè)備直連的終端USB主機、并包括終端信息獲取模塊,其可調(diào)用終端USB主機的USB主機協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于獲取終端USB設(shè)備的設(shè)備信息、并通過網(wǎng)絡(luò)提供給網(wǎng)絡(luò)遠(yuǎn)端側(cè);終端解析轉(zhuǎn)發(fā)模塊,其可調(diào)用終端USB主機的USB主機協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于在網(wǎng)絡(luò)遠(yuǎn)端側(cè)與終端USB設(shè)備之間,傳遞遠(yuǎn)端主機依據(jù)終端USB設(shè)備的設(shè)備信息而針對該終端USB設(shè)備的讀寫操作所涉及的讀寫請求和數(shù)據(jù)。該終端虛擬USB設(shè)備進(jìn)一步包括遠(yuǎn)端信息存儲模塊,其存儲有預(yù)先設(shè)置的網(wǎng)絡(luò)遠(yuǎn)端側(cè)的IP地址;且,終端信息獲取模塊獲取的終端USB設(shè)備中進(jìn)一步包含有USB設(shè)備地址的設(shè)備信息,以及,終端信息獲取模塊進(jìn)一步依據(jù)遠(yuǎn)端信息存儲模塊所存儲的IP地址向網(wǎng)絡(luò)遠(yuǎn)端側(cè)發(fā)送所獲取的設(shè)備信息;
終端解析轉(zhuǎn)發(fā)模塊進(jìn)一步通過對USB端點號和USB設(shè)備地址的解析將來自網(wǎng)絡(luò)遠(yuǎn)端側(cè)的讀請求、或?qū)懻埱蠛蛯憯?shù)據(jù)傳遞至終端USB主機直連的終端USB設(shè)備,并進(jìn)一步通過添加IP地址將來自終端USB主機直連的終端USB設(shè)備的讀數(shù)據(jù)傳遞至網(wǎng)絡(luò)遠(yuǎn)端側(cè)。本發(fā)明提供的一種用于實現(xiàn)USB主機遠(yuǎn)程訪問的遠(yuǎn)端虛擬USB設(shè)備,該遠(yuǎn)端虛擬 USB設(shè)備承載于具有USB功能并可與遠(yuǎn)端USB主機直連的網(wǎng)絡(luò)接入設(shè)備、并包括虛擬設(shè)備實現(xiàn)模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧,用于在遠(yuǎn)端USB主機訪問終端USB設(shè)備時,將來自網(wǎng)絡(luò)終端側(cè)的終端USB設(shè)備的設(shè)備信息提供給遠(yuǎn)端USB主機;遠(yuǎn)端解析轉(zhuǎn)發(fā)模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于接收所述的來自網(wǎng)絡(luò)終端側(cè)的終端USB設(shè)備的設(shè)備信息,并在遠(yuǎn)端USB主機與網(wǎng)絡(luò)終端側(cè)之間,傳遞遠(yuǎn)端主機依據(jù)終端USB設(shè)備的設(shè)備信息而針對該終端USB設(shè)備的該讀寫操作所涉及的讀寫請求和數(shù)據(jù)。該遠(yuǎn)端虛擬USB設(shè)備進(jìn)一步包括終端信息存儲模塊,用于存儲來自網(wǎng)絡(luò)終端側(cè)的終端USB設(shè)備包含有USB設(shè)備地址的設(shè)備信息、以及網(wǎng)絡(luò)終端側(cè)的IP地址;遠(yuǎn)端解析轉(zhuǎn)發(fā)模塊進(jìn)一步區(qū)分網(wǎng)絡(luò)終端側(cè)所發(fā)送的終端USB設(shè)備的設(shè)備信息和讀數(shù)據(jù),將該設(shè)備信息和網(wǎng)絡(luò)終端側(cè)的IP地址直接存放至終端信息存儲模塊,并通過對 USB端點號和USB設(shè)備地址的解析將該讀數(shù)據(jù)發(fā)送至遠(yuǎn)端主機;以及,進(jìn)一步通過添加IP 地址將遠(yuǎn)端USB主機針對終端USB設(shè)備的包含有USB端點號和USB設(shè)備地址的讀請求、或包含有USB端點號和USB設(shè)備地址的寫請求和寫數(shù)據(jù)傳遞至網(wǎng)絡(luò)終端側(cè)。終端信息存儲模塊中進(jìn)一步維護(hù)有USB設(shè)備列表,該USB設(shè)備列表中的可選USB 設(shè)備包含所述終端USB設(shè)備、以及該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備;且,遠(yuǎn)端虛擬USB設(shè)備進(jìn)一步包括設(shè)備選擇切換模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧,用于向遠(yuǎn)端USB主機提供所述USB設(shè)備列表、以供遠(yuǎn)端USB主機選擇所要訪問的USB設(shè)備;在遠(yuǎn)端USB主機訪問終端USB設(shè)備之前,觸發(fā)網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧向與遠(yuǎn)端USB主機提供該網(wǎng)絡(luò)接入設(shè)備的設(shè)備信息、以使該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備可作為獨立的遠(yuǎn)端 USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作;在遠(yuǎn)端USB主機訪問終端USB設(shè)備時,觸發(fā)虛擬設(shè)備實現(xiàn)模塊將終端信息存儲模塊中的設(shè)備信息提供給遠(yuǎn)端USB主機;以及,在遠(yuǎn)端USB主機變更其訪問的USB設(shè)備時,觸發(fā)在線熱插拔。本發(fā)明提供的一種實現(xiàn)USB主機遠(yuǎn)程訪問的方法,包括在具有網(wǎng)絡(luò)接入功能并與終端USB設(shè)備直連的終端USB主機中設(shè)置終端虛擬USB 設(shè)備,并使該終端虛擬USB設(shè)備可調(diào)用終端USB主機的USB主機協(xié)議棧實現(xiàn)與終端USB設(shè)備的交互、以及可調(diào)用終端USB主機的網(wǎng)絡(luò)協(xié)議棧實現(xiàn)網(wǎng)絡(luò)交互;在具有USB功能并與遠(yuǎn)端USB主機直連的網(wǎng)絡(luò)接入設(shè)備中設(shè)置遠(yuǎn)端虛擬USB設(shè)備,并使該遠(yuǎn)端虛擬USB設(shè)備可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧實現(xiàn)與遠(yuǎn)端USB主機的交互、以及可調(diào)用網(wǎng)絡(luò)接入設(shè)備的網(wǎng)絡(luò)協(xié)議棧實現(xiàn)網(wǎng)絡(luò)交互;且該方法包括如下步驟終端虛擬USB設(shè)備獲取終端USB設(shè)備的設(shè)備信息、并通過網(wǎng)絡(luò)提供給遠(yuǎn)端虛擬USB 設(shè)備;
遠(yuǎn)端虛擬USB設(shè)備在遠(yuǎn)端USB主機需要訪問終端USB設(shè)備時,將通過網(wǎng)絡(luò)接收自終端虛擬USB設(shè)備的終端USB設(shè)備的設(shè)備信息提供給遠(yuǎn)端USB主機,然后模擬終端USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作、并協(xié)同終端虛擬USB設(shè)備在遠(yuǎn)端USB主機與終端USB之間傳遞該讀寫操作所涉及的讀寫請求和數(shù)據(jù)。該方法在遠(yuǎn)端USB主機需要訪問網(wǎng)絡(luò)接入設(shè)備時,進(jìn)一步由遠(yuǎn)端虛擬USB設(shè)備觸發(fā)該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備向遠(yuǎn)端USB主機提供該網(wǎng)絡(luò)接入設(shè)備的設(shè)備信息、以使該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備可作為獨立的遠(yuǎn)端USB設(shè)備接受遠(yuǎn)端USB 主機的讀寫操作;以及,該方法在遠(yuǎn)端USB主機需要變更其訪問的USB設(shè)備時,進(jìn)一步由遠(yuǎn)端虛擬 USB設(shè)備觸發(fā)在線熱插拔。該方法進(jìn)一步由遠(yuǎn)端虛擬USB設(shè)備向遠(yuǎn)端USB主機提供自身維護(hù)的USB設(shè)備列表、以供遠(yuǎn)端USB主機選擇所需要訪問的USB設(shè)備,該USB設(shè)備列表中的可選USB設(shè)備包含該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備、以及遠(yuǎn)端虛擬USB設(shè)備通過網(wǎng)絡(luò)接收到的設(shè)備信息所對應(yīng)的終端USB設(shè)備。終端虛擬USB設(shè)備進(jìn)一步通過對USB端點號和USB設(shè)備地址的解析將來自遠(yuǎn)端虛擬USB設(shè)備的讀請求、或?qū)懻埱蠛蛯憯?shù)據(jù)傳遞至終端USB主機直連的終端USB設(shè)備,并進(jìn)一步通過添加IP地址將來自終端USB主機直連的終端USB設(shè)備的讀數(shù)據(jù)傳遞至遠(yuǎn)端虛擬USB 設(shè)備;遠(yuǎn)端虛擬USB設(shè)備進(jìn)一步接收并區(qū)分終端虛擬USB設(shè)備通過網(wǎng)絡(luò)所發(fā)送的終端 USB設(shè)備的設(shè)備信息和讀數(shù)據(jù),并將該設(shè)備信息和終端虛擬USB設(shè)備的IP地址直接存放、以及通過對USB端點號和USB設(shè)備地址的解析將該讀數(shù)據(jù)發(fā)送至遠(yuǎn)端USB主機;還通過添加 IP地址將來自遠(yuǎn)端USB主機的包含有USB端點號和USB設(shè)備地址的讀請求、或包含有USB 端點號和USB設(shè)備地址的寫請求和寫數(shù)據(jù)傳遞至終端虛擬USB設(shè)備。終端USB主機為多個、每個終端USB主機分別承載有一個IP地址不同的終端虛擬 USB設(shè)備。終端USB主機直連多個終端USB設(shè)備,且,該方法中,遠(yuǎn)端虛擬USB設(shè)備協(xié)同終端虛擬USB設(shè)備進(jìn)一步依據(jù)IP地址和設(shè)備信息中所包含的終端USB設(shè)備的USB設(shè)備地址來區(qū)分各終端USB設(shè)備的讀寫請求和數(shù)據(jù)。由上述技術(shù)方案可見,本發(fā)明分別在遠(yuǎn)端側(cè)和近端側(cè)設(shè)置可通過網(wǎng)絡(luò)交互的虛擬 USB設(shè)備,并由遠(yuǎn)端虛擬USB設(shè)備模擬終端USB設(shè)備被遠(yuǎn)程USB主機訪問、以使遠(yuǎn)端USB主機認(rèn)為該終端USB設(shè)備直連于遠(yuǎn)端USB主機,然后再由遠(yuǎn)端虛擬USB設(shè)備通過IP網(wǎng)絡(luò)和終端虛擬USB設(shè)備,將遠(yuǎn)端USB主機對遠(yuǎn)端虛擬USB設(shè)備的訪問鏡像為終端USB主機對終端 USB設(shè)備的訪問,從而通過鏡像的終端USB主機對終端USB設(shè)備的訪問、即可實現(xiàn)遠(yuǎn)端USB 主機對終端USB設(shè)備跨IP網(wǎng)絡(luò)的遠(yuǎn)程訪問。而且,由于遠(yuǎn)端USB主機對終端USB設(shè)備的遠(yuǎn)程訪問,是通過虛擬USB設(shè)備通過IP網(wǎng)絡(luò)的鏡像來實現(xiàn)的、而并不需要遠(yuǎn)端USB主機與終端USB主機之間的直接交互,因而也就不存在操作系統(tǒng)必須一致、以及USB主機設(shè)備類驅(qū)動必須完整的限制,從而能夠提高USB主機遠(yuǎn)程訪問的通用性。
圖1為現(xiàn)有通過PC機之間實現(xiàn)USB主機遠(yuǎn)程訪問的系統(tǒng)架構(gòu)示意圖;圖2為如圖1所示系統(tǒng)架構(gòu)中遠(yuǎn)端USB主機和終端USB主機的軟硬件架構(gòu)示意圖;圖3為現(xiàn)有PC機與嵌入式設(shè)備之間的系統(tǒng)架構(gòu)示意圖;圖4為本發(fā)明實施例中實現(xiàn)USB主機遠(yuǎn)程訪問的系統(tǒng)架構(gòu)示意圖;圖fe為本發(fā)明實施例中終端虛擬USB設(shè)備的連接方式示意圖;圖恥為本發(fā)明實施例中遠(yuǎn)端虛擬USB設(shè)備的連接方式示意圖;圖6為本發(fā)明實施例中實現(xiàn)USB主機遠(yuǎn)程訪問的擴展架構(gòu)示意圖;圖7a為本發(fā)明實施例中終端虛擬USB設(shè)備的邏輯結(jié)構(gòu)示意圖;圖7b為本發(fā)明實施例中遠(yuǎn)端虛擬USB設(shè)備的邏輯結(jié)構(gòu)示意圖;圖8為本發(fā)明實施例中USB主機遠(yuǎn)程訪問方法的示例性流程圖;圖9為本發(fā)明實施例中USB主機遠(yuǎn)程訪問方法含有切換過程的設(shè)備識別過程的流程圖;圖IOa為本發(fā)明實施例中USB主機遠(yuǎn)程訪問方法的寫訪問過程的流程圖;圖IOb為本發(fā)明實施例中USB主機遠(yuǎn)程訪問方法的讀訪問過程的流程圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明進(jìn)一步詳細(xì)說明。本實施例分別在遠(yuǎn)端側(cè)和近端側(cè)設(shè)置可通過網(wǎng)絡(luò)交互的虛擬USB設(shè)備,即遠(yuǎn)端虛擬USB設(shè)備和終端虛擬USB設(shè)備均可實現(xiàn)USB設(shè)備功能和網(wǎng)絡(luò)接入功能,并由遠(yuǎn)端虛擬USB 設(shè)備模擬終端USB設(shè)備被遠(yuǎn)端USB主機訪問、以使遠(yuǎn)端USB主機認(rèn)為該終端USB設(shè)備直連于遠(yuǎn)端USB主機,然后再由遠(yuǎn)端虛擬USB設(shè)備通過IP網(wǎng)絡(luò)和終端虛擬USB設(shè)備,將遠(yuǎn)端USB 主機對遠(yuǎn)端虛擬USB設(shè)備的訪問鏡像為終端USB主機對終端USB設(shè)備的訪問,從而通過鏡像的終端USB主機對終端USB設(shè)備的訪問、即可實現(xiàn)遠(yuǎn)端USB主機對終端USB設(shè)備跨IP網(wǎng)絡(luò)的遠(yuǎn)程訪問。而且,由于遠(yuǎn)端USB主機對終端USB設(shè)備的遠(yuǎn)程訪問,是通過虛擬USB設(shè)備通過IP網(wǎng)絡(luò)的鏡像來實現(xiàn)的、而不需要遠(yuǎn)端USB主機與終端USB主機之間的直接交互,因而也就不存在操作系統(tǒng)必須一致、以及USB主機設(shè)備類驅(qū)動必須完整的限制,從而能夠提高USB主機遠(yuǎn)程訪問的通用性。下面,先對本實施例中可實現(xiàn)USB主機遠(yuǎn)程訪問、并包含有遠(yuǎn)端虛擬USB設(shè)備和終端虛擬USB設(shè)備的虛擬USB系統(tǒng)進(jìn)行詳細(xì)說明。參見圖4并結(jié)合圖和圖恥虛擬USB系統(tǒng)中的終端虛擬USB設(shè)備,其承載于具有網(wǎng)絡(luò)接入功能并與終端USB 設(shè)備直連的終端USB主機(可以是嵌入式USB主機、也可以是PC機,且其完全符合USB規(guī)范并可以使用任意操作系統(tǒng)),并可調(diào)用終端USB主機的USB主機協(xié)議棧(下文中將“USB 主機協(xié)議棧驅(qū)動”均簡稱為“USB主機協(xié)議?!?實現(xiàn)與終端USB設(shè)備的交互、以及可調(diào)用終端USB主機的網(wǎng)絡(luò)協(xié)議棧(下文中將“網(wǎng)絡(luò)協(xié)議棧驅(qū)動”均簡稱為“網(wǎng)絡(luò)協(xié)議?!?實現(xiàn)網(wǎng)絡(luò)交互,從而利用終端USB主機的網(wǎng)絡(luò)協(xié)議棧;遠(yuǎn)端虛擬USB設(shè)備,其承載于具有USB功能并與遠(yuǎn)端USB主機(可以是PC機、服務(wù)器、或其它嵌入式USB主機,且其完全符合USB規(guī)范并可以使用Windows、Linux或Vxworks 等任意操作系統(tǒng))直連的網(wǎng)絡(luò)接入設(shè)備,并可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧(下文中將“USB設(shè)備協(xié)議棧驅(qū)動”均簡稱為“USB設(shè)備協(xié)議?!?實現(xiàn)與遠(yuǎn)端USB主機的交互、以及可調(diào)用網(wǎng)絡(luò)接入設(shè)備的網(wǎng)絡(luò)協(xié)議棧實現(xiàn)網(wǎng)絡(luò)交互;其中,終端虛擬USB設(shè)備用于獲取終端USB設(shè)備的設(shè)備信息(例如USB設(shè)備標(biāo)準(zhǔn)描述符信息)、并通過IP網(wǎng)絡(luò)提供給遠(yuǎn)端虛擬USB設(shè)備;而遠(yuǎn)端虛擬USB設(shè)備則用于在遠(yuǎn)端USB主機需要訪問(或稱之為準(zhǔn)備訪問)終端USB設(shè)備時,將通過IP網(wǎng)絡(luò)接收自終端虛擬USB設(shè)備的終端USB設(shè)備的設(shè)備信息提供給遠(yuǎn)端USB主機,然后模擬終端USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作,即被遠(yuǎn)端USB主機識別為終端USB設(shè)備、以及維持遠(yuǎn)端USB主機發(fā)出讀寫請求后的等待狀態(tài),并協(xié)同可調(diào)用終端USB主機的USB主機協(xié)議棧的終端虛擬USB 設(shè)備,在遠(yuǎn)端USB主機與終端USB設(shè)備之間傳遞該讀寫操作所涉及的讀寫請求和數(shù)據(jù),用以將遠(yuǎn)端USB主機對遠(yuǎn)端虛擬USB設(shè)備的訪問鏡像為終端USB主機對終端USB設(shè)備的訪問。此外,為了使承載有遠(yuǎn)端虛擬USB設(shè)備的網(wǎng)絡(luò)接入設(shè)備能夠作為獨立的遠(yuǎn)端USB 設(shè)備而被遠(yuǎn)端USB主機訪問,遠(yuǎn)端虛擬USB設(shè)備可以進(jìn)一步在遠(yuǎn)端USB主機需要訪問網(wǎng)絡(luò)接入設(shè)備時,觸發(fā)該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備向遠(yuǎn)端USB主機提供該網(wǎng)絡(luò)接入設(shè)備的設(shè)備信息、以使該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備可作為獨立的遠(yuǎn)端USB 設(shè)備接受遠(yuǎn)端USB主機的讀寫操作。對于網(wǎng)絡(luò)接入設(shè)備可作為獨立的遠(yuǎn)端USB設(shè)備而被遠(yuǎn)端USB主機訪問的情況,還需要遠(yuǎn)端虛擬USB設(shè)備在遠(yuǎn)端USB主機需要變更其訪問的USB設(shè)備時,觸發(fā)在線熱插拔、以使遠(yuǎn)端USB主機重新識別遠(yuǎn)端虛擬USB設(shè)備。所謂的USB在線熱插拔操作,就是強制把遠(yuǎn)端虛擬USB設(shè)備所在網(wǎng)絡(luò)接入設(shè)備的USB數(shù)據(jù)線拉低,使遠(yuǎn)端USB主機認(rèn)為虛擬USB設(shè)備已拔出,并在間隔時間T (至少500ms以上)后再恢復(fù)USB數(shù)據(jù)線,使遠(yuǎn)端USB主機重新將虛擬USB設(shè)備識別為網(wǎng)絡(luò)接入設(shè)備或終端USB設(shè)備。假設(shè)網(wǎng)絡(luò)接入設(shè)備具有U盤功能、終端USB設(shè)備具有3G模塊功能,則當(dāng)遠(yuǎn)端USB主機需要使用U盤功能時,遠(yuǎn)端虛擬USB設(shè)備可以通過在線熱插拔而被遠(yuǎn)端USB主機重新識別為具有U盤功能的網(wǎng)絡(luò)接入設(shè)備,從而使網(wǎng)絡(luò)接入設(shè)備的U盤功能可通過直連的USB線纜而被遠(yuǎn)端USB主機所使用;而當(dāng)遠(yuǎn)端USB主機需要使用3G模塊功能時,遠(yuǎn)端虛擬USB設(shè)備只需再次觸發(fā)一次在線熱插拔,即可被遠(yuǎn)端USB主機重新識別為具有3G模塊功能的終端 USB設(shè)備,從而使終端USB設(shè)備的3G模塊功能可利用前述通過IP網(wǎng)絡(luò)鏡像的方式而被遠(yuǎn)端 USB主機所使用。較佳地,為了實現(xiàn)對遠(yuǎn)端USB主機所訪問設(shè)備的靈活切換,遠(yuǎn)端虛擬USB設(shè)備可維護(hù)一 USB設(shè)備列表、并可提供給遠(yuǎn)端USB主機,以供遠(yuǎn)端USB主機選擇所需要訪問的USB設(shè)備,該USB設(shè)備列表中的可選USB設(shè)備包含該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備、以及遠(yuǎn)端虛擬USB設(shè)備通過網(wǎng)絡(luò)接收到的設(shè)備信息所對應(yīng)的終端USB設(shè)備。上述圖4中僅示出了一個終端USB主機、以及與該終端USB主機直連的一個終端 USB設(shè)備,但在實際應(yīng)用中,如圖6所示,終端USB主機可以為多個、且每個終端USB主機分別承載有一個IP地址不同的終端虛擬USB設(shè)備,和/或,一個終端USB主機可以支持多USB 主機控制器,對于一個終端USB主機支持多USB主機控制器的情況,則需要增加控制器標(biāo)識予以區(qū)分;進(jìn)一步地,一個終端USB主機可以直連多個終端USB設(shè)備,此時,終端虛擬USB設(shè)備和遠(yuǎn)端虛擬USB設(shè)備可以利用IP地址和USB設(shè)備地址予以區(qū)分。下面,再對終端虛擬USB設(shè)備和遠(yuǎn)端虛擬USB設(shè)備進(jìn)行進(jìn)一步說明。如圖7a所示,終端虛擬USB設(shè)備可以包括遠(yuǎn)端信息存儲模塊、終端信息獲取模塊、以及終端解析轉(zhuǎn)發(fā)模塊。遠(yuǎn)端信息存儲模塊,其存儲有預(yù)先設(shè)置的遠(yuǎn)端虛擬USB設(shè)備的IP地址(其通常為遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備的IP地址)、或稱之為可與終端虛擬USB設(shè)備交互的遠(yuǎn)端側(cè)IP地址。終端信息獲取模塊,其可調(diào)用終端USB主機的USB主機協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于獲取與該終端USB主機直連的終端USB設(shè)備包含有USB設(shè)備地址的設(shè)備信息,并依據(jù)遠(yuǎn)端信息存儲模塊所存儲的IP地址向?qū)?yīng)的遠(yuǎn)端虛擬USB設(shè)備發(fā)送所獲取的包含有USB設(shè)備地址的設(shè)備信息;具體說,終端信息獲取模塊從終端USB主機的USB主機協(xié)議棧獲取到終端USB主機直連的終端USB設(shè)備的設(shè)備信息、以及該設(shè)備信息中所包含的USB設(shè)備地址(USB設(shè)備地址可以一并存放在遠(yuǎn)端信息存儲模塊中,也可以再額外設(shè)置一個用于存放終端側(cè)USB設(shè)備地址的終端地址存儲模塊,還可以采用其他方式存儲),然后從遠(yuǎn)端信息存儲模塊獲取遠(yuǎn)端虛擬USB設(shè)備IP地址,再調(diào)用終端USB主機的網(wǎng)絡(luò)協(xié)議棧,將獲取的設(shè)備信息、以及該設(shè)備信息中所包含的USB設(shè)備地址發(fā)送給指定該IP地址對應(yīng)的遠(yuǎn)端虛擬USB設(shè)備。終端解析轉(zhuǎn)發(fā)模塊,其可調(diào)用終端USB主機的USB主機協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于通過對USB端點號的解析以及IP地址和USB設(shè)備地址的識別,在網(wǎng)絡(luò)遠(yuǎn)端側(cè)的遠(yuǎn)端虛擬 USB設(shè)備與該終端USB主機直連的終端USB設(shè)備之間,傳遞遠(yuǎn)端主機依據(jù)該終端USB設(shè)備的設(shè)備信息而對該終端USB設(shè)備的讀寫請求和數(shù)據(jù);即,通過對USB端點號和USB設(shè)備地址的解析將來自遠(yuǎn)端虛擬USB設(shè)備的讀請求、或?qū)懻埱蠛蛯憯?shù)據(jù)傳遞至終端USB主機直連的終端USB設(shè)備,并通過添加IP地址將來自終端USB主機直連的終端USB設(shè)備的讀數(shù)據(jù)傳遞至遠(yuǎn)端虛擬USB設(shè)備;具體說,對于寫操作,終端解析轉(zhuǎn)發(fā)模塊調(diào)用終端USB主機的網(wǎng)絡(luò)協(xié)議棧,以通過網(wǎng)絡(luò)接收來自遠(yuǎn)端虛擬USB設(shè)備的寫請求和寫數(shù)據(jù),然后解析得到對應(yīng)的USB端點號,再按照之前存放的USB設(shè)備地址和解析得到的USB端點號,調(diào)用終端USB主機的USB主機協(xié)議棧將寫請求和寫數(shù)據(jù)下發(fā)給對應(yīng)的終端USB設(shè)備;對于讀操作,終端解析轉(zhuǎn)發(fā)模塊調(diào)用終端 USB主機的網(wǎng)絡(luò)協(xié)議棧,以通過網(wǎng)絡(luò)接收來自遠(yuǎn)端虛擬USB設(shè)備的讀請求,然后解析得到對應(yīng)的USB端點號,再按照之前存放的USB設(shè)備地址和解析得到的USB端點號,調(diào)用終端USB 主機的USB主機協(xié)議棧將讀請求下發(fā)給對應(yīng)的終端USB設(shè)備、等待終端USB設(shè)備返回讀數(shù)據(jù),在通過終端USB主機的USB主機協(xié)議棧接收到終端USB設(shè)備返回的讀數(shù)據(jù)后,終端解析轉(zhuǎn)發(fā)模塊從遠(yuǎn)端信息存儲模塊獲取遠(yuǎn)端虛擬USB設(shè)備IP地址,再調(diào)用終端USB主機的網(wǎng)絡(luò)協(xié)議棧,將終端USB設(shè)備返回的讀數(shù)據(jù)發(fā)送給指定該IP地址對應(yīng)的遠(yuǎn)端虛擬USB設(shè)備。如圖7b所示,遠(yuǎn)端虛擬USB設(shè)備包括遠(yuǎn)端解析轉(zhuǎn)發(fā)模塊、終端信息存儲模塊、虛擬設(shè)備實現(xiàn)模塊、以及設(shè)備選擇切換模塊。終端信息存儲模塊,用于存儲終端虛擬USB設(shè)備所發(fā)送的終端USB設(shè)備包含有USB 設(shè)備地址的設(shè)備信息、即來自網(wǎng)絡(luò)終端側(cè)的終端USB設(shè)備包含有USB設(shè)備地址的設(shè)備信息, 以及,存儲終端虛擬USB設(shè)備的IP地址(其通常為終端虛擬USB設(shè)備所在的終端USB主機的IP地址)、或稱之為網(wǎng)絡(luò)終端側(cè)的IP地址;其中,終端USB設(shè)備信息存儲模塊所存儲的 IP地址、以及設(shè)備信息,可提供給虛擬設(shè)備實現(xiàn)模塊和設(shè)備選擇切換模塊。虛擬設(shè)備實現(xiàn)模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧,用于在遠(yuǎn)端USB主機需要訪問終端USB設(shè)備(例如向該虛擬設(shè)備實現(xiàn)模塊發(fā)送訪問請求)時,將終端信息存儲模塊中的終端USB設(shè)備的設(shè)備信息提供給遠(yuǎn)端USB主機、以使遠(yuǎn)端USB主機將遠(yuǎn)端虛擬 USB設(shè)備識別為該設(shè)備信息所對應(yīng)的終端USB設(shè)備。設(shè)備選擇切換模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧,用于在遠(yuǎn)端USB主機需要訪問終端USB設(shè)備之前,觸發(fā)網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧按照現(xiàn)有方式,向遠(yuǎn)端 USB主機提供該網(wǎng)絡(luò)接入設(shè)備的設(shè)備信息、以使該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備可作為獨立的遠(yuǎn)端USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作;在遠(yuǎn)端USB主機需要訪問終端 USB設(shè)備時,觸發(fā)虛擬設(shè)備實現(xiàn)模塊將終端信息存儲模塊中的設(shè)備信息提供給遠(yuǎn)端USB主機;以及,在遠(yuǎn)端USB主機需要變更其訪問的USB設(shè)備時,觸發(fā)在線熱插拔、使遠(yuǎn)端USB主機重新啟動一次USB設(shè)備的識別過程,從而使虛擬設(shè)備實現(xiàn)模塊在遠(yuǎn)端USB主機重新識別 USB設(shè)備過程中上報終端信息存儲模塊中的終端USB設(shè)備的設(shè)備信息,或使網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧向遠(yuǎn)端USB主機提供該網(wǎng)絡(luò)接入設(shè)備的設(shè)備信息;具體說,終端信息存儲模塊中可以進(jìn)一步維護(hù)有USB設(shè)備列表,該USB設(shè)備列表中的可選USB設(shè)備包含該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備,網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議??梢詮脑撛O(shè)備列表中獲取網(wǎng)絡(luò)接入設(shè)備的設(shè)備信息、且遠(yuǎn)端解析轉(zhuǎn)發(fā)模塊每接收到設(shè)備信息即填入至該設(shè)備列表中;設(shè)備選擇切換模塊則可以進(jìn)一步向遠(yuǎn)端USB主機提供所述USB設(shè)備列表、以供遠(yuǎn)端USB主機選擇所需要訪問的USB設(shè)備。當(dāng)然,如果不需要網(wǎng)絡(luò)接入設(shè)備作為獨立的遠(yuǎn)端USB設(shè)備而被遠(yuǎn)端USB主機訪問, 則遠(yuǎn)端虛擬USB設(shè)備中可以不需要設(shè)備選擇切換模塊,此時,虛擬設(shè)備實現(xiàn)模塊則可以通過網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧直接被遠(yuǎn)端USB主機觸發(fā)、或采用其他本領(lǐng)域技術(shù)人員能夠想到的任意方式觸發(fā)。遠(yuǎn)端解析轉(zhuǎn)發(fā)模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于接收并區(qū)分終端虛擬USB設(shè)備通過網(wǎng)絡(luò)所發(fā)送的終端USB設(shè)備的設(shè)備信息和讀數(shù)據(jù)、來自網(wǎng)絡(luò)終端側(cè)的終端USB設(shè)備的設(shè)備信息和讀數(shù)據(jù);將該設(shè)備信息和終端虛擬USB設(shè)備的 IP地址直接存放至終端信息存儲模塊、以及通過對USB端點號和USB設(shè)備地址的解析將該讀數(shù)據(jù)發(fā)送至遠(yuǎn)端主機;在遠(yuǎn)端USB主機將遠(yuǎn)端虛擬USB設(shè)備識別為該設(shè)備信息所對應(yīng)的終端USB設(shè)備之后,通過對USB端點號的解析以及IP地址和USB設(shè)備地址的識別,在遠(yuǎn)端 USB主機與終端虛擬USB設(shè)備之間傳遞該讀寫操作所涉及的讀寫請求和數(shù)據(jù),即,通過添加 IP地址將遠(yuǎn)端USB主機針對終端USB設(shè)備的包含有USB端點號和USB設(shè)備地址的讀請求、 或包含有USB端點號和USB設(shè)備地址的寫請求和寫數(shù)據(jù)傳遞至終端虛擬USB設(shè)備、以及通過對USB端點號和USB設(shè)備地址的解析將終端虛擬USB設(shè)備返回的終端USB設(shè)備的讀數(shù)據(jù)發(fā)送至遠(yuǎn)端主機;從而,遠(yuǎn)端解析轉(zhuǎn)發(fā)模塊能夠在遠(yuǎn)端USB主機與網(wǎng)絡(luò)終端側(cè)之間,傳遞遠(yuǎn)端主機依據(jù)終端USB設(shè)備的設(shè)備信息而針對該終端USB設(shè)備的該讀寫操作所涉及的讀寫請求和數(shù)據(jù);具體說,遠(yuǎn)端解析轉(zhuǎn)發(fā)模塊能夠區(qū)分解析出承載于終端USB主機的終端虛擬USB 設(shè)備所發(fā)送的包含有USB設(shè)備地址的設(shè)備信息和數(shù)據(jù),并將包含有USB設(shè)備地址的設(shè)備信息聯(lián)同終端虛擬USB設(shè)備的IP地址報送至終端信息存儲模塊存儲;在參與實現(xiàn)遠(yuǎn)端USB主機和終端USB設(shè)備之間數(shù)據(jù)傳輸時,先依據(jù)遠(yuǎn)端USB主機指定的USB端點號,從終端信息存儲模塊中獲取對應(yīng)終端USB設(shè)備所直連的終端USB主機中承載的終端虛擬USB設(shè)備的IP 地址、以及對應(yīng)終端USB設(shè)備的USB設(shè)備地址,然后按照獲取的IP地址和USB設(shè)備地址,將來自遠(yuǎn)端USB主機的包含USB端點號的讀請求、或?qū)懻埱蠛蛯憯?shù)據(jù)通過網(wǎng)絡(luò)發(fā)送至該終端虛擬USB設(shè)備,以使該終端虛擬USB設(shè)備可依據(jù)USB端點號和USB設(shè)備地址、并利用終端 USB主機對相應(yīng)的終端USB設(shè)備進(jìn)行讀寫操作,與此同時,還可向遠(yuǎn)端USB主機回復(fù)響應(yīng)信號NAK、通知遠(yuǎn)端USB主機讀寫操作已開始但尚未完成;此外,對于讀操作,終端虛擬USB設(shè)備還會返回來自相應(yīng)終端USB設(shè)備的讀數(shù)據(jù)、并可選地返回操作完成響應(yīng),此時,遠(yuǎn)端解析轉(zhuǎn)發(fā)模塊按照解析出的USB端點號,將讀數(shù)據(jù)和操作完成響應(yīng)返回給遠(yuǎn)端USB主機。以上,是對本實施例中包含有虛擬USB系統(tǒng)及其所在的USB主機遠(yuǎn)程訪問系統(tǒng)的詳細(xì)說明。上述說明中所采用的模塊劃分方式并不唯一,實際應(yīng)用中可以依照功能任意劃分。下面,再對本實施例中USB主機遠(yuǎn)程訪問方法進(jìn)行詳細(xì)說明。圖8為本發(fā)明實施例中USB主機遠(yuǎn)程訪問方法的示例性流程圖。如圖8所示,在設(shè)置有前述的遠(yuǎn)端虛擬USB設(shè)備和終端虛擬USB設(shè)備之后,本實施例中的USB主機遠(yuǎn)程訪問方法包括如下步驟步驟801,終端虛擬USB設(shè)備獲取終端USB設(shè)備的設(shè)備信息、并通過網(wǎng)絡(luò)提供給遠(yuǎn)端虛擬USB設(shè)備;步驟802,遠(yuǎn)端虛擬USB設(shè)備在遠(yuǎn)端USB主機需要訪問終端USB設(shè)備時,將通過網(wǎng)絡(luò)接收自終端虛擬USB設(shè)備的終端USB設(shè)備的設(shè)備信息提供給遠(yuǎn)端USB主機,然后執(zhí)行步驟 803 ;步驟803,遠(yuǎn)端虛擬USB設(shè)備模擬終端USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作、并協(xié)同終端虛擬USB設(shè)備在遠(yuǎn)端USB主機與終端USB之間傳遞該讀寫操作所涉及的讀寫請求和數(shù)據(jù)。實際應(yīng)用中,終端虛擬USB設(shè)備可以進(jìn)一步通過對USB端點號和USB設(shè)備地址的解析將來自遠(yuǎn)端虛擬USB設(shè)備的讀請求、或?qū)懻埱蠛蛯憯?shù)據(jù)傳遞至終端USB主機直連的終端USB設(shè)備,并進(jìn)一步通過添加IP地址將來自終端USB主機直連的終端USB設(shè)備的讀數(shù)據(jù)傳遞至遠(yuǎn)端虛擬USB設(shè)備;而遠(yuǎn)端虛擬USB設(shè)備則可以進(jìn)一步接收并區(qū)分終端虛擬USB設(shè)備通過網(wǎng)絡(luò)所發(fā)送的終端USB設(shè)備的設(shè)備信息和讀數(shù)據(jù),并將該設(shè)備信息和終端虛擬USB 設(shè)備的IP地址直接存放、以及通過對USB端點號和USB設(shè)備地址的解析將該讀數(shù)據(jù)發(fā)送至遠(yuǎn)端USB主機;還通過添加IP地址將來自遠(yuǎn)端USB主機的包含有USB端點號和USB設(shè)備地址的讀請求、或包含有USB端點號和USB設(shè)備地址的寫請求和寫數(shù)據(jù)傳遞至終端虛擬USB 設(shè)備。至此,本流程結(jié)束。此外,在上述流程步驟802之前、或步驟803之后,遠(yuǎn)端USB主機還可以將網(wǎng)絡(luò)接入設(shè)備作為獨立的遠(yuǎn)端USB設(shè)備予以訪問,則本實施例中的USB主機遠(yuǎn)程訪問方法在遠(yuǎn)端 USB主機需要訪問網(wǎng)絡(luò)接入設(shè)備時,可以進(jìn)一步由遠(yuǎn)端虛擬USB設(shè)備觸發(fā)該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備向遠(yuǎn)端USB主機提供該網(wǎng)絡(luò)接入設(shè)備的設(shè)備信息、以使該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備可作為獨立的遠(yuǎn)端USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作; 以及,該方法在遠(yuǎn)端USB主機需要變更其訪問的USB設(shè)備時,還需要進(jìn)一步由遠(yuǎn)端虛擬USB 設(shè)備觸發(fā)在線熱插拔、使遠(yuǎn)端USB主機重新啟動一次USB設(shè)備的識別過程。更具體地,在遠(yuǎn)端USB主機需要變更其訪問的USB設(shè)備時,該方法進(jìn)一步可以由遠(yuǎn)端虛擬USB設(shè)備向遠(yuǎn)端USB主機提供自身維護(hù)的USB設(shè)備列表、以供遠(yuǎn)端USB主機選擇所需要訪問的USB設(shè)備,該USB設(shè)備列表中的可選USB設(shè)備包含該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備、以及遠(yuǎn)端虛擬USB設(shè)備通過網(wǎng)絡(luò)接收到的設(shè)備信息所對應(yīng)的終端USB設(shè)備。圖9為本發(fā)明實施例中USB主機遠(yuǎn)程訪問方法含有切換過程的設(shè)備識別過程的流程圖。如圖9所示,該識別過程的一較佳流程可以包括如下步驟步驟901,終端虛擬USB設(shè)備將終端USB主機獲取到的終端USB設(shè)備的設(shè)備信息, 通過網(wǎng)絡(luò)傳輸至遠(yuǎn)端虛擬USB設(shè)備。步驟902,遠(yuǎn)端虛擬USB設(shè)備存儲接收到的終端USB設(shè)備的設(shè)備信息、以及終端虛擬USB設(shè)備的IP地址,并將該終端USB設(shè)備作為可選設(shè)備提供給遠(yuǎn)端USB主機。步驟903,在遠(yuǎn)端虛擬USB設(shè)備選擇終端USB設(shè)備后,遠(yuǎn)端虛擬USB設(shè)備觸發(fā)在線熱插拔、并將所選終端USB設(shè)備的設(shè)備信息上報給遠(yuǎn)端虛擬USB主機,以使遠(yuǎn)端USB主機將遠(yuǎn)端虛擬USB設(shè)備識別為所選終端USB設(shè)備。至此,將遠(yuǎn)端虛擬USB設(shè)備識別為終端USB設(shè)備的流程結(jié)束。在結(jié)束上述流程后,遠(yuǎn)端虛擬USB設(shè)備即可模擬終端USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作、并協(xié)同終端虛擬USB設(shè)備在遠(yuǎn)端USB主機與終端USB之間傳遞該讀寫操作所涉及的讀寫請求和數(shù)據(jù)。實際應(yīng)用中,終端USB主機可以為多個、且每個終端USB主機分別承載有一個IP 地址不同的終端虛擬USB設(shè)備,和/或,一個終端USB主機可以支持多USB主機控制器,對于一個終端USB主機支持多USB主機控制器的情況,則需要增加控制器標(biāo)識予以區(qū)分;進(jìn)一步地,一個終端USB主機可以直連多個終端USB設(shè)備,此時,遠(yuǎn)端虛擬USB設(shè)備協(xié)同終端虛擬USB設(shè)備進(jìn)一步依據(jù)IP地址和設(shè)備信息中所包含的終端USB設(shè)備的USB 設(shè)備地址來區(qū)分各終端USB設(shè)備的讀寫請求和數(shù)據(jù)。圖IOa為本發(fā)明實施例中USB主機遠(yuǎn)程訪問方法的寫訪問過程的流程圖。如圖 IOa所示,該寫訪問過程的一較佳流程包括如下步驟步驟1001a,遠(yuǎn)端虛擬USB設(shè)備接收遠(yuǎn)端USB主機的寫請求和寫數(shù)據(jù),并向遠(yuǎn)端 USB主機返回響應(yīng)信號NAK、通知遠(yuǎn)端USB主機寫操作已開始但尚未完成。步驟1002a,遠(yuǎn)端虛擬USB設(shè)備依據(jù)存儲的終端虛擬USB設(shè)備的IP地址,將接收自遠(yuǎn)端USB主機的包含USB端點號的寫請求和寫數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送至該終端虛擬USB設(shè)備;步驟1003a,終端虛擬USB設(shè)備通過網(wǎng)絡(luò)接收到寫請求和寫數(shù)據(jù),并依據(jù)對USB端點號、以及USB設(shè)備地址的解析,通過終端USB主機將寫請求和寫數(shù)據(jù)下發(fā)至終端USB設(shè)備。至此,一次完整的寫操作流程結(jié)束。圖IOb為本發(fā)明實施例中USB主機遠(yuǎn)程訪問方法的讀訪問過程的流程圖。如圖 IOb所示,該讀訪問過程的一較佳流程包括如下步驟步驟1001b,遠(yuǎn)端虛擬USB設(shè)備接收遠(yuǎn)端USB主機的讀請求,并向遠(yuǎn)端USB主機返回響應(yīng)信號NAK、通知遠(yuǎn)端USB主機讀操作已開始但尚未完成。步驟1002b,遠(yuǎn)端虛擬USB設(shè)備依據(jù)存儲的終端虛擬USB設(shè)備的IP地址,將接收自遠(yuǎn)端USB主機的包含USB端點號的讀請求通過網(wǎng)絡(luò)發(fā)送至該終端虛擬USB設(shè)備;步驟1003b,終端虛擬USB設(shè)備通過網(wǎng)絡(luò)接收到讀請求,并依據(jù)對USB端點號、以及 USB設(shè)備地址的解析,通過終端USB主機將讀請求下發(fā)至終端USB設(shè)備。步驟1004b,終端虛擬USB設(shè)備接收到終端USB設(shè)備的讀數(shù)據(jù)、并依據(jù)存儲的遠(yuǎn)端虛擬USB設(shè)備的IP地址通過網(wǎng)絡(luò)發(fā)送至遠(yuǎn)端虛擬USB設(shè)備,再由遠(yuǎn)端虛擬USB設(shè)備通過對 USB端點號和USB設(shè)備地址的解析返回給遠(yuǎn)端USB主機。本步驟中的操作完成相應(yīng)為可選的。至此,一次完整的讀操作流程結(jié)束。以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種用于實現(xiàn)USB主機遠(yuǎn)程訪問的虛擬USB系統(tǒng),其特征在于,該虛擬USB系統(tǒng)應(yīng)用于遠(yuǎn)端USB主機與終端USB之間、并包括終端虛擬USB設(shè)備,其承載于具有網(wǎng)絡(luò)接入功能并可與終端USB設(shè)備直連的終端USB 主機,且其可調(diào)用終端USB主機的USB主機協(xié)議棧實現(xiàn)與終端USB設(shè)備的交互、以及可調(diào)用終端USB主機的網(wǎng)絡(luò)協(xié)議棧實現(xiàn)網(wǎng)絡(luò)交互;遠(yuǎn)端虛擬USB設(shè)備,其承載于具有USB功能并可與遠(yuǎn)端USB主機直連的網(wǎng)絡(luò)接入設(shè)備, 且其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧實現(xiàn)與遠(yuǎn)端USB主機的交互、以及可調(diào)用網(wǎng)絡(luò)接入設(shè)備的網(wǎng)絡(luò)協(xié)議棧實現(xiàn)網(wǎng)絡(luò)交互;其中,終端虛擬USB設(shè)備用于獲取終端USB設(shè)備的設(shè)備信息、并通過網(wǎng)絡(luò)提供給遠(yuǎn)端虛擬USB設(shè)備;遠(yuǎn)端虛擬USB設(shè)備用于在遠(yuǎn)端USB主機需要訪問終端USB設(shè)備時,將通過網(wǎng)絡(luò)接收自終端虛擬USB設(shè)備的終端USB設(shè)備的設(shè)備信息提供給遠(yuǎn)端USB主機,然后模擬終端 USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作、并協(xié)同終端虛擬USB設(shè)備在遠(yuǎn)端USB主機與終端 USB設(shè)備之間傳遞該讀寫操作所涉及的讀寫請求和數(shù)據(jù)。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,遠(yuǎn)端虛擬USB設(shè)備進(jìn)一步向遠(yuǎn)端USB主機提供自身維護(hù)的USB設(shè)備列表、以供遠(yuǎn)端USB主機選擇所要訪問的USB設(shè)備,該USB設(shè)備列表中的可選USB設(shè)備包含該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備、以及遠(yuǎn)端虛擬USB設(shè)備通過網(wǎng)絡(luò)接收到的設(shè)備信息所對應(yīng)的終端USB設(shè)備;且,遠(yuǎn)端虛擬USB設(shè)備進(jìn)一步在遠(yuǎn)端USB主機選擇USB設(shè)備列表中的網(wǎng)絡(luò)接入設(shè)備時, 觸發(fā)該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備向遠(yuǎn)端USB主機提供該網(wǎng)絡(luò)接入設(shè)備的設(shè)備信息、以使該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備可作為獨立的遠(yuǎn)端USB設(shè)備接受遠(yuǎn)端 USB主機的讀寫操作;以及,進(jìn)一步在遠(yuǎn)端USB主機變更其訪問的USB設(shè)備時,觸發(fā)在線熱插拔。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,終端虛擬USB設(shè)備包括遠(yuǎn)端信息存儲模塊,其存儲有預(yù)先設(shè)置的遠(yuǎn)端虛擬USB設(shè)備的IP地址;終端信息獲取模塊,其可調(diào)用終端USB主機的USB主機協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于獲取與該終端USB主機直連的終端USB設(shè)備包含有USB設(shè)備地址的設(shè)備信息,并依據(jù)遠(yuǎn)端信息存儲模塊所存儲的IP地址向?qū)?yīng)的遠(yuǎn)端虛擬USB設(shè)備發(fā)送所獲取的設(shè)備信息;終端解析轉(zhuǎn)發(fā)模塊,其可調(diào)用終端USB主機的USB主機協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于通過對USB端點號和USB設(shè)備地址的解析將來自遠(yuǎn)端虛擬USB設(shè)備的讀請求、或?qū)懻埱蠛蛯憯?shù)據(jù)傳遞至終端USB主機直連的終端USB設(shè)備,并通過添加IP地址將來自終端USB主機直連的終端USB設(shè)備的讀數(shù)據(jù)傳遞至遠(yuǎn)端虛擬USB設(shè)備。
4.如權(quán)利要求3所述的系統(tǒng),其特征在于,遠(yuǎn)端虛擬USB設(shè)備包括終端信息存儲模塊,用于存儲終端虛擬USB設(shè)備的IP地址、以及終端虛擬USB設(shè)備所發(fā)送的終端USB設(shè)備包含有USB設(shè)備地址的設(shè)備信息;虛擬設(shè)備實現(xiàn)模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧,用于在遠(yuǎn)端USB主機訪問終端USB設(shè)備時,將終端信息存儲模塊中的設(shè)備信息提供給遠(yuǎn)端USB主機;遠(yuǎn)端解析轉(zhuǎn)發(fā)模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于接收并區(qū)分終端虛擬USB設(shè)備通過網(wǎng)絡(luò)所發(fā)送的終端USB設(shè)備的設(shè)備信息和讀數(shù)據(jù);將該設(shè)備信息和終端虛擬USB設(shè)備的IP地址直接存放至終端信息存儲模塊;通過添加IP地址將遠(yuǎn)端USB主機針對終端USB設(shè)備的包含有USB端點號和USB設(shè)備地址的讀請求、或包含有 USB端點號和USB設(shè)備地址的寫請求和寫數(shù)據(jù)傳遞至終端虛擬USB設(shè)備,以及,通過對USB 端點號和USB設(shè)備地址的解析將該讀數(shù)據(jù)發(fā)送至遠(yuǎn)端主機。
5.如權(quán)利要求4所述的系統(tǒng),其特征在于,終端信息存儲模塊中進(jìn)一步維護(hù)有USB設(shè)備列表,該USB設(shè)備列表中的可選USB設(shè)備包含所述終端USB設(shè)備、以及該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備;且,遠(yuǎn)端虛擬USB設(shè)備進(jìn)一步包括設(shè)備選擇切換模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧,用于向遠(yuǎn)端USB主機提供所述USB設(shè)備列表、以供遠(yuǎn)端USB主機選擇所要訪問的USB設(shè)備;在遠(yuǎn)端USB主機訪問終端USB設(shè)備之前,觸發(fā)網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧向與遠(yuǎn)端USB主機提供該網(wǎng)絡(luò)接入設(shè)備的設(shè)備信息、以使該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備可作為獨立的遠(yuǎn)端USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作;在遠(yuǎn)端USB主機訪問終端USB設(shè)備時,觸發(fā)虛擬設(shè)備實現(xiàn)模塊將終端信息存儲模塊中的設(shè)備信息提供給遠(yuǎn)端USB主機;以及,在遠(yuǎn)端USB主機變更其訪問的USB設(shè)備時,觸發(fā)在線熱插拔。
6.如權(quán)利要求1至5中任一項所述的系統(tǒng),其特征在于,終端USB主機為多個、每個終端USB主機分別承載有一個IP地址不同的終端虛擬USB設(shè)備。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,終端USB主機直連多個終端USB設(shè)備。
8.一種用于實現(xiàn)USB主機遠(yuǎn)程訪問的終端虛擬USB設(shè)備,其特征在于,該終端虛擬USB 設(shè)備承載于具有網(wǎng)絡(luò)接入功能并可與終端USB設(shè)備直連的終端USB主機、并包括終端信息獲取模塊,其可調(diào)用終端USB主機的USB主機協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于獲取終端USB設(shè)備的設(shè)備信息、并通過網(wǎng)絡(luò)提供給網(wǎng)絡(luò)遠(yuǎn)端側(cè);終端解析轉(zhuǎn)發(fā)模塊,其可調(diào)用終端USB主機的USB主機協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于在網(wǎng)絡(luò)遠(yuǎn)端側(cè)與終端USB設(shè)備之間,傳遞遠(yuǎn)端主機依據(jù)終端USB設(shè)備的設(shè)備信息而針對該終端 USB設(shè)備的讀寫操作所涉及的讀寫請求和數(shù)據(jù)。
9.如權(quán)利要求8所述的終端虛擬USB設(shè)備,其特征在于,該終端虛擬USB設(shè)備進(jìn)一步包括遠(yuǎn)端信息存儲模塊,其存儲有預(yù)先設(shè)置的網(wǎng)絡(luò)遠(yuǎn)端側(cè)的IP地址;且,終端信息獲取模塊獲取的終端USB設(shè)備中進(jìn)一步包含有USB設(shè)備地址的設(shè)備信息, 以及,終端信息獲取模塊進(jìn)一步依據(jù)遠(yuǎn)端信息存儲模塊所存儲的IP地址向網(wǎng)絡(luò)遠(yuǎn)端側(cè)發(fā)送所獲取的設(shè)備信息;終端解析轉(zhuǎn)發(fā)模塊進(jìn)一步通過對USB端點號和USB設(shè)備地址的解析將來自網(wǎng)絡(luò)遠(yuǎn)端側(cè)的讀請求、或?qū)懻埱蠛蛯憯?shù)據(jù)傳遞至終端USB主機直連的終端USB設(shè)備,并進(jìn)一步通過添加 IP地址將來自終端USB主機直連的終端USB設(shè)備的讀數(shù)據(jù)傳遞至網(wǎng)絡(luò)遠(yuǎn)端側(cè)。
10.一種用于實現(xiàn)USB主機遠(yuǎn)程訪問的遠(yuǎn)端虛擬USB設(shè)備,其特征在于,該遠(yuǎn)端虛擬 USB設(shè)備承載于具有USB功能并可與遠(yuǎn)端USB主機直連的網(wǎng)絡(luò)接入設(shè)備、并包括虛擬設(shè)備實現(xiàn)模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧,用于在遠(yuǎn)端USB主機訪問終端USB設(shè)備時,將來自網(wǎng)絡(luò)終端側(cè)的終端USB設(shè)備的設(shè)備信息提供給遠(yuǎn)端USB主機;遠(yuǎn)端解析轉(zhuǎn)發(fā)模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧和網(wǎng)絡(luò)協(xié)議棧,用于接收所述的來自網(wǎng)絡(luò)終端側(cè)的終端USB設(shè)備的設(shè)備信息,并在遠(yuǎn)端USB主機與網(wǎng)絡(luò)終端側(cè)之間,傳遞遠(yuǎn)端主機依據(jù)終端USB設(shè)備的設(shè)備信息而針對該終端USB設(shè)備的該讀寫操作所涉及的讀寫請求和數(shù)據(jù)。
11.如權(quán)利要求10所述的遠(yuǎn)端虛擬USB設(shè)備,其特征在于,該遠(yuǎn)端虛擬USB設(shè)備進(jìn)一步包括終端信息存儲模塊,用于存儲來自網(wǎng)絡(luò)終端側(cè)的終端USB設(shè)備包含有USB設(shè)備地址的設(shè)備信息、以及網(wǎng)絡(luò)終端側(cè)的IP地址;遠(yuǎn)端解析轉(zhuǎn)發(fā)模塊進(jìn)一步區(qū)分網(wǎng)絡(luò)終端側(cè)所發(fā)送的終端USB設(shè)備的設(shè)備信息和讀數(shù)據(jù),將該設(shè)備信息和網(wǎng)絡(luò)終端側(cè)的IP地址直接存放至終端信息存儲模塊,并通過對USB端點號和USB設(shè)備地址的解析將該讀數(shù)據(jù)發(fā)送至遠(yuǎn)端主機;以及,進(jìn)一步通過添加IP地址將遠(yuǎn)端USB主機針對終端USB設(shè)備的包含有USB端點號和USB設(shè)備地址的讀請求、或包含有 USB端點號和USB設(shè)備地址的寫請求和寫數(shù)據(jù)傳遞至網(wǎng)絡(luò)終端側(cè)。
12.如權(quán)利要求11所述的遠(yuǎn)端虛擬USB設(shè)備,其特征在于,終端信息存儲模塊中進(jìn)一步維護(hù)有USB設(shè)備列表,該USB設(shè)備列表中的可選USB設(shè)備包含所述終端USB設(shè)備、以及該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備;且,遠(yuǎn)端虛擬USB設(shè)備進(jìn)一步包括設(shè)備選擇切換模塊,其可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧,用于向遠(yuǎn)端USB主機提供所述USB設(shè)備列表、以供遠(yuǎn)端USB主機選擇所要訪問的USB設(shè)備;在遠(yuǎn)端USB主機訪問終端USB設(shè)備之前,觸發(fā)網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧向與遠(yuǎn)端USB主機提供該網(wǎng)絡(luò)接入設(shè)備的設(shè)備信息、以使該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備可作為獨立的遠(yuǎn)端USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作;在遠(yuǎn)端USB主機訪問終端USB設(shè)備時,觸發(fā)虛擬設(shè)備實現(xiàn)模塊將終端信息存儲模塊中的設(shè)備信息提供給遠(yuǎn)端USB主機;以及,在遠(yuǎn)端USB主機變更其訪問的USB設(shè)備時,觸發(fā)在線熱插拔。
13.一種實現(xiàn)USB主機遠(yuǎn)程訪問的方法,其特征在于,在具有網(wǎng)絡(luò)接入功能并與終端USB設(shè)備直連的終端USB主機中設(shè)置終端虛擬USB設(shè)備,并使該終端虛擬USB設(shè)備可調(diào)用終端USB主機的USB主機協(xié)議棧實現(xiàn)與終端USB設(shè)備的交互、以及可調(diào)用終端USB主機的網(wǎng)絡(luò)協(xié)議棧實現(xiàn)網(wǎng)絡(luò)交互;在具有USB功能并與遠(yuǎn)端USB主機直連的網(wǎng)絡(luò)接入設(shè)備中設(shè)置遠(yuǎn)端虛擬USB設(shè)備,并使該遠(yuǎn)端虛擬USB設(shè)備可調(diào)用網(wǎng)絡(luò)接入設(shè)備的USB設(shè)備協(xié)議棧實現(xiàn)與遠(yuǎn)端USB主機的交互、以及可調(diào)用網(wǎng)絡(luò)接入設(shè)備的網(wǎng)絡(luò)協(xié)議棧實現(xiàn)網(wǎng)絡(luò)交互;且該方法包括如下步驟終端虛擬USB設(shè)備獲取終端USB設(shè)備的設(shè)備信息、并通過網(wǎng)絡(luò)提供給遠(yuǎn)端虛擬USB設(shè)備;遠(yuǎn)端虛擬USB設(shè)備在遠(yuǎn)端USB主機訪問終端USB設(shè)備時,將通過網(wǎng)絡(luò)接收自終端虛擬 USB設(shè)備的終端USB設(shè)備的設(shè)備信息提供給遠(yuǎn)端USB主機,然后模擬終端USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作、并協(xié)同終端虛擬USB設(shè)備在遠(yuǎn)端USB主機與終端USB之間傳遞該讀寫操作所涉及的讀寫請求和數(shù)據(jù)。
14.如權(quán)利要求13所述的方法,其特征在于,該方法在遠(yuǎn)端USB主機訪問網(wǎng)絡(luò)接入設(shè)備時,進(jìn)一步由遠(yuǎn)端虛擬USB設(shè)備觸發(fā)該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備向遠(yuǎn)端USB主機提供該網(wǎng)絡(luò)接入設(shè)備的設(shè)備信息、以使該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備可作為獨立的遠(yuǎn)端USB設(shè)備接受遠(yuǎn)端USB主機的讀寫操作;以及,該方法在遠(yuǎn)端USB主機變更其訪問的USB設(shè)備時,進(jìn)一步由遠(yuǎn)端虛擬USB設(shè)備觸發(fā)在線熱插拔。
15.如權(quán)利要求14所述的方法,其特征在于,該方法進(jìn)一步由遠(yuǎn)端虛擬USB設(shè)備向遠(yuǎn)端USB主機提供自身維護(hù)的USB設(shè)備列表、以供遠(yuǎn)端USB主機選擇所要訪問的USB設(shè)備,該 USB設(shè)備列表中的可選USB設(shè)備包含該遠(yuǎn)端虛擬USB設(shè)備所在的網(wǎng)絡(luò)接入設(shè)備、以及遠(yuǎn)端虛擬USB設(shè)備通過網(wǎng)絡(luò)接收到的設(shè)備信息所對應(yīng)的終端USB設(shè)備。
16.如權(quán)利要求13至15中任一項所述的方法,其特征在于,終端虛擬USB設(shè)備進(jìn)一步通過對USB端點號和USB設(shè)備地址的解析將來自遠(yuǎn)端虛擬 USB設(shè)備的讀請求、或?qū)懻埱蠛蛯憯?shù)據(jù)傳遞至終端USB主機直連的終端USB設(shè)備,并進(jìn)一步通過添加IP地址將來自終端USB主機直連的終端USB設(shè)備的讀數(shù)據(jù)傳遞至遠(yuǎn)端虛擬USB 設(shè)備;遠(yuǎn)端虛擬USB設(shè)備進(jìn)一步接收并區(qū)分終端虛擬USB設(shè)備通過網(wǎng)絡(luò)所發(fā)送的終端USB設(shè)備的設(shè)備信息和讀數(shù)據(jù),并將該設(shè)備信息和終端虛擬USB設(shè)備的IP地址直接存放、以及通過對USB端點號和USB設(shè)備地址的解析將該讀數(shù)據(jù)發(fā)送至遠(yuǎn)端USB主機;還通過添加IP地址將來自遠(yuǎn)端USB主機的包含有USB端點號和USB設(shè)備地址的讀請求、或包含有USB端點號和USB設(shè)備地址的寫請求和寫數(shù)據(jù)傳遞至終端虛擬USB設(shè)備。
17.如權(quán)利要求13至15中任一項所述的方法,其特征在于,終端USB主機為多個、每個終端USB主機分別承載有一個IP地址不同的終端虛擬USB設(shè)備。
18.如權(quán)利要求17所述的方法,其特征在于,終端USB主機直連多個終端USB設(shè)備。
全文摘要
本發(fā)明公開了一種用于實現(xiàn)USB主機遠(yuǎn)程訪問的虛擬USB系統(tǒng)和設(shè)備及方法。本發(fā)明分別在遠(yuǎn)端側(cè)和近端側(cè)設(shè)置可通過網(wǎng)絡(luò)交互的虛擬USB設(shè)備,并由遠(yuǎn)端虛擬USB設(shè)備模擬終端USB設(shè)備被遠(yuǎn)程USB主機訪問,并由遠(yuǎn)端虛擬USB設(shè)備通過IP網(wǎng)絡(luò)和終端虛擬USB設(shè)備將該訪問鏡像為終端USB主機對終端USB設(shè)備的訪問,從而即可實現(xiàn)遠(yuǎn)端USB主機對終端USB設(shè)備跨IP網(wǎng)絡(luò)的遠(yuǎn)程訪問。而且,由于遠(yuǎn)端USB主機對終端USB設(shè)備的遠(yuǎn)程訪問不需要遠(yuǎn)端USB主機與終端USB主機之間的直接交互,因而也就不存在操作系統(tǒng)必須一致、以及USB主機設(shè)備類驅(qū)動必須完整的限制,從而能夠提高USB主機遠(yuǎn)程訪問的通用性。
文檔編號H04L29/08GK102281264SQ20101020834
公開日2011年12月14日 申請日期2010年6月13日 優(yōu)先權(quán)日2010年6月13日
發(fā)明者趙志宇 申請人:杭州華三通信技術(shù)有限公司