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