Home

Sewer X

image

Contents

1. USB client 140c is in communication with USB device 110 Each USB client also interfaces with data network 115 over a suitable network connection for communicating messages between data network 115 and a USB device in communica tion with that USB client USB client 140c generally has two connections a USB connection and a network connection 145 USB client 140c connects to USB device 110 through a USB port USB client 140c connects to data network 115 through the network connection 145 such as an Ethernet port similar to USB server 120 The network connection 130 for USB server 120 and the network connection 145 for USB client 140c can be any suitable connection including LAN WAN wireless wired and even powerline USB client 140c US 7 644 211 B2 5 provides translation of USB messages to and from network messages and sending such messages between data network 115 and USB device 110 These functions and additional functions of USB clients are described below In FIG 1 using techniques described below USB server 120 appears to host computer 105 as a conventional N port USB hub USB Server 120 emulates the interaction of the conventional USB hub with host computer 105 Conventional USB hub software provided on host computer 105 supports USB protocol and interacts with USB server 120 as if USB server 120 is a conventional USB hub No additional software or hardware is needed for host computer 105 to interact with USB server 120 S
2. In one embodiment different network characteristics are applied to each of the paths For example a data control message can have higher network priority than bulk data grams In FIG 7 generally when USB client 140c boots up or is otherwise enabled the USB client 140c searches for and associates with one of the USB servers 120 605 610 When the association is made control messages are sent between the USB server and USB client over the control path between the two devices Data such as a network message containing an encapsulated USB message is sent over data transfer path 720 The network messages are generally packetized in a suitable format or protocol for sending over the data network 115 between the associated USB client 140c and USB server 120 When USB client 140c establishes a data transfer path 20 25 30 35 40 45 50 55 60 65 10 with one of the USB servers in FIG 7 USB server 120 the other USB servers 605 610 must generally wait until USB client 140c terminates data transfer path 720 and then estab lishes a data transfer path with one of the other servers 120 610 FIG 8 shows a block diagram 800 of a system for control ling sending and receiving of USB messages over data net work 115 using USB server 120 and USB client 140c The USB server 120 is associated with a host computer such as host computer 105 of FIG 1 The USB client 140c is associ ated with a USB device 110 as shown in FI
3. The USB server 120 provides translation of messages in a USB protocol to and from network messages that is mes sages formatted in a suitable network protocol for passing over data network 115 In one embodiment as shown in FIG 1 USB server 120 includes two physical connections The USB server 120 connects to host computer 105 through a USB port 125 in or connected to the host computer 105 The USB port 125 is a conventional USB port which interacts with conventional USB driver software in the host computer 105 The USB server 120 and host computer 105 send USB mes sages that is messages formatted in the USB protocol between one another through USB port 125 A second physi cal connection of USB server 120 is a network connection 130 for sending network messages to and from data network 115 In one embodiment as shown in FIG 1 the network connection 130 provides an internet protocol IP endpoint or node for USB server 120 on data network 115 In one example as shown in FIG 1 the network connection 130 includes an Ethernet port which interfaces with Ethernet 135 For purposes of illustration in FIG 1 Ethernet 135 is shown separate from data network 115 Those skilled in the art will appreciate that Ethernet 135 can be provided as part of data network 115 In FIG 1 the system 100 includes a plurality of USB clients 140a 140d Each USB client 140a 140d is capable of servicing an associated USB device For instance in FIG 1
4. adapter 820 and USB server 120 In Step 945 an acknowl edge or ACK message is accordingly provided to host com puter 105 FIGS 10A and 10B show a method for controlling sending and receiving of USB messages between a plurality of host computers and a single USB device 110 over data network 115 performed in accordance with one embodiment of the present invention In this example as shown in FIG 7 a first control path 705 is established between USB client 140c and USB server 120 USB server A A second control path 710 is established between USB client 140c and USB server 605 USB server B As mentioned above these control paths 705 710 can be established at the outset of processing or during processing as needed to send control messages between the various devices In FIG 10A Steps 905 935 as described above with respect to FIG 9 are performed between USB server 120 with associated host computer 105 and USB client 140c with associated USB device 110 In FIG 10A when the data transfer path is still established between USB server A and USB client 140c in Step 1005 a host computer B associated with USB server B sends a SETUP message to USB server B USB server B in Step 1010 then sends a request or SETUP IP message to multi host controller 865 Because the data transfer path 720 is still established with USB server A in Step 1015 multi host controller 865 sends a busy message back to USB server
5. methods described above In FIG 11 the computer system 1100 incorporates any combination of additional devices These include but are not limited to a mass storage device 1135 one or more peripheral devices 1140 an audio means 1150 one or more input devices 1155 one or more portable storage medium drives 1160 a graphics subsystem 1180 a display 1185 and one or more output devices 1145 The various components are con nected via an appropriate bus 1190 as known by those skilled in the art In alternative embodiments the components are connected through other communications media known in the art In one example processor 1130 and memory 1125 are connected via a local microprocessor bus while mass storage device 1135 peripheral devices 1140 portable storage medium drives 1160 and graphics subsystem 1180 are con nected via one or more input output buses In FIG 11 mass storage device 1135 is implemented as fixed and or removable media for example as a magnetic optical or magneto optical disk drive The drive is preferably a non volatile storage device for storing data and instructions for use by processor 1130 In some embodiments mass stor age device 1135 stores client and server information code for carrying out methods in accordance with exemplary embodi ments of the invention and computer instructions for proces sor 1130 In other embodiments computer instructions for performing methods in accordance with exemplary
6. 666 B1 4 2002 Kejser et al 710 300 6 389 029 B1 5 2002 McAlear 4 2003 Liu 4 2003 Dickens et al 7 2003 Evans etal ate 6 2005 Zarns 8 2005 Yingetal 5 2006 Lou etal DE 6 2006 Teng 8 2008 Choi 4 2003 Abbondanzio et al 6 546 450 Bl 6 549 966 Bl 6 600 739 Bl 6 904 489 B2 6 934 793 B2 7 047 344 B2 7 069 373 B2 7 412 621 B2 2003 0074431 Al 2004 0095888 Al 5 2004 Noel Jr 370 238 2005 0027889 Al 2 2005 Sandulescu 709 250 2005 0135422 Al 6 2005 Yeh 370 474 2005 0265385 Al 12 2005 Cromer et al 370 466 2006 0069543 Al 3 2006 Sajwani etal 703 24 2006 0123129 Al 6 2006 Toebes et al 709 230 OTHER PUBLICATIONS Byard Larry F Dux Computer Works FAQs Mac Address Feb 2 2002 http www duxcw com faq network mac htm PCI Special Interest Group PCI Local Bus Specification Jun 1 1995 Inside Out Networks AnywhereUSB Product Data Sheet 2005 Greenberg et al IP Over USB Gateway Final Project Report Apr 15 2005 D Link DNS 120 Express EtherNetwork USB to Ethernet Network Storage Adapter datasheet 2005 SIG Inc USB Over IP User s Manual Jun 2008 Digi 5 Port USB AnyWhere Remote USB Over IP Extender KVMs com web page http www kvms co
7. US 7 644 211 B2 19 11 configure an association module in the USB client with a first association between the USB client and the first USB server and a second association between the USB client and the second USB server 111 establish a data transfer path with a first one of the USB servers the data transfer path enabling the send ing of data between the USB client and the first USB server over a data network the data network consist ing of the Internet an intranet an extranet a local area network a wide area network or a combination thereof and iv send a busy message to a second one of the USB servers when the data transfer path is established with the first USB server 31 The USB client apparatus of claim 30 further compris ing a USB device adaptor interfacing with the client device and configured to 1 receive a USB message from the client device ii translate the USB message to a network format suit able for sending over the data transfer path 20 20 111 receive a network message from the data network and iv translate the network message to a USB format suit able for providing to the client device 32 The USB client apparatus of claim 30 the USB client apparatus further comprising a stream queue configured to store stream data for sending to or receiving from the data transfer path 33 The USB client apparatus of claim 30 the multi host controller further configured to iv send an ackno
8. USB server in communication with a third one of the host computers and the data network 11 The method of claim 1 wherein the USB client is connected to a single USB device 12 The method of claim 1 further comprising finding a first USB server and a second USB server with which the USB client should associate 13 The method of claim 12 wherein the finding includes broadcasting to find the nearest USB server 14 The method of claim 12 wherein the finding includes retrieving stored data identifying a particular USB server with which the USB client should associate 15 The method of claim 12 wherein the finding includes receiving an identification of a USB server from a user in response to presenting the user with a user interface allowing selection of the USB server US 7 644 211 B2 17 16 The method of claim 12 wherein the finding includes receiving a selection of a USB server from a user through hardware settings 17 A computer program product stored on a processor readable medium comprising instructions operable to cause a data processing apparatus to perform a method for control ling sending and receiving of universal serial bus USB messages between a plurality of host computers and a USB device over an Ethernet data network a first USB server in communication with a first one of the host computers and the Ethernet data network a second USB server in communica tion with a second one of the host
9. a buffer and interface with data transfer path 720 in FIG 7 for streaming data such as network messages to and from data network 115 for later translation to a USB protocol for host computer 105 or USB device 110 Those skilled in the art should appreciate that different types of streaming can be set up and enabled through stream queue 830 depending on the desired type of data transfer between USB server 120 and USB client 140c over data network 115 e g bulk isochronous etc The stream queue 830 and mes sage queue 825 can be used to adjust for network jitter during a USB transmission In one implementation two separate TCP IP sockets are provided by network connection 130 between USB server 120 and data network 115 One TCP IP socket is provided for message queue 825 to send data over control path 710 of FIG 7 The second TCP IP socket is used for stream queue 830 to send data over data transfer path 720 In USB server 120 of FIG 8 local host buffer 835 provides an optional memory buffer to be used on USB server 120 to cache data during data transfer or when waiting for a remote device such as USB client 140c to be ready to receive data over data transfer path 720 In FIG 8 USB client 140c includes a USB logical device 840 and USB bus interface 845 provided as part of the stan dard USB architecture as described in the USB 2 0 specifi cation In addition USB client 140c includes USB device adapter 850 which provides the translatio
10. a method 400 performed by USB server for sending a USB message over a data net work performed in accordance with one embodiment of the present invention FIG 5B shows a flow diagram of a method 500 for trans lating and communicating a network message as a USB mes sage for a connected computer or USB device performed in accordance with one embodiment of the present invention FIG 6 shows a block diagram 600 of a plurality of USB Servers capable of interfacing with a USB client over a data network according to one embodiment of the present inven tion FIG 7 shows a block diagram 700 of a plurality of USB Servers capable of interfacing with a USB client over a data network according to one embodiment of the present inven tion FIG 8 shows a block diagram of apparatus 800 for con trolling sending and receiving of USB messages over a data network according to one embodiment of the present inven tion FIG 9 shows flow diagram of a method 900 for controlling the sending and receiving of USB messages between a host computer and a USB device over a data network according to one embodiment of the present invention FIGS 10A and 10B show a flow diagram of a method 1000 for controlling the sending and receiving of USB messages between a plurality of host computers and a USB device over a data network according to one embodiment of the present invention FIG 11 shows a block diagram of a data processing appa ratus 1100 such as ho
11. computers and the Ethernet data network a USB client in communication with the Eth ernet data network and the USB device the method compris ing the steps of establishing a first control path between the USB client and the first USB server and a second control path between the USB client and the second USB server configuring an association module in the USB client with a first association between the USB client and the first USB server and a second association between the USB client and the second USB server establishing a first data transfer path between the USB client and the first USB server the first data transfer path enabling sending of data between the USB client and the first USB server over the Ethernet data network and sending a busy message from the USB client to the second USB server over the second control path when the first data transfer path is established with the first USB server 18 The computer program product of claim 17 wherein the USB client is connected to a single USB device 19 A system for controlling sending and receiving of uni versal serial bus USB messages between a plurality of host computers and a USB device over a data network the system comprising a data network that comprises at least one ofthe Internet an intranet an extranet a local area network a wide area network or a combination thereof a first USB server in communication with the data network and a firstone of the h
12. module 340 configured to establish and maintain an association between the USB server 120 and zero or more USB clients Association module 340 can establish the asso ciations using a table TCP sockets a web interface provided to a user of host computer 105 allowing the user to select clients to associate with and other techniques In one embodiment association module 340 manages the associa tions between the USB server 120 and corresponding USB clients in the form of a list 345 stored in memory or a proces sor readable storage medium accessible by association mod ule 340 The associations can be established during power on using data stored in flash memory dynamically by discovery mechanisms to identify USB servers on the network 115 using configurations managed by the user using a token scheme or with any other mechanism using an agreed upon sequence of events FIG 4B shows a block diagram of a USB client in accor dance with one embodiment of the present invention The USB client has similar functionality as USB server 120 For instance the USB client includes an IP interface module 350 providing the same functionality that IP interface module 325 provides for USB server 120 A USB host module 355 inter faces and interacts with a USB device 110 using USB pro tocol The USB host module 355 implements the host side of USB protocol Thus the USB host module 355 can recog nize USB devices when those devices are connected t
13. B indicating that USB client 140c is not yet available to estab lish a data transfer path or otherwise receive data from USB server B on behalf of host computer B In one embodiment this busy message is in the form of a NACK IP setup mes sage provided by both the USB 1 1 and 2 0 protocols Another suitable busy message is a PING message pro vided by the PING function of the USB 2 0 protocol for sending data to high speed devices In FIG 10A when data transfer has been completed between USB server A and USB client 140c a complete message or other suitable acknowledge message such as ACK IP Out is sent by multi host controller 865 back to USB host adapter 820 in USB server A in Step 1020 This complete message can then be passed in Step 1025 to host computer A as an ACK message The USB host adapter 820 in USB server 120 can then terminate the data transfer path 720 established between USB server A and USB client 140c responsive to this complete message In FIG 10B in another embodiment a complete message 1030 is sent from host computer A to USB server A when data transfer is complete The USB server A sends a com plete IP message or other suitable message to multi host controller 865 in USB client 140c in Step 1035 indicating that the data transfer is complete This complete message can then be passed to USB device 110 in Step 1040 A further complete message such as ACK IP complete can then
14. G 1 In FIG 8 USB server 120 includes a client SW 805 an USB system SW 810 provided as standard USB architecture The functional ity of modules 805 and 810 and other USB architecture is described in the Universal Serial Bus Specification Revision 2 0 Apr 27 2000 incorporated herein by reference in its entirety In FIG 8 USB server 120 includes a USB host controller 815 which interfaces with any and all USB device drivers on host computer 105 serviced by USB server 120 The USB host adapter 820 is configured to receive network messages from the data network receive USB messages from the host computer and translate between USB protocol and network protocol as described above in methods 400 and 500 to pass the various messages to their destinations In one embodi ment USB host adapter 820 is divided into a receiving part which is configured to receive USB messages and network messages and a translating part configured to translate mes sages from one protocol to another The USB host adapter 820 is further configured to send network messages over the data network to USB client 140c for subsequent translation back to USB protocol for the connected USB device 110 In FIG 8 a message queue 825 situated in USB server 120 interfaces with control path 710 of FIG 7 to provide a buffer for sending control messages e g ACK NACK and PING as described in the USB 2 0 specification In FIG 8 a stream queue 830 provides
15. G 7 can be combined or further divided as desired depending on the particular imple mentation In one embodiment described with reference to FIG 7 the functionalities of the various control paths and data transfer path are provided by the USB protocol Generally using the USB protocol network traffic can be segmented into three categories The first provides for USB connection and enu meration commands such as device discovery information including information indicating whether a device is present the type of the device and the status of the device e g connected or disconnected The second provides for data control messages such as NACK and STALL that provide feedback to hosts such as the USB servers when a receiving device such as USB client 140c cannot receive or handle a command or other message sent to the receiving device The third category includes data messages that contain the content sent to or from the device Under the USB protocol generally the data control messages on a path separate from the data path or data transfer path In FIG 7 for purposes of simpli fication the control paths 705 710 715 provide receiving and sending of the first two categories of USB messages that is USB connection and enumeration commands as well as data control messages such as NACK and ACK over the appropri ate endpoints The data transfer path 720 provides sending and receiving of data such as the network messages described herein
16. ICE AND A PLURALITY OF HOST COMPUTERS CROSS REFERENCE TO RELATED APPLICATION The present application relates to commonly assigned copending U S Patent Application filed concurrently here with for METHOD AND SYSTEM FOR SENDING AND RECEIVING USB MESSAGES OVER A DATA NET WORK Ser No 11 006 988 The disclosure of the above listed application is incorporated herein by reference in its entirety for all purposes BACKGROUND OF THE INVENTION 1 Field of the Invention The present invention relates generally to transmission of USB messages More particularly the present invention relates to controlling the transmission of USB messages over a data network between a USB device and a plurality of host computers 2 Description of the Related Art Universal Serial Bus USB has become a standard for connecting peripherals to computers Most computers have USB ports allowing the connection of USB enabled periph erals such as mice keyboards printers scanners digital cam eras webcams modems speakers telephones storage devices flash card readers network interfaces and other devices One benefit of USB is that any USB enabled device USB device can be connected to its host computer using the same standardized USB connection Regardless of the particular USB device the USB device can be plugged into the host computer simply by connecting a USB cable between the device and the host computer When the USB device is co
17. O ds oz US 7 644 211 B2 Sheet 9 of 12 Jan 5 2010 U S Patent 006 6 Sid MOV MO di MIV Sr6 dn39S dI HOV GL6 7 dnl3s 336 S06 Jajou0y OMSN Jeldepy Jayndwoy gsn SOH HINA EJEG SOH SOH US 7 644 211 B2 Sheet 10 of 12 Jan 5 2010 U S Patent Se6 anias SL6 301N8 ESN mo MO dI HOV dnjes di ADVN SOL dl dn S 2071 1u O gsn VOL Sid g JEMNSS asn 016 g Jayndwog SOH V J3M9S asn V Jajndwoyg soH US 7 644 211 B2 Sheet 11 of 12 Jan 5 2010 U S Patent gol Old l lduuo2 di A9V ejejduiog gg 080 dI 9 e duon mo SOL 4 S901 amo oo 09017 dnies ayov GSOL ojajdwog LN i SpOL op OL i i lduio5 lduioS dI MOV x x osov dirajejduwog aja duio SEOL o or 30v 1u llO 8 8 V V 20520 JSN gsn J SS Jaynduon J3N9S Jamduo asn soH gsn soH US 7 644 211 B2 Sheet 12 of 12 Jan 5 2010 U S Patent OOLL s oliA q mdmo waysAsqns so1ydeJo 3DA9Q 262J10 S SSEIN Ei Ea LL DI Gylt 084 SELL S LL og LL 061 any ejdsig SSA WNIpayy 2be101S lqeluoq S3DMA9Q mdu s n d jesayduad osL S8LL 0911 SSLL Op LL US 7 644 211 B2 1 METHOD AND SYSTEM FOR CONTROLLING TRANSMISSION OF USB MESSAGES OVER A DATA NETWORK BETWEEN A USB DEV
18. SB Interface Host Module Module Translation Module Association Module FIG 4B U S Patent Jan 5 2010 Sheet 5 of 12 US 7 644 211 B2 400 z Receive USB Message 405 Translate USB Message to 410 Network Message Send Network Message 415 FIG 5A 500 Receive Network Message 505 Translate Network Message to USB Message 510 Provide USB Message 515 FIG 5B US 7 644 211 B2 Sheet 6 of 12 Jan 5 2010 U S Patent 9 Sid gsn 029 019 asn SLO Oct asn SOL ES 509 SISOH a0 A8g gsn uallo gsn OLL 0FL 009 US 7 644 211 B2 Sheet 7 of 12 Jan 5 2010 U S Patent Juano asn 2071 002 SOL Z ld uleq 04409 ujed Jajsues eyeg Z uleq Io nuoo k uleq 04U0J 4 J3M9S asn V N S asn g Jamas asn 0L9 Oct 509 US 7 644 211 B2 Sheet 8 of 12 Jan 5 2010 U S Patent prcccvecencecavecwwccacnccsccnssorecsceoneancessssesscrnesevensescascaonagenrronereureeennMnEnEenansesserscanacsscassscnccscsarnoceoconenaenseseattbeverecsncaterseessencaeeesteasssaceneceocesanerevenensaunuannannasteccocaseccescesccsccrcerececerepecccscseerecescencas Jajdepy qd SSN SoRpSJU sng 8SN J llonuoo YU J40M9N SOH HINW 3o01A3 eai807 gsn 1U311O ESN 0978 ae jsoH GSN 1S0H GSN MS ui ls s gsn 1 loquoo i 0 8 Jayng 1S0H 2207 018 lt Ses MS Juano i SMS SSN 008 A A A eee O
19. US007644211B2 az United States Patent 10 Patent No US 7 644 211 B2 Toebes et al 45 Date of Patent Jan 5 2010 54 METHOD AND SYSTEM FOR 5 586 033 A 12 1996 Hall 701 50 CONTROLLING TRANSMISSION OF USB 5 655 151 A 8 1997 Bowes etal 710 22 MESSAGES OVER A DATA NETWORK 5 719 961 A 2 1998 Normile et al 382 239 BETWEEN A USB DEVICE AND A 5 784 393 A 7 1998 Byers et al 714 800 6 061 746 A 5 2000 Stanley et al 710 10 FERRARI OE HOST COMEUTERS 6 141 719 A 10 2000 Rafferty etal 710 316 6 182 167 B1 1 2001 Basham et al 710 38 75 Inventors John Toebes Cary NC US Arthur 6 308 239 BI 10 2001 Osakada et al 710 316 Howarth San Jose CA US Mickey Sartin Apex NC US Continued 73 Assignee Cisco Technology Inc San Jose CA OTHER PUBLICATIONS US Compaq et al Universal Serial Bus Specification Apr 27 2000 Revision 2 0 Notice Subject to any disclaimer the term of this i patent is extended or adjusted under 35 Continued U S C 154 b by 162 days Primary Examiner Mark Rinehart Assistant Examiner Matthew D Spittle 21 Appl Nos 11 006 989 74 Attorney Agent or Firm Weaver Austin Villeneuve 22 Filed Dec 7 2004 Austin LLP 65 Prior Publication Data 67 ABSTRACT US 2006 0123166 A1 Jun 8 2006 A solution is provided for controlling universal serial bus USB mes
20. a manner that host computer 105 would be connected and engaged with a conventional USB hub That is USB host adapter 820 responds to and sends signals to host computer 105 over USB port 125 at times mimicking a USB hub as if USB device 110 was connected directly to the USB hub or the USB server 120 Similarly USB device adapter 850 in USB client 140c interact with USB device 110 as if USB device 110 was interacting with the output of a USB hub or USB port connected to host computer 105 Thus no additional driver software or other functions are required to be implemented in USB device 110 and host computer 105 to interact with USB server 120 and associated USB clients and attain the benefits provided by the USB server and USB client pair FIG 9 shows a method 900 for controlling the sending and receiving of USB messages between host computer 105 and USB device 110 over data network 115 The method 900 is described with reference to FIGS 1 and 7 In Step 905 host computer 105 sends a SETUP message to host adapter 820 in USB server 120 When the SETUP message is received by host adapter 820 in Step 910 host adapter 820 sends a SETUP IP as a request message to multi host controller 865 and USB client 140c A control path is established between host adapter 820 and multi host controller 865 for sending control messages such as the SETUP IP message The control path can be established before or after the SETUP IP message is sent dep
21. able for sending over the data network 22 The system of claim 21 wherein translating the USB message to the network format includes encapsulating the USB message in a network protocol 23 The system of claim 21 the USB client further config ured to vi send the translated USB message as a network message to the first USB server over the data transfer path 24 The system of claim 19 the USB client further config ured to iv receive a network message from the first USB server over the data transfer path v translate the network message to a USB format and vi provide the translated network message as a USB mes sage for the USB device 25 The system of claim 19 wherein the data network includes an Internet 26 The system of claim 19 wherein the data network includes a wireless network 27 The system of claim 19 wherein the USB client is connected to a single USB device 28 A system for controlling sending and receiving of uni versal serial bus USB messages between a plurality of host computers and a USB device over an Ethernet data network the system comprising first USB server means in communication with the data network and a first one of the host computers the first USB server means having a first network address on the Ethernet data network second USB server means in communication with the data network and a second one of the host computers the second USB server means having a second net
22. ard controller a serial port controller and or digital signal processing cir cuitry In FIG 11 the graphics subsystem 1180 and the display 1185 provide output alternatives of the system The graphics subsystem 1180 and display 1185 include conventional cir cuitry for operating upon and outputting data to be displayed where such circuitry preferably includes a graphics proces sor a frame buffer and display driving circuitry The display 1185 may include a cathode ray tube CRT display a liquid crystal display LCD or other suitable devices The display 1185 preferably can display at least 256 colors The graphics subsystem 1180 receives textual and graphical information and processes the information for output to the display 1185 often as a GUI A video card in the computer system 1100 also comprises a part of graphics subsystem 1180 and also pref erably supports at least 256 colors For optimal results in viewing digital images the user should use a video card and monitor that can display the True Color 24 bit color setting This setting enables the user to view digital images with photographic image quality In FIG 11 audio means 1150 preferably includes a sound card that receives audio signals from a peripheral micro phone In addition audio means 1150 may include a proces sor for processing sound The signals can be processed by the processor in audio means 1150 of computer system 1100 and passed to other devices as for
23. be sent from multi host controller 865 to host adapter 820 in Step 1045 Responsive to any of the various complete messages sent in Steps 1030 1045 the data transfer path 720 between USB server A and USB client 140c is then terminated In FIG 10B when data transfer path 720 has been termi nated USB client 140c is available to establish a data transfer path with another one of the USB servers 120 605 610 in FIG 7 In one embodiment shown in FIG 10B an acknowl edge message such as ACK IP setup message 1055 is sent from multi host controller 865 back to USB server B which received the busy message in Step 1015 Then Steps 1060 1090 can be performed between host computer B USB server US 7 644 211 B2 13 B multi host controller 865 and USB device 110 identical to Steps 930 935 and 1030 1050 between host computer A USB server A USB client 140c and USB device 110 described above Again when the data transfer path is estab lished between USB client 140c and USB server B requests for data transfer or for the establishing of data transfer paths from any of the other USB servers will be replied to with a busy message such as a NACK or PING message as shown in FIG 7 Thus USB client 140c acts as a gatekeeper for USB device 110 by providing for data transfer with one host at a time Those skilled in the art should appreciate that interleaving transfers will be applicable for some devices but not all With s
24. bles USB server 120 to be an IP client of data network 115 The IP interface module 325 provides an IP address for USB server 120 so that USB server 120 can send and receive messages as IP packets or other formats suitable for sending over data network 115 The IP connection established between IP interface module 325 and data network 115 can be established with any suitable form of wired or wireless IP connectivity such as RG 45 power line 802 11 in all forms and conventional Ethernet connectivity Secondly in FIG 4A USB server 120 further includes a USB interface module 330 which interfaces and interacts with host computer 105 through USB port 125 providing the USB hub emulation described above USB interface module 330 is configured to implement the appropriate USB hub device protocol capabilities The third function of USB server 120 is a implemented in a translation module 335 which in one embodiment provides USB over IP protocol The trans lation module 335 is generally configured to translate USB messages to network messages e g IP packets for sending US 7 644 211 B2 7 USB messages received from host computer 105 as network messages over data network 115 as explained below Simi larly translation module 335 is configured to translate net work messages received from data network 115 to USB for mat for delivery to host computer 105 through USB port 125 Fourth in FIG 4A the USB server 120 includes an asso ciation
25. client and the second USB server configuring an association module in the USB client with a first association between the USB client and the first USB server and a second association between the USB client and the second USB server establishing a first data transfer path between the USB client and the first USB server the first data transfer path an 5 25 30 40 45 50 65 16 enabling sending of data between the USB client and the first USB server over the Ethernet data network and sending a busy message from the USB client to the second USB server over the second control path when the first data transfer path is established with the first USB server 2 The method of claim 1 wherein the step of establishing the first data transfer path between the USB client and the first USB server includes sending a request message from the first USB server to the USB client over the first control path 3 The method of claim 1 wherein the step of establishing the first data transfer path between the USB client and the first USB server includes sending an acknowledge message from the USB client to the first USB server over the first control path 4 The method of claim 1 further comprising the step of sending a request message from the second USB server to the USB client over the second control path the busy message being sent responsive to the request message 5 The method of claim 1 further comprising the ste
26. embodi ments of the invention also are stored in processor 1130 The computer instructions are programmed in a suitable language such as Java or C 20 25 30 35 40 45 50 55 60 65 14 In FIG 11 the portable storage medium drive 1160 in some embodiments operates in conjunction with a portable non volatile storage medium such as a floppy disk CD ROM or other computer readable medium to input and out put data and code to and from the computer system 1100 In some embodiments methods performed in accordance with exemplary embodiments of the invention are implemented using computer instructions that are stored on such a portable medium and input to the computer system 1100 via portable storage medium drive 1160 In FIG 11 the peripheral devices 1140 include any type of computer support device such as an input output 1 0 inter face to add functionality to computer system 1100 In one example the peripheral devices include a network interface card for interfacing to a network a modem and the like The peripheral devices also include input devices to provide a portion of a user interface and may include an alphanumeric keypad or a pointing device such as a mouse a trackball a stylus or cursor direction keys The I O interface comprises conventional circuitry for controlling input devices and per forming particular signal conversions upon I O data The I O interface may include for example a keybo
27. ending on the desired imple mentation Those skilled in the art will appreciate that when the control path has not yet been established the SETUP IP message is sent over an alternative communications path over data network 115 between the USB server 120 and USB client 140c In FIG 9 in Step 915 multi host controller 865 passes a SETUP message to USB device 110 In this example USB device 110 is available to receive data so in step 920 multi host controller 865 sends an acknowledge message such as ACK IP SETUP back to host adapter 820 The data transfer path 720 is then established between USB server 120 and USB client 140c In an alternative embodiment data transfer path 720 has already been established In Step 925 an OUT message including data in a USB protocol is sent from host computer 105 to host adapter 820 USB host adapter 820 encapsulates the USB message in a format suitable for send ing over data network 115 and sends the encapsulated mes sage as a network message or OUT IP message in Step 930 to multi host controller 865 in USB client 140c In Step 935 the network message is translated back to USB protocol by USB device adapter 850 and passed on to USB device 110 In 20 25 30 35 40 45 50 55 60 65 12 Step 940 when the data transfer is successful over the data transfer path 720 the multi host controller 865 sends an acknowledge message such as ACK IP OUT back to host
28. example streaming audio signals In some embodiments programs for performing methods in accordance with exemplary embodiments of the invention are embodied as computer program products These generally include a storage medium or media having instructions stored thereon used to program a computer to perform the methods described above Examples of suitable storage medium or media include any type of disk including floppy disks optical disks DVDs CD ROMs magnetic optical disks RAMs EPROMs EEPROMs magnetic or optical cards hard disk flash card smart card and other media Stored on one or more of the computer readable media the program includes software for controlling both the hardware of a general purpose or specialized computer or microproces sor This software also enables the computer or microproces sor to interact with a human or other mechanism utilizing the results of exemplary embodiments of the invention Such software includes but is not limited to device drivers oper US 7 644 211 B2 15 ating systems and user applications Preferably such com puter readable media further include software for performing the methods described above In certain other embodiments a program for performing an exemplary method of the invention or an aspect thereof is situated on a carrier wave such as an electronic signal trans ferred over a data network Suitable networks include the Internet a frame relay network an ATM netwo
29. f FIG 6 USB client 140c can associate with the multiple USB servers 120 605 610 although USB client 140c generally transfers data to the servers one at a time as explained below In the system 600 the various USB servers 120 605 610 can func tion as multiple hosts for the single USB client 140c Methods and apparatus provided in USB client 140c provide the capa bility of serving multiple hosts as explained below FIG 7 shows a block diagram of a system 700 in which communications paths are established between USB client 140c and the various USB servers over data network 115 In one embodiment the communications paths include control paths 705 710 715 established between USB client 140c and the respective USB servers 120 605 610 The communica tions paths further include a data transfer path 720 which can be established between USB client 140c and USB server 120 Data transfer paths can also be established between USB client 140c and the other USB servers 605 610 Those skilled in the art should appreciate that the various paths shown in FIG 7 can be established independent of one another and at various times during the sending and receiving of messages as desired for the particular implementation Generally data transfer paths are established between USB client 140c and one USB server at a time as explained below Those skilled in the art should also appreciate that the various control paths and data transfer path shown in FI
30. iment of FIG 3 USB client 140c can be implemented primarily in software on the USB device 110 This software implementation can be beneficial in cir cumstances where there are size and space constraints on USB client 140c In FIGS 2 and 3 because USB server 120 and USB client 140c are implemented primarily in software on the respective host computer 105 and USB device 110 the USB server 120 and USB client 140c can be characterized as logical or virtual implementations On the other hand in one imple mentation of the embodiment shown in FIG 1 the USB server 120 and USB client 140d include hardware to carry out the respective functions and provide the necessary physical connections for USB server 120 and USB client 1404 In this predominantly hardware implementation USB server 120 and USB client 140d can be characterized as physical devices The virtual implementation is more cost effective and raises the shareable bus bandwidth when the physical medium s e g Gigabit Ethernet bandwidth is greater than the USB bus The physical implementation provides host computer 105 operating system independence and USB client 140d compatibility to various USB devices FIG 4A shows a block diagram of a USB server 120 in accordance with one embodiment of the present invention The USB server 120 includes apparatus to generally perform at least four functions First the USB server 120 includes an IP interface module 325 which ena
31. imilarly each USB client 140a 140d can interface with a USB device such as device 110 using a conventional USB port The USB client 140c appears to USB device 110 as one output or output port ofa conventional USB hub No additional software or hardware is required for USB device 110 to interact with USB client 140c In FIG 1 the plurality of USB clients 140a 140d are associated with the single USB server 120 In another embodiment of the present invention there are a plurality of host computers such as host computer 105 and a plurality of USB servers such as USB server 120 Each host computer is in communication with a respective one of the USB servers There are also a plurality of USB devices such as multi function printers each of which has an associated USB client The USB servers and USB clients are connected to network 115 in the same manner as USB server 120 and USB client 140c as illustrated in FIG 1 In this embodiment any com bination of the USB clients can be associated with any com bination of the USB servers For example ten printers con nected to respective USB clients can be associated with a single personal computer PC Then a virtual unplug opera tion that is re association can be performed so that five of the ten printers are associated with a first PC and USB server pair and the remaining five printers are associated with a second PC and second USB server This virtual unplug opera tion can be performed dyna
32. ivity between a USB device and the host Individual USB cables are generally manufactured in lengths 0 ha 5 20 25 35 40 45 50 2 on the order of several meters With USB hubs USB devices can be connected to a host computer up to about 30 meters away from the host However the distance between the USB device and the host it communicates with is still limited to the physical distance of the USB cables and hubs Because of the physical limitation of the USB cable attempts to connect USB devices remotely with respect to a host have been problematic One example of a USB device which has not been effectively connected to the host as a remote device is a USB enabled multi function printer Print servers exist that use an LPR protocol and provide an Ethernet connection to the printer However many print servers pre clude the bi directional protocol ofthe multi function printer The print server only provides the print function of the printer and eliminates the enhanced functions of the printer Also when the host computer is connected by virtual private net work VPN in a corporate environment the Ethernet enabled printer is not available to print from the host computer In the past the only way to access the multiple functions of the printer was to disconnect the printer from the VPN and con nect the printer to the host computer by a USB cable Then to access the printer via the VPN the printer had to be disco
33. m nav item asp item 8221 printed Oct 14 2004 Inside Out Networks the Leader in Enterprise USB Connectivity Products Inside Out Networks web page http www ionetworks com products index jsp printed Oct 14 2004 USB Over IP Turning Your Network Into an I O Bus White Paper www ionetworks com O 2003 2004 Digi International Inc 91001239 A1 0204 3 pages AnywhereUSBQ Inside Out Networks the Leader in Enterprise USB Connectivity Products web page http www ionetworks com products usboverip index jsp printed Oct 14 2004 MIMIO by Virtual Ink Copyright 2004 Virtual Ink Corporation web page http www mimio com printed Oct 14 2004 USPTO Office Action issued in related U S Appl No 11 006 988 dated Jun 12 2008 22 pages cited by examiner US 7 644 211 B2 Sheet 1 of 12 Jan 5 2010 U S Patent Juano aon L Sle POPL nd quelo Sv SSN lgsn ASN Sbi 9 OL Opl j em Juano er gsn a gsn qorl SOL ge rd JUSI D GEL OL asn eop Y Nan pu 001 U S Patent Jan 5 2010 Sheet 2 of 12 US 7 644 211 B2 105 FIG 2 USB Device FIG 3 U S Patent Jan 5 2010 Sheet 3 of 12 US 7 644 211 B2 120 USB Server USB Interface Module IP Interface Module Translation Module Association Module List USB Client Association Established 59 140a FIG 4A U S Patent Jan 5 2010 Sheet 4 of 12 US 7 644 211 B2 USB Client IP U
34. mically so that any one of the USB clients can be re associated with any one of the USB servers When such a re association is performed the computer 105 receives a connect and disconnect message from the USB server 120 as if the USB devices were physically plugged or unplugged into the USB port 125 In one embodiment of the system 100 of FIG 1 USB server 120 generally does not need a power supply indepen dent of that provided by USB port 125 That is the host computer 105 can power USB server 120 through the USB port 125 In one embodiment as the host computer 105 is powering the USB server the host computer 105 will limit the power it serves through the USB server to the USB devices 100 mA In another embodiment the USB server is self powered allowing the USB Device 110 the full amount of power available on a hub port 500 mA In a third embodi ment the USB server manipulates the USB device 110 s power requirement messages to state the device is fully self powered and needs no power through the bus Embodiments of the present invention provide for different implementations of USB server 120 and USB clients such as USB client 140c In one embodiment as shown in FIG 1 USB server 120 is external to host computer 105 In this embodiment USB server 120 includes software configured to provide the functions described below and hardware needed to carry out these functions and to provide physical connec tions to host com
35. mmunication with the data network and the USB device A first control path is established between the USB client and the first USB server and a second control path is established between the USB client and the second USB server A data transfer path is established between the USB client and the first USB server The data transfer path enables sending of data between the USB client and the first USB server over the data network A busy message is sent from the USB client to the second USB server over the second control path when the data transfer path is established with the first USB server BRIEF DESCRIPTION OF THE DRAWINGS FIG 1 shows a block diagram of a system 100 for sending and receiving Universal serial bus USB messages between a host computer and a USB device over a data net US 7 644 211 B2 3 work where the USB server is an external device according to one embodiment of the present invention FIG 2 shows an illustration of a host computer 105 in which a USB server is situated according to one embodiment of the present invention FIG 3 shows an illustration ofa USB device 110 in which a USB client is situated according to one embodiment of the present invention FIG 4A shows a block diagram of a USB server 120 in accordance with one embodiment of the present invention FIG 4B shows a block diagram of a USB client in accor dance with one embodiment of the present invention FIG 5A shows a flow diagram of
36. n nected from USB and re connected to the VPN With the advent of multiple hosts it is desirable to share common peripherals However an additional limitation of USB is the inability to share USB devices among two or more hosts Conventional techniques for connecting USB devices to hosts have only provided for one to one connections one USB device to one host Logical sharing of USB devices among two or more hosts has not been possible The only way to arguably share a USB device has been is in the physical sense the USB cable connecting the USB device to a first host is physically unplugged from the first host moved into the necessary proximity with a second host and then plugged into the second host What is needed is a scheme for eliminating the physical distance limitation of USB enabling the remote connection and communication ofa USB device with a host and enabling the sharing of a USB device or devices by multiple hosts SUMMARY OF THE INVENTION Aspects of the present invention relate to methods com puter program products apparatus and systems for control ling sending and receiving of universal serial bus USB messages between a plurality of host computers and a USB device over a data network A first USB server is in commu nication with a first one of the host computers and the data network A second USB server is in communication with a second one of the host computers and the data network A USB client is in co
37. n of USB messages to network messages and vice versa as explained above in methods 400 and 500 A stream queue 855 and message queue 860 are also provided in USB client device 140 The stream queue 855 and message queue 860 provide essentially the same functions as the counterpart stream queue 830 and US 7 644 211 B2 11 message queue 825 in USB server 120 In USB client 140c a multi host controller 865 manages network traffic to and from USB client 140c That is multi host controller 865 signals to connected hosts such as USB server 120 and other USB servers 605 and 610 the current status of USB device 110 Multi host controller 865 manages the establishing and ter mination of communications paths with the respective USB servers over data network 115 as illustrated in FIG 7 and explained below In one embodiment multi host controller 865 maintains a table of TCP port and remote host IP addresses as well as an indication of which host or USB server is active so that any request message from other inactive hosts is sent a busy message such as a NACK or PING as provided by the USB protocol In addition multi host controller 865 acts as a host for USB device 110 and controls the physical initialization of device 110 The system 800 shown in FIG 8 provides spoofing com ponents in the form of USB host adapter 820 and USB device adapter 850 USB host adapter 820 interfaces and interacts with host computer 105 in
38. nding a USB message from host computer 105 to USB client 140c over data network 115 The method 400 is also performed by USB client 140c for sending a USB mes sage originating from USB device 110 to USB server 120 over data network 115 In FIG 5A a USB message is received from the host computer 105 or USB device 110 USB message generally refers to a message in the USB protocol When the USB message is received by the USB server 120 or USB client 140c in Step 410 the server 120 or client 140c translates the USB message to a network message that is a message in a suitable protocol or format for sending over data network 115 Suitable protocols for the network message include layer 2 layer 3 layer 4 and the other protocols appropriate for passing the network message over any of the implementations of data network 115 described above In one embodiment the USB message a layer 2 protocol is encapsulated in an appropriate higher layer protocol such as layer 3 or layer 4 during the translation step 410 Such an encapsulation operation is gen erally known to those skilled in the art In Step 415 the USB server 120 or USB client 140c sends the network message over data network 115 to the USB client 140c or USB server 120 FIG 5B shows a method 500 performed by USB server 120 or USB client 140c for communicating a network message received over data network 115 to host computer 105 or USB device 110 as a USB message In Step 505 when
39. ne output device Each computer program can be implemented in a high level procedural or object oriented programming language or in assembly or machine language if desired and in any case the language can be a compiled or interpreted language Although illustrative embodiments and applications of this invention are shown and described herein many variations and modifications are possible which remain within the con cept scope and spirit of the invention and these variations would become clear to those of ordinary skill in the art after perusal of this application Accordingly the present embodi ments are to be considered as illustrative and not restrictive and the invention is not to be limited to the details given herein but may be modified within the scope and equivalents of the appended claims We claim 1 A method for controlling sending and receiving of uni versal serial bus USB messages between a plurality of host computers and a USB device over an Ethernet data network a first USB server in communication witha first one of the host computers and the Ethernet data network a second USB server in communication with a second one of the host computers and the Ethernet data network a USB client in communication with the Ethernet data network and the USB device the method comprising the steps of establishing a first control path between the USB client and the first USB server and a second control path between the USB
40. net work The terms host computer and host are used inter changeably herein generally referring to a computer or other data processing apparatus capable of interacting with a USB server using the methods and apparatus described below FIG 1 shows a system 100 for sending and receiving USB messages between a host in this case computer 105 and a USB device 110 over a data network 115 according to one embodiment of the present invention In the system 100 of FIG 1 the host computer 105 can be a personal computer workstation or any other data processing apparatus depend ing on the desired implementation The USB device 110 is any device such as a peripheral that communicates using the USB protocol Examples of USB device 110 include printers scanners mice keyboards cameras webcams multifunction printers flashcard readers hard drives flash drives and vari ous media players In FIG 1 the data network 115 is any network or combination of networks capable of passing data between elements connected to the data network 115 at net work addresses on the data network 115 Examples of data network 115 include any wired network wireless network layer 1 layer 2 layer 3 networks the Internet an intranet an extranet local area network LAN wide area network WAN and any combination thereof In FIG 1 system 100 further includes a USB server 120 in communication with host computer 105 and data network 115
41. nnected the operating system of the host computer can often automatically detect it Driver software can be easily installed on the host computer to interact with the USB device For host computers with fewer USB ports than desired USB devices a USB hub can be connected to provide addi tional USB connections Conventional USB hubs such as a 4 port hub can be plugged into the USB port on the host computer enabling the connection of 4 USB devices to the single USB host port USB hubs can be chained together to provide additional USB ports as desired and share the band width available on the root port There are generally four types or modes of data transfer that can occur between the USB device and the computer 1 Control 2 Interrupt 3 Bulk and 4 Isochronous Control mode is used to enumerate identify a device and is often used for out of band device control such as accessing control registers on the device Interrupt mode can be used for a device such as a mouse or keyboard that sends data at a lower bandwidth and speed Bulk mode is used for devices such as printers which receive data in larger packets In one example a block of data is sent to the printer in 64 byte packets Isochronous mode is used for streaming devices such as speakers Data streams between the USB device and the com puter A USB cable connects a USB device and host computer in a point to point manner The USB cable limits the physical distance and connect
42. o the USB client The USB host module 355 can send interrogation messages to the USB device to determine attributes of the USB device Then the USB host module 355 will configure and enable the USB device 110 In FIG 4B the USB client further includes a translation module 360 similar to translation module 335 in USB server 120 Here the translation module 360 is configured to trans late USB messages to network messages e g IP packets for sending USB messages received from USB device 110 as network messages over data network 115 and translate net work messages received from data network 115 to USB for mat for delivery to USB device 110 In addition the USB client includes an association module 365 which is generally configured to establish an association with zero or one USB server at a time such as USB server 120 The association module 365 can select the USB server to associate with using any number of methods including 1 broadcast to find the nearest USB server 2 stored data identifying a particular USB server 3 a web page or other user interface allowing selection of the USB server and 4 hardware settings allow ing a user to choose the USB server In one embodiment as shown in FIG 4B the USB client also includes a power supply 370 which can supply power to the connected USB device In an alternative embodiment the USB client does not include power supply 370 Those skilled in the art will appreciate that the a
43. ome devices and host computer class drivers data transfer will involve transaction interleaving set of multi transfers rather than USB interleaving In other instances there will be no interleaving FIG 11 is a block diagram of a host computer 105 or other data processing apparatus 1100 used as described herein The computer system 1100 includes a processor 1130 for execut ing program instructions stored in a memory 1125 In some embodiments processor 1130 includes a single microproces sor while in others processor 1130 includes a plurality of microprocessors to define a multi processor system In some embodiments the memory 1125 stores instructions and data for execution by processor 1130 including instructions and data for performing the methods described above Depending on the extent of software implementation in computer system 1100 the memory 1125 stores executable code when in operation The memory 1125 includes for example banks of read only memory ROM dynamic random access memory DRAM as well as high speed cache memory In FIG 11 within computer system 1100 an operating system comprises program instruction sequences The oper ating system provides a software platform upon which appli cation programs may execute in a manner readily understood by those skilled in the art In some embodiments the com puter system 1100 further comprises one or more applications having program instruction sequences for performing the
44. ost computers the first USB server having a first network address on the data network a second USB server in communication with the data net work and a second one of the host computers the second USB server having a second network address on the data network and a USB client in communication with the data network and the USB device the USB client configured to 1 establish communications paths with the first and sec ond USB servers 11 configure an association module in the USB client with a first association between the USB client and the first USB server and a second association between the USB client and the second USB server 111 establish a data transfer path with the first USB server the data transfer path enabling passing data between the USB client and the first USB server over the data network and iv send a busy message to the second USB server over the communications path established with the second USB server when the data transfer path is established with the first USB server 20 The system of claim 19 wherein the USB client sends the busy message to the second computer responsive to a request message received from the second computer over the communications path established with the second computer 20 40 45 50 55 65 18 21 The system of claim 19 the USB client further config ured to iv receive a USB message from the USB device and v translate the USB message to a network format suit
45. pparatus modules and functions described above can be implemented with combinations of hardware and software In one example the USB server 120 includes a processor and a memory with instructions executable to perform the functions above Simi larly the USB client can also have a processor and memory for performing its functions Other hardware and software implementations of the USB server 120 and USB client are possible as will be understood by those skilled in the art 20 25 30 45 50 55 60 65 8 The system 100 of FIG 1 provides for sending and receiv ing USB messages between host computer 105 and USB devices such as USB device 110 The USB server 120 and USB client 140c cooperate to translate messages between USB protocol or format and a network format suitable for sending over data network 115 The USB server 120 and USB client 1405 provide for receiving a USB message at USB client 140c from USB device 110 translating the USB mes sage to packets formatted for sending over the data network 115 that is a network message The USB server 120 receives the network message and translates the message back to the original USB format and provides the USB message to host computer 105 over USB port 125 These functionalities of USB client 140c and USB server 120 are reversed when host computer 105 sends a USB message to USB device 110 over data network 115 FIG 5A shows a method 400 performed by USB server 120 when se
46. ps of terminating the first data transfer path and establishing a second data transfer path between the USB client and the second USB server the second data trans fer path enabling sending of data between the USB client and the second USB server over the data network 6 The method of claim 5 wherein the step of terminating the first data transfer path includes sending a complete message from the USB client to the first USB server over the first control path 7 The method of claim 5 wherein the step of terminating the first data transfer path includes sending a complete message from the first USB server to the USB client over the first control path 8 The method of claim 5 wherein the step of establishing the second data transfer path between the USB client and the second USB server includes sending an acknowledge message from the USB client to the second USB server over the second control path 9 The method of claim 5 further comprising the step of sending the busy message from the USB client to the first USB server over the first control path when the second data transfer path is established with the second USB server 10 The method of claim 5 further comprising the step of sending the busy message from the USB client to a third USB server over a third control path established between the USB client and the third USB server when the second data transfer path is established with the second USB server the third
47. puter 105 and data network 115 Similarly in the embodiment shown in FIG 1 USB client 140c is situated external to USB device 110 and incorporates software and 20 30 40 45 50 6 hardware to provide the functions of USB client 140c and the necessary physical connections to data network 115 and USB device 110 In an alternative embodiment shown in FIG 2 USB server 120 is situated within host computer 105 In this embodiment USB server 120 connects to a network interface 205 provided within host computer 105 for connecting to data network 115 Thus in the embodiment of FIG 2 USB server 120 does not need its own external physical connection for connecting to data network 115 In the embodiment of FIG 2 USB server 120 can be implemented primarily in software to perform the same functions provided by USB server 120 in FIG 1 FIG 3 shows an alternative implementation of USB client 140c to that shown in the system 100 of FIG 1 In FIG 3 similar to the implementation of USB server 120 in FIG 2 USB client 140c is situated within USB device 110 USB client 140c communicates with data network 115 through a network interface 305 provided by USB device 305 Thus as with USB server 120 in FIG 2 USB client 140c does not require its own external physical connection to data network 115 USB client 140c essentially piggybacks on the function ality provided by network interface 305 to interact with data network 115 In the embod
48. rk a wide area network WAN or a local area network LAN Those skilled in the art will recognize that merely transferring the program over the network rather than executing the program on a computer system or other device does not avoid the scope of the invention Embodiments of the invention including the methods apparatus modules adaptors controllers and functions described herein can be implemented in digital electronic circuitry or in computer hardware firmware software or in combinations of them For example the USB server 120 can be constructed to include a processor memory and appropri ate software for performing the methods and functions described above The same is true for any of the USB clients Apparatus embodiments of the invention can be implemented in a computer program product tangibly embodied in a machine readable storage device for execution by a program mable processor and method steps of the invention can be performed by a programmable processor executing a pro gram of instructions to perform functions of the invention by operating on input data and generating output Embodiments of the invention can be implemented advantageously in one or more computer programs that are executable on a program mable system including at least one programmable processor coupled to receive data and instructions from and to transmit data and instructions to a data storage system at least one input device and at least o
49. sages between a plurality of host computers and a 51 Int Cl USB device First and second USB servers may communicate GO6F 13 42 2006 01 with first and second host computers respectively A USB 52 US Clonar 710 106 710 305 710 306 client may then communicate with the USB device A first 710 308 370 402 370 466 control path between the USB client and the first USB server 58 Field of Classification Search 710 200 and a second control path between the USB client and the 710 315 37 305 241 106 108 316 370 254 second USB server may be established Then a first data 370 402 466 474 transfer path may be established between the USB client and See application file for complete search history the first USB server the first data transfer path enabling the i sending of data between the USB client and the first USB 56 References Cited server over a data network Then a busy message may be sent U S PATENT DOCUMENTS from the USB client to the second USB server over the second NE TEN control path when the first data transfer path is established 4 835 737 A 5 1989 Herrig et al Wa Re NSR Server 5 408 627 A 4 1995 Stirk et al 5 416 910 A 5 1995 Moyer et al 35 Claims 12 Drawing Sheets 100 MASTER 105 SLAVES Ethernet Y US 7 644 211 B2 Page 2 U S PATENT DOCUMENTS 6 334 121 B1 12 2001 Primeaux etal 706 62 6 369 909 B1 4 2002 Shima 0 358 1 15 6 381
50. st computer 105 used in accordance with embodiments of the present invention DETAILED DESCRIPTION OF THE INVENTION Embodiments of the present invention enables remote con nectivity of USB devices to a host computer or other data processing apparatus regardless of the operating system on the computer and regardless of the type of USB device e g camera printer keyboard flash card reader media player This host computer or apparatus has full access to a plurality of USB devices served ona data network One embodiment of methods and apparatus of the present invention provides for a split software spoofing technique to implement a USB Uni versal Serial Bus system over a data network The spoofing technique described below enables the USB system to appear to include a physical USB connection between a host computer and a USB device when in fact the USB device is remotely connected to the host computer over the data net work Thus the physical USB cable requirement and distance limitation associated with conventional USB cables can be eliminated One embodiment of methods and apparatus of the present invention further provides for the sharing of hosts or host computers by a remotely connected USB device In some an 5 20 40 45 55 60 65 4 implementations bulky or seldom used USB devices can be physically located in designated areas and connected remotely to one or more host computers over the data
51. the network message is received from data network 115 the USB server 120 or USB client 140c translates the network message back to the USB format Because the original USB message was encapsulated in the appropriate network protocol as described above in FIG 5A the network message is essen tially de encapsulated back to its original USB protocol In Step 515 the USB message can then be provided to the host computer 105 or USB device 110 over a USB port or connec tion and properly interpreted by the receiving device FIG 6 shows a block diagram of USB server 120 and USB client 140c in communication with data network 115 accord ing to one embodiment of the present invention In addition system 600 includes USB server 605 connected between data network 115 and a second host computer 615 and USB server 610 connected between data network 115 and a third host computer 620 In the embodiment shown in FIG 6 USB client 140c is capable of servicing the various USB servers 120 605 610 In one embodiment USB client 140c generally maintains a one to one relationship with its corresponding USB server For instance in FIG 1 USB client 140c has a one to one relationship with USB server 120 That is the USB client 140c associates with the single USB server 120 and establishes a connection therewith to send encapsulated US 7 644 211 B2 9 USB messages between the USB client 140c and USB server 120 over data network 115 In the embodiment o
52. wledge message to the first USB server over the communications path established with the first USB server 34 The USB client apparatus of claim 33 the USB client apparatus further comprising a message queue configured to store the busy and the acknowledge messages for sending to the data network 35 The USB client apparatus of claim 30 wherein the USB client is connected to a single USB device
53. work address on the Ethernet data network and a USB client in communication with the data network and the USB device the USB client including 1 means for establishing communications paths with the first and second USB server means ii means for configuring an association module in the USB client with a first association between the USB client and the first USB server and a second associa tion between the USB client and the second USB server 111 means for establishing a data transfer path with the first USB server means the data transfer path enabling passing data between the USB client and the first USB server means over the data network and iv means for sending a busy message to the second USB server means over the communications path estab lished with the second USB server means when the data transfer path is established with the first USB server means 29 The system of claim 28 wherein the USB client is connected to a single USB device 30 A USB client apparatus for controlling sending and receiving of universal serial bus USB messages between a plurality of host computers and an associated client device over a data network each host computer having an associated USB server in communication with the data network the USB client apparatus comprising a multi host controller in communication with the data network the multi host controller configured to 1 establish communications paths withthe USB servers

Download Pdf Manuals

image

Related Search

Related Contents

HILV(S)(F) - Smedegaard  dehumidifier features  Sanyo SC-B1230 User's Manual  傘安全に関するご注意  View PDF - e  Acer Aspire C100  Grand Prix  

Copyright © All rights reserved.
Failed to retrieve file