In computing, a serial port is a serial communication interface
through which information transfers in or out one bit at a time (in
contrast to a parallel port). Throughout most of the history of
personal computers, data was transferred through serial ports to
devices such as modems, terminals, and various peripherals.
While such interfaces as Ethernet, FireWire, and
USB all send data as
a serial stream, the term "serial port" usually identifies hardware
more or less compliant to the
RS-232 standard, intended to interface
with a modem or with a similar communication device.
Modern computers without serial ports may require serial-to-USB
converters to allow compatibility with
RS-232 serial devices. Serial
ports are still used in applications such as industrial automation
systems, scientific instruments, point of sale systems and some
industrial and consumer products. Server computers may use a serial
port as a control console for diagnostics. Network equipment (such as
routers and switches) often use serial console for configuration.
Serial ports are still used in these areas as they are simple, cheap
and their console functions are highly standardized and widespread. A
serial port requires very little supporting software from the host
1.1 DTE and DCE
1.2 Male and female
1.5 Powered serial port
1.6 Hardware abstraction
2 Common applications for serial ports
3.2 Data bits
3.4 Stop bits
3.5 Conventional notation
3.6 Flow control
4 "Virtual" serial ports
5 See also
7 Further reading
8 External links
Some computers, such as the IBM PC, use an integrated circuit called a
UART. This IC converts characters to and from asynchronous serial
form, implementing the timing and framing of data in hardware. Very
low-cost systems, such as some early home computers, would instead use
the CPU to send the data through an output pin, using the bit banging
technique. Before large-scale integration (LSI) UART integrated
circuits were common, a minicomputer or microcomputer would have a
serial port made of multiple small-scale integrated circuits to
implement shift registers, logic gates, counters, and all the other
logic for a serial port.
Early home computers often had proprietary serial ports with pinouts
and voltage levels incompatible with RS-232. Inter-operation with
RS-232 devices may be impossible as the serial port cannot withstand
the voltage levels produced and may have other differences that "lock
in" the user to products of a particular manufacturer.
Low-cost processors now allow higher-speed, but more complex, serial
communication standards such as
FireWire to replace RS-232.
These make it possible to connect devices that would not have operated
feasibly over slower serial connections, such as mass storage, sound,
and video devices.
Many personal computer motherboards still have at least one serial
port, even if accessible only through a pin header. Small-form-factor
systems and laptops may omit
RS-232 connector ports to conserve space,
but the electronics are still there.
RS-232 has been standard for so
long that the circuits needed to control a serial port became very
cheap and often exist on a single chip, sometimes also with circuitry
for a parallel port.
IBM PC Serial Card with a 25-pin connector (obsolete 8-bit ISA card)
A PCI Express ×1 card with one serial port
A four-port serial (RS-232) PCI Express ×1 expansion card with
an octopus cable that breaks the card's DC-37 connector into four
A converter from
USB to an
RS-232 compatible serial port; more than a
physical transition, it requires a driver in the host system software
and a built-in processor to emulate the functions of the IBM XT
compatible serial port hardware.
DTE and DCE
The individual signals on a serial port are unidirectional and when
connecting two devices the outputs of one device must be connected to
the inputs of the other. Devices are divided into two categories data
terminal equipment (DTE) and data circuit-terminating equipment (DCE).
A line that is an output on a DTE device is an input on a DCE device
and vice versa so a DCE device can be connected to a DTE device with a
straight wired cable. Conventionally, computers and terminals are DTE
while modems and peripherals are DCE.
If it is necessary to connect two DTE devices (or two DCE devices but
that is more unusual) a cross-over null modem, in the form of either
an adapter or a cable, must be used.
Male and female
DE-9 gender changers, showing both male (visible on the left) and
DE-9 connectors (visible on the right)
Generally, serial port connectors are gendered, only allowing
connectors to mate with a connector of the opposite gender. With
D-subminiature connectors, the male connectors have protruding pins,
and female connectors have corresponding round sockets. Either type
of connector can be mounted on equipment or a panel; or terminate a
Connectors mounted on DTE are likely to be male, and those mounted on
DCE are likely to be female (with the cable connectors being the
opposite). However, this is far from universal; for instance, most
serial printers have a female DB25 connector, but they are DTEs.
RS-232 standard originally specified a 25-pin D-type
connector, many designers of personal computers chose to implement
only a subset of the full standard: they traded off compatibility with
the standard against the use of less costly and more compact
connectors (in particular the
DE-9 version used by the original IBM
PC-AT). The desire to supply serial interface cards with two ports
required that IBM reduce the size of the connector to fit onto a
single card back panel. A
DE-9 connector also fits onto a card with a
DB-25 connector. Starting around the time of the introduction
of the IBM PC-AT, serial ports were commonly built with a 9-pin
connector to save cost and space. However, presence of a 9-pin
D-subminiature connector is not sufficient to indicate the connection
is in fact a serial port, since this connector is also used for video,
joysticks, and other purposes.
Some miniaturized electronics, particularly graphing calculators and
hand-held amateur and two-way radio equipment, have serial ports using
a phone connector, usually the smaller 2.5 or 3.5 mm connectors
and use the most basic 3-wire interface.
Many models of
Macintosh favor the related
RS-422 standard, mostly
using German mini-DIN connectors, except in the earliest models. The
Macintosh included a standard set of two ports for connection to a
printer and a modem, but some
PowerBook laptops had only one combined
port to save space.
Since most devices do not use all of the 20 signals that are defined
by the standard, smaller connectors are often used. For example, the
DE-9 connector is used by most IBM-compatible PCs since the IBM
PC AT, and has been standardized as TIA-574. More recently, modular
connectors have been used. Most common are
8P8C connectors, for which
the EIA/TIA-561 standard defines a pinout, while the "Yost Serial
Device Wiring Standard" invented by Dave Yost (and popularized by
Unix System Administration Handbook) is common on
and newer devices from Cisco Systems.
10P10C connectors can be found
on some devices as well.
Digital Equipment Corporation
Digital Equipment Corporation defined their
own DECconnect connection system which is based on the Modified
Modular Jack (MMJ) connector. This is a 6-pin modular jack where the
key is offset from the center position. As with the Yost standard,
DECconnect uses a symmetrical pin layout which enables the direct
connection between two DTEs. Another common connector is the DH10
header connector common on motherboards and add-in cards which is
usually converted via a cable to the more standard 9-pin DE-9
connector (and frequently mounted on a free slot plate or other part
of the housing).
9-pin to 25-pin D-type adapter cable
Pair of female
Mini DIN-8 connectors used for
RS-422 serial ports on a
Macintosh LC computer
A Hirose 3560-16S used for
RS-232 on a Tatung TWN-5213 CU tablet
computer. Below is a mating 3540-16P-CV connector.
The following table lists commonly used
RS-232 signals and pin
V.24 (de) circuit
Digi (ALTPIN option)
Data Terminal Ready
Data Carrier Detect
Data Set Ready
Request To Send
Clear To Send
The signal ground is a common return for the other connections; it
appears on two pins in the Yost standard but is the same signal. The
DB-25 connector includes a second "protective ground" on pin 1, which
is intended to be connected by each device to its own frame ground or
similar. Connecting this to pin 7 (signal reference ground) is a
common practice but not recommended.
Note that EIA/TIA 561 combines DSR and RI, and the Yost
standard combines DSR and DCD.
Powered serial port
Some serial ports on motherboards or add-in cards provide jumpers that
select whether pin 1 of the
DE-9 connector connects to DCD or a power
supply voltage, and whether pin 9 of the
DE-9 connector connects to RI
or a power supply voltage. The power supply voltage can be +5V, +12V,
+9V, or ground. (Selection varies by vendor.) The power is intended
for use by point-of-sale equipment. Makers include Dell, HP, and
others (This is not an official standard.)
Operating systems usually create symbolic names for the serial ports
of a computer, rather than requiring programs to refer to them by
Unix-like operating systems usually label the serial port devices
/dev/tty*. TTY is a common trademark-free abbreviation for teletype, a
device commonly attached to early computers' serial ports, and *
represents a string identifying the specific port; the syntax of that
string depends on the operating system and the device. On Linux,
16550 UART hardware serial ports are named /dev/ttyS*, USB
adapters appear as /dev/ttyUSB* and various types of virtual serial
ports do not necessarily have names starting with tty.
DOS and Windows environments refer to serial ports as COM ports:
COM1, COM2,..etc. Ports numbered greater than COM9 should be referred
to using the \.COM10 syntax.
Common applications for serial ports
RS-232 standard is used by many specialized and custom-built
devices. This list includes some of the more common devices that are
connected to the serial port on a PC. Some of these such as modems and
serial mice are falling into disuse while others are readily
Serial ports are very common on most types of microcontroller, where
they can be used to communicate with a PC or other serial devices.
Configuration and management of networking equipment such as routers,
switches, firewalls, load balancers
GPS receivers (typically
NMEA 0183 at 4,800 bit/s)
Bar code scanners and other point of sale devices
LED and LCD text displays
Satellite phones, low-speed satellite modems and other satellite based
Flat-screen (LCD and Plasma) monitors to control screen functions by
external computer, other AV components or remotes
Test and measuring equipment such as digital multimeters and weighing
Updating firmware on various consumer devices.
Uninterruptible power supply
Software debuggers that run on a second computer.
Industrial field buses
Computer terminal, teletype
Older digital cameras
RS-422 at 230.4 kbit/s)
Older GSM mobile phones
IDE hard drive repair
Since the control signals for a serial port can be easily turned on
and off by a switch, some applications used the control lines of a
serial port to monitor external devices, without exchanging serial
data. A common commercial application of this principle was for some
models of uninterruptible power supply which used the control lines to
signal loss of power, low battery, and other status information. At
Morse code training software used a code key connected to
the serial port, to simulate actual code use. The status bits of the
serial port could be sampled very rapidly and at predictable times,
making it possible for the software to decipher Morse code.
Some common speeds
Many settings are required for serial connections used for
asynchronous start-stop communication, to select speed, number of data
bits per character, parity, and number of stop bits per character. In
modern serial ports using a UART integrated circuit, all settings are
usually software-controlled; hardware from the 1980s and earlier may
require setting switches or jumpers on a circuit board. One of the
simplifications made in such serial bus standards as Ethernet,
USB is that many of those parameters have fixed values
so that users cannot and need not change the configuration; the speed
is either fixed or automatically negotiated. Often if the settings are
entered incorrectly the connection will not be dropped; however, any
data sent will be received on the other end as nonsense.
Serial ports use two-level (binary) signaling, so the data rate in
bits per second is equal to the symbol rate in baud. A standard series
of rates is based on multiples of the rates for electromechanical
teleprinters; some serial ports allow many arbitrary rates to be
selected. The port speed and device speed must match. The capability
to set a bit rate does not imply that a working connection will
result. Not all bit rates are possible with all serial ports. Some
special-purpose protocols such as
MIDI for musical instrument control,
use serial data rates other than the teleprinter series. Some serial
port systems can automatically detect the bit rate.
The speed includes bits for framing (stop bits, parity, etc.) and so
the effective data rate is lower than the bit transmission rate. For
8-N-1 character framing only 80% of the bits are
available for data (for every eight bits of data, two more framing
bits are sent).
Bit rates commonly supported include 75, 110, 300, 1200, 2400, 4800,
9600, 19200, 38400, 57600 and 115200 bit/s. Crystal
oscillators with a frequency of 1.843200 MHz are sold
specifically for this purpose. This is 16 times the fastest bit rate
and the serial port circuit can easily divide this down to lower
frequencies as required.
The number of data bits in each character can be 5 (for Baudot code),
6 (rarely used), 7 (for true ASCII), 8 (for most kinds of data, as
this size matches the size of a byte), or 9 (rarely used). 8 data bits
are almost universally used in newer applications. 5 or 7 bits
generally only make sense with older equipment such as teleprinters.
Most serial communications designs send the data bits within each byte
LSB (least significant bit) first. This standard is also referred to
as "little endian." Also possible, but rarely used, is "big endian" or
MSB (most significant bit) first serial communications; this was used,
for example, by the
IBM 2741 printing terminal. (See
Bit numbering for
more about bit ordering.) The order of bits is not usually
configurable within the serial port interface. To communicate with
systems that require a different bit ordering than the local default,
local software can re-order the bits within each byte just before
sending and just after receiving.
Main article: Parity bit
Parity is a method of detecting errors in transmission. When parity is
used with a serial port, an extra data bit is sent with each data
character, arranged so that the number of 1 bits in each character,
including the parity bit, is always odd or always even. If a byte is
received with the wrong number of 1s, then it must have been
corrupted. However, an even number of errors can pass the parity
Electromechanical teleprinters were arranged to print a special
character when received data contained a parity error, to allow
detection of messages damaged by line noise. A single parity bit does
not allow implementation of error correction on each character, and
communication protocols working over serial data links will have
higher-level mechanisms to ensure data validity and request
retransmission of data that has been incorrectly received.
The parity bit in each character can be set to none (N), odd (O), even
(E), mark (M), or space (S). None means that no parity bit is sent at
all. Mark parity means that the parity bit is always set to the mark
signal condition (logical 1) and likewise space parity always sends
the parity bit in the space signal condition. Aside from uncommon
applications that use the 9th (parity) bit for some form of addressing
or special signaling, mark or space parity is uncommon, as it adds no
error detection information. Odd parity is more useful than even,
since it ensures that at least one state transition occurs in each
character, which makes it more reliable. The most common parity
setting, however, is "none", with error detection handled by a
Stop bits sent at the end of every character allow the receiving
signal hardware to detect the end of a character and to resynchronise
with the character stream. Electronic devices usually use one stop
bit. If slow electromechanical teleprinters are used, one-and-one half
or two stop bits are required.
The data/parity/stop (D/P/S) conventional notation specifies the
framing of a serial connection. The most common usage on
microcomputers is 8/N/1 (8N1). This specifies 8 data bits, no parity,
1 stop bit. In this notation, the parity bit is not included in the
data bits. 7/E/1 (7E1) means that an even parity bit is added to the 7
data bits for a total of 8 bits between the start and stop bits. If a
receiver of a 7/E/1 stream is expecting an 8/N/1 stream, half the
possible bytes will be interpreted as having the high bit set.
Main article: Flow control (data)
In many circumstances a transmitter might be able to send data faster
than the receiver is able to process it. To cope with this, serial
lines often incorporate a "handshaking" method, usually distinguished
between hardware and software handshaking.
Hardware handshaking is done with extra signals, often the RS-232
RTS/CTS or DTR/DSR signal circuits. Generally, the RTS and CTS are
turned off and on from alternate ends to control data flow, for
instance when a buffer is almost full. DTR and DSR are usually on all
the time and, per the
RS-232 standard and its successors, are used to
signal from each end that the other equipment is actually present and
powered-up. However, manufacturers have over the years built many
devices that implemented non-standard variations on the standard, for
example, printers that use DTR as flow control.
Software handshaking is done for example with
ASCII control characters
XON/XOFF to control the flow of data. The XON and XOFF characters are
sent by the receiver to the sender to control when the sender will
send data, that is, these characters go in the opposite direction to
the data being sent. The circuit starts in the "sending allowed"
state. When the receiver's buffers approach capacity, the receiver
sends the XOFF character to tell the sender to stop sending data.
Later, after the receiver has emptied its buffers, it sends an XON
character to tell the sender to resume transmission. It is an example
of in-band signaling, where control information is sent over the same
channel as its data.
The advantage of hardware handshaking is that it can be extremely
fast; it doesn't impose any particular meaning such as
ASCII on the
transferred data; and it is stateless. Its disadvantage is that it
requires more hardware and cabling, and these must be compatible at
The advantage of software handshaking is that it can be done with
absent or incompatible hardware handshaking circuits and cabling. The
disadvantage, common to all in-band control signaling, is that it
introduces complexities in ensuring that a) control messages get
through even when data messages are blocked, and b) data can never be
mistaken for control signals. The former is normally dealt with by the
operating system or device driver; the latter normally by ensuring
that control codes are "escaped" (such as in the Kermit protocol) or
omitted by design (such as in ANSI terminal control).
If no handshaking is employed, an overrun receiver might simply fail
to receive data from the transmitter. Approaches for preventing this
include reducing the speed of the connection so that the receiver can
always keep up; increasing the size of buffers so it can keep up
averaged over a longer time; using delays after time-consuming
operations (e.g. in termcap) or employing a mechanism to resend data
which has been corrupted (e.g. TCP).
"Virtual" serial ports
Main article: COM port redirector
A virtual serial port is an emulation of the standard serial port.
This port is created by software which enable extra serial ports in an
operating system without additional hardware installation (such as
expansion cards, etc.). It is possible to create a large number of
virtual serial ports in a PC. The only limitation is the amount of
resources, such as operating memory and computing power, needed to
emulate many serial ports at the same time.
Virtual serial ports emulate all hardware serial port functionality,
including baud rate, data bits, parity bits, stop bits, etc.
Additionally, they allow controlling the data flow, emulating all
signal lines (DTR, DSR, CTS, RTS, DCD, and RI) and customizing pinout.
Virtual serial ports are common with
Bluetooth and are the standard
way of receiving data from Bluetooth-equipped
Virtual serial port emulation can be useful in case there is a lack of
available physical serial ports or they do not meet the current
requirements. For instance, virtual serial ports can share data
between several applications from one
GPS device connected to a serial
port. Another option is to communicate with any other serial devices
via internet or LAN as if they are locally connected to computer
(serial over LAN/serial-over-
Ethernet technology). Two computers or
applications can communicate through an emulated serial port link.
Virtual serial port emulators are available for many operating systems
including MacOS, Linux, and various mobile and desktop versions of
COM (hardware interface)
ITU-T/CCITT V.24 (de)
ITU-T/CCITT V.28 (de)
^ Webopedia (2003-09-03). "What is serial port? - A Word Definition
From the Webopedia
Computer Dictionary". Webopedia.com. Retrieved
^ "Serial Cable Connection Guide". CISCO. 2006-08-01. Retrieved
^ "RS232 - DTE and DCE connectors". Lantronix. 2006-03-29. Retrieved
^ Yost Serial Device Wiring Standard
^ Ögren, Joakim. "Serial (PC 9)".
^ a b Cyclom-Y Installation Manual, page 38, retrieved on 29 November
^ "RJ-45 8-Pin to
Modem (ALTPIN option)". Digiftp.digi.com. Retrieved
^ National Instruments Serial Quick Reference Guide, February 2007
^ "RJ-45 10-Pin Plug to
Modem Cable". Digiftp.digi.com.
^ Hardware Book RS-232D
^ RS-232D EIA/TIA-561 RJ45 Pinout
^ "OptiPlex XE Powered Serial Port Configuration" (PDF).
^ "Powered Serial Cards - Brainboxes".
^ "HOWTO: Specify Serial Ports Larger than COM9".
^ "Paul's 8051 Code Library, IDE Hard Drive Interface". Pjrc.com.
2005-02-24. Retrieved 2014-02-08.
^ "IDE Hard Disk experiments". Hem.passagen.se. 2004-02-15. Retrieved
^ "The Solution for Seagate 7200.11 HDDs - Hard Drive and Removable
Media issues - MSFN Forum". Msfn.org. Retrieved 2014-02-08.
^ "Fixing a Seagate 7200.11 Hard Drive". Sites.google.com. Retrieved
^ Serial Port Driver Interfaces; MSDN Microsoft.
^ "DCB Structure". MSDN. Microsoft. Retrieved 2011-03-15.
Serial Port Complete: COM Ports,
USB Virtual COM Ports, and Ports for
Embedded Systems; 2nd Edition; Jan Axelson; Lakeview Research; 380
pages; 2007; ISBN 978-1-931-44806-2.
Wikibooks has a book on the topic of: Programming:Serial Data
RS-232 and other serial port pinouts list
Back of an old desktop computer showing 25-pin male serial port.
Basic computer components
Refreshable braille display
Refreshable braille display
USB flash drive
Central processing unit
Central processing unit (CPU)
HDD / SSD / SSHD
Network interface controller
Random-access memory (RAM)
FireWire (IEEE 1394)
HDMI / DVI / VGA