COM (hardware interface)



COM (communication port) is the original, yet still common, name of the serial port interface on PC-compatible computers. It can refer not only to physical ports, but also to emulated ports, such as ports created by Bluetooth or USB adapters.

History
The name for the COM port started with the original IBM PC. IBM had called the four well-defined communication RS-232 ports the "COM" ports, starting from COM1 through COM4. In BASICA and PC DOS you can open these ports as "COM1:" through "COM4:", and all PC compatibles using MSDOS used the same denotation. Most PC-compatible computers in the 1980s and 1990s had one or two COM ports.

By 2007, most computers shipped with only one or no physical COM ports. Today, few consumer-grade PC-compatible computers include COM ports, though some of them do still include a COM header on the motherboard.

After the RS-232 COM port was removed from most consumer-grade computers, an external USB-to-UART serial adapter cable was used to compensate for the loss. A major supplier of these chips is FTDI.

I/O addresses
The COM ports are interfaced by an integrated circuit such as 16550 UART. This IC has seven internal 8-bit registers which hold information and configuration data about which data is to be sent or was received, the baud rate, interrupt configuration and more. In the case of COM1, these registers can be accessed by writing to or reading from the I/O addresses 0x3F8 to 0x3FF.

If the CPU, for example, wants to send information out on COM1, it writes to I/O port 0x3F8, as this I/O port is "connected" to the UART IC register which holds the information that is to be sent out.

The COM ports in PC-compatible computers are typically defined as:
 * COM1: I/O port 0x3F8, IRQ 4
 * COM2: I/O port 0x2F8, IRQ 3
 * COM3: I/O port 0x3E8, IRQ 4
 * COM4: I/O port 0x2E8, IRQ 3