Serial communications
From Wikipedia, the free encyclopedia
In telecommunications and computer science, serial communications is the process of sending data one bit at one time, sequentially, over a communications channel or computer bus. This is in contrast to parallel communications, where all the bits of each symbol are sent together. Serial communications is used for all long-haul communications and most computer networks, where the cost of cable and synchronization difficulties make parallel communications impractical. Serial computer buses are becoming more common as improved technology enables them to transfer data at higher speeds.
Contents |
[edit] 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 communications hardware had a deep continuing impact on the nature of software and operating systems, both of which usually arrange data as sequences of characters.
[edit] 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, I2C, and 1-Wire.
[edit] Serial versus parallel
The communications 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 serial 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.
[edit] Examples of serial communication architectures
- Morse code telegraphy
- RS-232 (low-speed, implemented by Serial Ports)
- RS-485
- Universal Serial Bus (moderate-speed, for connecting computers to peripherals)
- FireWire
- 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
(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".
[edit] Common Baud Rates
By far the most common RS-232 baud rates are powers of two times 300 or 900 baud. The 300-baud series includes 75, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, and 76800 baud, all of which have been in common use at some time, although rates below 9600 baud are rarely used as of 2006. The 900-baud series includes 1800, 3600, 7200, 14400, 28800, 57600, 115200 and 230400 baud; the 57600 and 115200 baud rates are the most common as of 2006. These latter baud rates are artifacts of the clock generator design in the serial port of the IBM PC.
Note that the higher data rates are not strictly RS-232 compatible, as they require violating the RS-232 slew rate specification.
[edit] Bit significance
Although framing and bit order are not specified in the standard, common RS-232 compatible devices usually transmit the least-significant bit first, immediately after the start bit, and the most-significant bit is transmitted last, followed by a parity bit, if any. Sending less than 8 bits per character frame is uncommon, although that may take the form of 7 bits plus parity.
[edit] Parity
It is common to add a trailing parity bit to detect transmission errors. Both even parity and odd parity are widely used. Parity may be added to 7 data bits, making 8 bits in total, or to 8 data bits, making 9 bits in total. Most UARTs can generate parity automatically when transmitting and verify it when receiving.
Sometimes seen is mention of "mark parity" or "space parity", where the parity bit is sent with a fixed value and has no error-detecting value. This is not generally used except when impementing 9-bit characters.
[edit] 9-bit characters
A common protocol used to connect embedded systems sends data over RS-232 with 8 data bits plus a 9th high-order address bit. A byte with the address bit set to 1 specifies a destination to which following data bytes, with the address bit set to 0, are directed. Many microcontroller UARTs provide facilities for ignoring non-address bytes when desired.
Parity, if used, is a 10th bit added after the address bit.
[edit] RTS/CTS handshaking
The official RS-232 use of the RTS and CTS lines is asymmetrical. The DTE asserts RTS to indicate a desire to transmit and the DCE asserts CTS in response to grant permission. This allows for half-duplex modems that disable their transmitters when not required, and must transmit a synchronization preamble to the receiver when they are re-enabled. There is no way for the DTE to indicate that it is unable to accept data from the DCE.
A non-standard symmetrical alternative is far more widely used: CTS indicates permission from the DCE for the DTE to transmit, and RTS indicates permission from the DTE for the DCE to transmit. The "request to transmit" is implict and continuous.
[edit] 3-wire and 5-wire RS-232
A minimal "3-wire" RS-232 port consisting only of transmit data, receive data, and ground, is commonly used when the full facilities of RS-232 are not required. When only flow control is required, the RTS and CTS lines are added in a 5-wire version.
[edit] See also
- List of device bandwidths
- Comparison of synchronous and asynchronous signalling
- Asynchronous serial communication
[edit] External links
de:Serielle Schnittstelle fr:Communication série ms:Komunikasi bersiri nl:Serieel (informatica)

