|
Appunti informatica |
|
Visite: 2207 | Gradito: | [ Picolo appunti ] |
Leggi anche appunti:Dispositivo TappoDispositivo Tappo La funzione di questo dispositivo e di rispedire in modo opportuno, Device DriverDevice Driver Un Driver è un'unità di programma (nello specifico un Sistemi Distribuiti: IntroduzioneSistemi Distribuiti: Introduzione I sistemi distribuiti nascono negli |
I campi relativi alla configurazione del dispositivo sono così codificati:
Name MM6821PIA
Type Identificatore assoluto nella configurazione
Address1 Indirizzo base
Address2 Indirizzo base+3
BUS Identificatore di bus esterno a cui rendere visibile le memorie di bus/mem
COM1 Identificatore dispositivo gestore delle interruzioni generate dall'oggetto
COM2 Controllo linea Interruzione IRQA: XXYZ (XX=#vettore, Y=livello di priorita', Z=linea di interruzione
COM3 Controllo linea Interruzione IRQB: XXYZ (XX=#vettore, priorità, Z=linea di interruzione
COM4 Identificatore assoluto dell'oggetto a cui il porto parallelo e'connesso
Tabella 12
Il dispositivo PIA (Periferal Interface Adapter) è un dispositivo parallelo a parallelismo 8 bit facente parte della famiglia dei processori Motorola. Il dispositivo contiene due sezioni quasi identiche ciascuna dotata di 8 bit dati configurabili, anche singolarmente, come linee di ingresso o di uscita. Ciascun porto può, quindi, funzionare in ingresso, uscita o in configurazione mista (in-out). Delle due coppie di linee di controllo per la sincronizzazione della periferica connessa al dispositivo CA1 e CB1 sono sempre di ingresso al dispositivo, e servono a controllare la linea di interruzione IRQA (o IRQB) verso il processore; le altre, CA2 e CB2, possono essere programmate per operare sia in ingresso, in tal caso si comportano in modo analogo alla CA1 e CB1 sia in uscita per implementare forme di handshaking. Il tipo di operazioni di interruzione o di controllo realizzabile con le due linee può essere opportunamente programmato come di seguito mostrato, mediante il registro di controllo.
Il dispositivo PIA simulato in ASIM è derivato da quello commerciale MC6821 ed è, dal punto di vista funzionale, molto simile a detto chip conservandone i sei registri interni ad otto bit: due registri per il trasferimento dei dati da e verso la periferica (PRA e PRB); due registri di controllo/stato (CRA e CRB); due registri, DRA e DRB, per il controllo della direzione dei dati (in input o in output). Poiché al dispositivo sono riservati solo quattro indirizzi, per accedere ai sei registri viene utilizzato un meccanismo di indirizzamento interno.
Tabella 13-Indirizzamento
dei registri interni
Le due sezioni del dispositivo PIA sono programmabili per
Controllo di CA1 (o CB1): CA1 consente di controllare il flag di interruzione IRQA1 presente nella parola di stato-controllo di 8 bit posto in posizione b7. In particolare, tale bit va alto a seguito della transizione attiva di CA1. Il flag è automaticamente resettato dalla lettura del registro dato da parte del processore. La transizione attiva è del tipo 1-0 se il bit b1=0, è del tipo 0-1 se b1=1. Lo stato del flag IRQA1 si ripercuote sulla linea di interruzione IRQA verso il processore, generando così, nel caso di transizione 1-0, una interruzione quando il bit b0=1. Se b0=0 tale trasmissione non è effettuata disabilitando così la generazione di interruzioni. Quanto detto per CA1 vale anche per CB1.
Controllo di CA2 (o CB2): il controllo di CA2 è differente a seconda che tale linea sia stata programmata per operare come linea di ingresso o di uscita.
CA2 (o CB2) come linea di ingresso (b5=0): si comporta come CA1 con la differenza che il flag di interruzione interessato è IRQA2 ed i bit di programmazione sono b3 nelle funzioni di b0 e b4 nelle funzioni di b1. Quanto detto vale anche per CB2.
CA2 o (CB2) come linea di uscita (b5=1): in tal caso CA2 consente di controllare la periferica. Sono previsti 3 possibili modi di sincronizzazione codificati con i bit b4 e b3:
Tabella 14-Formato del byte di controllo
La Tabella 13, dove AD1 e AD0 sono i due bit meno significativi dell'indirizzo, mostra come selezionare i singoli registri; ad esempio, PRA e DRA hanno lo stesso indirizzo, ma è possibile selezionare uno dei due fissando prima il valore del bit 2 di CRA.. Poiché il dispositivo ha un bus ad otto bit, le sole operazioni di lettura o scrittura consentite sono quelle sul byte.
Tabella
15-Controllo della linea
CA1(CB1)
I registri PRA, DRA, CRA consentono il controllo completo di un insieme di otto linee dato da connettere verso una periferica (linee A0..A7). Ciascuna linea può essere programmata separatamente come linea di uscita o di ingresso settando, rispettivamente ad 1 o a 0, il corrispondente bit del registro DRA. Quando si scrive su PRA, il valore dei singoli bit di PRA compare sulle corrispondenti linee dati programmate come output; quando si legge su PRA, i singoli bit di PRA assumono i valori presenti sulle linee programmate come input. Per gestire la sincronizzazione con la periferica, sono previste due ulteriori linee: CA1 e CA2. La linea CA1 è di sincronizzazione in ingresso. Le funzioni possono essere programmate, come mostrato in Tabella 15, definendo i due bit meno significativi di CRA; CA2 è una linea di sincronizzazione che può essere in input o in output; la Tabella 16, la Tabella 19 e la Tabella 18mostrano come programmare tale linea.
A provocare l'acquisizione o l'invio di un dato verso la periferica sono, in generale, le transizioni low/high o high/low delle linee di sincronizzazione.
Il significato dei singoli bit di CRA è mostrato in Tabella 14; i bit 6 e 7 sono a sola lettura e rappresentano i flag di interruzione; se le interruzioni sono abilitate, quando uno dei due flag diviene alto viene inviata al gestore delle interruzione l'IRQA (si veda la successiva descrizione dei parametri).
Tabella
16-Effetti delle
variazioni sulla linea CA2 (CB2 ) in ingresso
Per il gruppo di registri PRB, DRB e CRB vale quanto detto per il gruppo precedente; le differenze sono nelle funzioni attribuite alle linee di sincronizzazione come mostrato nelle tabelle.
La finestra associata a M6821PIA ne mostra tutti i registri (Fig. 25); il valore di tali registri può essere modificato, oltre che da programma, utilizzando il comando Modifica Valore del menù Device. E' possibile ridirigere l'input e l'output verso file anziché verso una periferica con i comandi Input da File e Output su File del menù Device.
Tabella 17
Tabella 18
Per aggiungere un M6821PIA ad una configurazione si deve selezionare dal menù Configura il comando Aggiungi Device e specificare tutti i parametri previsti nella finestra di dialogo.
Fig. 25
Il 'Nome Elemento' è M6821PIA. L'Indirizzo 1 deve essere pari ed 'Indirizzo 2' deve essere uguale a 'Indirizzo 1' + 3. 'BUS' deve contenere l'Identificatore del bus cui il dispositivo è connesso. 'Com1' contiene, se previsto, l'Identificatore del dispositivo gestore delle interruzioni. 'Com2' e 'Com3' definiscono le linee di interruzione IRQA e IRQB previste dal dispositivo (associate ai flag di interruzione, rispettivamente, dei registri CRA e CRB); i valori attribuibili a tali parametri sono quelli già più volte specificati; si osservi che, se 'Com1' è diverso da zero, le linee di interruzione devono essere specificate e non possono essere nulle.
Infine, 'Com4' viene utilizzato per specificare l'eventuale dispositivo periferico cui M6821PIA è connesso; nell'attuale versione di ASIM, l'unico dispositivo cui un M6821PIA può essere connesso è un altro M6821PIA. L'identificatore del dispositivo da connettere va nelle due cifre meno significative di 'Com4'. Le altre due cifre servono per definire le connessioni; di queste la meno significativa deve assumere uno dei seguenti valori:
linea CA2 connessa alla linea CA1 del dispositivo periferico;
linea CA2 connessa alla linea CA2 del dispositivo periferico;
linea CA2 connessa alla linea CB1 del dispositivo periferico;
linea CA2 connessa alla linea CB2 del dispositivo periferico;
nei primi due casi le linee dati A sono connesse alle linee dati A del dispositivo periferico; nei rimanenti due, le linee dati A sono connesse alle linee dati B del dispositivo periferico.
La più significativa deve assumere uno dei seguenti valori:
linea CB2 connessa alla linea CA1 del dispositivo periferico;
linea CB2 connessa alla linea CA2 del dispositivo periferico;
linea CB2 connessa alla linea CB1 del dispositivo periferico;
linea CB2 connessa alla linea CB2 del dispositivo periferico;
nei primi due casi le linee dati B sono connesse alle linee dati A del dispositivo periferico; nei rimanenti due, le linee dati B sono connesse alle linee dati B del dispositivo periferico.
E' cura di chi definisce la configurazione fare in modo che le connessioni definite per i due dispositivi siano coerenti. Inoltre, poiché all'accensione della macchina da simulare tutti i registri sono nulli, chi programma deve opportunamente inizializzare i dispositivi prima di tentare un trasferimento dati.
Appunti su: dispositivo pia, |
|