Full-Duplex SPI Driver With IRQ-Ready Payload Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing SPI communication protocols are susceptible to data loss due to peripheral devices with limited resources and processing delays, leading to inefficiencies and wasted bandwidth, even when the peripheral device is ready to receive data.
Innovation Solution
Redefine the interrupt signal (IRQ) to function as a READY signal during certain transmission phases, allowing the peripheral device to process headers and configure DMA controllers before sending payloads, ensuring synchronization and eliminating data loss.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the host transmits the payload immediately after the header, then the transmission speed is improved, but data loss occurs when the peripheral device is not ready
Solution Approach 1:
The peripheral device performs preliminary actions (processing the header, configuring the DMA controller) before the host transmits the payload. The host waits for a ready signal from the peripheral device, ensuring the peripheral is prepared to receive data without requiring the host to introduce delays.
2Reliability
If the driver introduces a delay after transmitting the header, then data loss is prevented, but bandwidth is wasted and transmission efficiency decreases
Solution Approach 1:
A feedback mechanism is implemented where the peripheral device sends a ready signal to the host when it is prepared to receive the payload. This eliminates the need for fixed delays in the host driver, as the host transmits only when the peripheral device indicates readiness, preventing data loss without wasting bandwidth.
3Productivity
If the peripheral device processes the header quickly, then transmission efficiency is improved, but data loss occurs if the processor is servicing higher priority tasks
Solution Approach 1:
The peripheral device autonomously monitors its own readiness state and signals to the host when it is prepared to receive the payload. This self-service approach allows the peripheral device to manage its own processing schedule without requiring the host to introduce delays, ensuring data integrity while maintaining efficiency.
4Adaptability or versatility
If the IRQ signal is used only as an interrupt signal, then the original function is preserved, but synchronization capability during transmission is limited
Solution Approach 1:
The IRQ signal is designed to serve multiple functions: it acts as an interrupt signal when not asserted and as a ready signal when asserted during transmission. This multi-functionality enables the peripheral device to indicate its readiness state without requiring additional dedicated signals, maintaining simplicity while enhancing synchronization capability.
Data Source
AI summary
A system and method of transmitting data between a host and a peripheral device using Serial Peripheral Interface protocol is disclosed. The host and peripheral device redefine the interrupt signal so that it serves as a traditional interrupt signal during most times, but during certain parts of the transmission, it serves as a READY signal, indicating that the host should wait before sending the payload. In this way, transmissions are performed where the likelihood of data loss is greatly reduced or eliminated. Further, because the peripheral device is able to stall the host, full duplex transmissions are made possible.


