AOH :: FAST550.TXT

Do I really need a 16550 UART?



    Technical Note : FAST SERIAL PORTS
            Author : Michael Spalter, S/E/G Communications
             Email : segcom@cix.complulink.co.uk
            Origin : United Kingdom, EC
     Last Modified : 04/12/92
            Status : (c) 1993 Michael Spalter

    NOTE: This document may be distributed  freely  providing  that  all
    credits  remain  intact  and that it is not modified in any way. Any
    suggestions for improving this document are welcome. Please  contact
    the  author  as  shown  at  the foot of the document. Bulletin board
    sysops are welcome to make this file available as a 'Bulletin'.


                     ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
                     ³ DO I NEED A FAST SERIAL PORT ? ³
                     ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

         ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
         ³                 C O N T E N T S                   ³
         ³                                                   ³
         ³  0) INTRODUCTION                                  ³
         ³  1) What is a UART ?                              ³
         ³  2) Why the sudden craze for high speed cards ?   ³
         ³  3) Why aren't normal PC ports good enough ?      ³
         ³  4) How would I know if I needs a faster port ?   ³
         ³  5) Okay, I want one ! What should I buy ?        ³
         ³  6) Is there just one type of 16550 UART ?        ³
         ³  7) Supplier information                          ³
         ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


    INTRODUCTION
    ------------

    Fast  serial  cards  have  become  very  popular  lately  due to the
    proliferation of high speed (V32/V32bis) modems. Whilst the computer
    press have been keen to cover modems in general, little coverage has
    been given to  serial  cards  (they're  just  not  sexy  enough  for
    mainstream  articles).  This  means that, whilst many people want or
    need fast serial cards, there is much  confusion  about  them.  This
    document attempts to answer the most common questions asked.


    1) What is a UART ?
       ----------------

    Throughout this document, we will refer to something called a 'UART'
    (pronounced 'you-art').  As this is a very important  component,  it
    is important to understand what it is.

    A  UART  is  an IC (chip!) which takes parallel data from the PC and
    outputs it to the serial port as a timed serial stream of data.   It
    is  the  main component of the serial card; all other components are
    there to support the UART.  Here is a simple functional diagram:

        PC's BUS Slot                         Serial port
        1 ------------> ÉÍÍÍÍÍÍÍÍ»
        1 ------------> º  UART  º
        0 ------------> º        º
        1 ------------> º        º ---------> 11010001
        0 ------------> º        º
        0 ------------> º        º
        0 ------------> º        º
        1 ------------> ÈÍÍÍÍÍÍÍͼ


    2) Why the sudden craze for fast serial ports ?
       --------------------------------------------

    Now that high speed modems (V32, V32bis) have  become  very  common,
    many PC serial ports are having problems running fast enough to keep
    up  with the modems which can be driven at speeds of up to 57600 bps
    (bits per second).  A standard '8250 UART'  based  serial  port  (or
    one  using a multi i/o chip) cannot possibly run at that speed.  The
    '16450' UART is only slightly better.


    3) Why aren't normal PC ports good enough ?
       ----------------------------------------

    Standard serial ports were designed  to  drive  mice,  plotters  and
    modems.  At the time, modems ran at speeds of up to 4800 bps, and we
    thought that was fast - anyone who has been using  modems  for  more
    than  5  years  will  remember how lucky we thought we were !

    Problems with serial ports arise for two reasons:

    a) The 8250/16450 or equivalent UARTS are simply not designed to run
       at the high speeds required by fast modems. Whilst the  BIOS/UART
       will  allow  you  to  select  these speeds, they may not reliably
       work at these speeds.

    b) PC's are busy things, with lots of interrupts to service. If  the
       port is running  at  high  speed,  the  PC  may  miss  interrupts
       generated by incoming data - this then means that  the  UART  has
       nowhere  to  put  the incoming byte and so it gets overwritten by
       the next byte received.  This  usually  causes  CRC  errors.  The
       faster you drive the port, the more  CRC  errors  you  will  get.
       This is almost *always* a problem if you  are  multitasking  with
       MS-Windows or Desqview.

    The '16550' UART gets around both of these problems:

    a) It is designed to run at  high  speed;  a  16550  chip  will  run
       happily  at 57600 bps or faster which is fast enough for even the
       fastest modem.

    b) The 16550 UART incorporates a 16 byte buffer;  if  the  PC  isn't
       ready to received the current byte then the UART can retain it in
       the buffer until the PC is ready for it.  16 Bytes is  plenty  as
       serial    interrupts   are   serviced   very   regularly.    Many
       communications  packages  will  empty  the  FIFO  buffer at every
       interrupt   possible,  rather  than  only  taking  one  byte  per
       interrupt.  The  buffer  on  the  UART is a 'FIFO'  buffer.  This
       simply means that the first byte  in will be the first byte  out.
       The alternative to this would be a LIFO buffer, but that would be
       useless for a UART as all the data would become scrambled !


    4) How would I know if I needed a faster serial card ?
       ---------------------------------------------------

    If you are multitasking using MS-Windows or Desqview, then you  will
    almost  certainly need a fast buffered serial card. Typical symptoms
    will be CRC errors or block retries reported when downloading files.
    As you will probably be using error correction,  then  these  errors
    are unlikely to be caused by anything else.

    Even  if you are not using Desqview or MS-Windows, you may still get
    the symptoms details above, especially if you were driving the modem
    at 38400 bps or faster, in which case you would be wise to invest in
    a  faster serial card. Having said that, there are some people using
    high speed modems whose existing serial port  may  be  adequate,  in
    which case there is no point investing in a faster one !


    5) Okay, I want one, what should I buy ?
       -------------------------------------

    The  important part about a fast serial card is its UART; this means
    that you may be able to simply swap the UART of your existing serial
    card, rather than having to fit a whole new card.  You can  only  do
    this  if your current serial card uses a 40 pin UART (8250, 16450 or
    equivalent). This needs to be  socketed  for  easy  removal,  unless
    you're  particularly  experienced  with  a  soldering iron and fancy
    desoldering the chip yourself, but this isn't recommended. If you do
    decide to desolder your existing UART,  replace  it  with  a  socket
    rather than soldering your 16550 directly in.

    Unfortunately, most PC's nowadays seem to come with multi i/o  cards
    with one multi-purpose chip which performs serial, parallel and disk
    operations; if you have a multi i/o card, it will normally be a PLCC
    package  in  the centre of the board ( a flat 'surface mounted' chip
    with pins on all four sides). This obviously cannot be replaced with
    a  16550.   Some  PC's  have  the  i/o  circuitry  built  into   the
    motherboard,  in which case it is also unlikely that you can replace
    the UART.

    Thankfully, and more easily, you can simply buy  a  new  card  based
    around a 16550 UART. This can either replace or add to your existing
    serial  ports and your supplier will advise you on the best type.


    6) Is there just one type of 16550 UART ?
       --------------------------------------

    No! As with all  semiconductors, many manufacturers have  jumped  on
    the 16550  bandwaggon. This is good inasmuch that there is a choice,
    but bad in that some manufacturers have got it  wrong  -  some  have
    FIFO  buffers which don't work and some aren't  recognised correctly
    by applications (this can sometimes be worked around but ideally get
    one which you know will work).

    The 16550 chip 'by which others are  gauged'  is  made  by  National
    Semiconductor, and the part no. is NS16550AFN.  There is an older NS
    version,  but  make  sure you order the 'AFN' type. If your supplier
    stocks a different 16550 version, ensure that it is 100%  compatible
    with the NS16550AFN, and ideally get a guarantee that you can return
    it if you find that it isn't ! The NS type is the most expensive, so
    you will probably save money by buying a clone, but take note of the
    above guidelines.

    The  FIFO  buffer  on  a  16550 chip can be enabled and disabled. By
    default it will be DISABLED. Many comms programs will  automatically
    detect  and  enable the FIFO buffer, but if yours doesn't, there are
    several programs to enable them,  which  you  can  include  in  your
    AUTOEXEC.BAT file or another batch file. Ask your supplier.

    There are several programs around to test 16550 chips, once they are
    installed  so you'll soon know if your new chip/card is okay. If you
    can't get hold of one, ask around on BBS's or ask your supplier.

    Both  US  Robotics and Hayes make high speed serial cards  which are
    very flexible; ask your supplier for details. If your local supplier
    cannot get hold of a fast serial card, see below.


    7) Supplier information
       --------------------

    S/E/G  Communications  stock  a range of 16550 UARTs and 16550 based
    serial cards at very  competitive  prices.   For  full  details  and
    pricing information contact:

        ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
        ³                                        ³
        ³    S/E/G Communications                ³
        ³    137 Hale Lane                       ³
        ³    Edgware                             ³
        ³    Middlesex HA8 9QP                   ³
        ³    Tel: (081) 959 3377                 ³
        ³    Fax: (081) 959 2137                 ³
        ³    Email: segcom@cix.compulink.co.uk   ³
        ³                                        ³
        ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    Credit Card orders are welcome. Trade enquires welcome.


            ------------------ End of Document ----------------

    (c) 1993 Michael Spalter, S/E/G Communications

    This  document may only be distributed un-modified. Preproduction as
    part  of  any  commercial  transaction  or  distribution   via   any
    non-electronic  medium is prohibited in part of full without written
    permission from the author.

                          ----- end of file -----


Make REAL money with your website!

The entire AOH site is optimized to look best in Firefox® 2.0 on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2008 AOH
We do not send spam. If you have received spam bearing an artofhacking.com email address, please forward it with full headers to abuse@artofhacking.com.