Progetto, realizzazione e programmazione di un circuito di interfaccia PORTA PARALLELA/USB Relatore: Prof. Carla VACCHI Correlatore: Ing. Daniele SCARPA ELABORATO DI LAUREA DI: Stefano CUMIA PERCHE’ QUESTO PROGETTO? 1. Nel laboratorio di Microelettronica vi sono degli strumenti, realizzati dal personale del dipartimento, controllati da Personal Computer tramite la porta parallela. 2. La porta USB sta sostituendo la porta parallela VANTAGGI DELLO STANDARD USB 1. possibilità di connessione e sconnessione dinamica dei dispositivi; 2. soluzione a basso costo che permette una velocità di trasferimento dati fino a 480 Mb/s; 3. pieno supporto per dati in tempo reale: voce, audio e video; 4. dimensioni del connettore contenute, che implicano una migliore tecnologia d’integrazione; 5. possibilità di avere lunghezze del cavo relativamente alte. IL PROGETTO SVOLTO CONSISTE DI: • UNA PARTE HARDWARE: 1. Hardware dell’interfaccia 2. Hardware della demo board • UNA PARTE SOFTWARE: 1. Funzioni di OUTPUT e di INPUT 2. Programma funzionante da console 3. Programma con interfaccia grafica LA PORTA PARALLELA Questo dispositivo presenta diverse modalità di funzionamento. Quelle implementate nel mio progetto sono: 1. SPP, che serve per controllare un flusso dati per un convertitore appartenente ad un progetto FIRB 2. EPP, che serve in un sistema a microscopio ottico SPP (Standard Parallel Port) E’ il modello originario pensato per la connessione di Pin stampanti DB25 Vi sono: 1. 5 bit di input 2. 12 bit per l’output (lato PC) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18-25 - Nome St robe Dat a 0 Dat a 1 Dat a 2 Dat a 3 Dat a 4 Dat a 5 Dat a 6 Dat a 7 Ack Busy Paper Out Select Linefee d Error I nizializ e Select in Massa + 5V (Rpu) Non usat o Direzio ne Registro Out * Cont rol Out Dat a Out Dat a Out Dat a Out Dat a Out Dat a Out Dat a Out Dat a Out Dat a In St at us In St at us In In St at us St at us Out * In Cont rol St at us Out * Cont rol Out * - Cont rol - - - - - EPP (Enhanced Parallel Port) Pin 1. Tipicamente la velocità di trasferimentoè tra i 500 KB/s e i 2 MB/s 2. Permette lo scambio bidirezionale di dati senza i problemi di compatibilità con la SPP Nome SPP Nome EPP Direzione Out Funzione EPP Questo segnale basso indica una scrittura 1 Strobe nWRITE 2 Data 0 PD 0 Trasporta dati e Bidirezionale indirizzi 3 Data 1 PD 1 Trasporta dati e Bidirezionale indirizzi 4 Data 2 PD 2 Trasporta dati e Bidirezionale indirizzi 5 Data 3 PD 3 Trasporta dati e Bidirezionale indirizzi 6 Data 4 PD 4 Trasporta dati e Bidirezionale indirizzi 7 Data 5 PD 5 Trasporta dati e Bidirezionale indirizzi 8 Data 6 PD 6 Trasporta dati e Bidirezionale indirizzi 9 Data 7 PD 7 10 Ack Interrupt In sul fronte di salita 11 Busy nWAIT In Usato per la sincronizzazione. 12 Paper Out - In Non usato 13 Select - In Non usato Trasporta dati e Bidirezionale indirizzi Se abilitato, genera un interrupt Quando basso indica un 14 Linefeed nDSTRB Out 15 Error . In trasferimento di dati Non usato Attivo basso, resetta 16 Inizialize Reset Out le periferiche ESEMPIO DI SCRITTURA DATO EPP 1. nWait viene forzato a “0” 2. nWrite viene forzato a “0” per indicare che inizia un’operazione di scrittura 3. Sono posti sui pin della parallela i dati scritti nel registro 4. nDstrb viene forzato a “0” per indicare che la scrittura riguarda i dati 5. Avviene la transizione dati 6. Il PC attende che nWait torni a “1” 7. nDstrb viene riportato a “1” 8. nWrite viene posto a “1” SCHEMA A BLOCCHI DELL’INTERFACCIA SCHEMA A BLOCCHI DELL’INTERFACCIA HARDWARE PER LA SCRITTURA DATI IN EPP SCHEMA ELETTRICO COMPLETO VISTA DEL CIRCUITO FINITO Inizio SOFTWARE DA CONSOLE Attiva la libreria (DLL) Vuoi fare un'operazione di input o di output? Diagramma di flusso della funzione main Leggi valore immesso output =1 Il valore immesso è 1 oppure 2 =2 input ? 1,2 Carattere non valido EPP o SPP? 3 scrivi indirizzi in EPP 4 scrivi dati in EPP EPP o SPP? 0 scrivi dati in SPP 2 scrivi controlli in SPP 1 leggi status SPP Richiama ed esegui la funzione output 3 leggi indirizzi in EPP 4 leggi dati in EPP Richiama ed esegui la funzione input Fine Inizio SOFTWARE DA CONSOLE Attiva la libreria (DLL) Vuoi fare un'operazione di input o di output? Diagramma di flusso della funzione main Leggi valore immesso output =1 Il valore immesso è 1 oppure 2 =2 input ? 1,2 Carattere non valido EPP o SPP? 3 scrivi indirizzi in EPP 4 scrivi dati in EPP EPP o SPP? 0 scrivi dati in SPP 2 scrivi controlli in SPP 1 leggi status SPP Richiama ed esegui la funzione output 3 leggi indirizzi in EPP 4 leggi dati in EPP Richiama ed esegui la funzione input Fine Inizio SOFTWARE DA CONSOLE Dichiarazione variabili Attiva libreria (DLL) Inizializzazione variabili Diagramma di flusso della funzione output Controlla se è connesso un dispositivo USB Trovato dispositivo connesso Dispositivo connesso non trovato Imposta come uscita la porta A e la porta B della scheda U401. Scrittura controlli SPP: instrada blocco dovuto e scrivi Controlla variabile set Scrittura indirizzi EPP: instrada blocco Out CNTRL EPP, scrivi controlli Instrada blocco scrittura indirizzi. Scrivi indirizzi Instrada blocco Out Cntrl EPP, scrivi controlli Scrittura dati SPP: instrada blocco dovuto e scrivi dati Fine Scrittura dati EPP: instrada blocco Out CNTRL EPP, scrivi controlli Instrada blocco scrittura dati. Scrivi su B Instrada blocco Out Cntrl EPP, scrivi controlli Inizio SOFTWARE DA CONSOLE Dichiarazione variabili Attiva libreria (DLL) Inizializzazione variabili Diagramma di flusso della funzione output Controlla se è connesso un dispositivo USB Trovato dispositivo connesso Dispositivo connesso non trovato Imposta come uscita la porta A e la porta B della scheda U401. Scrittura controlli SPP: instrada blocco dovuto e scrivi Controlla variabile set Scrittura indirizzi EPP: instrada blocco Out CNTRL EPP, scrivi controlli Instrada blocco scrittura indirizzi. Scrivi indirizzi Instrada blocco Out Cntrl EPP, scrivi controlli Scrittura dati SPP: instrada blocco dovuto e scrivi dati Fine Scrittura dati EPP: instrada blocco Out CNTRL EPP, scrivi controlli Instrada blocco scrittura dati. Scrivi su B Instrada blocco Out Cntrl EPP, scrivi controlli IL PROGETTO E’ A QUESTO PUNTO CONCLUSO Il progetto vero e proprio si conclude con l’hardware e il software che ho appena descritto DEMO BOARD SCHEMA ELETTRICO DELLA DEMO BOARD CONCLUSIONI 1. Questo progetto mi ha permesso di studiare ed apprendere nozioni concrete 2. È stato necessario uno studio dettagliato del protocollo della porta parallela ed uno studio qualitativo del protocollo USB 3. L’uso della bread board è stato utile per collaudare il circuito prima di realizzare il circuito stampato 4. Le librerie scritte saranno inserite nei programmi degli strumenti da controllare