Serial communication
In telecommunication and computer science, serial communication is the process of sending data one bit at one time, sequentially, over a communication channel or computer bus. This is in contrast to parallel communication, where several bits are sent together (on a link comprising of several wired channels in parallel).
Serial communication is used for all long-haul communication and most computer networks, where the cost of cable and synchronization difficulties make parallel communication impractical. At shorter distances, serial computer buses are becoming more common because of a tipping point where the disadvantages of parallel busses (clock skew, interconnect density) outweigh their advantage of simplicity (no need for serializer and deserializer (SERDES)). Improved technology to ensure signal integrity and to transmit and receive at a sufficiently high speed per lane have made serial links competitive. The migration from PCI to PCI-Express is an example.
Teletype systems
Standard teletype systems evolved as an automated telegraphy system called telex. Originally, a rotating mechanical commutator (a rotating switch) was started by a "start bit". The commutator would distribute the other bits to set relays that would pull on solenoids which would cause the mechanism to print a figure on paper. The routing was automated with rotary electromechanical dialing systems like those used in early telephone systems. When computers became commonplace, these serial communication systems were adapted using I/O devices called serial ports that used UARTs. The development of communication hardware had a deep continuing impact on the nature of software and operating systems, both of which usually arrange data as sequences of characters.
Serial buses
Integrated circuits are more expensive when they have more pins. To reduce the pins, many ICs use a serial bus to transfer data when speed is not important. Some examples of such low-cost serial buses include SPI, I²C, and 1-Wire.
Serial versus parallel
The communication links across which computers—or parts of computers—talk to one another may be either serial or parallel. A parallel link transmits several streams of data (perhaps representing particular bits of a stream of bytes) along multiple channels (wires, printed circuit tracks, optical fibres, etc.); a serial link transmits a single stream of data.
At first sight it would seem that a serial link must be inferior to a parallel one, because it can transmit less data on each clock tick. However, it is often the case that serial links can be clocked considerably faster than parallel links, and achieve a higher data rate. A number of factors allow serial to be clocked at a greater rate:
- Clock skew between different channels is not an issue (for unclocked asynchronous serial communication links)
- A serial connection requires fewer interconnecting cables (e.g. wires/fibres) and hence occupies less space. The extra space allows for better isolation of the channel from its surroundings
- Crosstalk is less of an issue, because there are fewer conductors in proximity.
In many cases, serial is a better option because it is cheaper to implement. Many ICs have serial interfaces, as opposed to parallel ones, so that they have fewer pins and are therefore cheaper.
Examples of serial communication architectures
- Morse code telegraphy
- RS-232 (low-speed, implemented by Serial Ports)
- RS-423
- RS-485
- Universal Serial Bus (moderate-speed, for connecting computers to peripherals)
- FireWire
- Ethernet
- Fibre Channel (high-speed, for connecting computers to mass storage devices)
- InfiniBand (very high speed, broadly comparable in scope to PCI)
- MIDI control of electronic musical instruments
- DMX512 control of theatrical lighting
- Serial Attached SCSI
- Serial ATA
- PCI Express
- SONET and SDH (high speed telecommunication over optical fibers)
- T-1, E-1 and variants (high speed telecommunication over copper pairs)
(see additional examples in Computer bus)
There are a number of serial communication standards which, while significantly at variance with the RS-232 standard, are casually and incorrectly called "RS-232".
See also
- List of device bandwidths
- Comparison of synchronous and asynchronous signalling
- Asynchronous serial communication
- Parallel communication, to be contrasted with serial communication.
External links
- Serial Interface Tutorial for Robotics (contains many practical examples)
- Serial interfaces listing (with pinouts)
- Wiki:SerialPorts