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.
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.
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
RS-232C. Parts of this standard have been adopted (with
various degrees of fidelity) for use in serial
communications between computers and printers, modems, and
other equipment. The serial ports on standard IBM-compatible
personal computers follow RS-232.
RS-449, RS-422, RS-423
The RS-449, RS-422, and RS-423 are additional EIA serial
communication standards related to RS-232. RS-449 was issued
in 1975 and was supposed to supersede RS-232, but few
manufacturers have embraced the newer standard. RS-449
contains two subspecifications called RS-422 and
RS-423. While RS-232 modulates a signal with respect to a
common ground, or single-ended transmission, RS-422
modulates two signals against each other, or differential
transmission. The RS-232C receiver senses whether the
received signal is sufficiently negative with respect to
ground to be a logical 1, whereas the RS-422 receiver senses
which line is more negative than the other. This makes
RS-422 more immune to noise and interference and more
versatile over longer distances. The Macintosh serial ports
follow RS-422, which can be converted to RS-423 by proper
wiring of an external cable. RS-423 can then communicate
with most RS-232 devices over distances of 15 m or so.
RS-232 Cabling
Devices that use serial cables for their communication are
split into two categories. These are DCE and DTE. DCE are
devices such as a modem, TA adapter, plotter, and so on,
while DTE is a computer or terminal. RS-232 serial ports
come in two sizes, the D-Type 25-pin connector and the
D-Type 9-pin connector. Both of these connectors are male on
the back of the PC. Thus, you require a
female connector on the device.
Table 1 shows the pin connections for the 9-pin and
25-pin D-Type connectors.
| Function |
Signal |
PIN |
DTE |
DCE |
| Data |
TxD |
3 |
Output |
Input |
| RxD |
2 |
Input |
Output |
| Handshake |
RTS |
7 |
Output |
Input |
| CTS |
8 |
Input |
Output |
| DSR |
6 |
Input |
Output |
| DCD |
1 |
Input |
Output |
| STR |
4 |
Output |
Input |
| Common |
Com |
5 |
-- |
-- |
| Other |
RI |
9 |
Output |
Input |
The DB-9 connector is occasionally found on smaller RS-232
lab equipment. It is compact, yet has enough pins for the
core set of serial pins (with one pin extra).
Note:
The DB-9 pin numbers for transmit and receive (3 and 2) are
opposite of those on the DB-25 connector (2 and 3). Be
careful of this difference when you are determining if a
device is DTE or DCE.
The
DB-25 connector is the
standard RS-232 connector, with enough pins to cover all the
signals specified in the standard.
Table 2
shows only the core set of pins that are used for most
RS-232 interfaces.
| Function |
Signal |
PIN |
DTE |
DCE |
| Data |
TxD |
2 |
Output |
Input |
| RxD |
3 |
Input |
Output |
| Handshake |
RTS |
4 |
Output |
Input |
| CTS |
5 |
Input |
Output |
| DSR |
6 |
Input |
Output |
| DCD |
8 |
Input |
Output |
| STR |
20 |
Output |
Input |
| Common |
Com |
7 |
-- |
-- |
Software Overview
Use the VIs and functions located on the Functions>>All
Functions>>Instrument I/O>>Serial palette for serial
port communication.
You used some of the VISA functions on this palette for GPIB
communication. The VISA Write and VISA
Read functions work with any type of instrument
communication and are the same whether you are doing GPIB or
serial communication. However, because serial communication
requires you to configure extra parameters, you must start the
serial port communication with the VISA Configure Serial
Port VI.
The VISA Configure Serial Port VI initializes the
port identified by VISA resource name to the
specified settings. timeout sets the timeout
value for the serial communication. baud rate,
data bits, parity, and flow
control specify those specific serial port
parameters. The error in and error
out clusters maintain the error conditions for this VI.
Example 1
Figure 5 shows how to send the
identification query command
*IDN? to the
instrument connected to the COM2 serial port. The
VISA
Configure Serial Port VI opens communication with
COM2 and sets it to 9,600 baud, eight data bits, odd parity,
one stop bit, and XON/XOFF software handshaking. Then the
VISA Write function sends the command. The
VISA Read function reads back up to 200 bytes
into the read buffer, and the
Simple Error
Handler VI checks the error condition.
Note:
The VIs and functions located on the Functions>>All
Functions>>Instrument I/O>>Serial palette are also used
for parallel port communication. You specify the VISA resource
name as being one of the LPT ports. For example, you can use
MAX to determine that LPT1 has a VISA resource name of
ASRL10::INSTR.
"A full introductory course on programming with LabVIEW."