|Home||Graph Data||Text Data||Layout||Detector||Laser||Coil||Electronics||Enclosure||Acquisition||Linearity Analysis||Harmonic Analysis||References||Operator Log|
On this page the hardware and software used to record, process, and display the magnetometer data are described. This hardware consists of several separate microcontrollers/microprocessors and a few data links. The software which compliments the hardware described on this page consists of several applications as described below.
The hardware/software system consists of four sub-systems:
A 68HC11 Evaluation Board (EVB) is a product offered by Motorola to permit a detailed review of the microcontroller (MCU) and its capabilities by prospective customers. The EVB includes an RS-232 interface IC, an Real-Time Clock IC (RTC), and features a prototyping section where additional components can be added and interfaced to the MCU. The board is programmed through the RS-232 port from a separate desktop computer.
8 channel 12 bit ADC, and RS-485 serial driver ICs, both obtained from Maxim Integrated Circuits through its gracious free sample program, have been installed in the prototyping area and connected to the MCU. The RTC is configured through software to interrupt the MCU once per second. An assembly-code program is loaded into the MCU's on-board EEPROM (200 bytes total) which when interrupted counts the number of seconds since startup, reads a number of the eight the ADCs, converts each ADC's binary value into a signed decimal number representing the voltage at the ADC input, and sends an ASCII string containing all of that info out the RS-485 serial port.
An example of the data stream follows:
0768 -0.794 -0.292 +7.951 +3.079 +5.392 0769 -0.790 -0.204 +7.951 +3.079 +5.381 0770 -0.781 +0.594 +7.945 +3.079 +5.401 0771 -0.785 +0.634 +7.951 +3.079 +5.392 0772 -0.794 -0.130 +7.945 +3.086 +5.381 0773 -0.794 -0.234 +7.951 +3.090 +5.381 0774 -0.794 -0.370 +7.951 +3.086 +5.381The first number on each row is the time index, the remaining five signed decimal numbers are the voltages appearing at the ADCs' inputs.
The RS-485 serial link is capable of transmitting digital data at a greater rate and longer distance than the more popular RS-232. The link operates in a balanced configuration, where both the original signal and an inverted copy of the same are transmitted simultaneously, and utilizes a lower cable impedance. Both these contribute to the superior performance relative to RS-232.
An AMD-hardware, Linux-OS based personal computer runs a Perl program performs a series of operations on the incoming data stream. At one of the computer's serial inputs an out-board format converter accepts the RS-485 data from the remotely located magnetometer and converts it into an RS-232 data stream. The format converter is comprised of two serial driver ICs from Maxim stealing a few milliamperes from the computer's +5V power supply.
The incoming serial data is captured through the standard serial interface driver and a Perl program which slurps in the ASCII string, converts the time stamp into an absolute clock time, converts each of the decimal voltages into different numbers using stored calibration data, and saves all of those data in a series of hourly and daily text-based log files. Once per hour, on the hour, this Perl program launches a separate Perl program that creates a group of GIF files to present the data.
An example of the text-based log file follows:
# Created with script version: 20011201 # Time (seconds after file name start), magnetic field (nT), loop error (V), laser power (arbitrary), internal temperature (°C), external temperature (°C), heater power (W) # file name: 2001.12.02_16.00_UT 0 -20.362 -0.052 3.0 31.4 -0.5 121 1 -20.089 -0.043 3.0 31.3 -0.7 121 2 -20.362 -0.019 3.0 31.1 -0.8 123 3 -18.316 -0.039 3.0 31.1 -0.6 120 4 -20.771 -0.028 3.1 31.2 -0.8 124
Lines beginning with a "#" are comments and ignored by the programs; they do provide useful informtion for the human reader. In the above case, the data file is stamped with the version of the program that created it, the name of the file which provides the starting time for the file, and the six values appearing on each line are identified as are their units.
On the same computer, a second independent Perl program runs when launched by the logging program and converts the last one, six, and twenty-four hours of logged data into a series of GIF files and uploads them through a local Ethernet network out through the Internet to a separate HTTP server.
A second computer running the Linux operating system and Apache web server software serves up the pages that you are currently viewing. These web pages are dynamically created using Unix-type Perl-CGI scripts.