A number of EIA standards have been established for higher speeds
and longer distances using twisted-pair (balanced) technology.
Balanced transmission can sometimes be a hundred times faster than
unbalanced EIA-232. For a given speed, the distance (maximum cable
length) may be many times longer with twisted pair. But PC-s keep
being made with the "obsolete" EIA-232 since it works OK with modems
and mice since the cable length is short. If this appears in the
latest version of this HOWTO, please let me know if any of the
non-EIA-232 listed below are supported by Linux.
EIA-423 is just like the unbalanced EIA-232 except that the
voltage is only 5 volts. Since this falls within EIA-232 specs it
can be connected to a EIA-232 port. Its specs call for somewhat
higher speeds than the EIA-232 (but this may be of little help on a
long run where it's the unbalance that causes interference).
Apple's Mac computer prior to mid-1998 with its EIA-232/EIA-422 Port
provided twisted-pairs (balanced) for transmit and receive (when used
as a 422). It is (per specs) exactly 100 times as fast as EIA-423
(which in turn is somewhat faster than EIA-232) The Mac used a small
round "mini-DIN-8" connector. It also provided conventional EIA-232
but at only at 5 volts (which is still legal EIA-232). To make it
work like at EIA-232 one must use a special cable which (signal)
grounds RxD+ (one side of a balanced pair) and use RxD- as the receive
pin. While TxD- is used as the transmit pin, for some reason TxD+
should not be grounded. See
Macintosh Communications FAQ. However, due to the fact that Macs (and
upgrades for them) cost more than PC's, they are not widely as host
computers for Linux.
This is like EIA-422 (balanced). It is half-duplex. It's not
just point-to-point but may be used for a multidrop LAN (up to 32
nodes). There are no connector specs.
EIA-530-A (balanced but can also be used unbalanced) at 2Mbits/s
(balanced) was intended to be a replacement for EIA-232 but few have
been installed. It uses the same 25-pin connector as EIA-232.
The High Speed Serial Interface ( HSSI = EIA-612/613) uses a
50-pin connector and goes up to about 50 Mbits/s but the distance is
limited to only several meters. For Linux there are PCI cards
supporting HSSI. The companies that sell the cards often provide (or
point you to) a Linux driver. A mini-howto or the like is needed for
this topic.
The Universal Serial Bus (USB) is being built into PCI chips. New
PC's have them. It is 12 Mbits/s over a twisted pair with a 4-pin
connector (2 wires are power supply) but it also is limited to short
distances of at most 5 meters (depends on configuration).
Another HOWTO is needed for it. Work is underway for supporting it
in Linux (but no HOWTO). It is synchronous and transmits in special
packets like a network. Just like a network, it can have several
devices attached to it. Each device on it gets a time-slice of
exclusive use for a short time. A device can also be guaranteed the
use of the bus at fixed intervals. One device can monopolize it if no
other device wants to use it. It's not simple to describe in detail.
Beside the asynchronous EIA-232 (and others) there are a number of
synchronous serial port standards. In fact EIA-232 includes
synchronous specifications but they aren't normally implemented for
serial ports on PC's. But first we'll explain what a synchronous
means.
Defining Asynchronous vs Synchronous
Asynchronous (async) means "not synchronous". In practice, an
async signal is what the async serial port sends and receives which is
a stream of bytes each delimited by a start and stop bit. Synchronous
(sync) is most everything else. But this doesn't explain the basic
concepts.
In theory, synchronous means that bytes are sent out at a constant
rate one after another in step with a clock signal tick. There is
often a separate wire or channel for sending the clock signal.
Asynchronous bytes may be sent out erratically with various time
intervals between bytes (like someone typing characters at a
keyboard).
There are certain situations that need to be classified as either
sync or async. The async serial port often sends out bytes in a
steady stream which would make this a synchronous case but since they
still have the start/stop bits (which makes it possible to send them
out erratically) it's called async. Another case is where data
bytes (without any start-stop bits) are put into packets with possible
erratic spacing between one packet and the next. This is called sync
since the bytes within each packet must be transmitted synchronously.
Synchronous Communication
Did you ever wonder what all the unused pins are for on a 25-pin
connector for the serial port? Most of them are for use in
synchronous communication which is seldom implemented on PC's. There
are pins for sync timing signals as well as for a sync reverse
channel. The EIA-232 spec provides for both sync and async but PC's
use a UART (Universal Asynchronous Receiver/Transmitter) chip such as
a 16450, 16550A, or 16650 and can't deal with sync. For sync one
needs a USART chip or the equivalent where the "S" stands for
Synchronous. Since sync is a niche market, a sync serial port is
likely to be quite expensive.
Besides the sync part of the EIA-232, there are various other EIA
synchronous standards. For EIA-232, 3 pins of the connector are
reserved for clock (or timing) signals. Sometimes it's a modem's task
to generate some timing signals making it impossible to use
synchronous communications without a synchronous modem (or without a
device called a "synchronous modem eliminator" which provides the
timing signals).
Although few serial ports are sync, synchronous communication
does often take place over telephone lines using modems which use
V.42 error correction. This strips off the start/stop bits and puts
the date bytes in packets resulting in synchronous operation over the
phone line.