FORCAST:  A Wide-Field Infrared Camera for SOFIA

Home

Personnel    Science    Instrument     SOFIA     Technical Memos    

Software


Control software runs on a PC connected to FORCAST with fiber optic and RS-485 serial cables, while the user interface runs on a Java-enabled networked platform

Links this page:     compilers           hardware access           controlling dewar electronics
user interface           DCS ops

    compilers:

Utility Compiler system
hardware access/control
(device drivers)
Microsoft NT DDK (C)
data storage, quick look processing,
command interpreter
Microsoft C++
graphical user interface Borland JBuilder (Java)
documentation Microsoft Word
top

    hardware access:
Custom adapter cards on the PCI bus provide optic fiber channels to each of the two (nearly identical) hardware modules operating the two infrared detectors.
An RS-485 serial adapter card on the PCI bus provides communication with individully addressable motor controllers.

Component

Significance

Implementation

PCI interface access Communication with FORCAST hardware takes place over the PCI bus The device driver makes NT HAL function calls to obtain PCI BIOS-assigned recource information, retains it within the driver, and makes it available to user-mode code
Data acquisition Digitized array data are brought into the control computer. High volume data. Upon request for some specified number of data words, a sequence of bus-mastering (DMA) transfers is set up to accept data. Custom PCI adapter card acquires data on the fiber optic link and relays them over the PCI bus
DC-level monitor data Application obtains hardware DC-bias and clock monitor levels for display and recording. Low-volume data. Polled query-response communication takes place over the fiber-optic/PCI bus path
Motor control Motor indexers control filter wheels, dichroic slide, etc. User-mode COM port requests are handled by the OS to communicate over RS-485 serial chain
top

    controlling the dewar electronics:
The FPGA-based electronics package clocks the detectors, sets detector biases, controls chopping outputs, coadds detector data, and is flexible enough to do much more. Commands are accepted from, and coadded data are returned to, the control computer over optics-fiber links.
Array clocking Clocking tables are generated with a flexible scheme that gives users complete access to the entire pattern, allowing for asymmetric clocking, even to the level of a single detector element. Tables are file-based and can be cached by the program, ready to upload quickly
Detector operations Operation sequencing includes throw-away frames (during chop settle), non-destructive reading, chop positioning, and coadding details. This is also done with a file-based system designed for flexibility
Communications protocol Communication over fiber is done with a verification scheme that includes a byte-wise checksum comparison. A command/configuration is applied only after verification is acknowledged.
top

    user inter face:
The control program accepts user input only in the form of textual commands on a network socket (TCP) connection.
Commands A "little language" provides access to all functionality in a programming environment that includes conditional execution, nestable looping, functions definition, hex/decimal/binary input and output, integer, floating point, arrays, file access, etc.
Access to array data Memory mapping provides direct access to acquired detector data
(after it's been saved to disk!)
Graphical user interface The GUI is a Java program that can run on the same machine as the hardware-control program, or on any machine that can establish a network connection with it. Binary information flows back to the GUI on a separate socket allowing the GUI to accurately represent current status
GUI demonstrations A GUI demonstration requires connecting to the hardware-control program, which may be running on the current web site. Only one control-connection is possible at any one time. If it's present and not busy, this demo (NOT IMPLEMENTED) might work
top

    DCS operation:
A single TCP socket is provided to the SOFIA Data Cycle System (DCS) allowing complete command and control of FORCAST.
Built-in commands The DCS-SI protocol specification is completely supported
Command extensions The DCS can define macros for its own use that execute any FORCAST command(s) and return to the DCS text-formatted results
top

email: Justin Schoenwald.
Page last updated Oct 2005.