Upload
patrizia-angeli
View
219
Download
2
Embed Size (px)
Citation preview
SVILUPPO DI UN PROTOTIPO DI SIMULATORE
POLIFONICO PER CONCERTO DI CAMPANE
Trieste, 12 marzo 2013
Laureando:
Francesco Guzzi
Relatore:
Prof. Sergio Carrato
Correlatore:
Ing. Piergiorgio Menia
Università degli Studi di Trieste
DIPARTIMENTO DI INGEGNERIA E ARCHITETTURACorso di Laurea in Ingegneria Elettronica
PREMESSA E SPECIFICHE:● Simulare un gruppo di 12 campane → 12 semitoni● Sistema da collegare ad un sequencer esterno.● Riproduzione campioni audio pre-registrati → 10 s● Gestione ritardi.● 2 file per campana
→ 24 file● Latenza < 10 ms.● Basso costo totale.
DELAY 1PLAY 1 DELAY 1 PLAYBACK
DELAY 1PLAY 2 DELAY 2 PLAYBACK AUDIO OUT
DELAY 1PLAY 24 DELAY 24 PLAYBACK
...
MEMORIACAMPIONIINTERFACCIA
REMOTO
PC
... ...
SEQUENCERESTERNO
2/ 16
SOLUZIONE IMPLEMENTATA● Boot istantaneo.● Bassa latenza.● 24 ingressi digitali. ● 1 uscita monofonica
analogica.● Ritardi programmabili
per ogni voce.● Gestione da remoto.● Soluzione a memoria
distribuita
BUS
MODULO 1
MODULO 2
MODULO 12
PLAY 1
PLAY 2
MCU
PLAY 24
OUT
PC
BUS
BUS
...
...
...
...
...
3/ 16
MODULO VS1000mod● 12 moduli● Alimentazione 5 V.● Formato DIP32.● File in formato VORBIS (o WAV).● SoC VS1000 programmabile.● Funzioni tipiche in ROM istruzioni.● Poca RAM istruzioni.● Sorgenti firmware di default.● GPIO a livelli CMOS.● FLASH SPI da 16 Mbit. → 23,7 s● Uscita audio analogica lineout 4/16
FIRMWARE CUSTOMInit audio structs
Set Pll
Auto Addressing
Check upload startup
Check volume startup
Main code Endless loop
GPIO conf
Init SPI
Enable interrupts
START
Set Hook
– Usa funzioni di libreria del firmware originario
– Accesso FLASH-SPI
– Lettura/scrittura filesystem a blocchi
– “Raw” TX/RX UART
– Implementato decoder software WAV
– GPIO “manuale”.
– Protocollo → upload file.
→ set volume.5/ 16
UPLOAD FILES: protocollo– Implementato protocollo a pacchetto di tipo
“stop and wait”
– Risposta ACK / NACK
– ByteStuffing / De-stuffing
– Campo dati a lunghezza variabile (MAX 240 Byte)
– Gestione timeout, overflow, address-mismatch
– Struttura pacchetto:
[STX] || [Indirizzo][Tipo_pacchetto][num_sequenza][dati][CHK] || [ETX]
6/ 16
SISTEMA DI CONTROLLO– Triggerare esecuzione dei file audio dopo il delay
programmato.
– Rimanere in ascolto sulla porta seriale per esecuzione comandi.
• Propri
• “Helper”
7/ 16
–12 x 2 Input e Output digitali.
– 1 uscita per pilotare il reset moduli;
– UART
– memoria non volatile;
– Prototipo con ATMEGA16L
SISTEMA DI CONTROLLO
8/ 16
– Tutti i nodi in ascolto
– Tx solo se indirizzo coincide
– RS232 logica invertita
– Idle “alto”
– Buffer digitali IN/OUT
BUS SERIALE MULTIDROP
9/ 16
Software di gestione
10/ 16
SISTEMA DI MISCELAZIONESIMULAZIONE
Frequenza [Hz]
Attenuazione[dB]
11/16
SCHEMA FINALE SOMMATORE
– Partitore idealizzato
– Uso di entrambi gli opmap nel package
12/16
MODULO ALIMENTATORE
– Alimentazione 12 V CC → 5 V → 3.3 V
– 80 mW / modulo (consumo tipico in play)
13/16
CONSIDERAZIONI FINALI
– Sistema prototipo funzionante egregiamente.
– Test protocollo con azioni disturbanti
– Unplug cavo durante trasmissione.
– Generazione di semplici errori nel pacchetto.
– Problemi / semplicità derivanti da:
– scelta del sistema modulare.
– uso di campioni pre-registrati.
14/16
SVILUPPI FUTURI– Implementazione di una funzionalità di
“sequencer autonomo” tipo “carillon”.
– Play standalone ma gestione su PC.
– Auto-apprendimento del tempo di ritardo.
– Riduzione firmware moduli.
– Miglioramento sicurezza protocollo.
15/16
Grazie per l'attenzione.