Generator de cip de semnale de ton dtmf. Generator dual-ton multi-frecvență (DTMF) pe AVR. conditionare semnal dtmf

Pe tema dispozitivelor simple, am decis să asamblam un generator de semnal DTMF folosind același ATtiny2313. Pentru cei care nu știu, DTMF (Dual-Tone Multi-Frequency) este un semnal analogic cu două tonuri, cu mai multe frecvențe, folosit pentru a forma un număr de telefon. Citiți Wikipedia.

Decizia de a asambla un astfel de dispozitiv a fost dictată de dorința de a încerca să implementeze semnale analogice complexe folosind un microcontroler. Nu a fost planificată nicio aplicație practică pentru acest dispozitiv, dar poate cineva ar găsi util un astfel de dispozitiv? Foloseste-l!

Sursa generatorului DTMF


Acum să vedem ce avem.

Semnalul este generat folosind PWM și se folosește un circuit RC pentru a-i da forma dorită. Ca urmare, după lanțul RC, obținem următorul semnal (butonul 6 este apăsat):

De-a lungul întregii curbe a semnalului util, observăm un pieptene de înaltă frecvență (frecvența este mai mare decât cea audibilă, deci nu va crea zgomot) - aceasta este munca circuitului RC. Puteți face linia mai netedă prin creșterea capacității condensatorului sau a rezistenței rezistorului, dar în acest caz intervalul semnalului util va scădea semnificativ.

Ne uităm la spectrul semnalului și ne asigurăm că există două frecvențe separate (frecvența PWM a ieșit în afara zonei de afișare), ceea ce înseamnă că totul este în regulă - dispozitivul funcționează așa cum ar trebui.

Soluții gata

Există soluții gata făcute pentru sarcinile de generare și decodare a unui semnal DTMF. Iată câteva fișe tehnice pentru aceste microcircuite.

generator DTMF
- Decodor DTMF


P.S. Păcat că ATtiny2313 nu are ADC - poți folosi și un decodor DTMF! Dar e în regulă, îl voi repeta pe mega, cu siguranță îl voi atașa.

(Vizitat de 6.868 de ori, 1 vizite astăzi)

Invenţia se referă la domeniul generării digitale a semnalelor cu frecvenţă dual-ton (DTMF) destinate transmisiei de date, de exemplu, în domeniul telefoniei. Rezultatul tehnic obținut este o reducere a numărului de elemente de circuit redundante, creșterea eficienței economice. Generatorul de semnal DTMF, care implementează Metoda de generare a semnalelor DTMF, conține doi sumatori cumulativi, două registre de reținere, două dispozitive de stocare, un sumator final, un convertor digital-analogic, un convertor de coduri de semnal DTMF într-o secvență de numere întregi. , un divizor al frecvenței de referință a generatorului de semnal DTMF cu un coeficient de divizare reglabil, un convertor coduri de semnal DTMF în cod de factor de divizare. 2 s. si 3 salarii f-ly, 2 ill.

Invenţia se referă la metode de generare a semnalelor DTMF (frecvenţă cu două tonuri) prin metode digitale, destinate transmiterii de date, de exemplu, în domeniul telefoniei în timpul apelării ton-frecvenţă Cele mai apropiate în esenţă tehnică de rezultatul revendicat Metoda este metoda de generare a semnalelor DTMF, prezentată în brevetul US nr. 5034977 din 04/04/89, publ. 23.07.91, clasa M. 5 N 04 M 1/00 ​​O metodă cunoscută pentru generarea de semnale DTMF include selectarea primului și celui de-al doilea cod de unghi de eșantionare corespunzător primei și celei de-a doua frecvențe ale componentelor semnalului DTMF, însumând în mod cumulativ separat primul și respectiv al doilea cod de unghi de eșantionare. cele fixe, cu o perioadă corespunzătoare frecvenței de eșantionare a ceasului, primul și al doilea rezultat de însumare cumulativă, obținându-se primele și a doua valori discrete ale componentelor semnalului DTMF stocate în celulele localizate la adresa din tabelele corespunzătoare de discrete. valorile componentelor semnalului DTMF, prin citirea din tabelele corespunzătoare la adresele corespunzătoare rezultatelor însumării cumulative a codurilor unghiului de eșantionare, însumând prima și a doua valoare discretă a componentelor semnalului DTMF la obţine a treia valoare discretă corespunzătoare valorii semnalului DTMF. O metodă cunoscută de generare a semnalelor DTMF este următoarea: în funcţie de codul semnalului DTMF, prin conversia mai întâi a codurilor semnalelor DTMF, este selectat un prim cod care. determină unghiul de eșantionare a semnalului cu frecvența , corespunzător grupului de frecvențe înalte - coloane, iar prin intermediul celei de-a doua conversii a codurilor de semnal DTMF se selectează un al doilea cod care determină unghiul de eșantionare a semnalului cu o frecvență corespunzătoare grupul de frecvențe joase - rânduri, periodic, cu o perioadă corespunzătoare frecvenței ceasului de eșantionare, primul cod al unghiului de eșantionare este însumat în sumatorul acumulativ corespunzător și este înregistrat în registrul corespunzător, a cărui ieșire este rezultatul, a cărei valoare corespunde adresei celulei de tabel stocată în memoria corespunzătoare numai de citire și în care sunt situate valorile discrete corespunzătoare ale sinusurilor care determină frecvența superioară a semnalului DTMF în același mod, periodic, cu o perioadă corespunzătoare frecvenței ceasului de eșantionare, al doilea cod al unghiului de eșantionare este însumat în sumatorul acumulativ corespunzător și înregistrat în registrul corespunzător, a cărui ieșire este rezultatul, a cărui valoare corespunde adresei celulei din tabel stocată în dispozitivul de memorie corespondent de citire și în care valorile discrete corespunzătoare ale sinusurilor care determină frecvența inferioară a semnalului DTMF, se însumează valorile discrete ale sinusurilor care determină frecvențele superioare și inferioare ale semnalului DTMF sus în sumatorul final, determinând valoarea discretă a semnalului DTMF și, prin conversie digital-analogică, furnizată la ieșire, formând un semnal DTMF step-sinus corespunzător codului de intrare al semnalului DTMF. Metoda cunoscută este ineficientă, ceea ce se datorează indicatorilor săi tehnici și economici, iar indicatorii tehnologici sunt determinați de costurile necesare la implementarea metodei pentru a atinge parametrii necesari pentru semnalele DTMF. În metoda cunoscută, acuratețea generării frecvenței depinde de adâncimea de biți a codului corespunzătoare unghiului de eșantionare, ceea ce necesită o lățime mare de biți a sumatorului acumulativ, ceea ce face dificilă implementarea metodei cu hardware simplu. Și anume, codul unghiului de eșantionare în metoda cunoscută este determinat de expresia K = (F/F t)32..., (1.1) unde K este codul corespunzător unghiului de eșantionare F este frecvența generată; este frecvența de eșantionare După cum se poate observa, acuratețea frecvenței generate depinde în mod clar de raportul dintre frecvența generată și frecvența de eșantionare. sunt necesare cel puțin două cifre semnificative după virgulă, ceea ce necesită prezentarea datelor cu adâncime de biți pentru frecvențele inferioare de cel puțin 8 biți, iar pentru frecvențe înalte de cel puțin 9 biți, și pentru însumarea cumulativă, respectiv, de cel puțin 12 biți , ceea ce duce la o creștere a numărului de elemente componente ale dispozitivelor care implementează metoda cunoscută. Dispozitivele cunoscute pentru implementarea metodei cunoscute, și anume sumătoarele, registrele și dispozitivele de stocare permanente au intrări/ieșiri cu o lățime de 4 și 8 biți. Prin urmare, cu o capacitate de biți mai mare, sunt necesare costuri tehnice și economice suplimentare la implementarea dispozitivelor la fel de funcționale. Mai mult, în metoda cunoscută, reducerea numărului de zecimale duce la o eroare de frecvență care depășește cea admisibilă Indicatorii tehnologici sunt determinați de versatilitatea și unificarea în implementarea metodei, de exemplu, nivelul modern de tehnologie, care implică. reducerea consumului de materiale, componente și creșterea versatilității dispozitivelor, necesită utilizarea de microcontrolere. Microcontrolerele larg răspândite utilizate în măsurătorile de telefonie și telemetrie utilizează date pe 8 biți și o unitate aritmetică-logică de 8 biți, ceea ce necesită, la implementarea metodei cunoscute, operații de calcul suplimentare asociate cu însumarea datelor cu o lățime mai mare de 8 biți și analiza semnalul de transfer, care crește numărul de comenzi și, în consecință, frecvența de ceas a microcontrolerului, precum și cantitatea de RAM a microcontrolerului, ceea ce duce la o creștere a costului dispozitivelor care utilizează metoda cunoscută pentru generarea DTMF semnale. Această concluzie este dată atunci când se analizează utilizarea metodei cunoscute într-un dialer de tonuri bazat pe microcontrolere fabricate de Atmel, Microchip tnc etc. Astfel, metoda cunoscută este fundamental ineficientă, ceea ce se datorează unor indicatori tehnici și economici scăzuti, exprimați în creștere consumul de materiale, consumul de energie și indicatori tehnologici scăzuti, deoarece are limitări atunci când se utilizează metoda, inclusiv ca parte a microcontrolerelor utilizate pe scară largă, care se exprimă în caracteristicile tehnice crescute cerute de microcontrolere, ceea ce reduce versatilitatea acestora rezultatul obținut la generatorul de semnal DTMF revendicat este semnalele generatorului DTMF, prezentat în brevetul US nr. 5034977 din 04/04/89, publ. 23/07/91, clasa M.. 5 N 04 M 1/00 ​​Generatorul de semnal DTMF cunoscut include: un prim sumator acumulativ, un prim registru de blocare, un prim dispozitiv de memorie, un al doilea sumator acumulator, un al doilea registru de blocare, un al doilea dispozitiv de memorie, un registru de blocare. convertor digital-analogic, în care ieșirea primului sumator acumulativ este conectată cu intrarea primului registru de blocare, ieșirea primului registru de blocare este conectată la intrarea primului dispozitiv de memorie, precum și la unul dintre intrările primului sumator acumulativ, ieșirea primului dispozitiv de memorie este conectată la una dintre intrările celui de-al doilea sumator, ieșirea celui de-al doilea sumator acumulativ este conectată la intrarea celui de-al doilea registru de blocare, ieșirea celui de-al doilea Registrul de reținere este conectat la intrarea celui de-al doilea dispozitiv de stocare, precum și la una dintre intrările celui de-al doilea sumator acumulativ, ieșirea celui de-al doilea dispozitiv de stocare este conectat la o altă intrare a sumatorului final, ieșirea adatorului final este conectat la intrarea convertorului digital-analogic, a cărui ieșire este ieșirea generatorului de semnal DTMF. al semnalului DTMF, un al doilea convertor de coduri de semnal DTMF în coduri corespunzătoare ale unghiurilor de eșantionare corespunzătoare frecvențelor inferioare ale semnalului DTMF, în care ieșirea primului convertor de coduri de semnal DTMF este conectată la o altă intrare a primului sumator cumulativ, ieșirea celui de-al doilea convertor de cod de semnal DTMF este conectată la o altă intrare a celui de-al doilea sumator acumulativ, intrările primului și celui de-al doilea convertor de cod de semnal DTMF sunt intrările generatorului de semnal DTMF și intrările de ceas ale primului și celui de-al doilea blocare. registrele sunt interconectate și sunt intrarea frecvenței de ceas de eșantionare a generatorului de semnal DTMF. Generatorul de semnal DTMF cunoscut oferă un rezultat tehnic scăzut datorită numărului excesiv de elemente de circuit asociate cu diferite, precum și capacității de biți excesive a elementelor la fel de funcționale. În plus, implementarea soluției tehnice cunoscute este efectiv posibilă sub forma unui circuit integrat separat, totuși, acest lucru necesită organizarea unei producții specializate, dar având în vedere că generatoarele de semnal DTMF fac parte din dispozitive multifuncționale (telefoane cu capacități avansate, dispozitive pentru transmiterea informațiilor telemetrice prin linii telefonice etc.) etc.), implementate în prezent pe baza de microcontrolere universale, producția de microcircuite de semnal DTMF individuale este ineficientă din punct de vedere economic. Baza soluției tehnice propuse este sarcina de a crea o metodă pentru generarea de semnale DTMF folosind un generator de semnal DTMF, în care, prin modificarea condițiilor și succesiunii operațiunilor, se implementează o metodă cu indicatori tehnici și economici înalți, datorită scăderii capacității de biți a operațiunilor similare, indicatori tehnologici înalți, când implementarea metodei, atât în ​​proiectarea circuitelor cu hardware simplu, cât și ca parte a unui microcontroler multifuncțional, asociat cu repetabilitate, la implementarea, elemente funcționale identice Soluția tehnică de bază, sarcina a fost stabilită pentru a crea un generator de semnal DTMF, în care, prin introducerea de noi elemente și realizarea de noi conexiuni, rezultatul tehnic asociat cu reducerea numărului de elemente de circuit redundante este crescut și, în consecință, eficiența economică asociată cu posibilitatea de implementare a soluției tehnice propuse prin mijloace disponibile pe scară largă rezolvată prin aceea că, în metoda cunoscută de generare a semnalelor DTMF, inclusiv selecția primului și celui de-al doilea cod al unghiurilor de eșantionare corespunzătoare primei și celei de-a doua frecvențe ale componentelor semnalului DTMF, însumarea cumulată a primului și celui de-al doilea cod al unghiuri de eșantionare separat, respectiv, fixate periodic, cu o perioadă corespunzătoare frecvenței ceasului de eșantionare, primul și al doilea rezultat de însumare cumulativă, obținându-se prima și a doua valoare discretă a componentelor semnalului DTMF stocate în celulele localizate la adresă ale tabelele corespunzătoare de valori discrete ale componentelor semnalului DTMF, prin citirea din tabelele corespunzătoare la adresele corespunzătoare rezultatelor însumării cumulate a codurilor unghiului de eșantionare, însumând prima și a doua valoare discretă a componentelor semnalului DTMF la obțineți a treia valoare discretă corespunzătoare valorii semnalului DTMF, ceea ce este nou este că obținerea primei și a doua valori discrete ale componentelor semnalului DTMF stocate în celulele adresabile ale tabelelor corespunzătoare de valori discrete ale DTMF componentele semnalului se realizează prin citirea din tabelele corespunzătoare la adresele corespunzătoare rezultatelor însumării cumulative a primei și respectiv a doua secvențe de numere întregi, a căror valoare medie corespunde codurilor unghiurilor de eșantionare corespunzătoare componentelor de semnalul DTMF. În plus, valoarea medie a succesiunii de numere întregi care formează rezultatul însumării cumulative poate fi media aritmetică a acestor numere frecvența ceasului de eșantionare, care este diferită pentru diferite semnale DTMF. Problema pusă este de asemenea rezolvată prin faptul că, în generatorul de semnal DTMF cunoscut, include un prim registru de blocare, un prim dispozitiv de memorie, un al doilea sumător. , un al doilea registru de blocare, un al doilea dispozitiv de memorie, un sumator final, un convertor digital-analogic, iar ieșirea primului sumator acumulativ este conectată la intrarea primului registru de blocare, ieșirea primului registru de blocare este conectată la intrarea primului dispozitiv de memorie, precum și la una dintre intrările primului sumator acumulativ, ieșirea primului dispozitiv de memorie este conectată la una dintre intrările agregatorului final, ieșirea celui de-al doilea sumator acumulativ este conectat la intrarea celui de-al doilea registru de blocare, ieșirea celui de-al doilea registru de blocare este conectată la intrarea celui de-al doilea dispozitiv de stocare, precum și la una dintre intrările celui de-al doilea sumator acumulativ, ieșirea celui de al doilea dispozitiv de stocare este conectat la o altă intrare a sumătorului final, ieșirea sumatorului final este conectată la intrarea convertorului digital-analogic, a cărui ieșire este ieșirea generatorului de semnal DTMF, nou, conform Invenției este aceea că generatorul de semnal DTMF conține în plus un convertor de coduri de semnal DTMF într-o secvență de numere întregi, un divizor al frecvenței de referință a generatorului de semnal DTMF cu un coeficient de divizare reglabil, un convertor de coduri de semnal DTMF într-un cod de coeficient de divizare și primul ieșirea convertorului de coduri de semnal DTMF într-o secvență de numere întregi este conectată la o altă intrare a primului sumator acumulativ, a doua ieșire a convertorului de coduri de semnal DTMF într-o secvență de numere întregi este conectată la o altă intrare a celui de-al doilea sumator acumulativ, ieșirea divizorului de frecvență principal al generatorului de semnal DTMF cu un coeficient de divizare reglabil este conectată la intrarea de ceas a convertorului de cod de semnal DTMF într-o secvență de numere întregi, precum și la intrarea de ceas a primului registru de blocare și a ceasului. intrarea celui de-al doilea registru de blocare, ieșirea convertorului codului de semnal DTMF în codul coeficientului de divizare este conectată la intrarea de setare a coeficientului de divizare al divizorului de frecvență principal al generatorului de semnal DTMF, intrarea divizorului de frecvență principal al Generatorul de semnal DTMF cu un coeficient de divizare reglabil este introdus din frecvența de referință a generatorului de semnal DTMF, intrarea convertorului codurilor de semnal DTMF în codul coeficientului de divizare este conectată la intrarea convertorului de coduri de semnal DTMF într-o secvență de numere întregi și este intrarea generatorului de semnal DTMF. În plus, convertorul codurilor de semnal DTMF în secvențe de numere întregi poate fi realizat sub forma unui dispozitiv de memorie programabil controlat, a cărui memorie constă în, corespunzător numărului de semnale DTMF, zone de memorie constând din celule de memorie corespunzătoare lungimea secvenței de numere întregi, celule de memorie proiectate astfel încât o jumătate din celula de memorie stochează un număr legat de prima secvență de numere întregi, iar cealaltă jumătate a celulei de memorie stochează un număr legat, respectiv, de o altă secvență de numere întregi care sunt termeni ai sumatoarelor acumulative corespondente, iar controlul dispozitivului de memorie programabil este configurat pentru a controla separat zona de memorie de selecție și o celulă de memorie separată. Caracteristici noi ale metodei de generare a semnalelor DTMF și a generatorului de semnal DTMF, împreună cu cele cunoscute caracteristicile acestor obiecte, oferă noi proprietăți tehnice ale obiectelor și, ca urmare a acestor proprietăți, se oferă un nou rezultat tehnic necesar între setul de caracteristici Metoda propusă și rezultatul tehnic obținut sunt explicat după cum urmează. Pentru a dezvălui esența soluției tehnice propuse, vor fi utile următoarele calcule: y(P)=sin(n) (1.2), unde y(P) este valoarea discretă a funcției sinus;=wT =27F/Fr (1,3) - unghiul de eșantionare, măsurat în radiani n - numărul de serie al probei - F t = F OSC / kd - frecvența ceasului de eșantionare, unde F OSC - frecvența de setare a dispozitivului; coeficientul de diviziune Atunci = 2FC D / F O S C . (1.4) După cum se știe, funcția sinus este periodică cu o perioadă de 2. Pentru a converti unghiul de eșantionare din radiani în unități relative și pentru a obține codul unghiului de eșantionare, împărțim întreaga perioadă în m părți, unde m este un binar număr întreg. Astfel, obținem o parte minimă discretă a perioadei: = 2/m. (1.5) Codul unghiului de eșantionare este valoarea relativă a unghiului de eșantionare în conformitate cu o parte a perioadei, și anume, K=/=2F/F t: 2P/m=Fm/F t (1.6) De exemplu, pentru frecvențele generate de 1477 Hz și 697 Hz (corespunde codului de semnal DTMF „3”), cu m = 64, și frecvența de ceas F t = 32768 Hz K 697 = 1,36 K l477 = 2,88 afișarea codului unghiului de eșantionare K 697 =1,36 V, respectiv, 136 necesită 8 biți (1281+640+320+160+81+40+20+10) și K 1477 =2,88 V, respectiv, 288 necesită 9 biți ( 2561+1280+640+321+ 160+80+40+ 20+10). În același timp, pentru însumarea cumulativă, respectiv, într-o reprezentare binară, sunt necesari 12 biți, ceea ce a determinat dezavantajele celor cunoscute descrise mai sus). soluţie. Soluția tehnică propusă definește, de exemplu, numărul 1,36 ca valoare medie a unei secvențe de numere întregi 1 și 2, și anume 1,36=(1x+2y)/(x+y), unde x și y sunt numărul de numere 1 și respectiv 2, repetându-se periodic cu o perioadă (x+y) Valoarea codului unghiului de eșantionare constă dintr-o parte întreagă C și una fracțională, i.e. de exemplu, 1,36=1+0,36. Precizia relativă a unei astfel de înlocuiri în conformitate cu expresia (1.7) = K/C (1.7) crește cu o creștere a părții întregi a valorii codului unghiului de eșantionare. De exemplu, pentru o frecvență generată de 697 Hz, m = 64 și o frecvență de ceas F t = 32768 Hz, eroarea în înlocuirea K 697 = 1,36 cu valorile numerelor 1 și 2 este de 36 și, respectiv, 32% În același timp, dacă creșteți valoarea lui m = 256, atunci eroarea de a înlocui K 697 = 5,45 cu valorile numerelor 5 și, respectiv, cu 10%. eroare a frecvenței generate, de exemplu, la înlocuirea K 697 = 5,45 cu valorile numerelor 5 și 6 în timpul perioadei de repetiție, egală cu 16, 5,45=(5x+6y)/(x+y), unde ( x+y)=16 Rezolvând ecuația, obținem x=9, y=7, adică. din șaisprezece operații de însumare cumulativă, termenul 5 este însumat de nouă ori și termenul 6 este însumat de șapte ori, în timp ce de fapt K 697 = 5,4375, înlocuind această valoare în expresia (1.6) pentru m = 256, F t = 32768 Hz, determinăm valoarea reală calculată a frecvenței generate F = 696 Hz, în timp ce eroarea a rămas 0,1%. Astfel, însumarea cumulativă a unei secvențe de numere întregi, a cărei valoare medie corespunde unghiurilor de eșantionare corespunzătoare, face posibilă obținerea unui nivel tehnic și economic ridicat. indicatori prin reducerea capacității de biți a operațiilor de însumare cumulativă, datorită capacității de a varia componentele expresiilor de mai sus și, în consecință, reducerea capacității de biți a dispozitivelor care implementează metoda propusă, ceea ce duce la o reducere a costurilor hardware și energetice la implementarea metodei , și pentru a asigura performanța tehnologică înaltă a metodei propuse atunci când este utilizată în dispozitive multifuncționale din cauza cerințelor tehnice reduse rezultatul tehnic ridicat al generatorului de semnal DTMF este asigurat prin introducerea de noi elemente ale unui convertor de cod de semnal DTMF într-o secvență de numere întregi, un divizor de frecvență de referință a generatorului de semnal DTMF cu un coeficient de divizare reglabil, un convertor de cod de semnal DTMF într-un coeficient de divizor cod, care asigură implementarea metodei prin elemente de circuit cu aceeași adâncime de biți, care nu depășește 8 biți, în timp ce nu există redundanță de elemente necesare pentru rezolvarea mai multor probleme, de exemplu, atât pentru înregistrarea rezultatului însumării cumulate, cât și pentru a se adresează dispozitivului de stocare corespunzător, se utilizează același număr de biți, care nu sunt implementați mai mult de un registru de 8 biți, care poate fi implementat prin mijloace disponibile public sub forma unui singur microcircuit sau, într-o versiune cu microprocesor, a unui singur celula de memorie. În plus, implementarea sumatoarelor acumulative se poate face sub formă de dispozitive identice, cu aceeași adâncime de biți, sub formă de microcircuite aditoare disponibile public care funcționează cu sumători pe 4 biți Desigur, se înțelege că numerele și , în consecință, dispozitivele care formează secvențele de numere întregi descrise mai sus, a căror totalitate determină codurile de unghi de eșantionare corespunzătoare pot fi cu o adâncime de biți diferită, dar cea mai optimă, din punctul de vedere al îndeplinirii obiectivelor stabilite de soluția propusă, sunt numere de 4 biți În plus, un rezultat tehnic ridicat este asigurat și la implementarea soluției tehnice propuse ca parte a microcontrolerelor, unde comenzile microcontrolerului de sistem includ în mod necesar comenzi care funcționează cu numere de 4 biți. soluția tehnică propusă a generatorului de semnal DTMF permite rezultate tehnice ridicate asociate cu o reducere a numărului de elemente de circuit și oferă, de asemenea, versatilitate la implementarea generatorului de semnal DTMF ca hardware disponibil public și ca parte a microcontrolerelor multifuncționale, care determină eficienţă economică ridicată a soluţiei tehnice. Invenţia este ilustrată în desen, în care Fig. 1 prezintă funcţional un generator de semnal DTMF care implementează o metodă de generare de semnale DTMF , divizorul 2 al frecvenței de referință a generatorului de semnal DTMF cu un coeficient de divizare reglabil, convertorul 3 de coduri de semnal DTMF într-un cod de coeficient de divizare, primul sumator acumulativ 4, primul registru de blocare 5, primul dispozitiv de memorie 6, al doilea dispozitiv de memorie 7, al doilea registru de blocare 8, al doilea sumator acumulativ, sumatorul final 10, convertorul digital-analogic 11. Funcționarea generatorului de semnal DTMF este ilustrată prin exemplul de implementare a unei metode de generare a semnalelor DTMF, anterior privind expresiile (1.4, 1.6) și datele tehnice, în special frecvența de setare a dispozitivului în care va fi implementată metoda propusă, se calculează secvențe de numere întregi, definind codurile corespunzătoare ale unghiurilor de eșantionare și codurile coeficienților de divizare pentru divizorul 2 a frecvenței de referință a generatorului de semnal DTMF cu un coeficient de divizare reglabil, care sunt scrise în celulele corespunzătoare din zonele de memorie ale convertorului 1 de coduri de semnal DTMF într-o secvență de numere întregi și convertorul 3 de coduri de semnal DTMF în diviziune coduri de coeficienți, valorile discrete ale funcțiilor sinusoidale corespunzătoare sunt, de asemenea, precalculate, al căror număr este determinat de numărul de discrete m, și scrise în memoriile corespunzătoare 6 și 7, atunci când se generează un semnal DTMF, la intrările convertorului 1 și ale convertorului 3, care sunt intrările generatorului, pentru o perioadă de acțiune a semnalului DTMF, se va seta codul semnalului DTMF generat, la ieșirea convertorului 3 se va seta un cod care determină coeficientul de divizare pentru divizorul 2, în timp ce la ieșirea divizorului 2 se va seta periodic frecvența ceasului de eșantionare, cu o perioadă corespunzătoare frecvenței ceasului de eșantionare, de la prima ieșire a convertorului 1 vor fi numerele binare incluse în prima secvență de numere întregi. vor fi furnizate la intrarea primului sumator acumulativ 4, iar de la a doua ieșire a convertorului 1 numerele binare incluse în a doua secvență de numere întregi corespunzătoare componentelor semnalului DTMF vor fi furnizate la intrarea celui de-al doilea acumulator. sumatorul 9, rezultatele însumării acumulative sunt furnizate de la ieșirile sumatoarelor acumulative la intrările registrelor de blocare corespunzătoare 5 și 8, de la ieșirile registrelor de blocare 5 și 8, rezultatele însumării acumulative, cu o corespunzătoare frecvenței ceasului de eșantionare, sunt trimise la alte intrări ale sumatoarelor acumulative corespunzătoare 4 și 9, precum și la intrările dispozitivelor de stocare corespunzătoare 6 și 7, stabilind adresele valorilor discrete ale sinusurilor componentele corespunzătoare ale semnalului DTMF, de la ieșirile dispozitivelor de stocare 6 și 7, valorile discrete ale componentelor corespunzătoare ale semnalului DTMF sunt furnizate la intrările corespunzătoare ale sumatorului final 10, la ieșirea căruia un discret este format un semnal binar DTMF, care este alimentat la intrarea convertorului digital-analogic 11, a cărui ieșire generează un semnal DTMF sinusoidal în trepte corespunzător codului de intrare al semnalului DTMF. Convertorul 1 de coduri de semnal DTMF într-o secvență de numere întregi (Fig. 1) poate fi realizat în forma prezentată în Fig. 2, unde convertorul codurilor de semnal DTMF într-o secvență de numere întregi include un dispozitiv de control 12, o memorie programabilă Dispozitivul 13. Funcționarea generatorului de semnal DTMF este ilustrată Mai jos este un exemplu specific de implementare a metodei propuse într-un apelator de frecvență vocală telefonică Anterior, pe baza expresiilor (1.4, 1.6) și a datelor tehnice, secvențele de numere întregi sunt. calculate care determină codurile corespunzătoare unghiului de eșantionare și codurile coeficientului de divizare pentru divizorul 2 al frecvenței de referință a generatorului de semnal DTMF cu raport de divizare reglabil. Având în vedere că implementarea metodei include același tip de calcule, pentru a ilustra munca, un exemplu specific arată implementarea unei metode de generare a unui semnal DTMF corespunzător apăsării tastei „7” ca parte a unui apelator ton-impuls. Frecvența de cuarț cea mai comună în tehnologia telefonică, și anume F OSC =3579545 Hz, este setată ca frecvență de referință a generatorului. Apăsarea tastei „7” corespunde unui semnal DTMF cu o frecvență superioară (coloane) de 1209 Hz și o frecvență inferioară (rânduri) de 852 Hz. Deoarece semnalul DTMF transmite simultan două frecvențe, coeficienții de divizare sunt calculați pentru frecvența mai mare - superioară, astfel încât codul unghiului de eșantionare corespunzător în conformitate cu expresia (1.6) să fie aproape de valoarea maximă - 16, care este implementată în cel mult date pe 4 biți. Astfel, cu F OSC = 3579545 Hz, numărul de valori discrete ale sinurilor m = 128, valorile calculate ale coeficientului de divizare pentru divizorul 2 al frecvenței de referință a generatorului de semnal DTMF cu un coeficient de divizare reglabil K D = 240 = 460, în timp ce codurile unghiului de eșantionare corespunzătoare pentru frecvența superioară sunt K 1209 /852 =10,376, pentru frecvența inferioară K 852/1209 =7,312, înlocuim codurile unghiului de eșantionare cu secvențe de numere întregi 10/11 și 7/8.10.375 = (10x+11y)/(x+y), în timp ce de fapt K 1209 / 852 = 10,3757,312 = (7x+8y)/(x+y), în timp ce de fapt K 952/1209 = 7,313, cu (x+y) = 16. Astfel, 10,375 este înlocuit periodic cu o succesiune repetată de numere întregi de 10 x 10 ori și 11 x 6 ori, iar 7.312 este înlocuit cu 7 x 11 ori și 8 x 5 Zona de memorie pentru codul de semnal DTMF „7” în reprezentare binară este următoarea:
În acest fel, sunt calculate șaisprezece tabele corespunzătoare codurilor de semnal DTMF, și anume 0, 1, 2...9, *, #, A, B, C, D și sunt scrise anterior în memoria dispozitivului de memorie programabilă. 13 (Convertorul codului de caractere DTMF în secvențe de numere întregi Când apăsați o tastă, de exemplu, „7” la intrarea generatorului, pe durata semnalului DTMF, codul binar al semnalului DTMF „7” (0111). setat, convertorul 3 al codului de semnal DTMF în coeficient de divizare transformă codul de semnal DTMF în codul de coeficient împărțind kd pentru divizorul 2 al frecvenței de referință a generatorului cu un coeficient de divizare reglabil, frecvența ceasului de eșantionare F t =F OSC /K D va fi setat la ieșirea divizorului 2. Codul de semnal DTMF ajunge, de asemenea, la intrările de adresă ale celor mai semnificativi biți ai dispozitivului de memorie programabil 13 (convertorul codurilor de semnal DTMF în secvențe de numere întregi) și este prezent acolo pe durata semnalului DTMF. Dispozitivul controlat 12, realizat, de exemplu, sub forma unui contor (convertor de coduri de semnal DTMF într-o succesiune de numere întregi), sub influența semnalelor de ceas cu o frecvență t își schimbă ciclic valoarea pe ieșirile paralele secvenţial de la 0000 la 1111, modificând în consecință valorile intrărilor de adrese ale biților de ordin inferior ai dispozitivului de memorie programabil 13 (convertorul codurilor de semnal DTMF într-o secvență de numere întregi), numerele de 8 biți (octeți) apar la ieșirea dispozitiv de memorie programabil 13 cu o frecvență de ceas de eșantionare și, în conformitate cu tabelul 1, cei mai semnificativi patru biți (cel mai semnificativ nibble) formează o secvență de numere întregi, a căror totalitate, și anume, media aritmetică, determină codul unghiului de eșantionare corespunzător la frecvența superioară (coloane) și cele mai puțin semnificative patru cifre (nibble scăzut) formează o secvență de numere întregi, a căror totalitate, și anume, media aritmetică, determină codul unghiului de eșantionare corespunzătoare frecvenței inferioare (liniei), pe patru biți datele, în conformitate cu Tabelul 1, de la ieșirea dispozitivului de memorie programabil 13 (convertorul codurilor de semnal DTMF într-o secvență de numere întregi) sunt furnizate separat la intrările sumatoarelor acumulative corespunzătoare 4 și 9, la ieșirile corespunzătoare. sumatoarele 4 si 9 se schimba datele cu o frecventa de eșantionare a ceasului de la 0 la m (în acest caz m=128), determinând și fixând cu ajutorul registrelor de menținere 5 și 8 adresele dispozitivelor de stocare 6 și 7, în care valorile binare discrete dintre componentele sinusoidale corespunzătoare ale semnalului DTMF sunt scrise, respectiv, din dispozitivele de stocare a ieșirilor 6 și 7, valori binare discrete ale componentelor sinusoidale corespunzătoare ale semnalului DTMF sunt furnizate intrărilor corespunzătoare ale sumatorului final 10, la ieșirea cărora se formează valori binare discrete ale semnalului DTMF, care sunt apoi furnizate la intrarea convertorului digital-analogic 11, la ieșirea căruia este generat un semnal DTMF sinusoidal în trepte. Generatorul de semnal DTMF poate fi implementat pe baza unor mijloace tehnice cunoscute, descrise, de exemplu, în: Aplicarea circuitelor integrate în tehnologia computerelor electronice. Manual / Ed. B.N. Fayzulaeva, B.V. Tarabrina. - M.: Radio and Communications, 1986. În acest caz, convertorul 3 de coduri de semnal DTMF în coduri de coeficient de divizare poate fi realizat, de exemplu, sub forma unui cip de memorie doar în citire 155PE 3 (p. 343), implementarea registrelor este descrisă la p. 108, implementarea sumatorilor acumulativi este descrisă la p. 114. Metoda inventiva și generatorul de semnal DTMF sunt implementate de asemenea pe baza hardware-ului de la Microchip Inc. (microcontrolere cu un singur cip de 8 biți de tip pic16f628), ca parte a dialerului telefonic cu puls „Kadran - NKT - 01” produs de compania „Kadran” (Ucraina, Zaporozhye). Sistemul de comandă și structura internă a nodurilor microcontrolerului sunt descrise în: Prokopenko B.Ya. Microcontrolere cu un singur cip. Dodeka, 2000, ISBN8-87835-056-4 O descriere a parametrilor semnalului DTMF este dată, de exemplu, în: Circuite integrate: Chips pentru telefonie. Problema 1. - M.: Dodeka, 1994, 256 p. - ISBN-5-87835-003-3., p. 12, 13.

REVENDICARE

1. O metodă pentru generarea de semnale cu frecvență dublă (DTMF), inclusiv selectarea primului și celui de-al doilea cod de unghi de eșantionare corespunzător primei și celei de-a doua frecvențe ale componentelor semnalului DTMF, însumând în mod cumulativ separat primul și al doilea cod de unghi de eșantionare cu, respectiv, periodic perioade fixe corespunzătoare frecvenței ceasului de eșantionare, primul și al doilea rezultat al însumării cumulate, obținând prima și a doua valoare discretă a componentelor semnalului DTMF stocate în celulele localizate la adresa tabelelor corespunzătoare de valori discrete ale Componentele semnalului DTMF, prin citirea din tabelele corespunzătoare la adresele corespunzătoare rezultatelor însumării cumulative a codurilor unghiului de eșantionare, însumând primele și a doua valori discrete ale componentelor semnalului DTMF pentru a obține a treia valoare discretă corespunzătoare valorii a semnalului DTMF, caracterizat prin aceea că prima și a doua valoare discretă a componentelor semnalului DTMF stocate în celulele adresabile ale tabelelor corespunzătoare de valori discrete ale componentelor semnalului DTMF sunt obținute prin citirea din tabelele corespunzătoare la adrese , corespunzătoare rezultatelor însumării cumulate a primei și respectiv a doua secvențe de numere întregi, a căror valoare medie corespunde codurilor unghiurilor de eșantionare, componentele corespunzătoare ale semnalului DTMF.2. 2. Metodă conform revendicării 1, caracterizată prin aceea că valoarea medie a succesiunii de numere întregi care formează rezultatul însumării cumulate este media aritmetică a acestor numere.3. 4. Metodă conform revendicării 1, caracterizată prin aceea că primul și al doilea rezultat al însumării cumulate sunt înregistrate periodic cu o perioadă corespunzătoare frecvenței de ceas de eșantionare, care este diferită pentru diferite semnale DTMF.4. Un generator de semnal DTMF, incluzând un prim sumator acumulativ, un prim registru de blocare, un prim dispozitiv de memorie, un al doilea sumator acumulativ, un al doilea registru de blocare, un al doilea dispozitiv de memorie, un sumator final, un convertor digital-analogic, în care ieșirea primului sumator acumulativ este conectată la intrarea primului registru de blocare, ieșirea primului registru de blocare este conectată la intrarea primului dispozitiv de memorie, precum și la una dintre intrările primului sumator acumulativ, ieșirea primului dispozitiv de memorie este conectată la una dintre intrările agregatorului final, ieșirea celui de-al doilea sumator acumulativ este conectată la intrarea celui de-al doilea registru de blocare, ieșirea celui de-al doilea registru de blocare este conectată la intrarea celui de-al doilea registru de blocare. al doilea dispozitiv de memorie, precum și cu una dintre intrările celui de-al doilea sumator acumulativ, ieșirea celui de-al doilea dispozitiv de stocare este conectată la o altă intrare a sumatorului final, ieșirea sumatorului final este conectată la intrarea unui dispozitiv digital. convertor analogic, a cărui ieșire este ieșirea unui generator de semnal DTMF, caracterizat prin aceea că generatorul de semnal DTMF conține în plus un convertor coduri de semnale DTMF într-o secvență de numere întregi, un divizor al frecvenței de referință a generatorului de semnal DTMF cu un coeficient de divizare reglabil, un convertor de coduri de semnal DTMF într-un cod de coeficient de divizare, în care prima ieșire a convertorului de coduri de semnal DTMF într-o secvență de numere întregi este conectată la o altă intrare a primului sumator acumulativ, a doua ieșire a codurile convertorului de semnale DTMF într-o secvență de numere întregi este conectată la o altă intrare a celui de-al doilea sumator acumulativ, ieșirea divizorului de frecvență setat al generatorului de semnal DTMF cu un coeficient de divizare reglabil este conectată la intrarea de ceas a convertorului de coduri de Semnale DTMF într-o secvență de numere întregi, precum și la intrarea de ceas a primului registru de blocare și la intrarea de ceas a celui de-al doilea registru de reținere, ieșirea convertorului de cod de semnal DTMF într-un cod de coeficient de divizare este conectată la intrarea de setare coeficientul de divizare al divizorului de frecvență de referință al generatorului de semnal DTMF, intrarea divizorului de frecvență de referință al generatorului de semnal DTMF cu un coeficient de divizare reglabil este intrarea frecvenței de referință a generatorului de semnal DTMF, intrarea convertorului de cod de semnal DTMF în codul coeficientului de diviziune este conectat la intrarea convertorului de cod de semnal DTMF într-o secvență de numere întregi și este intrarea generatorului de semnal DTMF. 5. Generator de semnal DTMF conform revendicării 4, caracterizat prin aceea că convertorul de cod al semnalelor DTMF într-o secvență de numere întregi este realizat sub forma unui dispozitiv de memorie programabil controlat, a cărui memorie constă în corespondența numărului de semnale DTMF. , zone de memorie formate din celule corespunzătoare lungimii memoriei secvenței de numere întregi, concepute astfel încât într-o jumătate a celulei de memorie să fie stocat un număr legat de prima secvență de numere întregi, iar în cealaltă jumătate a celulei de memorie a numărul este stocat corespunzător unei alte secvențe de numere întregi care sunt termeni ai sumătorilor acumulativi corespunzători, iar controlul dispozitivului de memorie programabil este realizat cu capacitatea de a controla separat selecția unei zone de memorie și a unei celule de memorie separate.

Trăsături distinctive

  • Generarea undelor sinusoidale utilizând modularea lățimii impulsului (PWM)
  • Combinarea diferitelor semnale sinusoidale într-un singur semnal DTMF
  • Coduri sursă în limbaje asamblare și C
  • Proiectat pentru a funcționa cu STK500
  • Dimensiunea codului programului 260 octeți / dimensiunea tabelului constant 128 octeți
  • Folosind metoda de conversie a tabelului

Introducere

Acest document descrie o tehnică pentru generarea de semnale DTMF (semnale cu două tonuri cu frecvență multiplă) folosind orice microcontroler AVR care conține o unitate de modulare a lățimii impulsului (PWM) și RAM statică. Aceste semnale sunt utilizate pe scară largă în telefonie, unde sunt reproduse atunci când apăsați butoanele de apelare ale unui aparat telefonic. Pentru a genera corect un semnal DTMF, două frecvențe trebuie suprapuse împreună: o frecvență joasă (fb) și una înaltă (fa). Tabelul 1 arată cum sunt amestecate diferite frecvențe pentru a produce tonuri DTMF atunci când sunt apăsate taste diferite.


Figura 1. Circuitul generator de semnal DTMF

Tabelul 1. Matricea de generare a tonurilor

fb/fa 1209 Hz 1336 Hz 1477 Hz 1633 Hz
697 Hz 1 2 3 A
770 Hz 4 5 6 B
852 Hz 7 8 9 C
941 Hz * 0 # D

Rândurile din Tabelul 1 arată valori de frecvență joasă, iar coloanele arată valori de frecvență înaltă. De exemplu, matricea arată că atunci când apăsați butonul „5”, frecvențele fb = 770 Hz și fa = 1336 Hz ar trebui amestecate. Ca urmare a adăugării a două semnale sinusoidale de frecvențe diferite, se formează un semnal DTMF

unde raportul de amplitudine K=A b /A a al semnalelor originale trebuie să îndeplinească condiția

Principiul de funcționare

În plus față de informațiile generale despre utilizarea modulării lățimii impulsului, va fi arătat mai jos modul în care modularea lățimii impulsului vă permite să generați semnale sinusoidale. Următorul paragraf descrie modul de utilizare a frecvenței de comutare de bază pentru a obține frecvențe diferite. După trecerea în revistă a fundamentelor teoretice, va fi oferită o descriere a generatorului de semnal DTMF în sine. Generarea undelor sinusoidale

În funcție de raportul dintre durata nivelurilor de tensiune VH ridicată și VL scăzută, valoarea medie la ieșirea PWM se modifică. Dacă raportul dintre duratele ambelor niveluri este menținut constant, ca rezultat va fi generat un nivel constant de tensiune VAV. Figura 2 prezintă un semnal modulat pe lățimea impulsului.


Figura 2. Generarea nivelului de tensiune DC

Nivelul de tensiune este determinat de expresia:

(3)

Un semnal sinusoidal poate fi generat cu condiția ca valoarea medie a tensiunii generate de modulația lățimii impulsului să se modifice la fiecare ciclu PWM. Relația dintre nivelurile înalte și scăzute trebuie setată în conformitate cu nivelul de tensiune al undei sinusoidale la momentul corespunzător. Figura 3 ilustrează acest proces. Datele sursă pentru PWM sunt calculate pentru fiecare dintre perioadele sale și înregistrate în tabelul de conversie (TC).

Figura 3 ilustrează, de asemenea, relația dintre frecvența undei sinusoidale fundamentale și numărul de eșantioane. Cu cât este mai mare numărul de eșantioane (Nc), cu atât este mai mare acuratețea modelării semnalului rezultat:

(4)

Frecvența PWM depinde de rezoluția PWM. La o rezoluție de 8 biți, valoarea finală (partea superioară a numărului) a temporizatorului este 0xFF (255). Deoarece Cronometrul numără înainte și înapoi, apoi această valoare trebuie dublată. Prin urmare, frecvența PWM poate fi calculată împărțind frecvența ceasului cronometrului f CK la 510. Astfel, cu o frecvență a ceasului cronometrului de 8 MHz, frecvența PWM rezultată va fi de 15,6 kHz.


Figura 3. Generarea unei unde sinusoidale folosind PWM

Modificarea frecvenței unei unde sinusoidale

Să presupunem că probele sinusoidale sunt citite din tabelul de căutare nu secvenţial, ci unul câte unul. În acest caz, la aceeași frecvență de eșantionare, va fi generat un semnal cu frecvență dublă (vezi Figura 4).


Figura 4. Dublarea frecvenței rezultate (XSW = 2)

Prin analogie, dacă citiți nu fiecare a doua valoare, ci fiecare a treia, a patra, a cincea (respectiv, lățimea pasului este de 3, 4, 5...), etc. este posibil să se genereze frecvenţe Nc în intervalul . Rețineți că pentru frecvențe înalte forma de undă rezultată nu va fi sinusoidală. Notăm lățimea pasului conform tabelului de conversie ca X SW, unde

(5)

Calculul poziției curente în TP pentru următoarea perioadă PWM (când cronometrul depășește) se realizează folosind expresia (6). Noua valoare în poziția X LUT depinde de starea sa anterioară în poziția X" LUT cu adăugarea lățimii pasului X SW

(6)

Adăugarea de frecvențe diferite pentru a obține un semnal DTMF

Semnalul DTMF poate fi generat folosind expresiile (1) și (2). Pentru simplitatea operațiilor aritmetice, se ia valoarea coeficientului K egală cu 0,75 pentru a înlocui operația aritmetică cu deplasări logice. Luând în considerare expresia (6), valoarea curentă pentru controlul PWM poate fi calculată prin expresia:

și ținând cont că X LUTa =X" LUTa + X SWa,X LUTb =X" LUTb + X SWb, scriem în sfârșit

Implementarea unui generator DTMF

Acest apendice examinează construcția unui generator de tonuri DTMF folosind o ieșire PWM de 8 biți (OC1A) și un tabel cu 128 de eșantioane cu funcție sinusoidală (Nc), fiecare specificat de 7 biți (n). Următoarele expresii arată această dependență și arată, de asemenea, cum se calculează intrările din tabelul de căutare:

(9)

Avantajul utilizării a 7 biți este că suma valorilor semnalului de înaltă și joasă frecvență este de un octet. Pentru a susține setul complet de tonuri DTMF, 8 valori pentru fiecare frecvență DTMF din tabelul 1 trebuie calculate și introduse în tabelul de căutare.

Pentru a obține o precizie mai mare, a fost implementată următoarea soluție: valorile calculate folosind expresia 5 necesită doar 5 octeți. Pentru a utiliza toți cei 8 octeți, ceea ce va reduce erorile de rotunjire, această valoare este înmulțită cu 8. Indicatorul către tabelul de căutare este scris în același mod. Dar în acest caz este nevoie de doi octeți pentru a stoca de 8 ori valoarea. Aceasta înseamnă că trebuie efectuate 3 deplasări la dreapta și o operație de modul radix Nc (înmulțire logică cu Nc-1) înainte de a utiliza acești octeți ca indicator la valorile undei sinusoidale din


Figura 5. Schema modulului pentru conectarea la STK500

Semnalul PWM este generat la pinul OC1A (PD5). Un filtru de ieșire suplimentar va ajuta la compatibilizarea semnalului cu forma de undă sinusoidală. La scăderea frecvenței PWM, poate fi necesar să utilizați un filtru cu un răspuns în frecvență mai abrupt pentru a obține un rezultat bun.

Conexiunea tastaturii este prezentată în Figura 1. Funcționarea tastaturii trebuie organizată în așa fel încât să fie posibilă determinarea tastei apăsate. Acest lucru se poate face folosind următorul algoritm:

  1. Determinarea șirului tastei apăsate
    • configurați blocnotesul de ordin scăzut al portului B ca ieșire și setați jurnalul. "0"
    • configurați tetrada înaltă a portului B ca intrare cu conexiunea rezistențelor pull-up
    • linia cu butonul apăsat este definită ca cifra celei mai înalte tetrade cu log. "0"
  2. Definirea coloanei tastei apăsate
    • configurați notebook-ul înalt al portului B ca ieșire și setați jurnalul. "0"
    • configurați tetrada de ordin inferioară a portului B ca intrare prin conectarea rezistențelor pull-up
    • coloana cu butonul apăsat este definită ca cifra tetradei de ordin inferior cu log. "0"

Notă: În STK200, rezistențele sunt conectate în serie între pinii conectorului PORTB și pinii microcontrolerului BP5, PB6 și PB7 (vezi diagrama STK200). Acest lucru va cauza probleme dacă tastatura este conectată la conectorul PORTB.

Figura 6 ilustrează funcționarea subrutinei pentru determinarea tastei apăsate. În funcție de tasta apăsată, se determină durata intervalului. Rutina de întrerupere folosește această valoare pentru a calcula setările PWM pentru cele două unde sinusoidale de ton DTM. Procedura de gestionare a întreruperilor este prezentată în figurile 7 și 8.

Această rutină calculează o valoare de comparat cu ieșirea temporizatorului pentru următoarea perioadă PWM. Rutina de întrerupere calculează mai întâi poziția următoarei valori ale eșantionului în tabelul de căutare și citește valoarea stocată acolo.

Poziția probei în tabelul de căutare este determinată de lățimea impulsului, iar lățimea reală a impulsului este determinată de frecvența generată.

Valoarea finală care este scrisă în registrul de comparare a temporizatorului este determinată folosind formula (7), care ia în considerare valorile eșantionului ambelor frecvențe DTMF.


Figura 6. Schema bloc a programului principal


Figura 7. Diagrama bloc a procedurii de procesare a întreruperilor timer overflow


Figura 8. Diagramă a procedurii de citire a eșantionului „GetSample”.

Publicare: www.cxem.net

Vezi alte articole secțiune.

Odată cu introducerea PBX-urilor digitale moderne în rețelele de telefonie ale Federației Ruse, metoda cu mai multe frecvențe de transmitere a semnalelor de apelare, desemnată prin abrevierea engleză DTMF (Dual-Tone Multiple-Frequency), se răspândește treptat. Uneori, un alt termen englezesc este folosit pentru a denumi acest sistem de transmisie a semnalului de apelare - Touch-None (apelarea pe ton). Această metodă a fost dezvoltată în 1960, dar răspândirea ei reală a început în anii 80 pe măsură ce centralele telefonice digitale (electronice) au devenit mai răspândite.

Cu această metodă de transmitere a semnalelor de control, fiecare semnal cu cifre cu mai multe frecvențe este format din două tonuri, în conformitate cu Recomandarea ITU-T Q.23 „Caracteristicile tehnice ale telefoanelor cu apelare tactilă”.

Frecvențele DTMF nu sunt alese armonic. Aceasta înseamnă că frecvențele nu au un divizor întreg decât 1. De exemplu, frecvențele 1200 și 1600 Hz sunt armonice ale frecvenței 400 Hz (3x400=1200 și 4x400=1600), iar frecvențele 697 și 770 Hz sunt nearmonice.

Fiecare semnal conține două frecvențe: una selectată din grupul inferior și al doilea din grupul superior de frecvențe.

Corespondența dintre informațiile transmise și frecvențe este prezentată în tabelul de pe panoul frontal al instalației de laborator.

Nivelul de transmisie într-un pachet cu două frecvențe, măsurat la o sarcină de 600 ohmi, este: pentru grupul de frecvență inferioară - minus 6 dBmO ± 2 dB, pentru grupul de frecvență superioară - minus 3 dBmO ± 2 dB. Nivelul de frecvență al grupului superior de frecvențe în semnalul total este cu 2 ±1 dB mai mare decât nivelul de frecvență al grupului inferior. Nivelul combinat al tuturor componentelor de frecvență de ordin superior este cu cel puțin 20 dB sub nivelul de frecvență de ordin inferior.

Condițiile în care ar trebui să apară recepția normală a semnalului sunt următoarele: prezența a două frecvențe în semnal, dintre care una este selectată din grupul inferior, iar cealaltă din grupul superior; frecvențele nu diferă de valorile lor nominale cu mai mult de 1,8%; nivelul fiecăreia dintre cele două frecvențe variază de la minus 7 la minus 30 dBmO; diferența dintre nivelurile celor două frecvențe nu depășește 3 dB; durata semnalului de frecventa este de cel putin 40 ms.

Înainte de a porni instalarea, efectuați următoarele operații:

Puneți comutatorul S6 în poziția inferioară;

Puneți comutatorul S13 în poziția superioară;

Setați comutatoarele generatoarelor grupurilor de frecvență superioară și inferioară în poziția „Oprit”;

Setați comutatorul cu cheie analogică (AK) în poziția „Pornit”;

Rotiți butoanele pentru reglarea tensiunii de ieșire a generatoarelor și a rezistenței R3 în sens invers acelor de ceasornic până se opresc.

conditionare semnal dtmf

1.1 Activați instalarea.

1.2 Conectați osciloscopul la punctul de testare KT3.

1.3 Porniți generatorul grupului de frecvență superioară, apăsând unul dintre butoanele de comutare, selectați oricare dintre frecvențele acestui grup.

1.4 Rotiți butonul de reglare a tensiunii de ieșire a generatorului pentru a seta amplitudinea semnalului în CT3 la 0,5 volți.

1.5 Comutați intrarea osciloscopului la punctul de testare KT4. Repetați pașii 1.3, 1.4 pentru generatorul grupului de frecvență inferioară, setând tensiunea în KT4 la 0,5 V.

NOTĂ: Ca urmare a operațiilor efectuate, semnalele de amplitudine egală din grupurile de frecvență superioară și inferioară sunt furnizate la intrarea sumatorului. După setarea acestor niveluri, blocați butoanele pentru reglarea tensiunii de ieșire a generatoarelor.

1.6 Comutați intrarea osciloscopului la punctul de testare KT7. Prin rotirea butonului de rezistență (R3) pentru reglarea tensiunii de ieșire a conditionerului de semnal DTMF, setați tensiunea din CT7 la 0,5 volți.

NOTĂ: Ca urmare a operațiunilor efectuate, la intrarea receptorului este furnizat un semnal continuu în două tonuri, iar simbolul corespunzător combinației de frecvențe ale generatoarelor grupurilor de frecvență superioară și inferioară ar trebui să fie afișat pe indicatorul simbolului primit. , conform tabelului. O indicație a unui semnal primit și identificat este prezența unui semnal la ieșirea receptorului STD (LED strălucitor).

      Schimbând frecvențele grupurilor de frecvență superioară și inferioară, asigurați-vă că combinațiile acestor frecvențe corespund simbolurilor primite.

  • Serghei Savenkov

    un fel de recenzie „scurtă”... de parcă s-ar grăbi undeva