Bi-directional Communication Handshaking for Microcontroller Interfaces
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current two-wire communication schemes, such as RS232, SPI, and I2C, often suffer from collisions and lack bi-directional capabilities, particularly in low-cost microcontrollers that do not have dedicated peripherals for these protocols, making it difficult to ensure that only one device initiates communication at a time.
Innovation Solution
A method and apparatus that utilize a handshaking algorithm to ensure bi-directional communication by determining the state of a signal line, driving it to an asserted state, and then ceasing to drive it, allowing the second device to acknowledge and initiate data transfer, thereby preventing collisions and enabling communication between devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If bi-directional communication is implemented using traditional protocols (RS232, SPI, I2C), then communication capability is provided, but collision risks increase and device complexity increases due to dedicated peripherals
Solution Approach 1:
The patent applies preliminary action by implementing a handshaking mechanism where devices check the state of a signal line before initiating communication. The first device determines if the signal line is deasserted, drives it asserted, then ceases driving and checks again before transferring data. This preliminary checking and signaling prevents collisions by ensuring the communication channel is clear before data transfer begins.
Solution Approach 2:
The patent implements dynamics by allowing role reversal between devices. The same signal line and devices can switch roles dynamically - a device that was transmitting can become receiving and vice versa. This is achieved through the handshaking algorithm where either device can initiate communication by driving the signal line asserted, enabling flexible bi-directional communication without dedicated master/slave assignments.
2Reliability
If dedicated peripherals for communication protocols are used, then communication reliability is improved, but device complexity and resource usage increase
Solution Approach 1:
The patent applies universality by designing a communication interface that can operate in multiple modes (bi-directional communication with role reversal, or alternative communication modes) using the same hardware resources. The general-purpose I/O pins can function as communication pins with handshaking or serve other purposes, eliminating the need for dedicated communication peripherals and reducing device complexity while maintaining reliable communication.
Solution Approach 2:
The patent implements self-service by enabling devices to manage their own communication state through the handshaking algorithm. Each device can independently determine when to initiate communication by checking the signal line state, driving it asserted, and managing the data transfer without requiring complex dedicated communication controllers. This self-managed approach reduces peripheral complexity while ensuring reliable communication through the structured handshaking process.
3Device complexity
If simple two-wire schemes are used, then device complexity is reduced, but collision risks and loss of communication control increase
Solution Approach 1:
The patent applies preliminary action by implementing a handshaking mechanism where devices check the state of a signal line before initiating communication. The first device determines if the signal line is deasserted, drives it asserted, then ceases driving and checks again before transferring data. This preliminary checking and signaling prevents collisions by ensuring the communication channel is clear before data transfer begins.
Data Source
AI summary
Embodiments are directed to a system comprising: a first device, and a second device coupled to the first device via an interface that provides a handshaking algorithm that ensures that only one of the first device and the second device initiates communication over the interface at a given point in time.


