HID I2C Driver Standardization for Embedded Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Consumer devices face integration challenges and stability issues due to the lack of standard protocols for human interface devices (HID) communicating over simple peripheral buses like I2C and SPI, leading to system quality deficiencies and limited unified driver updates across devices from different manufacturers.

Innovation Solution

A standardized HID I2C driver is implemented, which interfaces with I2C and GPIO controller drivers, enabling efficient data communication, reducing kernel mode transactions, supporting passive interrupt processing, and optimizing power and pin count, while maintaining compatibility with various I2C controller hardware configurations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If proprietary drivers are used for HID devices from different manufacturers, then device-specific functionality can be implemented, but system integration complexity increases and stability deteriorates

Engineering Contradiction:
Improvedevice compatibilityVSAvoidsystem integration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal HID driver that can handle multiple HID device types (keyboards, mice, touchscreens, sensors) through a single standardized interface. The driver abstracts device-specific protocols into a common HID framework, allowing one driver to serve multiple device functions across different manufacturers while maintaining system stability through unified error handling and communication protocols.

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

2Adaptability or versatility

If multiple proprietary vendor drivers are implemented, then specific device functionality is supported, but system stability and quality deteriorate

Engineering Contradiction:
Improvedevice functionality supportVSAvoidsystem stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The HID driver acts as an intermediary layer between the operating system and various HID devices. It provides standardized communication protocols and abstracts device-specific variations, ensuring reliable and stable interactions. The driver includes error handling mechanisms, timeout management, and standardized data formats that guarantee system stability while supporting diverse device functionalities through the same interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If kernel mode transactions are used for HID I2C communication, then data communication is achieved, but performance and power efficiency deteriorate

Engineering Contradiction:
Improvedata communication capabilityVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The driver implements periodic polling with configurable intervals for reading HID device data, allowing the system to enter low-power states between polling cycles. For interrupt-driven devices, the driver uses event-triggered periodic actions where data transmission only occurs when actual HID events are detected, reducing unnecessary power consumption while maintaining responsive data communication.

Inventive Principle:
Principle #19Periodic action

4Speed

If active interrupt processing is used, then real-time device data is captured, but system responsiveness to other high-priority requests deteriorates

Engineering Contradiction:
Improveinterrupt response speedVSAvoidsystem throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The interrupt handling is segmented into critical and non-critical portions. The driver uses interrupt coalescing to batch multiple HID events into single processing cycles when possible, and implements work queues that defer non-time-critical HID data processing to background threads. This segmentation allows fast interrupt acknowledgment while deferring detailed processing to maintain system throughput for other high-priority requests.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8725916B2Host side implementation for HID I2C data bus
Publication Date: 2014.05.13 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8725916B2 patent drawing
  • US8725916B2 patent drawing
  • US8725916B2 patent drawing

AI summary

In embodiments of host side implementation for HID I2C data bus, a computing system includes a human interface device (HID) software stack that implements device software, such as for embedded devices, that interfaces the computing system to a peripheral device via HID over I2C. An HID I2C driver interfaces the HID software stack with the peripheral devices that each include an HID I2C interface to a device that communicates data in the computing system via an I2C data bus. The HID I2C driver is compatible and interfaces with I2C controller drivers and GPIO controller drivers of the devices, where the I2C controller drivers and the GPIO controller drivers may each have a different implementation configuration.