old-www/HOWTO/Serial-HOWTO-1.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, &amp; 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>