COM (hardware interface)
COM (Communication port[1]) is the original, yet still common, name of the serial port interface on IBM PC-compatible computers. It might refer not only to physical ports, but also to virtual ports, such as ports created by Bluetooth or USB-to-serial adapters.
History
Most PC-compatible computers in the 1980s and 1990s had one or two COM ports. As of 2007, most computers ship with one or no physical COM ports. As of 2014, most PC-compatible computers don't include any COM ports. A lot of them do still include a COM header.
After the RS-232 COM port was removed from most IBM PC compatible computers in the 2000s, an external USB-to-UART serial adapter cable was used to compensate for the loss. A major supplier of these chips is FTDI.[2]
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 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
See also
References
- ↑ "Configuring a communication port". IBM Lotus Domino and Notes Information Center. Retrieved 17 September 2013.
- ↑ Products; FTDI.
Further reading
- Serial Port Complete: COM Ports, USB Virtual COM Ports, and Ports for Embedded Systems; 2nd Edition; Jan Axelson; Lakeview Research; 380 pages; 2007; ISBN 978-1-931-44806-2.
External links
- How to Interface Hardware in COM ports
- Java Simple Serial Connector - library for work with serial ports from Java. Support Windows: Win98-Win8(32-bit and 64-bit), Linux(x86, x86-64, ARM(soft and hard float)), Mac OS X: 10.5-10.8(x86, x86-64, PPC and PPC64), Solaris OS(x86, x86-64).