ENCICLOPEDIA DELLA RADIOELETTRONICA ED ELETTRICA Generatore Dual Tone Multi-Frequency (DTMF) sull'AVR. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica Enciclopedia della radioelettronica e dell'elettrotecnica / telefonia Alterità
Introduzione Questo documento descrive come generare segnali DTMF (Dual Tone Multi-Frequency) utilizzando qualsiasi microcontrollore AVR contenente un blocco PWM (Pulse Width Modulation) e SRAM. Questi segnali sono ampiamente utilizzati nella telefonia, dove vengono riprodotti quando si premono i pulsanti di composizione del telefono. Per generare correttamente un segnale DTMF è necessario sovrapporre insieme due frequenze: una bassa frequenza (fb) e una alta frequenza (fa). La tabella 1 mostra come le diverse frequenze vengono mescolate per produrre toni DTMF quando vengono premuti tasti diversi.
Tabella 1. Matrice di modellatura del tono
Le righe della Tabella 1 rappresentano i valori a bassa frequenza e le colonne mostrano i valori ad alta frequenza. Ad esempio, la matrice mostra che premendo il pulsante "5" dovrebbero mescolare le frequenze fb = 770 Hz e fa = 1336 Hz. Come risultato dell'aggiunta di due segnali sinusoidali di frequenze diverse, si forma un segnale DTMF (1) dove il rapporto di ampiezza K=Ab/Aa i segnali sorgente devono soddisfare la condizione (2) Il principio di funzionamento Oltre alle informazioni generali sull'uso della modulazione di larghezza di impulso, di seguito verrà mostrato come la modulazione di larghezza di impulso consente di generare segnali sinusoidali. Il paragrafo seguente descrive come ottenere frequenze diverse utilizzando la frequenza base PWM. Dopo aver considerato i fondamenti teorici, verrà fornita una descrizione del generatore di segnali DTMF stesso. Generazione di segnali sinusoidali A seconda del rapporto tra la durata dei livelli di tensione VH alto e VL basso, il valore medio all'uscita PWM cambia. Se il rapporto tra le durate di entrambi i livelli viene mantenuto costante, come risultato verrà generato un livello di tensione costante VAV. La Figura 2 mostra un segnale modulato in larghezza di impulso.
Il livello di tensione è determinato dall'espressione: (3) È possibile generare un segnale sinusoidale a condizione che il valore medio della tensione generata dalla modulazione dell'ampiezza dell'impulso cambi ogni periodo PWM. Il rapporto tra i livelli alto e basso deve essere impostato in base al livello di tensione del segnale sinusoidale all'istante corrispondente. La Figura 3 illustra questo processo. I dati iniziali per PWM sono calcolati per ciascuno dei suoi periodi e registrati nella tabella di conversione (TP). La Figura 3 illustra anche la relazione tra la frequenza dell'onda sinusoidale fondamentale e il numero di campioni. Maggiore è il numero di campioni (Nc), maggiore è la precisione di modellazione del segnale risultante: (4)
La frequenza PWM dipende dalla risoluzione PWM. Con una risoluzione a 8 bit, il valore finale (parte superiore del conteggio) del timer è 0xFF (255). Perché il timer conta in avanti e indietro, questo valore deve essere raddoppiato. Pertanto, la frequenza PWM può essere calcolata dividendo l'orologio del timer fCK di 510. Pertanto, con una frequenza di clock del timer di 8 MHz, la frequenza PWM risultante sarà di 15.6 kHz.
Modifica della frequenza di un segnale sinusoidale Supponiamo che i campioni sinusoidali vengano letti dalla tabella di ricerca non in sequenza, ma uno alla volta. In questo caso, alla stessa frequenza di campionamento, verrà generato un segnale con doppia frequenza (vedi Figura 4).
Per analogia, se leggi non ogni secondo valore, ma ogni terzo, quarto, quinto (rispettivamente, la larghezza del passo è 3, 4, 5 ...), ecc. è possibile generare frequenze Nc nell'intervallo [1/T Hz .. 0 Hz]. Si noti che per le alte frequenze la forma d'onda risultante non sarà sinusoidale. La larghezza del passo secondo la tabella di conversione è indicata come XSWDove (5) Il calcolo della posizione corrente nel TP per il successivo periodo PWM (quando il timer va in overflow) viene eseguito utilizzando l'espressione (6). Nuovo valore alla posizione XLUT dipende dal suo stato precedente alla posizione X'LUT con l'aggiunta della larghezza del gradino XSW (6)
Aggiunta di frequenze diverse per ottenere un segnale DTMF Il segnale DTMF può essere generato utilizzando le espressioni (1) e (2). Per semplicità delle operazioni aritmetiche, il valore del coefficiente K è preso pari a 0.75 per sostituire l'operazione aritmetica con spostamenti logici. Tenendo conto dell'espressione (6), il valore corrente per il controllo PWM può essere calcolato dall'espressione: (7) e tenendo conto che XLUTa=X'LUTa + XSWa,XLUTb=X'LUTb + XSWb, finalmente scriviamo (8) Implementazione di un generatore DTMF Questa appendice illustra come costruire un generatore di toni DTMF utilizzando un'uscita PWM a 8 bit (OC1A) e una tabella di 128 campioni di funzione seno (Nc), ciascuno specificato da 7 bit (n). Le seguenti espressioni mostrano questa dipendenza e mostrano anche come calcolare gli elementi della tabella di ricerca: (9) Il vantaggio dell'utilizzo di 7 bit è che la somma dei valori del segnale ad alta e bassa frequenza è di un byte. Per supportare il set completo di toni DTMF, è necessario calcolare 8 valori per ciascuna frequenza DTMF dalla Tabella 1 e inserirli in una tabella di conversione. Per ottenere una maggiore precisione è stata adottata la seguente soluzione: i valori calcolati dall'espressione 5 richiedono solo 5 byte. Per utilizzare tutti gli 8 byte, che ridurranno l'errore di arrotondamento, questo valore viene moltiplicato per 8. Allo stesso modo viene scritto un puntatore alla tabella di conversione. Ma in questo caso, sono necessari due byte per memorizzare 8 volte il valore. Ciò significa che devono essere eseguiti 3 spostamenti a destra e un'operazione modulo base Nc (moltiplicazione logica per Nc-1) prima di utilizzare questi byte come puntatore a valori sinusoidali in (10)
Il segnale PWM viene generato sul pin OC1A (PD5). Un filtro di uscita aggiuntivo contribuirà ad abbinare meglio la forma d'onda sinusoidale. Al diminuire della frequenza PWM, potrebbe essere necessario utilizzare un filtro con una risposta in frequenza più ripida per ottenere un buon risultato. Il collegamento della tastiera è mostrato in Figura 1. Il funzionamento della tastiera deve essere organizzato in modo tale che sia possibile determinare il tasto premuto. Questo può essere fatto utilizzando il seguente algoritmo:
Nota: l'STK200 dispone di resistori in serie tra i pin del connettore PORTB e i pin del microcontrollore BP5, PB6 e PB7 (vedere lo schema dell'STK200). Ciò causerà problemi se una tastiera è collegata al connettore PORTB. La figura 6 illustra il funzionamento della subroutine per la determinazione del tasto premuto. A seconda del tasto premuto, viene determinata la durata dell'intervallo. La routine di interrupt utilizza questo valore per calcolare le impostazioni PWM per le due onde sinusoidali del tono DTM. La procedura di gestione degli interrupt è illustrata nelle figure 7 e 8. Questa routine calcola un valore da confrontare con l'uscita del timer per il successivo periodo PWM. La routine di interrupt calcola prima la posizione del valore campione successivo nella tabella di ricerca e legge il valore memorizzato lì. La posizione del campione nella tabella di ricerca è determinata dalla durata dell'impulso e la durata effettiva dell'impulso è determinata dalla frequenza generata. Il valore finale, che viene scritto nel registro di confronto del timer, viene determinato utilizzando la formula (7), che tiene conto dei valori campione di entrambe le frequenze DTMF.
Pubblicazione: cxem.net Vedi altri articoli sezione telefonia. Leggere e scrivere utile commenti su questo articolo. Ultime notizie di scienza e tecnologia, nuova elettronica: Pelle artificiale per l'emulazione del tocco
15.04.2024 Lettiera per gatti Petgugu Global
15.04.2024 L'attrattiva degli uomini premurosi
14.04.2024
Altre notizie interessanti: ▪ Giove devia le comete e invia asteroidi sulla Terra News feed di scienza e tecnologia, nuova elettronica
Materiali interessanti della Biblioteca Tecnica Libera: ▪ sezione del sito Amplificatori di potenza. Selezione dell'articolo ▪ articolo Malattie veneree. Fondamenti di una vita sicura ▪ articolo Cosa c'è nell'area degli Stati Uniti, il cui prefisso è 321? Risposta dettagliata ▪ articolo Specialista in attività economiche estere. Descrizione del lavoro ▪ Articolo Optoaccoppiatori. Parte 2. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica
Lascia il tuo commento su questo articolo: Tutte le lingue di questa pagina Homepage | Biblioteca | Articoli | Mappa del sito | Recensioni del sito www.diagram.com.ua |