USB Endpoint 0 Control Transfer Timeout Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

USB control transfer at Endpoint 0 often results in timeouts due to the inability to respond within the 500 ms deadline, particularly in image processing apparatuses using general-purpose OS like Linux, where CPU resources are not prioritized for real-time tasks.

Innovation Solution

Implementing a separate thread mechanism within the driver layer to pre-acquire and hold response data for control transfer commands, allowing for timely transmission to the host PC without CPU load dependency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a general-purpose OS (e.g., Linux) is used for USB device control, then system versatility and ease of operation are improved, but the ability to guarantee response within 500 ms for control transfer is worsened due to even CPU time division

Engineering Contradiction:
ImproveOS versatilityVSAvoidresponse time guarantee
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent creates a separate thread that performs preliminary actions by acquiring and holding response data in advance before the host PC issues the IN request. This pre-computed data is stored in a buffer, ensuring that when the request arrives, the response is already prepared and can be transmitted within the 500 ms deadline regardless of CPU scheduling decisions by the general-purpose OS.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If CPU processing priority is raised for real-time tasks, then response time within 500 ms is improved, but device complexity and scheduling complexity are worsened

Engineering Contradiction:
Improveresponse time guaranteeVSAvoidscheduling complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the USB control transfer processing into two independent parts: a separate thread responsible for acquiring and holding response data, and the main USB processing thread that handles incoming requests. This segmentation allows the response data preparation to occur independently of CPU scheduling priorities, simplifying the overall system design while ensuring timely responses.

Inventive Principle:
Principle #1Segmentation

3Productivity

If interrupt transfer is used to notify host PC of buffer status, then communication efficiency is improved, but it cannot be applied to Endpoint 0 control transfer protocol

Engineering Contradiction:
Improvecommunication efficiencyVSAvoidprotocol applicability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements a universal solution that works for Endpoint 0 control transfer by using a separate thread to pre-acquire response data. This approach provides the same functionality as interrupt transfer (ensuring timely data availability) but is applicable to control transfer protocols where interrupt transfer cannot be used, thereby achieving multi-functionality across different USB communication modes.

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

Data Source

PatentUS11709644B2Image processing apparatus connected to another apparatus by a USB cable and communicating with the another apparatus via a USB communication, method for controlling the image processing apparatus, and storage medium thereof
Publication Date: 2023.07.25 CANON KK
  • US11709644B2 patent drawing
  • US11709644B2 patent drawing
  • US11709644B2 patent drawing

AI summary

An information processing apparatus is capable of communicating via a universal serial bus (USB) cable with a USB host device configured to transmit a first control transfer command at a start of communication. The information processing apparatus includes one or more controllers configured to function as a unit configured to acquire and hold predetermined data in response to having received the first control transfer command from the USB host device and a unit configured to transmit the held predetermined data to the USB host device on the basis of having received a second control transfer command from the USB host device.