US20100122010A1 - Usb sharing switch with automatic switching capabilities - Google Patents

Usb sharing switch with automatic switching capabilities Download PDF

Info

Publication number
US20100122010A1
US20100122010A1 US12/268,974 US26897408A US2010122010A1 US 20100122010 A1 US20100122010 A1 US 20100122010A1 US 26897408 A US26897408 A US 26897408A US 2010122010 A1 US2010122010 A1 US 2010122010A1
Authority
US
United States
Prior art keywords
computer
controller
controllers
sharing switch
switch
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
US12/268,974
Other versions
US7886106B2 (en
Inventor
Xiong YAN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aten International Co Ltd
Original Assignee
Aten International Co Ltd
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 Aten International Co Ltd filed Critical Aten International Co Ltd
Priority to US12/268,974 priority Critical patent/US7886106B2/en
Assigned to ATEN INTERNATIONAL CO., LTD. reassignment ATEN INTERNATIONAL CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: YAN, Xiong
Priority to TW098107683A priority patent/TWI386805B/en
Priority to CN2009101380384A priority patent/CN101739377B/en
Publication of US20100122010A1 publication Critical patent/US20100122010A1/en
Priority to US12/981,402 priority patent/US8352668B2/en
Application granted granted Critical
Publication of US7886106B2 publication Critical patent/US7886106B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Definitions

  • This invention relates to a USB sharing switch device, and in particular, it relates to a USB sharing switch device which has automatic switching capabilities.
  • a sharing switch device is a device that connects multiple computers to one or more peripheral devices such as printers, scanners, storage devices, etc., which allows the computers to share the peripheral devices.
  • the sharing switch device selectively connects one of the computers to a peripheral device.
  • a USB sharing switch device uses the USB (Universal Serial Bus) protocol for communication between the computers and the peripheral devices. In a conventional USB sharing switch device, switching is done manually by either pressing a button on the sharing switch device or sending a command from the computer to the sharing switch device.
  • the USB sharing switch device is connected to both the computers and the peripheral device by USB cables, and data in the USB format is transferred through the sharing switch device without changing their format.
  • printer server Another type of devices for sharing a printer by multiple computers is a printer server.
  • the computers are connected to the printer server via a network such as Ethernet, and the printer server is connected to the printer by a cable such as a USB cable.
  • the printer server processes packet data received from the computers over the network and transform it into USB data for the printer.
  • the present invention is directed to a USB sharing switch device and related method that substantially obviate one or more of the problems due to limitations and disadvantages of the related art.
  • An object of the present invention is to provide a USB sharing switch device for printers which has automatic switching capabilities.
  • the present invention provides a sharing switch device for coupling to a peripheral device and a plurality of computers, which includes: a plurality of computer-side switches each for coupling to a corresponding computer; a hub device having an upstream end coupled to the plurality of computer-side switches, a first downstream end for coupling to the peripheral device, and a second downstream end; a plurality of controllers each coupled to a corresponding computer-side switch, wherein each computer-side switch switches the corresponding computer to either the corresponding controller or the upstream end of the hub device; and a controller-side switch coupled to the plurality of controllers and to the second downstream end of the hub device for switching the second downstream end of the hub device to one of the controllers.
  • the controllers control the switching of the computer-side switches and the controller-side switch to switch one of the computer-side switches corresponding to a selected one of the computers to the hub device, switch the other computer-side switches to their corresponding controllers, and switch the controller-side switch to the controller corresponding to the selected computer, whereby the selected computer is connected to the peripheral device via the corresponding computer-side switch and the hub device.
  • a master controller of the sharing switch maintains a queue of switching requests received from the computers, and when the master controller receives a data transfer finished command from a computer, it retrieves a next switching request from the queue and initiates switching of the computer-side switches and the controller-side switch to connect a next computer to the peripheral device.
  • the present invention provides a sharing switch device for coupling to a peripheral device and a plurality of computers, which includes: a plurality of N computer-side switches each for coupling to a corresponding computer; a common connection line for coupling to the peripheral device, the common connection line being coupled to the N computer-side switches; a busy detection circuit coupled to the common connection line for detecting a busy condition of the common connection line and generating signals representing a detection result; a plurality of N ⁇ 1 controllers; and a plurality of controller-side switches coupled to the N ⁇ 1 controllers and to the N computer-side switches for switching any combination of N ⁇ 1 out of the N computer-side switches to the N ⁇ 1 controllers, wherein each computer-side switch switches the corresponding computer to either the common connection line or to one or more of the controller-side switches.
  • the controllers control the switching of the computer-side switches and the controller-side switches to switch the computer-side switch corresponding to a selected computer to the common connection line, switch the other N ⁇ 1 computer-side switches to the controller-side switches, and switch the controller-side switches to connect the other N ⁇ 1 computer-side switches to the N ⁇ 1 controllers, whereby the selected computer is connected to the peripheral device.
  • a master controller of the sharing switch maintains a queue of switching requests received from the computers, the busy detection circuit transmits the signals representing the detection result to the master controller, and the master controller determines whether data transfer is finished based on the signals from the busy detection circuit; when it determines that data transfer is finished, the master controller retrieves a next switching request from the queue and initiates switching of the computer-side switches and the controller-side switches to connect a next computer to the peripheral device.
  • the present invention provides a method implemented in a peripheral device sharing system including a sharing switch device and a peripheral device and a plurality of computers coupled to the sharing switch device, where the method includes, on the sharing switch device: (a) connecting a currently selected computer to the peripheral device; (b) receiving switching requests from the plurality of computers; (c) placing the switching requests in a queue; (d) determining whether the data transfer between the currently selected computer and the peripheral device has finished; and (e) if it is determined that the currently selected computer has finished transferring data, retrieving a next switching request from the queue and connecting a next selected computer to the peripheral device based on the next switching request.
  • the method further includes, on each computer: (f) automatically transmitting a switching request to the sharing switch device when a program on the computer requests a data transfer to or from the peripheral device; (g) monitoring a connected status for the peripheral device; and (h) after determining that the peripheral device is connected, transferring data to or from the peripheral device.
  • FIG. 1 is a block diagram of a system including a sharing switch device according to a first embodiment of the present invention.
  • FIG. 2 illustrates the operation of the sharing switch device of the first embodiment using a particular example.
  • FIG. 3 illustrates a process performed by a program on a computer connected to the sharing switch device of FIG. 1 .
  • FIG. 4 is a block diagram of a system including a sharing switch device according to a second embodiment of the present invention.
  • FIG. 5 illustrates the operation of the sharing switch device of the second embodiment using a particular example.
  • FIG. 6 is a block diagram of a system including a sharing switch device according to a third embodiment of the present invention.
  • FIG. 7 illustrates a process performed by the master controller of the sharing switch device of FIGS. 1 , 4 and 6 .
  • the present invention provides a USB printer sharing switch device with automatic switching capabilities, which allows multiple computers to conveniently share a USB printer. Both the computers and the printer are connected to the sharing switch device by USB cables. Preferably, the sharing switch device transfers data in the USB format without changing it from one format to another.
  • the automatic switching function is performed by hardware and firmware of the sharing switch device in cooperation with driver software on the connected computers.
  • FIG. 1 illustrates a printer sharing system including a sharing switch device according to a first embodiment of the present invention.
  • the sharing switch device 10 is coupled to a printer 30 and a plurality of computers 20 .
  • Four computers 20 (PC- 1 to PC- 4 ) are shown in this example.
  • the sharing switch device 10 includes a plurality of computer-side switches 12 each coupled to a corresponding computer 20 and a plurality of USB device controllers 14 each coupled to a corresponding computer-side switch 12 .
  • Four computer-side switches 12 (SW- 1 to SW- 4 ) and four USB device controllers 14 Contr- 1 to Contr- 4 ) are shown in this example, corresponding to the four computers (PC- 1 to PC- 4 ).
  • Each computer-side switch 14 is also coupled to an upstream port of a common USB hub 16 , such that the computer-side switch 14 switches the corresponding computer 20 to either the common USB hub 16 or the corresponding controller 14 .
  • the sharing switch device 10 additionally includes a controller-side switch 18 which is coupled at one side to a first downstream port of the USB hub 16 and at the other side to each of the controllers 14 , such that the switch 18 switches the USB hub 16 to one of the controllers 14 .
  • the printer 30 is coupled to a second downstream port of the USB hub 16 .
  • the USB device controllers 14 may be low speed device controllers. In one implementation, they are USB HID Class (Human Interface Device) device controllers, and the computers 20 use their default HID driver to interact with the controllers 14 .
  • the plurality of controllers 14 are coupled together and communicate with each other using a master-slave model, such that one of the controllers is a master and the others are slaves.
  • the connection lines among the controllers 14 are not shown in FIG. 1 to avoid overcrowding.
  • One or more of the controllers 14 are programmed to control the switching operation of the computer-side switches 12 and the controller-side switch 18 . In principle, one of the USB device controllers 14 , such as the master controller, can control the switching operation of all of the switches 12 and 18 .
  • the number of switches that can be controlled by one controller 14 may be limited due to the limited number of pins on the controller, especially when relatively inexpensive USB device controller chips are used. Therefore, the master controller and one or more slave controllers 14 may cooperate to perform the functions of controlling the switches 12 and 18 .
  • the disclosure or the claims refer to the “device controllers” controlling the switching of the switches, it should be understood that this does not mean all device controllers must be involved.
  • the control signals are transmitted between the controllers 14 and the switches 12 and 18 they control via desiccated control lines, which are not shown in FIG. 1 to avoid overcrowding.
  • Each computer 20 is loaded with a special USB port monitor program 20 A, which cooperates with the spooler service of the computer 20 and with the sharing switch device 10 to accomplish spooling of print data to the shared printer 30 , as will be described in more detail later.
  • the fourth computer PC- 4 is currently connected to the printer 30 and spooling print data to the printer (step S 21 ).
  • the computer PC- 4 is referred to as the currently selected computer.
  • the fourth computer-side switch SW- 4 corresponding to the fourth computer PC- 4 is switched to the USB hub 16 .
  • Data is communicated between the fourth computer PC- 4 and the printer 30 via the fourth computer-side switch SW- 4 and the USB hub 16 .
  • the other computer-side switches 12 (SW- 1 , SW- 2 and SW- 3 ) are switched to the corresponding controllers 14 (Contr- 1 , Contr- 2 and Contr- 3 ), respectively.
  • the controller-side switch 18 is switched to the fourth controller Control- 4 corresponding to the fourth computer PC- 4 .
  • each computer 20 is connected to its corresponding controller 14 , either via the corresponding computer-side switches 12 in the case of the non-selected computers PC- 1 , PC- 2 and PC- 3 or via the corresponding computer-side switches 12 , the USB hub 16 and the controller-side switch 18 in the case of the currently selected computer PC 4 .
  • each computer 20 can communicate commands with its corresponding controller 14 .
  • the fourth computer PC- 4 When the fourth computer PC- 4 finishes spooling print data, it transmits a “spooling finished” command to the corresponding controller Contr- 4 via the fourth computer-side switch SW- 4 , the USB hub 16 and the controller-side switch 18 (step S 22 ).
  • the fourth controller Contr- 4 communicates the spooling finished command to the master controller (assuming in this example the master controller is the first controller Contr- 1 ).
  • the master controller (Contr- 1 ) maintains a queue of switching requests from the various computers 20 . After receiving the spooling finished command from the fourth computer, the master controller retrieves the next switching request from the queue (step S 23 ). If the queue is empty, the master controller waits to receive the next switching request from a computer and puts it in the queue.
  • next switching request in the queue is a request from the first computer PC- 1 (referred to as the next selected computer).
  • the master controller and the slave controllers 14 (under the instruction of the master controller) perform appropriate control functions to switch the printer 30 from the currently selected computer PC- 4 to the next selected computer PC- 1 .
  • the fourth computer-side switch SW- 4 is controlled to switch the fourth computer PC- 4 to the fourth controller Contr- 4 (i.e. it is no longer switched to the USB hub 16 ) (step S 24 ).
  • the first computer-side switch SW- 1 is controlled to switch to the USB hub 16 (step S 25 ).
  • the controller-side switch 18 is controlled to switch to the first controller Contr- 1 (i.e. the controller corresponding to the next selected computer) (step S 25 ).
  • the order of these switching steps S 24 to S 26 is not critical.
  • the second and third computer-side switches SW- 2 and SW- 3 need not perform any action because their switching condition is unchanged.
  • the next selected computer PC- 1 is connected to the printer 30 via its corresponding computer-sided switch SW- 1 and the USB hub 16 .
  • the next selected computer PC- 1 is also connected to its corresponding controller Contr- 1 via its corresponding computer-side switch SW- 1 , the USB hub 16 and the controller-side switch 18 .
  • the non-selected computers 20 (PC- 2 , PC- 3 and PC- 4 ) are connected to their corresponding controllers 14 (Contr- 2 , Contr- 3 and Contr- 4 ) via the corresponding computer-side switches 12 (SW- 2 , SW- 3 and SW- 4 ).
  • the next selected computer PC- 1 can now print to the printer 30 (step S 27 ). When PC- 1 finished printing, the process is repeated for the next switching request.
  • the master controller is one of the USB device controllers 14 .
  • the master controller may be a separate controller (i.e. not one of the four USB device controllers 14 ), and the four USB device controllers 14 are slave controllers.
  • the four USB device controllers 14 may be implemented as one control circuit (such as an ASIC, FPGA, etc.) that includes the functionality of four USB device controllers. The actual implementation is not important, as long as there are four USB device controllers corresponding to the four computers PC- 1 to PC- 4 .
  • FIG. 3 illustrates a process performed by the USB port monitor program 20 A installed on the computer 20 .
  • the USB port monitor program 20 A is located between the Spooler and the USB Driver Stack, both provided by Windows.
  • the USB port monitor 20 A can replace the USB port monitor provided by Windows (Usbmon.dll).
  • the port monitor 20 A when the port monitor 20 A receives a spooling request from the spooler (step S 31 ), the port monitor transmits a switching request to the sharing switch device 10 (step S 32 ).
  • the switching request is transmitted automatically without requiring the user of the computer to issue a switching command. From the user's standpoint, only a print command is required.
  • the sharing switch device 10 maintains a queue of switching requests received from the computers 20 , and automatically performs switching operations to switch the printer 30 from one computer 20 to another when appropriate.
  • the port monitor 20 A monitors the connection status of the sharing switch device 10 to determine whether the sharing switch device has connected the printer 30 to this particular computer (step S 33 ).
  • the port monitor 20 A may monitor the device occupied status of the computer, where an “occupied” status means the connection to the printer is established.
  • the monitoring step continues (“N” in step S 34 ) until the sharing switch device 10 connects this computer 20 to the printer 30 (“Y” in step S 34 ).
  • Step S 34 the port monitor 20 A sends a “lock” command to the sharing switch device 10 , then confirms the switch locked status by receiving a response from sharing switch device (step S 35 ).
  • Step S 35 is optional, because the sharing switch 10 may be designed so that it will automatically lock the connection after switching, and will unlock it only after a spooling finished command is received from the currently selected computer.
  • the port monitor 20 A informs the spooler to start spooling data (step S 36 ).
  • the spooling process is carried out in a continuous manner (step S 37 ).
  • the port monitor 20 A receives print data from the spooler and transfers it to the printer 30 via the sharing switch device 10 , and receives printer status information from the printer 30 via the sharing switch device 10 and transfers it to the spooler. After the spooling process is successfully completed, the port monitor 20 A receives a notification from the spooler, and transmits a spooling finished command to the sharing switch device 10 (step S 38 ).
  • the sharing switch device 10 will not switch the printer to another computer unless a spooling finished command is received from the currently selected computer.
  • the sharing switch receives a lock command from the port monitor 20 A (see step S 35 in FIG. 3 )
  • it sends a lock confirmed signal back to the port monitor.
  • spooling by the currently selected computer will not be interrupted. This ensures that spooling will be completed even when abnormal conditions occur at the printer (e.g., paper jam, paper tray empty, etc.).
  • the computer 20 uses its default USB HID class device driver to interact with the controllers 14 of the sharing switch device 10 .
  • the computer does not need to be loaded with other special programs.
  • FIG. 4 illustrates a sharing switch device according to a second embodiment of the present invention.
  • the sharing switch device 40 is coupled to a printer 30 and a plurality of computers 20 (four computers PC- 1 to PC- 4 are shown in this example).
  • the sharing switch device 40 includes a plurality of computer-side switches 42 (SW- 1 to SW- 4 in this example) each coupled to a corresponding computer 20 , and a plurality of USB device controllers 44 .
  • three USB device controllers 44 Contr- 1 to Contr- 3
  • the number of USB device controllers 44 is one fewer than the number (denoted “N”) of computer-side switches 42 .
  • the three USB device controllers 44 are coupled by three corresponding controller-side switches 48 (SW- 5 to SW- 7 ) to the four computer-side switches 42 in a way such that the three controllers 44 can be switched to any three out of the four computer-side switches SW- 1 to SW- 4 .
  • the first controller-side switch SW- 5 switches the first controller Contro- 1 to either the first computer-side switch SW- 1 or the next computer-side switch SW- 2
  • the second controller-side switch SW- 6 switches the second controller Contro- 2 to either the second computer-side switch SW- 2 or the next computer-side switch SW- 3 , etc.
  • Each computer-side switch 42 is also coupled to the printer 30 via a common connection line 49 , such that the computer-side switch 42 switches the corresponding computer 20 to either the printer 30 or one of the controller-side switched 48 .
  • the USB device controllers 44 in FIG. 4 may be implemented as USB HID Class device controllers and the computers 20 may use their default HID drivers to interact with the controllers 44 .
  • the plurality of controllers 44 are connected together (connection lines not shown in FIG. 4 ) and communicate with each other using a master-slave model.
  • the master controller and one or more slave controllers 44 control the switching operation of the computer-side switches 42 and the controller-side switches 48 . Again, the desiccated control lines connecting the controllers 44 and the switches they control are not shown in FIG. 4 to avoid overcrowding.
  • the sharing switch device 40 also includes a USB busy detection circuit 46 coupled to the common connection line 49 between the computer-side switches 42 and the printer 30 .
  • the USB busy detection circuit 46 monitors the signals being transmitted on the connection line 49 to detect whether the line is busy, i.e., whether a computer 20 is currently spooling data to the printer 30 .
  • the USB busy detection circuit 46 transmits signals regarding the detection result to one of the controllers 44 (e.g. the master controller) over a control line (not shown in FIG. 4 ).
  • Each computer 20 is loaded with a special USB port monitor program 20 B, which cooperates with the spooler service of the computer and with the sharing switch device 40 to accomplish spooling of print data to the shared printer 30 , as will be described in more detail later.
  • the fourth computer PC- 4 is currently connected to the printer 30 and spooling data to the printer (it is referred to as the currently selected computer) (step S 51 ).
  • the fourth computer-side switch SW- 4 corresponding to the fourth computer PC- 4 is switched to the printer 30 via the common connection line 49 .
  • Data is communicated between the fourth computer PC- 4 and the printer 30 via the fourth computer-side switch SW- 4 .
  • the other three computer-side switches 12 (SW- 1 , SW- 2 and SW- 3 ) are switched to the three controller-side switches 48 .
  • the three controller-side switches 48 are switched such that each computer-side switches 48 for a non-selected computer is connected to a USB device controller 44 .
  • the first controller-side switch SW- 5 switches the first controller Contr- 1 to the first computer-side switch SW- 1
  • the second controller-side switch SW- 6 switches the second controller Contr- 2 to the second computer-side switch SW- 2
  • the third controller-side switch SW- 7 switches the third controller Contr- 3 to the third computer-side switch SW- 3 .
  • the three non-selected computers 20 (PC- 1 , PC- 2 and PC- 3 ) are connected to the three controllers 44 (Contro- 1 , Contr- 2 and Contr- 3 ) and can communicate commands with the corresponding controllers 44 .
  • the sharing switch device 40 When a computer is spooling data, the sharing switch device 40 continuously determines whether spooling has finished (step S 52 ).
  • the currently selected computer 20 PC- 4 in this example
  • the currently selected computer 20 is not connected to any USB device controller 44 when that computer is spooling data to the printer.
  • the currently selected computer 20 is unable to send a spooling finished command to the sharing switch device 40 .
  • the function of determining whether spooling has finished is performed by the USB busy detection circuit 46 either alone or in cooperation with the master controller 44 .
  • the sharing switch device 40 implements a delay mechanism so that a predetermined time period of inaction on the connection line 49 must be detected before the printer can be switched to another computer.
  • the USB busy detection circuit 46 transmits busy or not-busy signals to the master controller 44 ; for example, it transmits a new signal every time the line condition changes from busy to not-busy or vice versa. Based on such signals, the master controller 44 uses its timer to monitor how long the line has been in the not-busy state, and determines that spooling has finished after a predetermined time period when the line has been not-busy. In an alternative embodiment, the USB busy detection circuit 46 has a timer and can determine how long the line has been not-busy, and transmits a spooling finished signal to the master controller 44 after a predetermined time period when the line has been not-busy.
  • the master controller 44 maintains a queue of switching requests from the various computers 20 . After it is determined that spooling by the currently selected computer has finished, the master controller retrieves the next switching request from the queue (step S 53 ). If the queue is empty, the master controller waits to receive the next switching request from a computer and puts it in the queue. In this example, assume that the next switching request in the queue is a request from the first computer PC- 1 (referred to as the next selected computer). The master controller and the slave controllers 44 (under the instruction of the master controller) perform appropriate control functions to switch the printer 30 from the fourth computer PC- 4 to the first computer PC- 1 .
  • the fourth computer-side switch SW- 4 is controlled to switch the fourth computer PC- 4 to the third controller-side switch SW- 7 (i.e. PC- 4 is no longer switched to the printer 30 ) (step S 54 ).
  • the first computer-side switch SW- 1 is controlled to switch the first computer PC- 1 to the printer 30 (step S 55 ).
  • the third controller-side switch SW- 7 is controlled to switch to the fourth computer-side switch SW- 4 ;
  • the second controller-side switch SW- 6 is controlled to switch to the third computer-side switch SW- 3 ;
  • the first controller-side switch SW- 5 is controlled to switch to the second computer-side switch SW- 2 (step S 56 ).
  • the order of these switching steps S 54 to S 56 is not critical.
  • the second and third computer-side switches SW- 2 and SW- 3 need not perform any action because their switching condition is unchanged.
  • next selected computer PC- 1 is connected to the printer 30 via its corresponding computer-sided switch SW- 1 , and the non-selected computers 20 (PC- 2 , PC- 3 and PC- 4 ) are connected to the controllers 44 (Contr- 2 , Contr- 3 and Contr- 4 ) via the corresponding computer-side switches 42 (SW- 2 , SW- 3 and SW- 4 ) and the three controller-side switches 48 .
  • the next selected computer PC- 1 can now print to the printer 30 (step S 57 ). When PC- 1 finished printing, the process is repeated for the next switching request.
  • the process performed by the port monitor program 20 B loaded on the computers 20 in the second embodiment shown in FIG. 4 is similar to the process shown in FIG. 3 performed by the port monitor program 20 A in the first embodiment shown in FIG. 1 , with a number of differences as explained below.
  • the first difference is that in step S 33 , the port monitor 20 B determines the printer connection status by polling the HID (the controller 44 ) to determine if the HID connection is lost. The lost of the HID connection means the printer connection is established.
  • the second difference is that the port monitor 20 B does not perform step S 35 (send lock command and confirm lock status).
  • the third difference is that the port monitor 20 B does not perform step S 38 (transmit a spooling finished command to the USB sharing switch device).
  • the USB sharing switch device 40 uses a USB busy detection circuit to determine whether spooling by a computer is finished.
  • the sharing switch device 40 will not switch the printer to another computer unless the USB busy detection circuit 46 or the master controller determines that spooling has finished. Thus, spooling by the currently selected computer will generally not be interrupted, although such interruption is not completely prevented.
  • the sharing switch device 40 shown in FIG. 4 if a computer 20 is connected to the printer 30 by the corresponding computer-side switch 42 , the computer is not connected to a controller 44 .
  • the number of controllers 44 can be one fewer than the number of computer-side switches 42 , which reduces cost.
  • the three controller-side switches 48 are provided so that regardless of which computer 20 is switched to the printer, the other three computer-side switches 42 can be connected to the three controllers 44 .
  • the sharing switch device 60 has the same number of controllers 64 as the number of computer-side switches 62 and computers 20 ; each controller 64 is directly connected to a corresponding computer-side switch 62 , and the controller-side switches 48 in FIG.
  • one controller 64 will not be performing any function when its corresponding computer 20 is connected to the printer 30 .
  • the operations of the USB busy detection circuit 66 and the master controller 64 in FIG. 6 are the same as the operations of the USB busy detection circuit 46 and the master controller 44 in the embodiment of FIG. 4 .
  • the switching operations of the computer-side switches 62 are similar to the switching operations of the computer-side switches 42 in FIG. 4 .
  • the same software 20 B as in FIG. 4 can be used in the computers 20 .
  • FIG. 7 summarizes the communication and switching process of the master controller 14 / 44 / 64 of the sharing switch device Oct. 40, 1960.
  • one or more buttons may be optionally provided on a housing of the sharing switch device Oct. 40, 1960 to perform manual switching.
  • the master controller receives a switching request (step S 71 )
  • step S 72 If the switching request is not received from the button (“N” in step S 72 ), the switching request is placed in the queue (step S 73 ).
  • the master controller then monitors whether a computer is currently printing and determines whether printing is finished (step S 74 ). As described earlier, this step is performed differently in the embodiment of FIG. 1 and the embodiments of FIGS. 4 and 6 .
  • the master controller retrieves the switching request at the front of the queue and initiates the switching operation to switch the next selected computer 20 to the printer 30 (step S 75 ).
  • the hardware/firmware of the sharing switch device and the software in the computers cooperate with each other to achieve fully automatic switching and printing.
  • the USB port monitor program is installed on the computers, the user can print to the printer without performing any extra switching steps.
  • the master controller of the sharing switch device implements a queue of switching requests, and can fulfill the switching requests on a first come, first served basis.
  • the firmware of the sharing switch device can perform switching and lock functions without delay.
  • the printer 30 may be any type of printer, such as ink jet printer or laser printer.
  • sharing switch devices in the above described embodiments use the USB protocol
  • other protocols such as IEEE 1394 may be used to interface with the computer and the printer, as long as the same protocol is used for the computer and the printer so that the sharing switch device does not need to transform the data format between the computer and the printer.
  • the sharing switch devices may be used to share other peripheral devices such as mass storage devices, scanners, etc. Accordingly, references to “spooling” or “printing” in the above description can be replaced with a more general term “data transfer”.
  • the “spooling finished” command can be broadly referred to as a “data transfer finished” command.
  • appropriate driver software in the computers may be modified to cooperate with the sharing switch device.

Abstract

A USB printer sharing switch device with automatic switching capabilities is provided for multiple computers to share a USB printer. The sharing switch device transfers USB data between the computers and the printer without changing the data format. The automatic switching function is performed by hardware and firmware of the sharing switch device in cooperation with driver software on the computers. In one implementation, the sharing switch device includes multiple USB device controllers corresponding to the multiple computers, and employs multiple switches and a USB hub so that each computer is connected to its corresponding controller and the computer that is currently connected to the printer can communicate with its controller while printing. The current computer transmits a spooling finished command to its controller when spooling is finished. After receiving the spooling finished command, the sharing switch device automatically switches the printer to another computer.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • This invention relates to a USB sharing switch device, and in particular, it relates to a USB sharing switch device which has automatic switching capabilities.
  • 2. Description of the Related Art
  • A sharing switch device is a device that connects multiple computers to one or more peripheral devices such as printers, scanners, storage devices, etc., which allows the computers to share the peripheral devices. The sharing switch device selectively connects one of the computers to a peripheral device. A USB sharing switch device uses the USB (Universal Serial Bus) protocol for communication between the computers and the peripheral devices. In a conventional USB sharing switch device, switching is done manually by either pressing a button on the sharing switch device or sending a command from the computer to the sharing switch device. The USB sharing switch device is connected to both the computers and the peripheral device by USB cables, and data in the USB format is transferred through the sharing switch device without changing their format.
  • Another type of devices for sharing a printer by multiple computers is a printer server. Typically, the computers are connected to the printer server via a network such as Ethernet, and the printer server is connected to the printer by a cable such as a USB cable. The printer server processes packet data received from the computers over the network and transform it into USB data for the printer.
  • SUMMARY OF THE INVENTION
  • The present invention is directed to a USB sharing switch device and related method that substantially obviate one or more of the problems due to limitations and disadvantages of the related art.
  • An object of the present invention is to provide a USB sharing switch device for printers which has automatic switching capabilities.
  • Additional features and advantages of the invention will be set forth in the descriptions that follow and in part will be apparent from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims thereof as well as the appended drawings.
  • To achieve these and other advantages and in accordance with the purpose of the present invention, as embodied and broadly described, the present invention provides a sharing switch device for coupling to a peripheral device and a plurality of computers, which includes: a plurality of computer-side switches each for coupling to a corresponding computer; a hub device having an upstream end coupled to the plurality of computer-side switches, a first downstream end for coupling to the peripheral device, and a second downstream end; a plurality of controllers each coupled to a corresponding computer-side switch, wherein each computer-side switch switches the corresponding computer to either the corresponding controller or the upstream end of the hub device; and a controller-side switch coupled to the plurality of controllers and to the second downstream end of the hub device for switching the second downstream end of the hub device to one of the controllers.
  • Specifically, the controllers control the switching of the computer-side switches and the controller-side switch to switch one of the computer-side switches corresponding to a selected one of the computers to the hub device, switch the other computer-side switches to their corresponding controllers, and switch the controller-side switch to the controller corresponding to the selected computer, whereby the selected computer is connected to the peripheral device via the corresponding computer-side switch and the hub device.
  • Further, a master controller of the sharing switch maintains a queue of switching requests received from the computers, and when the master controller receives a data transfer finished command from a computer, it retrieves a next switching request from the queue and initiates switching of the computer-side switches and the controller-side switch to connect a next computer to the peripheral device.
  • In another aspect, the present invention provides a sharing switch device for coupling to a peripheral device and a plurality of computers, which includes: a plurality of N computer-side switches each for coupling to a corresponding computer; a common connection line for coupling to the peripheral device, the common connection line being coupled to the N computer-side switches; a busy detection circuit coupled to the common connection line for detecting a busy condition of the common connection line and generating signals representing a detection result; a plurality of N−1 controllers; and a plurality of controller-side switches coupled to the N−1 controllers and to the N computer-side switches for switching any combination of N−1 out of the N computer-side switches to the N−1 controllers, wherein each computer-side switch switches the corresponding computer to either the common connection line or to one or more of the controller-side switches.
  • Specifically, the controllers control the switching of the computer-side switches and the controller-side switches to switch the computer-side switch corresponding to a selected computer to the common connection line, switch the other N−1 computer-side switches to the controller-side switches, and switch the controller-side switches to connect the other N−1 computer-side switches to the N−1 controllers, whereby the selected computer is connected to the peripheral device.
  • Further, a master controller of the sharing switch maintains a queue of switching requests received from the computers, the busy detection circuit transmits the signals representing the detection result to the master controller, and the master controller determines whether data transfer is finished based on the signals from the busy detection circuit; when it determines that data transfer is finished, the master controller retrieves a next switching request from the queue and initiates switching of the computer-side switches and the controller-side switches to connect a next computer to the peripheral device.
  • In another aspect, the present invention provides a method implemented in a peripheral device sharing system including a sharing switch device and a peripheral device and a plurality of computers coupled to the sharing switch device, where the method includes, on the sharing switch device: (a) connecting a currently selected computer to the peripheral device; (b) receiving switching requests from the plurality of computers; (c) placing the switching requests in a queue; (d) determining whether the data transfer between the currently selected computer and the peripheral device has finished; and (e) if it is determined that the currently selected computer has finished transferring data, retrieving a next switching request from the queue and connecting a next selected computer to the peripheral device based on the next switching request.
  • The method further includes, on each computer: (f) automatically transmitting a switching request to the sharing switch device when a program on the computer requests a data transfer to or from the peripheral device; (g) monitoring a connected status for the peripheral device; and (h) after determining that the peripheral device is connected, transferring data to or from the peripheral device.
  • It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of a system including a sharing switch device according to a first embodiment of the present invention.
  • FIG. 2 illustrates the operation of the sharing switch device of the first embodiment using a particular example.
  • FIG. 3 illustrates a process performed by a program on a computer connected to the sharing switch device of FIG. 1.
  • FIG. 4 is a block diagram of a system including a sharing switch device according to a second embodiment of the present invention.
  • FIG. 5 illustrates the operation of the sharing switch device of the second embodiment using a particular example.
  • FIG. 6 is a block diagram of a system including a sharing switch device according to a third embodiment of the present invention.
  • FIG. 7 illustrates a process performed by the master controller of the sharing switch device of FIGS. 1, 4 and 6.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • As required, a detailed illustrative embodiment of the present invention is disclosed herein. However, techniques, systems and operating structures in accordance with the present invention may be embodied in a wide variety of forms and modes, some of which may be quite different from those in the disclosed embodiment. Consequently, the specific structural and functional details disclosed herein are merely representative, yet in that regard, they are deemed to afford the best embodiment for purposes of disclosure and to provide a basis for the claims herein, which define the scope of the present invention. The following presents a detailed description of the preferred embodiment (as well as some alternative embodiments) of the present invention.
  • The present invention provides a USB printer sharing switch device with automatic switching capabilities, which allows multiple computers to conveniently share a USB printer. Both the computers and the printer are connected to the sharing switch device by USB cables. Preferably, the sharing switch device transfers data in the USB format without changing it from one format to another. The automatic switching function is performed by hardware and firmware of the sharing switch device in cooperation with driver software on the connected computers.
  • FIG. 1 illustrates a printer sharing system including a sharing switch device according to a first embodiment of the present invention. As shown in FIG. 1, the sharing switch device 10 is coupled to a printer 30 and a plurality of computers 20. Four computers 20 (PC-1 to PC-4) are shown in this example. The sharing switch device 10 includes a plurality of computer-side switches 12 each coupled to a corresponding computer 20 and a plurality of USB device controllers 14 each coupled to a corresponding computer-side switch 12. Four computer-side switches 12 (SW-1 to SW-4) and four USB device controllers 14 (Contr-1 to Contr-4) are shown in this example, corresponding to the four computers (PC-1 to PC-4). Each computer-side switch 14 is also coupled to an upstream port of a common USB hub 16, such that the computer-side switch 14 switches the corresponding computer 20 to either the common USB hub 16 or the corresponding controller 14. The sharing switch device 10 additionally includes a controller-side switch 18 which is coupled at one side to a first downstream port of the USB hub 16 and at the other side to each of the controllers 14, such that the switch 18 switches the USB hub 16 to one of the controllers 14. The printer 30 is coupled to a second downstream port of the USB hub 16.
  • The USB device controllers 14 may be low speed device controllers. In one implementation, they are USB HID Class (Human Interface Device) device controllers, and the computers 20 use their default HID driver to interact with the controllers 14. The plurality of controllers 14 are coupled together and communicate with each other using a master-slave model, such that one of the controllers is a master and the others are slaves. The connection lines among the controllers 14 are not shown in FIG. 1 to avoid overcrowding. One or more of the controllers 14 are programmed to control the switching operation of the computer-side switches 12 and the controller-side switch 18. In principle, one of the USB device controllers 14, such as the master controller, can control the switching operation of all of the switches 12 and 18. In actual implementation, however, the number of switches that can be controlled by one controller 14 may be limited due to the limited number of pins on the controller, especially when relatively inexpensive USB device controller chips are used. Therefore, the master controller and one or more slave controllers 14 may cooperate to perform the functions of controlling the switches 12 and 18. In this respect, when the disclosure or the claims refer to the “device controllers” controlling the switching of the switches, it should be understood that this does not mean all device controllers must be involved. The control signals are transmitted between the controllers 14 and the switches 12 and 18 they control via desiccated control lines, which are not shown in FIG. 1 to avoid overcrowding.
  • Each computer 20 is loaded with a special USB port monitor program 20A, which cooperates with the spooler service of the computer 20 and with the sharing switch device 10 to accomplish spooling of print data to the shared printer 30, as will be described in more detail later.
  • The operation of the sharing switch device 10 is described using a particular example with reference to FIG. 2. In this example, the fourth computer PC-4 is currently connected to the printer 30 and spooling print data to the printer (step S21). The computer PC-4 is referred to as the currently selected computer. In this state, the fourth computer-side switch SW-4 corresponding to the fourth computer PC-4 is switched to the USB hub 16. Data is communicated between the fourth computer PC-4 and the printer 30 via the fourth computer-side switch SW-4 and the USB hub 16. The other computer-side switches 12 (SW-1, SW-2 and SW-3) are switched to the corresponding controllers 14 (Contr-1, Contr-2 and Contr-3), respectively. The controller-side switch 18 is switched to the fourth controller Control-4 corresponding to the fourth computer PC-4. Thus, each computer 20 is connected to its corresponding controller 14, either via the corresponding computer-side switches 12 in the case of the non-selected computers PC-1, PC-2 and PC-3 or via the corresponding computer-side switches 12, the USB hub 16 and the controller-side switch 18 in the case of the currently selected computer PC4. As a result, each computer 20 can communicate commands with its corresponding controller 14.
  • When the fourth computer PC-4 finishes spooling print data, it transmits a “spooling finished” command to the corresponding controller Contr-4 via the fourth computer-side switch SW-4, the USB hub 16 and the controller-side switch 18 (step S22). The fourth controller Contr-4 communicates the spooling finished command to the master controller (assuming in this example the master controller is the first controller Contr-1). The master controller (Contr-1) maintains a queue of switching requests from the various computers 20. After receiving the spooling finished command from the fourth computer, the master controller retrieves the next switching request from the queue (step S23). If the queue is empty, the master controller waits to receive the next switching request from a computer and puts it in the queue. In this example, assume that the next switching request in the queue is a request from the first computer PC-1 (referred to as the next selected computer). The master controller and the slave controllers 14 (under the instruction of the master controller) perform appropriate control functions to switch the printer 30 from the currently selected computer PC-4 to the next selected computer PC-1.
  • Specifically, the fourth computer-side switch SW-4 is controlled to switch the fourth computer PC-4 to the fourth controller Contr-4 (i.e. it is no longer switched to the USB hub 16) (step S24). The first computer-side switch SW-1 is controlled to switch to the USB hub 16 (step S25). The controller-side switch 18 is controlled to switch to the first controller Contr-1 (i.e. the controller corresponding to the next selected computer) (step S25). The order of these switching steps S24 to S26 is not critical. The second and third computer-side switches SW-2 and SW-3 need not perform any action because their switching condition is unchanged.
  • After these switching operations, the next selected computer PC-1 is connected to the printer 30 via its corresponding computer-sided switch SW-1 and the USB hub 16. The next selected computer PC-1 is also connected to its corresponding controller Contr-1 via its corresponding computer-side switch SW-1, the USB hub 16 and the controller-side switch 18. The non-selected computers 20 (PC-2, PC-3 and PC-4) are connected to their corresponding controllers 14 (Contr-2, Contr-3 and Contr-4) via the corresponding computer-side switches 12 (SW-2, SW-3 and SW-4). The next selected computer PC-1 can now print to the printer 30 (step S27). When PC-1 finished printing, the process is repeated for the next switching request.
  • In the above example, the master controller is one of the USB device controllers 14. Alternatively, the master controller may be a separate controller (i.e. not one of the four USB device controllers 14), and the four USB device controllers 14 are slave controllers. Further, the four USB device controllers 14 may be implemented as one control circuit (such as an ASIC, FPGA, etc.) that includes the functionality of four USB device controllers. The actual implementation is not important, as long as there are four USB device controllers corresponding to the four computers PC-1 to PC-4.
  • FIG. 3 illustrates a process performed by the USB port monitor program 20A installed on the computer 20. Within the Windows printing architecture, the USB port monitor program 20A is located between the Spooler and the USB Driver Stack, both provided by Windows. For example, the USB port monitor 20A can replace the USB port monitor provided by Windows (Usbmon.dll).
  • As shown in FIG. 3, when the port monitor 20A receives a spooling request from the spooler (step S31), the port monitor transmits a switching request to the sharing switch device 10 (step S32). The switching request is transmitted automatically without requiring the user of the computer to issue a switching command. From the user's standpoint, only a print command is required. As mentioned earlier, the sharing switch device 10 maintains a queue of switching requests received from the computers 20, and automatically performs switching operations to switch the printer 30 from one computer 20 to another when appropriate. Thus, after transmitting the switching request, the port monitor 20A monitors the connection status of the sharing switch device 10 to determine whether the sharing switch device has connected the printer 30 to this particular computer (step S33). For example, the port monitor 20A may monitor the device occupied status of the computer, where an “occupied” status means the connection to the printer is established. The monitoring step continues (“N” in step S34) until the sharing switch device 10 connects this computer 20 to the printer 30 (“Y” in step S34).
  • If it is determined that the connection has been established (“Y” in step S34), the port monitor 20A sends a “lock” command to the sharing switch device 10, then confirms the switch locked status by receiving a response from sharing switch device (step S35). Step S35 is optional, because the sharing switch 10 may be designed so that it will automatically lock the connection after switching, and will unlock it only after a spooling finished command is received from the currently selected computer. Then, the port monitor 20A informs the spooler to start spooling data (step S36). The spooling process is carried out in a continuous manner (step S37). More specifically, the port monitor 20A receives print data from the spooler and transfers it to the printer 30 via the sharing switch device 10, and receives printer status information from the printer 30 via the sharing switch device 10 and transfers it to the spooler. After the spooling process is successfully completed, the port monitor 20A receives a notification from the spooler, and transmits a spooling finished command to the sharing switch device 10 (step S38).
  • As mentioned earlier, once the printer 30 is switched to a particular computer (the currently selected computer) 20, the sharing switch device 10 will not switch the printer to another computer unless a spooling finished command is received from the currently selected computer. After the switching steps S24 to S26 (see FIG. 2), if the sharing switch receives a lock command from the port monitor 20A (see step S35 in FIG. 3), it sends a lock confirmed signal back to the port monitor. Thus, spooling by the currently selected computer will not be interrupted. This ensures that spooling will be completed even when abnormal conditions occur at the printer (e.g., paper jam, paper tray empty, etc.).
  • As mentioned earlier, the computer 20 uses its default USB HID class device driver to interact with the controllers 14 of the sharing switch device 10. Thus, other than the port monitor 20A described above, the computer does not need to be loaded with other special programs.
  • FIG. 4 illustrates a sharing switch device according to a second embodiment of the present invention. As shown in FIG. 4, the sharing switch device 40 is coupled to a printer 30 and a plurality of computers 20 (four computers PC-1 to PC-4 are shown in this example). The sharing switch device 40 includes a plurality of computer-side switches 42 (SW-1 to SW-4 in this example) each coupled to a corresponding computer 20, and a plurality of USB device controllers 44. In the example shown in FIG. 4, three USB device controllers 44 (Contr-1 to Contr-3) are provided. In other words, the number of USB device controllers 44 is one fewer than the number (denoted “N”) of computer-side switches 42. In the illustrated example, the three USB device controllers 44 are coupled by three corresponding controller-side switches 48 (SW-5 to SW-7) to the four computer-side switches 42 in a way such that the three controllers 44 can be switched to any three out of the four computer-side switches SW-1 to SW-4. Specifically, in the illustrated example, the first controller-side switch SW-5 switches the first controller Contro-1 to either the first computer-side switch SW-1 or the next computer-side switch SW-2, the second controller-side switch SW-6 switches the second controller Contro-2 to either the second computer-side switch SW-2 or the next computer-side switch SW-3, etc.
  • Each computer-side switch 42 is also coupled to the printer 30 via a common connection line 49, such that the computer-side switch 42 switches the corresponding computer 20 to either the printer 30 or one of the controller-side switched 48.
  • As in the first embodiment in FIG. 1, the USB device controllers 44 in FIG. 4 may be implemented as USB HID Class device controllers and the computers 20 may use their default HID drivers to interact with the controllers 44. The plurality of controllers 44 are connected together (connection lines not shown in FIG. 4) and communicate with each other using a master-slave model. The master controller and one or more slave controllers 44 control the switching operation of the computer-side switches 42 and the controller-side switches 48. Again, the desiccated control lines connecting the controllers 44 and the switches they control are not shown in FIG. 4 to avoid overcrowding.
  • The sharing switch device 40 also includes a USB busy detection circuit 46 coupled to the common connection line 49 between the computer-side switches 42 and the printer 30. The USB busy detection circuit 46 monitors the signals being transmitted on the connection line 49 to detect whether the line is busy, i.e., whether a computer 20 is currently spooling data to the printer 30. The USB busy detection circuit 46 transmits signals regarding the detection result to one of the controllers 44 (e.g. the master controller) over a control line (not shown in FIG. 4).
  • Each computer 20 is loaded with a special USB port monitor program 20B, which cooperates with the spooler service of the computer and with the sharing switch device 40 to accomplish spooling of print data to the shared printer 30, as will be described in more detail later.
  • The operation of the sharing switch device 40 of FIG. 4 is described using a particular example with reference to FIG. 5. In this example, the fourth computer PC-4 is currently connected to the printer 30 and spooling data to the printer (it is referred to as the currently selected computer) (step S51). In this state, the fourth computer-side switch SW-4 corresponding to the fourth computer PC-4 is switched to the printer 30 via the common connection line 49. Data is communicated between the fourth computer PC-4 and the printer 30 via the fourth computer-side switch SW-4. The other three computer-side switches 12 (SW-1, SW-2 and SW-3) are switched to the three controller-side switches 48. The three controller-side switches 48 are switched such that each computer-side switches 48 for a non-selected computer is connected to a USB device controller 44. Specifically, in this example, the first controller-side switch SW-5 switches the first controller Contr-1 to the first computer-side switch SW-1, the second controller-side switch SW-6 switches the second controller Contr-2 to the second computer-side switch SW-2, and the third controller-side switch SW-7 switches the third controller Contr-3 to the third computer-side switch SW-3. As a result, the three non-selected computers 20 (PC-1, PC-2 and PC-3) are connected to the three controllers 44 (Contro-1, Contr-2 and Contr-3) and can communicate commands with the corresponding controllers 44.
  • When a computer is spooling data, the sharing switch device 40 continuously determines whether spooling has finished (step S52). In the embodiment of FIG. 4, the currently selected computer 20 (PC-4 in this example) is not connected to any USB device controller 44 when that computer is spooling data to the printer. Thus, the currently selected computer 20 is unable to send a spooling finished command to the sharing switch device 40. The function of determining whether spooling has finished is performed by the USB busy detection circuit 46 either alone or in cooperation with the master controller 44. To ensure that spooling is not interrupted prematurely, the sharing switch device 40 implements a delay mechanism so that a predetermined time period of inaction on the connection line 49 must be detected before the printer can be switched to another computer. In a preferred embodiment, the USB busy detection circuit 46 transmits busy or not-busy signals to the master controller 44; for example, it transmits a new signal every time the line condition changes from busy to not-busy or vice versa. Based on such signals, the master controller 44 uses its timer to monitor how long the line has been in the not-busy state, and determines that spooling has finished after a predetermined time period when the line has been not-busy. In an alternative embodiment, the USB busy detection circuit 46 has a timer and can determine how long the line has been not-busy, and transmits a spooling finished signal to the master controller 44 after a predetermined time period when the line has been not-busy.
  • The master controller 44 maintains a queue of switching requests from the various computers 20. After it is determined that spooling by the currently selected computer has finished, the master controller retrieves the next switching request from the queue (step S53). If the queue is empty, the master controller waits to receive the next switching request from a computer and puts it in the queue. In this example, assume that the next switching request in the queue is a request from the first computer PC-1 (referred to as the next selected computer). The master controller and the slave controllers 44 (under the instruction of the master controller) perform appropriate control functions to switch the printer 30 from the fourth computer PC-4 to the first computer PC-1.
  • Specifically, in this example, the fourth computer-side switch SW-4 is controlled to switch the fourth computer PC-4 to the third controller-side switch SW-7 (i.e. PC-4 is no longer switched to the printer 30) (step S54). The first computer-side switch SW-1 is controlled to switch the first computer PC-1 to the printer 30 (step S55). Further, the third controller-side switch SW-7 is controlled to switch to the fourth computer-side switch SW-4; the second controller-side switch SW-6 is controlled to switch to the third computer-side switch SW-3; and the first controller-side switch SW-5 is controlled to switch to the second computer-side switch SW-2 (step S56). The order of these switching steps S54 to S56 is not critical. The second and third computer-side switches SW-2 and SW-3 need not perform any action because their switching condition is unchanged.
  • After these switching operations, the next selected computer PC-1 is connected to the printer 30 via its corresponding computer-sided switch SW-1, and the non-selected computers 20 (PC-2, PC-3 and PC-4) are connected to the controllers 44 (Contr-2, Contr-3 and Contr-4) via the corresponding computer-side switches 42 (SW-2, SW-3 and SW-4) and the three controller-side switches 48. The next selected computer PC-1 can now print to the printer 30 (step S57). When PC-1 finished printing, the process is repeated for the next switching request.
  • The process performed by the port monitor program 20B loaded on the computers 20 in the second embodiment shown in FIG. 4 is similar to the process shown in FIG. 3 performed by the port monitor program 20A in the first embodiment shown in FIG. 1, with a number of differences as explained below. The first difference is that in step S33, the port monitor 20B determines the printer connection status by polling the HID (the controller 44) to determine if the HID connection is lost. The lost of the HID connection means the printer connection is established. The second difference is that the port monitor 20B does not perform step S35 (send lock command and confirm lock status). The third difference is that the port monitor 20B does not perform step S38 (transmit a spooling finished command to the USB sharing switch device). As mentioned earlier, the USB sharing switch device 40 uses a USB busy detection circuit to determine whether spooling by a computer is finished.
  • As mentioned earlier, once the printer 30 is switched to a particular computer (the currently selected computer) 20, the sharing switch device 40 will not switch the printer to another computer unless the USB busy detection circuit 46 or the master controller determines that spooling has finished. Thus, spooling by the currently selected computer will generally not be interrupted, although such interruption is not completely prevented.
  • In the sharing switch device 40 shown in FIG. 4, if a computer 20 is connected to the printer 30 by the corresponding computer-side switch 42, the computer is not connected to a controller 44. The number of controllers 44 can be one fewer than the number of computer-side switches 42, which reduces cost. The three controller-side switches 48 are provided so that regardless of which computer 20 is switched to the printer, the other three computer-side switches 42 can be connected to the three controllers 44. In a variation of the second embodiment, shown in FIG. 6, the sharing switch device 60 has the same number of controllers 64 as the number of computer-side switches 62 and computers 20; each controller 64 is directly connected to a corresponding computer-side switch 62, and the controller-side switches 48 in FIG. 4 are not necessary. In such an alternative structure, one controller 64 will not be performing any function when its corresponding computer 20 is connected to the printer 30. The operations of the USB busy detection circuit 66 and the master controller 64 in FIG. 6 are the same as the operations of the USB busy detection circuit 46 and the master controller 44 in the embodiment of FIG. 4. The switching operations of the computer-side switches 62 are similar to the switching operations of the computer-side switches 42 in FIG. 4. The same software 20B as in FIG. 4 can be used in the computers 20.
  • FIG. 7 summarizes the communication and switching process of the master controller 14/44/64 of the sharing switch device Oct. 40, 1960. Although not shown in FIGS. 1, 4 and 6, one or more buttons may be optionally provided on a housing of the sharing switch device Oct. 40, 1960 to perform manual switching. When the master controller receives a switching request (step S71), it determines whether the switching request is received from the button on the sharing switch device Oct. 40, 1960 or from a computer 20 (step S72, optional). If the switching request is entered from a button, the sharing switch device Oct. 40, 1960 will initiate the switching operation only if the printer is not currently locked by another computer, otherwise the request is ignored (step S76). If the switching request is not received from the button (“N” in step S72), the switching request is placed in the queue (step S73). The master controller then monitors whether a computer is currently printing and determines whether printing is finished (step S74). As described earlier, this step is performed differently in the embodiment of FIG. 1 and the embodiments of FIGS. 4 and 6. When the printing is finished, the master controller retrieves the switching request at the front of the queue and initiates the switching operation to switch the next selected computer 20 to the printer 30 (step S75).
  • Using the sharing switch device described herein, the hardware/firmware of the sharing switch device and the software in the computers cooperate with each other to achieve fully automatic switching and printing. Once the USB port monitor program is installed on the computers, the user can print to the printer without performing any extra switching steps. The master controller of the sharing switch device implements a queue of switching requests, and can fulfill the switching requests on a first come, first served basis. In addition, using the embodiment of FIG. 1, the firmware of the sharing switch device can perform switching and lock functions without delay.
  • The printer 30 may be any type of printer, such as ink jet printer or laser printer.
  • Although the sharing switch devices in the above described embodiments use the USB protocol, other protocols such as IEEE 1394 may be used to interface with the computer and the printer, as long as the same protocol is used for the computer and the printer so that the sharing switch device does not need to transform the data format between the computer and the printer.
  • Although a printer is used in the above described embodiments as an example, the sharing switch devices may be used to share other peripheral devices such as mass storage devices, scanners, etc. Accordingly, references to “spooling” or “printing” in the above description can be replaced with a more general term “data transfer”. For example, the “spooling finished” command can be broadly referred to as a “data transfer finished” command. In the case of these other types of peripheral devices, appropriate driver software in the computers may be modified to cooperate with the sharing switch device.
  • It will be apparent to those skilled in the art that various modification and variations can be made in the sharing switch device and method of the present invention without departing from the spirit or scope of the invention. Thus, it is intended that the present invention cover modifications and variations that come within the scope of the appended claims and their equivalents.

Claims (23)

1. A sharing switch device for coupling to a peripheral device and a plurality of computers, comprising:
a plurality of computer-side switches each for coupling to a corresponding computer;
a hub device having an upstream end coupled to the plurality of computer-side switches, a first downstream end for coupling to the peripheral device, and a second downstream end;
a plurality of device controllers each coupled to a corresponding computer-side switch, wherein each computer-side switch switches the corresponding computer to either the corresponding device controller or the upstream end of the hub device; and
a controller-side switch coupled to the plurality of device controllers and to the second downstream end of the hub device for switching the second downstream end of the hub device to one of the device controllers.
2. The sharing switch device of claim 1, wherein the device controllers are USB (Universal Serial Bus) device controllers, and wherein the hub device is a USB hub.
3. The sharing switch device of claim 2, wherein the device controllers are USB HID Class (Human Interface Device) device controllers.
4. The sharing switch device of claim 1, wherein the computer-side switches transfer data between the computers and the hub device without changing its format.
5. The sharing switch device of claim 1, wherein the device controllers control the switching of the computer-side switches and the controller-side switch to switch one of the computer-side switches corresponding to a selected one of the computers to the hub device, switch the other computer-side switches to their corresponding device controllers, and switch the controller-side switch to the device controller corresponding to the selected computer, whereby the selected computer is connected to the peripheral device via the corresponding computer-side switch and the hub device.
6. The sharing switch device of claim 1, wherein one of the device controllers is a master device controller and the other device controllers are slave device controllers controlled by the master device controller.
7. The sharing switch device of claim 6,
wherein the slave device controllers transfer switching requests and data transfer finished commands received from their corresponding computers to the master device controller,
wherein the master device controller maintains a queue of switching requests received from its corresponding computer and from the slave device controllers, and
wherein when the master device controller receives a data transfer finished command from its corresponding computer or from one of the slave device controllers, it retrieves a next switching request from the queue and initiates switching of the computer-side switches and the controller-side switch to connect a next computer to the peripheral device.
8. The sharing switch device of claim 7, wherein the master device controller initiates switching of the computer-side switches and the controller-side switch only when it receives a data transfer finished command.
9. In a peripheral device sharing system including a sharing switch device of claim 1 and a peripheral device and a plurality of computers coupled to the sharing switch device, the peripheral device being a printer, a port monitor program installed on each computer comprising:
first program code causing the computer to automatically transmit a switching request to the sharing switch device when the port monitor program receives a spooling request from a spooler program on the computer;
second program code causing the computer to monitor a printer connected status and to initiate spooling to the printer after detecting that the printer is connected; and
third program code causing the computer to transmit a data transfer finished command to the sharing switch device when spooling to the printer is finished.
10. A sharing switch device for coupling to a peripheral device and a plurality of computers, comprising:
a plurality of N computer-side switches each for coupling to a corresponding computer;
a common connection line for coupling to the peripheral device, the common connection line being coupled to the N computer-side switches;
a busy detection circuit coupled to the common connection line for detecting a busy condition of the common connection line and generating signals representing a detection result;
a plurality of N−1 device controllers; and
a plurality of controller-side switches coupled to the N−1 device controllers and to the N computer-side switches for switching any combination of N−1 out of the N computer-side switches to the N−1 device controllers,
wherein each computer-side switch switches the corresponding computer to either the common connection line or to one or more of the controller-side switches.
11. The sharing switch device of claim 10, wherein the device controllers are USB (Universal Serial Bus) device controllers.
12. The sharing switch device of claim 10, wherein the computer-side switches transfer data between the computers and the common connection line without changing its format.
13. The sharing switch device of claim 10, wherein the device controllers control the switching of the computer-side switches and the controller-side switches to switch the computer-side switch corresponding to a selected computer to the common connection line, switch the other N−1 computer-side switches to the controller-side switches, and switch the controller-side switches to connect the other N−1 computer-side switches to the N−1 device controllers, whereby the selected computer is connected to the peripheral device.
14. The sharing switch device of claim 10, wherein one of the device controllers is a master device controller and the other device controllers are slave device controllers controlled by the master device controller.
15. The sharing switch device of claim 14,
wherein the slave device controllers transfer switching requests received from their connected computers to the master device controller,
wherein the master device controller maintains a queue of switching requests received from its connected computer and from the slave device controllers,
wherein the busy detection circuit transmits the signals representing the detection result to the master device controller,
wherein the master device controller determines whether data transfer is finished based on the signals from the busy detection circuit, and when it determines that data transfer is finished, the master device controller retrieves a next switching request from the queue and initiates switching of the computer-side switches and the controller-side switches to connect a next computer to the peripheral device.
16. The sharing switch device of claim 15, wherein the signals transmitted by the busy detection circuit indicate that data transfer is finished, and wherein the busy detection circuit transmits such signals to the master device controller after detecting a predetermined time period of inaction on the common connection line.
17. The sharing switch device of claim 15, wherein the signals transmitted by the busy detection circuit indicate whether the common connection line is busy or not-busy, and wherein the master device controller determines that data transfer is finished after a predetermined time period of receiving only not-busy signals from the busy detection circuit.
18. In a peripheral device sharing system including a sharing switch device of claim 1 and a peripheral device and a plurality of computers coupled to the sharing switch device, the peripheral device being a printer, a port monitor installed on each computer comprising:
first program code causing the computer to automatically transmit a switching request to the sharing switch device when the port monitor receives a spooling request from a spooler program on the computer; and
second program code causing the computer to monitor a printer connected status and to initiate spooling to the printer after detecting that the printer is connected.
19. In a peripheral device sharing system including a sharing switch device and a peripheral device and a plurality of computers coupled to the sharing switch device, a method implemented on the sharing switch device and on each computer, comprising:
on the sharing switch device:
(a) connecting a currently selected computer to the peripheral device;
(b) receiving switching requests from the plurality of computers;
(c) placing the switching requests in a queue;
(d) determining whether the data transfer between the currently selected computer and the peripheral device has finished; and
(e) if it is determined that the currently selected computer has finished transferring data, retrieving a next switching request from the queue and connecting a next selected computer to the peripheral device based on the next switching request.
20. The method of claim 19, further comprising:
on each computer:
(f) automatically transmitting a switching request to the sharing switch device when a program on the computer requests a data transfer to or from the peripheral device;
(g) monitoring a connected status for the peripheral device; and
(h) after determining that the peripheral device is connected, transferring data to or from the peripheral device.
21. The method of claim 20, further comprising:
on each computer:
(i) after data transfer in step (h) is finished, transmitting a data transfer finished command to the sharing switch device.
22. The method of claim 21, wherein in step (d), the sharing switch device determines that the data transfer has finished after receiving a data transfer finished command from the currently selected computer.
23. The method of claim 19, wherein in step (d) the sharing switch device determines whether the data transfer has finished by detecting whether a signal line connected to the peripheral device is busy or not.
US12/268,974 2008-11-11 2008-11-11 USB sharing switch with automatic switching capabilities Active 2028-11-29 US7886106B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US12/268,974 US7886106B2 (en) 2008-11-11 2008-11-11 USB sharing switch with automatic switching capabilities
TW098107683A TWI386805B (en) 2008-11-11 2009-03-10 Usb sharing switch with automatic switching capabilities
CN2009101380384A CN101739377B (en) 2008-11-11 2009-05-04 Usb sharing switch with automatic switching capabilities
US12/981,402 US8352668B2 (en) 2008-11-11 2010-12-29 USB sharing switch with automatic switching capabilities

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/268,974 US7886106B2 (en) 2008-11-11 2008-11-11 USB sharing switch with automatic switching capabilities

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/981,402 Continuation US8352668B2 (en) 2008-11-11 2010-12-29 USB sharing switch with automatic switching capabilities

Publications (2)

Publication Number Publication Date
US20100122010A1 true US20100122010A1 (en) 2010-05-13
US7886106B2 US7886106B2 (en) 2011-02-08

Family

ID=42166224

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/268,974 Active 2028-11-29 US7886106B2 (en) 2008-11-11 2008-11-11 USB sharing switch with automatic switching capabilities
US12/981,402 Active US8352668B2 (en) 2008-11-11 2010-12-29 USB sharing switch with automatic switching capabilities

Family Applications After (1)

Application Number Title Priority Date Filing Date
US12/981,402 Active US8352668B2 (en) 2008-11-11 2010-12-29 USB sharing switch with automatic switching capabilities

Country Status (3)

Country Link
US (2) US7886106B2 (en)
CN (1) CN101739377B (en)
TW (1) TWI386805B (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100125686A1 (en) * 2008-11-14 2010-05-20 Genesys Logic, Inc. Electronic apparatus having switching unit
US20100312926A1 (en) * 2009-06-03 2010-12-09 Silicon Storage Technology, Inc. Switch for a two way connection between a removable card, a mobile wireless communication device, or a computer
US20110113166A1 (en) * 2009-11-06 2011-05-12 Cpo Technologies Corporation Method and Apparatus of USB 3.0 Based Computer, Console and Peripheral Sharing
US20110161428A1 (en) * 2009-12-28 2011-06-30 Ezpnp Technologies Corp. Two-way data and resources sharing method
US20110216349A1 (en) * 2010-03-03 2011-09-08 Xerox Corporation Delayed printing from a computerized device
CN102566949A (en) * 2012-01-05 2012-07-11 石家庄科林电气股份有限公司 Shared printing method of printers for intelligent devices in transformer substation
EP2610733A3 (en) * 2011-12-30 2014-01-15 Samsung Electronics Co., Ltd. Image forming apparatus connectable to multiple hosts and method of controlling image forming jobs of the image forming apparatus
EP2705431A2 (en) * 2011-05-06 2014-03-12 Belkin International, Inc. Keyboard-video-mouse system and method of providing and using the same
FR2997775A1 (en) * 2012-11-06 2014-05-09 Renault Sa Device for evaluating whether e.g. radio of car is compatible with e.g. apparatuses, has switching elements successively connecting root connector to secondary connectors by switching independent of power and data tracks
TWI647571B (en) * 2017-09-20 2019-01-11 旺玖科技股份有限公司 Usb hub
US20190045654A1 (en) * 2017-08-07 2019-02-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Server having a dual-mode serial bus port enabling selective access to a baseboard management controller
TWI685752B (en) * 2017-09-20 2020-02-21 旺玖科技股份有限公司 Usb hub
DE102019126059A1 (en) * 2019-09-26 2021-04-01 Computer Mack GmbH USB automatic switch

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013178743A (en) * 2012-01-31 2013-09-09 Ricoh Co Ltd Machine management device, machine management system, and program
KR101827704B1 (en) * 2016-04-12 2018-03-22 현대자동차주식회사 Usb multi-host device, vehicle having the same and a method of usb multi-host device
CN108228509B (en) * 2018-01-04 2020-06-09 中科创达软件股份有限公司 USB interface switching device and electronic equipment
US11176071B2 (en) 2018-11-09 2021-11-16 Cypress Semiconductor Corporation USB signal switch circuitry using standard USB hub and method of operation the same
CN115391255B (en) * 2022-10-27 2023-01-31 北京恩威特科技有限公司 High-availability USB equipment sharing server

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280585A (en) * 1990-09-28 1994-01-18 Hewlett-Packard Company Device sharing system using PCL macros
US5638521A (en) * 1992-10-12 1997-06-10 Leunig Gmbh Apparatus using a parallel interface for data transfer between a plurality of computers, as well as for transfer of data from computers to shared peripheral devices
US20010032280A1 (en) * 1996-11-07 2001-10-18 Hitachi, Ltd. Interface switching apparatus and switching control method
US6532512B1 (en) * 1998-08-28 2003-03-11 Matsushita Electric Industrial Co., Ltd. Selectively coupling an upstream terminal to a USB hub circuit in accordance with a video sync signal
US6546450B1 (en) * 1999-12-22 2003-04-08 Intel Corporation Method and apparatus for sharing a universal serial bus device among multiple computers by switching
US6600739B1 (en) * 1999-06-07 2003-07-29 Hughes Electronics Corporation Method and apparatus for switching among a plurality of universal serial bus host devices
US20040075638A1 (en) * 2002-10-17 2004-04-22 Hsu Han USB based on-line on-screen display and method for switching between microprocessor based electronic devices
US20040186943A1 (en) * 2003-03-18 2004-09-23 Tzyy-Jenq Lou Resource sharing apparatus
US20040268012A1 (en) * 2003-06-13 2004-12-30 Ferguson Patrick Lee User resource sharing through the USB interface
US6934793B2 (en) * 2002-06-03 2005-08-23 Action Star Enterprise Co., Ltd. USB sharer for use with an external USB device
US20050216620A1 (en) * 2004-03-26 2005-09-29 Francisc Sandulescu KVM and USB peripheral switch
US20070245058A1 (en) * 2006-04-14 2007-10-18 Henry Wurzburg Method for automatically switching usb peripherals between usb hosts
US7340556B2 (en) * 2001-11-09 2008-03-04 Aten International Co., Ltd. Signal switch for console and peripheral devices
US20090106474A1 (en) * 2006-04-14 2009-04-23 Bohm Mark R Multi-Host USB Device
US20090254682A1 (en) * 2008-04-02 2009-10-08 June-On Co., Ltd. Automatic mapping and updating computer switching device
US20090257089A1 (en) * 2008-04-10 2009-10-15 Action Star Enterprise Co., Ltd. Method and System for Managing Print Jobs for a Shared Printer
US20100077089A1 (en) * 2008-09-19 2010-03-25 Pfu Limited Scanner sharing device
US20100077126A1 (en) * 2008-09-23 2010-03-25 Aten International Co., Ltd. USB Matrix Switch System

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1105768A (en) * 1994-01-17 1995-07-26 北京联想计算机集团公司 Built-in multiple parallel interface shared device for printing machine
GB9909849D0 (en) * 1999-04-28 1999-06-23 Adder Tech Ltd Usb switching device and system
US7502878B1 (en) * 2003-06-27 2009-03-10 Cypress Semiconductor Corporation Method and apparatus for switching USB devices between multiple USB hosts
US20060123182A1 (en) * 2004-12-07 2006-06-08 Francisc Sandulescu Distributed KVM and peripheral switch
US20070255869A1 (en) * 2006-04-27 2007-11-01 Microsoft Corporation Device evaluation using automatic connection path reconfiguration
TW200825839A (en) * 2006-12-13 2008-06-16 Tangtop Technology Co Ltd USB auto switch
CN100568202C (en) * 2007-01-23 2009-12-09 福建升腾资讯有限公司 Control method for sharing server by peripheral equipments of computer
US7769940B2 (en) * 2008-02-13 2010-08-03 Belkin International, Inc. Switching device configured to couple a first computer to a first peripheral device and one or more second peripheral devices and method of manufacturing same
TW200935226A (en) * 2008-02-15 2009-08-16 Alcor Micro Corp KVM switch and operation method thereof

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280585A (en) * 1990-09-28 1994-01-18 Hewlett-Packard Company Device sharing system using PCL macros
US5638521A (en) * 1992-10-12 1997-06-10 Leunig Gmbh Apparatus using a parallel interface for data transfer between a plurality of computers, as well as for transfer of data from computers to shared peripheral devices
US20010032280A1 (en) * 1996-11-07 2001-10-18 Hitachi, Ltd. Interface switching apparatus and switching control method
US6532512B1 (en) * 1998-08-28 2003-03-11 Matsushita Electric Industrial Co., Ltd. Selectively coupling an upstream terminal to a USB hub circuit in accordance with a video sync signal
US6600739B1 (en) * 1999-06-07 2003-07-29 Hughes Electronics Corporation Method and apparatus for switching among a plurality of universal serial bus host devices
US6546450B1 (en) * 1999-12-22 2003-04-08 Intel Corporation Method and apparatus for sharing a universal serial bus device among multiple computers by switching
US7340556B2 (en) * 2001-11-09 2008-03-04 Aten International Co., Ltd. Signal switch for console and peripheral devices
US7127546B2 (en) * 2002-06-03 2006-10-24 Action Star Enterprise Co., Ltd. Simplified USB sharer having a busyness detection circuit
US6934793B2 (en) * 2002-06-03 2005-08-23 Action Star Enterprise Co., Ltd. USB sharer for use with an external USB device
US20040075638A1 (en) * 2002-10-17 2004-04-22 Hsu Han USB based on-line on-screen display and method for switching between microprocessor based electronic devices
US20040186943A1 (en) * 2003-03-18 2004-09-23 Tzyy-Jenq Lou Resource sharing apparatus
US20040268012A1 (en) * 2003-06-13 2004-12-30 Ferguson Patrick Lee User resource sharing through the USB interface
US20050216620A1 (en) * 2004-03-26 2005-09-29 Francisc Sandulescu KVM and USB peripheral switch
US20070245058A1 (en) * 2006-04-14 2007-10-18 Henry Wurzburg Method for automatically switching usb peripherals between usb hosts
US20090106474A1 (en) * 2006-04-14 2009-04-23 Bohm Mark R Multi-Host USB Device
US20090254682A1 (en) * 2008-04-02 2009-10-08 June-On Co., Ltd. Automatic mapping and updating computer switching device
US20090257089A1 (en) * 2008-04-10 2009-10-15 Action Star Enterprise Co., Ltd. Method and System for Managing Print Jobs for a Shared Printer
US20100077089A1 (en) * 2008-09-19 2010-03-25 Pfu Limited Scanner sharing device
US20100077126A1 (en) * 2008-09-23 2010-03-25 Aten International Co., Ltd. USB Matrix Switch System

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836241B2 (en) * 2008-11-14 2010-11-16 Genesys Logic, Inc. Electronic apparatus having switching unit
US20100125686A1 (en) * 2008-11-14 2010-05-20 Genesys Logic, Inc. Electronic apparatus having switching unit
US20100312926A1 (en) * 2009-06-03 2010-12-09 Silicon Storage Technology, Inc. Switch for a two way connection between a removable card, a mobile wireless communication device, or a computer
US20110113166A1 (en) * 2009-11-06 2011-05-12 Cpo Technologies Corporation Method and Apparatus of USB 3.0 Based Computer, Console and Peripheral Sharing
US20110161428A1 (en) * 2009-12-28 2011-06-30 Ezpnp Technologies Corp. Two-way data and resources sharing method
US20110216349A1 (en) * 2010-03-03 2011-09-08 Xerox Corporation Delayed printing from a computerized device
US8427680B2 (en) * 2010-03-03 2013-04-23 Xerox Corporation Delayed printing from a computerized device
EP2705431A2 (en) * 2011-05-06 2014-03-12 Belkin International, Inc. Keyboard-video-mouse system and method of providing and using the same
EP2705431A4 (en) * 2011-05-06 2015-02-11 Belkin International Inc Keyboard-video-mouse system and method of providing and using the same
EP2610733A3 (en) * 2011-12-30 2014-01-15 Samsung Electronics Co., Ltd. Image forming apparatus connectable to multiple hosts and method of controlling image forming jobs of the image forming apparatus
US9250835B2 (en) 2011-12-30 2016-02-02 Samsung Electronics Co., Ltd. Image forming apparatus connectable to multiple hosts and method of controlling image forming jobs of the image forming apparatus
CN102566949A (en) * 2012-01-05 2012-07-11 石家庄科林电气股份有限公司 Shared printing method of printers for intelligent devices in transformer substation
CN102566949B (en) * 2012-01-05 2015-09-09 石家庄科林电气股份有限公司 The shared Method of printing of smart machine printer in transformer station
FR2997775A1 (en) * 2012-11-06 2014-05-09 Renault Sa Device for evaluating whether e.g. radio of car is compatible with e.g. apparatuses, has switching elements successively connecting root connector to secondary connectors by switching independent of power and data tracks
US20190045654A1 (en) * 2017-08-07 2019-02-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Server having a dual-mode serial bus port enabling selective access to a baseboard management controller
US10582636B2 (en) * 2017-08-07 2020-03-03 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Server having a dual-mode serial bus port enabling selective access to a baseboard management controller
TWI647571B (en) * 2017-09-20 2019-01-11 旺玖科技股份有限公司 Usb hub
TWI685752B (en) * 2017-09-20 2020-02-21 旺玖科技股份有限公司 Usb hub
DE102019126059A1 (en) * 2019-09-26 2021-04-01 Computer Mack GmbH USB automatic switch

Also Published As

Publication number Publication date
US8352668B2 (en) 2013-01-08
CN101739377A (en) 2010-06-16
US20110093641A1 (en) 2011-04-21
TWI386805B (en) 2013-02-21
US7886106B2 (en) 2011-02-08
CN101739377B (en) 2012-05-30
TW201019117A (en) 2010-05-16

Similar Documents

Publication Publication Date Title
US7886106B2 (en) USB sharing switch with automatic switching capabilities
US7752498B2 (en) Information processing device, interface controller initializing method and program
US5784581A (en) Apparatus and method for operating a peripheral device as either a master device or a slave device
JP4681960B2 (en) COMMUNICATION DEVICE, COMMUNICATION DEVICE COMMUNICATION METHOD, AND COMPUTER PROGRAM
JP2008536225A (en) Peripheral device shared USB hub
US9189298B2 (en) Processing system and method for connecting a remote USB device automatically
JP2003316712A5 (en)
JPH10171615A (en) Printer
JP6062652B2 (en) Image forming apparatus and information processing apparatus
US10158771B2 (en) Information processing apparatus that transfers diagnosis information on a unit to another unit through a communication line for CPU to CPU communication, method of controlling an information processing apparatus, and storage medium
JP4298738B2 (en) Client computer and information processing method
CN102043745A (en) Usb device
US9552048B2 (en) Electronic system in which USB device can inform occurrence of event to host device without receiving status request from host device
JP2008271215A (en) Usb hub
JPH11177598A (en) Hub, device, communication method therefor and storage medium storing computer readable program
US6965955B1 (en) Peripheral apparatus, control method for peripheral apparatus, memory medium, and information processing system
JP6582830B2 (en) Monitor program, communication program, information processing apparatus, image forming apparatus, and image forming system
US20150271863A1 (en) Communication apparatus, communication system, and recording medium storing a communication system control program
AU2001267838B9 (en) Image forming device
JP6344913B2 (en) Printing apparatus, image reading apparatus, and control method thereof
KR101985580B1 (en) POS host and POS hub electronic device for controlling network traffic
CN110690998B (en) Master-slave equipment management method based on BMC
JP2829740B2 (en) Connector disconnection detection circuit
JP3472638B2 (en) Bidirectional communication switching device and bidirectional communication switching method
JP3593882B2 (en) Printing apparatus and interface control method

Legal Events

Date Code Title Description
AS Assignment

Owner name: ATEN INTERNATIONAL CO., LTD.,TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YAN, XIONG;REEL/FRAME:021853/0977

Effective date: 20081113

Owner name: ATEN INTERNATIONAL CO., LTD., TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YAN, XIONG;REEL/FRAME:021853/0977

Effective date: 20081113

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552)

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12