Università degli Studi di Trieste
DIPARTIMENTO DI INGEGNERIA E ARCHITETTURA
Corso di Laurea in Ingegneria Elettronica
SVILUPPO DI UN PROTOTIPO DI SIMULATORE
POLIFONICO PER CONCERTO DI CAMPANE
Laureando:
Relatore:
Francesco Guzzi
Prof. Sergio Carrato
Correlatore:
Ing. Piergiorgio Menia
Trieste, 12 marzo 2013
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
PLAY 1
●
→ 24 file
Latenza < 10 ms.
PLAY 2
...
PLAY 24
●
DELAY 1
PLAYBACK
DELAY 2
1
PLAYBACK
...
...
DELAY
DELAY 24
1
PLAYBACK
Basso costo totale.
SEQUENCER
ESTERNO
INTERFACCIA
REMOTO
PC
2/ 16
MEMORIA
CAMPIONI
AUDIO OUT
SOLUZIONE
IMPLEMENTATA
PLAY 1
PLAY 2
●
Boot istantaneo.
●
Bassa latenza.
...
...
...
24 ingressi digitali.
...
...
●
●
●
●
●
1 uscita monofonica
analogica.
MODULO 1
MODULO 2
MCU
BUS
MODULO 12
PLAY 24
Ritardi programmabili
per ogni voce.
BUS
Gestione da remoto.
BUS
Soluzione a memoria
distribuita
PC
3/ 16
OUT
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
START
FIRMWARE CUSTOM
– 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
Init audio structs
Set Pll
GPIO conf
Init SPI
Set Hook
Enable interrupts
Auto Addressing
Check upload startup
Check volume startup
Main code Endless loop
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][C
HK] || [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”
–12 x 2 Input e Output digitali.
– 1 uscita per pilotare il reset moduli;
– UART
– memoria non volatile;
– Prototipo con ATMEGA16L
7/ 16
SISTEMA DI CONTROLLO
8/ 16
BUS SERIALE MULTIDROP
– Tutti i nodi in ascolto
– Tx solo se indirizzo coincide
– RS232 logica invertita
– Idle “alto”
– Buffer digitali IN/OUT
9/ 16
Software di gestione
10/ 16
SISTEMA DI MISCELAZIONE
Attenuazione
[dB]
SIMULAZIONE
Frequenza [Hz]
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.
Scarica

simulatore_campane