Overview
Concurrent’s Real-Time Clock & Interrupt Module (RCIM) is a multifunction card designed
for time-critical applications on Concurrent iHawk™ multiprocessing systems. The
RCIM provides key functionality for single system as well as multiple system applications.
Ideally suited for simulation, data acquisition and industrial control solutions,
the RCIM includes a synchronized clock, eight programmable real-time clocks, and
twelve input and output external interrupt lines. The RCIM mounts in a standard
iHawk PCI or PCIe slot and is fully supported by Concurrent’s RedHawk™ Linux® real-time
operating system.
Benefits
Real-Time Clocks
The RCIM includes eight 32-bit, programmable, POSIX-compliant, real-time clocks.
The clocks are programmable to several different resolutions which, when combined
with a clock count value, provide a wide range of timing intervals. The minimum
resolution is one microsecond.
The real-time clocks are decrementing counters that generate an interrupt each time
they reach zero. Real-time clocks may be one-shot or periodic. If periodic, the
original clock value is automatically reloaded into the counter each time zero is
reached and the clock again begins decrementing. This makes the real-time clocks
ideal for running processes at a given frequency (e.g., 600 Hz).
External Interrupts
Each RCIM board has twelve input and twelve output external interrupt lines. Input
interrupts are called Edge-Triggered Interrupts (ETIs), so named after their most
common mode of operation. These lines permit users to provide their own interrupt
sources to an iHawk system. The RCIM processes and delivers these interrupts to
the host system and, if configured to do so, routes and delivers interrupts to all
other RCIMs in the chain as distributed interrupts.
Each ETI can be configured independently of the others. An ETI may treat the incoming
signal as an edge or level sensitive interrupt. If edge sensitive, it may raise
an interrupt on either the rising or the falling edge. If level sensitive, it may
raise interrupts for either the high or the low signal value. Configuration parameters
are selected when the RCIM board and driver are initialized, and remain constant
for the life of the driver. Applications can dynamically arm or disarm, enable or
disable, select edge or level sensitivity and select the polarity for each ETI individually,
as appropriate to the needs of the application.
Processor Syncronization
The RCIM provides fully deterministic event synchronization for applications that
utilize multiple iHawk systems. The RCIM allows these systems to be chained together
so that applications can direct both external and clock interrupts to other CPUs
for fast inter-CPU event notification. RCIM interrupts can be triggered by hardware
events or be generated by user software. The synchronized clock on each RCIM can
be initialized by a designated master to provide a common, high-resolution time
base for processes running on all connected systems. On-the-wire time stamps allow
RedHawk Linux to provide for high resolution NTP synchronization between systems
containing the PCIe version.
Synchronized Clock
The RCIM’s synchronized clock is a 64-bit, non-interrupting, free-running counter
that uses the POSIX 1003.1 format. The synchronized clock’s high-order 32 bits are
encoded in seconds, and the low-order 32 bits are encoded in nanoseconds. The clock
ticks at 400 nanoseconds. Upon bootload of an RCIM-connected network, a designated
master RCIM clears the synchronized clock on all RCIMs and issues an enable signal
that simultaneously starts each clock. Application programs on all CPUs are then
able to read a common time value. Individual RCIMs can be programmed to ignore the
master synchronization signal and use their own synchronized clocks independently.
Distributed Interrupts
Distributed interrupts are interrupt signals sent from one RCIM to another via the
RCIM synchronization cable. Each RCIM has twelve distributed interrupt inputs and
twelve distributed interrupt outputs. Distributed interrupts can be generated by
an RCIM’s real-time clocks, by its external edge-triggered input lines or by software.
This feature allows an external event received by one CPU to be sent to one or more
other CPUs.
Connectors And Cabling
The RCIM includes a serial synchronization cable for daisy-chaining a master RCIM
to one or more slave RCIMs. Any number of iHawk systems can be linked by RCIM serial
synchronization cables. A connector is mounted on each RCIM for connection to external
interrupts. Customized connectors and cable lengths are configurable upon request.
Optional GPS Synchronization
An optional, on-board GPS module is available for aligning the RCIM’s synchronized
clock to GPS standard time. One GPS-equipped RCIM can synchronize all iHawks in
an RCIM chain. Antenna splitter modules for direct input of GPS signals to multiple
systems are also available. Multiple RCIMs equipped with the GPS module can provide
a common time base without any cable connections between iHawk systems. POSIX timers
based on absolute GPS time can be used to simultaneously start the execution of
programs on systems which are not physically connected.
Software Support
Concurrent’s RedHawk Linux allows application developers to take full advantage
of RCIM features. Users can read the synchronized clock, disable and enable individual
interrupt lines, send interrupts to external locations, and direct incoming interrupts
to user-specified application code.
In multiple system applications, Concurrent’s NightTrace analyzer tool can utilize
the RCIM’s synchronized clock to log system events using a single clock source.
Concurrent’s NightSim application scheduler can also make use of RCIM real-time
clock interrupts to synchronize frequency-based scheduling among application modules
running on multiple CPUs and systems.
Custom Engineering Support
Concurrent’s Special Systems group is available to design and deliver solutions
for customers who require features and functionality not included in Concurrent
catalog products. Concurrent engineers can build special packaging, integrate third-party
boards, develop drivers, and provide hardware and software designed to exact customer
specifications.