`Amoni et al.
`
`I lllll llllllll Ill lllll lllll lllll lllll lllll 111111111111111111111111111111111
`US005884086A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,884,086
`Mar. 16, 1999
`
`[54] SYSTEM AND METHOD FOR VOLTAGE
`SWITCHING TO SUPPLY VARIOUS
`VOLTAGES AND POWER LEVELS TO A
`PERIPHERAL DEVICE
`
`[75]
`
`Inventors: Sergio Amoni, Raleigh; Paul Daniel
`Kangas, Cary; John David Landers,
`Jr., Raleigh, all of N.C.
`
`[73] Assignee: International Business Machines
`Corporation, Armonk, N.Y.
`
`[21] Appl. No.: 842,695
`
`[22] Filed:
`
`Apr. 15, 1997
`
`Int. Cl. 6
`........................................................ G06F 1/26
`[51]
`[52] U.S. Cl. ................................ 395/750.01; 395/750.02;
`364/492
`[58] Field of Search ......................... 395/750.01, 750.03,
`3951750.07, 750.06; 364/707, 492
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,782,355
`4,884,287
`4,901,217
`5,121,500
`5,179,710
`5,313,642
`5,408,669
`5,483,656
`5,493,684
`5,514,859
`
`11/1988 Sakai et al. ............................... 396/72
`11/1989 Jones et al. ............................. 375/377
`2/1990 Wilson .................................... 363/126
`6/1992 Arlington et al. ................. 395/750.07
`1/1993 Coschieri ........................... 395/750.01
`5/1994 Seigel ................................. 3951750.05
`4/1995 Stewart et al. ..................... 395/750.01
`1/1996 Oprescu et al. ................... 3951750.03
`2/1996 Gephardt et al. .................. 395/750.04
`5/1996 Seigel ...................................... 235/462
`
`5,560,022
`5,652,895
`5,742,514
`
`9/1996 Dunstan et al. ................... 395/750.01
`7/1997 Poisner ............................... 395/750.04
`4/1998 Bonola .................................... 379/258
`
`OTHER PUBLICATIONS
`
`Halfhill, T. R., "The New PC," BYTE, Oct. 1995, pp. 52-64.
`Klein, R. H., "Bus Pass for Serial Killers," New Electronics,
`9 Jan. 1996, pp. 18-19.
`Universal Serial Bus Specification, 1.0 Final Draft Revision,
`Nov. 13, 1995, Copyright ©1995, Compaq Computer Cor(cid:173)
`poration, et al.
`Wright, M., Ed., "USE and IEEE 1394: Pretenders, Con(cid:173)
`tenders, or Locks for Ubiquitous Desktop Deployment?"
`EDN, Apr. 25, 1996, pp. 79-91.
`
`Primary Examiner---Gopal C. Ray
`Attorney, Agent, or Firm-John D. Flynn; Winstead,
`Sechrest & Minick, PC
`
`[57]
`
`ABSTRACT
`
`Within a data processing system, such as a personal
`computer, non-standard, or auxiliary, voltage and current
`may be supplied to an attached peripheral device along with
`standard Universal Standard Bus (USE) power and signal(cid:173)
`ling. A communication protocol is enabled between the host
`system and the peripheral device to permit the peripheral
`device to communicate its power requirements to the host
`device so that the host device can switch the proper voltage
`and current through the USE cable to the peripheral device.
`This allows the peripheral device to obtain power without
`having to connect to an AC power supply.
`
`21 Claims, 9 Drawing Sheets
`
`HUB/FUNCTION
`
`HUB/FUNCTION
`
`HOST/HUB
`
`702
`
`104
`
`105
`
`106
`
`108
`
`1
`
`1
`
`FUNCTION
`
`FUNCTION
`
`FUNCTION
`
`FUNCTION
`
`FUNCTION
`
`HUB
`
`109
`
`t
`
`HUB
`
`LGE-1009 / Page 1 of 16
`LGE v. Fundamental
`
`
`
`U.S. Patent
`
`Mar. 16, 1999
`
`Sheet 1 of 9
`
`5,884,086
`
`HUB/FUNCTION
`
`HUB/FUNCTION
`
`HOST/HUB
`
`j 103
`
`j 102
`
`702
`
`701
`
`105
`
`104
`
`702
`
`702
`
`106
`
`108
`
`1
`
`1
`
`1
`
`FUNCTION
`
`FUNCTION
`
`FUNCTION
`
`FUNCTION
`
`FUNCTION
`
`FIG. 1
`
`j 101
`
`701
`
`702
`
`HUB
`
`109
`
`f
`
`HUB
`
`LGE-1009 / Page 2 of 16
`
`
`
`~ = 00
`
`~
`00
`~ 00
`Ul
`
`0--,
`
`\C
`0 .....,
`N
`~ ....
`'Jl =(cid:173)~
`
`\C
`\C
`""""
`\C
`"""" ~~
`!"'l
`~
`~
`
`~ = ......
`~ ......
`~
`•
`\JJ.
`d •
`
`}~9
`.
`}~7
`
`}as
`}03
`
`SIGNAL
`+5V/GND _
`AUX VOLT -
`
`:-
`
`-s11
`
`/N
`
`/ ;~N
`
`• • •
`
`'-223
`
`VOLTAGE2-.-CIRCUIT
`SWITCH
`VOLTAGE 1-FET
`
`VOLTAGE N_!_ SELECT 1
`
`SIGNAL
`+5V/GND _
`AUX VOLT -
`
`-
`
`l
`
`l
`
`r--i
`
`""'
`
`211
`
`~
`
`LOGIC
`CODER
`
`DE-
`
`SELECT
`VOLTAGE
`
`-.
`
`.
`
`~
`
`1 TOX
`
`~
`
`ROLLER
`CONT-
`
`&
`
`REPEATER
`
`HUB
`
`""'
`
`I+--
`PAIR
`SIGNAL
`USB
`
`217
`
`FIG.2
`
`238 /
`
`-
`
`-
`
`EXPANSION
`
`1/0 BUS
`
`237 "-
`
`i-
`i -
`
`I BIOS
`236'
`I HOD
`235 '-
`
`PAIR
`SIGNAL
`USB
`i.--219
`
`-
`
`(
`LOGIC
`~ MAIN
`HOST
`
`LOGIC
`USB
`
`4-
`
`CONTROLLER
`I FOO~ PARALLEL
`SERIAL
`
`FOO
`
`233,
`
`I+-
`
`CONTROLLER
`
`VIDEO
`
`232,
`
`14--
`
`201
`
`& AUXILIARY POWER
`WI INTEGRATED HUB
`
`HOST COMPUTER
`
`PROCESSING
`
`UNIT
`
`CENTRAL
`
`-
`
`231
`
`SIGNAL
`+5V/GND _
`AUX VOLT
`
`;_
`
`:::-
`
`SIGNAL
`+5V/GND -
`AUX VOLT
`
`-
`
`v
`222
`
`/
`221
`
`•
`
`-
`
`VOLTAGE N_.!._ SELECT
`VOLTAGE2-.-CIRCUIT
`SWITCH
`VOLTAGE1-FET
`
`•
`
`/220
`
`,___+5V
`r--L-VOLTAGE N
`~VOLTAGE2
`1-VOLTAGE 1
`
`•
`
`SUPPLY
`POWER
`HOST
`
`..-----AJC INPUT
`
`VOLTAGE N_l_ SELECT
`VOLTAGE 2----.--CIRCUIT
`SWITCH
`VOLTAGE 1-FET
`., -
`VOLTAGE N_!_ SELECT ~,
`VOLTAGE 2----.-CIRCUIT
`SWITCH
`VOLTAGE 1-FET
`
`LGE-1009 / Page 3 of 16
`
`
`
`~ .... = 00
`
`0--,
`
`00
`00
`....
`Ul
`
`\C
`0 .....,
`~
`
`~ .....
`'Jl =(cid:173)~
`
`\C
`\C
`'"""'
`\C
`'"""' ~~
`!"'l
`~
`~
`
`~ = ......
`~ ......
`~
`•
`\JJ.
`d •
`
`/ N
`
`/N
`
`/N
`
`• •
`•
`
`"' 311
`
`331
`
`CODER
`
`DE·
`
`-
`
`CONTROLLER
`
`HUB
`I
`
`FIG. 3
`
`}3~7
`.
`}3~5
`
`;;
`
`;;
`
`
`-.
`
`;;
`
`-
`
`), I
`
`\.
`
`+SV/GND -
`
`+SV/GND
`AUX VOLT
`
`\.
`
`I/
`322
`~,
`
`}303
`
`
`-.
`
`--
`
`J
`+SV/GND
`AUX VOLT
`
`AUX VOLT
`
`1.J21
`
`-
`
`/320
`
`-+SV
`_L_VOLTAGE N
`...___VOLTAGE 2
`---VOLTAGE 1
`
`•
`
`SUPPLY
`POWER
`
`HUB
`
`-
`
`301,
`
`""
`
`300
`
`A/C POWER
`
`HUB
`
`SWITCH
`FET
`
`VOLTAGE N_!_
`•
`VOLTAGE 2-.-
`VOLTAGE 1-
`
`SWITCH
`FET
`
`VOLTAGE N--1.
`VOLTAGE 2----.-
`VOLTAGE 1-
`
`SWITCH
`FET
`
`VOLTAGE N__!._
`•
`VOLTAGE 2---.-
`VOLTAGE 1-
`
`x
`
`-
`
`2
`
`-
`
`1
`
`--
`
`REPEATER
`
`HUB
`1 TOX
`
`-l-
`
`+SV
`
`-
`
`""
`
`317
`
`GND
`
`+SV
`
`T
`
`PAIR
`SIGNAL
`
`\
`
`(
`
`USB SIGNAUVOL T
`
`STANDARD
`
`CABLE
`
`313,
`
`RY
`
`WITH AUXILIA
`USB HUB
`
`POWER
`
`LGE-1009 / Page 4 of 16
`
`
`
`~ .... = 00
`
`0--,
`
`00
`00
`....
`Ul
`
`\C
`0 ......,
`.i;;..
`~ ......
`'Jl =(cid:173)~
`
`\C
`\C
`"'""
`\C
`"'"" ~~
`!"l
`~
`~
`
`~ = ......
`~ ......
`~
`•
`\JJ.
`d •
`
`FIG. 4
`
`417
`
`CONTROLLER
`
`MICRO
`
`SI
`UNIF
`
`LOGIC
`MAIN
`DEVICE
`
`401
`
`419
`
`REGULATOR
`
`403
`
`-
`
`413
`
`SWITCH
`
`FET
`
`USB 1/0 DEVICE
`
`400
`
`VOLT
`AUX.
`
`WITH AUXILIARY
`
`USB DEVICE
`
`POWER
`
`LGE-1009 / Page 5 of 16
`
`
`
`U.S. Patent
`
`Mar. 16, 1999
`
`Sheet 5 of 9
`
`5,884,086
`
`w
`:::::c:::
`:::::c::: I-
`<( w :r:
`(_)
`:r: :::::c::: I-
`<(
`Cf) (_) -
`II
`Cl<(~
`z Cl..
`Cl
`<(
`Cl..
`:r:
`
`1-w
`:::::c:::
`(_)
`<(
`Cl..
`
`~ <(
`
`Cl
`
`Cl..
`:::>
`1-
`1- w w Cf)
`II
`:::::c::'.
`(_) w
`<( Cl..
`~~ Wo
`
`:::::C:::-
`0 Cl..
`I- :r:
`I-
`~
`
`Lt> .
`CJ -LL
`
`Cl
`Cl..
`
`(_) a:
`
`(_)
`
`~ Cl
`
`Cl..
`:::>
`1-w
`
`Cf)
`
`Cf)
`
`(_) a:
`
`(_)
`
`Cl.. z w
`
`Cf)
`
`Cf) w a:
`
`Cl
`Cl
`<(
`
`Cl
`Cl..
`
`z
`a:
`
`w s Cl..
`
`(_) z
`>(cid:173)Cf)
`
`LGE-1009 / Page 6 of 16
`
`
`
`U.S. Patent
`
`Mar. 16, 1999
`
`Sheet 6 of 9
`
`5,884,086
`
`601
`
`603
`
`605
`
`607
`
`609
`
`611
`
`613
`
`617
`
`618
`
`START ENUMERATION
`OF ATIACHED DEVICES
`
`CLEAR POWER ACCUMULATORS
`CLEAR OVERPOWER FLAGS
`
`HOST GETS PORT STATUS
`VIA STATUS PIPE DEVICE
`IN ATIACHED STATE
`
`HOST QUERIES HUB FOR
`NATURE OF A STATUS CHANGE
`
`USBPORTENABLEDAND
`PORT IS RESET
`
`100MA PROVIDED TO STANDARD +5V
`LINE DEVICE IN POWERED STATE
`
`HOST READS DEVICE DESCRIPTOR
`
`615
`
`NO
`
`STORE VOLTAGE, V
`AND CURRENT, I
`
`CALCULATE
`POWER= VXI
`
`FIG. GA
`
`c
`
`LGE-1009 / Page 7 of 16
`
`
`
`U.S. Patent
`
`Mar. 16, 1999
`
`Sheet 7 of 9
`
`5,884,086
`
`A
`
`c
`
`619
`
`IS
`POWER(V) +
`ACCUMULATOR(V)>
`MAX
`THRESHOLD
`
`YES
`
`621
`
`623
`
`ADD POWER(V) TO
`ACCUMULA TOR(V)
`
`SET
`OVERPOWER(V) FLAG
`
`625
`
`627
`
`629
`
`631
`
`ENABLE REQUIRED VOLTAGE TO
`PORT DEVICE IN AUX POWERED
`STATE
`
`DEVICE ASSIGNED UNIQUE ADDRESS
`IN ADDRESSED STATE
`
`HOST READS DEVICE
`CONFIGURATION DATA
`
`INCREMENT TO NEXT
`CONNECTED DEVICE
`
`YES
`
`END ENUMERATION
`
`635
`
`FIG. 68
`
`LGE-1009 / Page 8 of 16
`
`
`
`U.S. Patent
`
`Mar. 16, 1999
`
`Sheet 8 of 9
`
`5,884,086
`
`'701
`
`703
`
`FIG. 7
`
`LGE-1009 / Page 9 of 16
`
`
`
`U.S. Patent
`
`Mar. 16, 1999
`
`Sheet 9 of 9
`
`5,884,086
`
`803
`
`FIG. 8
`
`LGE-1009 / Page 10 of 16
`
`
`
`5,884,086
`
`1
`SYSTEM AND METHOD FOR VOLTAGE
`SWITCHING TO SUPPLY VARIOUS
`VOLTAGES AND POWER LEVELS TO A
`PERIPHERAL DEVICE
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`This application for patent is related to co-pending U.S.
`patent application Ser. No. 08/807,493, filed Feb. 27, 1997,
`entitled "ENHANCED UNIVERSAL SERIAL BUS,"
`which is hereby incorporated by reference herein.
`
`TECHNICAL FIELD
`
`The present invention relates to supplying various volt(cid:173)
`ages and power levels via a standard bus interface. More
`particularly, it relates to supplying multiple voltages via a
`Universal Serial Bus compatible interface.
`
`BACKGROUND INFORMATION
`
`Recently, personal computers ("PCs") used a variety of
`techniques for providing input and output. These included a
`serial port, usually an RS232, a parallel port and several ISA
`expansion slots included on the mother board. Connecting
`the PCs to anything more complicated than a mouse, modem
`or printer required the lid to be taken off and dip switches to
`be set and software configured. SCSI (small computer
`systems interface) permitted access to external storage
`devices, but required a large cable connector with the need
`to manually set ID numbers and have a terminator.
`The universal serial bus ("USE") is specified to be an
`industry standard extension to the PC architecture with a
`focus on computer telephony interface, consumer and pro(cid:173)
`ductivity applications. The USE architecture provides for 35
`ease of use of peripheral expansion, transfer rates up to 12
`megabits per second, protocol flexibility for mixed modes,
`isochronous data transfers, and asynchronous messaging.
`USE is a cable bus supporting data transfer between the host
`PC and a range of simultaneously testable peripherals. One 40
`host controller can support up to 127 physical devices using
`a tiered topology. The hub is at the center of each star with
`each wire segment creating a point-to-point connection of up
`to 5 meters. The 5 meter limitation may be between a host
`and a hub or a hub function or a hub connected to another 45
`hub or function.
`Alternatively, a number of peripherals can be daisy
`chained together through compound hubs via the 4-wire
`USE cable. One of the 4 wires referred to as VBUS provides
`a DC voltage of +5 volts and another wire provides a ground
`signal. The USE cable provides power to the devices along
`the chain. Signaling takes place over two wires between two
`end points. The signals of each end point are driven differ(cid:173)
`entially over a 90 ohm impedance with each receiver fea(cid:173)
`turing input sensitivity of at least 200 millivolts. A non- 55
`return to zero invert (NRZI) with bit stuffing to insure
`adequate transitions is used to carry the bus clock down the
`chain. A sync field precedes each data package to allow the
`receivers to synchronize their bit recovery clocks. The serial
`interface provides a bandwidth of 12 megabits per second 60
`and can connect as many as 127 devices to a host system.
`USE relies on a tiered star topology. Physically USE
`devices ranging from a mouse or joystick to telephones
`connect to a host via layers of multiport hubs. The requisite
`hub called "the root hub" is located in the host and can 65
`include multiple ports. Hubs are linked to USE devices via
`point-to-point connections. The host views all USE devices
`
`10
`
`2
`as if they connect in a true star arrangement. USE supports
`both the standard devices that operate a full 12 megabit rate
`and low end devices that use only a 1.5 megabit sub-channel.
`Hubs support 12 megabit operations and insure that 12
`5 megabit transmissions do not go to 1.5 megabit devices.
`USE cables that carry 12 megabit traffic require a shielded
`twisted pair construction on the signal pair and can be no
`longer than 5 meters. Low speed cables can be no longer
`than 3 meters and require no shielding or twisting of the
`signaling pair. The host uses a master slave protocol to
`control the bidirectional communications with USE devices.
`The interface employs a 1 KHZ bus clock that instigates
`bussing a new frame every 1 millisecond. The interface
`handles multiple transactions including time critical isoch-
`15 ronous transactions within each frame in 1 millisecond
`periods and 12 megabit per second bandwidth limits the type
`of isochronous data streams that the interface can success(cid:173)
`fully carry.
`One problem with the universal serial bus is that it
`20 provides only one voltage. Devices that operate at different
`voltages or have high power requirements are required to
`supply their own voltage sources and power sources. In
`some environments, for instance, the retail point-of-sale
`environment, this additional cabling for power creates a
`25 non-aesthetic appearance at the store front.
`These unresolved problems and deficiencies are clearly
`felt in the art and are solved by the invention in the manner
`described below.
`
`30
`
`SUMMARY OF THE INVENTION
`
`The foregoing need is addressed by the present invention
`which provides for the communication of auxiliary (non(cid:173)
`standard USE) voltage and current to downstream hub and
`peripheral devices in accordance with the needs of the
`downstream hub and/or peripheral devices. This is per(cid:173)
`formed over an enhanced USE connection, whereby stan(cid:173)
`dard USE signalling is provided along with the auxiliary
`power.
`Communication of auxiliary power requirements is pro(cid:173)
`vided from the peripheral device to the upstream hub or host,
`which then utilizes one or more switches to connect the
`auxiliary power to the port coupled to the downstream
`hub/peripheral device.
`The foregoing has outlined rather broadly the features and
`technical advantages of the present invention in order that
`the detailed description of the invention that follows may be
`better understood. Additional features and advantages of the
`invention will be described hereinafter which form the
`50 subject of the claims of the invention.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`For a more complete understanding of the present
`invention, and the advantages thereof, reference is now
`made to the following descriptions taken in conjunction with
`the accompanying drawings, in which:
`FIG. 1 illustrates a data processing system configured in
`accordance with the present invention;
`FIG. 2 illustrates a host computer with integrated hub and
`auxiliary power;
`FIG. 3 illustrates a hub with auxiliary power capabilities;
`FIG. 4 illustrates a peripheral device with auxiliary
`power;
`FIG. 5 illustrates a communication protocol for commu(cid:173)
`nicating auxiliary power requirements to the host from a
`peripheral device;
`
`LGE-1009 / Page 11 of 16
`
`
`
`5,884,086
`
`3
`FIG. 6 illustrates with FIGS. 6A and 6B a enumeration
`process for determining the auxiliary power requirements of
`peripheral devices;
`FIG. 7 illustrates a standard USE plug; and
`FIG. 8 illustrates a non-standard USE plug.
`
`DETAILED DESCRIPTION
`
`4
`conductor to supply the extra voltage. Of course other
`voltages could be added so that a single cable may supply
`three or more voltages with the addition of other conductors
`or wires. For purposes of clarity of understanding, the
`5 present invention will be described with respect to two
`conductor types in the cable. Cables with at least one other
`conductor (i.e., for instance 5 wire) are referred to as
`auxiliary (or non-standard) cables in that they supply or are
`capable of supplying auxiliary power. The auxiliary cables
`10 are designed to operate seamless with non-auxiliary pow(cid:173)
`ered devices.
`In other words, some of cables 702 and corresponding
`connectors 701 illustrated in FIG. 1 may implement non(cid:173)
`standard USE, or auxiliary, configurations for providing
`15 other than standard USE voltages to hubs or peripherals.
`Referring next to FIG. 8, there is illustrated auxiliary plug
`801, which further includes a non-standard USE portion
`804, which may communicate non-standard USE power
`transmission, such as auxiliary voltage signals and corre-
`20 sponding ground signals. Plug 801 has overmold 806 cor(cid:173)
`responding to overmold 704, standard USE portion (plug
`housing) 803 corresponding to shielded standard portion
`(plug housing) 703, and bus 802 corresponding to bus 702,
`except that additional hardware and parts have been added
`25 to implement non-standard USE portion 804. Housing 804
`may include a housing having cut-out portion 805, which
`enables housing 804 to mate with a non-standard USE
`receptacle through specifically designed chassis cut-outs.
`Please refer to cross-referenced patent application Ser. No.
`08/807,493, filed Feb. 27, 1997 for a further discussion of
`such chassis cut-outs and non-standard plug 801.
`Using the auxiliary cable, peripheral devices can be
`supplied power at two or more distinct voltages: the standard
`USE voltage of +5 and one or more other voltages. The
`35 voltage and power requirements for the auxiliary power can
`be negotiated with the host or hub. The auxiliary powered
`USE hub or function uses the standard USE communica(cid:173)
`tions and standard USE power to request a second voltage
`and power.
`Auxiliary Host Device
`FIG. 2 illustrates a host device 230 with multiple auxiliary
`USE ports 203, 205, 207, 209. The host device 230 could be
`the same as host/hub 101 illustrated in FIG. 1. The host
`device 230 may include central processing unit 231, video
`controller 232, serial parallel floppy disk drive controller
`233, floppy disk drive 234, hard disk drive 235, bias 236,
`expansion 1/0 bus 237, and host main logic 238. Naturally,
`host 230 may include other well-known data processing
`system elements. Note that a standard USE device can use
`an auxiliary USE port by using a standard USE cable.
`The power supply 201 takes AC input and provides a
`plurality of DC voltages, including the USE standard volt(cid:173)
`age +5 volts. Other voltages may include +12, -12, +24,
`-24, or -3 volts. Any suitable voltages may be selected. The
`55 non-standard voltages are supplied by conductors (not
`shown) to switch circuits 220-223 provided for each of the
`ports 203, 205, 207, 209, respectively. In addition to the
`standard +5 volts, each port 203, 205, 207, 209 shown in
`FIG. 2 is capable of providing an auxiliary voltage from one
`60 of the many voltages output by the power supply 201. The
`host 230 can select which ports are provided with which
`auxiliary voltages using the decoder 211. The decoder 211
`can direct each of the switches 220-223 to select the
`appropriate voltage for each of the ports 203, 205, 207, 209
`65 as requested by the auxiliary peripheral device.
`A ltoX hub repeater and controller 217 provides for data
`communications from the host 230 to the peripherals and
`
`In the following description, numerous specific details are
`set forth such as specific voltages and currents to provide a
`thorough understanding of the present invention. However,
`it will be obvious to those skilled in the art that the present
`invention may be practiced without such specific details. In
`other instances, well-known circuits have been shown in
`block diagram form in order not to obscure the present
`invention in unnecessary detail. For the most part, details
`concerning timing considerations and the like have been
`omitted inasmuch as such details are not necessary to obtain
`a complete understanding of the present invention and are
`within the skills of persons of ordinary skill in the relevant
`art.
`Refer now to the drawings wherein depicted elements are
`not necessarily shown to scale and wherein like or similar
`elements are designated by the same reference numeral
`through the several views.
`Within the following description, a standard universal
`serial bus connector, receptacle, plug, and signalling all refer
`to the USE architecture described within the "Universal
`Serial Bus Specification," 1.0 Final Draft Revision, Copy(cid:173)
`right Nov. 13, 1995, which is hereby incorporated by ref- 30
`erence herein. While an embodiment of the invention will be
`illustrated using the Universal Serial Bus, it is not limited to
`the USE.
`Referring to FIG. 1, there is illustrated a diagram of how
`hubs provide connectivity in a desktop computer environ(cid:173)
`ment. The data processing system shown in FIG. 1 includes
`computer (PC) 101, monitor 102, and keyboard 103.
`Coupled to PC 101 are phone 108 and another hub 109.
`Coupled to monitor 102 are speaker 106 and microphone
`(MIC) 107. Coupled to keyboard 103 are pen 104 and mouse 40
`105. PC 101 is coupled to monitor 102, which is coupled to
`keyboard 103. Coupling is via USE buses 702 with USE
`plug connectors 701 (see FIG. 7).
`A function is a USE device that is able to transmit or
`receive data or control information over the bus. A function
`is typically implemented as a separate peripheral device with
`a cable that plugs into a port on a hub. However, a physical
`package may implement multiple functions and an embed(cid:173)
`ded hub with a single USE cable. This is known as a
`compound device. A compound device appears to the host as
`a hub with one or more permanently attached USE devices.
`Each function contains configuration information that
`describes its capabilities and resource requirements. Before
`a function can be used, it must be configured by the host.
`This configuration includes allocating USE bandwidth and
`selecting function specific configuration options.
`Referring next to FIG. 7, there is illustrated standard USE
`cable plug 701 having bus 702 coupled thereto. Plug 701
`includes a standard USE shielded plug housing 703, which
`conforms to the standard USE architecture described in the
`Universal Serial Bus specification referenced above. Stan(cid:173)
`dard USE shielded plug housing 703 operates to commu(cid:173)
`nicate differentially driven data signals D+ and D-, a 5-volt
`signal, and a ground signal.
`Some or all portions of the topology shown in FIG. 1 may
`use a modified (enhanced) USE cable having an extra
`
`50
`
`45
`
`LGE-1009 / Page 12 of 16
`
`
`
`5,884,086
`
`5
`hubs (see FIG. 1) and also provides the host 230 with data
`communications from the peripherals and hubs. The USE
`host/hub 230 is generally a Very Large Scale Integrated
`(VLSI) state machine which is controlled by the host CPU
`231. The Auxiliary USE logic is shown in function block 5
`219. The USE logic 219 handles standard USE functions as
`well as auxiliary power requests.
`Auxiliary Hub
`FIG. 3 illustrates a functional block diagram of an aux(cid:173)
`iliary hub 300 which could be keyboard 103 or monitor 102. 10
`The auxiliary hub 300 provides for three auxiliary powered
`USE ports 303, 305 and 307 although more could be added.
`Each of the ports 303, 305, 307 provide a standard USE port
`with the additional auxiliary voltage. The auxiliary hub 300
`is connected to the host 230 (see FIG. 1) via standard USE 15
`cable 313. Although discussed as connecting to the host/hub
`230, cable 313 may connect to another hub (not shown),
`which may be connected to another hub (not shown) even(cid:173)
`tually reaching the host/hub 230.
`The auxiliary hub 300 contains its own AC/DC power 20
`supply 301, which is capable of outputting at least one
`voltage other than 5 volts (i.e., at least one auxiliary voltage)
`and can produce a plurality of voltages including the USE
`standard +5 volts. The USE standard voltage may be sup(cid:173)
`plied to the auxiliary ports 303, 305 and 307 from the host 25
`230 via the host-to-hub cable 313 rather than from the power
`supply 301.
`The non-USE standard voltages are supplied by conduc(cid:173)
`tors (not shown) to switch circuits 320-322. Switch circuits
`320--322 are associated with each of the ports 303, 305 and 30
`307. In addition to the standard +5 volts, each port 303, 305,
`307 is capable of providing an auxiliary voltage from one of
`the many voltages output by the power supply 301.
`The hub 300 can select which ports are provided with
`which auxiliary voltages, if any, using the decoder 311. The 35
`decoder 311 can direct each of the switches 320-322 to
`select the appropriate voltage for each of the ports 303, 305,
`307, respectively, as requested by the auxiliary peripheral
`device.
`The hub controller 331 is coupled to the decoder 311 and
`ltoX hub repeater 317. The repeater 317 makes sure (1) data
`sent from cable 313 makes its way to the addressed
`peripheral, and (2) data flowing upstream makes it way to
`the host 230.
`Use of the power supply 301 in the hub 300 requires that 45
`NC power be supplied to the hub 300. This entails use of a
`power cord and access to NC outlet. Normally this would be
`an AC outlet on the host computer. Use of the power cord
`can be eliminated by using upstream auxiliary power in a
`DC-DC converter if a different voltage is required by the 50
`peripheral devices. The power available to downstream
`devices would be limited, since total power received from
`the upstream auxiliary power source is divided among the
`downstream devices.
`In FIG. 3, this would be implemented by replacing 55
`standard USE cable 313 with an enhanced USE cable with
`auxiliary power conductors, as is disclosed herein. The
`auxiliary power conductors would flow to downstream
`ports. Note, however, that the downstream ports would then
`no longer be able to request any type of auxiliary voltage. An 60
`allowance would need to be made for hub 300 to request a
`specific auxiliary voltage from the upstream host (e.g., the
`highest available voltage from the host). Then, during the
`auxiliary power request phase of step 615 in FIG. 6A, host
`software could request downstream devices to resubmit their 65
`request based on available voltage. A device could then
`signal a new power request or that it does not have DC-DC
`
`6
`capability and cannot be configured, or the host could
`determine that the request exceeds the host power supply
`capacity and not configure the device.
`The implications to the upstream power management is
`that the upstream power management for the auxiliary
`power is dictated by the host computer power management
`protocol. Auxiliary power should be viewed as the device's
`"local power supply" for power management purposes.
`Please refer to section 7.2.1.2 on "Self-Powered Hubs," and
`section 4.3.2 on "Power Management" within the Universal
`Serial Bus Specification referenced above.
`Peripheral Devices
`FIG. 4 illustrates a peripheral device 400 that can make
`use of auxiliary power. The auxiliary peripheral 400 is
`coupled to the auxiliary cable 413 as shown. The auxiliary
`cable 413 may be coupled to host 230, or hub 300. The
`auxiliary peripheral device ("APD") 400 makes use of
`standard USE signals to request auxiliary power. Thus,
`when the cable 413 is hot plugged, USE standard power
`signals (+5 volts) provide power to the microcontroller 417
`via regulator 403. The microcontroller 417 then can request
`an auxiliary voltage and power allocation using standard
`USE communications described below. As shown in FIG. 4,
`the APD 400 may include a switch 419 under control of the
`microcontroller 417. The switch 419 can prevent damage to
`the APD 400 by not permitting a connection from the
`auxiliary voltage line to the peripheral device's main logic
`401 until the microcontroller 417 has received input from
`the auxiliary host 230 or hub 300 that its auxiliary power
`request can be granted.
`Auxiliary Power Communication Protocol
`The auxiliary USE peripheral 400 makes use of an
`auxiliary power enumeration process that uses native USE
`power and communications. The USE communication pro(cid:173)
`tocol uses four types of transactions: Control, Bulk, Interrupt
`and Isochronous. The Control transaction is used during
`device enumeration to communicate device configuration
`information to the host. This is done in two stages: Setup and
`40 Status. The Setup stage contains three packets: Token, Data
`and Handshake. The Setup stage serial bit stream showing
`the three packets is illustrated in FIG. 5. The Data packet is
`formatted as shown in Table 1.
`
`TABLE I
`
`FIELD DESCRIPTION
`
`BYTES
`
`Request Type
`Request
`Value
`Index
`Length
`
`2
`2
`2
`
`The APD 400 can communicate its auxiliary power
`requirements in several ways. The first makes use of device
`descriptor data field as shown in Table II. The device
`descriptor data structure is returned to a host in response to
`a GET_DESCRIPTOR request type and has the following
`format:
`
`TABLE II
`
`FIELD DESCRIPTION
`
`BYTES
`
`Length of Descriptor
`Descriptor Type
`USE Specification Number
`
`2
`
`LGE-1009 / Page 13 of 16
`
`
`
`5,884,086
`
`7
`
`TABLE II-continued
`
`FIELD DESCRIPTION
`
`BYTES
`
`Device Class(vendor specific type
`~Ox FF)
`Device Sub-Class
`Device Protocol
`Max Packet Size
`Vendor ID
`Product ID
`Device Release Number
`Manufacturer ID String Index
`Product ID String Index
`Serial Number Index
`Number of Configurations
`
`2
`2
`2
`
`One way of transferring auxiliary power requirements
`from the device is to assign a vendor specific Device Class
`(OxFF) and designate a unique device sub-class assignment
`with unique encoded voltage and power requirements. Using
`a single byte: two bits (V2, Vl) could be allocated to voltage
`selection with the remaining six bits (C6,C5,C4,C3,C2,Cl)
`allocated to current requirements. For current, one of 64
`different levels could be specified or a fixed increment could
`be allocated such as 50 ma with bits Cl-C6 indicating in
`binary the number of increments. A fixed current increment
`eliminates the need for a look-up table in the ADP.
`A second way for the APD 400 to specify power require(cid:173)
`ments is to use a Product String Index pointing to a string
`containing voltage and current requirements. This string
`may be text format and include a voltage request (ie., "12V")
`and a current request (i.e., "800 ma"). The index to a product
`string is contained in the Device Descriptor at offset 15 (see
`section 9.6.1 of the Universal Serial Bus Specification
`referenced above). The index points to the location of a text
`string in UNICODE format (see section 9.6.5 of the Uni(cid:173)
`versal Serial Bus Specification).
`A third way of encoding the auxiliary power requirements
`is to use an iConfiguration Index located in the Configura(cid:173)
`tion Descriptor. This may also be specified in text format.
`The index to a configuration is located in the Configuration
`Descriptor at offset 6 (see section 9.6.2 of the Universal
`Serial Bus Specification) and points to the location of a text
`string of UNICODE format (see section 9.6.5 of the Uni(cid:173)
`versal Serial Bus Specification).
`Referring next to FIG. 6, which comprises FIGS. 6A and
`6B, there is illustrated a flow diagram illustrating a process,
`which may be implemented within USE logic 219 and/or
`within hub 300 for responding to request for auxiliary power
`from peripheral device 400. The process begins at step 601,
`wherein enumeration of all attached devices is begun. For
`example, one or more peripheral devices 400 may be
`coupled to ports 203, 205, 207 and/or 209, or to ports 303,
`305 and/or 307.
`In step 603, power accumulators are cleared and over(cid:173)
`power flags are cleared. The power accumulator is a math(cid:173)
`ematical variable stored in a specific host memory location.
`Its purpose is to store a running total of supplied auxiliary
`power from the host NC power supply. This variable is
`tested against the known maximum available power from
`the host power supply to prevent a host overpower condi(cid:173)
`tion.
`The subscript "v" indicates that there could be a separate
`power accumulator for each different voltage line. Power
`supplies generally limit maximum power on each voltage
`line, as well as an overall maximum power.
`The overpower flags are also variables and are used to
`store the condition that the host power supply cannot supply
`
`30
`
`8
`additional auxiliary power. There may be a separate over(cid:173)
`power flag for each auxiliary voltage (i.e., +12v, +24v, etc.).
`Thereafter, in step 605, the host/hub obtains port status via
`status pipe. Device is now in attached state. When a hub
`5 detects that a USE cable has been plugged into one of its
`downstream ports, it signals to host software that a change
`has occurred through Port Commands. An expanded dia(cid:173)
`gram of detecting a port status changed is shown in section
`11.8.2 of the Universal Serial Bus Specification. This is part
`10 ~sf t~:o~:di~d s~~!~u~.i~u~~r~~~n ~~fv:::aT~:~la~f ~h~~
`Specification. A general description of USE device states
`when first plugged in is given in the first several pages