(rev. 01/02/2008)
Notes On Chapter Five
-- Local Asynchronous Communication (RS-232)
- 5.1 Introduction
- How can one send bits through short distances over an electrical
conductor?
- How should we measure the performance of communication channels?
- 5.2 The Need For Asynchronous Communication
- In asynchronous (async) communication, the sender sends whenever
it is ready. There is no need to synchronize with the receiver
first. The signal does not contain information that tells where
individual bits begin or end.
- 5.3 Using Electric Current To Send Bits
- There are many possible ways to do this. The simplest idea is
perhaps just to put a negative voltage on the line to represent
1, and a positive voltage to represent 0.
- 5.4 Standards for Communication
- One must have standards to agree on symbols, voltages to be used
to represent symbols, how long pulses last, how close together
they can be, etc.
- RS-232 is a widely used standard for sending characters
asynchronously over a wire by transmitting bits one after another
(serially).
- According to RS-232, the line is held low (to -15 volts) when
idle. There is a certain duration of time T for sending a bit.
When starting to send a character, the line is held high (at +15
volts) for time T. This allows the receiver to detect that a
character will be coming. Next each bit of the character is
impressed on the line for time T each, with no spacing in between
bits. Low means "1" and high means "0." After the last bit of
the character has been sent the sender brings the line low for at
least time T, after which it may send another character when it
wishes.
- Using a timer, the receiver samples each sent bit several times
and computes an average value of the sampled voltage, and
"decides" the value of each bit -- "O" or "1".
- 5.5 Baud Rate, Framing, And Errors
- The time T is something the sender and receiver must agree upon.
T determines the baud rate -- how often the voltage can change in
a second, and how fast information can be sent. The actual
measurements used most often are baud rates like 19,200 bits per
second. Typically RS-232 hardware can be configured to operate
in some range of baud rates. Often a mismatch between sender and
receiver baud rates will be detected by the receiver and reported
as a framing error. The receiver detects framing errors by
noticing that multiple samples of a bit do not agree, or by
noticing that the stop bit does not arrive when it should. The
break key on a computer keyboard causes a framing error.
- Technically baud is not the same as bits per second. (They
amount to the same thing in the case of RS-232.) If the voltage
can change to more than two distinct levels, then more than one
bit can be encoded in a voltage change. In that case the baud
rate is different than the bit rate.
- For example if there are eight different voltage levels to which
the line can change, then each voltage change communicates one of
eight values. This is equivalent to transmitting 3 bits of
information because there are 8 patterns possible in a set of 3
bits. So in this case if the baud rate is R changes per second
then the bit rate is 3R bits per second.
- Keep in mind, however, that this discussion ignores the
"overhead" of sending start and stop bits, parity bits, and so
on.
- 5.6 Half And Full Duplex Asynchronous Communication
- RS-232 actually is pretty complex and describes the roles of 25
wires, most of which are used for specialized control functions,
and are not often needed.
- Under RS-232, data can flow between two devices in both
directions simultaneously -- full duplex communication. There is
a wire for each direction of communication, plus a ground wire
that is shared.
- "Clear to Send" is one of the control line functions. This is
used by the receiver to tell the sender to keep sending.
- Computers and modems use different pin numbers for sending and
receiving data. A computer sends on 2 and receives on 3. A
modem sends on 3 and receives on 2. With this set up, you can
connect a computer to a modem without crossing the 2-3 wires. Of
course, it means you *do* have to cross them if you are
connecting two computers.
- 5.7 Limitations Of Real Hardware
- Real hardware does not transmit perfect square waves. This is
the reason that several samples are taken of each bit value in
the RS-232 standard. Also care is taken to gather samples in the
middle of the time interval during which the bit is supposed to
be transmitted, since the "edge" values are more likely to be
erroneous.
- 5.8 Hardware Bandwidth And The Transmission Of Bits
- There are limits to how fast voltage levels can change on a wire,
and limits to how many distinct voltage levels can be sensed by
hardware. Therefore there is a limit to how many bits per second
can be sent down a wire. The same principle applies to any
communication channel.
- We measure the data rate limit of a channel indirectly, by using
bandwidth -- the highest frequency at which an oscillating signal
can be sent down the channel. Bandwidth is measure in Hertz
(cycles per second).
- Basically the Nyquist sampling theorem states that the highest
possible data rate would come about by detecting one voltage change
for each half-cycle of the bandwidth frequency. Therefore the max
baud rate of a channel is 2B where B is the Bandwidth. If K voltage
levels are possible then each voltage level transmits
log2K bits. Therefore the Nyquist bit rate
limit is
2Blog2K
- 5.9 The Effect Of Noise On Communication
- Important work done by Claude Shannon shows that max data rate is
further limited by the effect of the presence of interference and
other "noise." According to Shannon's Theorem
C = B(log2(1+(S/N))
where C is the effective max on channel capacity in bits per second,
B is the "hardware" bandwidth, S is the average signal power, and N
is the average noise power.
S/N is the so-called signal-to-noise ratio. Actually, the quantity
engineers use is equal to ten times the common logarithm of S/N. So
for example if the power of the signal is 1000 times the power of
the noise then log10(S/N) is 3 and so the "decibel" level
is 10*3 = 30 decibels. Also, since log2(1001) is barely
more than log2(1000) == about 10, the value of C in this
case would be around 10B. That's a bit rate of ten times the
"hardware" bandwidth.
- In fact, a typical telephone line actually does have a
signal-to-noise ratio of about 30 dB. Also the hardware
bandwidth of a telephone line is about 3000 Hz. Therefore
Shannon's Theorem tells us that we can't transmit data at a rate
of more than about 30,000 bits per second over a typical phone
line.
- 5.10 Significance For Data Networking
- Nyquist's theorem is an incentive to find clever ways to encode more
voltage changes per unit time, thus increasing the theoretical bit
rate limit.
- Shannon's theorem lets us know the limitations stemming from the
signal-to-noise characteristic of the channel.
- 5.11 Summary
- See photos of RS-232 equipment.