Il bus VME o VMEbus è un bus standard per computer sviluppato originariamente da Motorola negli anni settanta, successivamente standardizzato e utilizzato ampiamente in informatica ed ingegneria per applicazioni comuni. VME è acronimo di VERSABUS Module Eurocard.
Nel 1981 Motorola, nel corso dello sviluppo del microprocessore 68000, ideò un bus di comunicazione chiamato VERSAbus basato sullo standard Eurocard[1]. Successivamente altre grandi compagnie quali Philips e Thompson adottarono queste specifiche. Infine venne standardizzato dalla IEC come IEC 821 VMEbus, dalla IEEE e ANSI come ANSI/IEEE 1014-1987. Nel corso degli anni il protocollo VME ha subito varie modifiche fino all'attuale VME64, che appunto gestisce fino a 64 bit di indirizzamento. Esso raggiunge una performance di 40 MB/s. Il protocollo più recente è il VME64x che è dotato anche di funzionalità hot swap.
Caratteristiche tecniche
Il bus VME utilizza un protocollo di comunicazione con linee dati ed indirizzi separate. Il numero massimo di indirizzi raggiunge 32 bit (scalabile anche a 24, 16 o 8 bit). I dati invece raggiungono al massimo 32 bit riducibili anche a 4, 16 o 24 bit.
Il bus VME è dotato di due connettori separati, generalmente indicati con P1 e P2, entrambi dotati di 3 linee da 32 pin. P1 contiene i 24 bit di indirizzo ed i 16 di dato, più tutti i segnali di controllo, come i data_strobe (DS1 e DS0), gli address modifier (AM[5..0]), ed altri come in tabella:
PIN
Linea A
Linea B
Linea C
01
D00
/BBSY
D08
02
D01
/BCLR
D09
03
D02
/ACFAIL
D10
04
D03
/BG0IN
D11
05
D04
/BG0OUT
D12
06
D05
/BG1IN
D13
07
D06
/BG1OUT
D14
08
D07
/BG2IN
D15
09
GND
/BG2OUT
GND
10
SYSCLK
/BG3IN
/SYSFAIL
11
GND
/BG3OUT
/BERR
12
DS1
/BR0
/SYSRESET
13
DS0
/BR1
/LWORD
14
/WRITE
/BR2
AM5
15
GND
/BR3
A23
16
/DTACK
AM0
A22
17
GND
AM1
A21
18
/AS
AM2
A20
19
/GND
AM3
A19
20
/IACK
GND
A18
21
/IACKIN
SERCLK
A17
22
/IACKOUT
SERDAT
A16
23
AM4
GND
A15
24
A07
/IRQ7
A14
25
A06
/IRQ6
A13
26
A05
/IRQ5
A12
27
A04
/IRQ4
A11
28
A03
/IRQ3
A10
29
A02
/IRQ2
A09
30
A01
/IRQ1
A08
31
-12V
+5V (Batt)
+12V
32
+5V
+5V
+5V
Il connettore P2 invece contiene altri 8 bit di indirizzo e ulteriori 16 bit di dato.
Il VME bus è caratterizzato da una gestione di tipo master-slave, è dotato di gestione degli interrupt e di cicli speciali di lettura. Impostando ad esempio il valore del parametro address modifier caratterizzato da 6 bit AM[0..5] si impostano ad esempio le seguenti funzionalità: