TWM501592U - 使用虛擬通用串列匯流排(usb)切換多部主機之usb多電腦切換器 - Google Patents

使用虛擬通用串列匯流排(usb)切換多部主機之usb多電腦切換器 Download PDF

Info

Publication number
TWM501592U
TWM501592U TW104201487U TW104201487U TWM501592U TW M501592 U TWM501592 U TW M501592U TW 104201487 U TW104201487 U TW 104201487U TW 104201487 U TW104201487 U TW 104201487U TW M501592 U TWM501592 U TW M501592U
Authority
TW
Taiwan
Prior art keywords
usb
host
endpoint
virtual
usb device
Prior art date
Application number
TW104201487U
Other languages
English (en)
Inventor
Jack Wang
Bor-Bin Yan
Yung-Chung Kao
Jui-Feng Hsieh
Cheng-Yuan Lee
Original Assignee
Asix Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Asix Electronics Corp filed Critical Asix Electronics Corp
Priority to TW104201487U priority Critical patent/TWM501592U/zh
Priority to CN201520130440.9U priority patent/CN204595844U/zh
Publication of TWM501592U publication Critical patent/TWM501592U/zh
Priority to US15/010,842 priority patent/US20160224493A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Description

使用虛擬通用串列匯流排(USB)切換多部主機之USB多電腦切換器
本創作係關於通用串列匯流排之多電腦切換裝置,尤其是使用虛擬USB切換多部主機之USB多電腦切換器與方法。
多電腦切換裝置(KVM switch),是指可以利用一組例如包含鍵盤(keyboard)、螢幕(video)、滑鼠(mouse)等控制設備(console device)之電子裝置,透過訊號切換元件或模組的方式,來連結及控制兩台以上之電腦主機。通用串列匯流排(USB)為一種電腦主機與週邊設備之間包含軟、硬體之通訊協定,目前已經是電腦、智慧型手機以及智慧型電視等產品中最主要的標準介面之一。此外,USB週邊設備已廣泛使用在一般電腦主機中。將通用串列匯流排(USB)與多電腦切換裝置相結合即成為專用於USB週邊設備之多電腦切換器(USB KVM switch)。
目前USB KVM產品主要分為三類:切換式USB KVM、模擬式USB KVM與複製型USB KVM,分述於圖1A、圖1B與圖1C中。
圖1A所示為先前技術之切換式USB KVM 10之系統方塊圖。請參閱圖1A,切換式USB KVM 10包含至少一USB訊號切換模組11以及至少一USB集線器12。當要切換電腦主機PC1~PC4時,控制端USB週邊設備D1、D2之訊號會與原來主機端連接的電腦主機斷開, 並切換至新的電腦主機。此作法最為簡單,但每一次USB週邊設備連接至新的電腦主機時,新的電腦主機必須再做一次或多次的USB週邊設備的列舉程序。這段時間內USB週邊設備無法正常運作,所以每次切換後必須要等待一段時間才能再次使用USB週邊設備。而當切換速度過快時,可能導致USB訊號異常,從而必須重新插拔USB訊號電纜線或重啟(reboot)電腦才能恢復正常。
圖1B所示為先前技術之模擬式USB KVM 20之系統方塊圖。請參閱圖1B,USB KVM 20包含一微處理器21、一USB主控制器22、一USB集線器23以及複數個USB設備控制器24。此架構可以改善切換式USB KVM類產品之缺點,當切換電腦主機PC1~PC4時,USB設備控制器24與電腦主機PC1~PC4間之連結並不會中斷,而只是將控制端之USB週邊設備D1、D2的資料轉由相對應的USB設備控制器來傳送,因此切換時可以達到穩定的效果。但控制端之USB週邊設備並不是與電腦主機直接連結,而是經由微處理器21以及USB集線器23,利用一韌體(firmware)程式,由微處理器21來模擬成電腦主機並讀取控制端之USB週邊設備的資料封包,然後經過解譯並轉換成為新的資料封包,並經由複數USB設備控制器24送到電腦主機PC1~PC4上。因此,電腦主機所「看到」的USB鍵盤、USB滑鼠是由USB設備控制器24所模擬而生成的新設備,而並非是控制端之USB鍵盤D1、USB滑鼠D2。此作法可能會有如下缺點:
(1)鍵盤、滑鼠的原廠驅動程式或應用程式無法使用。
(2)受限於USB KVM 20內微處理器21的有限資源,常無法解譯最新型的USB鍵盤及滑鼠,而產生USB周邊設備無法使用,相容性不夠完整的現象。
(3)產品成本比切換式USB KVM 10高。
圖1C所示為先前技術之複製型USB KVM30之系統方塊圖。USB KVM 30之運作原理與USB KVM 20類似,請參閱圖1C,USB KVM 30在控制端依然是以微處理器21、USB主控制器22以及USB集線器23來構成,而在每一電腦PC1~PC2端則包含一USB集線器36與至少兩個USB設備控制器,其中一個USB設備控制器34模擬成USB鍵盤,另一個USB設備控制器35模擬成USB滑鼠。較特別的是,主機端之USB鍵盤或滑鼠是完全複製控制端的USB鍵盤及滑鼠的敘述表格(descriptor),所以能解決切換斷開、以及不相容的問題。不過為了能模擬成任何鍵盤及滑鼠,每一個USB設備控制器34、35必須是相當高規格之產品,而且每一電腦端必須是兩顆,所以產品成本是最高的。
上述之三種類型之USB KVM目前只能處理USB鍵盤以及USB滑鼠等周邊設備,而目前流行之觸控裝置如觸控螢幕、數位板則無法處理。
本創作之一實施例揭示一種通用串列匯流排(USB)多電腦切換器,用以耦接於至少一主機及至少一USB設備之間。該USB多電腦切換器包含一第一虛擬USB集線器,經建構以與一第一主機通訊;一第一虛擬USB設備,經建構以經由該第一虛擬USB集線器連接至該第一主機,且具有與一第一USB設備相同之端點設定資料;一微處理器,經建構以產生該第一虛擬USB集線器,並因應於該第一USB設備之電性連接,列舉該第一USB設備;以及一第一多位址USB設備控制器模組,經建構以經由該第一虛擬USB集線器電性連接至該第一主機,並經由一USB主控制器模組以及一USB集線器,因應於該第一USB設備之列舉,確定該第一USB設備之端點設定資料。
在本創作之一實施例中,另包含一第二虛擬USB設備,經建構以經由該第一虛擬USB集線器連接至該第一主機,且具有與一第二USB設備相同之端點設定資料。
在本創作之一實施例中,該微處理器經建構以因應於該第二USB設備之電性連接,列舉該第二USB設備,以及該第一多位址USB設備控制器模組經建構以因應於該第二USB設備之列舉,確定該第二USB設備之端點設定資料。
在本創作之一實施例中,另包含一第二虛擬USB集線器,經建構以與一第二主機通訊,其中該微處理器經建構以產生該第二虛擬USB集線器。
在本創作之一實施例中,另包含一第一虛擬USB設備,經建構以經由該第二虛擬USB集線器連接至該第二主機,且具有與該第一USB設備相同之端點設定資料。
在本創作之一實施例中,該微處理器經建構以因應於該第二USB設備之電性連接,列舉該第二USB設備,USB多電腦切換器另包含一第二多位址USB設備控制器模組,經建構以經由該第二虛擬USB集線器電性連接至該第二主機,並因應於該第二USB設備之列舉,確定該第二USB設備之端點設定資料。
在本創作之一實施例中,另包含一第二虛擬USB設備,經建構以經由該第二虛擬USB集線器連接至該第二主機,且具有與該第二USB設備相同之端點設定資料。
在本創作之一實施例中,該至少一USB設備包含USB鍵盤、USB滑鼠、USB音訊設備以及USB儲存碟。
在本創作之一實施例中,另包含一影像訊號切換模組,經建構以電性連接至該第一主機,並提供影像訊號至一顯示裝置。
在本創作之一實施例中,該端點設定資料包含端點的輪詢時間之設定值,該微處理器經建構以於一中斷傳輸期間,在該第一主機發出一中斷傳輸的要求前,對該第一USB設備發出一中斷傳輸的要求。
在本創作之一實施例中,該端點設定資料包含端點的輪詢時間之設定值,該微處理器經建構以於一中斷傳輸期間,在該第一虛擬USB設備接收到來自該第一主機之中斷傳輸要求時,即先回應一肯定應答(ACK)。
在本創作之一實施例中,該端點設定資料包含端點的輪詢時間之設定值,該微處理器經建構以於一等時傳輸期間,使該第一USB設備的時序輸出與該第一主機的時序輸出相同步。
在本創作之一實施例中,該端點設定資料包含端點的輪詢時間之設定值,該微處理器經建構以於一等時傳輸期間,於該第一主機產生一個等時傳輸之要求前,詢問該第一USB設備之等時傳輸資料。
本創作之又一實施例揭示一種USB設備共享方法,該方法包含:建立相對應於一第一主機之一第一虛擬USB集線器,以及相對應於一第二主機之一第二虛擬USB集線器;檢測是否有一USB設備電性連接;因應於一USB設備之電性連接,列舉該USB設備並取得該USB設備之組態敘述;基於該USB設備之組態敘述,確定該USB設備之端點設定資料;以及基於該USB設備之端點資料,建立相對應於該 第一虛擬USB集線器之一第一虛擬USB設備,以及相對應於該第二虛擬USB集線器之一第一虛擬USB設備。
在本創作之一實施例中,另包含:檢測是否有另一USB設備電性連接;以及因應於該另一USB設備之電性連接,基於該另一USB設備之端點資料,建立相對應於該第一虛擬USB集線器之一第二虛擬USB設備,以及相對應於該第二虛擬USB集線器之一第二虛擬USB設備。
在本創作之一實施例中,該端點設定資料包含端點的輪詢時間之設定值,該方法另包含:於一中斷傳輸期間,在該第一主機發出一中斷傳輸的要求前,對該第一USB設備發出一中斷傳輸的要求。
在本創作之一實施例中,該端點設定資料包含端點的輪詢時間之設定值,該方法另包含:於一中斷傳輸期間,在該第一虛擬USB設備接收到來自該第一主機之中斷傳輸要求時,即先回應一肯定應答(ACK)。
在本發明之一實施例中,該端點設定資料包含端點的輪詢時間之設定值,該方法另包含:於一等時傳輸期間,使該第一USB設備的時序輸出與該第一主機的時序輸出相同步。
在本創作之一實施例中,該端點設定資料包含端點的輪詢時間之設定值,該方法另包含:於一等時傳輸期間,於該第一主機產生一個等時傳輸之要求前,詢問該第一USB設備之等時傳輸資料。
在本創作之一實施例中,另包含:於該第一主機列舉該USB設備之期間,以一否定應答(NAK)回覆該第二主機對該USB設備之列舉命令。
在本揭露之上述實施例中,已完成列舉程序的主機與USB電子設備之間只要該等主機或USB電子設備未拔除,則該等主機與USB電子設備之間的切換皆無需重新列舉。因此,本揭露能使多部主機分享多個USB電子設備之資源,且在多主機與多USB電子設備之運用中,能有效率地達成主機與USB電子設備之間的切換。
本創作利用上述1至4點之基本特性,採用特殊之複數個多位址USB設備控制器(multi-addressed USB aevice controller)的設計,經由虛擬USB之技術方式,來達成將控制端之USB鍵盤、USB滑鼠或是其他USB設備能夠同時分享給多台電腦的功能。
上文中已經概略地敍述本創作之技術特徵,為能更佳瞭解本創作,下文中將詳細描述構成本創作申請專利範圍標的其它技術特徵。
就本創作所屬技術領域中具有通常知識者而言,應可瞭解基於下文中所揭示之概念與特定實施例,便能輕易地修改或設計出其它結構而實現與本創作相同之目的。本創作所屬技術領域中具有通常知識者亦應可瞭解這類等效的建構並未脫離後附之申請專利範圍所界定之本創作精神。
10‧‧‧切換式USB KVM
11‧‧‧USB訊號切換模組
12‧‧‧USB集線器
20‧‧‧模擬式USB KVM
21‧‧‧微處理器
22‧‧‧USB主控制器
23‧‧‧USB集線器
24‧‧‧USB設備控制器
30‧‧‧複製型USB KVM
34‧‧‧鍵盤設備控制器
35‧‧‧滑鼠設備控制器
36‧‧‧USB集線器
50‧‧‧USB多電腦切換器
51‧‧‧微處理器
52‧‧‧記憶體
54‧‧‧USB設備控制暫存器
55‧‧‧USB主控制器暫存器
56‧‧‧USB主控制器模組
57‧‧‧USB集線器
60‧‧‧USB多電腦切換器
65‧‧‧主系統模組
66‧‧‧影像訊號切換模組
101~105‧‧‧方法步驟
531‧‧‧第一多位址USB設備控制器模組
532‧‧‧第二多位址USB設備控制器模組
581‧‧‧第一虛擬USB集線器
582‧‧‧第二虛擬USB集線器
C11‧‧‧纜線
C15‧‧‧顯示裝置
D1‧‧‧USB鍵盤
D2‧‧‧USB滑鼠
D3‧‧‧USB音訊設備
D4‧‧‧USB儲存碟
PC1‧‧‧第一主機
PC2‧‧‧第二主機
PC3‧‧‧主機
PC4‧‧‧主機
U1‧‧‧纜線
U2‧‧‧纜線
V1‧‧‧纜線
V2‧‧‧纜線
VK1‧‧‧第一虛擬USB設備(對應第一主機)
VK2‧‧‧第一虛擬USB設備(對應第二主機)
VM1‧‧‧第二虛擬USB設備(對應第一主機)
VM2‧‧‧第二虛擬USB設備(對應第二主機)
圖1A所示為先前技藝之切換式通用串列匯流排(USB)多電腦切換器之系統方塊圖;圖1B所示為先前技藝之模擬式USB多電腦切換器之系統方塊圖;圖1C所示為先前技藝之複製型USB多電腦切換器之系統方塊圖; 圖2所示為本創作一實施例之USB多電腦切換器之系統方塊圖;圖3所示為本創作一實施例之控制IN傳輸(主機接收資料)之流程示意圖;圖4所示為本創作一實施例之控制OUT傳輸(主機送出資料)之流程示意圖;圖5A所示為本創作一實施例之中斷IN傳輸(主機接收資料)之流程示意圖;圖5B所示為本創作另一實施例之中斷IN傳輸(主機接收資料)之流程示意圖;圖6A所示為本創作一實施例之中斷OUT傳輸(主機送出資料)之流程示意圖;圖6B所示為本創作另一實施例之中斷OUT傳輸(主機送出資料)之流程示意圖;圖7所示為本創作一實施例之巨量IN傳輸(主機接收資料)之流程示意圖;圖8所示為本創作一實施例之巨量OUT傳輸(主機送出資料)之流程示意圖;圖9A所示為本創作一實施例之等時OUT傳輸(主機送出資料)之流程示意圖;圖9B所示為本創作一實施例之訊框對齊方法之示意圖;圖10所示為本創作一實施例之等時IN傳輸(主機接收資料)之流程示意圖; 圖11所示為本創作一實施例之USB多電腦切換器之系統方塊圖;以及圖12所示為本創作一實施例之USB設備分享之方法。
在USB的規範中,明確訂立USB週邊設備與USB主機的溝通方式。每個USB週邊設備都具有一設備地址(device address)以及多個端點地址(endpoint address)。主機與端點的通訊,則經由所謂的管線(pipe)所構成的,一旦管線建立好之後,主機就可以根據每個端點的特性做不同目的的傳輸。所以對於USB的通訊,可以將其視為一種虛擬管線的概念,例如在整個USB的通訊中包含了一個大的虛擬管線(USB匯流排)以及高達127個小的虛擬管線,而每一個小的虛擬管線可比擬為USB設備。又,每一個小虛擬管線又可再細分為許多的微虛擬管線,這些微虛擬管線可比擬為端點(endpoint)。在一個單獨的小虛擬管線內最多可再分割成15組的微虛擬管線(端點),也就是可對15個輸出/入的端點(共30個)定址。
如上所述,USB之間的通訊是透過虛擬管線的觀念來對應到實際的設備端點緩衝區記憶體52中,其實踐的方式是在每個通訊資料封包開始的前端,使用一個執照(token)封包資料載明接收方的設備地址以及端點地址,接著再傳送資料(data)區塊,最後再以交握(handshake)封包來確定資料傳送成功。所以執照、資料、交握是所有標準USB傳輸的規範。一USB傳輸交易(transaction)即由上述之執照、資料、交握封包所構成。此外,USB的執照封包中定義了4種型態,分別為OUT/IN/SOF/SETUP。如果USB設備收到一個OUT(主機至設 備)執照封包,則表示該USB設備將會從主機接收到資料;如果收到一個IN(設備至主機)執照封包,則表示該USB設備將會傳送資料給主機;如果收到一個SOF(start of frame)執照封包,則為一個同步訊號;如果收到了一個SETUP執照封包,則表示主機將會使用Endpoint 0傳送或接收資料。上述4種執照封包中OUT/IN/SETUP需要USB設備做進一步之回應及處理,SOF則無。
又,在USB的規範中,複數的USB設備裝置必須透過集線器(HUB)來與電腦主機相連接,主機對於集線器之下USB設備的通訊則必須透過集線器來轉送。
當USB主機偵測到有USB設備接入時,USB主機會使用列舉(enumerate)之機制來獲悉USB設備的種類、性質、特性以及端點所支援的資料傳輸方式。目前端點資料傳輸類別共有4種:分別為控制(control)、巨量(bulk)、等時(isochronous)以及中斷(interrupt)傳輸。列舉為USB主機要求獲得USB設備各種敘述表的一個總稱,該等敘述表包含:設備敘述表(device descriptor)、組態敘述(configuration descriptor)、介面敘述表(interface descriptor)與端點敘述表(endpoint descriptor)等等。列舉完成之後,主機即會按照組態敘述中所設定的資料傳輸類別,與USB設備之端點進行資料傳送。控制、巨量、等時以及中斷等資料傳輸皆有其標準的方式,所有的傳輸都有一個資料傳輸階段(data stage)以及狀態階段(status stage),但控制傳輸則無狀態階段,而只有資料傳輸階段。在USB之規範中,當USB設備無法即時處理主機的要求時,可以在資料傳輸階段或是狀態階段傳送一個NAK(negative acknowledgement;否定應答)訊號,此時主機會在固定 時間之後,再重複一次相同的傳輸,此即USB設備流量控制的機制。
圖2所示為本創作一實施例之USB多電腦切換器50之系統方塊圖。請參閱圖2,USB多電腦切換器50包含一微處理器51、一記憶體52、一第一多位址USB設備控制器模組(multi-addressed USB device controller)531、一第二多位址USB設備控制器模組532、一USB設備控制暫存器(USB device control register)54、一USB主控制器暫存器55、一USB主控制器模組(host controller)56以及一USB集線器(USB root hub)57。
微處理器51透過USB設備控制暫存器54來分別控制第一多位址USB設備控制器模組531以及第二多位址USB設備控制器模組532,以及透過USB主控制器暫存器55來控制USB主控制器模組56以及USB集線器57。
第一多位址USB設備控制器模組531以及第二多位址USB設備控制器模組532內分別有獨立之USB實體層(SIE/PHY),以及收發器(transceiver)來轉換、傳送以及解譯USB訊號,且在USB設備控制暫存器54亦分別有獨立之地址(address)管理器及端點(endpoint)管理器,端點記憶緩衝區(endpoint buffer)則位於記憶體52。在本創作一實施例中,記憶體52包含隨機存取記憶體。
USB主控制器模組56內亦有獨立之USB實體層(SIE/PHY),以及收發器(transceiver)來轉換、傳送以及解譯USB訊號,傳送及接收之端點記憶緩衝區則位於記憶體52。
當系統上電之後,微處理器51自內部或外部之記憶體(例如快閃記憶體)載入韌體程式,並對第一多位址USB設備控制器模組531 、第二多位址USB設備控制器模組532、USB主控制器模組56以及USB集線器57做初始化之設定,隨後即以5個階段來執行運作。第1階段-建立第一虛擬USB集線器581及第二虛擬USB集線器582;第2階段-檢測USB週邊設備D1、D2之插入;第3階段-分析USB週邊設備之組態(configuration);第4階段-虛擬USB設備VK1、VM1、VK2、VM2之建立及維護;以及第5階段-資料之橋接轉送。
第1階段:分別在第一多位址USB設備控制器模組531以及第二多位址USB設備控制器模組532所對應之USB設備控制暫存器54填入第一虛擬USB集線器581及第二虛擬USB集線器582之地址及端點之設定資料,並使用微處理器51來模擬成兩個獨立之虛擬USB集線器。微處理器51分別對第一主機PC1對於第一虛擬USB集線器581之列舉程序以及第二主機PC2對於第二虛擬USB集線器582之列舉程序做出正確之訊息接收及回饋。自此之後,主機PC1、PC2對本系統下之USB設備的通訊皆會交由第一虛擬USB集線器581及第二虛擬USB集線器582來轉送。
第2階段:此時微處理器51扮演USB主機(host)的角色,控制USB主控制器模組56對USB集線器57發出USB設備插入或移除之狀態偵測命令。當檢測到例如USB滑鼠D2插入的事件發生時,微處理器51即會按照標準的列舉步驟,對USB滑鼠D2完成列舉的程序,同時賦予USB滑鼠D2一個實際的設備地址(physical device address)。
第3階段:USB主控制器模組56對列舉所取得之USB滑鼠D2的組態敘述(configuration descriptor)做分析解譯,以便解析出所使用端點的基本資料,包含端點號碼(endpoint number)、端點地址 (endpoint address)、端點傳輸種類(control/bulk/interrupt/isochronous),以及端點大小(endpoint packet size)。
第4階段:依據第3階段所取得之資料,微處理器51透過USB設備控制暫存器54分別在第一多位址USB設備控制器模組531以及第二多位址USB設備控制器模組532建立完全相同的端點設定,並建立一個相對應的虛擬位址,並由第一虛擬USB集線器581及第二虛擬USB集線器582報告USB滑鼠D2插入的事件。
當第一主機PC1收到第一虛擬USB集線器581所產生的狀態改變資料,即開始對USB滑鼠D2做列舉的程序,此時系統會按照圖3的流程來做資料的轉送,然後進入到階段5,以下以第一主機PC1為例說明圖3控制傳輸(control transfer)的資料轉送流程。
在本創作一實施例中,USB多電腦切換器50包含例如:現場可編程輯閘陣列(Field-Programmable Gate Arrays,FPGA)晶片、特殊應用積體電路(Application-specific integrated circuit,ASIC)或一系統晶片(System on Chip,SOC)。又,主機PC1、PC2包含個人電腦、手提電腦、平板電腦及智慧型手機。USB設備則包含USB人機操作介面裝置、USB儲存裝置、USB印表機或其他USB電子設備。
圖3所示為本創作一實施例之控制IN傳輸(主機接收資料)之流程示意圖。請參閱圖3,於控制傳輸之設定階段(Setup Stage),當第一主機PC1對第一虛擬USB集線器581傳送一個Setup傳輸交易時,此傳輸資料會交由第一多位址USB設備控制器模組531來解譯並比對USB設備控制暫存器54中之地址管理器,是否有相對應之地址。如果比對成功,同時再比對端點管理器,是否有相對應之端點位址。如果 一切符合,即將資料放置到記憶體52中,並產生中斷訊號,交由微處理器51來處理。若經第一多位址USB設備控制器模組531比對虛擬位址與實際位址之設備地址對照表確定為USB滑鼠D2,端點地址為0(預設控制端點control endpoint),微處理器51即將此資料由USB主控制器模組56經由USB集線器57傳送到USB滑鼠D2,並進入資料接收階段(Data IN Stage),收取USB滑鼠D2所傳回之資料。
在進入資料IN階段時,第一主機PC1傳送一個IN執照,第一多位址USB設備控制器模組531會先以NAK回覆第一主機PC1,直到USB主控制器模組56成功接收到USB滑鼠D2所傳回之資料,並將此資料在下一次第一主機PC1的IN執照發生時送出,此動作會重複到資料階段結束。
當進入到狀態階段(Status Stage)時,第一主機PC1會傳送一個資料長度為0的OUT執照(OUT Token)封包,第一多位址USB設備控制器模組531會先以NAK回覆第一主機PC1,並等待微處理器51完成控制USB主控制器模組56對實際之USB滑鼠D2產生相同之狀態階段的程序,然後會在下一次第一主機PC1的OUT執照發生時送出ACK(肯定應答)。經過上述一連串之動作,即可以完成控制傳輸IN的資料轉送。
圖4所示為本創作一實施例之控制OUT傳輸(主機送出資料)之流程示意圖。請參閱圖4,於控制傳輸之設定階段,當第一主機PC1對第一虛擬USB集線器581傳送一個Setup傳輸交易時,此傳輸資料會交由第一多位址USB設備控制器模組531來解譯並比對USB設備控制暫存器54中之地址管理器,是否有相對應之地址。如果比對成功,同時再比對端點管理器,是否有相對應之端點位址。如果一切符 合,即將資料放置到記憶體52中,並產生中斷訊號,交由微處理器51來處理。若經第一多位址USB設備控制器模組531比對虛擬位址與實際位址之設備地址對照表確定為USB滑鼠D2,端點地址為0(預設控制端點),微處理器51即將此資料由USB主控制器模組56經由USB集線器57傳送到USB滑鼠D2,並進入資料送出階段(Data OUT Stage)。
當進入資料OUT階段時,第一主機PC1傳送一個OUT執照以及OUT Data。第一多位址USB設備控制器模組531會先以NAK回覆第一主機PC1,並將此事件通知微處理器51。微處理器51會將OUT執照以及OUT Data經由USB主控制器模組56傳送到USB滑鼠D2,在USB滑鼠D2回覆之前,因應於第一主機PC1的OUT執照的交握要求,皆會以NAK回覆。等到USB滑鼠D2回覆ACK之後,此ACK會在下一次第一主機PC1的OUT執照的交握要求時送出,此動作會重複到資料階段結束。
當進入到狀態階段(Status Stage)時,第一主機PC1會傳送一個IN執照(IN Token)封包。第一多位址USB設備控制器模組531會先以NAK回覆第一主機,並將此事件通知微處理器51。微處理器51會將IN執照經由USB主控制器模組56傳送到USB滑鼠D2,在D1-USB滑鼠回覆之前,因應於第一主機PC1的IN執照要求,皆會以NAK回覆。等到USB滑鼠D2回覆一長度為0的IN資料之後,此長度為0的IN資料會在下一次第一主機PC1的IN執照發生時送出。經過上述一連串之動作,即可以完成控制傳輸OUT的資料轉送。
經由圖3之控制IN傳輸與圖4之控制OUT傳輸之流程後,第一主機PC1即完成對USB滑鼠D2的正確列舉流程。就第一主機PC1來說,此時在第一虛擬USB集線器581下出現一個虛擬的USB滑鼠設備VM1。
同理,經由圖3之控制IN傳輸與圖4之控制OUT傳輸之流程後,亦可完成第一主機PC1對USB鍵盤D1的列舉,使USB鍵盤D1可正確地被第一主機PC1辨認。就第一主機PC1來說,此時在第一虛擬USB集線器581下出現一個虛擬的USB鍵盤設備VK1。
又,經由圖3之控制IN傳輸與圖4之控制OUT傳輸之流程後,亦可完成第二主機PC2對USB滑鼠D2的列舉,使USB滑鼠D2可正確地被第二主機PC2辨認。就第二主機PC2來說,此時在第二虛擬USB集線器582下出現一個虛擬的USB滑鼠設備VM2。
同理,經由圖3之控制IN傳輸與圖4之控制OUT傳輸之流程後,亦可完成第二主機PC2對USB鍵盤D1的列舉,使USB鍵盤D1可正確地被第二主機PC2辨認。就第二主機PC2來說,此時在第二虛擬USB集線器582下出現一個虛擬的USB鍵盤設備VK2。
然而第一主機PC1以及第二主機PC2有可能同時會對同一個週邊設備做不同的列舉命令,因為週邊設備的端點資料是同時被設置到第一多位址USB設備控制器模組531、第二多位址USB設備控制器模組532所對應到的USB設備控制暫存器54中。為解決此衝突問題,微處理器51必須建立一個資料仲裁機制,以例如先進先服務之原則,當一方主機先進入Setup階段時,則取得資料轉送之資格,在未完成狀態階段前,另一方主機的控制傳輸在進入資料階段或狀態階段時,皆先以NAK回覆,進行流量之管制。待優先一方主機的狀態階段後,此時等待一方的主機的控制傳輸才會恢復正常進行。
圖5A所示為本創作一實施例之中斷IN傳輸(主機接收資料)之流程示意圖。USB KVM控制端的主要周邊設備為USB滑鼠D2及USB鍵盤D1,此兩USB設備的資料封包是經由中斷傳輸來完成。請參閱圖5A,當第一主機PC1對虛擬USB滑鼠VM1發出主機中斷IN的傳輸 時,此IN執照資料要求會由第一多位址USB設備控制器模組531以NAK回覆,同時此IN執照亦同時交由第一多位址USB設備控制器模組531來解譯並放置到記憶體52中,並交由微處理器51來處理。經第一多位址USB設備控制器模組531比對虛擬位址與實際位址之設備地址對照表確定為USB滑鼠D2,端點地址為1,微處理器51即將此資料由USB主控制器模組56經USB集線器57傳送到USB滑鼠D2。當USB滑鼠D2回覆資料之後,USB主控制器模組56主動對USB滑鼠D2送出ACK之後結束USB主控制器模組56對USB滑鼠D2的中斷傳輸,並將資料內容存入相對應的虛擬USB滑鼠VM1的端點記憶緩衝輸出區內,並在下一次第一主機PC1對虛擬USB滑鼠VM1發出主機中斷IN的傳輸時即將此資料送出,完成虛擬USB滑鼠VM1對第一主機PC1的中斷IN傳輸的要求。
同樣方式亦適用於虛擬USB鍵盤VK1對第一主機PC1的中斷IN傳輸的要求。
上述中斷IN傳輸之實施例是以第一主機PC1作為目前作用之電腦主機來說明,此時非作用的第二主機PC2所有對虛擬USB滑鼠VM2所發出的中斷傳輸皆會以NAK來回覆。當目前作用之第一主機PC1切換為第二主機PC2時,第二主機PC2對虛擬USB滑鼠VM2所發出的中斷傳輸會按照上述說明之相同原理來處理,而非作用的第一主機PC1所有對虛擬USB滑鼠VM1所發出的中斷傳輸皆會以NAK來回覆。
上述中斷IN傳輸之實施例雖可處理第一主機PC1、第二主機PC2對USB滑鼠D2、USB鍵盤D1的中斷IN傳輸的轉送,但會產生一個延遲的問題。由於主機對中斷傳輸的端點會有一項輪詢時間(interval time)的設定,主機會按照此設定每到一個輪詢時間後即會對中斷傳輸的端點產生一個中斷傳輸要求。如果此時USB設備回覆 NAK,則會等到下次的輪詢時間點後,主機才會再發出要求。所以依上述說明轉送USB設備的中斷資料封包會有至多兩個輪詢時間值的差異,此對USB滑鼠的游標運作可能發生延遲的現象。為解決此問題,可依圖5B之方式來運作。
圖5B所示為本創作另一實施例之中斷IN傳輸(主機接收資料)之流程示意圖。請參閱圖5B,由於在列舉階段已解析過USB滑鼠D2的組態敘述,故可知USB滑鼠D2中斷傳輸的端點的輪詢時間之設定值,所以可由微處理器51以及USB主控制器56在每到輪詢時間點時,即主動對USB滑鼠D2發出中斷傳輸的要求。一旦USB滑鼠D2有回覆資料時,即將此資料內容存入相對應的虛擬USB滑鼠VM1的端點記憶緩衝輸出區內,並在下一次第一主機PC1對虛擬USB滑鼠VM1發出主機中斷IN的傳輸時即將此資料送出。如此可將時間差異值控制在小於一個輪詢時間之設定值,使USB滑鼠D2的游標運作不會發生延遲的現象。此方法亦使用在USB鍵盤D1上之中斷IN傳輸的轉送流程上。
圖6A所示為本創作一實施例之中斷OUT傳輸(主機送出資料)之流程示意圖。請參閱圖6A,當第一主機PC1對虛擬USB滑鼠VM1發出主機中斷OUT的傳輸時,此OUT執照資料要求會由第一多位址USB設備控制器模組531以NAK回覆,同時此OUT執照及資料封包亦同時交由第一多位址USB設備控制器模組531來解譯並放置到記憶體52中,並交由微處理器51來處理。經第一多位址USB設備控制器模組531比對虛擬位址與實際位址之設備地址對照表確定為USB滑鼠D2,端點地址為2,微處理器51即將此資料由USB主控制器模組56經USB集線器57傳送到USB滑鼠D2。當USB滑鼠D2回覆ACK之後,微處理器51將ACK內容存入相對應的虛擬USB滑鼠VM1的端點記憶緩衝輸 出區內,並在下一次第一主機PC1對虛擬USB滑鼠VM1發出主機中斷OUT的傳輸時輸出ACK,完成虛擬USB滑鼠VM1對第一主機PC1的中斷OUT傳輸的要求。
同樣方式亦適用於虛擬USB鍵盤D1對第一主機PC1的中斷OUT傳輸的要求。
上述中斷OUT傳輸之實施例是以第一主機PC1作為目前作用之電腦主機來說明,此時非作用的第二主機PC2所有對虛擬USB滑鼠VM2所發出的中斷OUT傳輸皆會以NAK來回覆。當目前作用之第一主機PC1切換為第二主機PC2時,第二主機PC2對虛擬USB滑鼠VM2所發出的中斷OUT傳輸會按照上述說明之相同原理來處理,但非作用的第一主機PC1所有對虛擬USB滑鼠VM1所發出的中斷OUT傳輸則皆會以NAK來回覆。
上述中斷OUT傳輸之實施例雖可處理第一主機PC1、第二主機PC2對USB滑鼠D2、USB鍵盤D1的中斷OUT傳輸的轉送,但可能會產生一個延遲的問題。由於主機對中斷OUT傳輸的端點會有一項輪送時間的設定,主機會按照此設定每到一個輪送時間後即會對中斷傳輸的端點產生一個中斷OUT的傳輸要求。如果此時USB設備回覆NAK,則會等到下次的輪送時間點後,主機才會再發出要求。所以USB設備的中斷OUT傳輸資料封包會有至多兩個輪送時間值的差異。為解決此問題,可依圖6B之方式來運作。
圖6B所示為本創作另一實施例之中斷OUT傳輸(主機送出資料)之流程示意圖。請參閱圖6B,由於在列舉階段已解析過USB滑鼠D2的組態敘述,可知道USB滑鼠D2中斷OUT傳輸的端點的輪詢時間之設定值,所以當虛擬USB滑鼠VM1之端點由第一主機PC1收到中斷OUT傳輸時,即先由微處理器51回應ACK,完成第一主機PC1對虛擬 USB滑鼠VM1之端點中斷OUT之輸出。然後立即將同樣之中斷OUT之傳輸資料,經由USB主控制器模組56對USB滑鼠D2發出中斷OUT傳輸的要求。如此可將時間差異值控制在小於一個輪送時間之設定值。此方法亦使用在USB鍵盤D1之中斷OUT傳輸的轉送流程上。
上述說明是以USB滑鼠及USB鍵盤來舉例說明,此兩種設備是屬於人機介面(HID class)種類之設備,大部分只提供控制以及中斷IN之傳輸端點,可適用於本揭露在圖2之KVM系統架構圖中。因此,本揭露實現以虛擬USB之方式來達成KVM系統中使第一主機PC1與第二主機PC2分享使用USB滑鼠D2及USB鍵盤D1的目的。此外,當相對應於第一主機PC1之虛擬USB滑鼠VM1與虛擬USB鍵盤VK1以及相對應於第二主機PC2之虛擬USB滑鼠VM2與虛擬USB鍵盤VK2建立後,第一主機PC1與第二主機PC2之間相切換時,切換後之主機無需重新列舉USB滑鼠D2與USB鍵盤D1。本揭露能使多部主機分享多個USB設備之資源,且在多主機與多USB設備之運用中,能有效率地達成主機與USB設備之間的切換。
在本揭露中,虛擬USB的延遲回應之功能除可支援USB滑鼠D2及USB鍵盤D1等USB設備之虛擬外,透過韌體之設計,另外還能支援USB儲存碟、USB音訊設備以及USB集線器等三種目前常見之USB設備外,亦可支援其它USB週邊設備。USB儲存碟則為巨量傳輸,USB音訊設備為等時傳輸,而USB集線器則屬於中斷傳輸。在本揭露之一實施例中,微處理器51經建構以經由圖3之控制IN傳輸與圖4之控制OUT傳輸之流程,使USB音訊設備與USB儲存碟正確列舉於第一主機PC1與第二主機PC2。就第一主機PC1來說,此時在第一虛擬USB集線器581下出現一個虛擬的USB音訊設備與一個虛擬的USB儲存碟。
圖7所示為本創作一實施例之巨量IN傳輸(主機接收資料)之流程示意圖。請參閱圖7,當第一主機PC1產生一個巨量IN傳輸之要求後,此巨量IN執照會由第一多位址USB設備控制器模組531解譯並放置到記憶體52中,並先以NAK回覆第一主機PC1,同時交由微處理器51來處理。經第一多位址USB設備控制器模組531比對虛擬位址與實際位址之設備地址對照表確定為USB儲存碟,端點地址為1,微處理器51即將此資料經由USB主控制器模組56以及USB集線器57傳送到實際之USB儲存碟。在USB儲存碟回覆資料之前,第一多位址USB設備控制器模組531針對第一主機PC1對USB儲存碟巨量IN傳輸的要求,皆會以NAK回覆。等到USB儲存碟回覆資料之後,此回覆資料會在下一次第一主機PC1發出巨量傳輸IN執照時送出此回覆資料。
圖8所示為本創作一實施例之巨量OUT傳輸(主機送出資料)之流程示意圖。請參閱圖8,當第一主機PC1產生一個巨量傳輸OUT執照之要求後,此OUT執照以及OUT資料會交由第一多位址USB設備控制器模組531來解譯並放置到記憶體52中,並先由第一多位址USB設備控制器模組531以NAK回覆第一主機PC1,同時通知微處理器51來處理。經第一多位址USB設備控制器模組531比對虛擬位址與實際位址之設備地址對照確定表為USB儲存碟,端點地址為2,微處理器51即將此資料經由USB主控制器模組56以及USB集線器57傳送到USB儲存碟。待USB儲存碟回覆ACK之後,下一次第一主機PC1的巨量傳輸OUT執照以及資料(Data)發生時送出ACK回覆。
圖9A所示為本創作一實施例之等時OUT傳輸(主機送出資料)之流程示意圖。等時傳輸與其他類型之傳輸最大之不同在於:傳輸過程皆會只有執照(token)與資料(data),並無交握的過程。
請參閱圖9A,當第一主機PC1產生一個等時傳輸Out執照及 資料之要求後,此等時傳輸OUT執照以及資料會由第一多位址USB設備控制器模組531解譯並放置到記憶體52中,並通知由微處理器51來處理。經第一多位址USB設備控制器模組531比對虛擬位址與實際位址之設備地址對照表確定為USB音訊設備,端點地址((Endpoint Address)為2,微處理器51即將此資料經由USB主控制器模組56以及USB集線器57傳送到實際之USB音訊設備。
然而圖9A之轉送方式可能會造成USB音訊設備資料輸出時間差超過了1個標準時訊框(SOF Frame),產生聲音不連續或爆音的現象。為解決此問題,可依圖9B之方式來運作。
圖9B所示為本創作一實施例之訊框對齊方法之示意圖。請參閱圖9B,USB音訊設備資料輸出之時間差問題可藉由同步化USB主控制器模組56的時序(SOF Frame)輸出與第一主機PC1的時序輸出予以改善。在本揭露之一實施例中,微處理器51經建構以使USB主控制器模組56的時序輸出與第一主機PC1的時序輸出相同步,而使得USB音訊設備的時序輸出與第一主機PC1的時序輸出相同步。
圖10所示為本創作一實施例之等時IN傳輸(主機接收資料)之流程示意圖。請參閱圖10,當第一主機PC1產生一個等時IN傳輸之要求後,虛擬USB音訊設備必須要將聲音資料輸出,所以在第一主機PC1產生一個等時IN傳輸之要求之前,必須先由微處理器51分析USB音訊設備之等時IN傳輸的端點敘述,取得輪詢之時間,設定USB主控制器模組56在同一輪詢時間內主動詢問USB音訊設備之等時傳輸IN資料,然後在第一主機PC1產生一個等時IN傳輸之要求後,主動將資料回覆於第一主機PC1。
圖11所示為本創作一實施例之USB多電腦切換器60之系統方塊圖。請參閱圖11,USB多電腦切換器60包括一主系統模組65與一 影像訊號切換模組66。主系統模組65與圖2所示之USB多電腦切換器50相似,惟於本實施例中,主系統模組65可連接至USB鍵盤D1、USB滑鼠、USB音訊設備D3與USB儲存碟D4。另外,主系統模組65除虛擬USB鍵盤、虛擬USB滑鼠外,另具有虛擬USB音訊設備與虛擬USB儲存碟。
主系統模組65透過U1、U2之USB纜線分別與PC1、PC2之USB連接埠相接。影像訊號切換模組66則透過V1、V2之影像訊號纜線分別與PC1、PC2之顯示卡輸出埠連接。影像訊號切換模組66另透過控制訊號G0與主系統模組65相連接。主系統模組65將USB鍵盤D1、USB滑鼠D2、USB音訊設備D3與USB儲存碟D4在PC1及PC2之間作切換,當切換時主系統模組65透過控制訊號G0對影像訊號切換模組66送出切換之要求,並將影像訊號經由C11影像訊號纜線輸出至C15之螢幕上。
在本揭露之一實施例中,影像訊號切換模組66可依據影像訊號類別之不同而採用不同之切換IC,例如模擬訊號VGA,或是數位訊號DVI、HDMI、DisplayPort等。
依上述之說明,利用虛擬USB之技術方式不僅可以讓控制端之USB鍵盤D1、USB滑鼠D2可於第一主機PC1、第二主機PC2之間來切換使用,更可進一步擴展支援USB音訊設備D3、USB儲存碟D4以及USB集線器。除此之外在主機端,亦不需要實際之USB集線器,利用多位址設備控制器,即可以虛擬之方式實現同樣之功能,大幅度減少USB主動元件之使用。
在本創作一實施例中,USB多電腦切換器60包含例如:現場可編程輯閘陣列(FPGA)晶片、特殊應用積體電路(ASIC)或一系統晶片(SOC)。
圖12所示為本創作一實施例之USB設備分享之方法。請參閱圖12,於步驟101,係於一USB多電腦切換器中建立相對應於一第一主機之一第一虛擬USB集線器,以及相對應於一第二主機之一第二虛擬USB集線器。
於步驟102,檢測是否有一USB設備電性連接於該USB多電腦切換器。若否,則重複步驟102。
若於步驟102檢測出一USB設備電性連接於該USB多電腦切換器,則於步驟103,由一微處理器列舉該USB設備,並取得USB設備之組態敘述。
其後,於步驟104,基於該USB設備之組態敘述以分析解譯出該USB設備之端點資料。
於步驟105,基於該USB設備之端點資料,於該USB多電腦切換器中建立相對應於該第一虛擬USB集線器之一第一虛擬USB設備,以及相對應於該第二虛擬USB集線器之一第一虛擬USB設備。
其後,返回步驟102以檢測是否有另一USB設備電性連接於該USB多電腦切換器。若是,則重複步驟103~105。於步驟105,基於該另一USB設備之端點資料,於該USB多電腦切換器中建立相對應於該第一虛擬USB集線器之一第二虛擬USB設備,以及相對應於該第二虛擬USB集線器之一第二虛擬USB設備。
在一實施例中,該端點資料包含一中斷傳輸類別端點資料,其包含一端點的輪詢時間之設定值,本分享方法於第一主機接收該USB設備之該端點資料之中斷傳輸期間,於第一主機對該端點發出一中斷傳輸的要求前,主動對該USB設備之該端點發出一中斷傳輸的要求。一旦該USB設備有回覆該中斷傳輸端點資料時,即將此資料內容 存入相對應的虛擬USB設備的端點記憶緩衝輸出區內,並在第一主機對該端點發出該中斷傳輸時即將此資料送出。
在另一實施例中,該端點資料包含一中斷傳輸類別端點資料,其包含一端點的輪詢時間之設定值,本分享方法於第一主機送出資料予該USB設備之該端點之中斷傳輸期間,於該虛擬USB設備接收到來自第一主機之該端點之中斷傳輸要求時,即先回應ACK。然後立即對該USB設備之該端點發出該中斷傳輸要求。
在另一實施例中,該端點資料包含一等時傳輸類別端點資料,其包含一端點的輪詢時間之設定值,本分享方法於第一主機送出資料予該USB設備之該端點之等時傳輸期間,使該USB設備的時序輸出與第一主機的時序輸出相同步。
在另一實施例中,該端點資料包含一等時傳輸類別端點資料,其包含一端點的輪詢時間之設定值,本分享方法於第一主機接收該USB設備之該端點資料等時傳輸期間,於第一主機對該端點產生一個等時傳輸之要求前,主動詢問USB設備之該端點之等時傳輸資料,然後在第一主機對該端點產生該等時傳輸之要求時,將該資料回覆於第一主機。
在另一實施例中,本分享方法於第一主機列舉該USB設備之期間,以NAK回覆第二主機對該USB設備之列舉命令。
本揭露之實施例能夠讓一個USB設備,如USB鍵盤、USB滑鼠等不同的裝置能同時出現在兩台主機以上的裝置表中,藉由虛擬切換的方式,讓USB鍵盤、USB滑鼠切換至不同的電腦主機時,無需等待設備列舉的耗時動作,而能立即使用。此外,在電腦裝置表中所出現的USB鍵盤、USB滑鼠與實際的USB鍵盤、USB滑鼠設備一致, 而無任何差異,因而原廠所提供的驅動程式依然可以運作。
本創作之技術內容及技術特點已揭示如上,然而本創作所屬技術領域中具有通常知識者應瞭解,在不背離後附申請專利範圍所界定之本創作精神和範圍內,本創作之教示及揭露可作種種之替換及修飾。
此外,本案之權利範圍並不侷限於上文揭示之特定實施例的系統、裝置、方法或步驟。本創作所屬技術領域中具有通常知識者應瞭解,基於本創作教示及揭露系統、裝置、方法或步驟,無論現在已存在或日後開發者,其與本案實施例揭示者係以實質相同的方式執行實質相同的功能,而達到實質相同的結果,亦可使用於本創作。因此,以下之申請專利範圍係用以涵蓋用以此類系統、裝置、方法或步驟。
50‧‧‧USB多電腦切換器
51‧‧‧微處理器
52‧‧‧記憶體
54‧‧‧USB設備控制暫存器
55‧‧‧USB主控制器暫存器
56‧‧‧USB主控制器模組
57‧‧‧USB集線器
531‧‧‧第一多位址USB設備控制器模組
532‧‧‧第二多位址USB設備控制器模組
581‧‧‧第一虛擬USB集線器
582‧‧‧第二虛擬USB集線器
D1‧‧‧USB鍵盤
D2‧‧‧USB滑鼠
PC1‧‧‧第一主機
PC2‧‧‧第二主機
U1‧‧‧纜線
U2‧‧‧纜線
VK1‧‧‧第一虛擬USB設備(對應第一主機)
VK2‧‧‧第一虛擬USB設備(對應第二主機)
VM1‧‧‧第二虛擬USB設備(對應第一主機)
VM2‧‧‧第二虛擬USB設備(對應第二主機)

Claims (13)

  1. 一種通用串列匯流排(USB)多電腦切換器,用以耦接於至少一主機及至少一USB設備之間,該USB多電腦切換器包含:一第一虛擬USB集線器(581),經建構以與一第一主機(PC1)通訊;一第一虛擬USB設備,經建構以經由該第一虛擬USB集線器連接至該第一主機,且具有與一第一USB設備相同之端點設定資料;一微處理器,經建構以產生該第一虛擬USB集線器,並經由一USB主控制器模組以及一USB集線器,因應於該第一USB設備之電性連接,列舉該第一USB設備;以及一第一多位址USB設備控制器模組,經建構以經由該第一虛擬USB集線器電性連接至該第一主機,並因應於該第一USB設備之列舉,確定該第一USB設備之端點設定資料。
  2. 如申請專利範圍第1項之USB多電腦切換器,另包含:一第二虛擬USB設備,經建構以經由該第一虛擬USB集線器連接至該第一主機,且具有與一第二USB設備相同之端點設定資料。
  3. 如申請專利範圍第2項之USB多電腦切換器,其中:該微處理器經建構以因應於該第二USB設備之電性連接,列舉該第二USB設備;以及該第一多位址USB設備控制器模組經建構以因應於該第二USB設備之列舉,確定該第二USB設備之端點設定資料。
  4. 如申請專利範圍第1項之USB多電腦切換器,另包含:一第二虛擬USB集線器,經建構以與一第二主機通訊, 其中該微處理器經建構以產生該第二虛擬USB集線器。
  5. 如申請專利範圍第4項之USB多電腦切換器,另包含:一第一虛擬USB設備,經建構以經由該第二虛擬USB集線器連接至該第二主機,且具有與該第一USB設備相同之端點設定資料。
  6. 如申請專利範圍第5項之USB多電腦切換器,其中該微處理器經建構以因應於該第二USB設備之電性連接,列舉該第二USB設備,另包含:一第二多位址USB設備控制器模組,經建構以經由該第二虛擬USB集線器電性連接至該第二主機,並因應於該第二USB設備之列舉,確定該第二USB設備之端點設定資料。
  7. 如申請專利範圍第6項之USB多電腦切換器,另包含:一第二虛擬USB設備,經建構以經由該第二虛擬USB集線器連接至該第二主機,且具有與該第二USB設備相同之端點設定資料。
  8. 如申請專利範圍第1項之USB多電腦切換器,其中該至少一USB設備包含USB鍵盤、USB滑鼠、USB音訊設備以及USB儲存碟或其它USB週邊設備。
  9. 如申請專利範圍第1項之USB多電腦切換器,另包含:一影像訊號切換模組,經建構以電性連接至該第一主機,並提供影像訊號至一顯示裝置。
  10. 如申請專利範圍第1項之USB多電腦切換器,其中該端點設定資料包含一中斷傳輸類別端點設定資料,其包含一端點的輪詢時間之 設定值,該微處理器經建構以於該端點之中斷傳輸期間,在該第一主機對該端點發出一中斷傳輸的要求前,對該第一USB設備之該端點發出一中斷傳輸的要求。
  11. 如申請專利範圍第1項之USB多電腦切換器,其中該端點設定資料包含一中斷傳輸類別端點設定資料,其包含一端點的輪詢時間之設定值,該微處理器經建構以於該端點之中斷傳輸期間,在該第一虛擬USB設備接收到來自該第一主機對該端點之中斷傳輸要求時,即先回應一肯定應答(ACK)。
  12. 如申請專利範圍第1項之USB多電腦切換器,其中該端點設定資料包含一等時傳輸類別端點設定資料,其包含一端點的輪詢時間之設定值,該微處理器經建構以於一等時傳輸期間,使該第一USB設備的時序輸出與該第一主機的時序輸出相同步。
  13. 如申請專利範圍第1項之USB多電腦切換器,其中該端點設定資料包含一等時傳輸類別端點設定資料,其包含一端點的輪詢時間之設定值,該微處理器經建構以於該端點之等時傳輸期間,於該第一主機對該端點產生一個等時傳輸之要求前,詢問該第一USB設備之該端點之等時傳輸資料。
TW104201487U 2015-01-30 2015-01-30 使用虛擬通用串列匯流排(usb)切換多部主機之usb多電腦切換器 TWM501592U (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW104201487U TWM501592U (zh) 2015-01-30 2015-01-30 使用虛擬通用串列匯流排(usb)切換多部主機之usb多電腦切換器
CN201520130440.9U CN204595844U (zh) 2015-01-30 2015-03-06 Usb多电脑切换器
US15/010,842 US20160224493A1 (en) 2015-01-30 2016-01-29 Universal serial bus (usb) kvm switch using virtual usb for switching among multiple hosts

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104201487U TWM501592U (zh) 2015-01-30 2015-01-30 使用虛擬通用串列匯流排(usb)切換多部主機之usb多電腦切換器

Publications (1)

Publication Number Publication Date
TWM501592U true TWM501592U (zh) 2015-05-21

Family

ID=53723327

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104201487U TWM501592U (zh) 2015-01-30 2015-01-30 使用虛擬通用串列匯流排(usb)切換多部主機之usb多電腦切換器

Country Status (3)

Country Link
US (1) US20160224493A1 (zh)
CN (1) CN204595844U (zh)
TW (1) TWM501592U (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI608356B (zh) * 2016-07-20 2017-12-11 聯陽半導體股份有限公司 週邊介面晶片及其資料傳送方法
TWI675317B (zh) * 2018-07-20 2019-10-21 緯創資通股份有限公司 切換方法以及相關的電子系統

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160371107A1 (en) * 2015-06-18 2016-12-22 Dell Products, Lp System and Method to Discover Virtual Machines from a Management Controller
TWI598736B (zh) * 2015-12-31 2017-09-11 鋒厚科技股份有限公司 分配模組及其發射端延伸器
CN106095123A (zh) * 2016-06-17 2016-11-09 山东超越数控电子有限公司 一种kvm一体机虚拟多路usb键鼠设备的方法
JP6991812B2 (ja) * 2017-09-26 2022-01-13 キヤノン株式会社 接続された外部装置と通信可能であって省電力状態に移行が可能なコントローラを備える情報処理装置及びその制御方法
CN110597750A (zh) * 2019-10-29 2019-12-20 杭州国迈电子科技有限公司 一种usb会议装置
CN112416447A (zh) * 2020-12-03 2021-02-26 深圳市国科亿道科技有限公司 一个usb端口实现多个复合功能设备的方法及复合设备
CN113282527A (zh) * 2021-05-08 2021-08-20 珠海金智维信息科技有限公司 一种实现usb设备切换管理的方法、装置和主机
TWI779848B (zh) * 2021-09-27 2022-10-01 宏正自動科技股份有限公司 切換裝置及其切換方法
CN115988246B (zh) * 2023-02-22 2023-05-16 北京小鸟科技股份有限公司 多模式usb2.0坐席远传切换系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035948B1 (en) * 2001-03-19 2006-04-25 Transdimension, Inc. System and method for USB controllers
TWI321731B (en) * 2006-09-18 2010-03-11 Quanta Comp Inc Device connection system and device connection method
US9772858B2 (en) * 2011-04-21 2017-09-26 Ineda Systems Inc. Multi-root peripheral component interconnect manager
US9178314B2 (en) * 2011-05-31 2015-11-03 Adder Technology Limited Electronic device security
IN2013CH05400A (zh) * 2013-11-22 2015-05-29 Ineda Systems Pvt Ltd

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI608356B (zh) * 2016-07-20 2017-12-11 聯陽半導體股份有限公司 週邊介面晶片及其資料傳送方法
US10061733B2 (en) 2016-07-20 2018-08-28 Ite Tech. Inc. Peripheral interface chip and data transmission method thereof
TWI675317B (zh) * 2018-07-20 2019-10-21 緯創資通股份有限公司 切換方法以及相關的電子系統

Also Published As

Publication number Publication date
US20160224493A1 (en) 2016-08-04
CN204595844U (zh) 2015-08-26

Similar Documents

Publication Publication Date Title
TWM501592U (zh) 使用虛擬通用串列匯流排(usb)切換多部主機之usb多電腦切換器
US7949816B2 (en) Method and apparatus for enhancing universal serial bus applications
US9009378B2 (en) Method and apparatus for enhancing universal serial bus applications
EP3234788A1 (en) DATA TRANSMISSION USING PCIe PROTOCOL VIA USB PORT
CA2880979C (en) Usb 3.0 link layer timer adjustment to extend distance
JP2016505915A (ja) 表示インターフェースを介するシリアルバスサポートの柔軟な実装
US10380049B2 (en) Multi-host supported universal serial bus hub and automobile head unit using the same
GB2488223A (en) Serial peripheral interface with handshake signals
TW201303608A (zh) 具有全速至高速交易轉譯器之高速usb集線器
CN107908589B (zh) I3c验证从设备、主从设备的通信验证系统及方法
TWM525481U (zh) 於不同通訊介面間相互傳輸訊號之系統及裝置
CN104571581A (zh) 一种用于多主机共享显示设备的切换装置及切换方法
WO2019200928A1 (zh) 智能交互一体机
US20160077986A1 (en) Electronic apparatus providing real-time switching and sharing of usb electronic devices among hosts
TWM504272U (zh) 通用串列匯流排(usb)電腦切換器(kvm)訊號延長器
TW201532404A (zh) 遠端登入電腦之方法
TWI390407B (zh) 多電腦切換器及其轉接器
WO2017012459A1 (zh) 系统总线设备响应超时的处理方法、装置及存储介质
TWI450098B (zh) 主控端電子裝置以及主控端操作方法
TWM494348U (zh) 提供主機即時切換及分享通用串列匯流排(usb)電子設備之電子裝置
US11803498B2 (en) Scheduling techniques for isochronous in traffic in a USB extension environment
US11809365B2 (en) Data transmission method
US11762506B2 (en) Handling noise interference on an interlink
TWI691847B (zh) Usb集線器的資源切換系統與方法
TWI475392B (zh) 雙模式電子裝置、電子系統以及主控端判斷方法

Legal Events

Date Code Title Description
MM4K Annulment or lapse of a utility model due to non-payment of fees