USB Peripheral Identification via Dynamic Class Code Switching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing USB host and peripheral device interactions often result in users being inconvenienced by requests to load missing support software, as vendors cannot anticipate all desired peripheral device functions, leading to incomplete software support and user inconvenience.
Innovation Solution
The method involves the peripheral device initially providing identification data that specifies a widely supported function, allowing the host to select generic or vendor-specific support software, and then simulating detachment and re-attachment to provide accurate identification of its capabilities, enabling interaction and potentially deferring software installation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If the peripheral device provides accurate identification data specifying all its functions, then the host can select appropriate support software, but users may be inconvenienced by requests to load missing software that vendors cannot anticipate
Solution Approach 1:
The peripheral device performs preliminary action by providing identification data that specifies a widely supported function before the host actually needs to interact with it. This allows the host to proactively load appropriate support software in advance, preventing user inconvenience when the device is later used. The device essentially prepares the software environment beforehand based on its capability profile.
Solution Approach 2:
Instead of the host querying the device for its full capabilities and then requesting software installation (which causes user inconvenience), the invention inverts the approach: the device initially presents itself with identification data for a widely supported function, allowing the host to load software without user intervention. The full capability matching is deferred to a later stage when vendor-specific software is already available.
2Adaptability or versatility
If vendors load all possible support software onto hosts, then all peripheral device functions can be supported, but the host device complexity and software distribution burden increase
Solution Approach 1:
The invention applies universality by making the peripheral device capable of providing identification data for multiple functions. The device can present different function profiles depending on which support software is available on the host. This allows a single device to be universally supported across different host configurations without requiring vendors to pre-load all possible software.
Solution Approach 2:
The peripheral device dynamically changes its identification parameters (device class codes) based on what support software is available on the host. Instead of fixed identification data, the device can adapt its reported capabilities to match available software, enabling full functionality support without increasing host software burden. The device essentially adjusts its identity parameters to fit the host's software environment.
3Reliability
If the peripheral device provides comprehensive identification data immediately, then all functions can be supported, but generic support software cannot be selected when vendor-specific software is unavailable
Solution Approach 1:
The identification data provision is made dynamic rather than static. The peripheral device can provide different identification data at different times based on what support software is available on the host. Initially, it provides data for widely supported functions to enable generic software selection. Later, when vendor-specific software is available, it provides comprehensive identification data for all functions. This dynamic adaptation resolves the contradiction between reliability and flexibility.
Data Source
AI summary
Methods and apparatuses for configuring a universal serial bus (USB) connection. The method comprises receiving, at a USB port, first identification data that includes a generic device class code and a vendor identifier. Receiving the first identification causes one of enabling interaction with a peripheral device in accordance with functionality specified by the generic device class code if the host device does not support software associated with the vendor identifier, or sending, at the USB port, a query to the peripheral device if the host device does support software associated with the vendor identifier, the query sent to determine whether the peripheral device supports at least one function different from the functionality specified by the generic device class code.


