Return to ING home page6  The camera interface

This page is part of the ING document INS-DAS-31 Design notes for UltraDAS

The Camera-i/f class abstracts a physical interface to the camera. More specifically, the interface is between the DAS computer and one SDSU detector controller; but udas_camera has no interfaces to the camera other than through the SDSU controller. At present, all cameras have only one SDSU controller and once interface-board in the DAS. Future cameras might need more than one controller, and they would then have to have one interface board per controller. INS-DAS-18 outlines the physical connections.

The hardware interface comes in two flavours: for S-bus, and for PCI bus. The S-bus version has minimal on-board intelligence, and functions as a serial I/O device with a bizarre interface; the semantics are ugly but relatively simple. The PCI version has an on-board DSP and is altogether too clever for its own good. The semantics of this device are complex and poorly understood, and the PCI interface is not serviceable at the time of writing.

The S-bus interface has minimal buffering for pixels. The hardware documentation is unclear, but there seems to be a FIFO buffer for roughly 1024 pixels. If this buffer ever overflows, due to slow service of the device in the Solaris kernel, then pixels are lost and the readout fails.

The PCI interface has a large buffer with FIFO characteristics. It holds 16 million pixels. If this buffer is ever overflowed, the results are undefined (experience suggests that the on-board processor of the interface may crash, forcing a reboot of teh DAS computer), but this is very unlikely to be a problem with typical readout speeds.

For both devices, the device driver distinguishes two modes, as discussed in INS-DAS-18:

Much of the ugliness of the interface arises from this bi-modality.

The Camera-i/f class abstracts the details of the two kinds of interface and provides a common API based on the method Camera_if::command_camera_if. After the device is opened and the camera is programmed, all operations, including readouts, are calls to this method.
 

Topics of detail