Serial Data Transfer
/ As an example of serial data transfer using the shift register approach, a set of four shifts triggered by clock pulses places the contents of the X-register into the Y-register. Since four clock cycles are needed, it is much slower than parallel transfer, but is simpler and cheaper.In circuit designs, clock skew (sometimes timing skew) is a phenomenon in synchronous circuits in which the clock signal (sent from the clock circuit) arrives at different components at different times.
As the clock rate of a circuit increases, timing becomes more critical and less variation can be tolerated if the circuit is to function properly.
Maheshwari, N., and Sapatnekar, S.S., Timing Analysis and Optimization of Sequential Circuits, Kluwer, 1999.
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 with several parallel channels. 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 buses (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.
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.
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 less expensive.
By convention, bus and network speeds are denoted either in bit/s (bits per second) or byte/s (bytes per second). In general, parallel interfaces are quoted in byte/s and serial in bit/s. The more commonly used is shown below in bold type.
On devices like modems, bytes may be more than 8 bits long because they may be individually padded out with additional start and stop bits; the figures below will reflect this. Where channels use line codes (such as Ethernet, Serial ATA and PCI Express), quoted speeds are for the decoded signal.
The figures below are simplex speeds, which may conflict with the duplex speeds vendors sometimes use in promotional materials. Where two values are listed, the first value is the downstream rate and the second value is the upstream rate.
All quoted figures are in metric decimal units, where:
- 1 byte = 8 bits
- 1 kbit = 1,000 bits
- 1 Mbit = 1,000,000 bits
- 1 Gbit = 1,000,000,000 bits
- 1 kB = 1,000 bytes
- 1 MB = 1,000,000 bytes
- 1 GB = 1,000,000,000 bytes
- 1 TB = 1,000,000,000,000 bytes
Wireless networks
802.11 networks are half-duplex; all stations share the medium. In access point mode, all traffic has to pass through the AP (Access Point). Thus, two stations on the same AP which are communicating with each other must have each and every frame transmitted twice: from the sender to the access point, then from the access point to the receiver. This approximately halves the effective bandwidth.
Device / Speed (bit/s) / Speed (byte/s)802.11 (legacy) 0.125 / 2.0 Mbit/s / 0.25 MB/s
802.11b DSSS 0.125 / 11.0 Mbit/s / 1.375 MB/s
802.11b+ (TI-proprietary extension to 802.11b, non-IEEE standard[22][23]) DSSS 0.125 / 44.0 Mbit/s / 5.5 MB/s
802.11a 0.75 / 54.0 Mbit/s / 6.75 MB/s
802.11g OFDM 0.125 / 54.0 Mbit/s / 6.75 MB/s
802.16 (WiMAX) / 70.0 Mbit/s / 8.75 MB/s
802.11g with Super G (Atheros-proprietary extension to 802.11g) DSSS 0.125 / 108.0 Mbit/s / 13.5 MB/s
802.11g with 125HSM (a.k.a. Afterburner, Broadcom-proprietary extension to 802.11g) / 125.0 Mbit/s / 15.625 MB/s
802.11g with Nitro (Conexant-proprietary extension to 802.11g) / 140.0 Mbit/s / 17.5 MB/s
802.11n / Varies, 600.0 Mbit/s Max / Varies, 75 MB/s Max
Wireless personal area networks
Device / Speed (bit/s) / Speed (byte/s)IrDA-Control / 72 kbit/s / 9 kB/s
IrDA-SIR / 115.2 kbit/s / 14 kB/s
802.15.4 (2.4GHz) / 250 kbit/s / 31.25 kB/s
Bluetooth 1.1 / 1,000 kbit/s / 125 kB/s
Bluetooth 2.0+EDR / 3,000 kbit/s / 375 kB/s
IrDA-FIR / 4,000 kbit/s / 510 kB/s
IrDA-VFIR / 16,000 kbit/s / 2,000 kB/s
IrDA-UFIR / 100,000 kbit/s / 12,500 kB/s
Bluetooth 3.0 / 480,000 kbit/s / 60,000 kB/s
WUSB-UWB / 480,000 kbit/s / 60,000 kB/s
Computer buses
Device / Speed (bit/s) / Speed (byte/s)I2c / 3.4 Mbit/s / 425 kB/s
ISA 8-Bit/4.77MHz[24] / 9.6 Mbit/s / 1.2 MB/s
Zorro II 16-Bit/7.14MHz[25] / 28.56 Mbit/s / 3.56 MB/s
ISA 16-Bit/8.33MHz[24] / 42.4 Mbit/s / 5.3 MB/s
Low Pin Count / 133.33 Mbit/s / 16.67 MB/s
HP-Precision Bus / 184 Mbit/s / 23 MB/s
EISA 8-16-32bits/8.33MHz / 320 Mbit/s / 32 MB/s
VME64 32-64bits / 400 Mbit/s / 40 MB/s
NuBus 10MHz / 400 Mbit/s / 40 MB/s
DEC TURBOchannel 32-bit/12.5MHz / 400 Mbit/s / 50 MB/s
MCA 16-32bits/10MHz / 660 Mbit/s / 66 MB/s
NuBus90 20MHz / 800 Mbit/s / 80 MB/s
Sbus 32-bit/25MHz / 800 Mbit/s / 100 MB/s
DEC TURBOchannel 32-bit/25MHz / 800 Mbit/s / 100 MB/s
VLB 32-bit/33MHz / 1,067 Mbit/s / 133.33 MB/s
PCI 32-bit/33MHz / 1,067 Mbit/s / 133.33 MB/s
HP GSC-1X / 1,136 Mbit/s / 142 MB/s
Zorro III[26][27][28] 32-Bit/37.5MHz / 1,200 Mbit/s / 150 MB/s
Sbus 64-bit/25MHz / 1,600 Mbit/s / 200 MB/s
PCI Express 1.0 (x1 link)[29] / 2,000 Mbit/s / 250 MB/s
HP GSC-2X / 2,048 Mbit/s / 256 MB/s
PCI 64-bit/33MHz / 2,133 Mbit/s / 266.7 MB/s
PCI 32-bit/66MHz / 2,133 Mbit/s / 266.7 MB/s
AGP 1x / 2,133 Mbit/s / 266.7 MB/s
HIO bus / 2,560 Mbit/s / 320 MB/s
PCI Express 1.0 (x2 link)[29] / 4,000 Mbit/s / 500 MB/s
AGP 2x / 4,266 Mbit/s / 533.3 MB/s
PCI 64-bit/66MHz / 4,266 Mbit/s / 533.3 MB/s
PCI-X DDR 16-bit / 4,266 Mbit/s / 533.3 MB/s
PCI 64-bit/100MHz / 6,399 Mbit/s / 800 MB/s
RapidIO (1 lane) / 6,500 Mbit/s / 812,5 MB/s
PCI Express 1.0 (x4 link) / 8,000 Mbit/s / 1,000 MB/s
AGP 4x / 8,533 Mbit/s / 1,067 MB/s
PCI-X 133 / 8,533 Mbit/s / 1,067 MB/s
PCI-X QDR 16-bit / 8,533 Mbit/s / 1,067 MB/s
InfiniBand single 4X[21] / 8,000 Mbit/s / 1,000 MB/s
UPA / 15,360 Mbit/s / 1,920 MB/s
PCI Express 1.0 (x8 link)[29] / 16,000 Mbit/s / 2,000 MB/s
AGP 8x / 17,066 Mbit/s / 2,133 MB/s
PCI-X DDR / 17,066 Mbit/s / 2,133 MB/s
HyperTransport (800MHz, 16-pair) / 25,600 Mbit/s / 3,200 MB/s
HyperTransport (1GHz, 16-pair) / 32,000 Mbit/s / 4,000 MB/s
PCI Express 1.0 (x16 link)[29] / 32,000 Mbit/s / 4,000 MB/s
PCI Express 2.0 (x8 link)[30] / 32,000 Mbit/s / 4,000 MB/s
PCI-X QDR / 34,133 Mbit/s / 4,266 MB/s
AGP 8x 64-bit / 34,133 Mbit/s / 4,266 MB/s
PCI Express (x32 link)[29] / 64,000 Mbit/s / 8,000 MB/s
PCI Express 2.0 (x16 link)[30] / 64,000 Mbit/s / 8,000 MB/s
PCI Express 2.0 (x32 link)[30] / 128,000 Mbit/s / 16,000 MB/s
QuickPath Interconnect (2.4GHz) / 153,600 Mbit/s / 19,200 MB/s
HyperTransport (2.8GHz, 32-pair) / 179,200 Mbit/s / 22,400 MB/s
QuickPath Interconnect (3.2GHz) / 204,800 Mbit/s / 25,600 MB/s
HyperTransport 3.1 (3.2GHz, 32-pair) / 409,600 Mbit/s / 51,200 MB/s
[edit]Portable
Device / Speed (bit/s) / Speed (byte/s)PC Card 16 bit 255ns Byte mode / 31.36 Mbit/s / 3.92 MB/s
PC Card 16 bit 255ns Word mode / 62.72 Mbit/s / 7.84 MB/s
PC Card 16 bit 100ns Byte mode / 80 Mbit/s / 10 MB/s
PC Card 16 bit 100ns Word mode / 160 Mbit/s / 20 MB/s
PC Card 32 bit (CardBus) Byte mode / 267 Mbit/s / 33.33 MB/s
ExpressCard 1.2 USB 2.0 mode / 480 Mbit/s / 60 MB/s
PC Card 32 bit (CardBus) Word mode / 533 Mbit/s / 66.66 MB/s
PC Card 32 bit (CardBus) DWord mode / 1,067 Mbit/s / 133.33 MB/s
ExpressCard 1.2 PCI Express mode / 2,500 Mbit/s / 312.5 MB/s
ExpressCard 2.0 USB 3.0 mode / 4,800 Mbit/s / 600 MB/s
ExpressCard 2.0 PCI Express mode / 5,000 Mbit/s / 625 MB/s
[edit]Storage
Device / Speed (bit/s) / Speed (byte/s)PC Floppy Disk Controller (1.44MB) / 0.5 Mbit/s / 0.062 MB/s
CD Controller (1x) / 1.171875 Mbit/s / 0.146484375 MB/s
MFM / 5 Mbit/s / 0.625 MB/s
RLL / 7.5 Mbit/s / 0.9375 MB/s
DVD Controller (1x) / 11.1 Mbit/s / 1.32 MB/s
ESDI / 24 Mbit/s / 3 MB/s
ATAPIO Mode 0 / 26.4 Mbit/s / 3.3 MB/s
HD DVD Controller (1x) / 36 Mbit/s / 4.5 MB/s
Blu-ray Controller (1x) / 36 Mbit/s / 4.5 MB/s
SCSI (Narrow SCSI) (5MHz)[31] / 40 Mbit/s / 5 MB/s
ATA PIO Mode 1 / 41.6 Mbit/s / 5.2 MB/s
ATA PIO Mode 2 / 66.4 Mbit/s / 8.3 MB/s
Fast SCSI (8 bits/10MHz) / 80 Mbit/s / 10 MB/s
ATA PIO Mode 3 / 88.8 Mbit/s / 11.1 MB/s
iSCSI over Fast Ethernet / 100 Mbit/s / 12.5 MB/s
ATA PIO Mode 4 / 133.3 Mbit/s / 16.7 MB/s
Fast Wide SCSI (16 bits/10MHz) / 160 Mbit/s / 20 MB/s
Ultra SCSI (Fast-20 SCSI) (8 bits/20MHz) / 160 Mbit/s / 20 MB/s
Ultra DMAATA 33 / 264 Mbit/s / 33 MB/s
Ultra Wide SCSI (16 bits/20MHz) / 320 Mbit/s / 40 MB/s
Ultra-2 SCSI 40 (Fast-40 SCSI) (8 bits/40MHz) / 320 Mbit/s / 40 MB/s
Ultra DMA ATA 66 / 528 Mbit/s / 66 MB/s
Ultra-2 wide SCSI (16 bits/40MHz) / 640 Mbit/s / 80 MB/s
Serial Storage Architecture SSA / 640 Mbit/s / 80 MB/s
Ultra DMA ATA 100 / 800 Mbit/s / 100 MB/s
Fibre Channel 1GFC (1.0625GHz)[32] / 850 Mbit/s / 106.25 MB/s
iSCSI over Gigabit Ethernet / 1,000 Mbit/s / 125 MB/s
Ultra DMA ATA 133 / 1,064 Mbit/s / 133 MB/s
Ultra-3 SCSI (Ultra 160 SCSI; Fast-80 Wide SCSI) (16 bits/40MHz DDR) / 1,280 Mbit/s / 160 MB/s
Serial ATA (SATA-150)[33] / 1,200 Mbit/s / 150 MB/s
Fibre Channel 2GFC (2.125GHz)[32] / 1,700 Mbit/s / 212.5 MB/s
Serial ATA 2 (SATA-300)[33] / 2,400 Mbit/s / 300 MB/s
Serial Attached SCSI (SAS)[33] / 2,400 Mbit/s / 300 MB/s
Ultra-320 SCSI (Ultra4 SCSI) (16 bits/80MHz DDR) / 2,560 Mbit/s / 320 MB/s
Fibre Channel 4GFC (4.25GHz)[32] / 3,400 Mbit/s / 425 MB/s
Serial ATA (SATA-600)[33] / 4,800 Mbit/s / 600 MB/s
Serial Attached SCSI (SAS) 2[33] / 4,800 Mbit/s / 600 MB/s
Ultra-640 SCSI (16 bits/160MHz DDR) / 5,120 Mbit/s / 640 MB/s
Fibre Channel 8GFC (8.50GHz)[32] / 6,800 Mbit/s / 850 MB/s
iSCSI over 10GbE / 10,000 Mbit/s / 1,250 MB/s
FCoE over 10GbE / 10,000 Mbit/s / 1,250 MB/s
iSCSI over InfiniBand 4x / 40,000 Mbit/s / 5,000 MB/s
iSCSI over 100G Ethernet (hypothetical)[citation needed] / 100,000 Mbit/s / 12,500 MB/s
A wide variety of different wireless data technologies now exist, some in direct competition with one another, others designed to be optimal for specific applications. Wireless technologies can be evaluated by a variety of different metrics described below.
Of the standards evaluated, these can be grouped as follows:
UWB, Bluetooth, ZigBee, and Wireless USB are intended for use as so called Wireless PAN systems. They are intended for short range communication between devices typically controlled by a single person. A keyboard might communicate with a computer, or a mobile phone with a handsfree kit, using any of these technologies.
WiFi is the most successful system intended for use as a WLAN system. A WLAN is an implementation of a LAN over a microcellular wireless system. Such systems are used to provide wireless Internet access (and access to other systems on the local network such as other computers, shared printers, and other such devices) throughout a private property. Typically a WLAN offers much better bandwidth and latency than the user's Internet connection, being designed as much for local communication as for access to the Internet, and while WiFi may be offered in many places as an Internet access system, access speeds are usually more limited by the shared Internet connection and number of users than the technology itself. Other systems that provide WLAN functionality include DECT and HIPERLAN.
GPRS, EDGE and 1xRTT are bolt-ons to existing 2Gcellular systems, providing Internet access to users of existing 2G networks (it should be noted that technically both EDGE and 1xRTT are 3G standards, as defined by the ITU, but are generally deployed on existing networks.) 3G systems such as EV-DO, W-CDMA (including HSDPA and HSUPA) provide combined circuit switched and packet switched data and voice services as standard, usually at better data rates than the 2G extensions. All of these services can be used to provide combined mobile phone access and Internet access at remote locations. Typically GPRS and 1xRTT are used to provide stripped down, mobile phone oriented, Internet access, such as WAP, multimedia messaging, and the downloading of ring-tones, whereas EV-DO and HSDPA's higher speeds make them suitable for use as a broadband replacement.
Pure packet-switched only systems can be created using 3G network technologies, and UMTS-TDD is one example of this. Alternatively, next generation systems such as WiMAX also provide pure packet switched services with no need to support the circuit switching services required for voice systems. WiMAX is available in multiple configurations, including both NLOS and LOS variants. UMTS-TDD, WiMAX, and proprietary systems such as Canopy are used by Wireless ISPs to provide broadband access without the need for direct cable access to the end user.
Some systems are designed for point-to-point line-of-sight communications, such as RONJA and IrDA; once 2 such nodes get too far apart to directly communicate, they can no longer communicate. Other systems are designed to form a wireless mesh network using one of a variety of routing protocols. In a mesh network, when 2 nodes get too far apart to directly communicate, they can still indirectly communicate through intermediate nodes.
Frequency
Allocated FrequenciesStandard / Frequencies / Spectrum Type
UMTS over W-CDMA / 850 MHz, 1.9, 1.9/2.1, and 1.7/2.1 GHz / Licensed (Cellular/PCS/3G/AWS)
UMTS-TDD / 450, 850 MHz, 1.9, 2, 2.5, and 3.5 GHz[3]
2 GHz / Licensed (Cellular, 3G TDD, BRS/IMT-ext, FWA)
Unlicensed (see note)
CDMA2000 (inc. EV-DO, 1xRTT) / 450, 850, 900 MHz 1.7, 1.8, 1.9, and 2.1 GHz / Licensed (Cellular/PCS/3G/AWS)
EDGE/GPRS / 850 MHz 900 MHz 1.8 GHz 1.9 GHz / Licensed (Cellular/PCS/PCN)
iBurst / 1.8, 1.9 and 2.1 GHz / Licensed
Flash-OFDM / 450 and 870 MHz / Licensed
802.16e / 2.3, 2.5, 3.5, 3.7 and 5.8 GHz / Licensed
802.11a / 5.25, 5.6 and 5.8 GHz / Unlicensed 802.11a and ISM
802.11b/g/n / 2.4 GHz / Unlicensed ISM
Bluetooth / 2.4 GHz / Unlicensed ISM
Wibree / 2.4 GHz / Unlicensed ISM
ZigBee / 868 MHz, 915 MHz, 2.4 GHz / Unlicensed ISM
Wireless USB, UWB / 3.1 to 10.6 GHz / Unlicensed Ultrawideband
EnOcean / 868.3 MHz / Unlicensed ISM
Serial communication is a popular means
of transmitting data between a computer and a peripheral device
such as a programmable instrument or even another
computer. Serial communication uses a transmitter to send data,
one bit at a time, over a single communication line to a
receiver. You can use this method when data transfer rates are
low or you must transfer data over long distances. Serial
communication is popular because most computers have one or more
serial ports, so no extra hardware is needed other than a cable
to connect the instrument to the computer or two computers
together.
Figure 1:
1: RS-232 Instrument,2:RS-232 Cable, 3: SerialPort
Figure 1 (sercomm.png)
Serial communication requires that you specify the following
four parameters:
*
The baud rate of the transmission
*
The number of data bits encoding a character
*
The sense of the optional parity bit
*
The number of stop bits
Each transmitted character is packaged in a character frame that
consists of a single start bit followed by the data bits, the
optional parity bit, and the stop bit or bits. Figure 2 shows a typical character frame encoding the
letter m.
Figure 2Figure 2 (charframe.png)
Baud rate is a measure of how fast data are moving between
instruments that use serial communication. RS-232 uses only two
voltage states, called MARK and SPACE. In such a two-state
coding scheme, the baud rate is identical to the maximum number
of bits of information, including control bits, that are
transmitted per second.
MARK is a negative voltage, and SPACE is positive. Figure 2 shows how the idealized signal looks on an
oscilloscope. The following is the truth table for RS-232:
Signal>3V=0
Signal
3
V
0
Signal>-3V=1
Signal
-3
V
1
The output signal level usually swings between +12 V and -12
V. The dead area between +3 V and -3 V is designed to absorb
line noise.
A start bit signals the beginning of each character frame. It is
a transition from negative (MARK) to positive (SPACE)
voltage. Its duration in seconds is the reciprocal of the baud
rate. If the instrument is transmitting at 9,600 baud, the
duration of the start bit and each subsequent bit is about 0.104
ms. The entire character frame of eleven bits would be
transmitted in about 1.146 ms.
Data bits are transmitted upside down and backwards. That is,
inverted logic is used, and the order of transmission is from
least significant bit (LSB) to most significant bit (MSB). To
interpret the data bits in a character frame, you must read from
right to left and read 1 for negative voltage and 0 for positive
voltage. This yields 1101101 (binary) or 6D (hex). An ASCII
conversion table shows that this is the letter m.
An optional parity bit follows the data bits in the character
frame. The parity bit, if present, also follows inverted logic,
1 for negative voltage and 0 for positive voltage. This bit is
included as a simple means of error handling. You specify ahead
of time whether the parity of the transmission is to be even or
odd. If the parity is chosen to be odd, the transmitter then
sets the parity bit in such a way as to make an odd number of
ones among the data bits and the parity bit. This transmission
uses odd parity. There are five ones among the data bits,
already an odd number, so the parity bit is set to 0.
The last part of a character frame consists of 1, 1.5, or 2 stop
bits. These bits are always represented by a negative
voltage. If no further characters are transmitted, the line
stays in the negative (MARK) condition. The transmission of the
next character frame, if any, is heralded by a start bit of
positive (SPACE) voltage.
How Fast Can I Transmit?
Knowing the structure of a character frame and the meaning of
baud rate as it applies to serial communication, you can
calculate the maximum transmission rate, in characters per
second, for a given communication setting. This rate is just
the baud rate divided by the bits per frame. In the previous
example, there are a total of eleven bits per character
frame. If the transmission rate is set at 9,600 baud, you get
9,60011=872
9,600
11
872
characters per second. Notice that this is the
maximum character transmission rate. The hardware on one end
or the other of the serial link might not be able to reach
these rates, for various reasons.
Hardware Overview
There are many different recommended standards of serial port
communication, including the following most common types.
RS-232
The RS-232 is a standard developed by the
Electronic Industries Association
(EIA) and other interested parties, specifying
the serial interface between Data Terminal
Equipment (DTE) and Data
Communications Equipment (DCE). The
RS-232 standard includes electrical signal characteristics
(voltage levels), interface mechanical characteristics
(connectors), functional description of interchange circuits
(the function of each electrical signal), and some recipes
for common kinds of terminal-to-modem connections. The most
frequently encountered revision of this standard is called