Information
-
Patent Grant
-
6393588
-
Patent Number
6,393,588
-
Date Filed
Monday, November 16, 199826 years ago
-
Date Issued
Tuesday, May 21, 200222 years ago
-
Inventors
-
Original Assignees
-
Examiners
Agents
- Oppenheimer Wolff & Donnelly, LLP
-
CPC
-
US Classifications
Field of Search
US
- 714 43
- 714 44
- 714 45
- 714 47
- 714 48
- 714 25
- 714 26
- 714 28
- 714 29
- 714 30
- 714 31
- 710 105
- 710 103
- 710 100
- 710 52
- 710 53
-
International Classifications
-
Abstract
A test apparatus for testing function of a USB hub under the control of a USB host computer is provided. The USB host computer issues a USB command during the test. The test apparatus includes a USB bus, an emulation device, a standard bus and a micro-controller device. The USB bus is coupled to the USB hub. The emulation device emulates an USB device connected to the USB bus. The standard bus is connected to the USB host computer. The micro-controller device is connected to the standard bus and the emulation device respectively to process a USB transaction corresponding to the USB command. The invention provides a testing environment which is fully compliant to the WINDOWS 98 environment.
Description
FIELD OF THE INVENTION
The present invention relates to the testing of a USB hub.
BACKGROUND OF THE INVENTION
The Universal Serial Bus (USB) is a peripheral bus specification developed by PC and telecom industry leaders. Under the specification, the USB allows the plug-and-play capability of computer peripherals outside the PC case. The capability eliminates the need to install interface card into dedicated computer slots and reconfigure the system each time a peripheral is attached or detached from a PC. The USB specification is described in detail in the Universal Serial Bus Specification, Revision 1.0 published Jul. 15, 1996.
As shown in
FIG. 1
, the computer system
10
connects USB devices with a USB host
12
, i.e. a computer system. There are two types of USB devices: the hub
16
and the function
14
. A hub
16
is device which provides additional attachment points for the Computer system. A function
14
provides capabilities to the computer system. For instance, a keyboard, a mouse, an ISDN connection, a scanner, an audio device etc. Generally, there are two ports of attachment in the USB host
12
. The port
1
connects to hub
16
by the wire
18
. The port
2
connects to the function
14
by the wire
13
. HUB
16
connects to the functions
14
by the wires
15
respectively. Under the protocol of USB standard, the functions
14
are classified into mainly three types of device. The first one is the type of a human-interface device (HID), i.e. keyboard, mouse, or, alternately, an interrupt device. The second one is the type of a bulk device, i.e. a scanner, which places strict requirement on accuracy of each data bits transmitted. The third one is the type of an isochrome device, i.e. an audio device, which does not place strict requirement on accuracy of each data bits transmitted. The detailed definitions of these types of device may be referred to in the Specification mentioned above.
Hub
16
are therefore a key element in the plug-and-play architecture of computer system
10
, and is wiring concentrator which enable the multiple attachment characteristics of USB. The upstream port of a hub
16
connects the hub
16
towards the host
12
. Each of the downstream ports of a hub
16
allows connection to another hub or function
14
. Hubs
16
detect the attachment and detachment of a USB device
14
at each downstream port and enable the distribution of power to these down stream USB devices
14
. The wires
13
,
15
and
18
all named as USB lines.
The present invention relates to the testing of a USB hub
16
. With one conventional approach regarding the testing of a USB hub
16
, all testing commands and return status are transmitted through the USB lines
15
and the hub
16
between the host
12
and the USB devices
14
. However, since the hub
16
is a target to be tested, and as the USB command is issued to the downstream devices
14
via the USB line
15
and hub
16
, the locations of errors can not be accurately determined as errors are encountered. Furthermore, some conventional testing methods are performed under the DOS environment which are substantially different from actual WINDOWS 98 environment.
SUMMARY OF INVENTION
Therefore, it is the main object of the invention to provide an apparatus which emulates a downstream USB device to a USB hub to test whether the USB hub being tested operate normally.
A test apparatus for testing function of a USB hub under the control of a USB host computer is provided. The USB host computer issues a USB command during the test. The test apparatus includes a USB bus, an emulation device, a standard bus and a micro-controller device.
The USB bus is coupled to the USB hub. The emulation device emulates an USB device connected to the USB bus.
The standard bus is connected to the USB host computer. The microcontroller device is connected to the standard bus and the emulation device respectively to process a USB transaction corresponding to the USB command.
The invention provides a testing environment which is fully compliant to the WINDOWS 98 environment.
The advantage and spirit of the invention may be understood by the following recitations together with the appended drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1
shows a conventional computer system with USB functionality.
FIG. 2
shows a testing apparatus of the invention.
FIG. 3
shows the software architecture implementing the test method of the invention.
FIG. 4
shows one embodiment of the relay devices which emulate the device plug-in, plug-out, low speed device and high speed device.
DETAILED DESCRIPTIONS OF THE INVENTION
As depicted in
FIG. 2
, the testing apparatus of the invention includes an emulation apparatus
20
connected to the USB hub
16
via USB lines
15
. As known, during the test, the USB hub
16
is connected to a host computer
12
. Within the host computer
12
, there is provided a Utility Program running. This Utility Program provides all instructions with regard to the testing procedures which are more clear hereinafter. For instance, the Utility Program may instruct the emulation apparatus
20
to simulate action of plug-in of the USB device or simulate action of plug-out of the USB device. In this context, the command which needs human-interface is named as non-USB command hereinafter. In other words, the USB lines
15
during testing are always plugged-in and do not involve the actual plug-in/plug-out. In addition to the USB lines
15
, the emulation apparatus
20
is further electrically connected to the host computer
12
via one standard bus, i.e. RS-232.
The emulation apparatus
20
executes the USB command issued from the Utility Program running in host computer
12
, via the USB hub
16
, USB lines
15
, during the test. The standard bus, i.e. RS-232, is used to transmit the non-USB commands from the Utility Program to the emulation apparatus
20
to emulate human actions, i.e. plug-in or plug-out of the USB lines
15
. With this provision and, as a non-USB command, issued to the emulation apparatus
20
via the RS-232, is executed inaccurately, one may determine the USB hub
16
as the location of error. The USB commands may be transmitted to the emulation apparatus
20
via the USB lines
15
as need arises. Once a command is executed, the result of the execution, i.e. the status, may be transmitted to the Utility Program via either the USB lines
15
or the RS-232 or both. Through comparison, the Utility Program may easily decide which one of the emulation apparatus
20
and the USB hub
16
has error.
In a preferred embodiment, the emulation apparatus
20
, as shown, includes a number of sets of relay devices. For instance, R
11
, R
12
and R
13
are one set of the relay device corresponding to one emulated device, i.e. USB keyboard. And the shown R
21
, R
22
and R
23
are another set of the relay device corresponding to another emulated device. The R
31
, R
32
and R
33
are another set of the relay device and R
41
, R
42
and R
43
are another set of the relay device.
Within the emulation apparatus
20
, there is provided a first micro-controller
24
, a second micro-controller
26
, a third micro-controller
28
, a first emulator
21
and a second emulator
23
. In an alternate approach, one may integrate the first micro-controller
24
, the second micro-controller
26
and the third micro-controller
28
into a single integrated controller. In another alternate approach, one may integrate the first emulator
21
and the second emulator
23
into a single integrated controller. As a preferred embodiment, the first micro-controller
24
, the second micro-controller
26
and the third micro-controller
28
are respectively the well known
8051
compatible micro-controller.
The first micro-controller
24
connects to the control inputs of the relay devices through the control lines
22
. In this depicted example, there are 12 bits on the control lines
22
. Each relay device is controlled by one bit of the control lines
22
. The first emulator
21
operates to emulate one type of the USB device, i.e. and HID type USB device. The interrupt type device is also called the human interface device (HID) in the arts. The HID type USB devices include the USB keyboard. The second emulator
23
operates to emulate another type of the USB device, i.e. a Bulk type or an Isochrome type USB device. The Bulk type USB devices include the USB scanner. The Isochrome type devices include the USB audio apparatus.
The ON/OFF of relay devices R
11
, R
21
, R
31
and R
41
are used to respectively emulate the ON/OFF of the corresponding ports connected. That is, the ON/OFF of relay devices R
11
, R
21
, R
31
and R
41
emulates respectively the plug-in or plug-out of the USB devices connected to one corresponding port
1
,
2
,
3
or
4
. The statuses of the relay devices R
11
, R
21
, R
31
and R
41
are transmitted back the Utility Program via the USB lines
15
, the USB hub
16
, or, alternatively via the USB lines
15
, the first emulator
21
, the second micro-controller
26
, the first controller
24
and the RS232, or, alternatively, via the USB lines
15
, the second emulator
23
, the third micro-controller
28
, the first controller
24
and the RS-232. The ON/OFF of relay devices R
12
, R
22
, R
32
and R
42
are used to emulate the switching of high/low speed of operation of one corresponding USB device respectively. The statuses of the relay devices R
12
, R
22
, R
32
and R
42
are transmitted back to the Utility Program via the USB lines
15
, the USB hub
16
, or, alternatively, via the USB lines
15
, the first emulator
21
, the second micro-controller
26
, the first controller
24
and the RS-232, or, alternatively, via the USB lines
15
, the second emulator
23
, the third micro-controller
28
, the first controller
24
and the RS-232. The ON/OFF of relay devices R
13
, R
23
, R
33
and R
43
are used to emulate the over-current protection of one corresponding USB device respectively.
The first emulator
21
and the second emulator
23
are, for instance, respectively a flash memory device with pre-programmed firmware. The firmware within the first emulator
21
may emulate the function of an HID device. The firmware within the second emulator
23
may emulate the function of a bulk type device or an isochrome type device.
As
8051
compatible micro-controller is used as the first, the second and the third micro-controller
24
,
26
,
28
respectively, the well known I
2
C bus is used to communicate the micro-controllers as shown. The first emulator
21
communicates with the second micro-controller
26
via the lines
210
. The second emulator
23
communicates with the third micro-controller
28
via the lines
230
.
As the Utility Program issues a non-USB command, i.e. a plug-in action of port
1
, via the RS-232, the first micro-controller
24
, in response, issues a control signal to relay device R
11
which corresponds to the port
1
. The relay device R
11
then, in response, is closed to emulate the plug-in of the port
1
. The status of the relay device R
11
is read either by USB hub
16
via the USB line
15
or read by the first emulator
21
via the USB line
15
. Under the control of the Utility Program, the status may be returned to the Utility Program either through RS-232 or line
18
. If RS-232 is specified, then the status is transmitted through the first emulator
21
, line
210
, the second micro-controller
26
, the I
2
C bus
260
and the first micro-controller
24
.
In parallel, the relay device corresponding to the port of a bulk-type or a isochrome-type device may be controlled in the same way. Under the control of the Utility Program, the status may be returned to the Utility Program either through RS-232 or line
18
. If RS-232 is specified, then the status is transmitted through the second emulator
23
, line
230
, the third micro-controller
28
, the I
2
C bus
280
and the first micro-controller
24
. Through the provision of the invention, the location of the bug can be found easily during test.
The software architecture of the invention is shown in FIG.
3
. As a command is issued by the Utility Program
30
, the WINDOWS 98 kernel
32
operates accordingly to call a corresponding down stream device driver
331
,
333
or
335
. Thereafter, the corresponding device driver is called to drive the WINDOWS 98 bus driver
34
. In succession, the command is received by the firmware
35
either within the first emulator
21
or the second emulator
23
. In response, the first or second emulator
21
,
23
then instructs the corresponding first or second micro-controller
26
,
28
to perform the required USB command.
To illustrate how the statuses of the relay devices, for instance, R
11
and R
12
are transmitted to the USB hub
16
and how these statuses are used by the invention, the preferred embodiments for the R
11
and R
12
are shown in FIG.
4
.
As shown in
FIG. 4
, the relay device R
11
has two control inputs
1
and
2
respectively receiving bit x signal. The bit x signal is one signal within the control lines
22
of FIG.
2
. Also, the relay device R
12
has two control inputs
1
and
2
respectively receiving bit y signal. The bit y signal is one signal within the control lines
22
of FIG.
2
. The relay device R
11
has first and second relays corresponding to the control inputs
1
and
2
respectively. The relay device R
12
has first and second relays corresponding to the control inputs
1
and
2
respectively. The first relay within the relay device R
11
has a D+ signal output terminal and the second relay within the relay device R
11
has a D_signal output terminal. The first relay within the relay device R
12
has a D+ signal output terminal and the second relay within the relay device R
12
has a D_signal output terminal. The D− signal output terminal of R
11
is connected to the D− signal output terminal of R
12
and the D− signal is one signal within the USB lines
15
of FIG.
2
. The D+ signal output terminal of R
11
is connected to the D+ signal output terminal of R
12
and the D+ signal is one signal within the USB lines
15
of FIG.
2
. When bit x=1, the first and second relays of R
11
are close, the D− output terminal thereof outputs logic high signal. The D_is a status output terminal, which is coupled to the USB bus
15
, of the relay
11
. When bit y=1, the first and second relays of R
12
are close, the D+ output terminal thereof outputs logic high signal. The D+ is a status output terminal, which is coupled to the USB bus
15
, of the relay
12
. As bit x is set to be 1 and bit y is set to be 0, the D− signal within USB lines
15
is logic high. According to the specification of USB standard, this indicates a condition of low speed device being plugged in. As bit y is set to be 1 and bit x is set to be 0, the D+ signal within USB lines
15
is logic high. According to the specification of USB standard, this indicates a condition of high speed device being plugged in. As bit x is set to be 0 and bit y is set to be 0, according to the specification of USB standard, this indicates a condition of the USB device being plugged out. Therefore, the conditions of plug-in, plug-out and switching between the high and low speed operations are emulated through the relay devices R
11
and R
12
.
It may be readily understood that operations of R
21
, R
22
and R
31
, R
32
and R
41
, R
42
may be similar to that of R
11
, R
12
recited above.
Claims
- 1. A test apparatus for testing function of a USB hub under the control of a USB host computer, the USB host computer issuing a USB command during the test, comprising:a USB bus coupled to the USB hub; means for emulating an USB device connected to the USB bus; a standard bus connected to the USB host computer; a micro-controller means connected to the standard bus and the emulating means respectively for processing a USB transaction corresponding to the USB command; and a relay which functions to emulate the plug-in and plug-out action of the test apparatus.
- 2. The test apparatus of claim 1, wherein the standard bus is a RS-232 bus.
- 3. The test apparatus of claim 1, the USB host computer further issuing a plug-in or plug-out command of the test apparatus, wherein the plug-in command is transmitted through the standard bus.
- 4. The test apparatus of claim 1, wherein the relay has a status output terminal coupled to the USB bus.
- 5. A method for testing function of a USB hub under the control of a USB host computer, the USB host computer issuing a plug-in or plug-out command to a test apparatus during the test, the test apparatus comprising a USB bus coupled to the USB hub, means for emulating a USB device connected to the USB bus, a standard bus connected to the USB host computer, a micro-controller means connected to the standard bus and the emulating means respectively for processing a transaction corresponding to the command, and a relay which functions to emulate the plug-in and plug-out action of the test apparatus, the method comprising the steps of:transmitting the plug-in or plug-out command via the standard bus; the micro-controller issuing a control signal to process the plug-in or plug-out command.
- 6. The method of claim 5, wherein the standard bus is a RS-232 bus.
- 7. The method of claim 5, wherein the relay has a status output terminal coupled to the USB bus.
- 8. A test apparatus for testing function of a USB hub under the control of a USB host computer, the USB host computer issuing a USB command during the test, comprising:a USB bus coupled to the USB hub; device for emulating an USB device connected to the USB bus; a standard bus connected to the USB host computer; a micro-controller device connected to the standard bus and the emulating device respectively for processing a USB transaction corresponding to the USB command; and a relay which functions to emulate the plug-in and plug-out action of the test apparatus.
- 9. The test apparatus of claim 8, wherein the standard bus is a RS-232 bus.
- 10. The test apparatus of claim 8, the USB host computer further issuing a plug-in or plug-out command of the test apparatus, wherein the plug-in command is transmitted through the standard bus.
- 11. The test apparatus of claim 8, wherein the relay has a status output terminal coupled to the USB bus.
US Referenced Citations (8)