Bidirectional Error Checking for SPI Data Integrity
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If bidirectional error checking is implemented, then data corruption detection capability is improved, but communication overhead increases
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.
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
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.
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.
Data Source
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.


