105 lines
5.7 KiB
Plaintext
105 lines
5.7 KiB
Plaintext
|
|
||
|
|
||
|
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%.
|
||
|
|
||
|
|