222 lines
10 KiB
HTML
222 lines
10 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
|
|
<TITLE> Serial HOWTO: Introduction</TITLE>
|
|
<LINK HREF="Serial-HOWTO-2.html" REL=next>
|
|
|
|
<LINK HREF="Serial-HOWTO.html#toc1" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="Serial-HOWTO-2.html">Next</A>
|
|
Previous
|
|
<A HREF="Serial-HOWTO.html#toc1">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s1">1.</A> <A HREF="Serial-HOWTO.html#toc1">Introduction</A></H2>
|
|
|
|
<P> This HOWTO covers basic info on the serial port which is missing
|
|
on newer personal computers but is being used in recent
|
|
embedded systems as well as for routers, point-of-sale equipment, etc.
|
|
It includes multiport serial cards. It was written when the serial
|
|
port was a major port for connecting a PC to modems and printers, etc.
|
|
and the style of this article reflects this. If you're having
|
|
problems with the serial port, want to understand how it works, or
|
|
need a detailed introduction to it before studying serial programming,
|
|
this is one place to find out about it.</P>
|
|
<P>This HOWTO is about the original serial port which uses a UART
|
|
chip and is sometimes called a "UART serial port" to differentiate it
|
|
from the newer types of serial devices: Universal Serial Bus or
|
|
Firewire. It's
|
|
<A HREF="Serial-HOWTO-16.html#slow_">slow</A>
|
|
compared to newer serial devices but can send text several times
|
|
faster than you can read it. Information specific to devices which
|
|
use serial ports: analog modems, text-terminals, infrared devices, and
|
|
a few printers are found in Modem-HOWTO, Text-Terminal-HOWTO,
|
|
Infrared-HOWTO, and Printing-HOWTO. Info on getty (the program that
|
|
runs the login process or the like) has been also moved to other
|
|
related HOWTOs since mgetty and uugetty are best for modems while
|
|
agetty is best for text-terminals. If you are dealing with a modem,
|
|
text terminal, infrared device, or printer, then you may not need to
|
|
consult this HOWTO. But if you are using the serial port for some
|
|
other device, using a multiport serial card, trouble-shooting the
|
|
serial port itself, or want to understand more technical details of
|
|
the serial port, then you may want to use this HOWTO as well as some
|
|
of the other HOWTOs. (See
|
|
<A HREF="#related_howtos">Related HOWTO's</A>) This HOWTO lists info on various multiport serial cards.
|
|
This HOWTO addresses Linux running on PCs (ISA and/or PCI buses),
|
|
although it might be valid for other architectures.</P>
|
|
|
|
<H2><A NAME="ss1.1">1.1</A> <A HREF="Serial-HOWTO.html#toc1.1">Copyright, Disclaimer, & Credits</A>
|
|
</H2>
|
|
|
|
<H3>Copyright</H3>
|
|
|
|
<P>Copyright (c) 1993-1997 by Greg Hankins, (c) 1998-2005 by David S.
|
|
Lawyer
|
|
<A HREF="mailto:dave@lafn.org">mailto:dave@lafn.org</A></P>
|
|
<P>Please freely copy and distribute (sell or give away) this document
|
|
in any format. Send any corrections and comments to the document
|
|
maintainer. You may create a derivative work and distribute it
|
|
provided that you:</P>
|
|
<P>
|
|
<OL>
|
|
<LI> If it's not a translation: Email a copy of your derivative work
|
|
(in a format LDP accepts) to the author(s) and maintainer (could be
|
|
the same person). If you don't get a response then email the LDP
|
|
(Linux Documentation Project): submit@en.tldp.org.</LI>
|
|
<LI>License the derivative work in the spirit of this license or use
|
|
GPL. Include a copyright notice and at least a pointer to the
|
|
license used.</LI>
|
|
<LI>Give due credit to previous authors and major contributors.</LI>
|
|
</OL>
|
|
</P>
|
|
<P>If you're considering making a derived work other than a
|
|
translation, it's requested that you discuss your plans with the
|
|
current maintainer.</P>
|
|
|
|
<H3>Disclaimer</H3>
|
|
|
|
<P> While I haven't intentionally tried to mislead you, there are
|
|
likely a number of errors in this document. Please let me know about
|
|
them. Since this is free documentation, it should be obvious that I
|
|
cannot be held legally responsible for any errors.</P>
|
|
|
|
<H3>Trademarks.</H3>
|
|
|
|
<P> Any brand names (starts with a capital letter such as MS Windows)
|
|
should be assumed to be a trademark). Such trademarks belong to their
|
|
respective owners. </P>
|
|
|
|
|
|
<H3>Credits</H3>
|
|
|
|
<P> Most of the original Serial-HOWTO was written by Greg Hankins.
|
|
<A HREF="mailto:gregh@twoguys.org">mailto:gregh@twoguys.org</A>
|
|
He also rewrote many contributions by others in order to maintain
|
|
continuity in the writing style and flow. He wrote: ``Thanks to
|
|
everyone who has contributed or commented, the list of people has
|
|
gotten too long to list (somewhere over one hundred). Special thanks
|
|
to Ted Ts'o for answering questions about the serial drivers.''
|
|
Approximately half of v2.00 was from Greg Hankins HOWTO and the other
|
|
half were additions by David Lawyer. Ted Ts'o has continued to be
|
|
helpful. In Jan. 2006 "Charles Brockman" reviewed it for typos which
|
|
resulted in many typos being fixed.</P>
|
|
|
|
<H2><A NAME="ss1.2">1.2</A> <A HREF="Serial-HOWTO.html#toc1.2">New Versions of this Serial-HOWTO</A>
|
|
</H2>
|
|
|
|
<P> New versions will be issued perhaps every year or two. They will be
|
|
available to browse and/or download at LDP mirror sites see:
|
|
<A HREF="http://www.tldp.org/mirrors.html">http://www.tldp.org/mirrors.html</A>. Various formats are
|
|
available. If you only want to quickly check the date of the latest
|
|
version look at
|
|
<A HREF="http://www.tldp.org/HOWTO/Serial-HOWTO.html">http://www.tldp.org/HOWTO/Serial-HOWTO.html</A> and compare it to
|
|
this version: v2.27 February 2011 .</P>
|
|
|
|
<H2><A NAME="ss1.3">1.3</A> <A HREF="Serial-HOWTO.html#toc1.3">New in Recent Versions </A>
|
|
</H2>
|
|
|
|
<P> For a full revision history going
|
|
back to the time I started maintaining this HOWTO, see the source file
|
|
(in linuxdoc format):
|
|
<A HREF="http://cvs.tldp.org/go.to/LDP/LDP/howto/linuxdoc/Serial-HOWTO.sgml?view=markup">(cvs) Serial-HOWTO.sgml</A>
|
|
<UL>
|
|
<LI> TO do: explain use of udev for serial port for setting names
|
|
and permissions. Fix dead links.</LI>
|
|
<LI>2.27 Feb. 2011: The serial port is still widely used in embedded
|
|
systems, etc., and is not really obsolete. Better definition of
|
|
input, output. Deleted devfs names such as tts.</LI>
|
|
<LI>2.26 Nov. 2010 Changed EIA-232 to RS-232. PCI-e bus is serial. No
|
|
serial port on new PCs. I incorrectly wrote in this update that the serial port was obsolete and that this HOWTO is now mainly of historical interest. </LI>
|
|
<LI>2.25 Jan. 2007 picocom. devfs is obsolete. ser2net. Revised
|
|
parts on drivers as modules vs. built into kernel. Serial Programming
|
|
wikibook.</LI>
|
|
</UL>
|
|
</P>
|
|
|
|
<H2><A NAME="related_howtos"></A> <A NAME="ss1.4">1.4</A> <A HREF="Serial-HOWTO.html#toc1.4">Related HOWTO's, etc. about the Serial Port </A>
|
|
</H2>
|
|
|
|
<P> Modems, Text-Terminals, some printers, and other peripherals often
|
|
used the serial port. Get these HOWTOs from the nearest mirror site as
|
|
explained above.</P>
|
|
<P>
|
|
<UL>
|
|
<LI><CODE>Modem-HOWTO</CODE> is about installing and configuring modems</LI>
|
|
<LI><CODE>Printing-HOWTO</CODE> has info for serial printers using old
|
|
lpr command</LI>
|
|
<LI><CODE>LPRng-HOWTO</CODE> (not a LDP HOWTO, may come with software)
|
|
has info for serial printing for "Next Generation" lpr</LI>
|
|
<LI>
|
|
<A HREF="http://en.wikibooks.org/wiki/Programming:Serial_Data_Communications">Serial Programming</A> is a wiki-book
|
|
on the Internet</LI>
|
|
<LI><CODE>Serial-Programming-HOWTO</CODE> helps you write
|
|
C programs that read and write to the serial port
|
|
and/or check/set its state. A version written by Vern Hoxie but not
|
|
submitted to LDP is at
|
|
<A HREF="Serial-HOWTO-22.html#vern_">Internet section</A>.</LI>
|
|
<LI><CODE>Text-Terminal-HOWTO</CODE> is about how they work, how to install
|
|
configure, and repair them. It includes a section on "Make a
|
|
Terminal the Console" which is useful for using a remote terminal to
|
|
control a server (via the serial port).</LI>
|
|
<LI><CODE>Remote-Serial-Console-HOWTO</CODE> is about making a
|
|
text-terminal be the console so it can display boot-time messages, etc.</LI>
|
|
</UL>
|
|
</P>
|
|
|
|
<H2><A NAME="ss1.5">1.5</A> <A HREF="Serial-HOWTO.html#toc1.5">Feedback</A>
|
|
</H2>
|
|
|
|
<P> Please send me any suggestions, correction or additional
|
|
material. Tell me what you don't understand, or what could be
|
|
clearer. You can reach me via email at <CODE>
|
|
<A HREF="mailto:dave@lafn.org">mailto:dave@lafn.org</A></CODE>.</P>
|
|
|
|
<H2><A NAME="ss1.6">1.6</A> <A HREF="Serial-HOWTO.html#toc1.6">What is a Serial Port?</A>
|
|
</H2>
|
|
|
|
<P> The conventional serial port (not the newer USB port, or Firewire
|
|
port) is a very old I/O (Input/Output) port. Until around 2006, most
|
|
new desktop PC's had one, and old PC's from the 1990's sometimes had 2
|
|
of them. Most laptops gave up them before the desktops did. Macs
|
|
(Apple Computer) after mid-1998 only had the USB port. However, it's
|
|
possible, to put a conventional serial port device on the USB bus
|
|
which is on all modern PCs.</P>
|
|
<P>Each serial port has a "file" associated with it in the /dev
|
|
directory. It isn't really a file but it seems like one. For
|
|
example, /dev/ttyS0. Other serial ports are /dev/ttyS1, /dev/ttyS2,
|
|
etc. But ports on the USB bus, multiport cards, etc. have different
|
|
names.</P>
|
|
<P>The common specification for the conventional serial port is RS-232
|
|
(or RS-232). So it's often called a "RS-232 serial port". The
|
|
connector(s) for the serial port are often seen as one or two 9-pin
|
|
connectors (in some cases 25-pin) on the back of a PC. But the serial
|
|
port is more than just connectors. It includes the associated
|
|
electronics which must produce signals conforming to the RS-232
|
|
specification. See
|
|
<A HREF="Serial-HOWTO-20.html#volt_shape">Voltage Waveshapes</A>.
|
|
One pin is used to send out data bytes and another to receive data
|
|
bytes. Another pin is a common signal ground. The other "useful"
|
|
pins are used mainly for signalling purposes with a steady negative
|
|
voltage meaning "off" and a steady positive voltage meaning "on".</P>
|
|
<P>The UART (Universal Asynchronous Receiver-Transmitter) chip does most
|
|
of the work. Today, the functionality of this chip is usually built
|
|
into another chip. See
|
|
<A HREF="Serial-HOWTO-18.html#uart_">What Are UARTs?</A> These
|
|
have improved over time and old models (prior to say 1994) are usually
|
|
very obsolete.</P>
|
|
<P>The serial port was originally designed for connecting external modems
|
|
to a PC but it's used to connect many other devices also such as mice,
|
|
text-terminals, some printers, etc. to a computer. You just plug
|
|
these devices into the serial port using the correct cable. Many
|
|
internal modem cards have a built-in serial port so when you install
|
|
one inside your PC it's as if you just installed another serial port
|
|
in your PC.</P>
|
|
|
|
<HR>
|
|
<A HREF="Serial-HOWTO-2.html">Next</A>
|
|
Previous
|
|
<A HREF="Serial-HOWTO.html#toc1">Contents</A>
|
|
</BODY>
|
|
</HTML>
|