GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


archive:computers:16550a_n
                       Info on the 16550a UART
     There has been much talk on the echo conference "HST" about a new
     UART chip.  A UART chip is the 40 pin chip on your serial prort.
     UART means Universal Asynchronous Receiver Transmitter.  This
     chip converts an 8 bit byte from parallel to serial and from
     serial to parallel.  Your computer sends the byte on a PARALLEL 8
     bit bus to the serial card.  The serial card has to send it
     SERIALLY to the modem.  And at the same time it adds a START BIT
     and a STOP BIT.  If you are using a 7 bit format, the UART chip
     can also add the parity bit, which can be even, odd, zero, forced
     to 0, or forced to 1.  It can also add 2 stop bits instead of 1
     stop bit.  And in the case of certain baud rates, it can add 1.5
     stop bits instead of 1 stop bit.
     Well, a problem cropped up with the HST modem.  To gain the
     maximum efficiency of this modem, you have to set your serial
     port to 19,200 baud.  Yes, that is 16 times faster than your
     normal 1200 baud modem.  Now most computers, even XT's, can keep
     up with that. But there is a problem caused by some EXPANSION
     boards like Perstor disk controllers, and Network Interface cards
     (like Ethernet) that hog, or tie up, the interrupts, or IRQ's.
     If the other board hogs the interrupts longer than one character
     time (1/1920th of a second) then the character that is coming in
     over the serial port is LOST and gone forever.  With a 2400 baud
     modem, you have a 1/240th of a second 'slack' between characters.
     (Remember, 8 bits, plus one start bit, plus one stop bit, give
     you 10 bits (not 8) when talking about modems and serial ports.
     So you divide bits per second (bps) by 10 to give CHARACTERS per
     second (cps).  So these problems didn't crop up with modems up to
     2400 baud.  But when running 9600 baud and 19200 baud, they did
     show up.
     What was needed was a way to "hold" those characters until the
     computer could catch up with the serial port.  One way of doing
     that was making an expensive INTELLIGENT serial card.  You could
     put some local memory on there and a small microprocessor like a
     6052 or 8088.  But National Semiconducter went even better!
     Instead of making the whole card smarter and a whole lot more
     expensive, they put all the smarts on the UART CHIP!  The new
     UART chip, called the 16550, has a 16 byte FIFO buffer.  FIFO
     stands for "first-in-first-out".  With this buffer, the computer
     can be busy doing something else for up to 16 character times,
     and no characters will be lost.
     The original UART used in XT computers was the 8250.  This was
     kind of slow, but adequate for the 4.77 Mhz bus speed of the XT.
     With the 8 Mhz bus speed of the AT, a faster chip was needed so
     they used the 16450.  These 2 chips are functionally identical,
     and are pin compatible.  They have 40 pins each. Actually, you
     will see many AT computers with a 8250 UART on their serial port.
     The 16550 will work on any serial port that now has an 8250 or
     16450.  You just replace it.  But you also need some special
     software to activate the buffer.  Otherwise, the 16550 will act
     like a 16450 without the buffer.
     There is a program called 16550.EXE which tells the UART to turn
     on the FIFO buffer, and then the UART is just transparant to
     whatever communication program you are using.  I have been told,
     on a TELIX support conference, that Telix 3.11 has 16550 support
     built in.  I don't know if other popular telecom programs such as
     Procomm+, Qmodem, and other have it or not.
     There was a user on a local BBS who was having problems even
     downloading at 2400 baud because he was using Desqview, and
     running several programs simultaneously.  He installed the 16550,
     and his problems went away.  Another local sysop using an HST
     didn't even have any of the "problem boards" mentioned later in
     this article.  He installed the 16550, and then was able to
     consistently use 19.2K baud with no problems.  His transfer
     efficiency rose from 96% to 115%.
     You can obtain the new 16550a complete with new Multi COM card.
     ($65.00 plus s/h) from Node 66 East BBS 914-426-0729.
     Here are some situations where you *might* benefit from a 16550
     UART while doing high speed transfers with the serial port:
     1) You have a Perstor controller with an older ROM on it. I have
        read that some rom versions take care of the IRQ hog problem.
     2) Your computer is on any kind of network.  Network interface
        cards are notorious for hogging interrupts. (Tho' not all do.)
     3) Your computer is an AT and you are using EXTENDED memory.  The
        AT has to do a reset and takes a lot of time to switch from
        protected mode to real mode when its done with accessing
        extended memory. (Tho' not all AT's have this problem.)
     4) You are running a multi-tasking software like Desqview or
        DoubleDos and are trying to do communications in the
        background, and lose characters when switching windows, or
        have too many background tasks/windows active at the same
        time.
     5) You are a sysop with an HST modem and are getting less than
        100% efficiency on your mail transfers.  Many factors affect
        this, so a 16550 *may* or *may-not* increase your efficiency
        to over 100%.
/data/webs/external/dokuwiki/data/pages/archive/computers/16550a_n.txt · Last modified: 1999/10/13 04:59 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki