Usb多電腦切換器的制造方法
【技術(shù)領(lǐng)域】
[0001]本公開(kāi)涉及通用串行總線的多電腦切換裝置,尤其涉及使用虛擬USB切換多部主機(jī)的USB多電腦切換器與方法。
【背景技術(shù)】
[0002]多電腦切換裝置(KVM switch),是指可以利用一組例如包含鍵盤(keyboard)、屏幕(video)、鼠標(biāo)(mouse)等控制設(shè)備(console device)的電子裝置,通過(guò)信號(hào)切換元件或模塊的方式,來(lái)連接及控制兩臺(tái)以上的電腦主機(jī)。通用串行總線(USB)為一種電腦主機(jī)與周邊設(shè)備之間包含軟、硬件的通信協(xié)議,目前已經(jīng)是電腦、智能手機(jī)以及智能電視等產(chǎn)品中最主要的標(biāo)準(zhǔn)接口之一。此外,USB周邊設(shè)備已廣泛使用在一般電腦主機(jī)中。將通用串行總線(USB)與多電腦切換裝置相結(jié)合即成為專用于USB周邊設(shè)備的多電腦切換器(USB KVMswitch)ο
[0003]目前USB KVM產(chǎn)品主要分為三類:切換式USB KVM、模擬式USB KVM與復(fù)制型USBKVM,分述于圖1A、圖1B與圖1C中。
[0004]圖1A所示為現(xiàn)有技術(shù)的切換式USB KVM 10的系統(tǒng)方塊圖。請(qǐng)參閱圖1A,切換式USB KVM 10包含至少一 USB信號(hào)切換模塊11以及至少一 USB集線器12。當(dāng)要切換電腦主機(jī)PCl?PC4時(shí),控制端USB周邊設(shè)備Dl、D2的信號(hào)會(huì)與原來(lái)主機(jī)端連接的電腦主機(jī)斷開(kāi),并切換至新的電腦主機(jī)。此作法最為簡(jiǎn)單,但每一次USB周邊設(shè)備連接至新的電腦主機(jī)時(shí),新的電腦主機(jī)必須再做一次或多次的USB周邊設(shè)備的枚舉程序。這段時(shí)間內(nèi)USB周邊設(shè)備無(wú)法正常運(yùn)作,所以每次切換后必須要等待一段時(shí)間才能再次使用USB周邊設(shè)備。而當(dāng)切換速度過(guò)快時(shí),可能導(dǎo)致USB信號(hào)異常,從而必須重新插拔USB信號(hào)電纜線或重啟(reboot)電腦才能恢復(fù)正常。
[0005]圖1B所示為現(xiàn)有技術(shù)的模擬式USB KVM 20的系統(tǒng)方塊圖。請(qǐng)參閱圖1B,USB KVM20包含一微處理器21、一 USB主控制器22、一 USB集線器23以及多個(gè)USB設(shè)備控制器24。此架構(gòu)可以改善切換式USB KVM類產(chǎn)品的缺點(diǎn),當(dāng)切換電腦主機(jī)PCl?PC4時(shí),USB設(shè)備控制器24與電腦主機(jī)PCl?PC4間的連接并不會(huì)中斷,而只是將控制端的USB周邊設(shè)備D1、D2的數(shù)據(jù)轉(zhuǎn)由相對(duì)應(yīng)的USB設(shè)備控制器來(lái)傳送,因此切換時(shí)可以達(dá)到穩(wěn)定的效果。但控制端的USB周邊設(shè)備并不是與電腦主機(jī)直接連接,而是經(jīng)由微處理器21以及USB集線器23,利用一固件(firmware)程序,由微處理器21來(lái)模擬成電腦主機(jī)并讀取控制端的USB周邊設(shè)備的數(shù)據(jù)封包,然后經(jīng)過(guò)解譯并轉(zhuǎn)換成為新的數(shù)據(jù)封包,并經(jīng)由多USB設(shè)備控制器24送到電腦主機(jī)PCl?PC4上。因此,電腦主機(jī)所「看到」的USB鍵盤、USB鼠標(biāo)是由USB設(shè)備控制器24所模擬而生成的新設(shè)備,而并非是控制端的USB鍵盤D1、USB鼠標(biāo)D2。此作法可能會(huì)有如下缺點(diǎn):
[0006](I)鍵盤、鼠標(biāo)的原廠驅(qū)動(dòng)程序或應(yīng)用程序無(wú)法使用。
[0007](2)受限于USB KVM 20內(nèi)微處理器21的有限資源,常無(wú)法解譯最新型的USB鍵盤及鼠標(biāo),而產(chǎn)生USB周邊設(shè)備無(wú)法使用,相容性不夠完整的現(xiàn)象。
[0008](3)產(chǎn)品成本比切換式USB KVM 10高。
[0009]圖1C所示為現(xiàn)有技術(shù)的復(fù)制型USB KVM30的系統(tǒng)方塊圖。USB KVM 30的運(yùn)作原理與USB KVM 20類似,請(qǐng)參閱圖1C,USB KVM 30在控制端依然是以微處理器21、USB主控制器22以及USB集線器23來(lái)構(gòu)成,而在每一電腦PCl?PC2端則包含一 USB集線器36與至少兩個(gè)USB設(shè)備控制器,其中一個(gè)USB設(shè)備控制器34模擬成USB鍵盤,另一個(gè)USB設(shè)備控制器35模擬成USB鼠標(biāo)。較特別的是,主機(jī)端的USB鍵盤或鼠標(biāo)是完全復(fù)制控制端的USB鍵盤及鼠標(biāo)的敘述表格(descriptor),所以能解決切換斷開(kāi)、以及不兼容的問(wèn)題。不過(guò)為了能模擬成任何鍵盤及鼠標(biāo),每一個(gè)USB設(shè)備控制器34、35必須是相當(dāng)高規(guī)格的產(chǎn)品,而且每一電腦端必須是兩個(gè),所以廣品成本是最尚的。
[0010]上述的三種類型的USB KVM目前只能處理USB鍵盤以及USB鼠標(biāo)等周邊設(shè)備,而目前流行的觸控裝置如觸控屏幕、繪圖板則無(wú)法處理。
【發(fā)明內(nèi)容】
[0011]本公開(kāi)的一實(shí)施例公開(kāi)一種通用串行總線(USB)多電腦切換器,用以耦接于至少一主機(jī)及至少一 USB設(shè)備之間。該USB多電腦切換器包含一第一虛擬USB集線器,經(jīng)建構(gòu)以與一第一主機(jī)通信;一第一虛擬USB設(shè)備,經(jīng)建構(gòu)以經(jīng)由該第一虛擬USB集線器連接至該第一主機(jī),且具有與一第一 USB設(shè)備相同的端點(diǎn)設(shè)定數(shù)據(jù);一微處理器,經(jīng)建構(gòu)以產(chǎn)生該第一虛擬USB集線器,并因應(yīng)于該第一 USB設(shè)備的電性連接,枚舉該第一 USB設(shè)備;以及一第一多位址USB設(shè)備控制器模塊,經(jīng)建構(gòu)以經(jīng)由該第一虛擬USB集線器電性連接至該第一主機(jī),并經(jīng)由一 USB主控制器模塊以及一 USB集線器,因應(yīng)于該第一 USB設(shè)備的枚舉,確定該第一 USB設(shè)備的端點(diǎn)設(shè)定數(shù)據(jù)。
[0012]在本公開(kāi)的一實(shí)施例中,另包含一第二虛擬USB設(shè)備,經(jīng)建構(gòu)以經(jīng)由該第一虛擬USB集線器連接至該第一主機(jī),且具有與一第二 USB設(shè)備相同的端點(diǎn)設(shè)定數(shù)據(jù)。
[0013]在本公開(kāi)的一實(shí)施例中,該微處理器經(jīng)建構(gòu)以因應(yīng)于該第二 USB設(shè)備的電性連接,枚舉該第二 USB設(shè)備,以及該第一多位址USB設(shè)備控制器模塊經(jīng)建構(gòu)以因應(yīng)于該第二USB設(shè)備的枚舉,確定該第二 USB設(shè)備的端點(diǎn)設(shè)定數(shù)據(jù)。
[0014]在本公開(kāi)的一實(shí)施例中,另包含一第二虛擬USB集線器,經(jīng)建構(gòu)以與一第二主機(jī)通信,其中該微處理器經(jīng)建構(gòu)以產(chǎn)生該第二虛擬USB集線器。
[0015]在本公開(kāi)的一實(shí)施例中,另包含一第一虛擬USB設(shè)備,經(jīng)建構(gòu)以經(jīng)由該第二虛擬USB集線器連接至該第二主機(jī),且具有與該第一 USB設(shè)備相同的端點(diǎn)設(shè)定數(shù)據(jù)。
[0016]在本公開(kāi)的一實(shí)施例中,該微處理器經(jīng)建構(gòu)以因應(yīng)于該第二 USB設(shè)備的電性連接,枚舉該第二 USB設(shè)備,USB多電腦切換器另包含一第二多位址USB設(shè)備控制器模塊,經(jīng)建構(gòu)以經(jīng)由該第二虛擬USB集線器電性連接至該第二主機(jī),并因應(yīng)于該第二 USB設(shè)備的枚舉,確定該第二 USB設(shè)備的端點(diǎn)設(shè)定數(shù)據(jù)。
[0017]在本公開(kāi)的一實(shí)施例中,另包含一第二虛擬USB設(shè)備,經(jīng)建構(gòu)以經(jīng)由該第二虛擬USB集線器連接至該第二主機(jī),且具有與該第二 USB設(shè)備相同的端點(diǎn)設(shè)定數(shù)據(jù)。
[0018]在本公開(kāi)的一實(shí)施例中,該至少一 USB設(shè)備包含USB鍵盤、USB鼠標(biāo)、USB音頻設(shè)備以及USB儲(chǔ)存盤。
[0019]在本公開(kāi)的一實(shí)施例中,另包含一影像信號(hào)切換模塊,經(jīng)建構(gòu)以電性連接至該第一主機(jī),并提供影像信號(hào)至一顯示裝置。
[0020]在本公開(kāi)的一實(shí)施例中,該端點(diǎn)設(shè)定數(shù)據(jù)包含端點(diǎn)的輪詢時(shí)間的設(shè)定值,該微處理器經(jīng)建構(gòu)以于一中斷傳輸期間,在該第一主機(jī)發(fā)出一中斷傳輸?shù)恼?qǐng)求前,對(duì)該第一 U S B設(shè)備發(fā)出一中斷傳輸?shù)恼?qǐng)求。
[0021]在本公開(kāi)的一實(shí)施例中,該端點(diǎn)設(shè)定數(shù)據(jù)包含端點(diǎn)的輪詢時(shí)間的設(shè)定值,該微處理器經(jīng)建構(gòu)以于一中斷傳輸期間,在該第一虛擬USB設(shè)備接收到來(lái)自該第一主機(jī)的中斷傳輸請(qǐng)求時(shí),即先回應(yīng)一肯定應(yīng)答(ACK)。
[0022]在本公開(kāi)的一實(shí)施例中,該端點(diǎn)設(shè)定數(shù)據(jù)包含端點(diǎn)的輪詢時(shí)間的設(shè)定值,該微處理器經(jīng)建構(gòu)以于一同步傳輸期間,使該第一 USB設(shè)備的時(shí)序輸出與該第一主機(jī)的時(shí)序輸出相同步。
[0023]在本公開(kāi)的一實(shí)施例中,該端點(diǎn)設(shè)定數(shù)據(jù)包含端點(diǎn)的輪詢時(shí)間的設(shè)定值,該微處理器經(jīng)建構(gòu)以于一同步傳輸期間,于該第一主機(jī)產(chǎn)生一個(gè)同步傳輸?shù)恼?qǐng)求前,詢問(wèn)該第一USB設(shè)備的同步傳輸數(shù)據(jù)。
[0024]本公開(kāi)的又一實(shí)施例公開(kāi)一種USB設(shè)備共享方法,該方法包含:建立相對(duì)應(yīng)于一第一主機(jī)的一第一虛擬USB集線器,以及相對(duì)應(yīng)于一第二主機(jī)的一第二虛擬USB集線器;檢測(cè)是否有一 USB設(shè)備電性連接;因應(yīng)于一 USB設(shè)備的電性連接,枚舉該USB設(shè)備并取得該USB設(shè)備的組態(tài)敘述;基于該USB設(shè)備的組態(tài)敘述,確定該USB設(shè)備的端點(diǎn)設(shè)定數(shù)據(jù);以及基于該USB設(shè)備的端點(diǎn)數(shù)據(jù),建立相對(duì)應(yīng)于該第一虛擬USB集線器的一第一虛擬USB設(shè)備,以及相對(duì)應(yīng)于該第二虛擬USB集線器的一第一虛擬USB設(shè)備。
[0025]在本公開(kāi)的一實(shí)施例中,另包含:檢測(cè)是否有另一 USB設(shè)備電性連接;以及因應(yīng)于該另一 USB設(shè)備的電性連接,基于該另一 USB設(shè)備的端點(diǎn)數(shù)據(jù),建立相對(duì)應(yīng)于該第一虛擬USB集線器的一第二虛擬USB設(shè)備,以及相對(duì)應(yīng)于該第二虛擬USB集線器的一第二虛擬USB設(shè)備。
[0026]在本公開(kāi)的一實(shí)施例中,該端點(diǎn)設(shè)定數(shù)據(jù)包含端點(diǎn)的輪詢時(shí)間的設(shè)定值,該方法另包含:于一中斷傳輸期間,在該第一主機(jī)發(fā)出一中斷傳輸?shù)恼?qǐng)求前,對(duì)該第一 USB設(shè)備發(fā)出一中斷傳輸?shù)恼?qǐng)求。
[0027]在本公開(kāi)的一實(shí)施例中,該端點(diǎn)設(shè)定數(shù)據(jù)包含端點(diǎn)的輪詢時(shí)間的設(shè)定值,該方法另包含:于一中斷傳輸期間,在該第一虛擬USB設(shè)備接收到來(lái)自該第一主機(jī)的中斷傳輸請(qǐng)求時(shí),即先回應(yīng)一肯定應(yīng)答(ACK)。
[0028]在本發(fā)明的一實(shí)施例中,該端點(diǎn)設(shè)定數(shù)據(jù)包含端點(diǎn)的輪詢時(shí)間的設(shè)定值,該方法另包含:于一同步傳輸期間,使該第一 USB設(shè)備的時(shí)序輸出與該第一主機(jī)的時(shí)序輸出相同步。
[0029]在本公開(kāi)的一實(shí)施例中,該端點(diǎn)設(shè)定數(shù)據(jù)包含端點(diǎn)的輪詢時(shí)間的設(shè)定值,該方法另包含:于一同步傳輸期間,于該第一主機(jī)產(chǎn)生一個(gè)同步傳輸?shù)恼?qǐng)求前,詢問(wèn)該第一 USB設(shè)備的同步傳輸數(shù)據(jù)。
[0030]在本公開(kāi)的一實(shí)施例中,另包含:于該第一主機(jī)枚舉該USB設(shè)備的期間,以一否定應(yīng)答(NAK)回復(fù)該第二主機(jī)對(duì)該USB設(shè)備的枚舉命令。
[0031]在本公開(kāi)的上述實(shí)施例中,已完成枚舉程序的主機(jī)與USB電子設(shè)備之間只要該等主機(jī)或USB電子設(shè)備未拔除,則該等主機(jī)與USB電子設(shè)備之間的切換皆無(wú)需重新枚舉。因此,本公開(kāi)能使多部主機(jī)分享多個(gè)USB電子設(shè)備的資源,且在多主機(jī)與多USB電子設(shè)備的運(yùn)用中,能有效率地實(shí)現(xiàn)主機(jī)與USB電子設(shè)備之間的切換。
[0032]本公開(kāi)利用上述的基本特性,采用特殊的多個(gè)多位址USB設(shè)備控制器(mult1-addressed USB device controller)的設(shè)計(jì),經(jīng)由虛擬USB的技術(shù)方式,來(lái)實(shí)現(xiàn)將控制端的USB鍵