`Sartore et al.
`
`111111111111111111111111111111111111111111111111111111111111111111111111111
`US006012103A
`[11] Patent Number:
`[45] Date of Patent:
`
`6,012,103
`Jan.4,2000
`
`[54] BUS INTERFACE SYSTEM AND METHOD
`
`[75]
`
`Inventors: Ronald H. Sartore, San Diego; Steven
`P. Larky, Del Mar, both of Calif.
`
`[73] Assignee: Cypress Semiconductor Corp., San
`Jose, Calif.
`
`[21] Appl. No.: 08/886,923
`
`[22]
`
`Filed:
`
`Jul. 2, 1997
`
`[51]
`[52]
`[58]
`
`[56]
`
`Int. Cl.7
`•••.•••..•.••........•...•.....•••..•...•.•........ G06F 13/368
`U.S. Cl . ...................................... 710/8; 710/9; 710!10
`Field of Search ............................. 379/395; 709/220,
`709/250; 711/114, 115, 130; 713/100; 710/9
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,641,261
`4,862,355
`5,289,580
`5,428,748
`5,488,657
`5,574,859
`5,577,213
`5,586,268
`
`2/1987 Dwyer et a!. .
`8/1989 Newman et a!. .
`2/1994 Latif et a!. .
`... ....................... 710/9
`6/1995 Davidson et a!.
`1/1996 Lynn eta!. .............................. 379/395
`11/1996 Yeh .
`11/1996 Avery et a!. .
`12/1996 Chen et a!. .
`
`2/1997 Wade .
`5,606,672
`3/1997 Corder .
`5,615,344
`5/1997 Devon eta!. ........................... 395/828
`5,634,074
`9/1997 Collins .................................... 709/250
`5,671,355
`5,687,346 11/1997 Shinohara ............................... 711/130
`........................ 711/114
`5,701,429 12/1997 Legvold et a!.
`8/1998 Aldebert et a!. ........................ 713/100
`5,794,033
`9/1998 Pierce ...................................... 711/115
`5,802,558
`5,838,907 11/1998 Hansen .................................... 709/220
`
`Primary Examiner-Thomas C. Lee
`Assistant Examiner-Chien Yuan
`Attorney, Agent, or Firm-Christopher P. Maiorana, P.C.
`
`[57]
`
`ABSTRACT
`
`A system and method for reconfiguring a peripheral device
`connected by a computer bus and port to a host from a first
`generic configuration to a second manufacturer specific
`configuration is provided in which the configuration of a
`peripheral device may be electronically reset. A peripheral
`interface device for a standardized computer peripheral
`device bus and port is also provided in which a physical
`disconnection and reconnection of the peripheral device is
`emulated to reconfigure the bus and port for a particular
`peripheral device.
`
`33 Claims, 7 Drawing Sheets
`
`50'
`
`52
`
`HOST COMPUTER
`
`OPERATING SYSTEM
`70
`
`\
`\
`\
`I
`I
`I
`I
`
`I " I 78
`
`I
`
`I
`
`/
`
`/
`
`/
`
`/
`
`.......
`
`74
`
`LOADABLE
`MEMORY
`
`l i
`
`'·-L··-··------------------------'-·-'
`DEVICE
`
`EXHIBIT 1001
`IPR Petition for U.S. Patent No. 6,012,103
`
`
`
`U.S. Patent
`
`Jan.4,2000
`
`Sheet 1 of 7
`
`6,012,103
`
`20'
`
`HOST COMPUTER
`
`OPERATING SYSTEM
`33J
`DEVICE
`DRIVER
`
`CPU
`
`~------~~ MEMORY
`
`!
`
`30,
`USB INTERFACE
`...c::::; ~
`USB
`2(
`~ ?"
`USB INTERFACE
`34_)
`
`1
`
`l .,..
`
`l
`
`I
`38\
`
`24,
`
`MEMORY
`
`DEVICE
`CHARACTER(cid:173)
`ISTICS
`
`CPU
`
`DEVICE
`
`FIG. 1
`(PRIOR ART)
`
`
`
`U.S. Patent
`
`Jan.4,2000
`
`Sheet 2 of 7
`
`6,012,103
`
`50 \
`
`HOST COMPUTER
`
`OPERATING SYSTEM
`70___..._ 1_
`68 -=:J.
`DEVICE
`DEVICE
`CHARACTER(cid:173)
`DRIVER
`ISTICS
`
`\
`
`1\
`64\ ~~80
`
`65../
`
`CPU
`
`MEMORY
`
`I
`
`!
`I USB INTERFACE
`~~
`66
`71
`USB
`···---------------------- ----- -------------------------------~----...
`~ ;:::::--
`54\ i
`:
`, uss;~~ERFACE I
`,________ --------------------
`7 4 \
`
`11
`
`LOADABLE
`MEMORY ~-;- -
`
`CPU
`
`L ••••••••••••••••••••••••••••••••••••••••
`
`DEVICE
`
`FIG. 2
`
`I
`
`/
`
`/
`/ /
`
`\
`\
`\
`\
`\
`\
`I
`I
`
`I " I 78
`
`I
`
`
`
`U.S. Patent
`
`Jan.4,2000
`
`Sheet 3 of 7
`
`6,012,103
`
`3.3 v
`
`D-
`
`PERIPHERAL
`
`FIG. 3
`
`(PRIOR ART)
`
`100,
`
`134
`
`HOST
`
`FIG. 4
`
`
`
`U.S. Patent
`
`Jan.4,2000
`
`Sheet 4 of 7
`
`6,012,103
`
`140~
`
`142
`
`HOST COMPUTER
`
`OPERATING SYSTEM
`
`182
`
`150
`
`CPU
`
`MEMORY
`
`174
`
`LOADABLE
`MEMORY
`
`/
`
`176
`
`CPU
`
`DEVICE "A"
`
`FIG. 5
`
`\
`
`\
`\
`\
`\
`~
`1180
`I
`I
`I
`I
`I
`
`170
`_/
`
`
`
`U.S. Patent
`
`Jan.4,2000
`
`Sheet 5 of 7
`
`6,012,103
`
`142
`
`HOST COMPUTER
`
`OPERATING SYSTEM
`
`CPU
`
`MEMORY
`
`150
`
`146
`
`176
`
`CPU
`
`LOADABLE
`MEMORY
`
`/
`
`. , / -
`
`DEVICE "B"
`
`FIG. 6
`
`1184
`I
`I
`I
`
`I
`
`/
`
`/
`
`170
`../
`
`
`
`U.S. Patent
`
`Jan.4,2000
`
`Sheet 6 of 7
`
`6,012,103
`
`HOST COMPUTER
`
`142
`
`OPERATING SYSTEM
`
`150
`
`CPU
`
`MEMORY
`
`190
`
`I
`I
`I
`I
`I
`I
`/~8
`I
`
`I
`
`I
`
`/
`
`/
`
`/
`./
`
`170
`_/
`
`174
`
`LOADABLE """
`MEMORY
`
`176
`
`CPU
`
`DEVICE "C"
`
`FIG. 7
`
`
`
`U.S. Patent
`
`Jan.4,2000
`
`Sheet 7 of 7
`
`6,012,103
`
`200\
`
`202
`
`204
`
`206
`
`208
`
`CONFIGURE DEVICE
`AS LOADER
`
`LOAD
`CONFIGURATION
`INFORMATION FROM
`HOST INTO DEVICE
`
`ELECTRONICALLY
`DISCONECT &
`RECONECT DEVICE
`
`RECONFIGURE
`DEVICE WITH LOADED
`CHARACTERISTICS
`
`FIG. 8
`
`
`
`6,012,103
`
`1
`BUS INTERFACE SYSTEM AND METHOD
`
`BACKGROUND OF THE INVENTION
`
`5
`
`This invention relates generally to a system and method
`for connecting a computer system to a computer bus and in
`particular to a system and method for interfacing a computer
`system to a standard universal serial peripheral device bus.
`In a typical computer system, a computer having a micro(cid:173)
`processor may be connected to a plurality of peripheral 10
`devices, such as a printer or a modem, by one or more
`electrical buses and several different communications ports.
`Different peripheral devices have interfaces with different
`form factors and electrical characteristics, and these com(cid:173)
`munications ports are used for a variety of different periph- 15
`eral devices. A typical desktop computer may have a
`modem, a printer, a keyboard and a mouse connected to it.
`The modem may be connected to a serial port, the printer
`may be connected to a parallel port, the keyboard may be
`connected to a dedicated keyboard port and the mouse may 20
`be connected to a dedicated mouse port. Each of these
`communication ports may have different electrical
`characteristics, require different connectors and each has a
`different cable that runs from the peripheral device to the
`connector which connects to the computer communications 25
`port. For example, the serial port, the parallel port, the
`keyboard port and the mouse port all have different
`characteristics, cables and different connectors. The result is
`a large number of diverse interfaces and cables that must be
`used. In addition, the electrical design of these communi- 30
`cations ports typically requires that the computer be turned
`off before connecting and/or disconnecting a peripheral
`device from the port because the port may be permanently
`damaged otherwise. This prompted the design of a single
`standardized peripheral interface connection system which 35
`reduces the need for multiple connectors and cables, and
`permits the connection and disconnection of a peripheral
`device while the computer is turned on.
`A new emerging technology called the Universal Serial
`Bus (USB) is a system intended to create a single standard- 40
`ized peripheral device connection system. The USB makes
`the task of connecting peripheral devices to computers easier
`and more reliable since it uses a standardized connector and
`form factor, and makes operating those peripheral devices
`with the computer, easier and more reliable than with the 45
`various different types of communication ports. The com(cid:173)
`puter to which these peripheral devices are connected by the
`USB is known as the "host computer". The USB replaces the
`multiple cable and connector types with a single standard(cid:173)
`ized connection system. The USB also permits the connec- 50
`tion and disconnection of USB compatible peripheral
`devices while the computer is turned on which eliminates
`the typical turning off and rebooting of the computer in order
`to connect or disconnect a peripheral device to the computer.
`When a peripheral device is first connected to the USB 55
`and the host computer through a standard USB communi(cid:173)
`cations port, the presence of the connected peripheral device
`is detected and a configuration process of the USB for the
`connected peripheral device, known as device enumeration,
`begins. The enumeration process assigns a unique USB 60
`address to the connected peripheral device, queries the
`connected peripheral device about its requirements and
`capabilities, writes data about the connected peripheral
`device into the host computer's operating system, and loads
`the appropriate software device driver from a storage loca- 65
`tion into the host computer's operating system. During the
`query, a data table stored in the peripheral device, which
`
`2
`contains the particular peripheral device's configuration
`information, is read from the peripheral device into the host
`computer's memory. Upon completion of the enumeration
`process, the connected peripheral device is recognized by
`the host computer's operating system and may be used by
`application software being executed by the microprocessor
`of the host computer. The association of the device with the
`software device driver cannot be subsequently changed.
`In a serial bus system, such as the USB, the only oppor-
`tunity for associating software device drivers with a periph(cid:173)
`eral device is at the time when the peripheral device is
`plugged into the USB and the enumeration process occurs.
`Thus, to alter the configuration or personality of a peripheral
`device, such as downloading new code or configuration
`information into the memory of the peripheral device, the
`host computer system must detect a peripheral device con(cid:173)
`nection or a disconnection and then a reconnection.
`The USB provides a number of advantages, as described
`above, over standard peripheral device connection tech(cid:173)
`niques. The USB, however, does not provide a system and
`method for easily altering the configuration data for a
`peripheral device. In addition, the USB also does not pro(cid:173)
`vide a method for easily changing the software device driver
`associated with a particular peripheral device.
`Thus, there is a need for a system and method for
`interfacing to a universal serial bus which avoids these and
`other problems of known systems and methods, and it is to
`this end that the present invention is directed.
`
`SUMMARY OF THE INVENTION
`
`The invention provides a universal serial bus interface
`system and method in which the configuration information
`for a plurality of different peripheral devices may be stored
`in the host computer rather than in the peripheral devices
`themselves. The flexibility of the universal serial bus is
`thereby increased because each peripheral device does not
`need to store configuration information. In addition, the
`configuration information for any peripheral device may be
`easily modified to accommodate changes in the peripheral
`devices or to take advantage of other peripheral device
`features because it is located in the file system of the host
`computers. The configuration information may include con(cid:173)
`figuration data, microprocessor code to be executed on the
`CPU in the peripheral device, and logic configuration data.
`The configuration information may be downloaded from the
`host computer into the peripheral device.
`In addition, the universal serial bus interface system and
`method permits the configuration information associated
`with the peripheral device to be electronically altered to
`match changes in the peripheral devices. Instead of physi(cid:173)
`cally disconnecting and reconnecting a peripheral device to
`reconfigure it, a peripheral device may be electronically
`disconnected and then reconnected to the USB (e.g. the
`disconnect/connect cycle may be electrically simulated) so
`that a change in the configuration information for a particu(cid:173)
`lar peripheral device may be implemented. One of many
`advantages of the electrical simulation of the disconnect and
`reconnect cycle is that since the peripheral device is physi(cid:173)
`cally connected to the bus during the electrical simulation,
`the peripheral device may utilize the electrical power sup(cid:173)
`plied by the bus to operate the peripheral device. If the
`peripheral device is physically disconnected as in a conven(cid:173)
`tional USB system, the peripheral device would require its
`own electrical power source. Thus, the computer system
`may, without human assistance, reconfigure a peripheral
`device connected to the USB.
`
`
`
`6,012,103
`
`3
`In addition, the universal serial bus interface system and
`method may be a single semiconductor chip which may be
`incorporated into a plurality of peripheral devices made by
`a plurality of manufacturers. The chip may initially have a
`generic configuration (e.g., not specific to a particular
`peripheral device). Then, the appropriate configuration
`information for a particular peripheral device and manufac(cid:173)
`turer may be downloaded to the chip, an electronic simula(cid:173)
`tion of the disconnection and reconnection of the peripheral
`device occurs, the peripheral device is recognized as a new,
`manufacturer specific peripheral device and the appropriate
`software device driver is loaded into the memory of the host
`computer.
`In accordance with the invention, a system and method for
`reconfiguring a peripheral device connected by a computer
`bus and port to a host computer is provided in which a host
`computer detects a peripheral device connected to the port in
`which the peripheral device has a first configuration. A
`second set of configuration information may be downloaded
`from the host computer into the peripheral device over the
`computer bus, and the configuration of the peripheral device
`is electronically reset from said first configuration to a
`second configuration based on the second set of configura(cid:173)
`tion information.
`In accordance with another aspect of the invention, a
`peripheral interface device for a standardized computer
`peripheral device bus and port is provided in which a
`peripheral device is physically connected to a computer
`system through a computer peripheral bus and port and the
`peripheral device has a first configuration. A second set of
`configuration information may be received from a computer
`system, and a physical disconnection and reconnection of
`the peripheral device is simulated to reconfigure the periph(cid:173)
`eral device to a second configuration based on the second
`configuration information.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a diagram illustrating a conventional universal
`serial bus system in a computer system;
`FIG. 2 is a diagram illustrating a universal serial bus
`system in accordance with the invention;
`FIG. 3 is a diagram illustrating a conventional universal
`serial bus interface circuit;
`FIG. 4 is a diagram illustrating a universal serial bus
`interface circuit in accordance with the invention;
`FIG. 5 is a diagram illustrating a peripheral device with a
`first configuration being connected to a computer system
`through a USB port and configured in accordance with the
`invention;
`FIG. 6 is a diagram illustrating a peripheral device being
`configured with a second configuration in accordance with
`the invention;
`FIG. 7 is a diagram illustrating a peripheral device being
`reconfigured with a third configuration in accordance with
`the invention; and
`FIG. 8 is a flowchart illustrating a method for changing
`the configuration information for a peripheral device con(cid:173)
`nected to a universal serial bus in accordance with the
`invention.
`
`DETAILED DESCRIPTION OF A PREFERRED
`EMBODIMENT
`
`The invention is particularly applicable to a universal
`serial bus interface system and method. It is in this context
`that the invention will be described. It will be appreciated,
`
`5
`
`4
`however, that the system and method in accordance with the
`invention has greater utility, such as with other different
`computer buses and standardized interfaces.
`FIG. 1 is a diagram illustrating a standardized bus
`interface, such as a conventional computer system 20, that
`may include a host computer system 22 and a peripheral
`device 24. The peripheral device is connected to the host
`computer by a universal serial bus (USB) 26. The host
`computer may include a central processing unit (CPU) 28
`10 connected to a USB interface (1/F) circuit 30, and the USB
`standard provides a universal electrical and physical inter(cid:173)
`face for the peripheral devices via bus 26. The CPU executes
`software application code located in a memory 31 and
`communicates data to and from the peripheral device
`15 through the USB interface and the USB 26. The host
`computer may also include an operating system 32 which
`may include a software device driver 33. The peripheral
`device 24 may include a USB interface circuit 34, a CPU 36
`and a non-volatile memory 38 that may store configuration
`20 information describing the characteristics of the peripheral
`device. The non-volatile memory may be a read only
`memory (ROM) or an erasable programmable read only
`memory (EPROM).
`When the peripheral device is initially connected to the
`25 USB, an enumeration process is conducted in which the host
`computer determines the characteristics of the peripheral
`device by receiving the configuration information from the
`memory 38 within the peripheral device, and configures the
`USB according to the characteristics of the peripheral
`30 device. As shown, the configuration information about the
`characteristics of the peripheral device in a conventional
`USB system is stored in a non-volatile memory 38 on the
`peripheral device. The data about the characteristics of the
`peripheral device is programmed into the non-volatile
`35 memory at the factory, and the characteristics of the periph(cid:173)
`eral device may not be easily altered. In addition, the
`memory in the peripheral device stores all of the configu(cid:173)
`ration information about the peripheral device which may
`require a large amount of memory in the peripheral device.
`Once the enumeration process has been completed, the
`CPU of the host computer may load an appropriate software
`device driver 33 for the peripheral device and the software
`applications being executed by that CPU of the host com(cid:173)
`puter may communicate with the peripheral device using the
`45 USB. When the first peripheral device is disconnected and
`another peripheral device is connected to the USB, the
`enumeration process for the new peripheral device may be
`conducted and another software device driver may be
`loaded. The configuration of the peripheral device cannot be
`50 easily altered. Now, a universal serial bus system and
`method in accordance with the invention will be described.
`FIG. 2 is a diagram illustrating a computer system 50 that
`may have a universal serial bus system in accordance with
`the invention. The computer system may include a host
`55 computer 52 connected to a peripheral device 54 by a
`universal serial bus (USB) 60. The host computer may
`include a CPU 62, a memory 64, an operating system 65 and
`a USB interface circuit 66. One or more peripheral device
`drivers, such as a first peripheral device driver 68, may be
`60 stored in the operating system 65. Each device driver
`contains information about the proper configuration of the
`USB for a particular class of peripheral devices. The oper(cid:173)
`ating system within the host computer may also contain a
`plurality of different configuration information sets 70,
`65 which may include configuration data for a particular
`peripheral device (including which device driver to use),
`microprocessor code to be executed by a CPU located in the
`
`40
`
`
`
`6,012,103
`
`5
`peripheral device, or logic configuration data to configure
`logic circuits in the peripheral device. This invention advan(cid:173)
`tageously enables these configuration information sets to be
`updated or altered easily since they are located in the host
`computer and not in a non-volatile memory in the peripheral 5
`device.
`The peripheral device 54 may include a USB interface
`system 71 and a CPU 72. The USB interface system may
`include an alterable memory 74 such as a random access
`memory (RAM) or a flash electrically erasable program- 10
`mable read only memory (flash EPROM), and a USB
`interface circuit 76. The memory 74 may initially contain an
`identification code to indicate which configuration inform a(cid:173)
`tion set should be downloaded to the peripheral device. The
`USB interface system 71 may be a semiconductor chip 15
`containing the USB interface circuit as well as the memory
`that may be added onto the peripheral device. The USB
`interface circuit in accordance with the invention is designed
`to meet USB standard specifications, such as communica(cid:173)
`tions protocols, electrical specifications and the USB form 20
`factor, and may permit the peripheral device to be discon(cid:173)
`nected and connected to the USB without the physical
`disconnection or connection of the peripheral device, as
`described below.
`The various configuration information sets are stored in
`the host computer so that they may be easily updated or
`altered and then, using the electronic disconnect and recon(cid:173)
`nect method in accordance with the invention, the peripheral
`devices attached to the host computer may be dynamically
`reconfigured using the updated configuration information
`sets without the necessity to physically disconnect and
`reconnect the peripheral devices.
`In operation, during the initial factory configuration of the
`peripheral device with the USB interface system in accor(cid:173)
`dance with the invention, the memory may store an identi- 35
`fication code indicating the appropriate configuration infor(cid:173)
`mation set to be loaded. Thus, when the peripheral device is
`first connected to the USB, the configuration information 70,
`including any microprocessor code applicable to the periph(cid:173)
`eral device and the appropriate configuration data for the 40
`peripheral device may be downloaded over the USB into the
`memory 74 of the peripheral device 54 as shown by the
`dashed arrow 78. The electrical simulation of the discon(cid:173)
`nection and reconnection of the peripheral device from the
`USB, as described below, may be initiated and a 45
`re-enumeration process may occur. During the
`re-enumeration process, the newly downloaded configura(cid:173)
`tion information may be used to reconfigure the USB for the
`peripheral device and the host computer may select the
`appropriate software device driver 68 for the peripheral 50
`device based on the configuration information and load the
`device driver into memory 64 as shown by arrow 80. For
`example, a plurality of different peripheral devices manu(cid:173)
`factured by different companies may each include a USB
`interface system in accordance with the invention. The USB 55
`interface system for each peripheral device is identical (e.g.
`has a USB interface circuit and a memory) except that each
`memory may contain an identification code that is unique to,
`for example, a particular manufacturer. When one of the
`peripheral devices is connected to the USB and the host 60
`computer, the appropriate configuration information for the
`peripheral device, based on the identification code, is down(cid:173)
`loaded over the USB to the memory of the peripheral device
`and the appropriate software device driver is loaded into the
`memory of the host computer. Thus, a plurality of different 65
`peripheral device may include the same USB interface
`system hardware since the configuration information is
`
`6
`located in the operating system of the host computer. Now,
`a conventional USB interface circuit and the universal serial
`bus interface circuit in accordance with the invention that
`permits the electronic disconnection and reconnection of the
`peripheral device will be described.
`FIG. 3 is a diagram illustrating a conventional host
`computer universal serial bus interface circuit 100 and a
`peripheral device USB interface circuit 101. The host com(cid:173)
`puter USB interface 100 may include two USB data leads
`102, 103 that may be labeled D+and D-, which are both
`connected to ground through a resistor 112, 113 respectively.
`The peripheral device USB interface 101 may include a
`buffer amplifier 104, having a first normal output of the
`buffer (D+) 106 and a second inverted output of the buffer
`(D-) 108. The D+ output of the buffer may be connected to
`a supply voltage, which may be 3.3 volts for example,
`through a 1.5 kQ resistor 110. In operation, the host com(cid:173)
`puter detects the connection of a peripheral device by
`monitoring the voltage levels of one of the two USB data
`leads. In particular, in the computer host, the D+ data line is
`terminated with a 15 kQ resistor 112 to ground. Thus, when
`the D+ line is not connected to a peripheral device, the
`measured voltage of the D+ line is approximately zero volts
`and the host computer determines that no peripheral device
`25 is connected to the USB port. When a peripheral device is
`connected to the USB port, the 1.5 kQ resistor 110 con(cid:173)
`nected to a supply voltage of the peripheral device USB
`interface 101 adds a voltage to the D+ line and the D+ line
`at the host computer is pulled to above 3 volts which is
`30 detected as a connected peripheral device by the host
`computer and the host computer begins the enumeration
`process. Now, the USB interface circuit in accordance with
`the invention will be described.
`FIG. 4 is a diagram illustrating a USB interface circuit for
`a peripheral device in accordance with the invention which
`permits the peripheral device to be electronically discon(cid:173)
`nected and/or reconnected to the USB without physically
`disconnecting and reconnecting the peripheral device from
`the USB (e.g., the electric simulation of a disconnect/
`connect cycle). As with the conventional USB interface, the
`host computer USB interface circuit 100 may include two
`USB data leads 102, 103 which may be labeled as D+ and
`D- as shown. As above, each data lead is connected to
`ground through a resistor and a 15 kQ resistor 112 connects
`the D+ data lead to ground. A peripheral device USB
`interface circuit 120 in accordance with the invention will
`now be described.
`The peripheral USB interface circuit 120 may include a
`buffer amplifier 122, a first buffer output 124 labeled D+ and
`a second buffer output 126 labeled D-. In accordance with
`the invention, the D+ data lead may be connected to a supply
`voltage, which may be 3.3 volts, through a 1.5 kQ resistor
`128 and an electrical switch 130, that may be a semicon(cid:173)
`ductor switch such as a field effect transistor (FET). The
`electrical switch may have a control lead 132 which may
`control the operation of the electrical switch. The electrical
`switch is normally controlled by the peripheral device, but
`the host computer may download configuration information
`containing a command instructing the peripheral device to
`actuate the electrical switch. Thus, both the peripheral
`device itself and the host computer may control the electrical
`switch. As above, when no peripheral device is physically
`connected to the USB, the host computer reads zero volts on
`the D+ data lead.
`When a peripheral device is connected to the USB, the
`electrical switch permits the peripheral device to disconnect
`and then reconnect itself to the USB without the physical
`
`
`
`6,012,103
`
`7
`disconnection of the peripheral device from the USB. In
`particular, if the peripheral device is physically connected to
`the USB, but the electrical switch is open, the D+ data lead
`is no longer connected to the supply voltage and the host
`computer determines that the peripheral device has been
`disconnected even though the peripheral device is still
`physically connected to the USB. Similarly, when the elec(cid:173)
`trical switch is closed again, the D+ data lead is again
`connected to the supply voltage and the host computer will
`detect that the peripheral device has been reconnected to the
`USB. Therefore, the physical disconnection and/or connec(cid:173)
`tion of the peripheral device may be effected without actu(cid:173)
`ally physically disconnection and/or connecting the periph(cid:173)
`eral device. This electronic disconnection and reconnection
`of the peripheral device, as described above, in combination
`with the storage of the configuration information sets on the
`host computer permits the configuration of the peripheral
`devices to be changed easily without requiring the physical
`disconnection and reconnection of a peripheral device. Now,
`an example of a system for connecting a plurality of different
`peripheral devices each containing a USB interface system
`in accordance with the invention, to a computer system will
`be described.
`FIGS. 5, 6, and 7 are diagrams illustrating three different
`peripheral devices from different manufacturers, for
`example, being connected to a host computer in accordance
`with the invention. In each Figure, a computer system 140
`may include a host computer 142, a plurality of peripheral
`devices, such as peripheral device "A" 144 (shown in FIG.
`5), peripheral device "B" 146 (shown in FIG. 6), peripheral
`device "C" 148 (shown in FIG. 7) and a USB bus 149. The
`host computer 142 may include a CPU 150, a memory 152,
`an operating system 154 and a USB interface circuit 156.
`The operating system, in this example, may include a
`plurality of software device drivers, such as device driver
`"A" 158, device driver "B" 160 and device driver "C" 162,
`and a plurality of configuration information sets, such as
`device "A" characteristics 164, device "B" characteristics
`166 and device "C" characteristics 168.
`Each peripheral device 144, 146, 148 may include a 40
`universal USB interface system 170 that may include a USB
`interface circuit 172 as shown in FIG. 4 and a loadable
`memory 174. Each peripheral device may also include a
`CPU 176 and a non-volatile memory 178. The non-volatile
`memory may store a unique manufacture signature or iden(cid:173)
`tifier that identifies the appropriate configuration inform a(cid:173)
`tion to be downloaded into the peripheral device. Now, the
`connection of each of these peripheral device to the com(cid:173)
`puter system will be described.
`As shown in FIG. 5, peripheral device "A" 144 may have
`a unique manufacturer signature in the non-volatile memory
`178. When the peripheral device is connected to the com(cid:173)
`puter system, the enumeration process begins in which the
`USB interface system 170 is recognized by the USB as a
`generic device and the unique manufacturer signature is read
`from the non-volatile memory by the CPU 150 over the USB
`149. The unique signature identifies device "A" character(cid:173)
`istics 164 as the appropriate configuration information and
`that configuration information may be downloaded over the
`USB 149 into the memory 174 of the peripheral device as
`shown by dashed arrow 180. Then the electrical simulation
`of the disconnection and reconnection of the peripheral
`device occurs, as described above, which cause
`re-enumeration of the peripheral device. During
`re-enumeration, device driver "A" 158, which is identified
`by device "A" characteristics 164 as the appropriate device
`driver, is loaded from the operating system into the memory,
`
`8
`as shown by arrow 182, such that the peripheral device is
`now recognized as a peripheral device with device "A"
`characteristics. Thus, a generic hardware USB interface
`system may be incorporated into a peripheral device and the
`5 particular characteristics for the particular peripheral device
`may be later downloaded from the host computer into the
`peripheral device.
`Similarly, as shown in FIGS. 6 and 7, the peripheral
`devices 146, 148 may include the generic USB interface
`10 system and a unique manufacturer signature in the non(cid:173)
`volatile memory and may be re-enumerated in accordance
`with the invention so that the appropriate device character(cid:173)
`istics are downloaded from the host computer over the USB
`into the memory of the peripheral device and the appropriate
`15 device driver may be selected by the host computer. Thus,
`peripheral device "B" 146 (shown in FIG. 6) may have
`device "B" characteristics 166 downloaded into its memory,
`as shown by dashed arrow 184 in FIG. 6, and the host
`computer may use device driver "B" 160, as shown by arrow
`20 186 in FIG. 6. The peripheral device "C" 148 (shown in FIG.
`7) may have device "C" characteristics 168 downloaded into
`its memory as shown by the dashed arrow 188 in FIG. 7 and
`the host computer may use device driver "C" 162 as shown
`by arrow 190 in FIG. 7. Thus, a generic USB interfac