This invention relates generally to the Universal Serial Bus (USB) and more particularly to methods and apparatus for providing USB identification information.
The Universal Serial Bus (USB) is a peripheral bus specification developed by personal computer (PC) and telecommunication industry companies that brings the plug and play features of computer peripherals outside the PC box. This eliminates the need to install cards into dedicated computer slots and reconfigure the system. Personal computers equipped with USB allow computer peripherals to be automatically configured as soon as they are physically attached. This eliminates the need to reboot or run setup software. USB also allows multiple devices to run simultaneously on a computer, with dedicated hubs and peripherals such as monitors and keyboards also acting as additional plug-in sites.
The Universal Serial Bus is defined in the Universal Serial Bus Specification, revision 2.0, Apr. 27, 2000 which is hereby incorporated herein by reference. This document is available from the USB Implementers Forum web page at http://www.usb.org.
At least two of the pieces of identification information required to be supplied by a device on a USB bus are a vendor identification (Vendor ID or idVendor) and a product identification (Product ID or idProduct). In addition, optional identification information such as strings describing the product, serial number, and manufacturer may also be supplied. This identification information may be used by the host computer to correctly install drivers and/or other related software that allows the computer to interact with the device.
One way of storing identification information on a USB capable device uses nonvolatile memory (NVRAM). Unfortunately, NVRAM components are subject to various failure mechanisms such as electrical noise, incorrect programming sequences, certain power failures, radiation, and others. If the identification information is lost or incorrect, the computer may not be able to interact with the device, or may interact incorrectly.
Developers of USB hardware may also have an issue with storing identification information in NVRAM. This issue arises because a NVRAM is programmable. Accordingly, it is possible for an entity other than the one that paid for the development of the hardware, to program the identification information to indicate a different vendor and manufacturer than the one who paid for the development of the USB hardware. This allows the non-developing entity to take a free-ride on hardware development costs.
Accordingly, there is a need in the art for an improved way of providing identification information on a USB capable device. This way should eliminate or improve upon the failure mechanisms associated with NVRAM. It is also desirable that the solution be able to provide identification information for more than one type of USB device so that the development costs may be spread across several products yet not allow other makers of USB equipment a free-ride on those development costs.
The invention provides reliable identification information for multiple products but with a fixed vendor information. A lookup table is fixed in electronically readable hardware such as a ROM inside of an integrated circuit responsible for controlling or interfacing with a USB bus. An index is read and used to pick an entry in the lookup table. That entry provides a Product ID that is combined with fixed vendor information to complete the identification information provided for in the USB specification.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
The Type ID used as an index or offset into a lookup table 104 that outputs a Product ID.
In a preferred embodiment, the Vendor ID, Vendor String, and table of Product ID's are stored in a fixed medium such as ROM (Read Only Memory) inside of an integrated circuit that controls or interfaces with the USB bus. This helps reduce the number of components and save cost since a separate NVRAM is no longer needed. In addition, the same electronics for controlling/interfacing with a USB bus may be used for multiple products produced by a single company even though these multiple products may be required to have unique Product ID's. For example, one product may have more advanced features than another produced by the same company and therefore require different software drivers on the host computer. This invention allows the same USB electronics to be used and still have that electronics provide different Product ID's to the host computer by setting different Type ID's. Finally, the fact that the Vendor ID and Vendor String are stored in a fixed medium prevents other companies from using the same USB electronics because that electronics would provide the Vendor ID and Vendor String of the company that designed, or paid for the design, of the USB electronics.
Although several specific embodiments of the invention have been described and illustrated, the invention is not to be limited to the specific forms or arrangements of parts so described and illustrated. The invention is limited only by the claims.
Number | Name | Date | Kind |
---|---|---|---|
5042265 | Baldwin et al. | Aug 1991 | A |
5983288 | Visee | Nov 1999 | A |
6023736 | Lambeth et al. | Feb 2000 | A |
6138182 | Hennessy et al. | Oct 2000 | A |
6192420 | Tsai et al. | Feb 2001 | B1 |
6484219 | Dunn et al. | Nov 2002 | B1 |
6748515 | Hendrickson et al. | Jun 2004 | B1 |
6804727 | Rademacher | Oct 2004 | B1 |
20020133694 | Ray et al. | Sep 2002 | A1 |
20030005274 | Bresemann et al. | Jan 2003 | A1 |
Number | Date | Country |
---|---|---|
0933711 | Aug 1999 | EP |
1100018 | May 2001 | EP |
282478 | Oct 2001 | JP |
Number | Date | Country | |
---|---|---|---|
20020103952 A1 | Aug 2002 | US |