Method for uniquely addressing multiple USB devices with the same PID and VID values and retaining that address after removal/addition to the system
Original Publication Date: 2004-Jul-16
Included in the Prior Art Database: 2004-Jul-16
Because USB devices are enumerated as they are detected, it is often not possible to differentiate between multiple identical devices. This disclosure defines a mechanism to differentiate the devices not only while they are connected, but persistently, while maintaining the assigned vendor and product identifiers (VID and PID). This also allows user selection of the device identification without regard to the enumeration based on order of connection.
Method for uniquely addressing multiple USB devices with the same PID and VID values and retaining that address after removal /addition to the system
The problem was to develop a method that manufacturing could use to test multiple systems using only one controlling PC. Each of the systems had a parallel interface that was required to run the above mentioned tests. The two possible solutions were to use already existing hardware to split the single parallel port on the PC into multiple parallel ports with the use of peripheral component interconnect (PCI) cards. The second solution was to develop a method to use the USB interface to control the systems under test. Splitting of the parallel port using existing PCI cards was both expensive and required multiple PCI slots that were not available on the PCs in use in manufacturing. The universal serial bus (USB) interface was favorable do to its flexibility and reliability. The problem with using the USB interface for this application was that there was not a manufactured USB to parallel convertor on the market using the USB 2.0 interface protocol. This meant that a hardware and software solution had to be developed in order make this method possible. One additional problem with using the USB solution is that Windows* used an addressing scheme that didn't allow us to connect/disconnect the multiple USB to Parallel convertors and keep a unique address for each one. This is the problem that is solved by our invention.
We needed a way to address each USB to parallel convertor uniquely and have that address be static through disconnect/connect cycles. The only way to do this was to implement a set of four switches and connect them to the general purpose input/output (GPIO) pins of the USB to parallel convertor integrated circuit (IC). This allowed us to set the board to a certain address and that address would be there after disconnect/connect cycles.
There are two parts to this invention. The first is the hardware, which included a new card with the USB->pa...