Welcome | spec | C-PLOT | Support | Users | Contact
 

spec Hardware Guide

spec, a UNIX-based software package for instrument control and data acquisition, includes built-in support for a wide variety of motor controllers, counters, timers and other data-acquisition devices, allowing great flexibility in a site's hardware configuration. Lists of currently supported devices follow. Support for additional devices is continually being added.

For maximum flexibility, spec also provides direct user access to RS-232C, GPIB, CAMAC, VME, PC port and even socket interfaces. The functions available to do this are also described below.

Please contact CSS for specific hardware recommendations, or to discuss adding support for other interfaces, devices or UNIX platforms.

CSS has adapted spec to work in the distributed computing environment (TACO) at the European Synchrotron Radiation Facility (ESRF). There, the control hardware resides in VME crates with ESRF-maintained servers and drivers handling the communication between spec and the VME devices.

Support for the EPICS distributed computing environment, as is used at many beamlines at the Advanced Photon Source (APS) at Argonne National Lab, is also in place. Support for the alternative SCIPE distributed computing environment, as is used at the DND-CAT at the APS, is included.

CSS has also developed support for the equipment manager RPC-based ethernet control of hardware used at the SPring-8 synchrotron.

Contact CSS for information on customization to other special environments.

COMPUTER PLATFORMS

This table lists the computers and UNIX versions on which spec is in use. spec will run on most UNIX systems, although the support for data-acquisition hardware will vary. Contact CSS if you are interested in using spec on a UNIX system that is not listed below.

Devices that use serial (RS-232C) ports are always supported. GPIB is also usually available, particularly if there is a National Instruments board and driver for the system. Other types of hardware, such as CAMAC, VME or special PC bus adapters may or may not be available or feasible. Support for a number of ethernet socket-based hardware devices is included with spec. Like serial devices, the ethernet devices should be usable on all supported platforms.

  • Intel compatible (486 or better) with Linux
  • Sun4 and SPARCstation with SunOS 4.1, Solaris 2.x, Solaris 7,8
  • HP 9000/700 Series with HPUX 9.x/10.x/11.x -- spec includes support for E/ISA slots

spec will be updated to newer releases of the various operating systems as needed. Other platforms have been supported in the past, but due to lack of interest from spec users, support for those platforms has been suspended. Again, contact CSS if interested in unlisted platforms.

The most popular platforms for spec is Linux on a PC.

HARDWARE INTERFACES

Hardware interface availability varies among platforms, with the table that follows showing the hardware controllers spec supports on each. Other controllers will be added in the future based on user interest.

Notes:
[1] As of spec release 5.05.02-5, the older PCII and PCIIA GPIB cards have direct support built into spec on Linux systems. Previously, these cards were only supported by the now deprecated GPIB driver available by anonymous ftp from ftp.llp.fu-berlin.de. The new Linux Source Forge GPIB driver supports these and many GPIB cards.
[2] As of spec release 5.07.02-6, built-in support for the AT-GPIB and PCI-GPIB cards is included. As of release 5.07.02-4, support for GPIB-ENET is included No additional drivers or vendor libraries are required. For older spec releases and 2.4 or earlier Linux kernels, GPIB drivers for the AT, PCI and ENET cards are available from National Instruments at ftp.ni.com. However, the newer version 2 drivers (needed for 2.6 Linux kernels) are not supported by spec. Use the Source Forge driver instead.
[3] The GPIB to CAMAC modules require a National Instruments GPIB interface on PCs.
[4] Currently, for PCs, only supported on Linux.
[5] Only on Linux. Supported when used with SBS (Bit-3) driver software Model 1003 (not beta versions).
[6] Only on systems for which National Instruments provides driver software (not Linux).
[7] Usable on HPs with E/ISA slots.
[8] Can be used either with bundled CSS software or with Kinetic Systems software.
[9] Supported when used with SBS (Bit-3) driver software Model 933.
[10] Supported when used with SBS (Bit-3) driver software Model 934.
[11] Supported when used with SBS (Bit-3) driver software Model 944.

Hardware that operates on serial (RS-232C) interfaces can be used on any platform.

With release 4.01.11 of spec, up to four GPIB controllers can be configured simultaneously. With release 5.07.02-9, up to eight GPIB controllers can be used.

With release 4.05.06 of spec, up to four VME controllers can be configured simultaneously.

With release 5.06.02-1 of spec, up to four CAMAC controllers can be configured simultaneously (with some restrictions).

Operation of CAMAC controllers that plug into the host bus may require special drivers written by CSS. (Note that the DSP 6001/2 with PC004 and the KSC 2926 PC board may now be operated within in spec in a polled, driverless mode.) The KS 3929 SCSI to CAMAC controller on the Sun platforms (both Sun0S 4.x and Solaris 2.x) requires a special driver provided by CSS. The KS 3929 SCSI to CAMAC controller can be used on the HP700 platform either with the (rather expensive) KS software or with the bundled software included with spec.

Multiple copies of spec can be run on a single platform to control multiple diffractometers sharing a single CAMAC or GPIB controller. In general, though, individual CAMAC modules cannot be shared by multiple copies of spec.

USER ACCESS TO HARDWARE DEVICES

spec provides built-in support and a consistent user interface for motor controllers, counters, timers and MCA-type devices, using commands such as tcount(), getangles, move_all, etc. Basic user-level access to serial, GPIB, CAMAC, PC I/O port and socket interfaces is available using the following functions.

The functions ser_put() and ser_get() read strings from and write strings to selected serial devices. Baud rate and various line characteristics such as raw or cooked mode and parity are set using spec's configuration editor.

Direct GPIB access is through the functions gpib_get(), gpib_put(), gpib_poll() and gpib_cntl(). The first function reads arbitrary strings or binary values from the addressed GPIB device, the second function writes strings, while the third one obtains serial poll status. The last function is used to send the DCL, SDC, GET, GTL and LLO messages, and to assert IFC.

User-level CAMAC access is through the functions ca_cntl(), ca_get(), ca_put() and ca_fna(). The first allows sending the CAMAC Z or C commands and setting or releasing crate inhibit. The next two read or write 24-bit data using function codes of 0 and 16, respectively, while the last function allows arbitrary transactions to a selected module.

On PCs and HP 700 platforms with an ISA bus, direct access to IO ports is provided with the functions port_get(), port_put(), port_getw() and port_putw(). The first two use byte instructions, while the latter two use word instructions.

When a VME controller is present, the functions vme_get(), vme_put(), vme_get32(), vme_put32() and vme_move() allow direct access to the VME bus addresses, with the last function allowing DMA transfers.

To reach hardware connected by ethernet, spec provides the functions sock_get(), sock_put() and sock_par(), to send and receive strings to the socket specified by a hostname and port number.

In the TACO version of spec, the special functions taco_io() and taco_dc() give the user access to most of the device servers and to the data collector.

In the EPICS version of spec, the special functions epics_get(), epics_put() and epics_par() allow arbitrary channel access.

In the equipment manager environment, the special function em_io() allows arbitrary access to the RPC communication.

HARDWARE DEVICES

Support for all the hardware options in the following tables is included with each spec distribution. spec's spread-sheet styled configuration editor makes it easy for the spec user or the site's spec administrator to select or modify the hardware configuration.

The following table lists the device controllers spec currently supports. (Note, please contact CSS before ordering equipment based on this list for specific recommendations or comments regarding particular controllers.)

Notes:
[1] The KS 3640 may be used as a timer, a counter or a position accumulator for the Joerger SMC.
[2] The Ortec 994 may be configured as a blind timer with its two channels available for counting.
[3] The PC-DIG frame grabber requires a linux driver, which is available at ftp.gom.com.

Different types of motor controllers may be used simultaneously. For example, both CAMAC E500 and the Oregon Micro Systems PC-board motor controllers can be active at the same time.

spec supports a motor channel multiplexing capability that allows one channel of a CAMAC E500 to be used to control up to 48 motors, or one channel of an OMS controller to be used to control up to 16 motors. Several sites have implemented this feature. Contact CSS for details.

Access to MCA and other miscellaneous data acquisition devices is through the functions mca_sel(), mca_get(), mca_put() and mca_par(). The first selects among several configured devices, the second transfers data from the device to spec, the third transfers data from spec to the device and the fourth implements arbitrary device-dependent capabilities.

Access to CCD and other 2D data acquisition devices is through the functions image_get(), image_put() and image_par().


... Meeting the software needs of scientists since 1985 ...

Return to CSS home page ...
Last Updated February 20, 2008
Send comments, queries, suggestions to info@certif.com

© 2008 Certified Scientific Software. All rights reserved