Il bus CAMAC

Il bus CAMAC (Computer Automated Measurement And Control), un sistema modulare di gestione dati utilizzato in molti laboratori di ricerca di fisica nucleare e in molti siti industriali. Vediamo come funziona.

Il bus CAMAC è uno standard internazionale definito dalla commissione ESONE (European Standard On Nuclear Electronics) del JCR, Ispra. Il bus è un insieme di conduttori elettrici che consentono il trasferimento delle informazioni tra i diversi dispositivi. All’interno del bus vi sono linee che trasmettono dati, altre che trasmettono indirizzi, sincronizzazioni, interrupt, riferimenti elettrici (potenza e terre), ecc. Per potersi connettere al bus è necessario che ogni dispositivo sia dotato di un’opportuna interfaccia. Utilizzato nel campo dell’acquisizione dati ma anche per applicazioni logiche, lo standard CAMAC prevede specifiche elettriche e fisiche per i moduli, per l’alloggiamento dei moduli stessi (crate) e per il blackplane  (dataway).  Il bus consente lo scambio di dati tra i moduli plug-in (fino a 24 in un singolo crate) e un controller, che poi si interfaccia con un PC (figure 1, 2 e 3).

Figura 1: crate CAMAC con alcuni moduli elettronici.

Figura 1: crate CAMAC con alcuni moduli elettronici.

 

Figura 2: specifiche Moduli CAMAC.

Figura 2: specifiche Moduli CAMAC.

 

Figura 3: crate CAMAC.

Figura 3: crate CAMAC.

Il crate CAMAC è formato da 25 slot numerati da 1 a 25. La stazione 25 è riservata al crate controller che ha la funzione di gestire i comandi tra moduli CAMAC che alloggiano negli altri slot e gestire il trasferimento  dati con un computer esterno. Un tipico comando CAMAC rilasciato sul dataway è rappresentato dalle seguenti informazioni:

➤ bus address;

➤ bus dati;

➤ bus di controllo;

➤ codice della funzione.

La comunicazione con i moduli avviene attraverso  il dataway, un backlane passivo incorporato nel crate che mette in comunicazione tutti i moduli. I comandi sono gestiti da due segnali di temporizzazione S1 e S2 (strobe); utilizzati nel caso di trasferimento di dati nei moduli (write command) e nel crate controller (read command).

Definizione dei comandi

In ogni comando CAMAC è specificato il modulo, una sottosezione del modulo (bus address) e la funzione da eseguire; inoltre, sono accompagnati da un segnale che indica l’esecuzione di operazioni nell’unità dataway.

➤ Numero della stazione (o modulo): ogni stazione è indirizzata da un apposito segnale che proviene da un pin della stazione di controllo. Le stazioni sono numerate in decimale (da 1 a 25).

➤ Bus address (A8, A4, A2, A1): il bus degli indirizzi che identificano le varie sottosezioni dei moduli.

➤ Funzione (F16, F8, F4, F2, F1): l’operazione che deve essere eseguita.

➤ Dati: fino a 24 bit possono essere trasferiti in parallelo tra il controller  e il modulo selezionato. Linee indipendenti sono previste per le due direzioni. L’originale standard è stato capace di un trasferimento di dati a 24 bit ogni microsecondo.

Più tardi, una revisione della norma è stato rilasciato  il supporto per cicli brevi che permettono un trasferimento ogni 450ns. Lo standard CAMAC IEEE comprende:

583 La base standard;

683 Block transfer specifications;

596 Paralle Branch HighWay systems;

595 Serial Highway system;

726 Real-time Basic per CAMAC;

675 Fortran subroutines.

Il bus CAMAC è un tipo di standard chiamato Standard “da progetto”; ovvero sono dei bus tecnicamente validi che nascono senza dover garantire continuità alle realizzazioni preesistenti. Sono però penalizzati dal fatto che non esiste una forza (grosso produttore o acquirente) che li “sponsorizzi” e faccia in modo che si impongano sul mercato. Quindi sono generalmente poco diffusi. Eccetto per il controller, ciascuno slot è connesso con 24 linee in lettura/scrittura che possono trasmettere dati a 24 bit (figura 4).

Figura 4: bus CAMAC (Crate controller).

Figura 4: bus CAMAC (Crate controller).

I moduli non sono connessi fra di loro ma solo tramite il controller,  inoltre la stazione di controllo è connessa ad ogni modulo con linee private: 24 linee di indirizzamento (linee N) che devono essere attivate per comunicare con la stazione e 24 linee “look at me” LAM (linee L) che segnalano al controller che una stazione necessita di attenzione. Per comunicare, il computer manda un messaggio al controller che: attiva la linea N, attiva le linee di sotto-indirizzamento A e attiva le linee di funzione (5 linee F). Le coordinate di ciascun modulo sono B (branch), C (crate), N (slot), A (stazione). Le funzioni di programmazione del CAMAC sono nate al tempo del FORTRAN (’77), e le successive implementazioni, per lo più, si riferiscono alle funzioni  FORTRAN.  I comandi consistono in segnali di tipo tempo inviati sulle varie linee del bus CAMAC, con intestazioni specifiche:

➤ N identificativo del modulo (numero di stazione del gestore comunicazioni del modulo);

➤ A identificante di sottosezioni del modulo (4 linee A=A1, A2, A4, A8) corrispondente ad un numero a 4 bit, ossia compreso nell’intervallo [0,15];

➤ F identificativo di funzione (5 linee F = F1, F2, F4, F8, F16) corrispondente  ad un numero a 5 bit, ossia compreso nell’intervallo [0,31];

➤ Fino a tre pacchetti da 8 bit ciascuno di dati W7 (W1, W2, W3) inviati dal Crate Controller sulle linee W;

➤ Fino a tre pacchetti da 8 bit ciascuno di dati R8 (R1, R2, R3) inviati dal modulo al Crate Controller sulle linee R.

L’invio dei comandi risulta dall’accensione (alzare, ossia mettere ad una data tensione una linea) per un tempo specifico di combinazioni successive di linee. Quelle di tipo N attivano la ricezione del comando sul singolo modulo corrispondente alla linea accesa. Quelle di tipo F ed A sono comuni a tutti i moduli e la combinazione di linee alzate individua un numero, espresso in codice binario. Quelle di tipo A attivano la ricezione della funzione individuata da quelle F su una particolare parte del modulo. La funzione F può necessitare di descrittori aggiuntivi, identificati da un’accensione di combinazioni delle prime 8, 16 o di tutte le 24 linee W o R (se la funzione necessita di un numero aggiuntivo da 8,16 o 24 bit). Tutte le sequenze temporali vengono regolate dal-l’accensione e dallo spegnimento dei segnali di strobe S1 e S2. Durante queste operazioni, viene alzata la linea busy, che inibisce ogni altra comunicazione; al termine del trasferimento (NAF, W o R), se il comando è riconosciuto dal modulo, esso alza la linea generale X e cerca di eseguire il comando stesso. In alcuni casi il modulo può chiamare  il Crate Controller attivando la linea LAM, mettendo in grado il Crate Controller stesso di far generare, se predisposto, degli interrupt al PC. Il discorso si differenzia per i comandi globali, i  quali vengono eseguiti contemporaneamente da tutti i  moduli che li possono accettare, una volta attivata la linea corrispondente.

Il crate  controller

Il crate controller (figura 5) è un oggetto indispensabile per eseguire qualsiasi operazione mediante tecnologia CAMAC.

Figura 5: crate controller.

Figura 5: crate controller.

La sua funzione è quella di distribuire l’informazione tra i vari moduli alloggiati nei diversi crate; infatti un solo modulo è in grado di gestire diversi crate CAMAC e pertanto un numero molto grande di moduli polifunzionali votati a funzioni diverse o comunque parallele.  Il Crate controller è necessario in quanto i moduli campionatori sono sia programmabili (cioè accettano comandi) sia generano un flusso di dati (risposta ai comandi, segnali campionati, informazioni di setup...) da e verso il PC. Questo modulo di controllo occupa due stazioni ed è in genere comandato in remoto; tale modulo viene connesso attraverso un flat-cable ad una scheda apposita alloggiata nel bus di un elaboratore. Caratteristiche di un crate controller sono le seguenti:

➤ pieno controllo tramite server Web incorportato;

➤ disponibilità di I/O NIM, contatori, generatori di impulsi;

➤ librerie per la gestione remota di comandi;

➤ possibilità di controllo remoto delle

tensioni del crate.

Un esempio di crate controller è il C111C (figura 6), le cui caratteristiche possono essere riassunte nella tabella 1.

Figura 6: crate controlle C111C.

Figura 6: crate controlle C111C.

 

Tabella 1: crate controller C111C.

Tabella 1: crate controller C111C.

Una volta inserito  il crate controller nell’apposito slot è possibile settare le sue proprietà di rete attraverso una connessione seriale; in questo modo, il C111C avrà un proprio indirizzo IP per la gestione via Web server delle operazioni.  Il Web Server è di facile utilizzo, strutturato in maniera chiara per fornire all’utente tutte le informazioni necessarie (figura 7).

Figura 7: struttura del Web Server.

Figura 7: struttura del Web Server.

Nella tabella 2 viene riportato un possibile elenco di comandi eseguibili direttamente con la pagina Web messa a disposizione.

Tabella 2: comandi del C111C.

Tabella 2: comandi del C111C.

La conversione fra i due standard può avvenire con un modulo nel crate, detto crate controller (CC), che normalmente risiede nelle ultime due stazioni del crate stesso; questo modulo si chiama 8901A (figura 8).

Figura 8: crate controller 8901A.

Figura 8: crate controller 8901A.

La frequenza  con  cui  flussa  i  dati  è di 255KS/s, dove con S si intendono pacchetti da 12 bit con diverse flag aggiunte. Escludendo  i tempi morti del protocollo di trasferimento dati (comunque non trascurabili) si arriva alla velocità ottimistica di circa 500Kb/s, che può essere preso come limite superiore nella velocità di trasferimento dati dell’intero sistema campionante, in quanto il PC accetta flussi di intensità di ordini di grandezza superiori. Il compito sostanziale del modulo 8901A è quello di far diventare  il sistema di moduli nel crate un unico strumento conforme allo standard GPIB, fornendo la conversione in CAMAC dei comandi GPIB uscenti dal PC (e viceversa),  disponendoli sul dataway del crate. Il  modulo 8901A viene connesso alla scheda di interfaccia sul computer tramite il cavo GPIB, avente 16 pin disposti su due file parallele.

L’antenato del CAMAC: il NIM

E’ il primo e più semplice standard per la Fisica Nucleare; definito nel 1964 dal comitato ESONE. L’apparato elettronico di base è stato sviluppato in forma di moduli, in accordo ad uno standard meccanico e a delle specifiche elettriche. I moduli NIM (Nuclear Instrument Module) non sono in grado di comunicare gli uni con gli altri attraverso il crate backplane; questa è una caratteristica degli standard successivi: CAMAC e VME. La normativa specifica anche cavi NIM, connettori,  impedenze e livelli di logica segnali. La logica veloce standard di comunicazione è la logica NIM (0 logico = - 0.8 Volt, 1 logico= 0 Volt).

Discriminatore C808

Modulo elettronico che lavora su bus CAMAC con segnali  logici  di tipo ECL; le soglie possono essere programmabili. E’ un “Constant Fraction Discriminator”  alloggiato in un unico modulo di bus CAMAC. Il modulo accetta  16 ingressi  e produce  segnali  ECL in 16 uscite con un fan-out di due. Ogni canale può essere attivato o disattivato tramite bus CAMAC utilizzando una maschera di registro.

Figura 9: schema a blocchi del discriminatore C808.

Figura 9: schema a blocchi del discriminatore C808.

 

Figura 10: discriminatore C808.

Figura 10: discriminatore C808.

 

 

Scrivi un commento

EOS-Academy
EOS-Academy