Review: Intelligent Multiport Serial Boards
If you are planning on supporting a cluster of terminals, a modem pool for a BBS, a SLIP/PPP server, or a UUCP site, you might find yourself quickly running out of serial ports. Standard PC serial ports are limited to four ports, so chances are if you need more than four ports you may be considering buying multiport boards. There are many factors to consider when adding multiport serial boards to your machine. As modems get faster and faster, I/O throughput has become an increasingly important factor. It's also important to consider CPU usage when adding a large number of ports. As you add more ports, the host CPU will have to spend more time doing serial I/O.
There are two basic types of serial boards: “UART-based” (Universal Asyncronous Receiver Transmitter) and “intelligent”. Standard PC serial boards (COM1-COM4) typically come with 8250 or 16450 UARTs with a one-byte transmit and receive FIFO (buffer), or 16550A UARTs with sixteen-byte transmit and receive FIFOs. Boards such as the Boca 2016 and the AST Fourport use these types of UARTs in a multiport board configuration.
Most of these types of boards are supported by the standard Linux serial driver, since they all use the same types of UART and I/O technique. Due to limited FIFO size, and the fact that all character processing must be done by the host CPU, a UART-based serial board might not be sufficient to provide the I/O power you need, for example, to drive a high-speed modem bank.
This is where the intelligent multiport serial boards are useful. These boards have serial port controllers with larger FIFOs and with some sort of “intelligence”, such as RISC UARTs with some character recognition and flow control logic. Some may even have a CPU of their own to handle serial I/O. Since these boards vary in chipsets and control logic, a driver must be written for each board for use with Linux. With the old tty driver (which provides the abstract, general handling for all terminal devices, including serial, console, and pseudo-tty's), support for intelligent multiport boards was nearly impossible.
In the 1.1 Linux development kernel, Ted Ts'o (the maintainer of the serial driver and the tty driver) rewrote the generic tty driver to allow support for many kinds of serial devices, improving the serial drivers in the process. Since then, several drivers for intelligent multiport boards have been written, and more are being developed. In this issue, I'll be reviewing 8-port intelligent serial boards supplied by four manufacturers: Comtrol, Cyclades, Digi International, and Stallion Technologies. For vendor contact information, please see the Vendor Contact Information. Now let's look at each board in detail.
The following 8-port serial boards were sent to me for review. It should be noted that many other models of the boards, with different port configurations and I/O capabilities, are supported under Linux in addition to the ones I reviewed. A list of supported boards can be found in table 1. In the Control Signals column of table 1, MC stands for “RS232 modem control” and HWC stands for full “RS232 hardware flow control”. In the Max speed column, all figures are in bps.
The RocketPort RA (Remote Access) 8 series of boards features two 36 MHz ASICs (Application Specific Integrated Circuits) with 256-byte transmit FIFOs and 1024-byte receive FIFOs for each port, and built in flow control and line discipline handling. The ASICs also handle other functions, such as the bus interface logic and other miscellaneous logic, significantly reducing the number of components on the board.
RocketPort RA 8 boards support full RS232D modem and hardware flow control signals at speeds up to 230.4 Kbps. Four RocketPort RA 8 boards can be installed in one system. The first requires a 68 byte I/O address range, and each additional board requires a 64 byte I/O address range. I/O address ranges are selectable from 0x100, 0x140, 0x180, 0x200, 0x240, 0x280, 0x300, 0x340, 0x380 and are set with a DIP switch. No IRQ is needed for any of the boards. The driver comes in the form of a loadable module and is supported by Comtrol. The RocketPort RA 8 series features the RocketPort RA Octacable, which includes an octopus cable with DB25 connectors, at US $499.00, and the RocketPort 8 RA, which includes a connector box with DB25 connectors, is priced at US $678.00.