230 likes | 436 Views
Università degli studi di Trieste – Tesi di laurea triennale in Ingegneria elettronica. PROTOCOLLO DI COMUNICAZIONE TRA PC E MICROCONTROLLORE PER UN’INTERFACCIA DI CONTROLLO DI UN MICROSCOPIO A SCANSIONE. Laureando: Igor Cerniava. Relatore: Prof. Sergio Carrato Correlatore:
E N D
Università degli studi di Trieste – Tesi di laurea triennale in Ingegneria elettronica PROTOCOLLO DI COMUNICAZIONE TRA PC E MICROCONTROLLORE PER UN’INTERFACCIA DI CONTROLLO DI UN MICROSCOPIO A SCANSIONE Laureando: Igor Cerniava Relatore: Prof. Sergio Carrato Correlatore: Dott. Paolo Sigalotti
INTRODUZIONE [1] • Scopo dell’elaborato: realizzare un protocollo di comunicazione tra computer e periferica esterna (microcontrollore dsPIC); • Il sistema di comunicazione utilizza la porta seriale USB; • Il protocollo ha una struttura a livelli; • Possibili utilizzi: • sistema di controllo di un microscopio a scansione (STM) • controllo elettronico di qualsiasi sistema di misura
INTRODUZIONE [2] • Il progetto è diviso in due parti: • Lato computer • Lato microcontrollore dsPIC • Il protocollo ha tre livelli logici di astrazione: • Livello alto – main • Livello intermedio – parser • Livello basso – driver • Ogni livello (layer) è un modulo di funzioni a sé stanti
INTRODUZIONE [3] Vediamo i 4 tipi di comunicazione progettati: • Trasmettere un comando di lunghezza prefissata e ricevere una risposta di conferma dalla periferica; • Trasmettere un comando di lunghezza prefissata e ricevere valore numerico dalla periferica; • Trasmettere un pacchetto di dati e ricevere una risposta di conferma dalla periferica; • Trasmettere un comando di lunghezza prefissata e ricevere un pacchetto di dati dalla periferica.
ARCHITETTURA Collegamento fisico dei dispositivi utilizzati:
IL MICROCONTROLLORE dsPIC • Il micocontrollore incorpora al suo interno una parte di DSP • Il progetto ha la funzione di fornire la connettività al processore DSP • Capacità di elaborazione di 30 MIPS
IL DLP-FTDI245M • Questo dispositivo si occupa interamente della ricezione e trasmissione dei dati tramite la porta USB del computer • Il suo utilizzo semplifica il lavoro di interfacciamento del dsPIC al PC • Il DLP-FTDI245M è progettato per agevolare l’utilizzo delle porte USB
LA DEMOBOARD dsPICDEM • Caratteristiche: • dsPIC 30F6012 • Led, pulsanti, convertitori ADC, SPI, • sulla millefori è stato saldato il DLP-FTDI245M
Lato PC Lato dsPIC IL PROTOCOLLO DI COMUNICAZIONE
IMPLEMENTAZIONE DEL PROTOCOLLO Le operazioni implementate sono: • La prima accende e spegne i quattro led presenti sulla demoboard • COMANDO RISPOSTA • La seconda è un comando che legge un valore di tensione tramite il convertitore ADC del dsPIC • COMANDO RISPOSTA VALORE • La terza operazione trasmette un pacchetto di dati dal PC al dsPIC • FLUSSO DATI RISPOSTA • La quarta operazione è un comando che fa inviare al dsPIC un pacchetto di dati verso il PC • COMANDO FLUSSO DATI
COMANDO RISPOSTA • Comandi “Accendi LED” e “Chiudi LED” • Il primo pacchetto dati è il comando che il dsPIC riceve dal PC; • Il secondo è l’acknowledge che il dsPIC invia al PC.
COMANDO RISPOSTA VALORE • Comando “Leggi ADC” • Il primo pacchetto è il comando che il dsPIC riceve dal PC; • Il secondo pacchetto dati è la risposta che il dsPIC invia al PC. Nel pacchetto dati c’è il valore letto dall’ ADC.
FLUSSO DATI RISPOSTA • Comando “Flusso dati in uscita” • Il primo comando è il pacchetto di dati che il dsPIC riceve dal PC; • Il secondo è l’acknowledge che il dsPIC invia al PC.
COMANDO FLUSSO DATI • Comando “Flusso dati in entrata” • Il primo è il comando inviato dal PC indica il numero di dati che il dsPIC dovrà inviare; • Il secondo è il flusso di dati inviato dal dsPIC.
BYTE DI INTESTAZIONE Inizio MASTER – Carattere I Inizio SLAVE – Carattere C BYTE DI IDENTIFICAZIONE • Il byte di identificazione determina se l’operazione è un: • Comando • Flusso (pacchetto) dati
CODICE FORMATO COMANDI E CODICE FORMATO FLUSSI A = TIPO DI TRASMISSIONE Se 00 = comando (accendi led) Se 11 = flusso dati (flusso dati in uscita) B = FORMATO DELLA TRASMISSIONE Se 00110000 -> comando accendi led Se 11110010 -> flusso dati su porta in ingresso
CONROLLO ERRORE I byte di controllo errore sfruttano una semplicissima operazione matematica: 1° byte Err = SOMMA(Nbyte) MOD 256 2° byte Err = ( [SOMMA(Nbyte)] / 256 ) MOD 256
ALGORITMO DEL PARSER (dsPIC) • Controllare l’intestazione del comando che deve essere sempre una ‘I’; • Ogni byte ricevuto viene salvato; • Somma il valore dei byte ricevuti, escludendo gli ultimi quattro byte; • Test su byte di identificazione: se bID1 = bID2 allora test OK; • Test errore incrociato: se il 1. ed il 3. byte nonché il 2. ed il 4. byte sono uguali, il primo test è positivo. • Successivamente vanno fatti i moduli sulla somma di tutti i byte del pacchetto. Il risultato viene confrontato con i 4 byte di controllo errore del pacchetto ricevuto. • Se test OK eseguo le operazioni da eseguire.
IL TEST • Si è constatato il corretto funzionamento del sistema di comunicazione • Test sulla velocità di comunicazione: • FLUSSO DATI RISPOSTA (Comunicazione 3) • A 4 MIPS -> scrittura e lettura in 0,02295 • A 8 MIPS -> scrittura e lettura in 0,01403 • COMANDO FLUSSO DATI (Comunicazione 4) • A 4 MIPS -> scrittura e lettura in 0,06437 • A 8 MIPS -> scrittura e lettura in 0,04857 • A 4 MIPS -> scrittura e lettura in 0,02632 con while scritti in assemler • Il sistema trasmette e riceve i dati ad una velocità di 111 KBps, 8 volte superiore ad una porte RS232 (14 KBps)
Funzioni READ e WRITE : OTTIMIZZAZIONE DEL PROTOCOLLO
CONCLUSIONI • L’USB è un importante sistema di comunicazione per le periferiche esterne (a basso costo) • Il protocollo di comunicazione offre buone prestazioni sia a livello grammaticale che a livello di prestazioni • Il protocollo così costruito offre la possibilità di: • sviluppi futuri • una facile trasportabilità e flessibilità • utilizzo in qualunque sistema di controllo elettronico