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 -----