Chapter 2:  The Acquisition System



Page Contents

    2.1.  Acquisition Instrumentation
    2.2.  Acquisition Computer
    2.3.  Acquisition Process
    2.4.  QNX, The Operating System

Back to Table of Contents


This chapter describes the acquisition system used to collect geophysical and navigational data during field surveys in Antarctica. Instrumentation includes a laser altimeter, ice-penetrating radar, a cesium vapor sensor magnetometer, an aerogravity system, a pressure transducer, a GPS time code generator, two GPS navigation systems, an inertial navigation system, and a ten microsecond counter-timer. The acquisition computer runs under the QNX real-time operating system. Four concurrently executing programs interact to acquire, time-stamp, and 'packetize' instrument data in real time.


Back to Top
 
 

2.1. Acquisition Instrumentation


Data acquisition transpires aboard a modified Twin Otter aircraft ( known as SJB to its crew) as it navigates above the survey area at an average airspeed of seventy-two meters per second. Most of the onboard survey instrumentation is mounted in ten racks. In addition to these racks, a gravity meter and its gyroscopically stabilized platform, a magnetometer sensor and winch system, and a laser altimeter (Figure 2.1), are installed within this specially modified aircraft. The racks are arranged in two layers, one on top of another. Three instrument operators monitor data acquisition during a survey flight. Each operator is responsible for the instrumentation within a rack set (Figures 2.2 and 2.3). The data acquisition system includes an ice-penetrating radar system, a laser altimeter, an airborne gravity system, a magnetometer, a time code generator, a pressure transducer, two satellite navigation units, and an inertial navigation system. A description of the instrumentation follows.

  1. The ice-penetrating radar system

  2. The ice-penetrating radar is used to measure ice thickness and to reveal conditions at the ice-to-bedrock interface [Blankenship et al. 1994, Bindschadler et al. 1996]. The radar system is a 60 MHz unit with peak power of 10 kilowatts, a pulse duration of 250 nanoseconds (length of time the radar pulse is on) and a pulse repetition interval (pulse rate) of 80 microseconds. Radar returns are electronically digitized (8-bit) at 16 nanosecond intervals. A total of 2048 or 4096 samples create a single sweep of 32 or 64 microseconds duration. Individual sweeps are stacked, or added, into 24 bit registers for each sample, to increase the signal-to-noise ratio. Consequently, the total sampling time for one stack is about 0.2 seconds, producing a track line sampling distance of about 15 meters (the approximate distance the plane travels during this data collection interval). The ice surface, bedrock, and some ice layers are resolvable within the radar data [Bell et al., 1998]. The radar instrumentation measures ice thickness up to 3500 meters with a resolution of about ten meters [Blankenship et al. 1993 and 1994].
     
  3. The laser altimeter

  4. Laser altimetry measures distance of the airplane above the ice. The laser altimeter is a Holometrix PRAM-IV laser range finder, using an infrared YAG laser and operating at a wavelength of 1064 nanometers. The altimeter samples at a rate of 1000 Hz and returns are averaged over a track line sampling distance of about 8 meters at 8 Hz. The maximum range of the laser altimeter is nearly 2000 meters. Instrument precision is ten centimeters and profiling the ice surface is accurate to less than one meter when used with GPS [Blackenship et al. 1993]. The laser is highly dependent on aircraft attitude and cannot measure distance through cloud cover.
     
  5. The airborne gravity system

  6. Gravity meters measure variations as small as one part in ten million of the Earth's gravity field. In standard gravity surveying, the difference in gravity values between measurement stations is measured. Gravity data provide information about the densities of rocks underground, which leads to an interpretation of their distribution in the subsurface. Aboard SJB, a Bell Aerospace model BGM-3 marine gravity meter measures vertical acceleration at a sampling rate of 1Hz. The accelerometer is mounted to a gyro-stabilized platform at the aircraft's center of gravity. The damping of this platform has been specially modified for airborne use. Airborne gravity is obtained with a precision of a few milliGals (1 mGal = 10-3 cm sec-2 ). In this system, gravity anomalies with wavelengths greater than 7 km can be detected with a precision of less than 5 milliGals [Blankenship et al. 1993, 1994].
     
  7. The magnetometer

  8. Anomalies in the earth's magnetic field are produced by variations in the magnetic properties of rocks within the earth's subsurface. Magnetic data are used to determine the depth and structure of the bedrock beneath the ice sheet. Volcanic rocks, like those found in the Trans-Antarctic mountains, have particularly strong magnetic signatures. Magnetic anomaly maps help to locate buried volcanoes and volcanic intrusions that are not seen at the surface [Behrendt et al. 1994, Blankenship et al. 1993]. A Geometrics, model 823A, cesium-vapor magnetometer measures small changes in the earth's magnetic field with a sample rate of 10 Hz. The cesium-vapor magnetometer is very sensitive, capable of measuring a change of one part per million in the intensity of the earth's magnetic field. The sensor needs to be located far enough away from the aircraft to avoid excessive magnetic aircraft interference. The sensor part of the magnetometer is housed within an aerodynamic tube ('the bird') and 'winched' out about 100 feet once the plane is airborne (Figure 2.1).
     
  9. The time code generator

  10. A True-Time GPS receiver samples, with high-accuracy, GMT (universal) time every second.
     
  11. The pressure transducer

  12. A high-precision digital pressure transducer measures, at 4 Hz, the barometric pressure outside the aircraft, in milli-Bars. Using this high-precision pressure altimetry with carrier-phase satellite positioning, vertical displacements of the aircraft, calculated to about 0.1 meter [Blankenship et al. 1994], are used to monitor the accuracy of gravity measurements.
     
  13. Two satellite navigation units

  14. A Trimble GPS receiver and an Ashtech GLONASS receiver are used to navigate the aircraft. Two additional, independently logging (not recording to macro link disks) GPS receivers, an Ashtech, and a Turborogue, also record aircraft position. Data from these latter two GPS receivers are post-processed together with data from GPS receivers located at base stations. This post-processed GPS position data provides accurate locations for the logged instrument data.
     
  15. The inertial navigation system (INS)

  16. Using a digital avionics interface, the INS provides aircraft positional readings, such as location, speed, heading, plane attitude, and air temperature, to name a few, at a sample rate of 8 Hz. These measurements are used in reducing the gravity data, which is highly dependent on the attitude of the aircraft, and in correcting the laser altimetry.

Together, the coincident data measurements clarify the dynamics and structure of the Antarctic ice sheet and discern the structure of the subsurface geology. Laser ranging when combined with aircraft GPS data can determine surface elevation to an accuracy of less than one meter. When surface elevation is combined with satellite imagery, the boundary between an ice sheet and its fast moving ice streams can be identified [Blankenship et al. 1993, 1994]. Using measurements of surface elevation, ice thickness, and ice velocity, the distribution of stress at the base of the ice and ice-sheet mass balance can be calculated [Bindschadler et al. 1996]. Magnetic and gravity profiles, ice thickness, and surface elevation have all been used to identify an active volcano located under the ice sheet [Blankenship et al. 1993]. Such complex and integrated measurements depend upon a robust acquisition system.


Back to Top
 
 

2.2. Acquisition Computer


The acquisition computer is a rack-mounted, 50 MHz machine with an Intel 486 processor. All data except the ice-penetrating radar data are acquired through serial data lines. The computer contains a Comtrol Hostess i Serial Board through which the serial data are obtained. The acquisition of serial data is interrupt driven. The ice penetrating radar data is acquired via coaxial cabling through an EG&G Model 9826 Digital Signal Averager Board (DSA), that stacks the radar sweeps. A CTM05 Counter Timer Board provides a ten microsecond counter and is used in combination with the computer's hardware clock to time stamp incoming data.

The data are logged to two 1GB external macro-link disk drives connected to the acquisition computer via SCSI cabling. The data log created on each disk consists of a 512 byte section reserved for a Sun disk geometry label, a middle section containing space information about the log file, and a data section starting at byte 768. The data from each instrument are 'packetized' before being written to disk. This results in the data section consisting of a series of data packets. The end of the data section is marked with a terminator of four bytes of zeros.

All data packets have a consistent structure (Figure 2.4). Each packet contains a header section, a timing section, and a data section. The header section identifies the packet data. The first field, packet, is an 6 character ID, 'PACKET'. The second field, project, indicates the field season during which the data was collected. The third field, set, indicates the field sector where the data was collected. The fourth field, transect, indicates a particular flight line. The fifth field, stream name, is a data stream identifier that classifies the recording instrument supplying the data. The sixth field, sequence, gives the packet order of a particular data stream. The seventh field, length, gives the total length, in bytes, of the data section plus the timing section for that packet.

Following the header section is the timing section. The timing section indicates when the packet data was collected and is used to sequence all of the data packets belonging to a particular transect. Included in this section are the time from the computer's hardware clock and a sequence number from the CTM05 counter-timer board. Both the hardware seconds and the counter sequence number are accurate to two decimal places, noted by the two '100ths' fields (Figure 2.4). The last packet section is the data section. The size and type of data within the data section is different for each recording instrument. The magnetometer, time code generator, gravity system, pressure sensor, laser, and GPS receivers all output byte streams of ascii characters. The internal navigation system (DAI) outputs a byte stream of signed integers. The ice-penetrating radar system produces a stream of bytes representing a stacked digital waveform. Collecting data is the only job of the data acquisition system. The data is 'packetized' in the same form that it is read off the data boards. No interpretation is performed by the acquisition system.


Back to Top
 
 

2.3. Acquisition Process


The data acquisition process consists of independent programs running concurrently on the acquisition computer. The interprocess communication is based on message passing. Only one gigabyte of data is collected during a single three to four hour flight period. The programs include the following:

  1. countd  
  2. This program controls the counter-timer CTM05 board. After starting, it waits to receive messages. The counter is initialized at the start of each transect. An initialization message directs countd to set the counter to zero and send a NULL reply back to the sending process. A request message instructs countd to read a 32-bit counter register. The reply is a 32-bit unsigned integer, the counter value.
     
  3. spool  
  4. This program waits to receive messages. If the first four bytes of the message are 'PING', then a display computer is requesting packets. Routing is enabled and the reply to the requesting process is a copy of the next available data packet. If the first six bytes of the message is 'PACKET', then a data packet has been received from either the dsa process or the hipac process (both described in the following section). The packet is written to the logging device if the project field in the header is not blank. A blank project field means that the plane is not surveying a transect line and the data packet should not be recorded. If routing is enabled then the packet is also sent as a reply to the previously received 'PING' message.
     
  5. dsa  
  6. This program checks the DSA board for ice-penetrating radar data. When radar data is ready to be read a message is sent to countd for a counter value, a time stamp is produced, a packet is generated and sent to the spool process. dsa accepts the following commands: shutdown, record:PST, start, stop, help.
     
  7. hipac  
  8. This program waits to receive messages. A hardware interrupt indicates that the hipac process should read the serial lines on the Comtrol Hostess i serial board for instrument data. hipac sends a message to the countd process for a counter value, the data is then 'packetized' and sent to the spool process. hipac accepts the following commands: startup:STReam, record:PST, start, stop.

A control program directs the running acquisition processes. Once SJB is in the air and the instrumentation is powered up, the acquisition processes are started. A number of user controllable commands start, stop, and guide the acquisition system. These commands are sent to the hipac and dsa processes.

The startup:STReam command directs hipac to send an initialization command to the instrument indicated by 'STReam'. The record:PST command sets the project name, set name, and transect name used by hipac and dsa when building packets. The start command directs the counter to be initialized and commences logging to disk. The stop command annuls the start command. The start and stop commands can be used multiple times during a single survey flight so that only the data collected over defined transects are recorded.


Back to Top
 
 

2.4. QNX, The Operating System


The operating system plays an important role in keeping data acquisition running smoothly. Time-critical demands are placed on the operating system when data acquisition rates are high, such as on SJB. The QNX operating system was designed for real-time applications [Hildebrand 1989]. It employs fast context switching and true multi-tasking. QNX relies on a network-distributed, micro-kernel design. The advantages of a micro-kernel include simplicity, flexibility, modularity, and a small footprint. The four basic services provided by the QNX micro-kernel are:

The kernel occupies merely 12 Kbytes of code. This small footprint allows active portions of the kernel and system interrupt handlers to reside within a CPU cache, giving QNX the ability to execute real-time operations. Other operating system services are added as needed and implemented as user-level servers. Each user-level service has a defined interface and is accessible to all clients. Utilizing message passing, the user can send a message to a server process, which does the work and then returns the result. The ability to add, delete, and modify services gives the micro-kernel flexibility. Being able to design a unique system suitable for real-time data acquisition makes the kernel highly modular.

Message passing is the fundamental form of inter-process communication (IPC) used by the QNX operating system. Messages that prevent or block the execution of the currently executing process until a response is received, support synchronous IPC between processes. Synchronous communication allows an application to synchronize events among concurrently running processes and share data. Three functions are used to implement message passing. The message protocol works as follows:
 

  1. send()  
  2. When a process send()s a message to another process, the sending process blocks program execution until the recipient receives()s the message and offers a reply(). The sending process is send-blocked until the recipient has received() the sent message. The sending process becomes reply-blocked while the recipient is processing its received message and generating a reply().
     

  3. receive()  
  4. Once a process has issued a receive() message, it becomes received-blocked until it receive()'s a send() message from another process. This send() message can be accepted from any process or from one particular process, depending on the action specified in the receive() message.
     

  5. reply()  
  6. Reply()'s do not block program execution. Once a process has issued a reply() message, the message data is copied from the replying process to the reply-blocked process as an atomic operation. Once the data is copied, both processes are free to continue executing.
     

Proxies are a special type of message that do not block the currently executing process or expect a reply. They are suited for event notification and the delivery of preformed messages. Signals, a traditional method of asynchronous IPC, are also supported by QNX. A combination of these different IPC primitives are used by the acquisition processes to regulate the transfer of data from instrument to computer.

Messages may be sent between processes on the same machine (locally) or between processes on different machines across a network (remotely). QNX machines residing on the same network are referred to as nodes. For example, the data acquisition processes dsa and hipac each run on a single node and communicate with spool, also running on that same node. A real-time display process, on the other hand, runs on a different node but still communicates with spool for packets. The code used to communicate with spool is the same for the display process as for dsa and hipac. From an application's viewpoint, communicating with a local process and communicating with a remote process represent the same operation. This network transparency is made possible by the use of virtual circuits. Virtual circuits are set up by the Network Manager to transmit messages over the network. A virtual process ID (VID) is associated with each end of the virtual circuit. Communicating processes at either end of the circuit transmit messages by using the VID as if it was merely the local process ID (PID) assigned to the process with which they are communicating. Applications do not need to set up these virtual circuits directly. A virtual circuit is set up on behalf of a running application when it requests access to resources across the network. The Process Manager maintains the integrity of the virtual circuit on its node so that time-consuming computer resources are not wasted when circuits links are broken.

Each node on a QNX network is identified by a physical node ID and a logical node ID. A computer's network card specifies the physical ID. Logical node ID's are assigned sequentially, typically starting with 1, and must be unique across the network. The Network Manager maps a node's logical ID to its physical ID so that all QNX processes can communicate using logical node ID's. The next chapter describes the role and operation of real-time display nodes connected to the acquisition system.


Back to Top