SERIAL COMMUNICATION
(I) Introduction:
Serial communication is common method of transmitting data between a computer
and a peripheral device such as a programmable instrument or even another
computer. Serial communication transmits data one bit at a time, sequentially,
over a single communication line to a receiver. Serial is also a most popular
communication protocol that is used by many devices for instrumentation;
numerous GPIB-compatible devices also come with an RS-232 based port. This
method is used when data transfer rates are very low or the data must be
transferred over long distances and also where the cost of cable and
synchronization difficulties make parallel communication impractical. Serial
communication is popular because most computers have one or more serial ports,
so no extra hardware is needed other than a cable to connect the instrument to
the computer or two computers together.
(II)
Serial Vs Parallel:
Let us now try to have a comparative study on parallel and serial
communications to understand the differences and advantages & disadvantages
of both in detail.
We know that parallel ports are typically used to connect a PC to a printer and
are rarely used for other connections. A parallel port sends and receives data
eight bits at a time over eight separate wires or lines. This allows data to be
transferred very quickly. However, the setup looks more bulky because of the
number of individual wires it must contain. But, in the case of a serial
communication, as stated earlier, a serial port sends and receives data, one
bit at a time over one wire. While it takes eight times as long to transfer
each byte of data this way, only a few wires are required. Although this is
slower than parallel communication, which allows the transmission of an entire
byte at once, it is simpler and can be used over longer distances. For example,
the IEEE 488 specifications for parallel communication state that the cabling
between equipment can be no more than 20 meters total, with no more than 2
meters between any two devices; serial, however, can extend as much
as1200meters (with high-quality cable).
So, at first sight it would seem that a serial link must be inferior to a
parallel one, because it can transmit less data on each clock tick. However, it
is often the case that, in modern technology, serial links can be clocked
considerably faster than parallel links, and achieve a higher data rate.
Even in shorter distance communications, serial computer buses are becoming
more common because of a tipping point where the disadvantages of parallel
busses (clock skew, interconnect density) outweigh their advantage of
simplicity (no need for serializer and deserializer).
The serial port on your PC is a full-duplex device meaning that it can send and
receive data at the same time. In order to be able to do this, it uses separate
lines for transmitting and receiving data.
From the above discussion we could understand that serial communications have
many advantages over parallel one like:
a) Requires
fewer interconnecting cables and hence occupies less space.
b) "Cross talk" is less of an issue, because there are fewer
conductors compared to that of parallel communication cables.
c) Many IC s and peripheral devices have serial interfaces.
d) Clock skew between different channels is not an issue.
e) No need of (SERDES).
f) Cheaper to implement.
Clock
skew:
Clock skew is a phenomenon in synchronous circuits in which the clock signal
sent from the clock circuit arrives at different components at different times,
which can be caused by many things, like: -
a) Wire-interconnect length,
b) Temperature variations,
c) Variation in intermediate devices,
d) Capacitive coupling,
e) Material imperfections,
As the clock rate of a circuit increases, timing becomes more critical and less
variation can be tolerated if the circuit is to function properly.
There are two types of clock skew: Positive skew, which occurs when the clock
reaches the receiving register later than it reaches the register sending data
to the receiving register and negative skew which just opposite: the receiving
register gets the clock earlier than the sending register.
Two types of violation can be caused by clock skew. One problem is caused when
the clock travels more slowly than the path from one register to another -
allowing data to penetrate two registers in the same clock pulse, or maybe
destroying the integrity of the latched data. This is called a hold violation
because the previous data is not held long enough at the destination flip-flop
to be properly clocked through. Another problem is caused if the destination
flip-flop receives the clock pulse earlier than the source flip-flop - the data
signal has that much less time to reach the destination flip-flop before the
next clock tick. If it fails to do so, a setup violation occurs, so-called
because the new data was not set up and stable before the next clock tick
arrived. A hold violation is more serious than a setup violation because it
cannot be fixed by increasing the clock period. Positive skew and negative skew
cannot negatively impact setup and hold timing constraints respectively
(III) Asynchronous
Vs Synchronous data transmission:
Like any data transfer methods, Serial Communication also requires coordination
between the sender and receiver. For example, when to start the transmission
and when to end it, when one particular bit or byte ends and another begins,
when the receiver's capacity has been exceeded, and so on. Here comes the need
for synchronization between the sender and the receiver. A protocol defines the
specific methods of coordinating transmission between a sender and receiver.
Let us take an example. A serial data signal between two PCs must have
individual bits and bytes that the receiving PC can distinguish. If it doesn't,
then the receiving PC can't tell where one byte ends and the next one begin or
where one bit ends and begins. So the signal must be synchronized in such a way
that the receiver can distinguish the bits and bytes as the transmitter intends
them to be distinguished. There are two ways to synchronize the two ends of the
communication namely synchronous and asynchronous. The synchronous signaling
methods use two different signals. A pulse on one signal line indicates when another
bit of information is ready on the other signal line. The asynchronous
signaling methods use only one signal. The receiver uses transitions on that
signal to figure out the transmitter bit rate (known as auto baud) and timing,
and set a local clock to the proper timing, typically using a PLL to
synchronize with the transmission rate. A pulse from the local clock indicates
when another bit is ready. That means synchronous transmissions use an external
clock, while asynchronous transmissions are use special signals along the
transmission medium.( Refer Fig1.a) Asynchronous communication is the commonly
prevailing communication method in the personal computer industry, due to the
reason that it is easier to implement and has the unique advantage that bytes
can be sent whenever they are ready, an no need to wait for blocks of data to
accumulate.
Mode of connection: -
In a simple connection, the hardware configuration is such that only one-way
communication is possible. For example, from a computer to printer that cannot
send status signals back to the computer. In a half-duplex connection, two-way
transfer of data is possible, but only in one direction at a time. But in a
full-duplex configuration, both ends can send and receive data simultaneously,
which technique is common in our PCs.
Synchronous
transmission - a brief explanation:
In synchronous transmission, the stream of data to be transferred is encoded
and sent on one line, and a periodic pulse of voltage which is often called the
"clock" or "strobe" is put on another line, that tells the
receiver about the beginning and the ending of each bit (or byte). In general,
such synchronous transmission protocols are used for all the types of parallel
communications. For example, in a computer, address information is transmitted
synchronously, i.e.: the address bits over the address bus, and the read strobe
in the control bus.
Synchronization can also be embedded into a signal on a single wire. In
differential Manchester encoding, used in video-tape systems, each transition
from a low to high or high to low represents a logical zero. A logical one is
indicated when there are two transitions in the same time frame.
(Fig above) Synchronous Vs Asynchronous
The
advantages & disadvantages:
The only advantage of synchronous data transfer is the Lower overhead and thus,
greater throughput, compared to asynchronous one. But it has some disadvantages
such as,
1) Slightly more complex and
2) Hardware is more expensive
One of the main Disadvantage of asynchronous technique is the large relative
overhead, where a high proportion of the transmitted bits are uniquely for
control purposes and thus carry no useful information. But it holds some
advantages like,
1) Simple and doesn't require much synchronization on both communication sides
2) The timing is not as critical as for synchronous transmission; therefore
hardware can be made cheaper.
3) Set-up is very fast, so well suited for applications where messages are
generated at irregular intervals, for example data entry from the keyboard
The DCE & the
DTE:
The terms DTE and DCE are very common in the data communications technologies.
DTE is short for Data Terminal Equipment and DCE stands for Data Communications
Equipment. But what do they really mean? As the full DTE name indicates, this
is a piece of device that ends a communication line, whereas the DCE provides a
path for communication. Let us try to understand the functions of both these
equipments through an example. Let's take the example of a computer on which
wants to communicate with the Internet through a modem and a dial-up
connection. To get to the Internet you tell your modem to dial the number of
your provider. After your modems have dialed the number, the modem of the
provider will answer your call. Then your connection is established. Now you
have a connection with the server from your provider and you can use the
Internet. In this example, your PC is a Data Terminal (DTE). The two modems
(yours and that one of your provider's) are DCEs. They make the communication
between you and your provider possible. But now we have to look at the server
of your provider. Is that a DTE or DCE? The answer is a DTE. It ends the
communication line between you and the server, although it gives you the
possibility to surf around the globe. The reason why it is a DTE is that when
you want to go from your provider's server to another place it uses another
interface. So DTE and DCE are interface dependent. It means, for your
connection to the server, the server is a DTE, but the same server is a DCE for
the equipment that it is attached to the rest of the Net.
(IV) How does it
(Serial date transfer) work:
Let us come back to serial communication and try to know how the data is
transferred serially. Serial communication requires that you specify the
following five parameters:
1) The speed or baud rate of the transmission
2) The number of data bits encoding a character
3) The sense of the optional parity bit (whether to be used or not, if yes then
odd or even)
4) The number of stop bits
5) Full or half-duplex operation
Each transmitted character is packaged in a character frame that consists of a
single start bit followed by the data bits, the optional parity bit, and the
stop bit or bits, as shown in the Fig-1.a & Fig-1.b. After the stop bit,
the line may remain idle indefinitely, or another character may immediately be
started. The minimum stop bit length required by the system can be larger than
a "bit". In fact it can be 1.5 stop bits, or 2 stop bits, or even the
new hardware that doesn't support fractional stop bits can be configured to
send 2 stop bits when transmitting and requiring 1 stop bit when receiving.
Fig-1.b
Typically, serial communication is carried out using ASCII form of the data. Communication is completed using 3 transmission lines: Ground, Transmit, and Receive. Since serial is asynchronous (in many applications), the port is able to transmit data on one line while receiving data on another. Other lines are available for handshaking, but are not required. We already understood that the important serial characteristics are baud rate, data bits, stop bits, and parity and for two ports to communicate, these parameters must match.
Let us now try
to understand each term in detail.
Baud rate: Used to specify Data speed, which is a measure of the number of
times a digital signal changes state in one second or the number of signal
events or signal transitions occurring per second. The changes can be
a) From positive voltage to zero voltage,
b) From zero voltage to negative voltage, or
c) From positive voltage to negative voltage.
The baud rate can never be higher than the raw bandwidth of the channel, as
measured in Hz. Baud rate and bit rate, often and incorrectly, are used
interchangeably. The relationship between baud rate and bit rate depends on the
sophistication of the modulation scheme used to manipulate the carrier. The bit
rate (bits per second or bps) and baud rate can be the same, if each bit is
represented by a signal transition in a single-bit modulation scheme. Baud rate
is almost always a lower figure than bps for a given digital signal because
some signal modulation techniques allow more than one data bit to be
transmitted per change state.
So the bit rate (bps) and baud rate (baud per second) can be connected by the
formula: -
bps = baud per second x the number of bit per baud
The number of bit per baud is determined by the modulation technique. The
following two examples give how it could be.
1) When FSK ("Frequency Shift Keying", a transmission technique) is used,
each baud transmits one bit; only one change in state is required to send a
bit. Thus, the modem's bps rate is equal to the baud rate
2) When we use a baud rate of 2400, you use a modulation technique called phase
modulation that transmits four bits per baud. So:
2400 baud x 4 bits per baud = 9600 bps
Such modems are capable of 9600 bps operation Common baud rates for telephone
lines are 14400, 28800, and 33600. Baud rates greater than these are possible,
but these rates reduce the distance by which devices can be separated. These
high baud rates are used for device communication where the devices are located
together, as is typically the case with GPIB devices.
Data bits: When the
computer sends a packet of information, the amount of actual data may not be a
full 8 bit. Standard values for the data packets are 5, 7, and 8 bits. Which
setting you choose depends on what information you are transferring. For
example, standard ASCII has values from 0 to 127 (7 bits). Extended ASCII uses
0 to 255 (8 bits). If the data being transferred is simple text (standard
ASCII), then sending 7 bits of data per packet is sufficient for communication.
A packet refers to a single byte transfer, including start/stop bits, data
bits, and parity. Since the number of actual bits depends on the protocol
selected, the term packet is used to cover all instances.
Start & Stop bits: Stop bit is used to indicate the end of a single packet.
Typical values are 1, 1.5, and 2 bits. Since the data is clocked across the
lines and each device has its own clock, it is possible for the two devices to
become slightly out of sync. Therefore, the stop bits not only indicate the end
of transmission but also give the computers some room for error in the clock
speeds. The more bits that are used for stop bits, the greater the lenience in
synchronizing the different clocks, but the slower the data transmission rate.
Start bit is the bit, which signals the receiver that data is coming. Every
byte of data in an asynchronous serial transmission is preceded by a start bit
and followed by a stop bit. Parity: It's used for error checking in serial
communication. There are two types of parity: even and odd. And the option of
using no parity is also available. For even and odd parity, the serial port
will set the parity bit (the last bit after the data bits) to a value to ensure
that the transmission has an even or odd number of logic high bits. For
example, let us take the data as 011.Then for even parity; the parity bit would
be 0 to keep the number of logic high bits even. Similarly, for odd parity the
parity bit would be 1, resulting in three logic high bits. Another category of
parity, Marked and spaced parity does not actually check the data bits, but
simply sets the parity bit high for marked parity or low for spaced parity.
This allows the receiving device to determine if noise is corrupting the data
or the transmitting and receiving devices' clocks are out of sync.
Note: -
If an odd number of bits (including the parity bit) are changed while
transmitting a set of bits then parity bit will be incorrect and will thus
indicate that an error in transition has occurred. That means, parity bit is an
error detecting code, but is not an error correcting code as there is no way to
determine which particular bit is corrupted. So then the data must be discarded
entirely, and re-transmitted from scratch
(V)
Various types of serial communication Standards:
1. RS-232
2. RS-423
3. RS-485
4. USB
5. Fire Wire
6. Ethernet
7. MIDI
8. PCI Express
9. SPI & SCI
10. IIC
11. IrDA