UARTs


What is it

UARTs (Universal Asynchronous Receiver/Transmitters) are chips that control the manage the communication between the computer and serial devices, such as mice and modems.

UARTs have First-In, First Out (FIFO) buffers. A FIFO buffer is like a line of reluctant lemmings on a cliff:

The first one gets to the edge and then stops.

The next one gets up behind the first and stops, and so on.

Eventually, they'll run out of room. At that point, unless the first lemming is removed, the next lemming that runs up will push the line up one, which bumps the first one over the cliff--lost forever.


Types of UARTs

The first UART made was the 8250. This was quickly followed by the 16450. However, both of these only have a 1-byte FIFO buffer. That means if more than a byte of data came in before the computer can look at it, the older data is lost.

The above problem was solved with the 16550A UARTs. These chips have a 16-byte buffer.


UART Problems

Most computers come with the UART chip built onto the motherboard. Others have it on a Input/Output (I/O) card. Some have it put on a hard drive controller card.

One of the advantages of an internal modem is that it comes with it's own UART chip built in. External modems, however, need to rely on whaever the computer is using.

Some 486 computers made even a year ago came with only 8250 UARTs.

With an 8250 UART, you can safely do 14.4 kbps connections with no problems, using DOS.

Typically, you can keep a connection with a 14.4 modem in Windows. However, it may be slow. If you try to use a faster modem, you'll be lucky to get and stay connected. Even if they do, it'll probably seem slower than a 14.4 connection.

The reason is that data is coming in faster than the computer can handle. Windows is a multi-tasking environment. The computer (it's CPU actually) devotes a certain amount of time to a certain process, including the devices attached to the computer and the operating system itself. If the computer is low on RAM and/or running a lot of programs/devices at once, it can take a while for the computer to come back to the modem.

Remember the lemmings above? If the computer takes too long to get the data from the modem, some of that data will be lost.
Now remember that the 8250 and 16450 only have a 1-byte buffer. That doesn't give the modem much storage capacity. A lot of data will get lost in the time between when the computer checks the modem. That data will need to be resent and at least part of resent data will suffer the same fate. If enough data is lost, the modems will drop the connection.


Diagnosing the Problem

Note: This only affects PCs with external modems. UARTs are not a factor in Macintosh and internal modems.

Windows 3.1

  1. Exit completely out of Windows to get to DOS.
  2. Type in MSD and hit Enter.
  3. Select Com Ports from the list in the MSD window.
  4. Find the port the modem is on (the one that says YES for both Data Set Ready and Clear To Send).
  5. At the bottom of the listing for that com port is the UART used.

Windows 95

  1. Go to Start--Settings--Control Panels.
  2. Double click on the Modems control panel.
  3. Click on the Diagnostics tab.
  4. Highlight the com port the modem is on and click on More Info.
  5. About the middle of the box that comes up, it will say what UART is being used.


Fixing the Problem

There's no way for us to solve this problem. There are only two solutions:

1. Replace the UART used--typically this can be done by getting and installing an I/O card. However, there are some computers where this is not a viable option.

2. Get an internal modem--since internal modems come with a built in UARTs, the one that computer has isn't used.


Win95 Issues

Win95 has special advanced settings which manage the 16550 UARTs. Unfortunately, the default settings can lead to connection problems and slowness, even for internal modems.

In the Modem control panel, if you go to Properties, the Connection tab, and click on Port Settings, you can see Win95's UART management. What it consists of is two slidebars which can be used to set how full the incoming and outgoing buffers are before sending notice to the computer to do something with the data stored there.

However, just because the an attention request is sent to the computer, that doesn't mean the computer is going to drop whatever it's doing to clear out the UART's buffer. By the time the computer does get to the modem, data might have been lost. Thus, again, we have problems with slowness, disconnects, and general flakiness.

The solution is to drop the slide bars down to Low or the notch above Low. This usually allows the computer enough time to get the data in the buffer before it gets erased.


Back to the Modem page