RS-232C : Java Glossary

EIA (Electronic Industries Alliance) standard that discusses the older 25 pin serial connections between computers and modems. Nearly all
modems sold today use the RS-232C (Recommended Standard 232C)
interface. There is no policing body. I have never in my life seen any equipment that
was fully compliant with the standard. Buyer beware!

Purpose

This document will tell you almost enough to let you build your own modem cables
and track down problems caused by improper RS-232C
cables. It explain true, null and drag queen cables. It will also explain in simple
language a lot of the mystery of RS-232C
interfaces. It explains all 25 pins of the interface and
what they are for. It explains BPS/Baud rates and flow control, Stop Bits, Start
Bits, parity, async and sync. I also hope to dissuade you from ever buying a serial
printer.

You have my permission to reproduce and use this document for any purpose except
military.

Sex

Since Ma Bell was female and since Bell Telephone were the early suppliers of
modems, modems traditionally present female connectors. Because Bell employees were
predominantly heterosexual they arranged that Terminals should present complementary
male connectors. The modem and terminal were joined in holy matrimony by a cable with
one male and one female end.

The other reason Bell chose female connectors for their modems is that male
connectors are more fragile — the tiny protruding pins are likely to break off.
The male connectors belonged to the customers, the robust female ones to the phone
company.

I say this tongue in cheek as a memory aid.

In any RS-232C connection, one end must pretend to be the modem
DCE (Data Communications Equipment)
and the other the terminal DTE (Data Terminal Equipment).

RS-232C
connections are common between computers and modems, computers and printers and
between two computers.

Polymorphous perverse companies such as Osborne, Hewlett Packard and US Robotics,
found Ma Bell’s sexual symbolism too constraining. They invented modems that
presented male connectors, computers that pretended to be modems and and…

Connectors

25 Pin D-shaped connectors are used, but some companies,
notably Apple, sometimes use non-standard nine pin connectors. I suspect wicked
motives such as cost cutting and attempting to lock you into buying their own brands
of peripheral equipment.

Nearly all companies fail to implement the full standard. Only a subset of the
full 25 pins are functional. This is what makes
RS-232C
connections such a headache. RS-232C
connections are unavoidable with modems, but NEVER use serial
RS-232C
printers if you can possibly get parallel interfaces instead.

Pin Numbering

Male 25 pin connectors have two rows of pins numbered
like this:

Note that because the top row has more pins, it is longer. This gives the
connector its D shape. The D shape prevents ensures that you will destroy a cable if
you persist on pushing it on upside down.

Female 25-pin connectors have two rows of pins numbered
like this:

Voltages

Voltages between +3 to +25 volts are considered ON,
Spacing, or Binary 0.

Voltages between -25 to -3 volts are considered OFF,
Marking or Binary 1, yes Virginia 1. Since the Transmit Data line idles by sending
ones, it was considered reasonable to use the negative voltage (usually meaning off)
to represent binary 1.

In theory RS-232C interfaces are robust enough that you can short any
two pins together without smoke pouring out, but don’t count on it.

Pins

Most important RS-232C pins

Most Important RS-232C Pins

Pin Name and Function

TD (Transmit Data)

RD (Receive Data)

SG (Signal Ground)

RTS (Request To Send)

CTS (Clear To Send)

DTR (Data Terminal Ready)

DSR (Data Set Ready)

DCD (Data Carrier Detect)

SQ (Signal Quality)

RI (Ring Indicator)

In theory you can have 4 separate conversations going on simultaneously. The
primary and secondary send and primary and secondary receive. However I have never
seen the secondary used except in Mohawk equipment.

Pin#

Interchange
Circuit

Pin Name

Purpose

01

AA

Protective Ground

Frame ground, usually the shield. Sometimes jumpered to signal ground.

02

BA

TD

Transmitted Data. Usually Marking — Binary 1s — while idling.
Data from terminal to modem binary 0 start bit, then data for a character, then
binary 1 stop bit then the sequence repeats for the next character. Note this
is NOT a tri-state line. Novices often presume there will be one voltage level
for 0, another for 1 and yet another for not sending data. However, there are
only two voltage levels. So when the line is not sending data it sends 1s. I
just lied a little, there really is a third voltage level; when all the power
is off, there will be a third level — no volts, but this is not used for
idling.

03

BB

RD

Received Data usually Marking — Binary 1s — while idling Data
from modem to terminal

request to Send ON means terminal wants to send data. The terminal will
wait until the modem says it is ok by raising CTS.

05

CB

CTS

Clear to Send ON means modem says it is ok for the terminal to start
sending. Most of the time CTS
should be on. Only in old fashioned half-duplex modems is there any reason not
to send at any time. With printers the RTSCTS pair can be
used for flow control (handshaking). The printer can pretend to be the modem.
When it is getting behind printing it drops CTS,
to stop the flow of incoming data. But most printers are not content with
that passive rôle and want to also pretend to be the Terminal. Then they
play games with DTR or RTS
hoping the other end will understand these new uses for the old pins and leave
it up to you to design a cable to make the printer look like a modem. See
RTR/RFS below. In the new compressing modems, flow control again becomes
important. The computer sends data to the modem at very fast rate. Sometimes
when compression is successful, the modem can keep up. Sometimes the
compression does not squeeze much, then the modem cannot keep up and drops
CTS
to tell the computer to back off for a while.

06

CC

DSR

Data Set Ready ON means the modem is powered on. In the olden days modems
were called Data Sets. Then IBM (International Business Machines)
started calling Files Data Sets. To avoid confusion
we started calling Data Sets modems.

07

AB

Signal Ground common ground for all signal lines. In the newer Rs422 system
each signal gets its own private return ground.

08

CF

DCD

Carrier Detect. The modem is receiving whistles from some remote modem. It
turns this ON to let the terminal know about it. We are connected.

09

testing often +12 volts but don’t count on it.

10

testing often -12 volts but don’t count on it.

11

unused

12

SCF

secondary Carrier Detect

13

SCB

secondary Clear To Send

14

SBA

secondary Transmitted Data

15

DB

TC

Transmit Clock supplied by MODEM DCE
square wave signal so terminal knows when to start sending the next bit of
transmitted data. (not used in Async transmission).

16

SBB

secondary Received Data

17

DB

RC

Receive Clock supplied by MODEM DCE
square wave signal so terminal knows when to sample each bit of received data
(not used in Async transmission)

18

unassigned

19

SCA

secondary request to send

20

CD

DTR

Data Terminal Ready. Terminal is powered on. Terminal drops this signal to
persuade the modem to hang up the phone.

21

CG

SQ

Signal Quality. The modem turns this on to tell the terminal it likes the
quality of the carrier coming in. It turns it off if it suspects errors due to
static. Rarely supported.

22

CE

RI

Ring Indicator. The modem turns this on each time an incoming call rings
the phone. The terminal would turn on DTR
to tell the modem it is ok to answer.

23

CH/CI

Speed Indicator. This is a two way wire. For outgoing calls the terminal
turns this ON to tell the modem to use higher speed e.g. 1200 verses 300
BPS (Bits Per Second). For incoming calls the modem tells the
terminal data is coming at higher speed by setting it ON.

24

DA

(TC)

Transmit Clock provided by the terminal. Not used in Async communications.
For sync communications it is usually the duty of the modem to provide the
clock. In Async communications the modem doesn’t care about the clock. It
doesn’t need one. So this pin is only useful in the rare situation the
terminal is providing the clock to the modem in synchronous situations —
e.g. in back to back X.25 between two computers.

25

unassigned.

True Modem Cables

A normal modem cable run straight through with pin 1
male and the end that hooks onto the modem presents a male end to the modem’s
female. Sometimes the sex of connectors can get confused and you will need non
standard sexed ends on your cable.

Nearly always one end of the connection will support a different subset of the
pins from the other. For example, the modem may be watching
RTS but the terminal
doesn’t support it. In that case you have to fake it by strapping the
RTS pin permanently ON
by connecting it to the +12V test pin, or by strapping it to some other signal such
as DTR that the
terminal does support.

The pins you have trouble with most often are 4, 5, 8 and 20.

You can find out which lines are being supported by perusing documentation or by
using a $200 breakout box. A breakout box is a set of
25LEDs (Light-Emitting Diodes). I use a Microplex M112
model that is well designed for async work. Fancy versions use Red/Green/Yellow to
indicate line state. They also come with a set of switches and little jumper wires so
that you can build experimental cables instantly. You can also see if signals are in
spec. Sometimes the signals that are nominally +5 volts droop down in the 2.5 volt
range, which is no-man’s land. Ordinary LED (Light-Emitting Diode)
tests will not show up the trouble. Once you find the magic combination you can get a
permanent cable built for about $30.

You can also buy a little connector with do-it yourself jumpers with no lights for
under $20.

Null Modem Cables

Sometimes you wish to connect two computers or a computer and a printer together.
One of them has to pretend to be a modem (DCE
) and one has to pretend to be a terminal (DTE
). Sometimes equipment is flexible and sometimes they refuse to go in drag. When you
have two pieces of equipment both steadfastly insisting on being terminals (
DTE) or two
pieces both steadfastly insisting on being modems (DCE
), what do you do?

For two steadfast terminals, (the most common case) you build a special null modem
cable that logically looks like two modems back to back over a very short phone
line.

A typical null modem cable looks like this:

From
Pin Name

From
Pin Number

To
Pin Number

To
Pin Name

Frame

01

01

Frame

TD

02

03

RD

RD

03

02

TD

RTS

04

05

CTS

CTS

05

04

RTS

DSR

06*

06*

DSR

ground

07

07

ground

CD

08*

20

DTR

TC

15*

15*

TC

RC

17*

24

(TC)

DTR

20

08*

DCD

SQ

21*

21*

SQ

(TC)

24

17*

RC

* In addition jumpers are applied at each end independently. Pins 6 and 8 are
jumpered together on each end and 15 and 17 are jumpered together on each end.

This is a reasonably classy version of the null modem cable. You can often get by
without connecting pins 15 17 and 24 at all.

Sometimes you also have to jumper 6 and 21 together on each end as well.

A null modem cables between two computers DTEs (Data Terminal Equipments)
would normally have two female ends. A null modem cable to go between two
DCE
devices would normally have two male ends.

Drag Queen Cables

Hewlett Packard makes printers with female connectors that at first glance appear
to be DCE.
However at heart they are DTE (males). What you need is a null modem cable with a
male end for the printer and a female end for the computer. I have coined the mildly
pejorative term drag queen cable to describe these.
Others may call them Hewlett Packard Printer Cables.
Beware the drag queen cable. You cannot tell it apart from a standard true modem
cable unless you have labelled it. You have to get out a voltmeter and measure the
resistance to see which pins are attached to which to tell them apart.

IBMAT (Advanced Technology)- presents DB-25 male
connector

Pin#

Pin Name

02

TD

03

RD

04

RTS

05

CTS

06

DSR

07

SG

08

DCD

20

DTR

22

Ring

None of the other pins function.

DB-9 Male Connector

spacer

Male

Female

Motherboards now have USB (Universal Serial Bus) ports but some still have a 9
pin serial port or two. They typically present this male pinout.

usual DB-9 RS-232C serial port male pinout

Pin#

Name

Purpose

01

DCD

Data Carrier Detect

02

RD

Receive Data

03

TD

Transmit Data

04

DTR

Data Terminal Ready

05

SG

Signal Ground

06

DSR

Data Set Ready

07

RTS

Request to Send

08

CTS

Clear to Send

09

RI

Ring Indicator

Everex Multi-IO presents a DB-9 Male Connector

Originally DB-9 connectors were extremely non-standard. Now they seem to have
settled on the pattern above. Here is one of the older patterns.

Pin#

Pin Name

01

DCD

02

TD

03

RD

04

DTR

05

SG

06

DSR

07

RTS

08

CTS

09

RI

Hayes 2400 BPS modem

Hayes presents a DB 25 female connector.

Pin#

Pin Name

01

Protective Gnd

02

TD

03

RD

05

CTS

06

DSR

07

SG

08

DCD

12

High Speed

20

DTR

22

RI

None of the other pins function.

Apple Macintosh

Apple Mac presents a DB 9 female connector.

Pin#

Pin Name

1

SG

2

+5v

3

SG

4

TD +ve

5

TD-ve

6

+12v

7

CTS or transmit clock depending on mode

8

RD +ve ground this line to emulate
RS-232C

9

RD-ve

Apple partially implements the Rs422 standard, but you can kludge it to a
certain extent to emulate RS-232C
by grounding pin 8

Digital Equipment Corp have many versions of RS-232C.
The H8571-B is a 9-pin version that uses female D
connectors. This acts something like a null modem cable, but since RTS/CTS are not
supported you must use XON/XOFF flow control. Your best bet with
DEC
printer is to buy the optional parallel interface.

Pin#

Pin Name

1

no connection

2

RD

3

TD

4

no connection

5

DSR

6

DTR

7

SG

8

no connection

9

no connection

DEC
6-wire RJ-45

DEC
’s other connector is a 6-pin version that uses RJ-45
connectors (beefed up versions of the modular phone jack). Note that since RTS/CTS
are not supported, you cannot cook up a null modem cable. You must use XON/XOFF flow
control.

Pin#

Colour

Pin Name

1

white

DTR

2

green

TD

3

red

TD return (ground)

4

orange

RD return (ground)

5

black

RD

6

blue

DSR

Serial Printers

Why you should not buy a serial printer.

The RS-232C interface is non-standard. You may need to fiddle
about designing a custom cable.

You have to get BPS rates, stop bits and parity set up on both ends of
the connection to match.

There is no reliable means of flow control — the printer asking the
computer to slow down sending over data. IBM
does NOT support XON-OFF even though a few software packages do. If you don’t
get flow control handled properly your printer will lose data. Kludges such as
running the printer at 300 BPS waste its capability and don’t always work.
Goofing about with CTSRTSDTR etc can take
a day of a specialist’s time and require custom cables to be built.

There is no standard way to get status back from the printer — i.e. to
find out of it is online, out of paper etc?

There is no standard way to reset the printer from the computer — to
clear its pea brain as if it were freshly powered on.

The electronics for a serial interface usually cost extra.

You have to mess around with two MODE commands in MS-DOS before serial printers
will work.

Software that bypasses the BIOS (Basic Input Output System)
will not work at all.

Serial printers have one saving grace. They can be attached to your computer with
a cable up to 50 feet long. Parallel printers should be attached with as short a
cable as possible (6 to 15 feet).

If you have a distance problem it is better solved using a parallel interface
with:

Low capacitance parallel cables (up to 75 feet).

A line driver (up to 1200 feet).

BPS vs Baud Rates

You transmit the bits of a character over a serial link at a fixed rate measured
in Bits per Second. 300 BPS
is also erroneously called 300 Baud. A few years ago, everyone used the terms as if
they were synonymous. But now people are more careful to use the proper term.

What is the difference? When a modem transmits information to another it sings to
the other modem. It changes the sound many times a second. The number of times a
second it changes the sound is the Baud rate. Since each sound might encode
information via loudness, pitch and/or phase. Further, since each sound might be
made up of chords of several tones, each burst of sound may encode many bits of data.
In old fashioned FSK (Frequency Shift Keying) 300 BPS
modems, the encoding was very simple — one of two tones. In those modems the
Baud rate and the BPS rate were the same. In modern modems, the Baud rate
might be around 40 while the BPS rate is around 56,000.

Modems used to run at 300 BPS, 1200 BPS
or 2400 BPS. Now adays most modems run at 28,000BPS,
33,000BPS
or 56,000BPS.
Over dial up lines, even the fanciest modems have trouble getting above
26,000BPS
for long distance,
though most expensive modems give the illusion of higher speed by compressing on the
fly.

The general rule about selecting BPS
rates is to make both ends of the connection run at the same rate and make them both
as fast as possible. Usually you only have a few choices. However if that does not
work, pick 300 BPS for both ends and see if it works. Then gradually
increase the speed backing off when you get too fast for reliable operation.

Modern modems will usually successfully negotiate the fastest possible speed they
can both handle. If you have simply a null modem cable, without modems, then it is up
to you to set this. You can do that by:

Using the BIOS calls to configure the UARTs (Universal Asynchronous Receiver/Transmitters).

Using the DOS (Disk Operating System) MODE command to configure the
UARTs.

Using the Windows Port configuration commands.

Using a program such as LapLink.

Flow control problems are not as severe at slow speeds. Even if you choose the
wrong flow control protocol, (or if both ends insist on using different flow control
protocols) things may still work if you run slowly enough.

Flow Control

When one sends data faster than the other end can receive it, there are several
protocols for the receiver to request the sender to slow down.

RTS/CTS Hardware Flow Control

One protocol is called RTS/CTS. The receiver
drops CTS when data is coming
to fast. When the receiver is ready to start accepting data again, it raises
CTS. This is the most
reliable protocol, but since in general the receiver can not actually control the
CTS pin of the sender
directly, this is really only useful for devices side by side where there is a wire
to the CTS pin running through
the cable.

RTR/RFS Hardware Flow Control

XON/OFF and Enq/Ack (described later) allow
bi-directional flow control, but RTS/CTS only works in one direction. RTS/CTS gives
the modem a way to pace (slow down) the computer, but not vice versa. A number of
manufacturers/programmers started using the RTS
signal as a DTE
to DCE
flow control mechanism to allow the computer to pace the modem. This use of the
signal has become official in one of the standards subsequent to
RS-232C.

When the RTS pin is used as a DTE
to DCE flow
control mechanism, it is properly called RTR (Ready To Receive)
(Ready To Receive). The CTS
signal has been renamed RFS (Ready For Sending) (Ready For Sending).

Software Flow Control

Another common protocol is called XON/OFF. When the
receiver wants the sender to slow down it sends an XOFF (Ctrl-S) CHR$(19). When it is
ready to start receiving again it sends an XON (Ctrl-Q) CHR$(17). This method is not
very reliable because the both ends must react in software (which has a considerable
inherent delay) and often XON characters get lost or garbled thus freezing the
system. However it has the advantage that no special wire other than the normal
TD and
RD lines need travel
between sender and receiver.

A third common protocol is called Enq/Ack used primarily by Hewlett Packard
equipment.

Start and Stop Bits

Modems idle by sending ones. How then could a modem send a character of all ones?
It would look just like more idling. The way the modems solve the problem is by
preceding each character with a single 0 bit. The transition from 1 (mark) to 0
(space) signifies the start of a character. That transition also synchronizes a clock
in the receiver so that it can then sample the succeeding bits exactly in the
middle.

How the could a modem send a long string of zero characters? It would look like a
smooth unbroken stream of space. How could the modem tell 999 successive zero
characters from 1000? The solution is to append a 1 (marking bit) to the end of each
character. This way in each character there is guaranteed to be a TRANSITION as the
start bit drops back from 1 to 0.

In older equipment you needed 1.5 or 2 stop bits. The stop bit had a secondary
function of providing delay for the mechanical parts of a Teletype to get ready for
the next character. In modern communications 1 stop bit is ample. Sometimes you will
even see 0.5 or 1.5 stop bits. However you must configure both sender AND receiver to
expect the same number of stop bits.

Parity

Modems often use a crude error detecting mechanism by adding an extra bit to each
character sent, so that the number of ones is always even. If static reverses one of
the bits, the result will no longer have an even number of ones in it and the
receiving end will know something has gone wrong.

There are several possible parity schemes, the most common near the top:

N

None

Add no parity bit.

E

Even

Add a 1 or a 0, to fudge it so that the number of 1s in total is even.

M

Mark

Add a useless parity bit that is always 1.

O

Odd

Add a 1 or a 0, to fudge it so that the number of 1s * in total is
odd.

S

Space

Add a useless parity bit that is always a 0.

When you connect two devices via RS-232C,
you must make sure they agree on the parity.

Data Bits

When devices communicate via RS-232C
they have to decide on how big an alphabet they need. For example if an alphabet of
only 32 characters were sufficient, then only 5 bits per
character are needed. 32 is 2*2*2*2*2. With five possible bits, each being either 0
or 1, there are 32 possible combinations. Each combination can be assigned to one of
the letters of the alphabet. A simple 5 bit code is called Baudot after the man who
invented the Teletype. It has only upper case and a special figures and letters code
to let you know when to interpret the letters as numbers and vice versa.

Most bulletin boards need an alphabet of 128 characters to communicate. Thus they
need a 7 level code. This ASCII (American Standard Code for Information Interchange)
code contains both upper and lower case and punctuation. IBM
PCS use an 8 level code giving them a 256 character alphabet. It adds accented
characters and a line drawing set with both single and double lines.

UART s

A UART
is a chip inside your computer that converts between the 8-bits per byte parallel
format used internally to the one-after-another strings of bits (marks and spaces)
used by the world of modems. UART
stands for Universal Asynchronous Receiver Transmitter. Modern day
UARTs
do more that just act as UART
s, so properly they should be given the more grandiose name ACE (Asynchronous Communications Element) — Asynchronous Communications Element.
The problem is, if you call them ACEs only a few of the cognoscenti will know what
you are talking about.

There are two types of UART
in common use — the 16450 and the 16550. The newer 16550 chip has a buffer to
store 16 characters. Programs like DESQview and Windows often keep the
CPU (Central Processing Unit)
so busy with other tasks, it doesn’t manage to service the
UART
before the next character arrives. When that happens, the incoming character is lost.
The buffer provides a safety net, since the CPU
only has to empty the UART
1/16 as often.

By analogy, the 16550 is like buying an enormous trashcan for your kitchen. Even
if you fail to empty it regularly, it still won’t overflow.

I wrote a little utility called UART that will tell you which kind of
UART you have on each serial port. It can detect the old
8250 used in XTs, the 16450, the early defective 16550s that did not buffer, the
buffered 16550AF and the new PS/2 DMA (Direct Memory Access)
UART.

Snooping on Async

If you were to watch the TD
(Transmit Data) wire going from your computer to an ordinary async modem, here is
what you would see. For each character, first the UART
sends the start bit, always a 0. The transition from the idling mark to space at the
beginning of the start bit synchronizes the clocks of the sender and receiver.

Then the UART
sends 7 bits of the character itself starting with the
least significant (rightmost) bit. Yes, you read that correctly. It works
backwards from right to left.

Then comes the optional parity bit. When you have even parity, the parity bit is
just a finagle bit to ensure there are an even number of 1s all told in the
character. If the receiver counts an odd number of 1s, it knows the transmission must
have been garbled. Unfortunately, if two bits were garbled, the parity might still
look ok.

Finally comes the stop bit, always a 1. Its function is just to get us back to
marking state again so that we can notice the transition to space for the start bit
of the next character. Then the whole process repeats for the next character. The
UART may send a long string of uninterrupted 0s. Since the
start bits are missing, this cannot be interpreted as data, but as a BREAK — a
request to stop.

Snooping on BISync

If you were to snoop on the TD
(Transmit Data) wire between an old IBM
3270 CRT (Cathode Ray Tube)
or a 3870 remote workstation and an IBM
mainframe using the old Binary Synchronous protocol, here is what you would see.

There are no start and stop bits on each character. Instead you will see bursts of
data characters going by with no idle time between them. Each character has a full
8 bits. At the head of the message burst are a group of SYN
characters (hex 16). In binary they look like 0010110. Even in a long string of
them.

it is easy for a UART
to unambiguously determine where the SYN character starts. These SYN characters help
the receiver to precisely synchronize its clock with the sender. The clock tells the
receiver when to sample the data stream. The data stream is not neatly divided into
bits they way the diagrams might lead you to believe, it is just a voltage on a wire
that wanders up and down. It is up to the receiver to figure out when to best sample
the voltage to extract each bit. From here on, any refinements in the synchronization
must be done by looking at data only — which may or may not have transitions.
In very long messages, sometimes we throw in a few sync characters in the middle of a
message to help resynchronize.

As you might guess, timing has to be more accurate for synchronous transmissions
than for async. In a message of 200 characters of 8 bits
each, we would want it accurate to one part in 25,600 i.e.
1/16 of a bit time.

There is no parity bit on each character. Instead some characters are appended to
the message called the CRC (Cyclic Redundancy Check)
(Cyclic Redundancy Check) that act something like a parity bit.

The overhead of the CRC is substantially less than the bit-per-character
parity bit used in async and quite a bit more powerful at detecting errors. Imagine
treating the message as a giant binary number and dividing by prime number like 149.
The remainder would be a number between 0 and 148. If you tacked that number on the
tail end of the message, the receiver could do the same calculation. If he got the
same number, changes are all the bits got through intact. If he got a different
number, something must have been garbled.

Because division is so time consuming for computers, they do a different kind
called polynomial division over the ring of integers 0 and 1. It is much like regular
division, except you do an XOR (exclusive OR)
where in regular long division you subtract.

You have to send messages in bursts. You cannot dawdle between characters.

The equipment is more expensive.

The timing has to be bang on for it to work. This is why the equipment is more
expensive.

Most modern async modems transparently revert to synchronous when talking to other
clever modems, e.g. MNP-4 and MNP-5, V.90. You can notice them doing this when data
comes at you in bursts. The modems are breaking up the continuous stream into
discrete messages and automatically retransmit on error.

Snooping on X.25

The HDLC (High-level Data Link Control) protocol used when you
attach to an X.25 packet net resolves some of the problems of the older bisync
protocol. In Bisync, you can in theory have long stretches without any transitions.
HDLC
fixes that by ensuring there is a transition at least every 5-bit times. This help keep the clocks in sync. Bisync reserved some of
the characters to control the line e.g. SYN. This meant, if the corresponding bit
patterns occurred accidentally in the data, special quoting measures had to be taken to ensure they were not mistaken for
control characters. HDLC has no such troubles since it has a special flag to
mark the ends of messages. The flag violates the transitions-every-5-bits rule. It
cannot possibly be confused with data. This means HDLC
is transparent. All possible bit patterns can be sent without special handling.

Each message begins and ends with some flags to help synchronization. The data are
sent with extra bits inserted after strings of 5 zero bits or 5 one bits, to force a
transition. There is no need to insert SYN characters in the middle of the
message.

Putting It All Together

If someone says, I have a 2400-N-8-1 setup, he means I
am running at 2400 BPS, am using No parity, 8 data bits and 1 stop bit. If he
says I have a 300-E-7-2 setup he means I am running at
300 BPS, using Even parity,
7 data bits and 2 stop bits.

The crucial thing is that parties communicating must be set up with exactly the
same parameters. If one is talking at 300 BPS
and the other is listening at 2400 BPS,
nothing (usually)
is going to get through. Some of today’s smarter devices take your settings
with a grain of salt, just as hints to get started. They automatically adjust
depending on what the other party is doing. However, most problems with
RS-232C
can be traced simply to failing to match these four parameters on both ends.