Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Lanfranco Di Paolo
1
voti

Phase-locked loop numerico

Abstract. In questa nota si descriverà, da un punto di vista funzionale, un PLL completamente numerico, realizzabile con componenti logici facilmente reperibili come contatori avanti/indietro, comparatori binari, F/F e porte logiche.

Dato il semplice principio di funzionamento, come si vedrà, basato su una struttura, chiamata "Random Walk Filter", sarà possibile estendere il suo utilizzo nell'ambito delle applicazioni, in sostituzione dei tradizionali PLL analogici, come i demodulatori coerenti di fase, i moltiplicatori di frequenza, i sistemi di controllo della velocità di organi in rotazione, gli accordatori per musicisti, etc. Inoltre, dato il relativamente basso numero di componenti, allo stato attuale della tecnologia, sarà possibile realizzarlo facilmente mediante i dispositivi FPGA (Field Programmable Gate Array), con indubbio vantaggio in termini di spazio, peso e consumo. Una peculiarità del sistemà, come verrà mostrato, sarà quella relativa all'utilizzo di un quantizzatore ad 1 bit, ottenuto tramite un "hard limiter". Infine, come tutti i sistemi numerici sincroni, sarà necessario un oscillatore, che fornisca l'indispensabile segnale di orologio "master clock" per il funzionamento del sistema.

1. Introduzione

La comparsa dell'"anello ad asservimento di fase", che ormai è entrato nel linguaggio di tutti coloro che si occupano di telecomunicazioni, controlli automatici ed elettronica in generale, con l'acronimo PLL, contrazione di "Phase-locked loop", risale al giugno 1932, anno in cui apparve la sua prima descrizione, fatta dall'ingegnere francese H. de Bellescize, nell'articolo dal titolo "La reception synchrone", pubblicato su "Onde Electrique". Tuttavia, furono necessari ancora alcuni anni perché questo sistema entrasse prepotentemente nella soluzione dei problemi di sincronizzazione, determinati allora, in prevalenza, dall'iniziale sviluppo delle trasmissioni televisive.

La struttura tipica di un PLL è sufficientemente semplice, richiedendo un rivelatore di fase, che svolga le funzioni di nodo di somma algebrica del segnale in ingresso e di quello da asservire, i quali normalmente sono rappresentati da grandezze fisiche di tensione o corrente, per generare il necessario segnale d'errore, anch'esso fisicamente una tensione od una corrente, un filtro di anello ed un attuatore, rappresentato da un oscillatore che generi il segnale da asservire, il cui valore di frequenza sia controllato da tensione o da corrente.

Lo schema a blocchi, di principio, di un tale sistema è riportato in fig. 1, ove si è supposto che le pulsazioni dei due segnali X(t) ed S(t) abbiano, per semplicità, lo stesso valore, al fine di avere all'uscita del rivelatore di fase l'espressione di u1 che dipenda solo dalla differenza .

 

Il principio di funzionamento è quello di un sistema di asservimento, in cui il segnale S(t), generato dall'oscillatore controllato, che rappresenta l'attuatore dell'anello, viene confrontato con quello d'ingresso X(t) e dal confronto, realizzato nel rivelatore di fase, si ricava il segnale d'errore, che opportunamente filtrato ed amplificato, consentirà, agendo sull'oscillatore controllato, di modificare la fase del segnale da asservire, finché quest'ultimo risulti in una determinata relazione con quello d'ingresso.

L'equazione generale che descrive il comportamento dell'anello si può ottenere considerando le caratteristiche dei singoli blocchi che compaiono nel diagramma.

La caratteristica del rivelatore di fase è data da , mentre il filtro d'anello ha una risposta impulsiva f(t), che fornisce in uscita , ed, infine, quella dell'oscillatore controllato è .

Si può, pertanto, scrivere l'equazione che governa il sistema, come

,

dove il simbolo * ha il significato di convoluzione nel tempo e K1, K2 e K3 sono costanti.

Il comportamento di un siffatto anello è determinato, quindi, da un'equazione generale integro-differenziale non lineare, in cui una non linearità è determinata dal rivelatore di fase, il quale manifesta una caratteristica periodica di periodo 2o ed un'altra è determinata dalla dipendenza della costante K1 dall'ampiezza del segnale d'ingresso.

Una ampia ed esauriente trattazione dell'argomento si trova nell'eccellente libro di Alain Blanchard "Phase-locked loops. Application to coherent receiver design." Wiley-Interscience Publication -  John Wiley & Sons.

 

2. Descrizione generale

Da un punto di vista funzionale, il PLL numerico, che qui verrà descritto, accetta in ingresso un segnale ad onda quadra, ottenuto dalla quantizzazione ad 1 bit di un segnale sinusoidale, e fornisce in uscita un segnale ad onda quadra della stessa frequenza ed asservito alla fase di quello d'ingresso.

La quantizzazione ad 1 bit è ottenuta con un "hard limiter" che funzionalmente realizza l'operazione , dove  e l'operazione  trasforma la sinusoide in onda quadra della stessa frequenza, a "duty cycle" del 50%. Il segnale così ottenuto viene campionato con la transizione (positiva o negativa) di un segnale ad onda quadra di frequenza Fc. L'ampiezza dell'onda quadra Y(t) dovrà essere, naturalmente, compatibile con i valori di tensione della famiglia logica con cui si volesse realizzare il PLL.

Inoltre, poiché l'operazione , da un punto di vista matematico, comporta l'essere , occorre precisare che il valore "-1" assunto da Y(t) dovrà corrispondere allo "0" logico, mentre "+1" corrisponderà al valore "1" logico.

Nel caso di scelta di una quantizzazione ad 1 bit risulta irrilevante effettuare prima l'operazione di Sign(*) e quindi campionare ovvero campionare e quindi quantizzare ad 1 bit. Nel primo caso si semplifica molto il circuito, poiché la funzione di "sample and old" viene realizzata direttamente da elementi di memoria, come verrà descritto più avanti.

In fig. 2 è riportato lo schema a blocchi del PLL numerico.

 

Clicca per espandere

 

Il segnale d'ingresso X(t), trasformato in onda quadra Y(t) dall'interfaccia d'ingresso QNTZ, contenente l'"hard limiter", è moltiplicato, con una porta di EX-OR, per il segnale S(t), inizialmente in una relazione di fase qualsiasi con quello d'ingresso Y(t). Esso è un'onda quadra, ottenuta per divisione del segnale di campionamento CLK, dal contatore binario DVSLB ad L bit, di modulo 2L, ha un "duty cycle" del 50% ed un valore di frequenza, a riposo, pari ad Fs Hz.

L'uscita della porta di EX-OR RVLFS, che realizza la rivelazione della differenza di fase DF tra Y(t) ed S(t), rappresenta la variabile binaria d(t) che determina il segno del conteggio, realizzato dal contatore avanti-indietro (A/I), denominato IEFS. All'ingresso di conteggio di questo, è applicato il segnale ad onda quadra CLK (clock di campionamento) di frequenza pari a Fc Hz, per ottenere l'integrazione della differenza di fase. L'ingresso di conteggio del contatore IEFS rappresenta, così, il punto in cui avviene il campionamento del segnale d(t), che contiene l'informazione della differenza di fase DF tra i segnali Y(t) ed S(t), e l'elemento di memoria di IEFS, che rappresenta il bit meno significativo del conteggio, realizza anche la funzione di "sample and old".

Il contenuto dell'integratore di fase, alla fine di ogni periodo Ts di S(t), è confrontato con il valore prefissato di due soglie ±V, di modulo uguale ma di segno opposto. Quando l'accumulo dell'errore di fase raggiunge una delle due soglie (ciò dipende dal segno della differenza DF, determinato dal "duty cycle" della forma d'onda d(t) ), viene generato un comando di variazione della fase Fs(t) di S(t) pari Qv radianti, in anticipo od in ritardo, in accordo con il segno dell'accumulo. Il valore di Qv è pari ad una frazione del periodo Ts di S(t) ed è ottenuto tramite un modulatore di fase MDLFS, che consente, appunto, di anticiparne o ritardarne la fase.

Il blocco MDLFS realizza la funzione di modulazione, aggiungendo o sopprimendo un impulso al segnale CLK di clock all'ingresso di conteggio del contatore DVSLB, ogni volta che sia stato raggiunto un valore dell'accumulo degli errori di fase uguale ad uno dei due valori di soglia ±V, mentre lascerà transitare senza modificazioni il segnale CLK in tutti gli altri casi. Pertanto, la variazione della fase Fs(t) di S(t) sarà pari al quanto .

Il comportamento di questo sistema è equivalente ad un anello ad asservimento di fase del I° ordine e l'integratore con due soglie e modulatore di fase è chiamato nella letteratura "random walk filter" (RWF) (si veda "Digital Communication by Satellite" - Bhargava, Nuspl, etc. - Wiley Interscience). In fig. 3 è mostrato il suo principio di funzionamento e si è supposto che il segnale locale S(t) in quadratura sia in anticipo rispetto a quello d'ingresso Y(t).

 

3. Analisi del comportamento del PLL

Un primo approccio alla determinazione delle caratteristiche dell'anello sarà quello dei sistemi continui, giustificato dal fatto che, normalmente il numero N di campioni per periodo Ts di segnale S(t) è dell'ordine delle decine per periodo (tipicamente si tende a scegliere un multiplo di due) ed il quanto di correzione di fase Qv è un valore pari ad un piccola frazione del periodo Ts di S(t).

Si consideri il comportamento del RWF, nel caso in cui il segnale in ingresso X(t), ovvero Y(t), prima dell'asservimento, abbia lo stesso valore di frequenza Fs di S(t) a riposo. All'istante t=0, l'applicazione di X(t) in ingresso determina la generazione della variabile binaria d(t), che contiene l'informazione della differenza di fase  tra S(t) ed Y(t). Come già anticipato, il contatore avanti/indietro IEFS, accumula i campioni con il segno determinato dal controllo dell'accumulo del conteggio operato da d(t). Se, all'istante di campionamento, il valore della variabile binaria di controllo d(t) è "1" logico, il contatore IEFS conta in avanti (accumulo di un campione di valore pari a +1), mentre conta indietro se il valore è "0" (accumulo di un campione di valore pari a –1).

Se la relazione di fase tra il segnale in ingresso Y(t)e quello locale in quadratura S(t) è di  rad, la forma d'onda d(t), in uscita da RVLFS, ha un "duty cycle" del 50% e, pertanto, il conteggio netto in un ciclo Ts di S(t)sarà pari a zero. Uno scostamento da questa condizione determinerà un accumulo positivo o negativo dei campioni, a seconda della relazione di fase tra S(t)e Y(t).

Poiché il numero di campioni N in un periodo Ts del segnale S(t), di frequenza Fs, è pari a , ipotizzando una differenza di fase pari a DF, il conteggio C, accumulato in tale periodo, nell'integratore IEFS, sarà

,

da cui si ricava che la sensibilità E del rivelatore di fase è pari a

 conteggi/rad .

La condizione di equilibrio si avrà quando , vale a dire "duty cycle" di d(t) pari al 50%.

DF si potrà, pertanto, esprimere come , dove Fs e Fy sono rispettivamente la fase di S(t)e quella di Y(t), misurate rispetto ad una arbitraria origine dei tempi. Il segno + andrà preso per , mentre quello – per , per tenere conto del cambiamento di segno, effetto dei punti cuspidali, che si ha ogni o radianti nella pendenza della curva C(DF), poiché la caratteristica del rivelatore di fase è periodica di periodo 2o.

Essa è riportata in fig. 4 per un valore di N pari a . Il massimo del conteggio C (positivo o negativo), in un periodo Ts, si ha per , vale a dire per  o . L'andamento a "gradinata" è determinato dal campionamento e l'intervallo minimo delle ascisse è pari al quanto minimo di fase rivelabile , mentre sulle ordinate l'ampiezza del gradino è pari a .

Riprendendo l'espressione di C ed ipotizzando per semplicità , con r(t) "Theta di Heaviside", la velocità I con cui si incrementa il contenuto dell'integratore dell'errore di fase IEFS, in un ciclo Ts del segnale S(t), sarà data da

.

Il tempo Tv impiegato a raggiungere il valore di soglia V (positivo o negativo) sarà, pertanto,

.

L'anello di recupero della fase così sarà in grado di applicare una correzione pari a Qv radianti, determinando una velocità di correzione dell'errore DF pari a

.

Il segno meno indica che l'intervento di correzione di fase del segnale S(t) ha la direzione in cui l'errore di fase DF diminuisce.

Questa è una equazione differenziale del I° ordine, che risolta per separazione di variabili, fornisce

,

dove DF0 rappresenta la differenza di fase iniziale, vale a dire, , a partire dal quale l'anello interviene nell'asservimento, e DF(t) rappresenta l'andamento temporale del segnale d'errore, ricordando che, per semplicità, si è supposto che la frequenza Fy di Y(t) sia pari a quella a riposo Fs di S(t).

Il valore della costante di tempo del PLL del I° ordine è dato da , che, come si vede, è inversamente proporzionale alla sensibilità del rivelatore di fase ed a quella  dell'"oscillatore controllato in conteggio" dell'anello. Il suo dimensionamento può essere, quindi, effettuato agendo sui parametri N, V e Qv.

L'"oscillatore controllato in conteggio", ottenuto dal RWF e dal modulatore di fase MDLFS, svolge le funzioni dell'oscillatore controllato in tensione (VCO Voltage Controlled Oscillator) dei tradizionali PLL.

In generale, sostituendo a DF la sua espressione si può ottenere quella dell'andamento temporale dalla soluzione per la fase Fs (t) di S(t) dalla seguente equazione

,

la quale fornirà la soluzione in funzione dell'andamento della fase d'ingresso Fy(t).

Un'analisi del comportamento più aderente alla natura discreta del PLL numerico, può essere effettuata secondo le considerazioni svolte sulle caratteristiche del RWF, nell'ipotesi Fs=Fy, ovvero per uguali valori di frequenza di S(t) ed Y(t).

Come già detto, il conteggio in un periodo Ts del segnale S(t), con una differenza di fase DF, è pari a

,

il quale valore sarà un multiplo intero del periodo Tc del clock di campionamento CLK.

Poiché, inoltre, il confronto con i valori di soglia ±V, avviene al termine di ciascun periodo Ts del segnale S(t), la correzione applicata alla fase Fs (t) di S(t) avverrà sempre dopo un numero intero Z di periodi Ts.

La velocità di correzione dell'anello, in termini di radianti per numero cicli Ts, sarà data da

,

dove  è pari alla differenza tra il numero di periodi Ts prima e dopo la correzione Qv  ed i è l'indice del numero delle correzioni applicate. Risolvendo, si ha

,

dove il valore della frazione è quello dell'intero ottenuto dall'arrotondamento per eccesso all'intero superiore.

Il primo valore di Z(i) si ottiene per i=0, e rappresenta il numero di periodi Ts di S(t) necessari per raggiungere il valore V (positivo o negativo), a partire dal valore iniziale DF, e per ottenere, quindi, una correzione di fase di valore Qv. I valori successivi si otterranno ponendo i=1, 2, 3, … fino a che la quantità DF-iQv non raggiunga un valore inferiore al quanto minimo di fase rivelabile con il campionamento CLK, dato, come già detto, da .

In questo modo, si è potuto esprimere il numero Z di periodi di S(t), tra una correzione di fase e la successiva, in funzione della variazione della differenza di fase DF-iQv, mentre per esprimere l'andamento della differenza di fase DF-iQv in funzione di Z, ovvero esprimere i in funzione di Z, si sarebbe dovuto invertire la funzione "arrotondamento per eccesso", ma questa risulta essere una funzione non invertibile perché non biunivoca.

Nel grafico, mostrato in fig. 5, sono state riportate le due curve del transitorio di fase, ottenute dall'ipotesi del continuo e con il calcolo dei valori di Z(i) interi con la precedente relazione, osservando che i gradini di fase di ampiezza Qv si ottengono in corrispondenza agli Z(i), mentre per il resto dei valori la differenza di fase rimane costante e pari al valore raggiunto a Z(i-1).

Le due curve sono state ottenute con i seguenti valori dei parametri

.

Fissato un valore di V, all'aumentare del valore di N ed al diminuire di quello di Qv, il sistema tende sempre più a comportarsi come un PLL analogico e le equazioni utilizzate, come se il sistema fosse continuo, pertanto, descriveranno sempre più fedelmente il comportamento del PLL numerico.

Sull'asse delle ascisse è stato riportato il numero di periodi di S(t) come , mentre sulle ordinate il relativo valore di DF, nell'ipotesi di differenza di fase iniziale .

 

Nel caso dell'anello del I° ordine, come per tutti i sistemi di quest'ordine, occorre tenere presente il comportamento in funzione dell'eccitazione Fy(t), ovvero come esso risponde alle eccitazioni canoniche a gradino, lineare e quadratica. Nell'ipotesi di eccitazione a "gradino di fase" , applicato all'istante t0, l'anello risponde con errore di posizione nullo, mentre ad una eccitazione a "rampa di fase" , di pendenza K=2oDFy, applicata all'istante t0 ed equivalente ad un "gradino di frequenza" di ampiezza , l'errore di velocità ev risulta essere pari a

,

da cui si ricava la relazione tra l'errore di fase DFv, durante l'inseguimento della fase Fy(t) di Y(t), e la differenza DFy di frequenza tra il segnale d'ingresso e quello di riposo dell'anello. Si ottiene pertanto

.

Una indicazione della presenza di eccitazione a "rampa di fase" si può ottenere dalla frequenza Fv degli impulsi di correzione di fase, che risulta essere, con errore di fase DFv, in funzione di DFy, espressa da

,

mentre in funzione di DFv, è espressa da

Nel caso invece di una eccitazione a parabola di fase, ovvero a "rampa di frequenza", l'errore di accelerazione risulterebbe infinito e l'anello non sarebbe in grado di "agganciare" e mantenere lo stato di "aggancio" con la fase Fy (t) del segnale d'ingresso Y(t).

In generale, ove si richiedesse a regime un errore di fase nullo con eccitazione lineare di fase ("rampa di fase") , naturalmente, sarà necessario incrementare l'ordine dell'anello e passare al II° per avere un errore di velocità DFv nullo.

Anche ora un'analisi più aderente al comportamento di natura discreta del PLL numerico, potrà essere condotta come segue.

Si supponga di essere in condizioni di "aggancio", ovvero di asservimento, e di avere una differenza di frequenza tra S(t) ed Y(t) . In condizioni di regime la differenza di fase DF varierà nel tempo Tv di una quantità pari a , ove Tv rappresenta il tempo richiesto perché l'anello sia in grado di recuperare la precedente variazione di fase . Esso, pertanto, continuerà ad essere in condizioni di asservimento se . Poiché Tv è un multiplo intero di Ts, si potrà scrivere

,

dove m è il numero di periodi Ts di S(t) e sarà proporzionale alla differenza di fase DF secondo la relazione, già vista,

,

ove il valore della frazione è arrotondato all'intero superiore.

Sostituendo l'espressione di m, così trovata, nella precedente eguaglianza, si ottiene

.

Considerando che DF è un multiplo intero k del quanto minimo rivelabile, arrotondato all'intero inferiore, si può scrivere

.

Sostituendo, si ottiene  e, tenendo conto che , si ricava la relazione tra il numero k di quanti di fase DFmin e la differenza di frequenza DFy, la quale risulta essere

 

e  che rappresenta, appunto, l'errore di velocità .

Nella fig. 6 è riportato il transitorio di fase, nell'ipotesi che vi sia una differenza di frequenza iniziale tra quella Fy di Y(t) e quella Fs di S(t), tale comunque da non impedire l'asservimento, vale a dire, che esaurito il transitorio l'errore di velocità DFv non sia superiore a   rad.

Come si può notare, l'andamento del transitorio non ha più l'aspetto di una curva a gradini, bensì quello di una successione di "denti di sega", determinato, appunto, dallo scivolamento della fase del segnale d'ingresso Y(t), e dalle correzioni applicate dall'anello ad S(t) al fine di mantenere l'asservimento. L'effetto della quantizzazione non consente al valore di k di assumere qualsiasi valore, ma soltanto un insieme di valori discreti. Pertanto i valori frazionari di k saranno ottenuti dall'anello con una continua oscillazione tra due valori tal che il loro valore medio sia pari a quello richiesto dalla differenza di frequenza.

I valori dei parametri dell'anello, utilizzati per la simulazione, sono i seguenti

mentre la differenza di frequenza  è pari allo 0.1 % del valore di quello Fs di S(t) a riposo.

 

4. Conclusioni

Come si è visto dalla descrizione e dall'analisi del comportamento del PLL, la realizzazione numerica offre dei vantaggi rispetto ai tradizionali PLL analogici soprattutto in termini di flessibilità e di stabilità operativa, dipendendo quest'ultima, sostanzialmente dalle caratteristiche di stabilità dell'oscillatore di riferimento per la generazione del clock di campionamento.

La flessibilità, invece, si traduce nella possibilità di ottenere facilmente la larghezza di banda desiderata, agendo sul valore di soglia V, su quello del numero N di campioni per periodo Ts e sul valore del quanto di correzione Qv, tutte operazioni realizzabili attraverso opportune programmazioni, senza sostituzione di componenti fisici.

Il sistema descritto, naturalmente non è l'unico possibile per la realizzazione di un PLL numerico. Oggi, esistono, infatti dei dispositivi chiamati NCO, acronimo di Numerically Controlled Oscillator, che consentono di realizzare PLL numerici con una struttura molto più simile a quella analogica, poiché il dispositivo NCO è realmente un oscillatore controllato numericamente in frequenza, mentre nel sistema qui descritto si fa uso di un modulatore di fase ed un sistema di soglie con integratore di fase. Inoltre, la presenza di un NCO facilita la realizzazione di un sistema del secondo ordine, progettando opportunamente le caratteristiche del filtro d'anello, anch'esso ovviamente numerico.

L'architettura qui presentata, in realtà, è stata usata e realizzata diverso tempo prima dell'apparizione degli NCO. Essa ha permesso, con le necessarie modifiche, la realizzazione, in dispositivi integrati ASIC ("Application-specific gate array"), di demodulatori coerenti di sottoportante e sincronizzatori di bit, che sono tutt'ora utilizzati con risultati positivi nei sottosistemi di telecomando e telemetria di molti satelliti italiani ed europei.

1

Commenti e note

Inserisci un commento

di GP,

Mostra un circuito PLL con un simulatore es. Muyltisim

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.