Data acquisition
The experiment control and data acquisition are performed using a standard
computer system. At first, we tried to use a PC with the graphical programming
environment LabVIEW. Due
to timing problems, we had to abandon this idea and decided to make use
of a real time (RT) operating system (OS).
The demands to a real time OS are versatile: It should keep the given
timing constraints. Due to limited hardware resources, the system should
be self hosted, what means that it provides both development environment
and data acquisition. The implementation of a graphical user interface
(GUI) for easy operation of the required software is highly desirable.
Commercial program packets like QNX
or LynxOS fulfill all these demands
but could not be realized due to high costs. Much more affordable are approaches
which base on free Unix derivatives like the Linux based projects Real
Time Linux (RT Linux) and KURT.
We made our decision for RT Linux, because it was developed to meet the
demands of reliable real time projects and it is widespread for technical
and/or scientific applications.
Instrumentation
The signal of the photomultiplier (THORN EMI 98630B) is recorded by a photon
counter/discriminator (Stanford Research Systems SR400) and passed via
a serial RS232C interface to the data acquisition computer. This is a standard
PC (Pentium II, 233 MHz, 64 MB RAM, 4 GB EIDE hard disk). Besides the communication
with the SR400 the signals of three photo diodes (etalon signal, iodine
cell, laser power) are recorded via a 12 bit digital I/O card (Computer
Boards DAS08/Jr-AO).
The analog output of this card drives a linear voltage ramp, which
is used for the frequency tuning of the dye laser. The digital outputs
provide trigger signals (TTL) used for the photon counter.
Software
The operating system in use is Real Time
Linux. Besides some real time processes an ordinary Linux system is
executed with lowest priority. Thus, a manifold of programs and developing
tools which are available for this system can be used. The GUI of the data
acquisition software runs as ordinary Linux process.
At present RT Linux Version 0.6 is used, utilizing a Round-Robin scheduler.
In addition it provides interrupt handling mechanisms. For communication
purposes between kernel space and user space, queues and shared memory
might be used. For our project any variant of the kernel that provides
a scheduler for periodic tasks, interrupt service routine (ISR) handling,
and queues.
Most important for the module rt_hidaq is the granularity and the precision
of the scheduling, as well as the efficient execution of short ISRs for
the module rt_com.
A detailled description
of the driver rt_com
is given by Jochen
Küpper in chapter 3.1 of the Real
Time Linux manual. In the following, the real time modules will be
described. A detailed description of the graphical interfaces for the data
acquisition will be given afterwards.
Data acquisition
The module rt_hidaq is the central part of data acquisition and of the
experiment control, since all recorded data are passed to the user process
via this module. All external signals, used to control the experiment and
read out the data are created here.
Triggering
Start and stop time of the photon counting intervals are triggered by TTL
. The photon counter is triggered to the raising edges of TTL signals.
The time difference between stop and start signal is fixed to tt
= 0.2 ms, which is the dead time of the photon counter. The total time
tg in between two start signals is passed from the user process
and must be longer than the dead time. The counting period is then simply
tc = tg - tt. The precision of the trigger
signal has been controlled via a digital oscilloscope and never exceeded
10µs under heavy load, typical values are around 3µs for average
load of the computer system.
Communication with the photon counter
Reading of the A/D converter