A given transmission on a communication channel between two machines can occur in several different ways. The transmission is characterized by the direction of the exchanges, the transmission mode, or the number of bits sent simultaneously, and the synchronization between the transmitter and receiver.
Simplex, Half-Duplex, and Full-Duplex Connections
There are 3 different transmission modes that are characterized according to the direction of the exchanges: a simplex connection, a half-duplex connection, and a full-duplex connection.
A simplex connection is a connection in which the data flows in only one direction, from the transmitter to the receiver. This type of connection is useful if the data does not need to flow in both directions (for example, from your computer to the printer, from the mouse to your computer, etc.).
A half-duplex connection, sometimes called an alternating connection or semi-duplex, is a connection in which the data flows in one direction or the other, but not both at the same time. With this type of connection, each end of the connection transmits in turn. This type of connection makes it possible to have bidirectional communications using the full capacity of the line.
A full-duplex connection is a connection in which the data flows in both directions simultaneously. Each end of the line can, thus, transmit and receive at the same time. This means that the bandwidth is divided in two for each direction of data transmission if the same transmission medium is used for both directions of transmission.
Serial and Parallel Transmission
The transmission mode refers to the number of elementary units of information (bits) that can be simultaneously translated by the communications channel. In fact, recent processors (and, therefore, computers in general) never process a single bit at a time.
Parallel connection means simultaneous transmission of N bits. These bits are sent simultaneously over N different channels (a channel being, for example, a wire, a cable, or any other physical medium). The parallel connection on PC-type computers generally requires 10 wires:
These channels may be:
- N physical lines: each bit is sent on a physical line - this is why parallel cables are made up of several wires in a ribbon cable.
- One physical line: divided into several sub-channels by dividing up the bandwidth (in which case each bit is sent at a different frequency).
Since the conductive wires are close to each other in the ribbon cable, interference can occur (particularly at high speeds), and degrade the signal quality.
In a serial connection, the data is sent one bit at a time over the transmission channel. However, because most processors process data in parallel, the transmitter needs to transform incoming parallel data into serial data and the receiver needs to do the opposite:
These operations are performed by a communications controller (normally a UART, or a Universal Asynchronous Receiver Transmitter) chip.
The parallel-serial transformation is performed using a shift register. The shift register, working together with a clock, will shift the register (containing all of the data presented in parallel) by one position to the left and, then, transmit the most significant bit (the leftmost one) and so on:
The serial-parallel transformation is done in almost the same way using a shift register. The shift register shifts the register by one position to the left each time a bit is received and, then, transmits the entire register in parallel when it is full:
Asynchronous and Synchronous Transmission
Given the problems that arise with a parallel-type connection, serial connections are normally used. However, because a single wire transports the information, the problem is how to synchronize the transmitter and receiver. In other words, the receiver can not necessarily distinguish the characters (or more generally the bit sequences) because the bits are sent one after the other.
There are two types of transmission that address this problem: an asynchronous connection and a synchronous connection.
- An asynchronous connection: each character is sent at irregular intervals in time. For example, imagine that a single bit is transmitted during a long period of silence. The receiver will not be able to know if this is 00010000, 10000000, or 00000100. To remedy this problem, each character is preceded by some information indicating the start of character transmission (the transmission start information is called a START bit) and ends by sending end-of-transmission information (called STOP bit). There may even be several STOP bits.
- A synchronous connection: the transmitter and receiver are paced by the same clock. The receiver continuously receives the information at the same rate that the transmitter sent it (even when no bits are transmitted). This is why the transmitter and receiver are paced at the same speed. In addition, supplementary information is inserted to guarantee that there are no errors during transmission.
During synchronous transmission, the bits are sent successively with no separation between each character, so it is necessary to insert synchronization elements: this is called character-level synchronization.
The main disadvantage of synchronous transmission is recognizing the data at the receiver, as there may be differences between the transmitter and receiver clocks. This is why each data transmission must be sustained long enough for the receiver to distinguish it. As a result, the transmission speed can not be very high in a synchronous link.