Overview
The Real Time System Editor (RTSE) turns Innovative's Data
Acquisition and Signal Generation hardware into an off-the-shelf
system ready to use. Providing bandwidth from kHz to MHz on both
analogue and digital signals across single and multiple channels. The
user simply selects the signal processing blocks (tokens) from the
library palettes, configures their parameters and connects the wires
in the desired configuration. The system is now ready to run! No need
to write any software!
RTSE works with the Matador and ChicoPlus family of boards to
provide multiple channels of acquisition & replay, such as the Delfin
with 32 24-bit ADC's & 6 24-bit DAC's. Systems can be scaled to use
multiple boards of the same type to produce 64, 96, 128 etc channel
systems.
RTSE makes use of all the hardware features that provide advanced
acquisition techniques, such as synchronised sampling and triggering.
RTSE will stream ADC channels to disk, display real time plots in
time & frequency domain, filter, FFT. Signals maybe generated or
streamed from disk to DAC's. Digital TTL or ECL signals can be
recorded to disk or replayed from disk.
RTSE has a UserCode facility so that users can easily write their
own custom signal processing code in C/C++ if necessary.
RTSE allows users to save the system configuration to a file for
future use.
Performance
RTSE is based around high performance PC's using Windows 2000/XP
and (optionally) RAID systems. RTSE is built upon Innovative
Integration's Armada toolset and OpenWire. This offers high
performance streaming making the best use of the Pentium 4's memory
interface and Intel's MMX & SIMD optimised Maths Libraries. All data
is passed around as arrays, with the minimal number of memory copies.
For example, a Delfin with all 32 24 bit ADC channels running at
48ksps with all channels going into 350 tap FIR filters and the
results going to disk file and 8 channels to a scope can be achieved
with a 2.8GHz 800 MHz FSB Intel Pentium4 machine! That's ~6MB/s across
the PCI, ~6MB/s to disk, and over 1000 million floating point math
operations for just the filters, plus updating time graphs at 15Hz.
Its impressive what can be achieved in Real Time on a Pentium with the
right software!
System Editor
The System Editor is where the user chooses and wires up the necessary
tokens for the desired system. Each token is given a name and a
postfix which is the token number. Wires maybe connected individually
or a bunch at a time, for example, all 32 outputs from a Delfin may be
connected in one go to a DataLogger. The user can name each individual
wire and the names are propagated to where wires are connected so the
user can easily see what's going where.
The example above shows a SigGen (signal generator) and a ChFReader
(channelised file reader) being summed and feed to a Delfin DAC
channel. The Delfin ADC channel is feeding a ChFLog (channelised file
logger) and 2 Scope tokens.
The System Editor also allows the user to configure the system to
run multiple loops, stop on certain conditions (like End of File) and
configure the streaming engine.
Scope

The Scope token provides visualisation and measurement facilities
to single or multiple channels, in the Time and Frequency domain. The
Scope receives all samples from the input wires and updates the
display and measurements at the chosen rate. This is to conserve Host
CPU bandwidth when rates are high. The Scope can measure Vppk, Vrms,
frequency, period, rise time, fall time, Vmax, Vmin, Vmean, pulse
width, duty cycle. The Scope can trigger from a chosen voltage level
with time delay like a DSO. The frequency spectrum display includes
averaging. |
File Access

RTSE supports two types of signal wire, ChF (channelised floats)
and Blk (blockmode).
- Blk mode wires contain the raw data format that comes from the
hardware. For example a ChicoPlus with AD16's will supply raw 16 bit
samples packed across 32 bit words, and that's the data format in
the Blk wire. The advantage of this is speed! The Host CPU does not
need to manipulate individual samples in the data.
- ChF mode wires carry a single channel of data in floating point
format, eg data from one ADC in floating point scaled to whatever
units the user wants. This mode makes handling the data easy but it
places a slightly higher load on the Host CPU.
RTSE has file access tokens for both Blk mode and ChF mode. These
tokens provide read from file or write to file. The ChF tokens will
handle multiple ChF wires, and assign a file to each channel, with
optional indexed file naming so that filenames are appended with the
channel number, signal name, time, date etc.
The user may set limits on file sizes for logging and instruct the
system to stop or go to the next loop when the file is full/empty.
Maths & Filters

The Maths library contains token's for Signal Generation (Sine,
Square, Triange, Gaussian, Random, Impulse), summing all inputs,
inversion, Gain, Lowpass Filter, Highpass Filter, Bandpass Filter,
Bandstop Filter, FFT and a FIR where the user specify's the filter
coefficients.
UserCode
RTSE has a UserCode facility which allows the user or third parties
to write a Windows DLL in C/C++ that contains tokens that can be
accessed in a RTSE system. This is perhaps the most powerful aspect of
RTSE, because it means a user can build a data acquisition system with
no necessary knowledge of the hardware drivers etc and just write the
signal processing code necessary for their application.

Above is an example for a token that adds all it's inputs together
to make one output channel. It can be seen that accessing the data is
simple in C/C++. Data is passed in and out as array's of floats, one
array per channel. The user is told the number of samples and the
sample rate. The token can have parameters that the user can set (9
floats and 1 string) and the parameters are passed back to the token
at runtime.
Video Tutorials
Here are some links to video tutorials on RTSE.
Click on each to view the Video in Internet Explorer
Features
- 1 to 100's of channels
- kHz to MHz Bandwidth
- Supports most Innovative Integration boards including:
- Channel synchronisation
- Advanced Triggering
|