Bidirectional Error Checking for SPI Data Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing serial peripheral interface (SPI) systems lack efficient low-overhead bidirectional error checking mechanisms, which can lead to data corruption and miscommunication between the SPI controller and subcontroller, particularly in critical applications like lidar devices.

Innovation Solution

Implementing a low-overhead bidirectional error checking mechanism in SPI systems, where the SPI controller and subcontroller communicate payload data and error-checking codes, allowing for the detection of data corruption and ensuring accurate data transmission.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional SPI communication is used without error checking, then the communication overhead is low and data transmission is fast, but data corruption and miscommunication occur between SPI controller and subcontroller

Engineering Contradiction:
Improvedata transmission reliabilityVSAvoiderror checking mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by calculating and transmitting error-checking codes (such as CRC codes) along with the data payload in advance, before the actual data processing occurs. The SPI controller calculates the error-checking code for outgoing data and sends it with the payload, while the SPI subcontroller independently calculates the same code and compares it to verify data integrity. This preliminary error checking prevents corrupted data from being processed, thereby improving reliability without significantly increasing system complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms where the SPI subcontroller compares the received error-checking code with its independently calculated code and provides feedback about data integrity. If mismatch is detected, the system can request retransmission or trigger error handling protocols. This feedback loop ensures that data corruption is detected and corrected, maintaining high reliability while using standardized SPI communication protocols to minimize added complexity.

Inventive Principle:
Principle #23Feedback

2Reliability

If bidirectional error checking is implemented, then data corruption detection capability is improved, but communication overhead increases

Engineering Contradiction:
Improvedata corruption detection capabilityVSAvoiderror checking time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges the error-checking code calculation and transmission with the normal data communication process. Instead of separate error checking steps, the error-checking codes are combined with the data payload in the same communication transactions. The SPI controller and subcontroller perform error checking during their regular read/write operations, calculating and comparing codes in tandem with data processing. This merging approach enables robust bidirectional error checking while minimizing additional time overhead, as the error checking occurs parallel to normal communication operations.

Inventive Principle:
Principle #5Merging (Combining)

3Measurement precision

If error-checking codes are calculated and communicated separately from data, then error detection accuracy is improved, but the process of reading/writing payload data is slowed down

Engineering Contradiction:
Improveerror detection accuracyVSAvoiddata reading/writing speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent applies preliminary action by calculating error-checking codes in advance and transmitting them together with the data payload in the same communication transaction. The SPI controller calculates the error-checking code before sending data, and the SPI subcontroller calculates and compares the code upon receiving both data and code simultaneously. This preliminary preparation and combined transmission approach maintains high error detection accuracy while avoiding separate communication steps that would slow down data reading and writing operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent merges error-checking code transmission with data payload transmission into unified communication transactions. Both data and error-checking codes are sent together over the SPI bus in the same read/write operations, eliminating the need for separate error checking communication steps. This merging maintains full error detection capability while preserving data transmission speed, as both operations occur in parallel within the same communication framework.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS20250117286A1Low-Overhead, Bidirectional Error Checking for a Serial Peripheral Interface
Publication Date: 2025.04.10 WAYMO LLC
  • US20250117286A1 patent drawing
  • US20250117286A1 patent drawing
  • US20250117286A1 patent drawing

AI summary

Example embodiments relate to low-overhead, bidirectional error checking for a serial peripheral interface. An example device includes an integrated circuit. The device also includes a serial peripheral interface (SPI) with a Master In Slave Out (MISO) channel and a Master Out Slave In (MOSI) channel. The MOSI channel is configured to receive a write address, payload data, and a forward error-checking code usable to identify data corruption within the write address or the payload data. The integrated circuit is configured to calculate and provide a reverse error-checking code usable to identify data corruption within the write address or the payload data. Additionally, the integrated circuit is configured to compare the forward error-checking code to the reverse error-checking code. Further, the integrated circuit is configured to write, to the write address if the forward error-checking code matches the reverse error-checking code, the payload data.