`Amoni et al.
`
`USOO5884086A
`Patent Number:
`11
`(45) Date of Patent:
`
`5,884,086
`Mar 16, 1999
`
`54 SYSTEM AND METHOD FOR VOLTAGE
`SWITCHING TO SUPPLY WARIOUS
`VOLTAGES AND POWER LEVELS TO A
`
`5,560,022 9/1996 Dunstan et al. ................... 395/750.01
`5,652,895 7/1997 Poisner ........
`... 395/750.04
`5,742,514 4/1998 Bonola .................................... 379,1258
`
`
`
`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.
`
`Appl. No.: 842,695
`21
`22 Filed:
`Apr. 15, 1997
`(51) Int. Cl. .................................................. G06F 1126
`52 U.S. Cl. ................................ 395/75001; 395/75002.
`364/492
`58 Field of Search ......................... 395/75001, 750.03,
`395/750.07, 750.06; 364/707, 492
`References Cited
`
`56)
`
`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 (C) 1995, Compaq Computer Cor
`poration, et al.
`Wright, M., Ed., “USB and IEEE 1394: Pretenders, Con
`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 (USB) power and signal
`U.S. PATENT DOCUMENTS
`ling. A communication protocol is enabled between the host
`4,782,355 11/1988 Sakai et al. ............................... 396/72
`System and the peripheral device to permit the peripheral
`4,884,287 11/1989 Jones et al. ...
`... 375/377
`device to communicate its power requirements to the host
`4,901.217 2/1990 Wilson .............
`... 363/126
`device So that the host device can Switch the proper Voltage
`5,121,500 6/1992 Arlington et al. ...
`... 395/750.07
`and current through the USB cable to the peripheral device.
`5,179,710
`1/1993 Coschieri.
`... 395/750.01
`S. 3.E. SS ?et al... S.S. This allows the peripheral device to obtain power without
`5,483,656
`1/1996 Oprescu et al. .....
`S.A.,
`having to connect to an AC power supply.
`5,493,684 2/1996 Gephardt et al. ...
`... 395/750.04
`5,514,859 5/1996 Seigel ...................................... 235/462
`21 Claims, 9 Drawing Sheets
`
`2 : - -2
`
`eWar el al. .....................
`
`HUB/FUNCTION
`
`HUB/FUNCTION
`
`HOSTHUB
`
`103
`KEYBOARD
`701.
`J701
`701
`
`702
`
`102
`MONITOR
`701.701
`
`101
`
`701.701
`
`701
`
`701
`
`702
`
`702
`
`701
`
`702
`
`702
`
`701
`
`701
`
`701
`
`701
`
`701
`
`701
`
`104.
`
`105
`
`MOUSE
`
`SPEAKER
`106
`
`107
`
`108
`
`PHONE
`
`109
`
`FUNCTION
`
`FUNCTION
`
`FUNCTION
`
`FUNCTION
`
`FUNCTION
`
`HUB
`
`Fundamental Ex 2004-1
`ZTE et al. v Fundamental
`IPR2018-00110
`
`
`
`U.S. Patent
`
`Mar 16, 1999
`
`Sheet 1 of 9
`
`5,884,086
`
`HUB/FUNCTION
`
`HUB/FUNCTION
`
`HOST/HUB
`
`103
`KEYBOARD
`701.701
`701
`
`702
`
`102
`MONITOR
`701.701
`
`101
`
`701.701
`
`701
`
`1701
`
`702
`
`702
`
`701
`
`702
`
`702
`
`u701 O1
`
`701
`
`701
`
`701
`
`701
`
`701
`
`104
`
`105
`
`106
`
`107
`
`108
`
`IC
`
`FUNCTION
`
`FUNCTION
`
`FUNCTION
`
`FUNCTION
`
`FUNCTION
`
`HUB
`
`FIG. 1
`
`Fundamental Ex 2004-2
`ZTE et al. v Fundamental
`IPR2018-00110
`
`
`
`U.S. Patent
`
`Mar 16, 1999
`
`Sheet 2 of 9
`
`5,884,086
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Fundamental Ex 2004-3
`ZTE et al. v Fundamental
`IPR2018-00110
`
`
`
`Fundamental Ex 2004-4
`ZTE et al. v Fundamental
`IPR2018-00110
`
`
`
`U.S. Patent
`
`Mar 16, 1999
`
`Sheet 4 of 9
`
`5,884,086
`
`
`
`
`
`
`
`007
`
`
`
`HETTO HINOO
`
`TWN9||S
`
`Fundamental Ex 2004-5
`ZTE et al. v Fundamental
`IPR2018-00110
`
`
`
`U.S. Patent
`
`Mar 16, 1999
`
`Sheet 5 of 9
`
`5,884,086
`
`| EXIOWd W LWO
`
`
`
`Fundamental Ex 2004-6
`ZTE et al. v Fundamental
`IPR2018-00110
`
`
`
`U.S. Patent
`
`Mar 16, 1999
`
`Sheet 6 of 9
`
`5,884,086
`
`STARTENUMERATION
`OF ATTACHED DEVICES
`
`CLEAR POWER ACCUMULATORS
`CLEAR OVERPOWER FLAGS
`
`HOST GETS PORT STATUS
`VIA STATUS PIPEDEVICE
`INATTACHED STATE
`
`HOST OUERIES HUBFOR
`NATURE OF A STATUS CHANGE
`
`USB PORT ENABLED AND
`PORT IS RESET
`
`100MA PROVIDED TO STANDARD +5V
`LINE DEVICE IN POWERED STATE
`
`601
`
`603
`
`605
`
`607
`
`609
`
`611
`
`HOSTREADS DEVICE DESCRIPTOR -
`
`
`
`
`
`
`
`
`
`
`
`615
`
`DOES
`DEVICE
`REOURE AUX.
`POWER2
`
`YES
`
`STORE VOLTAGE, V
`AND CURRENT,
`
`CALCULATE
`POWER = WX
`
`NO
`
`617
`
`618
`
`
`
`
`
`
`
`
`
`Fundamental Ex 2004-7
`ZTE et al. v Fundamental
`IPR2018-00110
`
`
`
`U.S. Patent
`
`Mar 16, 1999
`
`Sheet 7 of 9
`
`5,884,086
`
`
`
`619
`
`
`
`
`
`
`
`POWER(V)+
`ACCUMULATOR(V)>
`MAX
`THRESHOLD
`
`YES
`
`621
`
`
`
`
`
`625
`
`ADD POWER(V) TO
`ACCUMULATOR(V)
`
`SET
`OVERPOWER(V) FLAG
`
`623
`
`ENABLE RECURED VOLTAGETO
`PORT DEVICE IN AUXPOWERED
`STATE
`
`DEVICE ASSIGNED UNIQUE ADDRESS
`IN ADDRESSED STATE
`
`
`
`629
`
`631
`
`HOST READS DEVICE
`CONFIGURATION DATA
`
`INCREMENT TO NEXT
`CONNECTED DEVICE
`
`
`
`YES
`
`633
`
`
`
`MORE
`DEVICESTO
`ENUMERATE?
`
`NO
`
`END ENUMERATION
`
`635
`
`F.G. 6B
`
`Fundamental Ex 2004-8
`ZTE et al. v Fundamental
`IPR2018-00110
`
`
`
`U.S. Patent
`
`Mar 16, 1999
`
`Sheet 8 of 9
`
`5,884,086
`
`
`
`FIG. 7
`
`Fundamental Ex 2004-9
`ZTE et al. v Fundamental
`IPR2018-00110
`
`
`
`U.S. Patent
`
`Mar 16, 1999
`
`Sheet 9 of 9
`
`5,884,086
`
`
`
`FG. 8
`
`Fundamental Ex 2004-10
`ZTE et al. v Fundamental
`IPR2018-00110
`
`
`
`5,884,086
`
`1
`SYSTEMAND METHOD FOR WOLTAGE
`SWITCHING TO SUPPLY WARIOUS
`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
`ages and power levels via a Standard bus interface. More
`particularly, it relates to Supplying multiple Voltages via a
`Universal Serial Bus compatible interface.
`
`15
`
`2
`as if they connect in a true Star arrangement. USB 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
`megabit transmissions do not go to 1.5 megabit devices.
`USB 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 USB 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
`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
`fully carry.
`One problem with the universal serial bus is that it
`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
`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.
`
`SUMMARY OF THE INVENTION
`The foregoing need is addressed by the present invention
`which provides for the communication of auxiliary (non
`standard USB) 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
`formed over an enhanced USB connection, whereby stan
`dard USB Signalling is provided along with the auxiliary
`power.
`Communication of auxiliary power requirements is pro
`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
`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
`nicating auxiliary power requirements to the host from a
`peripheral device;
`
`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
`25
`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 (“USB”) is specified to be an
`industry standard extension to the PC architecture with a
`focus on computer telephony interface, consumer and pro
`ductivity applications. The USB architecture provides for
`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.
`USB is a cable bus supporting data transfer between the host
`PC and a range of Simultaneously testable peripherals. One
`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
`hub or function.
`Alternatively, a number of peripherals can be daisy
`chained together through compound hubs via the 4-wire
`USB 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 USB 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
`entially over a 90 ohm impedance with each receiver fea
`turing input sensitivity of at least 200 millivolts. A non
`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
`and can connect as many as 127 devices to a host System.
`USB relies on a tiered star topology. Physically USB
`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
`include multiple ports. Hubs are linked to USB devices via
`point-to-point connections. The host views all USB devices
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Fundamental Ex 2004-11
`ZTE et al. v Fundamental
`IPR2018-00110
`
`
`
`5,884,086
`
`15
`
`25
`
`35
`
`40
`
`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 USB plug; and
`FIG. 8 illustrates a non-standard USB plug.
`DETAILED DESCRIPTION
`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 USB architecture described within the “Universal
`Serial Bus Specification, 1.0 Final Draft Revision, Copy
`right Nov. 13, 1995, which is hereby incorporated by ref
`erence herein. While an embodiment of the invention will be
`illustrated using the Universal Serial Bus, it is not limited to
`the USB.
`Referring to FIG. 1, there is illustrated a diagram of how
`hubs provide connectivity in a desktop computer environ
`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
`105. PC 101 is coupled to monitor 102, which is coupled to
`keyboard 103. Coupling is via USB buses 702 with USB
`plug connectors 701 (see FIG. 7).
`A function is a USB 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
`ded hub with a single USB cable. This is known as a
`compound device. A compound device appears to the host as
`a hub with one or more permanently attached USB 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 USB bandwidth and
`Selecting function specific configuration options.
`Referring next to FIG. 7, there is illustrated standard USB
`cable plug 701 having bus 702 coupled thereto. Plug 701
`includes a standard USB shielded plug housing 703, which
`conforms to the standard USB architecture described in the
`Universal Serial Bus specification referenced above. Stan
`dard USB shielded plug housing 703 operates to commu
`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) USB cable having an extra
`
`45
`
`50
`
`55
`
`60
`
`65
`
`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
`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
`are designed to operate SeamleSS with non-auxiliary pow
`ered devices.
`In other words, some of cables 702 and corresponding
`connectors 701 illustrated in FIG. 1 may implement non
`Standard USB, or auxiliary, configurations for providing
`other than standard USB voltages to hubs or peripherals.
`Referring next to FIG. 8, there is illustrated auxiliary plug
`801, which further includes a non-standard USB portion
`804, which may communicate non-standard USB power
`transmission, Such as auxiliary Voltage Signals and corre
`sponding ground signals. Plug 801 has overmold 806 cor
`responding to overmold 704, standard USB 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
`to implement non-standard USB portion 804. Housing 804
`may include a housing having cut-out portion 805, which
`enables housing 804 to mate with a non-standard USB
`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
`USB voltage of +5 and one or more other voltages. The
`Voltage and power requirements for the auxiliary power can
`be negotiated with the host or hub. The auxiliary powered
`USB hub or function uses the standard USB communica
`tions and Standard USB power to request a Second Voltage
`and power.
`Auxiliary Host Device
`FIG. 2 illustrates a host device 230 with multiple auxiliary
`USB 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, bios 236,
`expansion I/O bus 237, and host main logic 238. Naturally,
`host 230 may include other well-known data processing
`system elements. Note that a standard USB device can use
`an auxiliary USB port by using a standard USB cable.
`The power supply 201 takes AC input and provides a
`plurality of DC voltages, including the USB standard volt
`age +5 Volts. Other Voltages may include +12, -12, +24,
`-24, or -3 volts. Any Suitable Voltages may be Selected. The
`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
`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
`as requested by the auxiliary peripheral device.
`A 1 toX hub repeater and controller 217 provides for data
`communications from the host 230 to the peripherals and
`
`Fundamental Ex 2004-12
`ZTE et al. v Fundamental
`IPR2018-00110
`
`
`
`5,884,086
`
`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 devices
`“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 USB Signals to request auxiliary power. Thus,
`when the cable 413 is hot plugged, USB 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
`USB 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 USB peripheral 400 makes use of an
`auxiliary power enumeration process that uses native USB
`power and communications. The USB communication pro
`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
`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.
`
`15
`
`25
`
`35
`
`40
`
`S
`hubs (see FIG. 1) and also provides the host 230 with data
`communications from the peripherals and hubs. The USB
`host/hub 230 is generally a Very Large Scale Integrated
`(VLSI) state machine which is controlled by the host CPU
`231. The Auxiliary USB logic is shown in function block
`219. The USB logic 219 handles standard USB functions as
`well as auxiliary power requests.
`Auxiliary Hub
`FIG. 3 illustrates a functional block diagram of an aux
`iliary hub 300 which could be keyboard 103 or monitor 102.
`The auxiliary hub 300 provides for three auxiliary powered
`USB ports 303,305 and 307 although more could be added.
`Each of the ports 303,305,307 provide a standard USB port
`with the additional auxiliary voltage. The auxiliary hub 300
`is connected to the host 230 (see FIG. 1) via standard USB
`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
`tually reaching the host/hub 230.
`The auxiliary hub 300 contains its own AC/DC power
`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 USB
`standard +5 volts. The USB standard voltage may be Sup
`plied to the auxiliary ports 303, 305 and 307 from the host
`230 via the host-to-hub cable 313 rather than from the power
`supply 301.
`The non-USB standard voltages are supplied by conduc
`tors (not shown) to Switch circuits 320-322. Switch circuits
`320–322 are associated with each of the ports 303,305 and
`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
`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
`1 toX 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
`A/C power be supplied to the hub 300. This entails use of a
`power cord and access to A/C 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
`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
`Standard USB cable 313 with an enhanced USB 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
`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
`request based on available Voltage. A device could then
`Signal a new power request or that it does not have DC-DC
`
`45
`
`50
`
`55
`
`60
`
`65
`
`TABLE I
`
`FIELD DESCRIPTION
`
`BYTES
`
`Request Type
`Request
`Value
`Index
`Length
`
`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
`USB Specification Number
`
`1.
`1.
`2
`
`Fundamental Ex 2004-13
`ZTE et al. v Fundamental
`IPR2018-00110
`
`
`
`BYTES
`
`1.
`
`7
`
`TABLE II-continued
`
`FIELD DESCRIPTION
`
`Device Class(vendor specific type
`=0xFF)
`Device Sub-Class
`Device Protocol
`Max Packet Size
`Wendor ID
`Product ID
`Device Release Number
`Manufacturer ID String Index
`Product ID String Index
`Serial Number Index
`Number of Configurations
`
`One way of transferring auxiliary power requirements
`from the device is to assign a vendor Specific Device Class
`(0xFF) and designate a unique device Sub-class assignment
`with unique encoded Voltage and power requirements. Using
`a single byte: two bits (V2, V1) could be allocated to voltage
`selection with the remaining six bits (C6,C5,C4,C3,C2,C1)
`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 C1-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
`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
`versal Serial Bus Specification).
`A third way of encoding the auxiliary power requirements
`is to use an iConfiguration Index located in the Configura
`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
`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 USB 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
`power flags are cleared. The power accumulator is a math
`ematical variable Stored in a specific host memory location.
`Its purpose is to Store a running total of Supplied auxiliary
`power from the host A/C power supply. This variable is
`tested against the known maximum available power from
`the host power Supply to prevent a host overpower condi
`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
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,884,086
`
`8
`additional auxiliary power. There may be a separate over
`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
`detects that a USB 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
`gram of detecting a port Status changed is shown in Section
`11.8.2 of the Universal Serial Bus Specification. This is part
`of the standard USB Bus Enumeration and a summary of this
`is shown in section 9.1.2 of the Universal Serial Bus
`Specification. A general description of USB device States
`when first plugged in is given in the first Several pages of
`chapter 9 of the Universal Serial Bus Specification.
`Thereafter, in step 607, the host/hub queries the downstream
`hub/peripheral for the nature of a Status change. Additional
`Port Commands are used by host software to determine what
`type of change occurred at the hub's downstream port, Such
`as an Attach or Detach, etc.
`Next, in step 609, the port is enabled and is reset. In step
`611, standard USB power is supplied (100 milliamps pro
`vided to a standard +5 volt line) to the device through the
`port and USB line. Next, in step 613, the host/hub reads the
`Device Descriptor, which is supplied by the downstream
`hub/peripheral device. In step 615, a determination by
`above-mentioned methods is made whether or not the hub/
`peripheral device requires any auxiliary power. If not, the
`process proceeds to step 627. However, if the device does
`require auxiliary power, then the proceSS proceeds to Step
`617 to store the voltage and current requirements of the
`hub/peripheral device. In step 618, the power is computed.
`Thereafter, in step 619, a determination is made whether
`or not the power calculated in Step 618 plus any power
`calculated in an accumulator value with respect to any other
`devices attached to ports is greater than the maximum
`threshold of the host/hub. If yes, then in step 623, an
`overpower flag is Set and the process proceeds to Step 631.
`In step 621, the calculated power from step 618 is added
`to the accumulator value. In Step 625, the Voltage required
`by the hub/peripheral device is enabled via the auxiliary
`voltage line. In step 627, the hub/peripheral device is
`assigned a unique address. Device is now in the Address
`State. Devices must have a unique address with which they
`can be identified by the host software. Initially all devices
`have the same default address, but are addressed in a
`Sequential manner during Bus Enumeration, which allows a
`Single device to respond at any one time to host Software
`requests. AS part of BuS Enumeration, unique addresses are
`assigned to each device So host Software can communicate
`with the devices in a random manner. Please refer to Section
`9.1.1.4 of the Universal Serial Bus Specification for further
`discussion on this aspect. In step 629, the host/hub reads the
`device configuration data. The Configuration phase of BuS
`Enumeration is required by host Software to request Specific
`information from the device before its function can be used
`(please refer to section 9.2.3 of the Universal Ser