BUS VME e BUS CAMAC

Il bus CAMAC (Computer Automated Measurement And Control) e il bus VME (Versa Module Europe), due sistemi modulari di gestione dati utilizzati in molti laboratori di ricerca di fisica nucleare. Vediamo le loro differenze principali e come funzionano.

Il bus CAMAC è uno standard internazionale definito dalla commissione ESONE (European Standard On Nuclear Electronics) del JCR, Ispra. 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 (figura 1) tecnicamente validi che nascono senza dover garantire continuità con le realizzazioni preesistenti.

Figura 1: evoluzione del Bus.

Figura 1: evoluzione del Bus.

Il VME (Versa Module Europa) è l’erede del lavoro fatto dai progettisti della Motorola, a partire dal 1978, per dotare le CPU della serie 68k di un bus. Il  campione originale del bus VME era un bus a 16 bit, destinato per entrare nei attuali connettori Eurocard DIN. La versione successiva a 32 bit è rimasta in uso per molti anni (IEEE-1014-1987). Un’estensione successiva del bus VME è stata quella a 64 bit (VME64). Il  bus VME (definito dalla standard IEEE1014) è dotato di una notevole banda passante e lavora secondo lo standard Eurocard in logica TTL. Eurocard è una disposizione standard europea per PCBs, che può essere inserito insieme ad un subrack standardizzato. Il VME è un bus multiprocessore che per mette l’uso di CPU a 8, 16, 32 bit; utilizzato nell’ambito della ricerca, in applicazioni industriali, militari, commerciali e in sistemi di controllo del traffico, di commutazione e acquisizione dati.

Il System Controller del Vme e del Camac

Il System controller CAMAC è utilizzato nell’ambito della gestione del bus CAMAC. Un suo esempio è il  CC32 che comprende anche una scheda PCI. Le caratteristiche tecniche possono essere riassunte nei seguenti punti:

➤ PCI interface basata su tecnologia PLX-Technology;

➤ supporto per 8, 16 e 32 bit (PCI-Bus);

➤ supporto per interrupt;

➤ FASTCAMAC level 1;

➤ 32K NAF coding/addressing.

Un esempio di System controller VME, invece è il VMIC 7750. La scheda ha un processore Intel Pentium III  a 1.26 GHz (Data bus: 64 bit, Data address: 32 bit).
Analizziamo alcune caratteristiche della scheda:

➤ memoria SDRAM a 512 Mbyte;

➤ VME bus single-slot. Connessione P2;

➤ MMX Technology.

La scheda, inoltre è fornita anche di una memoria Flash riprogrammabile di circa 1 GB ed è sviluppata con librerie Universe II. Di supporto alla scheda CPU VME vi è un modulo VME IDE Hard disk: il VMIVME 7459, con le seguenti caratteristiche:

➤ VME bus IDE CD-ROM e Hard Disk;

➤ Single slot;

➤ connessione via VMEbus.

In commercio esiste un modulo di importanza fondamentale che consente di far comunicare i bus VME e CAMAC. E’ possibile collegare un bus CAMAC esistente verso un bus VME (figura 2).

Figura 2: VMECAMAC della Wiener

Figura 2: VMECAMAC della Wiener

E’ formata da una interfaccia CAMAC realizzata per mezzo del CC32 e una VME utilizzando un VMEADA interface CC32 con le seguenti caratteristiche tecniche:

➤ VME interface per CAMAC;

➤ 6U VME slave;

➤ 32 KB di memoria;

➤ software di sviluppo in C.

Un progetto con il bus VME

In molte applicazioni industriali si preferisce utilizzare  il bus VME; il motivo di ciò risiede nelle caratteristiche tecniche che abbiamo enunciato in precedenza e che continueremo ad approfondire nella prossima sezione. Un applicazione del bus VME, visualizzato in figura 3 e 4 è un possibile sistema di acquisizione dati.

Figura 3: esempio di applicazione VME.

Figura 3: esempio di applicazione VME.

 

Figura 4: schema a blocchi (VME).

Figura 4: schema a blocchi (VME).

Il sistema di acquisizione  (DAQ) si compone di vari moduli collegati tra loro secondo lo schema illustrato in figura 4. Tutti i moduli operano in ambito VME. L’accesso al bus del VME avviene in due modalità: supervisore e non-privilegiato. Ogni modulo presente nel crate è identificato dal bus address (base) codificato con opportuni switch che si trovano all’interno del modulo stesso. Ogni registro del modulo è identificato, invece, dall’offset  riportato nei rispettivi data sheet. I moduli elettronici utilizzati nel sistema di acquisizione dati sono: l’I/O register (V977), il divisore  di frequenza (VDEV), il contatore (SIS3800) e due convertitori A/D (VMIVM3123 e VMIVME3125). Altri apparati utilizzati sono il GPS e l’orologio atomico connessi opportunamente tra loro. Questi due corrispondono in realtà ad un unico apparato che fornisce in uscita due segnali coerenti con la scala UTC : un segnale sinusoidale di 10 MHz, inviato al divisore, e uno TTL di 1 Hz inviato al I/O register. Il segnale TTL ci fornisce l’ora esatta. Il divisore  di frequenza è utilizzato per generare la frequenza di campionamento di uno dei due ADC, l’ADC 1. Il primo ADC (ADC 1) ha il compito di misurare, con frequenza di campionamento di 10 kHz, il segnale  uscente da un amplificatore. L’altro ADC (ADC 2), invece, for nisce informazioni sulla temperatura, pressione, umidità e altri parametri ambientali; il suo segnale di campionamento di circa 40 kHz è interno al modulo. Il contatore fornisce informazioni sul numero di campionamenti effettuati dall’ADC 1 in un secondo; valore fondamentale per controllare la correttezza della misura. La presa dei dati campionati dai due ADC inizia in corrispondenza del primo fronte di salita del segnale di 1 Hz; informazione fornita dall’I/O register. Questo sistema di acquisizione dati su bus VME è un esempio base su come si possa realizzare un semplice sistema per acquisire dati di una certa importanza.

I due bus a confronto

Gli errori principali che si verificano nell’ambito dei bus (CAMAC e VME) possono essere:

➤ errori di trasferimento: hanno bassa probabilità di verificarsi. Per rilevarli è sufficiente aggiungere un bit di parità all’informazione trasmessa.

➤ Errori dello Slave: si verificano quando si indirizza uno slave che, per qualche motivo, non riesce a svolgere l’operazione richiesta.

➤ Errore di indirizzamento: si verificano quando la memoria indirizzata è inesistente o rotta.

Nell’ambito della gestione delle interruzioni (bus VME) per sistemi multiprocessore è difficile per un interrupt sapere a quale CPU andare. Possiamo decidere che ciascuna CPU risponda solo ad alcuni livelli di interrupt.  Il  problema è che se si danneggia una CPU, gli interrupt ad essa inviati vanno persi irrimediabilmente. A questo punto è più semplice vincolare alla CPU anche i dispositivi  che generano quegli interrupt. In un sistema multiprocessore c’è anche la necessità di inviare segnali di interrupt da una CPU all’altra. Il dispositivo,  quindi, chiede il controllo del bus e dopo averlo ottenuto, pone il vettore di interrupt sul bus dati. La trasmissione di segnali nel bus CAMAC attraverso  il dataway viene effettuato per mezzo di segnali logici TTL (tabella 1).

Tabella 1: Logica TTL al bus CAMAC.

Tabella 1: Logica TTL al bus CAMAC.

Il dataway del bus CAMAC è composto dalle seguenti strutture:

➤ power lines: rappresentano la tensione di alimentazione per ciascun modulo ;

➤ Busses Signal Lines: linee per il trasferimento dati, indirizzi, comandi;

➤ Point to Point Lines: sono linee dedicate che connettono il crate controller (system controller) a ciascun modulo (25).

Un crate CAMAC fornisce 6 alimentazioni (+6, +12, +24, -6, -12, -24 Volt) stabilizzate e protette, la ventilazione di raffreddamento dei moduli e le linee di comunicazione. Il  tipo 8013A fornisce 11 stazioni più due per il system controller (Crate controller). La struttura Hardware e software del bus CAMAC e riassunta nel seguente modo:

➤ EUR4100,  IEEE 596, IEC 60516, strumentazione modulare controllata da computer;

➤ Backplane da 25 slot (“dataway”) slot 24 & 25 speciali per il “CrateController”;

➤ 1µs/operazione;

➤ funzioni tipiche: ADCs, TDCs, discriminatori, scalers, etc;

applicazioni: read-out, test e misurazioni, controllo industriale.

Il bus VME, invece, si compone di 4 bus specializzati:

➤ Data transfer bus: utilizzato per le operazioni di scrittura e lettura fra moduli.

➤ Arbitration bus: controlla le richieste dai vari dispositivi per mezzo del modulo principale che risiede nel primo slot. Fornisce  il permesso ad ogni dispositivo di utilizzare il bus ed informa i dispositivi quando il bus è occupato. Le richieste sono basate su priorità.

➤ Priority Interrupt bus: è utilizzato per le operazioni di interruzione di processi;

➤ Utility bus: è utilizzato per operazioni di reset. La gestione dei moduli operanti in ambito VME avviene per mezzo di librerie.

Scrivi un commento

EOS-Academy
EOS-Academy