Multiport Serial Boards: A Buyer's Guide
Marcio Saito, - April 2000
About this document
This document explains some factors to consider when selecting a multiport serial card.
Choosing the best solution is not simple. There are several aspects of a product that define its "performance". Some of those may or may not be important for your particular application. Service, technical support and cost are also important factors to consider.
Multiport serial cards connect to the expansion slots in the host system (typically a PC) and provide multiple (8 or more) asynchronous serial interfaces. Modems, terminal adapters, dumb terminals and printers are examples of devices that can be connected to serial ports. This document focuses on multiport serial cards for systems based on the ISA and/or PCI bus architecture.
We have made an attempt to keep the analysis as objective and technical as possible. Our purpose is to help you to make a responsible choice when selecting the right product for your application.
Serial Communication
Serial Communication is a method of data transmission in which the bits of a data character are sequentially transmitted over a single channel. Serial communication can be synchronous (with an associated clock being transmitted along with the data) or asynchronous. In this document, we are focusing on asynchronous serial communication.
Serial communication runs over a physical layer defined by a set of specifications known as RS-232.
The RS-232 specifications define the communication between a DTE (Data Terminal Equipment, normally a computer or terminal) and a DCE (Data Communication Equipment, normally a modem). It has traditionally been used to connect terminals, printers and other serial devices to a computer over either modem connections (remotely, over telephone lines) or direct cables (locally, with a null-modem adapter). Serial
communication can be half-duplex (only in one direction at a time) or full-duplex (in both directions at a time). In the past, some modems and communication devices were limited to half-duplex communication. Nowadays, almost all devices support full-duplex.
The RS-232 signals used in asynchronous communication are: TxD (Transmit Data), RxD (Receive Data), Gnd (Signal Ground), DCD (Data Carrier Detect, indicates that the modem connection is established), RTS (Request to Send, used for reception flow control), CTS (Clear to Send, used for transmission flow control), DTR (Data Terminal Ready, indicates that the data terminal is ready, used to enable/hang-up the
modem), DSR (Data Set Ready, indicates that the modem is ready) and RI (Ring Indicator, indicates that someone is trying to dial-in).
Local terminals and printers can operate using only TxD, RxD and Gnd. A CTS connection may be required for HW flow control.
Most of the modem applications require TxD, RxD, Gnd, RTS (used as reverse flow control signal), CTS, DTR and DCD signals. Very specific applications may require RI and DSR.
The RS-232 interface defines communication parameters such as parity, number of bits per character, number of stop-bits and the baud-rate (which determines the speed of the line in bits per second).
In a serial connection, the throughput is the rate of data passing through the communication channel. The maximum throughput is not necessarily the same as the RS-232 serial speed. The actual throughput depends on factors such as the overhead imposed by the communication protocol, the ability of the system to fully utilize the bandwidth provided by the communication channel, the limitations imposed by the
data communication equipment (modem) and/or the communication line (phone system).
The piece of hardware in charge of handling serial communication is the serial controller. The simplest and most common serial controller device is the UART (Universal Asynchronous Receiver/Transmitter). It is used in most of the PC standard serial ports and is also known by its chip identification numbers (8250, 16450, 16550, etc.).
A multiport serial card has multiple serial controllers (one for each channel) and interfaces with the system bus (ISA or PCI). Some cards have on-board co-processor and/or buffers.
The piece of software executing in the host operating system and interfacing directly with the serial hardware is the device driver.
Multiport Serial Cards - Typical Applications
The applications for serial cards include remote access servers, BBS systems, multi-user systems and other special applications.
Remote Access Servers and BBSs
With the broad availability of analog phone lines, RS-232 connections became the most popular media to remotely connect personal computers to the LAN or to the Internet.
- Internet Service Providers (ISPs) offer Internet access to end-users. They can use a stand-alone, dedicated equipment (terminal server), but frequently, for cost and flexibility reasons, use a PC system with a multiport serial card running an operating system with strong networking support and dialup capabilities such as Linux, BSD-derived systems, NT, UNIX. The users typically use a
terminal emulator or WEB browser to interact to a UNIX shell or to use a protocol (such as PPP) to run Internet applications such as e-mail, ftp and WEB browsing.
- Corporations connect remote access server machines to their LANs to offer dialup access to remote users. These remote access servers can be stand-alone, dedicated equipment or an additional PC system with a multiport serial card running remote access software. Linux, UNIX, Microsoft RAS, IBM LAN Distance, Novell AIO are examples of software for remote access servers based on PCs. The users
typically use PCs with Windows to connect from a remote site using a protocol (such as PPP) to consult a database or run client-server applications over the WAN.
- BBS systems consist of a host system with a multiport serial card running a BBS software and providing dialup access. The users typically use terminal emulator software to connect and interact with the BBS shell and perform file uploads/downloads.
In these types of applications, each serial port is connected to one analog modem or ISDN terminal adapter in a modem pool. The number of ports per system typically ranges from a few to 64 or more.
Multiuser Host Systems
A Multiuser Host System runs a multi-user operating system (typically a version of UNIX) and the application (typically a database) allowing users to access the centralized data and share the system resources from terminals connected by serial cables or modem connections.
Serial ports can also be used to connect printers and other serial devices. Because these systems normally use low-speed terminals and the volume of data on the serial lines is low, throughput per line is not an issue. The following features are important in this case: operating system compatibility, expandability and support for high number of ports.
Special Applications
Serial communication is also the most common interface used by data acquisition and process control applications. A custom-developed application running in the host exchanges data with sensors and actuators, printers, readers, terminals and displays. If the system uses a standard operating system, you should verify the existence of the appropriated drivers. Performance is normally not an issue. If a
customized driver/application is needed, you should evaluate the vendor's ability to provide the technical support, software library and tools.
Before Buying a Multiport Serial Card
There are several aspects to be considered when selecting the right multiport serial card:
- Compatibility with the Operating System and Application
- Service and Technical Support
- Performance (maximum serial speed and throughput)
- Host CPU overhead
- Expandability and Number of Ports
- Cost
The next items discuss some of the aspects above.
Operating System and Application Compatibility
All modern operating systems standardize the methods the applications use to access serial ports. Once the device driver for a particular adapter is installed, the application sees the serial port as a standard device and can access it using system calls that are independent from the underlying hardware. This is true for all flavors of UNIX, Linux and Windows.
On those operating systems, application compatibility should be a concern. If you are running a native application and you have a device driver for that particular adapter, they work together.
If the application runs in Linux or one of the BSD-derivatives, verify that the vendor supports the operating system. If the driver is included in the standard kernel distribution, there is not need to download additional files or install patches. This saves you time and trouble during the installation.
In UNIX or Windows, verify whether the serial hardware vendor supports the platform or not and if it provides the necessary drivers in standard format.
In MS-DOS the situation is different. Most of the applications specifically developed for DOS access the serial hardware directly. Because different serial adapters have different hardware architectures, those applications work only with standard UART-based serial ports (COM1, COM2, etc.). Some MS-DOS applications access serial hardware using standard interfaces. The most important of these standards are the
INT14 and Fossil (used by BBS software).
If the application is MS-DOS native and accesses the serial hardware directly, chances are that you are stuck with a dumb serial card.
Developers of application that uses serial communication should use the standard system calls to access the serial ports. This way, the application is hardware independent. If there are very specific needs that require the development of a custom application, verify that the vendor can provide a set of libraries to access the board.
When selecting a serial solution vendor, make sure it gives you a path for future number of ports and performance upgrade. Verify that the vendor supports the driver and that you get unlimited and responsive technical support.
Performance: Throughput and CPU Overhead
When we consider serial communication in a PC host, performance is the composition of two factors:
- Throughput - the serial card must be able to send/receive data at the nominal serial speed without data loss. Higher throughput means better use of the communication lines and better performance of the application.
- Host CPU overhead - the serial card should be able to handle serial communication with minimum host CPU intervention. This way, the host CPU is available to process the applications running in the server, increasing overall system performance.
Throughput is the maximum rate at which the board sends/receives data with no data loss.
One factor that limits the throughput is the maximum serial speed supported (measured in bps and normally within the range 38.4 - 460.8 Kbps). It is important to remember that support to a given serial speed does not mean that the serial card or the system can handle that throughput in a continuous data flow. When throughput is different from serial speed, flow control is
needed and there could be data loss.
Another factor that limits the throughput is the buffering capacity of the board. When the serial port receives characters, it generates a request to the host CPU. The host CPU takes some time (interrupt latency) to respond to the request. If the serial device does not have enough buffering space, its FIFOs overflow and there is data loss. It is easy to see that the maximum throughput of a serial device
depends not only on the serial board itself, but also on the host CPU load, number of ports, etc.
"How many serial ports can I safely install in a system?"
It is very difficult to answer to this question precisely.
The higher is the host CPU power and the buffering capacity of the serial interface, the higher is the number of serial ports you can install. A more "intelligent" board (the concept of "intelligent" is better explained later) allows more serial ports in the same system.
Remember that each serial port in the system means a potential additional user. Memory, CPU, disk space and other system resources need to be dimensioned to support the extra users.
"Is FIFO size the only parameter to evaluate the performance of a serial card?"
Besides the buffering capacity, hardware architecture and efficiency of the device driver heavily affects the functionality and performance of a serial card.
A few examples:
- The simpler serial cards require the use of one IRQ per port. If there are not enough IRQs available in the system, they cannot be used.
- An intelligent board can execute some tasks that would otherwise be executed by the host CPU. This way, it can relieve the host and improve the performance of the system.
- There is no intrinsic performance difference between I/O and memory mapped accesses. But, because it is impossible to use optimized string copy instructions with I/O mapped devices, memory-mapped devices are potentially more efficient when transferring of large amounts of data.
"How much throughput do I need?"
To help you to estimate, here are some directions:
- A V.34 modem normally supports serial speeds up to 115.2 Kbps. The maximum throughput over the phone line is 28.8 Kbps. Because they can do data compression, their serial throughput is higher than that (typical compression ratios are around 2:1). To take full advantage of the line, you need a serial port that can handle at least 57.6 Kbps.
- A dumb terminal normally supports serial speeds up to 38.4 Kbps. Their maximum throughput is normally around 19.2 Kbps (the throughput of a dumb terminal is limited by how fast it can scroll the information on the screen).
- When estimating the aggregated throughput needed in your system, remember that PPP applications (such as e-mail and WEB browsing) produce short bursts of half-duplex data flow. The average throughput required is much lower than the maximum throughput of the line. Interactive sessions are limited by the human user typing and reading and generates very low traffic. Probably the most demanding
applications running over serial lines are file transfers. Even in this case, the traffic is mostly half-duplex.
Intelligent and Dumb Serial Cards
In asynchronous communication each character is processed individually. This requires a lot of processing and is very time consuming. An "intelligent" serial adapter can relieve the host CPU in two ways: (1) by buffering data and minimizing the number of host CPU interventions (interrupts or poll cycles) or (2) by executing some of the tasks that would otherwise be executed by the host (such as
flow control, character processing and buffer copy).
If the serial card has buffering capacity, the host CPU receives fewer interrupts (or has to execute fewer poll cycles) to receive/transmit the same amount of data. On-board buffering capacity (a.k.a. FIFO) ranges from none to a few Kbytes and is very important to minimize CPU overhead and sustain throughput without data loss.
Character processing was very important when connecting terminals to UNIX systems. Because most of the applications today do all the character processing and use the serial ports as "raw" data paths, character processing capabilities are no longer a major issue. But, still, intelligent cards can perform flow control and other functions and relieve the host CPU from these tasks.
Other features such as bus master DMA capability and efficient hardware interface (wider data bus, for example) can help to improve the performance of a serial adapter.
The first IBM-PC used a 8250 chip to control the serial ports. 16450, 16550 and 16650 are improved versions of the same basic serial chip. All these chips are generically known as UARTs (Universal Asynchronous Receiver/Transmitter) and are still used in the standard serial ports of PCs and in several multiport serial products.
Because they integrate only basic serial functionality, boards that use UARTs to control the serial ports without any on-board co-processor assistance are called "non-intelligent", "standard" or "dumb" cards. Their performance is acceptable in low-traffic systems, but degrades quickly as the number of serial ports grows.
The buffering capacity of UARTs ranges from 1 (8250) to 16 (16550) to 32 (16650) bytes per channel.
Besides the low cost, another advantage of using dumb cards is that you normally do not need special device drivers. Almost any operating system that runs in a PC supports UART-based card without additional software.
Several multiport cards are based on "RISC processors" or "custom ASICs". These boards offer better performance. They normally use a small RISC engine with fixed microcode to control the serial ports, buffer the data and execute minimum character processing functions. Buffering capacities range from a few bytes to about 1k characters.
The advantage of using RISC-based cards is the higher performance for a similar price when compared to dumb boards. Their performance is limited in very high-throughput systems because they still have relatively small buffers and because the custom ASICs available in the market today are 8-bit devices designed for the ISA bus.
In the past few years, serial boards with a dedicated co-processor, RAM memory and downloadable firmware lost space in the market to the more affordable RISC-based serial cards. But now, with serial speeds reaching levels not imaginable before and the increasing demand for high throughput connections, using high-end intelligent cards may be the only solution for demanding users.
A high-end intelligent card has a full blown CPU acting as a co-processor and large amounts of on-board RAM. It typically uses 32-bit bus interface and transfer data efficiently to avoid congestion on the system bus. The downloadable firmware assures that evolution is possible.
Selecting the Right Product
This item is a summarizes the aspects discussed in this chapter 2.
For simplicity, we divide serial cards in three classes: "Dumb" (UART-based, without on-board co-processor), "RISC-based" (using chipsets or custom ASICs with embedded RISC engines) and "High-end intelligent" (on-board CPU and RAM memory, using a 32-bit interface). Of course there are variations within each of these classes and the border between
them is not always clear.
The following table gives some directions to select the right multiport serial card for you.
|
Board Type
|
Ports/
System
|
Serial Devices
|
Application
|
Typical User
|
Things to consider
|
Example
|
|
Dumb
|
4-8
|
Terminals, printers, low speed modems
|
TTY emulation, low to medium speed, highly interactive connections
|
Small multiuser systems, small ISPs or BBSes using low speed modems
|
Supported by the native standard serial driver?
|
UART-based serial product
|
|
RISC
|
8-64
|
Terminals and printers 28.8 and 33.6 Kbps modems
|
Medium to high speed, mixed (interactive and downloads) connections
|
Medium and large multiuser systems, ISPs and BBSes using high-speed modems
|
How to expand? Cost. Driver availability
|
|
|
High-end
|
8-128+
|
Terminal, printers, high speed modems, ISDN
|
Demanding users, high-traffic, extremely high number of users
|
Largest multiuser systems, ISP/BBSes with very demanding applications
|
True 32-bit interface? How to expand? Driver availability
|
|
About Cyclades and Cyclades Products
With headquarters in Fremont, California, Cyclades Corporation designs, manufactures and markets connectivity products. The product line includes multiport serial cards, routers, communication adapters and remote access servers.
The multiport serial solutions include the Cyclom-Y (RISC-based, for the ISA and PCI buses, expandable from 8 to 32 ports per slot) and the Cyclades-Z (intelligent PCI adapter, expandable from 8 to 128 ports per slot).
Cyclades is known for its commitment to customer satisfaction. Technical support can be reached by e-mail, fax or phone and is free and unlimited to all customers. Software updates are also free and available at our ftp site. ISPs get special discounts purchasing Cyclades products.
Always innovating, Cyclades was one of the first companies to announce a RISC-based multiport serial card in 1992. In 1994, we were the first company to invest in the then small Open Source market. In 1995 we were the first company to announce a multiport serial card for the PCI bus. In 1996, we announced the first 32-bit bus-master intelligent multiport serial card in the market, the Cyclom-Z.
Cyclades traditionally supports the major UNIX flavors and was the first hardware company to officially support the Linux Operating System. With built-in kernel support (no need to install additional drivers), performance and best technical support, the Cyclades products are still the most popular solution for ISPs using this Operating System.
Because of our large installed base in the ISP market, the Cyclom-Y penetration in the Windows NT and BSD-derived markets is also growing rapidly. Easy installation, great service and flawless operation are always mentioned by Cyclades users as the decisive factors to choose our products.
Cyclom-Y
The Cyclom-Y is the best alternative for users looking for a high-performance and low-cost multiport solution. It is based on CD1400 serial processors (embedded RISC engine and high-performance serial controllers). This card competes in the "RISC based" or "custom ASIC based" segment or serial solutions with the best price/performance
ratio in the market.
The expandable architecture allows you to start with 16 and later expand to 32 ports by just adding an external serial module. Differently from other solutions in the market, the initial investment is preserved when expanding the number of serial ports.
The Cyclom-Y supports up to 115.2 Kbps in all ports and is available in 8-port and expandable models (8 to 32 ports). The expandable model supports both the ISA and PCI system buses. DB-25 and RJ-type connector options are available.
Thanks to its efficient hardware interface, the Cyclom-Y requires fewer instructions to be executed by the host CPU to transfer data from the internal FIFOs to the host memory. This reduces the overhead and improves the global performance of the system.
It has built-in kernel support for Linux, FreeBSD and BSDI operating systems. No need to download extra files or apply patches. Cyclades also provides device drivers for Microsoft Window NT, 95, SCO UNIX, Unixware.
The Cyclom-Y/PCI is Plug&Play compatible. It means that the PCI BIOS allocates the resources for the board automatically. There are no dip-switches or jumpers to set.
The Cyclom-Y/ISA requires only a 8kb window in the memory addressing space and one IRQ shared by all channels on the board. The small window means that you will always be able to install the board in your system without conflicting with other devices
Cyclades-Z
The Cyclades-Z is the ultimate multiport solution for demanding users.
It has an internal 32-bit co-processor (MIPS R3000) which is probably as powerful as the Pentium processor in your system. The on-board RAM (half Megabyte for the 8-port version) leaves plenty of space for buffers (several kilobytes of FIFO per channel).
True, it uses the most advanced UARTs to support 460 Kbps in all serial ports, but the host CPU does not need to worry about that. The on-board co-processor takes care of all interrupts, handles flow control and passes the data to the operating system in the most efficient way using a 4kb buffer (FIFO).
The Cyclades-Z is PCI Plug&Play compatible and does not take any interrupt or I/O address from the host system resources. It uses shared memory in the 32-bit address space (no ISA below-1Mb limitations). It means no conflicts and no installation headaches.
The Cyclades-Z is build based on a full blown 32-bit processor. Serial data is transferred from the board to host memory in 32-bit chunks. The board is also the only in the market with true bus mastering capabilities. All this makes the Cyclom-Z the most efficient and unique multiport serial card
in the market today. The fastest serial communication does not take more than the minimum host CPU overhead and system bus bandwidth.
Other PCI solutions in the market are based on RISC engines or "custom ASICs" designed with an 8-bit ISA I/O interface in mind. Because they are not built from ground up using 32-bit technology, they cannot use all the performance potential of the PCI bus.
The Cyclades-Z is available today in an 8-port version and expandable version up to 64 ports per PCI slot. Drivers for Linux, FreeBSD, Windows and SCO UNIX are available.