Still in service after all these years

InTech, Oct 2001 by Capano, Dan

General-purpose bus carved niche from programmable instruments to intercomputer communication with its high data transfer rate

Long ago and far away, Hewlett-- Packard designed the original generalpurpose interface bus (GPIB). It was 1965, and the California-based Hewlett-Packard interface bus had a data throughput of 1 megabit per second (Mbps)-very fast. The interface bus quickly gained popularity, and IEEE accepted it as Standard 488 in 1975.

GPIB originally connected and controlled instruments made by HP and enabled centralized data acquisition. Up to 15 programmable instrumentation devices could connect to this bus, which had a maximum length of 20 meters. Instruments could be no closer than 2 meters and no farther apart than 4 meters.

All that is still so, for the most part. Higher-speed variants, such as National Instruments' HS-488 bus, allow speeds up to 8 Mbps, depending on how many connected devices are actually powered up and transmitting. GPIB configures in either a bus or a star configuration.

GPIB devices communicate with other GPIB devices using two types of messages. The first, device-dependent messages, are data messages that contain device-specific intelligence such as programming instruction machine status, files, and measurement results. The second type of message is an interface message. Interface messages, or command messages, manage the bus and perform functions such as initializing the bus, addressing and unaddressing devices, and setting remote or local programming modes.

Three device types

When the bus powers up, one device becomes the system controller. The system controller clears the bus and then reinitializes all interfaced units and sets each to listen for data on the bus.

Three types of device are on the bus: listeners, talkers, and controllers. Some devices may function as a combination of the three. A minimum system consists of at least one controller and one talker or listener. A talker sends data to one or more listeners.

A controller manages the flow of information by sending commands to all the devices on the bus. When a controller is notified that a talker has data to transfer, it connects the talker to the intended listener. On some configurations, the bus can operate without a controller. Talkers configured as talk-only devices connect to one or more listen-only devices.

There can be multiple controllers on the GPIB, but only one controller can be the controller in charge (CIC). Although controllers may pass active control of the bus to other controllers at any time, only the system controller can make itself the CIC.

GPIB uses 24 lines to control the bus and transfer data. Sixteen of these lines are signal lines, with the remaining eight serving as ground lines. The 16 signal lines are of three groups: eight data lines, three handshake lines, and five interface management lines. Data lines are designated DIO1 through DI08 and are used to transfer address and control information and data.

All commands and most data use the 7-bit ASCII or International Organization for Standardization code set. The eighth bit, DI08, is either unused or serves as the parity bit to detect errors in transmission. Handshake lines control the transfer and acknowledgment of message bytes among the connected devices.

Agree on that voltage

The transfer of message bytes happens asynchronously and is a three-wire interlocked handshake. It guarantees that message bytes on the data lines come and go without transmission error. There are three handshake lines:

* NRFD (not ready for data): Indicates a device is ready or not ready to receive data.

* NDAC (not data accepted): Indicates when a device has or has not received data.

* DAV (data valid): Indicates when data is stable and valid and whether connected devices can accept that data.

The NRFD is asserted, or set high (vernacular for setting the line to an agreed-on voltage), whenever a listener is busy and not ready to receive data. If there is more than one device on the bus, the controller will not see the NRFD released until all devices release it.

A listener asserts the NDAC to indicate it has not yet accepted the controller-sent data. Again, all connected devices must release this line in order for the controller to see it. The controller asserts the DAV when it is sending commands, and a talker does so too when it is sending data.

These three lines perform a hand-- shaking function and control the transfer of command or message data. A typical handshaking sequence is as follows:

1) When a controller or talker wishes to transfer information, it asserts, or sets, the DAV high. It then checks to see whether the NRFD and NDAC lines are both low. This indicates that all devices are ready to receive data.

2) When the last listener takes its NRFD low, the line then goes high again, signaling the controller, which then takes the DAV low, indicating there is valid data on the bus.

3) Each listener responds by taking the NRFD low again to indicate it is busy and by sending the NDAC low when it has received the data.

 

BNET TalkbackShare your ideas and expertise on this topic

Please add your comment:

  1. You are currently: a Guest |
  2.  

Basic HTML tags that work in comments are: bold (<b></b>), italic (<i></i>), underline (<u></u>), and hyperlink (<a href></a)

advertisement
advertisement
  • Click Here
  • Click Here
  • Click Here
advertisement

Content provided in partnership with ProQuest