USB Peripheral Identification via Dynamic Class Code Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveidentification accuracyVSAvoiduser convenience
Core Design Contradiction:
Measurement precisionVSEase of operation

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #13The other way round (Inversion)

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

Engineering Contradiction:
Improvesoftware support coverageVSAvoidhost software burden
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvefunctionality supportVSAvoidsoftware selection flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8578062B2Method and apparatus for enabling enhanced USB interaction
Publication Date: 2013.11.05 MALIKIE INNOVATIONS LTD
  • US8578062B2 patent drawing
  • US8578062B2 patent drawing
  • US8578062B2 patent drawing

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.