• Non ci sono risultati.

5.1 Descrizione del software in linee di principio 5 D S R

N/A
N/A
Protected

Academic year: 2021

Condividi "5.1 Descrizione del software in linee di principio 5 D S R"

Copied!
12
0
0

Testo completo

(1)

5

D

ESCRIZIONE DEL

S

OFTWARE E

R

ISULTATI

In questo capitolo si presenta il software implementato sul processore DSP della Microchip dsPIC33EP512MU810. Il software sintetizza le funzionalità di un trasmettitore per segnali MSK, di banda 100 Hz riferiti a una frequenza portante 30 KHz. Infine si presenta i risultati all’analizzatore di spettro FFT.

5.1

Descrizione del software in linee di principio

Il software deve gestire ed elaborare un flusso dati in real-time. Non è possibile perciò acquisire i dati, elaborarli e aspettare la risposta in un tempo non predeterminato. Questo vale in quanto il segnale è per sua natura analogico e quindi continuo. Si può tuttavia, per il nostro scopo, accettare un ritardo temporale costante (uno shift temporale) tra il segnale di ingresso e quello di uscita. Per alcune applicazioni questo non è consentito, ma non rientra in questo caso.

Il ritardo temporale è pari a tre cicli clock: nel primo ciclo macchina avviene la ricezione seriale dei dati dall’ ADC, nel secondo l’elaborazione del valore acquisito e infine nell’ultimo la trasmissione seriale al DAC del valore elaborato. Tutto questo deve avvenire in modo continuo, per non perdere dati in ricezione e non lasciare dei “vuoti” nel segnale generato in uscita.

La progettazione del software è avvenuta con la tecnica top-down [4]. Tale tecnica consiste di risolvere il problema in generale e quindi progressivamente scinderlo in sotto-problemi.

L’algoritmo, implementato sulla scheda, genera un segnale MSK con un trasmettitore sub-ottimo 2-FSK coerente in fase, che viene chiamata anche FFSK (Fast-FSK). Questo tipo di modulazione è particolarmente adatta per trasmissioni sottomarine, in quanto necessitano di trasmettere un basso rate informativo ma ad elevata potenza.

La scelta di implementare questo tipo di trasmettitore semplificato è dovuta al fatto che si ha pochi cicli macchina a disposizione tra un campione e il successivo.

(2)

Infatti la frequenza di campionamento per il canale destro e sinistro è pari a 192 KHz che nel tempo equivale a soli 5,2 . Il processore garantisce prestazioni di 70 MIPS (milioni di istruzioni al secondo) per cui un’ istruzione viene eseguita in circa 14 . Risulta che il numero di istruzioni disponibili per clock siano pari a 364. Aumentando la frequenza del processore è possibile arrivare intorno alle (ma non oltre) 400 istruzioni, in quanto viene meno la stabilità del dispositivo. Tuttavia il processore ha architetture hardware, che consentono di eseguire, ad esempio, il calcolo di filtraggio di tipo FIR, con centinaia di taps, cosa che non sarebbe certamente possibile con processori tradizionali in pochi cicli macchina.

L’ambiente software usato è MPLAB X e il compilatore XC16 [8]. Il software è stato implementato sul processore con il supporto USB della Microchip PICKit3.

Si mostra nella figura 5-1, come viene caricato il firmware sul prototipo realizzato, con il dispositivo USB PICKit3 della Microchip.

Figure 5-1

5.2

Configurazione oscillatore e protocolli di comunicazioni

Per la programmazione della scheda in primo luogo è necessario settare i parametri dell’oscillatore e del protocollo di comunicazione. Se la configurazione dei parametri dell’oscillatore non è corretta non è possibile accendere il dispositivo.

(3)

Il settaggio del clock è avvenuto nel seguente modo: si preleva il segnale di riferimento dall’esterno (fornito da un oscillatore ad elevata precisione) CK_DSP a 24 MHz e si fa passare attraverso il PLL, integrato nel DSP, per portare la frequenza della macchina a stati a circa 66 MHz a limite di funzionamento del dispositivo. Per il protocollo di comunicazione dei dati audio si attiva il modulo DCI [12] imponendo il formato I2S giustificato a sinistra (questa scelta è dovuta al fatto che i dati nei registri sono memorizzati sempre con giustificazione a sinistra e questo permette di risparmiare bit clock). Il modulo prende in ingresso il segnale CK_SYS a 12 MHz circa e genera il segnale di sincronizzazione di trama COFS a 192 KHz e gestisce i flussi dati rispettivamente in ingresso e uscita CSDI e CSDO a 12.288 MHz.

Nella figura 5-2, si mostra come esempio all’oscilloscopio in giallo il segnale di sincronizzazione delle trame COFS, mentre in blu in segnale CSDO che invia ciclicamente il segnale 0b1010101010101010 in entrambi i canali.

Figure 5-2

Nella figura 5-3, si presenta in giallo il segnale CSDI in ingresso al modulo DCI che viene riportato in uscita con il segnale CSDO in blu. Si può osservare il ritardo di un ciclo macchina per dare il tempo al modulo di effettuare lo spostamento dei dati tra registri e quindi effettuare la trasmissione dei valori nei registri TXBUF del modulo DCI ad ogni colpo di ciclo macchina.

(4)

Figure 5-3

La gestione del protocollo avviene tramite l’uso di funzioni ISR (interrupt service

routin) che sono funzioni che vengono chiamate dall’interrupt del DCI. L’uso degli

interrupt è dovuto dal fatto che si stia processando dati in real time e l’esigenza di rispettare vincoli di tempo è necessaria in quanto si deve gestire un flusso di dati continuo. E’ evidente che l’intervallo di tempo tra l’interrupt di arrivo di un dato nel buffer del modulo DCI e il successivo sia il solo a disposizione per processare i dati ricevuti e fornire una risposta.

Infine il protocollo SPI per programmare via software il DAC PCM 1753. Per quanto riguarda l’ADC PCM 1804 la configurazione come mostrato nel terzo capitolo, avviene senza protocollo ma con il setting dei pin dedicati .

Si mostra, in figura 5-4, l’andamento dello SPI, in particolare in giallo il clock (SPI_CK) e in blu i dati (SPI_D) che inviano il segnale di dato di prova 0b0011111111111111.

(5)

Figure 5-4

5.3

Presentazione dell’algoritmo implementato in linguaggio C

In questo paragrafo si presenta l’algoritmo, implementato in linguaggio in C, del trasmettitore sub-ottimo 2-FSK coerente in fase. Il segnale MSK è previsto che sia centrato a 30 KHz e trasmetta 100 bit al secondo.

In trasmissione, risulta che la distanza minima tra i toni, affinché siano ortogonali tra loro (in appendice la modulazione MSK), sia pari a:

1

100 ; ∆ 21 50 .

Per cui le frequenze dei due toni devono essere le seguenti:

30000 25 29975 30000 25 30025 .

Si implementa nel firmware NCO, a cui segue la tabella PAC per la generazione dei due toni.

Per generare questi due toni, conservando la fase, si impone la variazione della WORD, 100 volte al secondo per avere appunto un rate informativo pari a 100 bit al secondo. Questo accorgimento ci permette appunto di mantenere continua la fase,

(6)

perché, indipendentemente dal momento di variazione della word, la fase si conserva nel phase register del NCO.

La word di controllo viene messa pari a per trasmettere -1 (genera il tono ) e per trasmettere +1 (genera il tono ). Ricordando che la frequenza di uscita del NCO è pari a

! "# "$∙ '()_+,-& ,

con ./0_123 il numero di bit del NCO, risulta, nel nostro caso specifico, che:

!45 6 19245 6 ∙7+,-& ,

infatti l’accumulatore di fase del NCO viene descritto con un intero senza segno (unsigned int) a 16 bit, perciò:

1789 = 2:;!_789 = 2 < = 65536.

Da cui si calcola facilmente le due word di ingresso al NCO per e in modo approssimato. Infatti:

: = 10231 : = 10249.

Una volta stabiliti questi valori, prima di cominciare la trasmissione dati, si deve costruire la tabella PAC, che ha il compito di mappare il segnale rampa nel segnale sinusoidale.

Tale tabella contiene 2 interi da 16 bit, da caricare in trasmissione sul TXBUF0.

Maggiore è la lunghezza della tabella PAC (1?@8), e migliore è la risoluzione.

Tuttavia, essendo la data memory del processore, di default, di pochi KB, si deve caricare questi dati nella program memory, che offre 32 KB di memoria libera [10], grazie alla funzione PSV (Program Space Visibility) offerta dal compilatore Microchip. In realtà si potrebbe occupare persino una quantità superiore di memoria con una programmazione appropriata, ma non oltre i 42KB.

Perciò, la grandezza (e quindi risoluzione) massima ottenibile della tabella PAC è pari a:

2 ∗ 16 = 2048 ∗ 16 = 32768 ./0.

La trasmissione avviene quindi nel seguente modo: all’arrivo dell’interrupt di buffer di trasmissione vuoti e buffer di ricezioni pieni del modulo DCI, si carica immediatamente il valore dalla PAC scelto nel registro TXBUF e quindi si calcola il

(7)

nuovo campione da inviare per l’interrupt successivo. Se il bit trasmesso è -1, il segnale rampa somma iterativamente , altrimenti .

In sintesi l’algoritmo legge sempre la stessa tabella PAC, variando istantaneamente la word. Questo consente di conservare la continuità di fase iniziale, in quanto tale valore è registrato nello shift register del NCO.

Come anticipato, per la generazione della sinusoide si usano ‘solo’ 16 dei 24 bit che il DAC e l’ADC è in grado di gestire.

In figura 5-5, si mostra una modulazione MSK di esempio. Si possono facilmente distinguere i due toni frequenziali utilizzati per la trasmissione per una serie alternata di zeri e uni.

Figure 5-5

5.4

Risultati ottenuti all’analizzatore di spettro

Infine in questo paragrafo si vuole mostrare i risultati raggiunti con il totale lavoro svolto durante il tirocinio.

Le foto che sono riportate in questo paragrafo sono state prese dall’analizzatore di spettro ‘HP 3561A dynamic signal analyzer’.

(8)

Per generare e mostrare in foto spettri più puliti e bilanciati, sono state trasmesse sequenze di zero e uno alternate con la modulazione MSK. Chiaramente nel caso di sequenze pseudo-randomiche, la banda dello spettro occupata è di fatto la stessa. Inviando una serie alternata di 0 e 1, si ha un segnale modulante di periodo 50 Hz. Quindi risulta che la distanza delle righe di bessel è di 50 Hz. La tabella PAC è settata alla sua massima lunghezza possibile: a 11 bit. In figura 5-6, infatti si possono vedere le righe di Bessel distanziate 50 Hz. La frequenza centrale è a 30 KHz e l’intervallo di osservazione (span) pari a 1 KHz. Si osserva immediatamente, che tale segnale ha una banda stretta e a distanza di 500 Hz presenta una attenuazione notevole, di ben 50 dB.

Figure 5-6

In figura 5-7, si osserva lo stesso segnale su intervallo frequenziale da 0 a 100 KHz. Il numero di bit della tabella PAC incide sulla risoluzione del segnale. Infatti il numero dei valori possibili è certamente il fattore che incide maggiormente sulla pulizia del segnale. La risoluzione risulta essere infatti circa

SNR ≅20log JK2 L 20log JK2048L 66.2 MN.

Tale valore si può riscontrare nell’immagine appena citata. Infatti la totalità delle frequenze di disturbo, che comprendono le armoniche superiori, spurie e soprattutto

(9)

le frequenze dovute ai prodotti di intermodulazione, sono ben al di sotto dei 60 dB ( un quadretto in altezza corrisponde a 10 dB).

Figure 5-7

Questo relazione tra numero di bit usato e risoluzione si può osservare anche nelle foto che seguono.

Infatti diminuendo la risoluzione in bit della tabella PAC, e quindi i bit di risoluzione inviati al DAC, si ottiene i seguenti risultati:

In figura 5-8, con 10 bit si ha risoluzione pari a

(10)

Figure 5-2

In figura 5-9 con 9 bit si ha

SNR ≅20log JK2OL 20log JK512L 54.1 MN.

Figure 5-3

In figura 5-10, a 8 bit si ha

SNR ≅20log JK2PL 20log JK256L 48.1 MN.

Già a partire da 8 bit, con 10 KHz di span, non si riesce più a distinguere tra loro le varie frequenze di disturbo.

(11)

Figure 5-4

In figura 5-11, con 7 bit si ha

SNR ≅20log JK2QL 20log JK128L 42.1 MN.

Figure 5-5

In figura 5-12, con soli 6 bit si ha

(12)

Figure 5-6

Infine in figura 5-13, con soli 4 bit si ha

SNR ≅20log JK2RL 20log JK16L 20 MN.

Figure 5-7

In particolare con soli 4 bit, il segnale ha soli 16 possibili livelli perciò il segnale è estremamente sporco. Il picco a 66 KHz corrisponde a un prodotto di intermodulazione frequenziale, infatti O 30 96 30 66 KHz.

Figura

Figure 5-2  In figura 5-9 con 9 bit si ha
Figure 5-4  In figura 5-11, con 7 bit si ha

Riferimenti

Documenti correlati

Un pannello di controllo sulla morsettiera del motore consente l'impostazione del setpoint richiesto, nonché l'impostazione della pompa su funzionamento &#34;Min.&#34; o

Debido a que el sistema de certificación es diferente, advertimos que Weidmüller no puede asumir garantía alguna para los productos marcados si los componentes de

La risoluzione di disequazioni di grado superiore al secondo è possibile se si scompone in fattori il polinomio associato.. In tal caso si studia il segno dei diversi fattori e

Entrate DATI DI RENDICONTO (*) ANNO: 2015 COMPETENZACASSA TITOLO I - ENTRATE TRIBUTARIE Categoria 1^Imposte2.561.226,24€ Categoria 2^Tasse1.102.760,02€ Categoria

Se prende l’autobus la probabilità di arrivare in orario è 70%, se viene in metro la probabilità di arrivare in orario è 90%, in auto è 50%?. • Prendere l’autobus o la metro

Viene anche detta energia termica 8.. La propagazione del calore del Sole

REG22 CVPROD, differenziale relativo al cluster 1 e ai gruppi 1 e 4 della territorialità del commercio a livello comunale REG23 CVPROD, differenziale relativo al cluster 1 e ai gruppi

mille e del due per mille dell'Irpef, il consenso per il trattamento da parte degli intermediari viene acquisito attraverso la sottoscrizione della sensibili, relativi a