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