Communication Protocols — Phase 1
Phase 1 • Communication Fundamentals 4 min read

Simplex, Half Duplex, and Full Duplex

Communication protocols are not only classified by timing synchronization (synchronous vs asynchronous), but also by directionality — how data moves between devices.

Based on who can transmit and receive data, communication links are divided into three categories: Simplex, Half Duplex, and Full Duplex. Understanding these modes helps firmware engineers select the right protocol and correctly configure hardware interfaces.

What is Simplex Communication?

In simplex communication, data flows in one direction only. It is a strict, unidirectional link where one dedicated device acts solely as the transmitter, and the other acts solely as the receiver. No return path exists.

Fig 1 — Simplex Communication (Unidirectional Data Flow)
TRANSMITTER TX ONLY DATA (TX) RECEIVER RX ONLY TX = Transmit | RX = Receive
The transmitter only sends data and the receiver only listens. Without a return channel, acknowledgments and error responses are not possible.

A simple example of simplex communication is television or radio broadcasting, where the broadcasting station continuously transmits signals and home receivers only receive them without sending any response back. Similarly, GPS satellites constantly broadcast location and timing information, while GPS devices in smartphones or vehicles only receive this data and do not transmit information back to the satellites.


What is Half Duplex Communication?

In half duplex communication, both connected devices can transmit and receive data, but not at the same time. They must take turns. While Device A is transmitting, Device B must listen. Once Device A finishes, the direction of the bus switches, and Device B can transmit while Device A listens.

Fig 2 — Half Duplex Communication (Alternating Direction)
Phase 1: Device A Transmitting DEVICE A TRANSMITTING DEVICE B RECEIVING Shared Communication Channel DATA Phase 2: Device B Transmitting DEVICE A RECEIVING DEVICE B TRANSMITTING Shared Communication Channel DATA
Both devices share the same communication channel. Data can travel in either direction, but only one device may transmit at a time.

Walkie-talkies and the CAN (Controller Area Network) bus are common examples of half-duplex communication. In a walkie-talkie system, users share a single radio channel, so only one person can speak at a time while the other listens. Similarly, on a CAN bus, multiple Electronic Control Units (ECUs) share the same communication medium and can both send and receive data, but only one ECU can successfully transmit on the bus at any given moment while the others wait for access.


What is Full Duplex Communication?

In full duplex communication, both devices can transmit and receive data simultaneously. Neither device has to wait. Separate physical data paths are allocated for transmit and receive operations, allowing concurrent, independent data streams.

Fig 3 — Full Duplex Communication (Simultaneous Bidirectional)
DEVICE A DEVICE B TX RX RX TX
Both devices have dedicated TX and RX lines. Transmission and reception happen at the same time — neither device waits for the other.

Phone calls and SPI (Serial Peripheral Interface) are common examples of full-duplex communication. During a phone call, both people can speak and listen at the same time without waiting for the other person to finish. Similarly, SPI uses separate MOSI and MISO data lines, allowing a microcontroller and peripheral device to transmit and receive data simultaneously.


Simplex vs Half Duplex vs Full Duplex

Each communication mode represents a trade-off between hardware complexity, wiring requirements, and data throughput. Simplex communication prioritizes simplicity, half duplex balances flexibility with resource usage, and full duplex delivers the highest performance at the cost of additional hardware.

Fig 4 — Comparison of Communication Modes

Feature Simplex Half Duplex Full Duplex
Communication Direction One-way only Two-way (alternating) Two-way (simultaneous)
Data Flow Sender → Receiver Either direction, one at a time Both directions at the same time
Acknowledgment Support Not possible Supported Supported
Communication Path Single path Shared path Separate TX and RX paths
Hardware Complexity Low Moderate Higher
Wiring Requirement Minimal Minimal Additional signal paths required
Throughput Lowest Moderate Highest
Typical Examples GPS Receivers, Broadcast Systems CAN Bus, RS-485, Walkie-Talkies SPI, Ethernet, Phone Calls

Choosing the Right Communication Mode

Simplex is suitable when data only needs to travel in one direction. Half duplex is commonly used when devices must exchange information but can share a common communication channel. Full duplex is preferred when maximum throughput and real-time bidirectional communication are required.

Why This Matters

Firmware engineers encounter these communication modes whenever they configure peripherals or debug interfaces. Understanding the difference between simplex, half duplex, and full duplex communication helps when selecting protocols, designing driver software, and diagnosing bus contention or data transfer issues.

Quick Summary

Simplex, half duplex, and full duplex communication differ in how data flows between devices. Simplex supports one-way transfers, half duplex enables bidirectional communication one direction at a time, and full duplex allows simultaneous transmission and reception. Understanding these communication modes helps firmware engineers select appropriate interfaces, design reliable drivers, and troubleshoot communication issues in embedded systems.