Autobus del Commodoro - Commodore bus

Seriale Commodore IEEE-488
Commodore-64-Back-serial-IEEE488.jpg
genere Bus periferico
progettista Commodore Internazionale
Progettato 1980 ; 41 anni fa ( 1980 )
Produttore Varie
Prodotto 1980-oggi
Lunghezza 1,8 metri massimo
Collegabile a caldo No
ghirlanda di margherite Sì, fino a 31 dispositivi
Esterno
spilli 6
Connettore Connettore DIN
Segnale Collettore aperto 5 V
massimo voltaggio 5 V
massimo attuale 3,2 mA
Segnale dati
Bitrate 3,2–41,6 kbit /s
Protocollo Seriale
Bus seriale Commodore presa DIN pinout.png
Presa femmina dalla parte anteriore.
Pin 1 SRQ Richiesta servizio
Pin 2 GND Terra
Perno 3 ATN Attenzione
Perno 4 CLK Orologio
Perno 5 DATI Dati
Perno 6 RIPRISTINA Ripristina

Il bus seriale Commodore IEEE-488 ( IEC Bus ), è l'interfaccia del Commodore principalmente per l'archiviazione di dati su disco magnetico e stampanti per i computer domestici/personali Commodore a 8 bit , in particolare il VIC-20 , C64 , C128 , Plus/4 , C16 e C65 .

Descrizione e storia

L' interfaccia parallela IEEE-488 utilizzata sulla linea di computer Commodore PET (1977) era troppo costosa, quindi è stata sviluppata una versione a costi ridotti, che consisteva in una versione seriale ridotta dell'interfaccia IEEE-488, con solo pochi segnali rimasti ; tuttavia, è stato mantenuto lo schema generale del protocollo. Commodore ha iniziato a utilizzare questo bus con il VIC-20 (1980). La connessione al computer utilizza un connettore DIN-6 .

Velocità di trasferimento

Impostare Velocità Bitrate effettivo
Commodore 64 + 1541 400 byte/s 3 200 bit/s
Commodore 64 + 1541 con caricatore veloce 2560 byte/s 20 480 bit/s
Commodoro 128 + 1571 5200 byte/s 41 600 bit/s
Teorico 20 µs 6250 byte/s 50 000 bit/s

Interfaccia

Commodore-64-Back-serial-IEEE488 pinout.jpg
pinout
Pin Nome Funzione
1 /SRQIN Input di richiesta di servizio per consentire alle periferiche di essere servite dall'host (C64). Utilizzato dal C128 per trasferimenti veloci.
2 GND Terra
3 /ATN Ingresso/Uscita ATN seriale. Impostato basso dall'host (C64) per indicare l'inizio di un trasferimento dati seriale.
4 /CLK Ingresso/Uscita CLK seriale. Utilizzato per l'handshaking del software.
5 /DATI Ingresso/Uscita DATI seriali. Trasferimento di bit di dati.
6 /RIPRISTINA Ripristina le periferiche e ripristina anche un vecchio C64.

Descrizione del protocollo

I segnali del bus sono digitali single-ended open collector a 5 volt TTL e attivi quando sono bassi. I dispositivi bus devono fornire la propria alimentazione.

Poiché le linee del bus sono elettricamente a collettore aperto, funziona come un lungo gate OR tra tutti i driver della linea del dispositivo. Il valore logico di ground è vero e viceversa. Qualsiasi dispositivo può impostare una linea "true". Una linea diventa "falsa" solo se tutti i dispositivi segnalano falso.

La trasmissione inizia con l' oratore del bus che mantiene vera la linea di clock e l'ascoltatore che mantiene vera la linea dei dati. Per iniziare, l'oratore rilascia la linea dell'orologio su false. Quando tutti i bus listener sono pronti a ricevere, rilasciano la linea dati su false. Se l'oratore attende più di 200 µs senza che la linea di clock diventi vera (stato di inattività), gli ascoltatori devono eseguire End-or-Identify (EOI).

Se la linea dati è falsa (rilasciata) non viene riconosciuta dall'oratore entro 200 µs, l'ascoltatore sa che l'oratore è in fase di EOI, il che significa "questo personaggio sarà l'ultimo". Quando l'ascoltatore rileva il timeout di 200 µs, deve riconoscerlo tirando la linea Data true per almeno 60 µs, quindi rilasciarla. L'oratore può tornare a trasmettere di nuovo entro 60 µs tirando la linea di clock su true.

I dati sono otto bit che iniziano con il bit meno significativo. La linea dati è impostata in base al bit da inviare (1=vero=terra). Una volta impostata la linea Data, la linea Clock viene rilasciata su false. Le linee Clock e Data verranno mantenute fisse per almeno 20 µs (tranne Commodore 64 che necessita di 60 µs). Dopo che sono stati inviati 8 bit, l'oratore rilascia la linea dati su false e l'ascoltatore quindi riconosce l'oratore tirando la linea dati su vero entro 1000 µs. Dopodiché, l'oratore imposta la linea dell'orologio su vera e l'ascoltatore imposta la linea dati su vera, quindi torna al punto in cui è iniziata la trasmissione. Se viene segnalato un EOI tenendo falsa la linea Clock, la trasmissione è terminata e l'ascoltatore lo riconosce tirando la linea Data true per 200 µs.

La linea ATN è impostata su true e i byte vengono inviati come sopra a tutti i dispositivi, ma il byte viene interpretato come uno dei comandi "Parla", "Ascolta", "Annulla conversazione" e "Non ascoltare". Che dicono a un dispositivo specifico di diventare un oratore o un ascoltatore. Solo i dispositivi con numeri di dispositivo corrispondenti passano alla modalità di conversazione e ascolto. Può seguire anche un indirizzo secondario.

A livello logico superiore l'host imposterà la linea ATN su true e trasmetterà i byte "Device number 8, listen", "Secondary address 2, open". Successivamente imposterà la linea ATN come falsa e l'host diventa quindi l'oratore, mantenendo la linea dell'orologio vera. Il dispositivo sarà l'ascoltatore, mantenendo la linea Dati vera. L'host trasmetterà il comando di apertura specifico e lo terminerà con una sequenza di segnali EOI. Dopodiché l'host imposterà con la linea ATN true, "Dispositivo numero 8, non ascoltare". Seguito da linea ATN vera e "Dispositivo numero 8, ascolto", "Indirizzo secondario 2, dati". Quindi l'host imposta la linea ATN su false e invia i dati. Quando l'host ha terminato l'invio dei dati, la linea ATN viene impostata su true e viene inviato "Numero dispositivo 8, non ascoltare".

Quando è necessario scambiare i ruoli e rendere l'host un ascoltatore e il dispositivo un oratore, si verifica dopo che un comando di conversazione è stato inviato al dispositivo. L'host imposta la linea Data su true e rilascia la linea Clock su false. Il dispositivo attende che la linea Clock diventi falsa, quindi la porta su true e rilascia la linea dati su false. Dopo questa sequenza può seguire l'interazione standard parla-ascoltatore.

Comandi autobus
Codice Senso
dispositivo | 0x20 Ascolta, dispositivo (0-30)
0x3F Non ascoltare, tutti i dispositivi
dispositivo | 0x40 Parla, dispositivo
0x5F Non parlare, tutti i dispositivi
canale | 0x60 Riapri, canale (0–15)
canale | 0xE0 Chiudi, canale
canale | 0xF0 Apri, canale

Per leggere un normale file dal dispositivo floppy numero 8 il comando LOAD "filename",8,1viene emesso su un Commodore 64 . Ciò provoca la seguente comunicazione di alto livello:

Protocollo di alto livello
Comando Destinazione Senso
/28 Dispositivo Ascolta, dispositivo numero 8
/F0 Dispositivo Aprire il canale 0
Dispositivo Invia byte nome file
/3F dispositivi Non ascoltare tutti i dispositivi
/48 Dispositivo Parla, dispositivo numero 8
/60 Dispositivo Riapri canale 0
Il dispositivo numero 8 diventa il master del bus
Ospite Ricevi dati in byte
L'host diventa il padrone del bus (funzionamento normale)
/5F dispositivi Annulla tutti i dispositivi
/28 Dispositivo Ascolta, dispositivo numero 8
/E0 Dispositivo Chiudi canale 0
/3F dispositivi Non ascoltare tutti i dispositivi

L'unità floppy del Commodore 1541 utilizza una modalità compatibile con Commodore 64 più lenta che può essere disattivata per una maggiore velocità utilizzando il comando OPEN 15,8,15,"UI-":CLOSE 15.

Numerazione del dispositivo

Numerazione dei dispositivi per Commodore 64 KERNAL ROM
Dispositivo genere
0 Tastiera
1 Porta cassetta Cas
2 RS-232 sulla porta utente o seconda cassetta su PET
3 Schermo
4-5 Stampante
6 Tipicamente dispositivo plotter
7 Secondo plotter?
8–15 Disco (10 – utilizzato da alcune interfacce stampante da seriale a parallela)
16–30 Sconosciuto
31 Riservato come comando a tutti i dispositivi

I dispositivi numero 0–3 non sono associati al bus Commodore.

Implementazione dell'host

Il computer Commodore VIC-20 e le unità floppy Commodore 1540 e 1541 utilizzano la tecnologia MOS 6522 VIA per gestire le trasmissioni IEC Bus. I computer Commodore 64 e 128 e l' unità Commodore 1571 utilizzano l' adattatore di interfaccia complessa .

Dispositivi comuni

Dispositivo Informazioni
Commodoro 1541 Floppy da 5¼ pollici 170 KB
Commodoro 1570 Floppy da 5¼ pollici 170 KB
Commodoro 1571 Floppy da 5¼ pollici 350–410 KB
Commodoro 1581 Floppy da 3½ pollici da 800 KB
MSD SD-1/SD-2 Floppy da 5¼ pollici singolo/doppio da 170 KB
Commodore MPS 801 Stampante a matrice di punti
Commodoro 1515 Stampante a matrice di punti
Commodoro 1520 Stampante con penna a sfera
Commodoro VIC-1525 Stampante ad aghi
Commodoro VIC-1526 Rinominato MPS 802, stampante a matrice di punti
Okimè 10 Stampante ad aghi
Commodore DPS-1101 Stampante a margherita
INTERPOD Standalone IEEE-488 + RS-232
Commodoro VIC-20 Computer da 1 MHz 5 KB
Commodore 64 Computer da 1 MHz 64 KB
Commodore SX-64 Computer da 1 MHz 64 KB
Commodore 128 Computer 2 MHz 128 KB
Commodoro 16 Computer da 1-2 MHz 16 KB KB
Commodore Plus/4 Computer a 1,76 MHz 64 KB
Commodoro 65 Computer da 3,54 MHz 128 KB


dispositivi

Guarda anche

Riferimenti

link esterno