🧠 BTF Data Acquisition – Overview
project: https://github.com/infn-epics/epics-btf-daq
📘 Introduzione
L’acquisizione dati del sistema BTF (Beam Test Facility) è basata su moduli VME e un controller ETH2VME (CAEN V4718).
Il setup hardware coinvolge principalmente i seguenti dispositivi:
| Modulo | Tipo | Descrizione |
|---|---|---|
| CAEN V513 | PIO | Modulo di I/O digitale |
| SIS3800 | Scaler | Contatore/scaler per sincronizzazione e conteggio trigger |
| CAEN 965 | QDC | QDC a 16 canali |
| CAEN 792 | TDC | TDC a 16 canali, software analogo al 965 |
📎 Documentazione di riferimento:
🔗 BTF – Documentazione tecnica
⚙️ Funzionamento dell’acquisizione
Il processo di acquisizione segue una logica sequenziale molto semplice:
Lettura iniziale dello scaler
Si legge il contatore SIS3800 (canale 30) per sincronizzare il ciclo di acquisizione.
Serve anche a misurare se durante il processo vengono persi eventi.
Acquisizione dei QDC/TDC
caen965_acquire_channels_poll(...)→ legge i 16 canali del QDC965.caen792_acquire_channels_poll(...)→ legge i 16 canali del QDC792.
Lettura finale dello scaler
Dopo l’acquisizione vengono riletti i canali 30 e 31 dello scaler.
La differenza tra i contatori prima e dopo indica il numero di trigger/eventi persi.
acquisizione
lost: eventi persi nel ciclo correntetot_lost: totale eventi persi complessivamente
🔧 Esempio di codice funzionante:
👉 test_btf_daq2.cpp
🧩 Architettura hardware
I moduli sono dispositivi VME gestiti tramite il controller CAEN V4718 (ETH2VME).
Questo dispositivo permette di accedere al bus VME via Ethernet.
📗 Manuale tecnico:
🔗 UM8305 - V4718/VX4718 User Manual (CAEN)
🧠 Librerie e software CAEN
CAEN fornisce la libreria CAENVMELib, che consente di eseguire operazioni di lettura/scrittura VME via Ethernet.
Il tipico flusso di utilizzo è il seguente:
Inizializzare un oggetto controller (connessione con ETH2VME).
Accedere ai moduli VME specificando i relativi indirizzi.
Utilizzare le funzioni della libreria (
CAENVME_ReadCycle,CAENVME_WriteCycle, ecc.) per interagire con i moduli.
🔗 Integrazione con EPICS
EPICS dispone di moduli già pronti per la gestione dei CAEN965 e CAEN792, poiché condividono la stessa logica di accesso ai registri.
Esempio:
🔗 EPICS caenADCV965 – SLAC
Tuttavia, la maggior parte di questi moduli presuppone un controller VME locale (VMIC), con mapping diretto della memoria.
Nel caso del V4718 (ETH2VME), invece, la comunicazione avviene via rete, quindi occorre verificare se la CAENVMELib consente di emulare il mapping di memoria tramite driver Linux. Altrimenti l'uso dei moduli EPICS QDC,TDC che si trovano diventa meno immediata in quanto vanno utilizzate funzioni per l'accesso.
Un esempio di integrazione EPICS basato su CAENVMELib è disponibile qui:
🔗 EPICS softIoc con CAENVMELib – ESS Bilbao
🧭 Prossimi passi
Studiare il funzionamento della CAENVMELib con il controller V4718 (ETH2VME).
Implementare un driver EPICS che:
Inizializzi e gestisca i moduli CAEN965 e CAEN792.
Esegua la lettura dei canali e lo scarico dei dati via Ethernet.
Supporti la sincronizzazione con lo scaler SIS3800.