Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
In a standard CAMAC data acquisition cycle, each read or write operation requires the following sequence: (1) the controller places the station number N, subaddress A, and function F on the dataway; (2) the addressed module decodes the command and places data on the read lines (for read functions) within 300 ns (the dataway strobe time); (3) the controller accepts the data and checks the X (command accepted) and Q (special response) lines; (4) the controller removes the command and the cycle completes. The minimum cycle time per CAMAC operation is approximately 1 microsecond, yielding a raw maximum throughput of about 1 million transfers per second. However, in a computer-controlled system, each CAMAC operation typically requires program intervention — a CAMAC I/O instruction executed by the host CPU — which introduces overhead of 5 to 50 microseconds per transfer depending on the computer architecture and operating system. This overhead reduces the achievable throughput to 20,000-200,000 transfers per second, which is insufficient for reading out large detector arrays between accelerator beam pulses that may be only 1-10 milliseconds apart.
Block transfer operations eliminate the per-transfer software overhead by having the crate controller autonomously execute a sequence of transfers once initiated by a single software command. The controller generates the sequence of N, A, F addresses automatically and transfers the data words directly to or from the computer memory using a direct memory access (DMA) channel.
| Transfer Mode | Software Overhead per Word | Typical Throughput | Best For |
|---|---|---|---|
| Single CAMAC operation (programmed I/O) | 5-50 µs | 20,000-200,000 words/s | Configuration, status checking, single-shot measurements |
| Q-stop block transfer | None (DMA only) | 500,000-800,000 words/s | Reading variable-length data from ADCs with built-in scan termination |
| LAM-stop block transfer | None (DMA only) | 500,000-800,000 words/s | Reading data from modules with LAM interrupt per event |
| Address-scan block transfer | None (DMA only) | 800,000-1,000,000 words/s | Reading fixed-length data from all modules in sequence |
The CAMAC dataway includes a special response line called Q, which has distinct meanings in single-cycle and block-transfer operations. In a single transfer, the Q response from the addressed module indicates a special condition (the specific meaning is module-dependent). In block transfer operations defined by IEC TS 61956, Q takes on a critical role as the block transfer control signal. When Q = 1 after a read cycle, it signals the crate controller that valid data was read and another read should follow. When Q = 0, it signals the end of the block (the “stop” condition), and the controller terminates the block transfer. This mechanism is called Q-stop and allows modules to control the data flow autonomously — for example, an ADC module can assert Q = 1 as long as it has converted data to be read, and drop Q to 0 when its internal buffer is empty. The block transfer controller simply reads repeatedly until Q goes to 0, without any software involvement.
In Q-stop block transfer mode, the crate controller executes successive CAMAC read cycles to the same station and subaddress (N, A) while monitoring the Q line after each cycle. The sequence is: (1) software initiates a Q-stop block read from a specific (N, A); (2) the controller executes CAMAC cycle F(0) read on (N, A); (3) if Q = 1, valid data was read — the controller transfers the data word to the DMA buffer and immediately repeats the read cycle to the same (N, A); (4) if Q = 0, the end of the block is reached — the controller terminates the sequence and generates an end-of-block interrupt to the host. This mode is particularly useful for modules containing FIFO (first-in-first-out) buffers, multi-event memories, or scanning ADCs that can present successive conversion results on successive read cycles.
The timing specification in IEC TS 61956 requires that in Q-stop mode, the time between the Q = 1 from one cycle and the initiation of the next cycle must not exceed 200 ns. This tight timing ensures that the addressed module’s internal data source remains stable and that the dataway is not left in an indeterminate state. The total time per Q-stop cycle in a typical implementation is approximately 1-2 microseconds, depending on the crate controller’s logic speed and the module’s response time.
LAM-stop block transfer mode is used for reading data from multiple modules in a crate that each generate a LAM (“Look-At-Me”) interrupt when they have data available. In this mode, the crate controller scans across stations (N = 1, 2, 3, …, 23), testing each for a pending LAM. When a LAM is found, the controller performs a read cycle on that station. After the read, it continues scanning from where it left off. The block transfer terminates when a complete pass across all stations is made without finding any pending LAMs. This mode is essential for event-driven data acquisition systems where the number and identity of modules with data vary unpredictably from event to event.
The specification defines the maximum scan rate and the timing relationship between the LAM signal assertion and the read cycle. It also defines a priority encoding scheme where stations with higher N numbers have higher priority in the scan order, ensuring that higher-priority data sources are read first when multiple modules have data simultaneously.
The practical implementation of CAMAC block transfer requires a DMA (Direct Memory Access) controller that can accept data words from the crate controller and write them into the host computer’s memory without CPU intervention. IEC TS 61956 defines the interface between the crate controller’s block transfer logic and the DMA channel, specifying the handshake signals, data word format, and end-of-block notification mechanism. In typical implementations, the DMA controller is integrated into the CAMAC branch driver or crate controller itself, or provided as a separate CAMAC module (such as the Kinetic Systems 3952 “List Sequence Controller” or the Standard Engineering Corporation “Smart Crate Controller”). The DMA address counter must be initialized before the block transfer begins, with the starting memory address and either a word count (for fixed-length transfers) or a “transfer until Q-stop” mode (for variable-length transfers).
The block transfer operations defined in IEC TS 61956 were the backbone of data acquisition in numerous large-scale nuclear physics experiments from the 1980s through the early 2000s. In a typical experiment, signals from detectors (scintillation counters, proportional chambers, germanium detectors) are processed by CAMAC ADC modules (e.g., LeCroy 2249A charge-sensitive ADCs, Silena 4418 peak-sensing ADCs). When a trigger signal is received, the ADCs are instructed to digitize their analog inputs. During the beam gate interval (typically 1-10 ms), the crate controller performs a block transfer to read out all ADCs. The Q-stop mode is used: the ADC asserts Q = 1 as long as it has valid data, and drops Q = 0 when all channels have been read. This allows mixed configurations where different ADCs may have different numbers of active channels, without requiring software to track module configurations.
1. What is the difference between Q-stop and LAM-stop block transfer modes?
In Q-stop mode, the block transfer reads repeatedly from the same station and subaddress (N, A) until the module asserts Q = 0 to signal “no more data.” In LAM-stop mode, the controller scans across all stations in the crate, reading from any station that has a pending LAM (Look-At-Me) interrupt, and stops when a complete scan finds no pending LAMs anywhere. Q-stop is used for reading multi-word data from a single module (e.g., a multi-channel ADC), while LAM-stop is used for reading one word each from multiple modules that have data ready simultaneously.
2. What does the Q response line mean in CAMAC?
The Q line is a special response signal driven by the addressed module after each CAMAC dataway cycle. In single-cycle operations, its meaning is module-dependent — it might indicate overflow, underflow, data ready, or a specific module status. In block transfer operations (IEC TS 61956), Q takes on a standardized control function: Q = 1 means “valid data, continue block transfer” and Q = 0 means “end of block, stop transfer.” This dual role allows modules designed before the block transfer specification to remain compatible — they simply never assert Q = 1 during reads and the controller treats each transfer as a single-cycle operation.
3. Can block transfer be used for write operations in CAMAC?
Yes, IEC TS 61956 defines block transfer for both read and write operations. In a Q-stop write, the controller writes successive data words to the same (N, A) address, and the module asserts Q = 0 when its buffer is full (stop condition). Block write transfers are used for downloading waveform data to arbitrary waveform generators, loading pattern data to logic units, or initializing multiple DAC channels. The throughput advantage is similar to block reads — elimination of per-word software overhead.
4. Is CAMAC block transfer still relevant today, given modern bus standards?
While CAMAC has been largely superseded by VMEbus, CompactPCI/PXI, and MTCA.4 for new installations, many CAMAC systems remain operational in nuclear research facilities, nuclear power plants, and industrial environments. The block transfer concepts defined in IEC TS 61956 — Q-stop, LAM-stop, and DMA-integrated autonomous data movement — have been adopted and enhanced in modern standards. For example, VMEbus block transfer (MBLT, 2eVME, 2eSST) and PCI Express scatter-gather DMA use similar principles of hardware-controlled multi-word transfers with automatic termination conditions. The engineering insight that eliminating per-transfer software overhead is the key to high-speed data acquisition remains as relevant today as it was in 1999.