comando flusso dati - Università degli Studi di Trieste
by user
Comments
Transcript
comando flusso dati - Università degli Studi di Trieste
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: Relatore: Igor Cerniava Prof. Sergio Carrato Correlatore: Dott. Paolo Sigalotti 1 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 2 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 3 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. 4 ARCHITETTURA Collegamento fisico dei dispositivi utilizzati: 5 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 6 IL DLP-FTDI245M • Questo dispositivo si occupa interamente della trasmissione dei dati tramite la porta USB del computer ricezione e • Il suo utilizzo semplifica il lavoro di interfacciamento del dsPIC al PC • Il DLP-FTDI245M è progettato per agevolare l’utilizzo delle porte USB 7 LA DEMOBOARD dsPICDEM Caratteristiche: • dsPIC 30F6012 • Led, pulsanti, convertitori ADC, SPI, • sulla millefori è stato saldato il DLP-FTDI245M 8 IL PROTOCOLLO DI COMUNICAZIONE Lato PC Lato dsPIC 9 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 10 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. 11 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. 12 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. 13 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. 14 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 15 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 16 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 17 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. 18 IL FIRMWARE DEL dsPIC 19 IL SOFTWARE LATO PC 20 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) 21 OTTIMIZZAZIONE DEL PROTOCOLLO Funzioni READ e WRITE : 22 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 23