Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Vascotto presentazione prelaurea
1. Sviluppo di un driver di periferica per
un sottosistema di conversione A/D
su piattaforma embedded
UNIVERSITA’ DEGLI STUDI DI TRIESTE
FACOLTA’ DI INGEGNERIA
Dipartimento di Ingegneria e Architettura
Corso di laurea ingegneria dell'informazione
Laureando:
Fulvio VASCOTTO
Relatore:
Prof. Enzo MUMOLO
2. Motivazioni
• Il Sincrotrone Elettra contiene moltissimi dispositivi
hardware che devono essere controllati
• Il controllo è fatto tipicamente con PLC e sistemi
modulari di elevato costo
• Attualmente esistono molti sistemi embedded di
basso costo basati su architettura ARM con SO
Linux
• È stato proposto di sostituire parte di questi sistemi
complessi con gli attuali sistemi embedded
3. Introduzione
• Un gruppo di sviluppatori di Elettra ha progettato e
realizzato una scheda contenente un sistema
embedded e convertitori A/D e D/A ad alte
prestazioni
• Lo scopo della tesi è stato scrivere i device drivers
per configurare e utilizzare il convertitore A/D
• Le specifiche di acquisizione dei dati sono:
• Risoluzione 24 bit
• Frequenza di campionamento 52734 Hz
• Acquisizione di campioni contigui
8. Strumenti SW utilizzati
• Distribuzione Linux Ubuntu 12.04.3 LTS distribuita
da armhf.com
• Compilatore GNU GCC per la parte di
compilazione driver
• Cross-compilatore PASM fornito dalla Texas
Instrument per il sistema Programmable Realtime
Unit (PRU)
9. Software sviluppato
A. Device driver di configurazione SPI in C
B. Estensione del driver in C con lettura dal
convertitore
C. Device driver di programmazione PRU in C
D. Programma in assembly PRU
10. Architettura software del driver
di configurazione SPI
• Device driver a caratteri bbSPIconf
• Comandi ioctl per lettura/scrittura registri SPI
• Interfaccia procfs per informazioni sullo stato del
sottosistema SPI
11. Architettura software del driver di
configurazione esteso a lettura
• Device driver a caratteri bbSPI
• Implementazione di lettura con modalità polling
• Implementazione di lettura utilizzando interrupt
12. Architettura software del driver
di programmazione PRU
• Device driver a caratteri ADC_PRU
• Comandi ioctl per programmazione e attivazione
PRUSS
• Gestione interrupt e acquisizione letture da PRU
13. Architettura software del
programma di lettura PRU
• Programma in assembly di lettura SPI
start:
read 2048 samples
send interrupt to driver
wait for interrupt ACK
GOTO start
14. Misura sperimentale di rumore
del convertitore A/D
0
2000
4000
6000
8000
10000
12000
14000
Valore del campione
Occorrenze
19. Conclusioni
I lavoro di tesi ha prodotto:
• un device driver di configurazione e lettura
SPI
• un device driver di programmazione del PRU
• un programma in assembly per il PRU
• I risultati sperimentali dimostrano che il
sistema funziona secondo le specifiche