© Copyright 2002 Roper Scientific, Inc. 3440 East Britannia Drive Tucson, Arizona 85706 Tel: 520.889.9933 Fax: 520.295.0299 All rights reserved. No part of this publication may be reproduced by any means without the written permission of Roper Scientific, Inc. Printed in the United States of America. Photometrics and Roper Scientific are trademarks and Metachrome, PVCAM, and PXL are registered trademarks of Roper Scientific, Inc.
LIMITED WARRANTY — Roper Scientific Analytical Instrumentation Roper Scientific, Inc. makes the following limited warranties. These limited warranties extend to the original purchaser only and no other purchaser or transferee. Limited One (1) Year Warranty Roper Scientific warrants this product against defects in materials or workmanship for a period 1 year after the date of original invoice. During this period, Roper Scientific will repair a defective product or part, without charge to you.
warranty the original purchaser is also entitled to receive free version upgrades. Version upgrades supplied free of charge will be in the form of a download from the Internet. Those customers who do not have access to the Internet may obtain the version upgrades on a CD-ROM from our factory for an incidental shipping and handling charge. See Item 12 in the "Your Responsibility" section of this warranty for more information.
Table of Contents Chapter 1. Introduction Description.................................................................................................................................1 Software......................................................................................................................................2 Roper Scientific Customer Service..........................................................................................2 Chapter 2. ICL Introduction ..............................
Chapter 3. Advanced CCD Theory Introduction .............................................................................................................................29 Theory of Operation ...............................................................................................................29 Potential Wells..................................................................................................................29 Charge Transfer...........................................................
Chapter 1. Description Introduction The Advanced Camera Operation Manual includes: • Imager Control Language (ICL)— Rules of syntax, ASCI II command set, and example scripts • Advanced CCD Theory — Background theory for advanced ICL users Most Roper Scientific cameras use an application programming interface called PVCAM® (Programmable Virtual Camera Access Method). PVCAM is a custom, ANSI C library of camera control and data acquisition functions. Fullfunction imaging packages access PVCAM.
Software To run ICL scripts, you must be running a full-function imaging package that is ICL compatible. You must also have installed the ICL and PVCAM files that are appropriate for your camera and interface. PVCAM and ICL files are located on the Host Connectivity Kit (HCK) diskette. Installation instructions for these files are covered in your camera system’s Software Guide.
Chapter 2. Introduction ICL ICL scripts can be written in any text editor. Save the script as a text file, then download through an ICL-compatible imaging package. This chapter includes: Rules of Syntax Whitespace Parameters / Arguments • Script syntax • Function descriptions • Example scripts The basic rules of syntax are: • Carriage returns, line feeds, form feeds, tabs, spaces, and comments are treated as generic whitespace used to separate language elements.
Single Parameter Functions Some functions require a single parameter. Fractional/decimal and negative values are not allowed. Numeric expressions generate an error. Whitespace can be included anywhere inside the parentheses.
Verbs as Subroutines Begin and End You can think of verbs as camera functions or subroutines. A single-verb instruction such as flash() or clear_until_trig() can be expanded into a sequence of camera-specific instructions. Most verbs are directions for the camera to perform the function immediately using the current settings. There are two commands required for every script, if either command is missing, the program sets an error code.
Display Verbs The pixel_display verb is not sent to the camera and does not affect data collection. However, once the data has been collected, the application examines the script, the pixel_display verbs, and any loop commands. From this information, the application determines how to display the images. (Note that the pixel_display function may appear inside loops, outside loops, or both.) If you use pixel_readout anywhere in the script, you must also use pixel_display.
Function Definitions clear_parallel(clear_count); clear the entire parallel register, clear_count times clear_serial(clear_count); clear the serial register, clear_count times clear_until_trig(); waits for a trigger, clearing meanwhile expose(exp_time); a timed delay, while light falls on the CCD expose_until_trig(); allow light to fall on the CCD until a trigger pulse expose_while_trig(clear_first); bulbmode expose while you hold the button flash(flash_time); activate the flash circuit for fla
clear_until_trig( ); This function causes the CCD to enter clearing mode and continues clearing indefinitely until a trigger arrives. Both the parallel and serial registers are continuously clearing (moving charge toward and into the serial register then out). When the trigger signal arrives, the CCD finishes the current parallel shift (the maximum delay is the time to shift 1 parallel row) and then stops clearing. Execution immediately continues with the next script instruction.
loop_begin(loop_count); This function allows looping within a script. A loop_count specifies the number of times to perform the loop. All instructions between the loop_begin and matching loop_end commands are executed exactly loop_count times. Loops may be nested up to 16 deep. Note that indentation of a script’s source code may improve readability, but it does not alter the loop nesting in any way. loop_count must be between 1 and 65,535, inclusive.
You can use this function to stack several regions, one after the other, in the parallel direction. However, you cannot stack more than one region at a time in the serial direction. s_offset may be zero. All other parameters must be between 1 and 65,535, inclusive. s_size and p_size must be at least as large as their corresponding s_bin and p_bin. Finally, s_offset and s_size must be no larger than the CCD serial size. script_begin( ); This must be the first instruction in the script.
shift_mode_is( ); Shift Image and Storage. This is a parallel shifting mode that shifts the entire parallel register. This mode can be used on all CCDs and uses the normal clocking method that is equivalent to MPP off. The exception is for CCDs that require MPP clocking, and, in this case, MPP on is used. shift_mode_is_alt( ); Shift Image and Storage, Alternate. This is a parallel shifting mode that shifts the entire parallel register.
commands affect the shutter. For more information concerning the pinouts and electrical specifications of the trigger port, and how they relate to the shutter commands, refer to your camera’s User Manual. shutter_open( ); This function opens the camera shutter. Once the shutter_open_delay time has passed, this function continues on to the next script instruction. See shutter_close for more information.
Example Scripts The eight example scripts in this section illustrate the rules and principles of ICL. These scripts use every ICL function with the exception of shift_mode_sm() and the _alt modes. Electronic copies of the example scripts are in the ICL Example file on your HCK diskette.
TDI (Time Delay Integration) Panorama This script is written for use with a Kodak 1400 CCD (serial size 1317,parallel size 1035). The camera is attached to a telescope pointing straight up. The camera's external trigger port is connected to a synchronized time source that provides a pulse every few seconds. The pulse timing is closely coordinated with the image size, so the rotation of the earth moves the image on the CCD by exactly one parallel row width (6.8 microns) for each pulse.
Ratio Imaging: 2-Frame Ratio This script collects two frames in quick succession, for use in a ratio imaging experiment. The camera is a PXL®/37 (a Marconi CCD37-10 CCD, with a 512x512 image area, and a masked 512x544 storage area). Since the exposures must be tightly coordinated with the experimental setup, the camera and experiment communicate with each other as follows: 1. The script is set up, and the camera is started (note, the camera shutter opens, but it continuously clears until step 3). 2.
Ratio Imaging: Multi-Frame Ratio This script performs ratio imaging with the CCD37-10 CCD. Only three small subregions are needed, but to get a good statistical base for the images, you must take a sequence of 100 identical exposures.
3-Color Sequence In this setup the target is illuminated by three filtered lights. Each light can be switched on and off almost instantaneously (in less than a millisecond). There is a small amount of camera-triggered hardware logic that coordinates the hardware with the exposure. All lights are turned off when the Shutter Closed Output pin is on. The experiment resets and starts again when the Shutter Open Output pin goes high (and the first light turns on).
Intermittent Exposure This script takes a stellar image of a faint galaxy. The observatory is located under the flight path of a local airport and incoming planes occasionally pass through the field of view. The observatory has at least 30 seconds warning before a plane passes over, so the camera needs a signal to close the shutter, stop exposing (temporarily), then begin exposing again. The camera supports MPP mode, so the dark current can be drastically reduced during the several-hour exposure.
High-Speed Spectroscopy This script uses a frame-transfer device (the CCD37-10 CCD) to perform high-speed spectroscopy. It collects a spectral image in the image array, and bins that image down to a single line, as it shifts it into the storage area. THIS REQUIRES A FACTORY MODIFICATION TO THE CAMERA (SEE BELOW). The camera immediately performs another exposure, bins it, etc. A total of 544 binned spectra are accumulated in the storage array, then read out.
Error Codes This section lists the error codes that may appear when using ICL.
Man Pages This section contains the Man Page descriptions for the six ICL scripting functions included in the PVCAM library. These functions are intended for use by application programmers only. PVCAM Class 101: ICL pl_exp_display_script(101) NAME pl_exp_display_script – lists the display rectangles. SYNOPSIS boolean pl_exp_display_script(int16 hcam, icl_disp_ptr user_disp_array, void_ptr pixel_stream) DESCRIPTION This function can only be called after pl_exp_setup_script.
PVCAM Class 101: ICL pl_exp_init_script(101) NAME pl_exp_init_script – initialize the scripting library. SYNOPSIS boolean pl_exp_init_script(void) DESCRIPTION This function prepares and initializes the scripting option library. It must be called once, before any other scripting functions are called. RETURN VALUE TRUE for success, FALSE for a failure. Failure sets pl_error_code.
PVCAM Class 101: ICL pl_exp_listerr_script(101) NAME pl_exp_listerr_script – if an error occurred during script processing, list the exact position of that error. SYNOPSIS boolean pl_exp_listerr_script( int16 hcam, char_ptr err_char, uns32_ptr err_char_num, uns32_ptr err_line, uns32_ptr err_ch_in_line ) DESCRIPTION By default, this function returns zeros for all values, indicating that no logical or syntactical error was spotted in the script.
PVCAM Class 101: ICL pl_exp_setup_script(101) NAME pl_exp_setup_script – process a script; download instructions to the camera. SYNOPSIS boolean pl_exp_setup_script (int16 hcam, char_const_ptr script, uns32_ptr stream_size, uns32_ptr num_rects) DESCRIPTION hcam must specify a CCD camera that has been successfully opened by PVCAM. This function uses the input string script to create a control program for hcam.
PVCAM Class 101: ICL pl_exp_start_script(101) NAME pl_exp_start_script – begin exposing, return immediately. SYNOPSIS boolean pl_exp_start_script(int16 hcam, void_ptr pixel_stream) DESCRIPTION hcam must specify a CCD camera that has been successfully opened by PVCAM. This function is the companion function to pl_exp_setup_script. pl_exp_setup_script must be called first to define the exposure and program this information into the camera.
PVCAM Class 101: ICL pl_exp_uninit_script(101) NAME pl_exp_uninit_script – unitialize the scripting library. SYNOPSIS boolean pl_exp_uninit_script( void ) DESCRIPTION This function undoes the preparations done by pl_exp_init_script. After executing this function, scripting functions may no longer be called. RETURN VALUE TRUE for success, FALSE for a failure. Failure sets pl_error_code.
Decoding Decoding the ICL Decoding (defined as decoding the pixel stream to display one or more images) must be simple enough to easily use, yet, powerful enough to display most experiments. To satisfy both needs, the scripts can contain any number of pixel display statements. Each of these statements must specify a rectangular array of pixels to be decoded and displayed. In addition, these instructions can be contained inside of loops, making them much more powerful and flexible.
This page intentionally left blank.
Chapter 3. Introduction Theory of Operation Advanced CCD Theory The charge-coupled device (CCD) is the imager of choice for use in quantitative image acquisition systems. This chapter familiarizes you with CCDs and the terminology used in describing them. It also discusses CCD performance characteristics. If these are already familiar topics, you may still find this chapter useful as a refresher or a reference.
A thin layer of silicon dioxide is grown on a section of silicon and a conductive gate structure is applied over the oxide. Applying a positive electrical potential to the gate creates a depletion region where the free electrons generated by incoming photons can be stored. A potential well collects electronic charge from any source until the well is filled. Practical potential well capacities range up to a million electrons.
Classical CCD Implementations The one-dimensional charge transfer concept can be extended to two dimensions. Buried channels arranged in parallel establish columns; charge cannot migrate between columns. Along each column, charge is contained in individual potential wells by a multiphase gate structure, as discussed for the one-dimensional case. The result is a two-dimensional array of independent potential wells. A Typical CCD Imager shows a stylized CCD imager.
CCD Readout The standard CCD readout sequence is shown in CCD Readout. After an integration, a programmed sequence of changing gate potentials causes all charge packets stored in the parallel register to be shifted one pixel towards the serial register; the first charge packet in each column is shifted into the serial register. Once in the serial register, charge packets are individually shifted toward the output amplifier. The output amplifier produces a signal proportional to the charge in each packet.
Subarray Readout 1 2 A subarray is specified. 5 The CCD is exposed to light and a charge pattern accumulates in the subarray. 6 4 3 The charge in the subarray is fastshifted toward the serial register. 7 The first row is shifted into the serial register. 8 Steps 6 and 7 are repeated until the entire serial register is read out. 9 The charge is fastshifted toward the output node. Subarrays Binning The first pixel of the subarray is shifted into the output node.
Binned Readout 1 2 Charge in the parallel register is shifted once into the serial register. The CCD is exposed to light and a charge pattern accumulates in the parallel register. 5 6 3 Charge is again shifted into the serial register. The serial register contains the summed charge. 7 Steps 4 and 6 are repeated until the entire serial register is read out. The summed charge is shifted again. The output node contains the charge from four pixels.
Time Delay Integration 1 Image travel/parallel shift 4 CCD Architectures 2 3 5 6 Three types of CCD imagers are used for quantitative electronic imaging. CCD Architectures illustrates basic CCD structures that are in current use. CCD Architectures Frame transfer Full frame Interline transfer Mask Image Storage Photosite Full Frame The standard full-frame CCD imager has the simplest architecture. The parallel register is used for photon exposure, charge integration, and charge transport.
There are some special adaptations of frame-transfer devices, shown in Frame Transfer Variations. Frame Transfer Variations Standard frame transfer Image High-speed framing Storage High-Speed Framing Image Storage Spectral framing Image Storage The frame transfer concept can be extended to multiple frames by masking most of the parallel register and using only a small region as the image array.
CCD Camera Implementations To take advantage of the high performance a CCD has to offer, special slow-scan or still-imaging cameras have been designed to operate at a significantly lower speed than conventional video cameras. These cameras bring together several diverse technologies: high-performance signal processors, solid-state coolers, precision digitizers, and high-speed digital controllers.
Spectral Response Thinning Light normally enters the CCD through the gates of the parallel register. These gates are made of very thin polysilicon that is reasonably transparent at long wavelengths but becomes opaque at wavelengths shorter than 400 nm. Thus, at short wavelengths the gate structure attenuates incoming light.
Fiberoptics In most applications, the CCD is illuminated by light from an imaging source such as a telescope, spectrograph, or microscope. There is a class of applications, however, in which coherent fiberoptic bundles can be used in place of imaging optics. A fiberoptic bundle comprises millions of glass fiber strands, each of which acts as an individual light pipe. Each strand has a glass cladding that isolates it from neighboring strands to prevent crosstalk.
Dark Current Noise Dark current, or thermally generated charge, can be measured and subtracted from data, but its noise component cannot be isolated. Dark current noise is a particular concern in low-light applications. To reduce dark current, CCDs can be chilled to approximately –50°C with thermoelectric cooling. For extremely long exposures, liquid nitrogen is used to cool the CCD to as low as –120°C. At lower temperatures, CCD performance may be degraded due to poor charge transfer efficiency.
Additional Reading The following articles provide more information on CCDs and their applications. Aikens, Richard S. Charge-Coupled Devices for Quantitative Electronic Imaging. Tucson, Arizona: Photometrics, Ltd., 1991. Aikens, Richard S., Patrick M. Epperson, and M. Bonner Denton. “Techniques for Operating Charge Coupled Devices (CCD’s) in Very High Speed Framing Mode.” Proceedings of the Society of Photo-Optical Instrumentation Engineers 501, 1984. Dereniak, E.L. and Crowe, D.
This page intentionally left blank.
Index #-B 3-color sequence, 17 Arguments/parameters, 3 ASCII name, 6 Begin and End, 5 Binning, 33 Branching, 3 Bulb-mode exposure, 8 C C generation, 6 Calls, 3 Camera help, 2 repair, 2 Carriage returns, 3 Charge, 29 Charge transfer, 30 Charge transfer efficiency (CTE), 32 Charge-coupled device (CCD) advanced CCD theory, 29 architectures, 35 binning, 33 charge transfer, 30 charge transfer efficiency (CTE), 32 cooling, 37, 40 dark current, 29, 40 down converters, 38 fiber XE "Fiberoptic-coupled CCD" opticcou
H-L Q-R Help camera, 2 High-speed framing, 36 High-speed spectroscopy, 19 ICL scripting functions, 21 Image array, 10, 15, 16, 19, 35, 36 Interline transfer device, 36 Intermittent exposure, 18 Inverted operation.
TTL-compatible signal, 8 Underscores, 6 Unnested comments, 3 Verbs, 4 as Subroutines, 5 Display, 6 looping, 5 Shift, 5 syntax, 6 W-Z Warranties (cont.
BENELUX Roper Scientific, BV Ir. D.S. Tuijnmanweg 10 4131 PN VIANEN, Netherlands tel: 31.347.324989 fax: 31.347.324979 email: mailto@roperscientific.com FRANCE Roper Scientific, SARL Z.I. Petite Montagne Sud 4, rue de l'Oisans - C.E. 1702 91017 Evry Cedex, France tel: 33.160.86.03.65 fax: 33.160.86.07.09 email: princeton.instruments@wanadoo.fr USA Roper Scientific – Arizona 3440 East Britannia Drive Tucson, Arizona 85706 tel: 520.889.9933 fax: 520.295.0299 email: cservice@roperscientific.