|
RA Technical Reference |
|
Table of Contents
See also RA Users Guide |
Ravi Kochhar Department of Physiology University of Wisconsin Madison, Wi. 53706 Technical Report no. 17 Feb. 16, 1999 Rev. 1.004, Oct. 23, 2001 ![]() |
Introduction
These are the technical notes for the program RA, which is one of
the main data collection programs used in the Physiology Auditory Lab at the
Univ. of Wisconsin.
The word "RA" is an acronym for "Response Area", and was originally designed
to collect just such data.
A "Response Area" is a way of defining a single neuron's response to auditory
stimulus by systematically varying the Frequency and Intensity of a pure
tone stimulus over the entire range that the unit responds, and recording
the spike discharge rate at each "stimulus point". A "stimulus point" is
defined as one particular combination of Freq-Intensity, and may include it
many repetitions of the stimulus.
The RA program has since been extended to do more than just a traditional
reponse area, but some of the terminology is still used in the same way.
Data are collected and stored as separate "datasets" in a data file.
Each dataset consists of one or more stimulus points, and each stimulus
point conists of one or more repetition of the stimulus. See the
DAFLIB documentation for a discussion
of data storage formats.
The most basic type of data collected by the RA program are of two
types: "Unit (Spike Time) Data" and "Analog Data".
One or both of these is collected at each stimulus point within a dataset,
and stored in the data file for that experiment.
Typically, there is only data file for each animal (or subject) used for
experiments, but this is not a requirement, and in some cases (such as
behavior expts), there may be several separate data files for the each
animal/subject.
System Requirements
(a) Hardware
RA was originally written for a Harris (Datacraft) 6024/5 computer with
the D.M.S. operating system, and
ran on that system from approx. 1977 to 1987.
In 1987 it was converted to run on a MicroVAX-II computer with a RAMTEK
color graphics display and the VAX/VMS operating system.
It currently runs on a Digital VAXstation 3200 using the built in
VWS graphics display and OpenVMS V5.5-2.
Most recently (1999) it is in the process of being ported to the
Windows/NT operating system.
The RA program is heavily dependent on the underlying data acquisition
and graphics display hardware.
It also calls several system services and therefore depends on the
operating system.
As such, it is not an easy program to port from one system to another,
but an effort has been made to separate system-dependent and system-independent
parts into separate modules.
The Harris version of RA used the DSS-1 (Digital Stimulus System) hardware
designed and built by Dick Olson and Bill Rhode
(see Ref # 1), which also included a UET (Unit Event
Timer) and a hardware Histogram Binner.
The original DSS had three independent channels of stimulus output,
a 16,000 word general waveform buffer (GEWAB) and attenutors at the
output of each channel, with a range of 0 to 132 dB with 1 dB increment.
It also featured many knobs, joysticks and LED displays, and some
experiments could be done by simple manual control from the DSS front
panel.
The sub-system was completed by a high-speed 12-bit A/D converter and
Spectrum Analyzer designed and built by Pat Wilson, and DMA graphics
controller and display built by the Physical Sciences Lab, UW-Madison.
The VAXstation version of RA relies on the DSS-II hardware built by Dick
Olson for stimulus generation (completed in 1986).
The DSS-II is an improved and lighter-weight version of the original
DSS, and connects to the VAXstation via a DRV11-WA interface card to the
system Q-Bus.
It has two independent channels of stimulus output, using 16-bit DACs,
each with attenuators that can be set from 0 to 127 dB in 1 dB increments,
and a 1,000,000 (16-bit) word waveform memory (GEWAB) for playback of
non-standard sounds.
It features a more flexible timer sub-system, and two independent duration
and delay timers per channel.
This allows for additional expt. types such as mixing tones and noise in
the same DSS channel (digitally).
It also allows more output modes, such as computed noise, AM, FM, etc.
and a user definable on/off window (vs. just a linear ramp in the original
DSS).
One notable feature of the DSS-II is that it has no front panel, or rather
the front panel is blank, with just a single LED, which blinks on/off with
the stimulus.
The user has to rely on the computer entirely for stimulus generation
and control.
The data acqisition system also includes a UET (Unit Event Timer) built
by Dan Yee.
A variety of A/D converters are supported, including a DEC
ADQ-32, a Grant Technology model 123, and a Data Translation model DT-2752.
These are all commercially available (at the time) 12-bit A/D converters
with sample rates between 150,000 to 250,000 samples/sec, and plug into
the Q-bus.
An additional A/D converter supported is one built by Dan Yee of the Medical
Electronics Lab.
It features a fast (400,000 samples/sec) 16-bit Analogic A/D and connects
to the Q-bus via the DRV11-WA DMA interface board.
It also features an on-board Rate Generator (the Grant.Tech and DEC ADQ
A/D's use the Rate Generator that is built into the DSS-II, while the
Grant Tech A/D uses a special independent Rate Generator built by Bruce
Anderson at the Waisman Center).
This hardware is all controlled from the VMS computer by specially written
drivers and routines, which are partly described in the
DSSLIB documentation.
Currently (1999), new data acquisition hardware is being built by Mike Rosing.
Named DSS-III, this system is based on DSP technology.
In particular, it is designed around PC-44 and PC-32 DSP boards for the
ISA bus from Innovative Integration Inc.
Besides being connected to a machine (Intel or Alpha based) that runs
Windows/NT, one important feature of the new DSS-III is that it will
support (optionally) a 25-bit DAC, and also have several additional
general-purpose I/O ports for behaviour experiments.
This hardware is currently under construction, and is not supported as yet
by the RA program.
(b) Software
RA is written in Fortran, using the Digital Fortran compiler for OpenVMS.
The DSS routines are also written in Fortran.
The A/D and UET routines are in C, and the device drivers for all three
devices (DSS, A/D and UET) are written in assembly language.
It is expected that the new version of RA (for Windows/NT) will be written
in a combination of C++ (using the Microsoft Visual C++ compiler) and
Fortran (using Digital Visual Fortran).
Preliminary device drivers are being worked on by Mike Rosing and Jane
Sekulski using WinDK from Bluewater Systems.
Architecture
RA consists of a number of programs that run in a multi-tasking
environment.
The figure below shows the main components of RA and their interactions.
Logical Unit Numbers
The following is the assignment of Logical Unit Numbers (LUN's) currently
used by RA:
The DSSCV Array
The single-precision floating point array DSSCV in RA keeps track of
"current values" of common
parameters needed and used by RA.
(DSSCV stands for DSS Current Value).
For example, if the Frequency is being varied, then the 2'nd value
in DSSCV always holds the current value of frequency.
DSSCV is stored in a common block, and is accessible to all
routines within RA.
Actually DSSCV is a two dimensional array, of size DSSCV(100,2).
The second dimension holds the value for either the master DSS (=1)
or slave DSS (=2).
The following table shows how the contents of DSSCV are allocated:
Common Event Flags
RA makes extensive use of Common Event Flags to synchronize activity between
different processes that are usually running in parallel at the same time.
Since the other tasks are often shared by programs other than just RA, the
common event flags have been documented in the following separate
document.
Click here or
on the link below to see the list: References
(1) "DSS - Digital Stimulus System", by R.E.Olson and W.S.Rhode.
(2) "DAFLIB - Data File
Structure and Data Storage and Retrieval Routines"
R.Kochhar, Dept. of Physiology, Tech report # 12, June 1993.
(3) "DSSLIB - Stimulus
Generation and Data Acquisition Routines",
R.Kochhar and J.Sekulski, Dept. of Physiology, Tech. Report # 10, Sept. 1988.
If you have questions or suggestions about this document,
please send them by e-mail to
kochhar@physiology.wisc.edu
Back to RA Documentation
LUN Used for
--- --------
1 Data File (EDF)
2 PSF (DCPF)
3 CSF (Calibration Storage File)
4 STBF (Status Table File)
5 Keyboard input
6 Terminal (screen) output
7 Mailbox MAIL_UET
8 Mailbox MAIL_DIS
9 Mailbox MAIL_IC
10 Mailbox MAIl_IC2
11 GW storage file
12 Mailbox MAIL_GWI
13 Error message file
14 Mailbox MAIL_DCPRA
15 Mailbox MAIL_UET2
16 Mailbox MAIL_CAM
17 Remote VS-server
18 Remote CN-server
19 Mailbox MAIL_AD
20 Mailbox MAIl_AD2
21 Remote SF-server
22 Mailbox MAIL_GWFL
23 Diagnostic file (t:diag_ra.txt)
DSSCV index Contents
----------- --------
1 DSSN (DSS number, 1 or 2)
2 FREQ or FCARR (Carrier Frequency, Hz)
3 SPL (dB)
4 MODEX (External or Program start mode)
5 MODED1 (Delay-1 mode)
6 MODED2 (Delay-2 mode)
7 MSLAVE (Master or Slave) (1=master, 2=slave)
8 DELAY1 (Delay-1 in microsecs)
9 DUR1, STMDUR or DUR (Stimulus Duration in millisecs)
10 DELAY-2 (Delay-2 in microsecs)
11 DUR2 (Duration-2 in millisecs)
12 REPINT (Repetition Time in millisecs)
13 DELM, MDELAY or DELAY (Master delay in microsecs)
14 NREP or NREPS (Number of repetitions)
15 RTIME (Rise Time in millisecs)
16 FTIME (Fall Time in millisecs)
17 MODE (Output mode)
18 PHASE (Carrier initial phase (0 to 1))
19 FMOD (Modulation Frequency (Hz))
20 PHASM or PHASEM (Modulation Phase (0 to 1))
21 DMOD (Modulation Depth (0 to 1))
22 VALM (Modulation Value (-1 to +1))
23 VALC (Carrier Modulation constant)
24 FRLOW (Low Frequency (Hz))
25 FRHIGH (High Frequency (Hz))
26 FMRISE (Rise time for FM sweep (seconds))
27 FMDWELL (Hold time for FM sweep (seconds))
28 FMFALL (Fall time for FM sweep (seconds))
29 ATNSET (Attenuator setting (dB))
30 CONSPL (Constant SPL code (0=No, 1=Yes))
31-38 GWFIL (GW File name (32 chars))
39-41 GWID (Gen. waveform DSID (12 chars))
42 DSNUM (Data set number of Gen. waveform)
43 TONLVL (Tone level multiplier for mask stim (0 to 1))
44 GWLVL (GW level multiplier for masked stim (0 to 1))
45 MASKSTM (Masking stimulus code (1=tone, 2=GW))
46 FREQ-1 (Freq. for DSS-1 (LINCX data))
47 FREQ-2 (Freq. for DSS-2 (LINCX data))
48 SPL-1 (SPL for DSS-1 (LINCX data))
49 SPL-2 (SPL for DSS-2 (LINCX data))
50 ICD (Inter-click delay (millisecs))
51 ITD1 (Inter-click delay for first click (microsecs))
52 ITD2 (Inter-click delay for second click (microsecs))
53 CDEL (Initial delay of first click (microsecs))
54 SPKNUM (Speaker number (free-field expts))
55 PHASM1 (Phase of lower side-band (0 to 1)) (for CAM)
56 PHASM2 (Phase of Upper side-band (0 to 1)) (for CAM)
57 AZIMTH (Azimuth for current VS stimulus (deg.))
58 ELEVTN (Elevation of current VS stimulus (deg.))
59 NOTCHCF (Synthetic Notch center freq. (Hz))
60 NOTCHBW (Synthetic Notch (10-dB) band-width (Hz))
61 NOTCHDEP (Synthetic Notch depth (dB))
62 CGNUF (Upper freq. cutoff for comp. gaussian noise (Hz))
63 CGNCF (Filter CF for computed gaussian noise (Hz))
64 CGNBW (Band-width for comp. gaussian noise (oct or Hz))
65 CMNMF (Modulation Freq. for computed noise (Hz))
66 CMNMD (Modulation depth for computed noise (0 to 2))
67 CMNMP (Modulation phase for computed noise (0 to 1))
68 CNCF2 (CF for Band-2 (Hz))
69 CNBW2 (Band-width for noise band-2 (Hz))
70 CNMF2 (Mod. freq. for Band-2 (Hz))
71 CNMD2 (Mod. depth for Band-2 (0 to 2))
72 CNMP2 (Modulation phase for Band-2 (0 to 1))
73 CN2BLVL (Level of Band-2 (dB up from Band-1)
74 RMULT (CF ratio multiplier for 2-band noise)
75 ITDRATE (ITD-rate of GW waveform (microsecs/sec))
76 NPGW (No. of points loaded in GEWAB)
77 TONLVLS (Tone level for masked stimulus (dB SPL))
78 GWLVLS (GW level for masked stimulus (dB SPL))
79 AFREQ (Adpater frequency (Hz)) (for SSF)
80 TFREQ (Target CF (Hz)) (for SSF)
81 TF0 (Target fundamental (F0)(Hz)) (for SSF)
82 ADDUR (Adapter duration (millisecs)) (for SSF)
83 ADSPL (Adapter SPL (dB)) (for SSF)
84 SINT (Silent Interval (millisecs)) (for SSF)
85 TGDUR (Target duration (millisecs)) (for SSF)
86 TGNUMH (Target number of harmonics) (for SSF)
87 TGSLOP (Target filter slope (dB/octave)) (for SSF)
88 TGSPL (Target SPL (dB)) (for SSF)
89 GWRES (Gen. waveform playback resolution (microsecs))
90 GWINC (GW address increment for playback)
DCP Common Event Flags
This page last modified on : Oct. 9, 2003