USB Emulation Layer for Non-Standard Device Driver Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

New types of peripheral devices, such as media-agnostic, on-chip, and virtual components, which do not conform to traditional USB standards, face challenges in accessing USB drivers and applications due to the limitations of the universal serial bus stack.

Innovation Solution

The implementation of an emulation layer within the USB stack allows non-compliant devices to access USB drivers and applications by translating device communications into USB-compatible formats, enabling them to interact with the USB client interface and autonomously respond to system communications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the USB stack uses traditional USB protocol standards, then USB devices can communicate with USB drivers and applications, but non-USB devices (media-agnostic, on-chip, virtual components) cannot access USB drivers and applications

Engineering Contradiction:
Improvedevice compatibilityVSAvoidstack structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

An emulation layer is introduced as an intermediary component between non-USB devices and the USB stack. This emulation layer translates device communications into USB-compatible formats, enabling non-USB devices to access USB drivers and applications without modifying the core USB protocol implementation. The emulation layer acts as a mediator that converts between different communication protocols, thereby expanding device compatibility while maintaining the integrity of the traditional USB stack.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the USB stack is modified to support non-USB devices directly, then device compatibility improves, but the complexity of the USB stack increases

Engineering Contradiction:
Improvedevice compatibilityVSAvoidstack structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The USB stack is segmented into distinct layers: the traditional USB protocol stack remains intact, while a separate emulation layer is added on top. This segmentation allows the core USB stack to maintain its simplicity and stability, while the emulation layer handles the complexity of supporting non-USB devices. By dividing the system into independent functional layers, the patent avoids increasing the complexity of the USB stack itself while still achieving enhanced device compatibility.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If device-specific drivers are required for non-USB devices, then communication precision is maintained, but the need for multiple drivers increases system complexity

Engineering Contradiction:
Improvecommunication accuracyVSAvoiddriver quantity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The emulation layer provides a universal interface that allows non-USB devices to communicate through the standard USB driver infrastructure. Instead of requiring separate device-specific drivers for each non-USB device type, the emulation layer translates their communications into a universal USB-compatible format that can be handled by existing USB drivers. This multi-functional approach maintains communication accuracy while eliminating the need for numerous device-specific drivers, thereby reducing overall system complexity.

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

Data Source

PatentUS10162778B2Universal serial bus emulation layer
Publication Date: 2018.12.25 MICROSOFT CORP
  • US10162778B2 patent drawing
  • US10162778B2 patent drawing
  • US10162778B2 patent drawing

AI summary

A universal serial bus stack may use an emulation layer to grant a non-universal serial bus device access to universal serial bus drivers and applications. The universal serial bus stack may exchange a device communication at an emulation layer. The universal serial bus stack may translate between a universal serial bus communication and the device communication at the emulation layer, and then may exchange the universal serial bus communication at a universal serial bus client interface.