Shared Memory Melds Tester's Dual Controllers
Shared memory sets the stage for two computers to exchange data.
Gil Bassak, Contributing Technical Editor -- Test & Measurement World, 5/1/1999
| When the Air Force needed to replace its aging aircraft-engine test systems, Air Force engineers found an effective replacement in commercial, off-the-shelf (COTS) VXIbus test instruments and systems and application-development software. What makes the test stand unusual, though, is its use of two computers—an embedded computer and a remote desktop computer. Why use two computers? For two reasons, says Matt Wright, senior electrical engineer for CACI, the San Antonio, TX, contractor assigned to the job: high performance and ease of update. “We wanted something that was fast enough to handle the data, not just when collecting it during tests, but afterward when doing in-depth analyses, too.” Having one computer run the system software while another runs a test program also makes it easier to change instruments and update software, especially since, in the Air Force, two people usually manage system software and test program software. The resulting system, Engine Test/ Trim Automated System II (ETTAS II), comprises two 13-slot VXIbus chassis mounted in one 19-in. rack. An MXI-2 extender connects them. In all, the two chassis hold 14 VXIbus instruments, two MXI-2 interface modules, and a 200-MHz Pentium Pro embedded computer. The external computer, a 266-MHz Pentium II machine, also sits in the rack. The software in both computers runs on Windows NT. Wright and other test engineers wanted two computers so each of the two major parts of the software could run on its own processor. They rejected an approach using one dual-processor computer because of a lack of COTS software that could take full advantage of a dual-processor system. Moreover, the test system’s twin main roles—an interface to the engine under test and to the operator—guided the decision to have one embedded computer and one external computer. In Figure 1, the embedded computer runs the system software that manages the engine interface. That software controls and monitors the instruments by configuring them, checking for error messages, and placing the acquired data into the shared memory. The embedded computer’s location—directly on the VXIbus—affords fast access to the test instruments. Engine-specific test programs run on the external
computer. The external computer tells the embedded computer which tests to
run. It also processes and displays engine parameters, gives step-by-step
operator instructions, and accepts operator commands through a
touch-screen. With this division of labor, test engineers can upgrade or
replace instrumentation hardware and software without affecting test
programs.
System Setup The embedded computer uses logical address 2. Because it’s not at logical address 0, the embedded computer’s VXIbus timeout and arbiter timeout are disabled; the MXI-2 slot-0 controller arbitrates the VXIbus. Like the external computer, the embedded computer is configured as a register-based device, letting its resource manager run asynchronously to the external computer. Were the embedded computer configured as a message-based device, the engineers would have needed some means to ensure that the computer’s resource manager program started before that of the external computer. But the embedded computer’s system software resides in the startup folder. That’s a requirement for the computer to boot up automatically, without the need for someone to enter a user ID or password. As a register-based device, the embedded computer’s resource manager can run at any time. Unfortunately, configuring the embedded computer as a register-based device creates a problem. Because it’s not the slot-0 controller, the embedded computer’s resource manager doesn’t set up the system’s instruments. In fact, the resource manager doesn’t even know they exist or if the embedded computer has been assigned to share memory with the external computer. In effect, the computer is just another instrument on the VXIbus. But it does need a way to control instruments. Multistep Solution The embedded computer then gains access to the test system’s instruments by checking a memory location to see when the external computer drops its resman.tbl file into shared memory. Once this occurs, the embedded computer reads the file and writes it over its own version, giving the computer access to the instruments. Shared Memory The technique of sharing memory, which is defined in the VXIbus specification, is a convenient way for the embedded computer to pass acquired test data to the external computer. Dual-ported memory is used, and any conflicts—say, by both computers trying to read and write to one location at the same time—is resolved by the VXIbus’ low-level software for master-slave arbitration. In this case, the shared, dual-port memory resides in the A32 address space (the space defined when address bit 32 is set high, but bit 64 is low), leaving plenty of space for expansion. The sequence for passing data starts when the embedded computer acquires data from all channels on all the system’s instruments and then forms that data into an array. Using the VISAMoveOut32 instruction, the embedded computer writes the array to an address in the shared memory. The external computer reads that array from shared memory using the VISAMoveIn32 instruction, parses the data, and extracts the channels that are needed for the particular UUT-specific test program being run. The Air Force test engineers found the asynchronous data exchange acceptable because the embedded computer, which updates the memory about 200 times a second, sets a memory-error bit after writing the data to memory. The external computer retrieves data about 150 times a second. By reading the memory-error bit, the external computer knows the data it is reading is fresh. After reading the data, the external computer resets the bit. What’s more, both computers run fast enough so any data missed by the slower retrieval rate isn’t critical to the tests. T&MW Acknowledgement |




















