`(16) Patent N0.:
`US 6,249,825 B1
`
`Sartore et al.
`(45) Date of Patent:
`*Jun. 19, 2001
`
`U5006249825B1
`
`(54) UNIVERSAL SERIAL BUS INTERFACE
`SYSTEM AND METHOD
`
`(75)
`
`Inventors: Ronald H. Sartore, San Diego; Steven
`P‘ Larky’ Del Mar’ bOth 0f CAGE)
`.
`.
`(73) ASSlgneez Cypress semlconducmn 5a“ Jose” CA
`(Us)
`Subjectfo any disdaimeritheterm 0fthiS
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(*) Notice:
`
`This patent is subject to a terminal diS-
`claimer.
`
`(21) App1~ N0~I 09/476,923
`.
`.
`.
`,
`(22) Filed'
`Jan 4 2000
`
`Related US. Application Data
`
`(63) Continuation of application NO. 08/886,923, filed on Jul. 2,
`1997, now Pat. No. 6,012,103.
`
`Int. Cl.7 ................................................... G06F 13/368
`(51)
`(52) US. Cl.
`...................................... 710/8; 710/9; 710/10
`(58) Field of Search ............................ 713/1, 100; 710/8,
`710/7’ 9’ 10; 320/21; 709/220’ 221’ 250;
`711/103_105
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`364/900
`2/1987 Dw er et al
`8/1989 Nevaan etial"""""""""""" 364/200
`2/1994 Latif et al.
`..........
`6/1995 Davidson et al.
`.. 395/275
`.. 379/395
`1/1996 Lynn et al.
`3/1996 Shaw ...................................... 320/21
`
` 395/275
`
`4641261
`4,862,355
`5,289,580
`5,428,748
`5,488,657
`5,497,067 *
`
`5,574,859
`11/1996 Yeh ................................... 395/200.1
`5,577,213
`11/1996 Avery etal.
`395/280
`
`5,586,268
`12/1996 Chen et al.
`395/250
`
`3333011113 et a1
`392329233 * $133;
`302/38:
`,
`,
`a e ............
`5,615,344
`3/1997 Corder
`.......
`395/309
`5,634,074
`5/1997 Devon et al.
`........................ 395/828
`5,655,148 *
`8/1997 Richman et al.
`...................... 370/94
`
`9/1997 Collins ..........
`5,671,355
`709/250
`340/825.08
`.........
`5,673,031 *
`9/1997 M '
`
`11/1997 Sheiifdhara .....
`5,687,346
`711/130
`12/1997 Legvold et al.
`..................... 711/114
`5,701,429
`5,794,033
`8/1998 Aldebert et al.
`..................... 713/100
`
`5,802,558
`9/1998 Pierce ............
`711/115
`
`11/1998 Hansen ..........
`5,838,907
`709/220
`........ 710/7
`5,898,861 *
`4/1999 Emerson et al.
`
`
`5,982,879 * 11/1999 Lucey ............
`379/389
`.
`........ 710/8
`6,012,103 *
`1/2000 Sartore et al.
`
`6,038,667 *
`3/2000 Helbig, Sr.
`713/200
`4/2000 Greaves ................................... 713/1
`6,049,870 *
`
`* cited by examiner
`.
`.
`Przmary Exammer—Thomas Lee
`ASSismm Examiner—Thuan Du
`(74) Attorney, Agent, or Firm—Christopher P. Maiorana,
`RC.
`
`(57)
`
`ABSTRACT
`.
`.
`.
`.
`Asystem for reconfiguring a peripheral deVice haV1ng a first
`Eonfiguration coplrliected by a computer b1: and a port t: a
`ost computer.
`e system comprises a
`rst c1rcu1t an
`a
`second circuit. The first circuit may be configured to down-
`load information for a second configuration from the host
`computer into the peripheral deVice over the computer bus.
`The second circuit may be configured to electronically
`simulate, over the computer bus, a physical disconnection
`and reconnection of the peripheral deVice to reconfigure the
`peripheral deVice to the second configuration.
`
`20 Claims, 7 Drawing Sheets
`
`50 \
`
`52‘
`
`OPERATING SYSTEM
`70 DEVICE
`® CHARACTER-
`ISTICS
`
`
`HOST COMPUTER
`
`68
`
` \
`
`
`
`
`
`
`
`
`
`
`\
`62\
`s4\
`v80
` CPU .—._. MEMORY
`
`
`
`
`
`
`65\
`I
`use INTE RFACE
`71
`60
`KI
`54 \ 2"""
`use INTERFACE
`g
`76/
`
`033
`
`I
`
`
`72
`LOADABLE
`\
`MEMORY 2 gz /
`‘
`CPU
`4—_.»
`
`
`
`DEVICE
`
`55/
`
`\
`
`\
`
`\
`
`l
`I
`I
`I
`I
`DB
`
`/
`
`/
`
`/
`
`/
`
`/ /
`
`BLACKBERRY Ex. 1001, page 1
`
`BLACKBERRY Ex. 1001, page 1
`
`
`
`US. Patent
`
`Jun. 19, 2001
`
`Sheet 1 0f 7
`
`US 6,249,825 B1
`
`20\
`
`22
`
`
`
`
`
`
`
`HOST COMPUTER
`
`
`
`
`OPERATING SYSTEM
`
`33
`
`DEVICE
`DRIVER
`
`
`
`MEMORY
`
`31
`
`0
`
`USB INTERFACE
`
`
`
` 24
`
`USB INTERFACE
`
`34
`
`
`
`
` DEVICE
`
`CHARACTER-
`ISTICS
`
`
`DEVICE
`
`MEMORY
`
`FIG. 1
`
`(PRIOR ART)
`
`BLACKBERRY Ex. 1001, page 2
`
`BLACKBERRY Ex. 1001, page 2
`
`
`
`US. Patent
`
`Jun. 19, 2001
`
`Sheet 2 0f 7
`
`US 6,249,825 B1
`
`50\
`
`52
`
`HOST COMPUTER
`
`
`
`
`68
`
`OPERATING SYSTEM
`
`
`
`70
`
`
`
`
` DEVICE
`
`
`
`
`DEVICE
`DRIVER
`
`CHARACTER-
`
`ISTICS
`
`
`
`
`
`
`LOADABLE
`
`MEMORY
`
`BLACKBERRY Ex. 1001, page 3
`
`BLACKBERRY Ex. 1001, page 3
`
`
`
`US. Patent
`
`Jun. 19, 2001
`
`Sheet 3 0f 7
`
`US 6,249,825 B1
`
`101~\
`
`
`
`FIG. 3
`
`(PRIOR ART)
`
`
`
`BLACKBERRY Ex. 1001, page 4
`
`BLACKBERRY Ex. 1001, page 4
`
`
`
`US. Patent
`
`Jun. 19, 2001
`
`Sheet 4 0f 7
`
`US 6,249,825 B1
`
`140\
`
`DEVICE
`DRIVER"B"
`
`DEVICE
`DRIVER“C"
`
`1
`
`62
`
`
`
`
`
`OPERATING SYSTEM
`
` 142 HOST COMPUTER
`
`DEVICE
`
`DRIVER"A"
`
`160
`166
`168
`
`DEVICE A
`DEVICE B
`DEVICE C
`
`CHARACTER-
`CHARACTER-
`CHARACTER—
`
`
`
`
`ISTICS
`ISTICS
`ISTICS
`
`
`
`
`
`
`
`LOADABLE
`
`MEMORY
`
`
`
`
`
` 178
`DEVICE A
`
`FIG. 5
`
`BLACKBERRY Ex. 1001, page 5
`
`BLACKBERRY Ex. 1001, page 5
`
`
`
`US. Patent
`
`Jun. 19, 2001
`
`Sheet 5 0f 7
`
`US 6,249,825 B1
`
`140\
`
`142
`
`DEVICE
`DRIVER"C"
`
`162
`
`
`
`
`158
`OPERATING SYSTEM
`
`
`HOST COMPUTER
`DEVICE
`DEVICE
`
`DRIVER"B“
`DRIVER"A"
`
`
`
`168
`154
`
`
`DEWCEA
`DEWCEB
`DEWCEC
`
`
`
`CHARACTER—
`CHARACTER-
`CHARACTER-
`
`
`
`ISWCS
`ISWCS
`ISWCS
`
`
`
`
`
`
`LOADABLE
`
`MEMORY
`
`
`
`DEVICE "B"
`
`
` 178
`
`FIG. 6
`
`BLACKBERRY Ex. 1001, page 6
`
`BLACKBERRY Ex. 1001, page 6
`
`
`
`US. Patent
`
`Jun. 19, 2001
`
`Sheet 6 0f 7
`
`US 6,249,825 B1
`
`140\
`
`
`
`
`
`HOST COMPUTER
`
`1 58
`
`DEVICE
`DRIVER"A"
`
`142
`
`
`
`DEWCE
`DRNERB"
`
`DEWCE
`DWVERC"
`
`
`
`1601/
`
`.
`
` OPERATING SYSTEM
`
`
`
`
`
`
`
`
`
`LOADABLE 4
`MEMORY
`
`
`
`16
`
`4
`
`1 2
`166
`6
`168
`
`DEWCEA
`DEWCEB
`DEWCEC
`
`
`CHARACTER-
`CHARACTER-
`CHARACTER-
`
`
`ISWCS
`ISHCS
`ISWCS
`
`
`
`/ /
`
`\
`/ 188
`
`/
`
`/
`
`/
`
`/
`
`/
`
`/
`
`17°
`
`MEMORY
`
`152
`
`156
`
`
`
`USB INTERFACE
`
`148
`
`
`178
`
`
`DEVICE "C"
`
`FIG. 7
`
`BLACKBERRY Ex. 1001, page 7
`
`BLACKBERRY Ex. 1001, page 7
`
`
`
`US. Patent
`
`Jun. 19, 2001
`
`Sheet 7 0f 7
`
`US 6,249,825 B1
`
`200 \
`
`
`
`CONFIGURE DEVICE
`
`AS LOADER
`
`LOAD
`
`
`CONFIGURATION
`
`INFORMATION FROM
`
`HOST INTO DEVICE
`
`
`
`
`
`ELECTRONICALLY
`DISCONECT &
`
`RECONECT DEVICE
`
`RECONFIGURE
`
`CHARACTERISTICS
`
`
`
`
`DEVICE WITH LOADED
`
`
`
`202
`
`204
`
`206
`
`208
`
`
`RECONFIGURE
`DEVICE
`
`?
`
`210
`
`FIG. 8
`
`BLACKBERRY Ex. 1001, page 8
`
`BLACKBERRY Ex. 1001, page 8
`
`
`
`US 6,249,825 B1
`
`1
`UNIVERSAL SERIAL BUS INTERFACE
`SYSTEM AND METHOD
`
`This is a continuation of US. Ser. No. 08/886,923, filed
`Jul. 2, 1997 now US. Pat. No. 6,012,103.
`
`BACKGROUND OF THE INVENTION
`
`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-
`processor may be connected to a plurality of peripheral
`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-
`munications ports are used for a variety of different periph-
`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
`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
`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-
`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
`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-
`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
`various different types of communication ports. The com-
`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-
`ized connection system. The USB also permits the connec-
`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
`and the host computer through a standard USB communi-
`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
`address to the connected peripheral device, queries the
`connected peripheral device about
`its requirements and
`capabilities, writes data about
`the connected peripheral
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`device into the host computer’s operating system, and loads
`the appropriate software device driver from a storage loca-
`tion into the host computer’s operating system. During the
`query, a data table stored in the peripheral device, which
`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-
`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-
`nection or a disconnection and then a reconnection.
`
`The USB provides a number of advantages, as described
`above, over standard peripheral device connection tech-
`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-
`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-
`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-
`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-
`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-
`cally connected to the bus during the electrical simulation,
`the peripheral device may utilize the electrical power sup-
`plied by the bus to operate the peripheral device. If the
`peripheral device is physically disconnected as in a conven-
`
`BLACKBERRY Ex. 1001, page 9
`
`BLACKBERRY Ex. 1001, page 9
`
`
`
`US 6,249,825 B1
`
`3
`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.
`
`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-
`turer may be downloaded to the chip, an electronic simula-
`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-
`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-
`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-
`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
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`that the invention will be described. It will be appreciated,
`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
`connected to a USB interface (I/F) circuit 30, and the USB
`standard provides a universal electrical and physical inter-
`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
`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
`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
`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
`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
`memory at the factory, and the characteristics of the periph-
`eral device may not be easily altered.
`In addition,
`the
`memory in the peripheral device stores all of the configu-
`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-
`puter may communicate with the peripheral device using the
`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
`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
`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
`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-
`ating system within the host computer may also contain a
`plurality of different configuration information sets 70,
`which may include configuration data for a particular
`peripheral device (including which device driver to use),
`
`BLACKBERRY Ex. 1001, page 10
`
`BLACKBERRY Ex. 1001, page 10
`
`
`
`US 6,249,825 B1
`
`5
`microprocessor code to be executed by a CPU located in the
`peripheral device, or logic configuration data to configure
`logic circuits in the peripheral device. This invention advan-
`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
`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-
`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 informa-
`tion set should be downloaded to the peripheral device. The
`USB interface system 71 may be a semiconductor chip
`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-
`tions protocols, electrical specifications and the USB form
`factor, and may permit the peripheral device to be discon-
`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-
`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-
`dance with the invention, the memory may store an identi-
`fication code indicating the appropriate configuration infor-
`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-
`eral device and the appropriate configuration data for the
`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-
`
`nection and reconnection of the peripheral device from the
`USB, as described below, may be initiated and a
`re-enumeration process may occur. During the
`re-enumeration process, the newly downloaded configura-
`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
`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-
`factured by different companies may each include a USB
`interface system in accordance with the invention. The USB
`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
`computer, the appropriate configuration information for the
`peripheral device, based on the identification code, is down-
`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
`peripheral device may include the same USB interface
`
`6
`system hardware since the configuration information is
`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-
`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 kg resistor 110. In operation, the host com-
`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 k9 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
`is connected to the USB port. When a peripheral device is
`connected to the USB port, the 1.5 kg resistor 110 con-
`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
`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-
`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 k9 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 kg resistor
`128 and an electrical switch 130, that may be a semicon-
`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
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`BLACKBERRY Ex. 1001, page 11
`
`BLACKBERRY Ex. 1001, page 11
`
`
`
`US 6,249,825 B1
`
`7
`and then reconnect itself to the USB without the physical
`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-
`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-
`tion of the peripheral device may be effected without actu-
`ally physically disconnection and/or connecting the periph-
`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
`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-
`tifier that identifies the appropriate configuration informa-
`tion to be downloaded into the peripheral device. Now, the
`connection of each of these peripheral device to the com-
`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-
`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-
`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
`
`8
`driver, is loaded from the operating system into the memory,
`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
`particular characteristics for the particular peripheral device
`may be later downloaded from the host computer into the
`peripheral device.
`the peripheral
`Similarly, as shown in FIGS. 6 and 7,
`devices 146, 148 may include the generic USB interface
`system and a unique manufacturer signature in the non-
`volatile memory and may be re-enumerated in accordance
`with the invention so that the appropriate device cha