Metoda za generisanje dtmf signala i generator dtmf signala. Generisanje i prepoznavanje DTMF signala Čip generatora DTMF tonskih signala

Prvi dio ovaj primjer Aplikacija opisuje generisanje DTMF signala pomoću MSP430 mikrokontrolera. Dato je objašnjenje najvažnijih specifikacija korištenih u ovom slučaju, te teorijsko i matematičko opravdanje za generiranje sinusnih valova korištenjem pravokutnih valova korištenjem odgovarajućih analognih filtara. Primer takođe uključuje testirane demo programe za generisanje signala pravougaonog talasa na osnovu različitih konfiguracija tajmera mikrokontrolera MSP430. Završni dio pruža dijagram strujnog kola, koji vam omogućava da generišete DTMF signale iz signala pravokutnog talasa.

2 Specifikacija DTMF signala

Skraćenica DTMF je skraćenica za “Dual Tone Multi Frequency” i predstavlja metodu predstavljanja cifara na različitim frekvencijama u svrhu njihovog prenošenja preko analognih komunikacionih linija, npr. telefonska linija. Prilikom razvoja standarda uzet je u obzir uvjet - sve frekvencije moraju biti u "glasovnom" opsegu, što je omogućilo smanjenje zahtjeva za kanal za prijenos. Telefonske mreže koriste DTMF signale za biranje i druge informacije. Unatoč činjenici da se metoda pulsnog biranja još uvijek široko koristi, što je standard, na primjer, u Njemačkoj, vrijeme biranja se značajno povećava, što dovodi do neproduktivnog opterećenja na komunikacijskim linijama. Osim toga, mnogi Dodatne usluge Komunikacija je moguća samo pomoću tonskog biranja. Prilikom kodiranja DTMF metodom, brojevi 0-9 i slova A-D, */E i #/F predstavljaju kombinacije dviju frekvencija:

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

U ovom sistemu kolona predstavlja frekvenciju iz „gornje“ frekvencijske grupe (Hi-Grupa: 1209-1633 Hz), a red predstavlja frekvenciju iz „niže“ frekvencijske grupe (Lo-Grupa: 697-941 Hz) . Tonske frekvencije su odabrane da eliminišu uticaj harmonika. Frekvencije nisu višestruke jedna drugoj i nijedna DTMF frekvencija se ne može dobiti dodavanjem ili oduzimanjem drugih frekvencija. Za generiranje birača na mreži Deutsche Telekoma, potrebne su sljedeće specifikacije (preuzete iz Zulassungsvorschrift des Bundesamtes fur Post und Telekommunikation, BAPT 223 ZV 5 (Službena specifikacija Federalnog ministarstva pošte i telekomunikacija):

3 Generirajte DTMF signale

Kao što je gore opisano, DTMF signali su analogni i sastoje se od dva nezavisna sinusna talasa. Stoga takve signale nije moguće generirati samo digitalno. Digitalni signali moraju biti pretvoreni pomoću ADC i/ili analognih filtera u traženi sinusni oblik.

3.1 Generacija pomoću kvadratnih valova

Ako se pravokutni signali koriste za generiranje DTMF signala, softver i hardver minimalno. Svaki kontinuirani signal koji ima period T može se predstaviti Fourierovim nizom koji se sastoji od beskonačnog zbira sinusnih i kosinusnih valova kako slijedi:

Gdje je a0/2 konstantna komponenta signala. Element zbrajanja sa najnižom ugaonom frekvencijom (w0) naziva se glavni (fundamentalni) harmonik, ostalo su prizvuci ili viši harmonici.

Najjednostavniji kontinuirani signal implementiran pomoću mikrokontrolera je kvadratni val, čiji Fourierov red ima oblik:

Doprinos svake frekvencijske komponente ukupnom signalu najbolje je prikazan amplitudnim spektrom (vidi sliku 2):


Rice. 2: Amplitudni spektar signala pravokutnog talasa

Kada se koristi analogni filter, DC komponenta i viši harmonici se efikasno potiskuju, dok na izlazu imamo sinusoidni signal frekvencije jednake frekvenciji originalnog pravokutnog talasa.

3.2 Softver da stvori meandar

Program proizvodnje meandra mora zadovoljiti sljedeće zahtjeve:

  • Biti u stanju sintetizirati dva nezavisna pravokutna signala.
  • Da bi se razdvojili signali, potrebna su dva izlazna pina za generiranje signala iz "gornje" (Hi-Group) i "niže" (Lo-Group) frekventni opsezi respektivno.
  • Softver bi trebao moći podesiti potrebno trajanje signala u rasponu od približno 65 ms - 100 ms.

Mikrokontroleri serije MSP430 imaju različite ugrađene tajmere koji mogu generirati signale pravokutnog talasa. Porodica '31x/'32x koristi 8-bitni tajmer i tajmer port za generiranje oba signala pravokutnog talasa. Ovaj program testirano na MCLK frekvenciji jednakoj 1,048 MHz. Timer_A u porodici '33x može nezavisno generisati oba potrebna signala. Drugi program koristi ovaj tajmer za generiranje kvadratnih valova i radi sa bilo kojom MCLK frekvencijom. Oba programa će biti detaljno razmotrena u nastavku.

3.2.1 Generiranje kvadratnih valova korištenjem 8-bitnog tajmera i porta za tajmer

Na sl. 3 je dijagram toka postupka inicijalizacije za generiranje DTMF signala. Za sintetizaciju dvije frekvencije koriste se tajmer port i 8-bitni brojači tajmera. Svaki od njih je programabilni registar brojača neophodan za preciznu sintezu potrebnih frekvencija. Ako su brojači portova tajmera kaskadno spojeni u jedan 16-bitni tajmer i taktirani na sistemskoj frekvenciji MCLK, tada se frekvencije visokog opsega mogu generirati sa velikom preciznošću. Kada dođe do prekida, odgovarajući izlaz se prebacuje i oba 8-bitna registra brojača se resetuju. Učitane vrijednosti se pohranjuju u dvije varijable u RAM-u radi spremanja internih registara za druge zadatke.

Frekvencije niskog opsega se generišu pomoću 8-bitnog tajmera. Pošto je registar brojača ovog tajmera širok 8 bita, samo svaki treći prekid izaziva promenu nivoa na potrebnom izlaznom pinu, omogućavajući generisanje istog brojača frekvencije.

Dva izlaza tajmera - porta se koriste za formiranje dva meandra različitih frekvencija.

Rice. 3 Dijagram toka postupka inicijalizacije za generiranje DTMF signala

Procedura inicijalizacije se izvodi samo jednom. Nakon njegovog završetka, heksadecimalna vrijednost prenesenog znaka se čita iz globalne varijable u RAM-u. Jednom kada se dvije frekvencije koje formiraju visoke i niske DTMF tonove generišu iz dvije tabele, sve što je potrebno je inicijalizirati i pokrenuti oba tajmera. Trajanje slanja se kontroliše brojanjem poluperioda „niže“ frekvencije i čita se iz dodatne tabele. Po završetku ove procedure, vraćate se na funkciju prozivanja. Odgovarajuće rutine za rukovanje prekidima prebacuju pinove porta. Ovaj proces je prikazan na sl. 4 i 5.

Zadaci tajmer-porta uključuju samo snimanje dnevnika. nivo na izlazu porta i ponovno učitavanje brojača iz RAM-a, dok rad 8-bitnog tajmera ima malo složeniju strukturu: svaki ulaz u prekid broji se pomoću registra brojača. Izlaz može promijeniti stanje tek nakon tri prekida. Pored toga, svaki poluperiod se takođe računa. Generacija se zaustavlja kada se dostigne određeni broj poluperioda.


Rice. 4 Block – prekidni krug od 8-bitnog tajmera (Lo-Group)


Rice. 5 Blok – krug prekida za tajmer-port (Hi-Group)

; Prilagođene definicije FLLMPY equ 32 ; Množač frekvencije FLL na 1,048 MHz TCLK equ FLLMPY*32768 ; TCLK: FLLMPY x f kvarc DL equ 85 ; Trajanje DTMF signal (65..100 ms) LO_OUT equ 02h ; Izlaz “niže” frekvencije HI_OUT equ 04h ; Visokofrekventni izlaz RCOUNT equ r14 ; Brojač dužine DTMF RTEMP equ r15 ; service register.global DTMF_NR ; globalna varijabla u RAM-u; za DTMF broj (0..F) ; Definicije RAM.even .bss DTMF_TL ; Čak i poravnanje adrese.bss DTMF_TH .bss DTMF_NR ; globalna varijabla u RAM-u; za DTMF broj (0..F).paran ; Definicije za 8-bitni tajmer TCCTL EQU 42H TCPLD EQU 43H TCDAT EQU 44H ; Definicije za univerzalni tajmer port TPCTL equ 04bh ; Tajmer-port kontrola TPCNT1 equ 04ch ; Brojač tajmer-porta 1 TPCNT2 equ 04dh ; Brojač tajmer-porta 2 TPD equ 04eh ; Podaci o tajmer-portu TPE equ 04fh ; Timer-port-resolution.text ; DTMF tablice frekvencija: tablica sadrži; broj MCLK ciklusa za jedan poluperiod. ; Tabela za “gornju” frekvenciju; Dodan korektivni amandman; uzeti u obzir vrijeme ulaska u prekid DTMF_HI .word 0ffffh-(TCLK/(1336*2))+25 ; Visoka frekvencija za 0 .word 0ffffh-(TCLK/(1207*2))+28 ; Visoka frekvencija za 1 .word 0ffffh-(TCLK/(1336*2))+25 ; Visoka frekvencija za 2 .word 0ffffh-(TCLK/(1477*2))+24 ; Visoka frekvencija za 3 riječi 0ffffh-(TCLK/(1207*2))+28 ; Visoka frekvencija za 4 .word 0ffffh-(TCLK/(1336*2))+25 ; Visoka frekvencija za 5 .word 0ffffh-(TCLK/(1477*2))+24 ; Visoka frekvencija za 6 .word 0ffffh-(TCLK/(1207*2))+28 ; Visoka frekvencija za 7 .word 0ffffh-(TCLK/(1336*2))+25 ; Visoka frekvencija za 8 .word 0ffffh-(TCLK/(1477*2))+24 ; Visoka frekvencija za 9 .word 0ffffh-(TCLK/(1633*2))+22 ; Visoka frekvencija za A .word 0ffffh-(TCLK/(1633*2))+22 ; Visoka frekvencija za B .word 0ffffh-(TCLK/(1633*2))+22 ; Visoka frekvencija za C .word 0ffffh-(TCLK/(1633*2))+22 ; Visoka frekvencija za D .word 0ffffh-(TCLK/(1207*2))+28 ; Visoka frekvencija za * .word 0ffffh-(TCLK/(1477*2))+24 ; Visoka frekvencija za # ; Tabela za “nižu” frekvenciju DTMF_LO .byte 0ffh-(TCLK/(941*2*3)) ; Niska frekvencija za 0 .byte 0ffh-(TCLK/(697*2*3)) ; Niska frekvencija za 1.bajt 0ffh-(TCLK/(697*2*3)) ; Niska frekvencija za 2 .bajta 0ffh-(TCLK/(697*2*3)) ; Niska frekvencija za 3 .bajta 0ffh-(TCLK/(770*2*3)) ; Niska frekvencija za 4 .bajta 0ffh-(TCLK/(770*2*3)) ; Niska frekvencija za 5 .byte 0ffh-(TCLK/(770*2*3)) ; Niska frekvencija za 6 .byte 0ffh-(TCLK/(853*2*3)) ; Niska frekvencija za 7 .byte 0ffh-(TCLK/(853*2*3)) ; Niska frekvencija za 8 .byte 0ffh-(TCLK/(853*2*3)) ; Niska frekvencija za 9 .byte 0ffh-(TCLK/(697*2*3)) ; Niska frekvencija za A .byte 0ffh-(TCLK/(770*2*3)) ; Niska frekvencija za B .byte 0ffh-(TCLK/(853*2*3)) ; Niska frekvencija za C .byte 0ffh-(TCLK/(941*2*3)) ; Niska frekvencija za D .byte 0ffh-(TCLK/(941*2*3)) ; Niska frekvencija za *.byte 0ffh-(TCLK/(941*2*3)) ; Niska frekvencija za # ; Tabela trajanja signala DTMF_L .byte 2*941*DL/1000 ; Poluciklusi za 0 .byte 2*697*DL/1000 ; Polucikli za 1.bajt 2*697*DL/1000 ; Polucikli za 2 .bajta 2*697*DL/1000 ; Poluciklusi za 3.bajta 2*770*DL/1000 ; Poluciklusi za 4 .bajta 2*770*DL/1000 ; Polucikli za 5 .byte 2*770*DL/1000 ; Polucikli za 6 .byte 2*852*DL/1000 ; Poluciklusi za 7 .byte 2*852*DL/1000 ; Poluciklusi za 8 .byte 2*852*DL/1000 ; Polucikli za 9 .byte 2*697*DL/1000 ; Poluciklusi za A .byte 2*770*DL/1000 ; Polucikli za B .bajt 2*852*DL/1000 ; Polucikli za C .bajt 2*941*DL/1000 ; Polucikli za D .bajt 2*941*DL/1000 ; Polucikli za *.bajt 2*941*DL/1000 ; Poluciklusi za # ;********************************************* ********** ************************************ ; DTMF-TX DTMF potprogram ;************************************************** ******************************** DTMF_TX mov.b DTMF_NR,RTEMP ; Spremite broj u privremeni registar mov.b DTMF_L(RTEMP),RCOUNT ; Sačuvajte brojač trajanja; pripremite 8-bitni tajmer za DTMF-Lo frekvenciju mov.b #0a8h,&TCCTL ; Sat iz MCLK mov.b DTMF_LO(RTEMP),&TCPLD ; Priprema registra; preload mov.b #000,&TCDAT ; Učitavanje brojača iz registra; preload bis.b #008h,&IE1 ; Omogući prekide; od 8-bitnog tajmera; priprema porta tajmera za DTMF-Hi frekvenciju rla r15 ; * 2 za 16-bitnu tablicu mov DTMF_HI(RTEMP),&DTMF_TL ; sačuvaj riječ za visokofrekventni mov #003, RTEMP ; brojač za 8-bitni tajmer bis.b #008h,IE2 ; Omogući prekide; iz tajmer-porta mov.b &DTMF_TH,&TPCNT2 ; Učitavanje visokog bajta u TC2 mov.b &DTMF_TL,&TPCNT1 ; Učitavanje niskog bajta u TC1 bis.b #080h,&TPD ; Omogući 16-bitni tajmer bis.b #HI_OUT+LO_OUT,&TPE ; Omogući DTMF-Hi/Lo izlaze mov.b #090h,&TPCTL ; Omogući tajmer ret ;********************************************** ******** ******************************* ; Tajmer-port prekid;************************************************** *** ******************************* TP_INT xor.b #HI_OUT,&TPD ; Invert DTMF-Hi izlaz mov.b &DTMF_TH,&TPCNT2 ; Učitavanje visokog bajta u TC2 mov.b &DTMF_TL,&TPCNT1 ; Učitavanje niskog bajta u TC1 bic.b #007h,&TPCTL ; Brisanje reti zastava ;************************************************** ******** *************

3.2.2 1 Generiranje kvadratnih valova korištenjem Timer_A

Ova rutina za generiranje DTMF signala koristi samo Timer_A za kvadratni talas obje željene frekvencije. Proces sastavljanja izračunava odgovarajuće vrijednosti za tajmer da koristi program bez obzira na vrijednost MCLK frekvencije. Trajanje izlaznog signala određeno je DL konstantom u milisekundama.

; Hardware Definitions; FLLMPY .equ 32 ; Množač frekvencije FLL na 1,048 MHz TCLK .equ FLLMPY*32768 ; TCLK: FLLMPY x f kvarc DL .equ 82 ; Trajanje DTMF signala u ms; (65..100 ms) STACK .equ 600h ; Adresa inicijalizacije steka; RAM definicije; STDTMF .equ 202h ; Status visoke i niske frekvencije TIM32B .equ 204 ; Ekstenzija registra tajmera LENGTH .equ 206h ; DTMF brojač trajanja; .text 0F000h ; Početna adresa programa; ; Inicijalizacija Timer_A: MCLK, kontinuirani način rada, prekidi omogućeni; Priprema izlaznih modula tajmera Timer_A MCLK = 1.048 MHz (automatski) ; INIT MOV #STACK,SP ;Inicijalizacija pokazivača steka CALL #INITSR ;Inicijalizacija množitelja; FLL frekvencije i RAM MOV #ISMCLK+TAIE+CLR,&TACTL ; Inicijalizacija tajmera MOV.B #TA2+TA1,&P3SEL ; Izlazi TA2 i TA1 na portovima P3.5/4 CLR TIM32B; Obriši prošireni registar tajmera BIS #MCONT,&TACTL ; Start timer Timer_A EINT ; Omogućavanje općeg prekida MAINLOOP ... ; Glavna petlja; ;Pritisak na taster: SDTMF sadrži pomak tabele; za 2 frekvencije (0..6,0..6) u visokom i donjem bajtu; MOV&TAR,R5 ; Za početak odmah: DODAJTE FDTMFLO,R5 ; Pomak za kraće vrijeme MOV R5,&CCR1 ; Prva promjena stanja nakon 0.71ms MOV R5,&CCR2 ; 1/(2x697) = 0,71 ms MOV #OMT+CCIE,&CCTL1 ; Inverzija izlaza, prekid bita. MOV #OMT+CCIE,&CCTL2 ; Invertni izlaz, bit prekida MOV.B STDTMF,R5 ; 82 ms brojač RRA R5 ; broj promjena stanja niže frekvencije MOV.B DTMFL(R5),LENGTH ; za trajanje signala... ; nastavak programa; ; Obrađivač prekida iz CCR0 (ovdje se ne koristi); TIMMOD0 ... RETI ; ; Rukovalac prekida iz registara za poređenje hvatanja 1..4; TIM_HND DODAJ &TAIV,PC ; Obrada zahtjeva sa najvišim; RETI prioritet; bez zahtjeva za prekid: RETI JMP HCCR1 ; zahtjev od CCR1 (DTMF niske frekvencije) JMP HCCR2 ; zahtjev od CCR2 (DTMF visoke frekvencije) JMP HCCR3 ; zahtjev od CCR3 JMP HCCR4 ; zahtjev od CCR4; TIMOVH INC TIM32B ; Proširivanje Timer_A na 32 bita RETI ; ; DTMF niska frekvencija: TA1 invertuje izlaz izlazne jedinice 1; Svaka promjena stanja se broji za kontrolu trajanja signala; HCCR1 PUSH R5 ; Čuvanje korištenih registara MOV.B STDTMF,R5 ; Status niske frekvencije DTMF ADD FDTMFLO(R5),&CCR1 ; Dodajte trajanje poluciklusa DEC.B LENGTH ; Da li je trajanje DL signala završeno? JNZ TARET ; No; ; Da, zaustavi DTMF signal: onemogući prekide; BIC #OMRS+OUT+CCIE,&CCTL1 ; Poništi TA1 BIC #OMRS+OUT+CCIE,&CCTL2 ; Resetuj TA2 TARET POP R5 ; Restore R5 RETI; Povratak iz prekida; ; Visokofrekventni DTMF: TA2 invertuje izlaz izlazne jedinice 2; HCCR2 PUSH R5 ; Čuvanje korištenih MOV registara. B STDTMF+1,R5 ; Status visoke frekvencije DTMF ADD FDTMFHI(R5),&CCR2 ; Dodajte trajanje poluciklusa POP R5 ; Restore R5 RETI; Povratak iz prekida; HCCR3 ... ;Zadatak kontrolira registar CCR3 RETI HCCR4 ... ;Zadatak kontrolira registar CCR4 RETI ; ; Tabela DTMF frekvencija: Tabela sadrži; broj MCLK ciklusa po poluciklusu. Prilagođene vrijednosti za; efektivna frekvencija MCLK tokom procesa montaže; i zaokruženo na minimum moguća greška frekvencije; FDTMFLO .riječ ((TCLK/697)+1)/2 ; Niska frekvencija DTMF 697Hz .word ((TCLK/770)+1)/2 ; 770Hz .word ((TCLK/852)+1)/2 ; 852Hz .word ((TCLK/941)+1)/2 ; 941Hz FDTMFHI .word ((TCLK/1209)+1)/2 ; Visoka frekvencija DTMF1209Hz .word ((TCLK/1336)+1)/2 ; 1336Hz .word ((TCLK/1477)+1)/2 ; 1477Hz .word ((TCLK/1633)+1)/2 ; 1633Hz; ; Tabela sadrži broj poluperioda za vrijeme trajanja DL signala (ms). ; Niža DTMF frekvencija se koristi za brojanje; DTMFL .bajt 2*697*DL/1000 ; Broj poluciklusa.bajt 2*770*DL/1000 ; za DL u ms.byte 2*852*DL/1000 ; .byte 2*941*DL/1000 ; ; .sect "TIMVEC",0FFF0h ; Vektori prekida tajmera Timer_A .word TIM_HND ; Vektor modula 1..4 tajmeri.riječ TIMMOD0 ; Modul tajmera 0 vector.sect "INITVEC",0FFFEh ; Vector Resetovati.riječ INIT

Ispod je malo brže rješenje. Međutim, za to je potrebno više RAM-a jer... Podaci dobijeni iz tabela se ne preračunavaju svaki put, već se pohranjuju ukratko u RAM DTMFLO i DTMFHI. Čitanje se vrši iz rutina prekida tajmera Timer_A. Korištene tablice su identične onima prikazanim u prethodnom primjeru.

FLLMPY .equ 32 ; Množač frekvencije FLL na 1,048 MHz TCLK .equ FLLMPY*32768 ; TCLK: FLLMPY x f kvarc DL .equ 82 ; Trajanje DTMF signala; u ms (65..100 ms) STDTMF .equ 202h ; Status visoke i niske frekvencije TIM32B .equ 204 ; Ekstenzija registra tajmera LENGTH .equ 206h ; DTMF brojač trajanja DTMFLO .equ 208h ; Poluciklus niže frekvencije DTMFHI .equ 20Ah; Poluciklus gornje frekvencije STACK .equ 600h ; Adresa inicijalizacije steka.text 0F000h ; Početna adresa programa; Inicijalizacija Timer_A: MCLK, kontinuirani način rada, prekidi omogućeni; Priprema izlaznih modula tajmera Timer_A MCLK = 1.048 MHz (automatski) ; INIT MOV #STACK,SP ; Inicijalizacija pokazivača steka CALL #INITSR ; Inicijalizacija množitelja; FLL frekvencije i RAM MOV #ISMCLK+TAIE+CLR,&TACTL ; Tajmer pokretanja MOV.B #TA2+TA1,&P3SEL ; Izlazi TA2 i TA1 na portovima P3.5/4 CLR TIM32B; Brisanje proširenog registra tajmera BIS #MCONT,&TACTL ;Pokretanje tajmera Timer_A EINT ; Omogućavanje općeg prekida MAINLOOP ... ; Glavna petlja;Pritisak na taster: SDTMF sadrži pomak tabele; za 2 frekvencije (0..6,0..6) u visokom i donjem bajtu; MOV&TAR,R5 ; Za početak odmah ADD FDTMFLO,R5 ; Pomak za kraće vrijeme MOV R5,&CCR1 ; Prva promjena stanja nakon 0.71ms MOV R5,&CCR2 ; 1/(2x697) = 0,71 ms; ; Dohvatiti dva brojača ciklusa za DTMF frekvencije; MOV.B STDTMF+1,R5 ; Visoka frekvencija DTMF MOV FDTMFHI(R5),DTMFHI ; Trajanje poluciklusa MOV.B STDTMF,R5 ; Niska frekvencija DTMF MOV DTMFLO(R5),DTMFLO ; Trajanje poluciklusa; ; Brojač trajanja RRA R5 ; Pripremite bajt indeks MOV.B DTMFL(R5),LENGTH ; broj promjena stanja niže frekvencije MOV #OMT+CCIE,&CCTL1 ; Inverzija izlaza, prekid bita. MOV #OMT+CCIE,&CCTL2 ; Inverzija izlaza, prekid bita. ... ; Povratak na glavnu petlju; ; Obrađivač prekida iz CCR0 (ovdje se ne koristi); TIMMOD0 ... RETI ; ; Rukovalac prekida iz registara za poređenje hvatanja 1..4; TIM_HND DODAJ &TAIV,PC ; Obrada zahtjeva sa najvišim; RETI prioritet; bez zahtjeva za prekid: RETI JMP HCCR1 ; zahtjev od CCR1 (DTMF niske frekvencije) JMP HCCR2 ; zahtjev od CCR2 (DTMF visoke frekvencije) JMP HCCR3 ; zahtjev od CCR3 JMP HCCR4 ; zahtjev od CCR4; TIMOVH INC TIM32B ; Proširivanje Timer_A na 32 bita RETI ; ; DTMF niska frekvencija: TA1 invertuje izlaz izlazne jedinice 1; HCCR1 DODAJ DTMFLO,&CCR1 ; Dodajte trajanje poluciklusa DEC.B LENGTH ; Da li je trajanje DL signala završeno? JNZ TARET ; No; ; Da, zaustavi DTMF signal: onemogući prekide; BIC #OMRS+OUT+CCIE,&CCTL1 ; Poništi TA1 BIC #OMRS+OUT+CCIE,&CCTL2 ; Poništi TA2 TARET RETI ; Povratak iz prekida; Visokofrekventni DTMF: TA2 invertuje izlaz izlazne jedinice 2; HCCR2 DODAJ DTMFHI,&CCR2 ; Dodajte trajanje poluciklusa RETI ; Povratak iz prekida; HCCR3. .. ;Zadatak kontrolira registar CCR3 RETI HCCR4 ... ;Zadatak kontrolira registar CCR4 RETI ; ; Tabele prekida i vektori su identični onima prikazanim u prethodnom primjeru.

3.3 Hardver za generisanje DTMF signala

Kao što je gore navedeno, u opsegu frekvencija 200 Hz.. 4600 Hz, nivo signala frekvencije prenosa mora biti najmanje 20 dB iznad nivoa stranih signala (šuma). Osim toga, na osnovu specifikacije, signali iz “gornje” i “niže” grupe moraju imati različite nivoe, tako da svaki signal zahtijeva svoj filter. Amplitude sinusoidne frekvencije mogu se dobiti iz Fourierovog reda.

Da biste odabrali granične frekvencije prilikom dizajniranja analognog filtera, morate se pridržavati sljedećih zahtjeva na osnovu:

  • Jer potrebno je obezbijediti mogućnost bilo kakve kombinacije frekvencija „niže“ grupe sa frekvencijama „gornje“ grupe, pri čemu razlika u nivoima između najniže i najviše frekvencije u grupi ne smije prelaziti 3 dB.
  • Za najnižu frekvenciju u grupi (f1), supresija harmonika (3f1) ne bi trebala biti gora od 20 dB. Ispunjenje ovog uslova je najkritičnije za nižu frekvenciju u grupi, jer što je dalje moguće od granične frekvencije filtera.

Formula opisuje kvadrat apsolutne vrijednosti na izlazu visokopropusnog Butterworthovog filtera reda n:

Ova formula predstavlja zavisnost pojačanja Butterworthovog visokopropusnog filtera o frekvenciji. Parametri fg i n određuju graničnu frekvenciju i redoslijed filtera.

Prije svega, potrebno je izračunati potreban redoslijed filtera, uzimajući u obzir usklađenost s gore navedenim zahtjevima.

Da bi se zadovoljio prvi uslov, omjer kvadrata apsolutnih vrijednosti najniže i najviše frekvencije u grupi ne smije biti veći od 3 dB ili:

Drugi uslov će automatski biti zadovoljen ako je omjer kvadrata apsolutnih vrijednosti frekvencija f1 i 3f1 veći od 10/3, u ovom slučaju treći harmonik u pravokutnom signalu je 1/3 manji (vidi Fourier-a serija i slika 2):

Kao rezultat proračuna za frekvencije obje grupe, imamo traženi red filtera n=1,15. Dakle, zahtjeve će zadovoljiti filter 2. reda, na koji se može graditi operaciono pojačalo. Ako koristite filter trećeg reda, potrebna su vam samo dva dodatna elementa. Međutim, to će smanjiti zahtjeve za disperziju parametara komponenti. Oba gornja zahtjeva bit će ispunjena ako je granična frekvencija unutar sljedećih granica:

Donja grupa fg>880 Hz fg<1418 Гц
Gornja grupa fg>1527 Hz fg<2460 Гц

Ako je granična frekvencija na svom minimumu, doći će do maksimalnog smanjenja harmonika. Međutim, u ovom slučaju razlika između najniže i najviše frekvencije u grupi će biti 3 dB. Na najvišoj mogućoj graničnoj frekvenciji, razlika u nivou je minimalna, ali su harmoničke komponente potisnute za samo 20 dB.

Prilikom proračuna filtera povećana je pažnja posvećena supresiji harmonika, razlika u nivou unutar grupe je fiksirana na 2 dB. Kao rezultat toga, granične frekvencije su 977 Hz i 1695 Hz. Rezultirajuća supresija harmonika značajno premašuje zahtjeve. Razlika u nivoima frekvencije u grupi je u okviru zahteva čak iu slučaju odstupanja granične frekvencije povezanog sa širenjem parametara upotrebljenih komponenti. Prilikom izračunavanja vrijednosti filterskih elemenata, otpornici su odabrani na osnovu njihove maksimalne blizine standardnim vrijednostima serije E12.

Na izlazima filtera rezultat su dva sinusna signala sa značajno potisnutim harmonicima. Za kombinovanje ovih signala uvodi se dodatni sabirač.

Dakle, koristeći samo 3 op-pojačala i nekoliko pasivnih elemenata, u mogućnosti smo generirati DTMF signale pomoću mikrokontrolera bez korištenja značajnih računarskih resursa.

Koristeći programe simulatora, provjerene su približne vrijednosti. Odziv filtara vrlo se poklapa sa izračunatim frekvencijskim odzivom.


Rice. 6: Amplitudni spektar pravokutnog signala frekvencije 697 Hz na izlazu filtera 3. reda

Na sl. Slika 6 prikazuje amplitudski spektar pravougaonog signala frekvencije 697 Hz, propuštenog kroz filter 3. reda. Kao što se može vidjeti sa slike, treći i peti harmonik (2091 Hz i 3485 Hz) su značajno oslabljeni (-25,6 dB).


Rice. 7: Amplitudni spektar pravokutnog signala frekvencije 941 Hz na izlazu filtera 3. reda

Na sl. Slika 7 prikazuje spektar pravokutnog signala frekvencije 941 Hz. U frekventnom području koje nas zanima, do 4600 Hz, postoji samo jedan harmonik. Nakon prolaska kroz filter, ovaj harmonik od 2823 Hz je značajno oslabljen (-27,9 dB). Razlika u nivou između najniže i najviše frekvencije u grupi ne prelazi 1,9 dB.

Kako bi se koristile jeftine komponente s velikim varijacijama u parametrima, provedeno je dodatno modeliranje. Rezultati simulacije su pokazali da je dozvoljeni razmak u vrijednostima otpornika i kondenzatora 10%.


Slika 8: Histogram – distribucija nivoa signala u grupi


Slika 9: Histogram – Harmonska supresija

Na sl. Na slikama 8 i 9 prikazani su histogrami dobijeni Monte Carlo analizom. U ovom slučaju, vrijednosti komponenti su nasumično varirale u rasponu od 10%. Nakon 100 iteracija, rezultati za sve simulirane filtere su iscrtani u histogramima. U histogramu na sl. Na slici 8 prikazana je razlika u nivou između frekvencija unutar grupe. Maksimalna dozvoljena razlika od 3 dB između minimalne i maksimalne frekvencije ni u jednom slučaju nije postignuta. Prosječna vrijednost je 1,6 dB, što je nešto bolje od izračunate vrijednosti od 2 dB.

Na sl. Slika 9 prikazuje slabljenje harmonika za „nižu“ frekvencijsku grupu. Potrebna vrijednost od 20 dB se postiže u svim slučajevima, prosječna vrijednost je približno 27 dB. U najgorem slučaju, harmonik je potisnut za 24,2 dB.

Vrijednosti izračunate za filter "niže" frekvencijske grupe također se provode za filter "gornje" frekvencijske grupe.

Oba filtera imaju identično kolo. Jedina razlika je u graničnim frekvencijama filtera za gornju i donju frekvencijsku grupu. R1 i C1 formiraju visokopropusni filter 1. reda. Jer ulazni otpor kruga također ovisi o R1, vrijednost ovog elementa ne bi trebala biti premala; u suprotnom, izlazi mikrokontrolera će biti preopterećeni i kvadratni valni oblik će biti izobličen. U ovom slučaju, signalu će se dodati dodatne frekvencije koje nastaju kao rezultat intermodulacionog izobličenja, što će negativno utjecati na omjer signal-šum.

Prijenosna funkcija filtera višeg reda ne može se dobiti korištenjem samo pasivnih komponenti.

Dakle, filter 2. reda mora sadržavati op-amp. Pojačanje aktivnog filtera je postavljeno na 0,2 pomoću otpornika R1-1 i R1-2. Kao što vidite, signal je donekle oslabljen. Ovo je neophodno kako bi se izbjeglo preopterećenje op-amp, jer vršna amplituda osnovnog sinusoidnog harmonika pravokutnog signala premašuje amplitudu signala pravokutnog talasa (vidi Fourierov red i sliku 2). Dodatni sabirač prilagođava željeni izlazni nivo. Zbog konstantne komponente pravougaonog signala, radna tačka op-pojačala je postavljena na nivo Vcc/2 (vidi i Fourierov red i sl. 2). U ovom slučaju, konstantna komponenta ne može biti eliminirana ulaznim razdjelnikom R1-1/R1-2. Za razdvajanje OS kola jednosmjernim naponom koristi se kondenzator C3.

Na svakom od izlaza analognog filtera generira se signal gornje i donje frekvencijske grupe. U dodatnom sabiraču ovi signali se dodaju. U ovom elementu kola možete podesiti odnos između "donje" i "gornje" frekvencije u ukupnom signalu i razini izlaznog signala pomoću otpornika R4 i R5. Stoga se izlazna amplituda može lako podesiti kako bi odgovarala različitim zahtjevima u različitim zemljama.

Prilikom izračunavanja vrijednosti komponenti, vrijednosti kondenzatora su, kao i obično, bile fiksne, a vrijednosti otpornika su izračunate u skladu s njima. U ovom krugu su korišteni kondenzatori i otpornici standardne serije E12 sa rasponom od 10%.

Na sl. Slika 10 prikazuje shematski dijagram analognih filtara i sabirača:


Rice. 10: Šematski dijagram analognih filtera sa dodatnim sabiračem

Kondenzatori C1-1 i C1-2 kombinuju dva signala zajedno na Vcc/2 radnoj tački. Ne biste trebali odabrati prevelike vrijednosti za ove elemente, jer oni su niskopropusni filterski elementi za uklanjanje niskofrekventnih subharmonika. Filterski kondenzator C5 eliminiše šum referentnog napona. Dodatni kondenzator C6 povezan paralelno sa otpornikom povratne sprege R6 formira visokopropusni filter prvog reda. Ako je odabrana najniža granična frekvencija filtera, dodatno filtriranje visokofrekventnih intermodulacijskih smetnji poboljšava kvalitetu izlaznog signala, ali će doći do prigušenja najviših frekvencija „gornje“ grupe. U nekim slučajevima, generisanje najviše DTMF frekvencije od 1633 Hz nije potrebno jer koristi se samo za formiranje servisnih simbola A-D, a odnos signal-šum se može poboljšati snižavanjem granične frekvencije filtera. Dakle, povećanje granične frekvencije dovodi do povećanja nivoa visokofrekventnih smetnji, ali se istovremeno smanjuje negativan uticaj na najviše frekvencijske komponente DTMF signala.

4 Rezultati istraživanja signala DTMF predajnika

Spektrogrami ispod (sl. 11 i 12) prikazuju izlazne signale DTMF predajnika na različitim frekvencijama. Na sl. Slika 11 prikazuje amplitudski spektar simbola “1”. Frekvencije potrebne za njegov prenos - 697 i 1207 Hz - su na nivou od -10,5 dB i -8,5 dB, respektivno. Harmonici na 2091 i 3621 Hz su potisnuti za skoro 30 dB. Za prijenos simbola "D" generiraju se dvije najveće frekvencije - 941 i 1633 Hz. Kao što se može vidjeti sa sl. 12, nivo niske frekvencije je -12 dB, nivo visoke frekvencije je -11 dB. Odgovarajući harmonici su oslabljeni za više od 30 dB. Dakle, izmjerene vrijednosti odgovaraju rezultatima simulacije i zahtjevima specifikacije.


Rice. 11: Amplitudni spektar simbola “1”: 697 i 1207 Hz


Rice. 12: Amplitudni spektar simbola “D”: 941 i 1633 Hz

Apsolutna frekvencijska tačnost generiranih signala pravokutnog talasa ne može se postići kada se koriste dva različita tajmera; rezultat će ovisiti o kombinaciji dvije frekvencije i vrsti korištenih tajmera. Razlog za to je sukob prekida tajmera. Međutim, potrebna je tačnost od ±1,8% ispunjena sa velikom marginom.

Ako se 8-bitni tajmer i tajmer porta koriste na sistemskoj frekvenciji od MCLK 1,048 MHz, tada se frekvencije „niže“ grupe generiraju s preciznošću ne gorom od 0,3%. Za frekvencije „gornje“ grupe u praksi se dobija odstupanje od najviše 0,5%.

Jedini izuzetak je DTMF karakter “D”, za koji se generišu najviše frekvencije. Kao rezultat toga, u ovoj kombinaciji frekvencija „gornje“ grupe 1633 Hz ima odstupanje od -0,97%.

Bez ovog izuzetka, čak i najveća frekvencija od 1633 Hz se generiše sa tačnošću većom od 0,5%. Maksimalna odstupanja za različite frekvencije data su u tabeli:

Ako se Timer_A koristi za generiranje frekvencija, greška će ovisiti o korištenoj MCLK frekvenciji:

MCLK, MHz 1,048 2,096 3,144 3,800
Multiplikator FLL 32 64 96 116
697 Hz +0,027% +0,027% +0,027% +0,027%
770 Hz -0,015% -0,016% +0,033% -0,016%
852 Hz +0,059% -0,023% +0,005% +0,031%
941 Hz +0,029% +0,029% +0,029% +0,035%
1209 Hz -0,079% +0,036% +0,036% -0,003%
1336 Hz +0,109% -0,018% +0,025% +0,025%
1447 Hz -0,009% -0,009% -0,009% -0,009%
1633 Hz +0,018% +0,018% +0,018% +0,018%

5 Zaključak

Softver za ovaj primjer je vrlo jednostavan i, zauzima otprilike 300 bajtova, zahtijeva malu količinu RAM-a i ROM-a. Zahvaljujući ugrađenom modulu tajmera, potrebne frekvencije se generišu sa velikom preciznošću bez trošenja CPU opterećenja. U konfiguraciji u kojoj se za generiranje koriste 8-bitni tajmer i tajmer/port, rutine prekida zauzimaju približno 12% CPU resursa. U slučaju kada frekvencije generiše tajmer Timer_A, opterećenje CPU-a za obradu rutina prekida se smanjuje na 6%. Kao rezultat toga, drugi zadaci mogu biti pokrenuti dok se DTMF signali prenose, ili se CPU može staviti u režim niske potrošnje kako bi se smanjila potrošnja struje.

Dobra funkcionalnost opisanog modula za generiranje DTMF signala korištenjem pravokutnih signala demonstrira se dizajnom hardverskog kola. Jer U krugu je moguće koristiti komponente sa širokim rasponom parametara, cijena takvog rješenja je vrlo niska. Svi zahtjevi specifikacije su u velikoj mjeri ispunjeni, tako da poseban modul generatora DTMF signala nije potreban u instrumentima koji koriste MSP430 kao kontrolni kontroler.

Ako je u određenom slučaju potrebno povećati omjer signal-šum, korištenjem dodatnog op-pojačala, može se konstruirati filter za dalje suzbijanje intermodulacionog izobličenja. Takvo dodatno operaciono pojačalo već je prisutno u četverostrukom op-pojačalu u DIL14 paketu.

6 Linkovi

Bundesamt Post und Telekommunikacija (Federalni ured za poštu i telekomunikacije): Zupka 223 ZV 5, Zulassungsvorgen Zur Anschaltung Analoge wahlanschlusse (Ausgenomen.lruf- und Durchwahlanschlusses (Službena specifikacija za terminalne uređaje povezane s analognim telefonskim linijama, za isključenje zahtjevi sigurnosti i poziva) / ISDN Deutschen Bundespost Telekoma; Bundesministerium fur Post und Telekommunikation, nacrt, Bonn, april 1994. Papula: Mathematik fur Ingenieure 2 (Matematika za inženjere); Vieweg Verlag, Braunschweig 1990. Tietze / Schenk: Halbleiterschaltungstechnik; (Titze/Schenk, Semiconductor Circuit Engineering), 10. izdanje; Springer Verlag, Berlin 1993. Lutz Bierl / Texas Instruments: porodica MSP430, izvještaj o primjeni mjerenja, Texas Instruments, izdanje 2.1, januar 1997., SLAAE10B Texas Instruments: porodica MSP430, arhitektonski korisnički vodič i biblioteka modula, Texas Instruments, 1996., SLAUE, S. Porodica MSP430, Korisnički vodič za softver, Texas Instruments, 1996. Texas Instruments: porodica MSP430, Korisnički vodič za alate za asembler, Texas Instruments, 1996. Siwy, Robert: Systementwicklung einer Telekom-Applikation zum Senden und Empfangen von DTMF-Signalen Trollermit MSP3 (Mikrokontroler signala DTMF3) telekomunikacioni sistem za prijem i prenos digitalnih signala baziran na mikrokontroleru MSP430); Diplomarbeit, Fachhochschule Landshut, maj 1997

Prepoznatljive karakteristike:

  • Generiranje sinusnih valova korištenjem modulacije širine impulsa (PWM)
  • Kombinovanje različitih sinusnih signala u jedan DTMF signal
  • Izvorni kodovi na asembleru i C jezicima
  • Dizajniran za rad sa STK500
  • Veličina programskog koda 260 bajtova / veličina konstantne tabele 128 bajtova
  • Korištenje metode konverzije tablice

Uvod

Ovaj dokument opisuje tehniku ​​za generisanje DTMF signala (dvotonski multifrekventni signali) koristeći bilo koji AVR mikrokontroler koji sadrži jedinicu za modulaciju širine impulsa (PWM) i statički RAM. Ovi signali se široko koriste u telefoniji, gdje se reprodukuju kada pritisnete tipke za biranje telefonskog aparata. Da bi se pravilno generisao DTMF signal, dvije frekvencije moraju biti superponirane zajedno: niska frekvencija (fb) i visoka frekvencija (fa). Tabela 1 pokazuje kako se različite frekvencije miješaju da bi se proizvele DTMF tonovi kada se pritisnu različiti tasteri.

Slika 1 – Krug generatora DTMF signala

Tabela 1 – Matrica generiranja tonskog signala

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

Redovi tabele 1 pokazuju vrednosti niske frekvencije, a kolone visoke frekvencije. Na primjer, matrica pokazuje da kada pritisnete dugme “5”, frekvencije fb = 770 Hz i fa = 1336 Hz treba da se pomiješaju. Kao rezultat sabiranja dva sinusoidna signala različitih frekvencija, formira se DTMF signal

gdje je odnos amplituda K=A b /A a izvorni signali moraju ispuniti uslov

Princip rada

Pored općih informacija o korištenju modulacije širine impulsa, ispod će biti prikazano kako vam modulacija širine impulsa omogućava generiranje sinusnih signala. Sljedeći paragraf opisuje kako koristiti osnovnu frekvenciju prebacivanja da biste dobili različite frekvencije. Nakon uvida u teorijske osnove, dat će se opis samog generatora DTMF signala. Generisanje sinusnih talasa

U zavisnosti od odnosa trajanja visokog VH i niskog VL naponskog nivoa, prosečna vrednost na PWM izlazu se menja. Ako se omjer između trajanja oba nivoa održava konstantnim, kao rezultat će se generirati konstantan nivo VAV napona. Slika 2 prikazuje modulirani signal širinom impulsa.


Slika 2 – Generisanje nivoa jednosmernog napona

Nivo napona je određen izrazom:

(3)

Sinusoidni signal se može generirati pod uvjetom da se prosječna vrijednost napona generiranog modulacijom širine impulsa mijenja svakim PWM ciklusom. Odnos između visokog i niskog nivoa mora se postaviti u skladu sa naponskim nivoom sinusnog talasa u odgovarajućem trenutku. Slika 3 ilustruje ovaj proces. Izvorni podaci za PWM se izračunavaju za svaki njegov period i bilježe u tablici konverzije (TC).

Slika 3 također ilustruje odnos između frekvencije osnovnog sinusnog vala i broja uzoraka. Što je veći broj uzoraka (Nc), to je veća tačnost modeliranja rezultirajućeg signala:

(4)

Frekvencija PWM ovisi o PWM rezoluciji. U 8-bitnoj rezoluciji, konačna vrijednost (vrh broja) tajmera je 0xFF (255). Jer Tajmer broji naprijed i nazad, tada se ova vrijednost mora udvostručiti. Stoga, PWM frekvencija se može izračunati dijeljenjem frekvencije takta tajmera f CK sa 510. Dakle, sa frekvencijom takta tajmera od 8 MHz, rezultujuća PWM frekvencija će biti 15,6 kHz.


Slika 3 – Generisanje sinusoidnog signala koristeći PWM

Promjena frekvencije sinusnog vala

Pretpostavimo da se sinusoidni uzorci čitaju iz tabele za pretraživanje ne uzastopno, već jedan po jedan. U ovom slučaju, pri istoj brzini uzorkovanja, generiraće se signal dvostruke frekvencije (vidi sliku 4).


Slika 4 – Udvostručavanje rezultirajuće frekvencije (XSW = 2)

Po analogiji, ako čitate ne svaku drugu vrijednost, već svaku treću, četvrtu, petu (odnosno, širina koraka je 3, 4, 5...) itd. moguće je generirati Nc frekvencije u opsegu . Imajte na umu da za visoke frekvencije rezultirajući talasni oblik neće biti sinusoidan. Širinu koraka prema tablici konverzije označavamo kao XSW, Gdje

(5)

Izračunavanje trenutne pozicije u TP-u za naredni PWM period (kada se tajmer prekorači) vrši se pomoću izraza (6). Nova vrijednost na poziciji X LUT zavisi od njegovog prethodnog stanja na poziciji X" LUT sa povećanjem širine koraka XSW

(6)

Dodavanje različitih frekvencija za dobijanje DTMF signala

DTMF signal se može generirati korištenjem izraza (1) i (2). Radi jednostavnosti aritmetičkih operacija, vrijednost koeficijenta K se uzima jednakom 0,75 kako bi se aritmetička operacija zamijenila logičkim pomacima. Uzimajući u obzir izraz (6), trenutna vrijednost za PWM kontrolu može se izračunati izrazom:

i uzimajući to u obzir X LUTa=X" LUta + XSWa ,X LUTb=X" LUTb + XSWb, hajde da to konačno zapišemo

Implementacija DTMF generatora

Ovaj dodatak ispituje konstrukciju DTMF generatora tona koristeći 8-bitni PWM izlaz (OC1A) i tabelu sa 128 uzoraka sinusne funkcije (Nc), od kojih je svaki specificiran sa 7 bita (n). Sljedeći izrazi pokazuju ovu ovisnost i također pokazuju kako izračunati unose u tabeli za pretraživanje:

(9)

Prednost korištenja 7 bita je u tome što je zbir vrijednosti signala visoke i niske frekvencije jedan bajt. Da bi se podržao cijeli skup DTMF tonova, 8 vrijednosti za svaku DTMF frekvenciju iz Tabele 1 mora se izračunati i unijeti u tabelu za pretraživanje.

Da bi se postigla veća tačnost, implementirano je sledeće rešenje: vrednosti ​​računate korišćenjem izraza 5 zahtevaju samo 5 bajtova. Da bi se koristilo svih 8 bajtova, što će smanjiti greške zaokruživanja, ova vrijednost se množi sa 8. Pokazivač na tabelu pretraživanja je napisan na isti način. Ali u ovom slučaju potrebna su dva bajta za pohranjivanje 8 puta veće vrijednosti. To znači da se moraju izvršiti 3 pomaka udesno i operacija modula radiksa Nc (logičko množenje sa Nc-1) prije upotrebe ovih bajtova kao pokazivača na vrijednosti sinusnog vala u


Slika 5 – Dijagram modula za povezivanje na STK500

PWM signal se generiše na pinu OC1A (PD5). Dodatni izlazni filter će pomoći da signal bude kompatibilniji sa sinusoidnim valnim oblikom. Prilikom smanjenja PWM frekvencije, možda će biti potrebno koristiti filter sa strmijom frekvencijom da bi se postigao dobar rezultat.

Povezivanje tastature je prikazano na slici 1. Rad tastature mora biti organizovan na način da je moguće odrediti pritisnut taster. Ovo se može uraditi korišćenjem sledećeg algoritma:

  1. Određivanje niza pritisnute tipke
    • konfigurirajte prijenosno računalo nižeg reda porta B kao izlaz i postavite dnevnik. "0"
    • konfigurišite visoku tetradu porta B kao ulaz sa priključkom pull-up otpornika
    • linija sa pritisnutim dugmetom je definisana kao cifra najveće tetrade sa log. "0"
  2. Definiranje kolone pritisnute tipke
    • konfigurirajte high notebook porta B kao izlaz i postavite dnevnik. "0"
    • konfigurišite tetradu nižeg reda porta B kao ulaz povezivanjem pull-up otpornika
    • kolona sa pritisnutim dugmetom je definisana kao cifra tetrade nižeg reda sa log. "0"

Napomena: U STK200, otpornici su povezani serijski između pinova konektora PORTB i pinova mikrokontrolera BP5, PB6 i PB7 (pogledajte dijagram STK200). Ovo će uzrokovati probleme ako je tastatura povezana na PORTB konektor.

Slika 6 ilustruje rad potprograma za određivanje pritisnute tipke. U zavisnosti od pritisnute tipke, određuje se trajanje intervala. Rutina prekida koristi ovu vrijednost za izračunavanje PWM postavki za dva DTM tonska sinusna vala. Postupak rukovanja prekidom prikazan je na slikama 7 i 8.

Ova rutina izračunava vrijednost za poređenje sa izlazom tajmera za sljedeći PWM period. Rutina prekida prvo izračunava poziciju sljedeće vrijednosti uzorka u tabeli za pretraživanje i čita vrijednost pohranjenu tamo.

Položaj uzorka u tabeli za pretraživanje određen je širinom impulsa, a stvarna širina impulsa određena je generiranom frekvencijom.

Konačna vrijednost koja se upisuje u registar poređenja tajmera određuje se pomoću formule (7), koja uzima u obzir vrijednosti uzorka obje DTMF frekvencije.


Slika 6 – Blok dijagram glavnog programa

Pronalazak se odnosi na oblast digitalnog generisanja dvotonskih frekvencijskih (DTMF) signala namenjenih za prenos podataka, na primer, u oblasti telefonije. Postignuti tehnički rezultat je smanjenje broja redundantnih elemenata kola, povećanje ekonomske efikasnosti. Generator DTMF signala, koji implementira Metodu za generisanje DTMF signala, sadrži dva akumulirajuća sabirača, dva registra zadržavanja, dva uređaja za skladištenje, završni sabirač, digitalno-analogni pretvarač, pretvarač DTMF signalnih kodova u niz cijelih brojeva. , djelitelj referentne frekvencije generatora DTMF signala sa podesivim podjelnim koeficijentom, pretvarač DTMF signalnih kodova u kod faktora podjele. 2 s. i 3 plate f-ly, 2 ill.

Pronalazak se odnosi na metode za generisanje DTMF (dual-tone frekvencije) signala digitalnim metodama, namenjenih za prenos podataka, na primer, u oblasti telefonije tokom tonsko-frekventnog biranja.Najbliži po tehničkoj suštini i postignutom rezultatu traženom metoda je metoda za generisanje DTMF signala, predstavljena u US patentu br. 5034977 od 04.04.89., publ. 23.07.91, M. raz. 5 N 04 M 1/00 ​​Poznata metoda za generiranje DTMF signala uključuje odabir prvog i drugog koda ugla uzorkovanja koji odgovaraju prvoj i drugoj frekvenciji komponente DTMF signala, kumulativno sabiranje odvojeno prvog i drugog koda ugla uzorkovanja sa, respektivno, periodično fiksne, s periodom koji odgovara frekvenciji uzorkovanja sata, prvi i drugi rezultati kumulativnog zbrajanja, dobijanje prve i druge diskretne vrijednosti komponenti DTMF signala pohranjenih u adresnim ćelijama odgovarajućih tablica diskretnih vrijednosti komponenti DTMF signala, očitavanjem iz odgovarajućih tabela na adresama koje odgovaraju rezultatima kumulativnog zbrajanja kodova ugla uzorkovanja, sumiranje prve i druge diskretne vrijednosti komponenti DTMF signala u dobiti treću diskretnu vrijednost koja odgovara vrijednosti DTMF signala Poznata metoda za generiranje DTMF signala je sljedeća: u zavisnosti od koda DTMF signala, prvo pretvaranjem kodova DTMF signala, odabire se prvi kod koji određuje ugao uzorkovanja signala sa frekvencijom , koji odgovara grupi visokih frekvencija - kolona, ​​a pomoću druge konverzije DTMF signalnih kodova bira se drugi kod koji određuje ugao uzorkovanja signala sa frekvencijom koja odgovara grupa niskih frekvencija - redovi, periodično, sa periodom koji odgovara frekvenciji takta uzorkovanja, prvi kod ugla uzorkovanja se sabira u odgovarajućem akumulativnom sabiraču i zapisuje u odgovarajući registar, čiji je izlaz rezultat, čija vrijednost odgovara adresi ćelije tabele pohranjene u odgovarajućoj memoriji samo za čitanje i u kojoj se nalaze odgovarajuće diskretne vrijednosti sinusa koji određuju gornju frekvenciju DTMF signala na isti način, periodično, sa period koji odgovara frekvenciji takta uzorkovanja, drugi kod ugla uzorkovanja se sabira u odgovarajućem akumulativnom sabiraču i bilježi u odgovarajući registar, čiji je izlaz rezultat, čija vrijednost odgovara adresi pohranjene ćelije tablice u odgovarajućem memorijskom uređaju samo za čitanje i u kojem se zbrajaju odgovarajuće diskretne vrijednosti sinusa koji određuju donju frekvenciju DTMF signala, diskretne vrijednosti sinusa koji određuju gornju i donju frekvenciju DTMF signala gore u finalnom sabiraču, određujući diskretnu vrijednost DTMF signala i, putem digitalno-analogne konverzije, isporučuju se na izlaz, formirajući step-sine DTMF signal koji odgovara ulaznom kodu DTMF signala. Poznata metoda je neefikasna, što je zbog niskih tehničko-ekonomskih pokazatelja i tehnoloških pokazatelja.Tehničko-ekonomski pokazatelji su određeni potrebnim troškovima prilikom implementacije metode za postizanje potrebnih parametara potrebnih za DTMF signale. U poznatoj metodi, tačnost generisanja frekvencije zavisi od dubine bita koda koji odgovara uglu uzorkovanja, što zahteva veliku širinu bita akumulacionog sabirača, što otežava implementaciju metode jednostavnim hardverom. Naime, kod ugla uzorkovanja u poznatoj metodi određen je izrazom K = (F/F t)32..., (1.1) gdje je K kod koji odgovara kutu uzorkovanja; F je generirana frekvencija; F t je frekvencija uzorkovanja.Kao što se vidi, tačnost generisane frekvencije jasno zavisi od odnosa generisane frekvencije i frekvencije uzorkovanja.Da bi se postigla potrebna tačnost generisane frekvencije, tačnije ne gora od 1,5%, očigledno, pri potrebne su najmanje dvije značajne cifre iza decimalnog zareza, što zahtijeva prikaz podataka sa dubinom bita za niže frekvencije od najmanje 8 bita, a za visoke frekvencije najmanje 9 bita, odnosno za kumulativno zbrajanje najmanje 12 bita , što dovodi do povećanja broja sastavnih elemenata uređaja koji implementiraju poznatu metodu. Poznati uređaji za implementaciju poznate metode, a to su sabirci, registri i uređaji za trajnu memoriju, imaju ulaze/izlaze širine 4 i 8 bita. Stoga, s većim kapacitetom bitova, potrebni su dodatni tehnički i ekonomski troškovi pri implementaciji jednako funkcionalnih uređaja. Štaviše, u poznatoj metodi smanjenje broja decimalnih mjesta dovodi do greške frekvencije koja prelazi dozvoljenu. Tehnološki pokazatelji su određeni raznovrsnošću i unificiranjem u implementaciji metode, na primjer, savremeni nivo tehnologije, koji uključuje smanjenje potrošnje materijala, komponenti i povećanje svestranosti uređaja, zahtijeva korištenje mikrokontrolera. Široko rasprostranjeni mikrokontroleri koji se koriste u telefoniji i telemetrijskim mjerenjima koriste 8-bitne podatke i 8-bitnu aritmetičko-logičku jedinicu, što zahtijeva, pri implementaciji poznate metode, dodatne računske operacije povezane sa zbrajanjem podataka širine veće od 8 bita i analizom signal prijenosa, što povećava broj naredbi i, shodno tome, taktnu frekvenciju mikrokontrolera, kao i količinu RAM-a mikrokontrolera, što dovodi do povećanja cijene uređaja koji koriste poznatu metodu za generiranje DTMF-a. signale. Ovaj zaključak se daje kada se analizira upotreba poznate metode u tonskom biraču na bazi mikrokontrolera proizvođača Atmel, Microchip tnc itd. Dakle, poznata metoda je suštinski neefikasna, što je posljedica niskih tehničkih i ekonomskih pokazatelja, izraženih u povećanom utrošak materijala, utrošak energije i niske tehnološke pokazatelje, budući da ima ograničenja pri korišćenju metode, uključujući iu sklopu široko korišćenih mikrokontrolera, što se izražava u povećanim tehničkim karakteristikama koje se zahtevaju od mikrokontrolera, što smanjuje njihovu svestranost. Najbliži po tehničkoj suštini i Postignuti rezultat za traženi generator DTMF signala je DTMF generator signala, predstavljen u US patentu br. 5034977 od 04.04.89., publ. 23.07.91, M. raz. 5 N 04 M 1/00 ​​Poznati generator DTMF signala uključuje: prvi akumulativni sabirač, prvi registar sa zasunom, prvi memorijski uređaj, drugi akumulativni sabirač, drugi registar za zatvaranje, drugi memorijski uređaj, završni sabirač, digitalno-analogni pretvarač, pri čemu je izlaz prvog akumulativnog sabirača povezan sa ulazom prvog latch registra, izlaz prvog latch registra je povezan na ulaz prvog memorijskog uređaja, kao i na jedan od ulaze prvog akumulativnog sabirača, izlaz prvog memorijskog uređaja je spojen na jedan od ulaza završnog sabirača, izlaz drugog akumulativnog sabirača povezan je sa ulazom drugog registra zasuna, izlaz drugog Holding registar je povezan na ulaz drugog uređaja za skladištenje podataka, kao i na jedan od ulaza drugog akumulativnog sabirača, izlaz drugog memorijskog uređaja je povezan sa drugim ulazom završnog sabirača, izlazom završnog sabirača je spojen na ulaz digitalno-analognog pretvarača čiji je izlaz izlaz generatora DTMF signala Poznati generator sadrži i prvi pretvarač DTMF signalnih kodova u odgovarajuće kodove uglova uzorkovanja koji odgovaraju gornjim frekvencijama DTMF signala, drugi pretvarač kodova DTMF signala u odgovarajuće kodove uglova uzorkovanja koji odgovaraju nižim frekvencijama DTMF signala, pri čemu je izlaz prvog pretvarača kodova DTMF signala povezan sa drugim ulazom prvog kumulativnog sabirača, izlaz drugog DTMF signalnog kodnog pretvarača je povezan sa drugim ulazom drugog akumulativnog sabirača, ulazi prvog i drugog DTMF kodnog pretvarača signala su ulazi generatora DTMF signala, a taktni ulazi prvog i drugog fiksiranja registri su međusobno povezani i ulaz su za frekvenciju takta uzorkovanja generatora DTMF signala. Poznati generator DTMF signala daje nizak tehnički rezultat zbog prevelikog broja elemenata kola povezanih sa različitim, kao i prevelikog bitnog kapaciteta jednako funkcionalnih elemenata. Osim toga, implementacija poznatog tehničkog rješenja je efektivno moguća u obliku zasebnog integriranog kola, međutim to zahtijeva organizaciju specijalizirane proizvodnje, ali s obzirom na to da su generatori DTMF signala dio multifunkcionalnih uređaja (telefonski aparati sa naprednim mogućnostima, uređaji za prenos telemetrijskih informacija preko telefonskih linija i sl.) itd.), koji se trenutno implementiraju na bazi univerzalnih mikrokontrolera, proizvodnja pojedinačnih mikrokola DTMF signala je ekonomski neefikasna.Osnova predloženog tehničkog rješenja je zadatak izrade metode za generisanje DTMF signala pomoću generatora DTMF signala, u kojem se, promenom uslova i redosleda operacija, implementira metoda sa visokim tehničkim i ekonomskim pokazateljima, usled smanjenja bitnog kapaciteta sličnih operacija, visokih tehnoloških pokazatelja, kada implementacijom metode, kako u dizajnu kola sa jednostavnim hardverom, tako iu sklopu multifunkcionalnog mikrokontrolera, povezanog sa ponovljivošću, pri implementaciji identičnih funkcionalnih elemenata.Osnovnim tehničkim rešenjem postavljen je zadatak kreiranje generatora DTMF signala, u kojem se, kao osnova tehničkog rešenja, postavlja uvođenjem novih elemenata i izvođenjem novih veza povećava se tehnički rezultat vezan za smanjenje broja redundantnih elemenata kola, a samim tim i ekonomska efikasnost povezana sa mogućnošću implementacije predloženog tehničkog rješenja široko dostupnim sredstvima. riješeno je da se u poznatoj metodi generiranja DTMF signala, uključujući izbor prvog i drugog koda uglova uzorkovanja koji odgovaraju prvoj i drugoj frekvenciji komponenti DTMF signala, kumulativno zbrajaju prvi i drugi kodovi uglovi uzorkovanja odvojeno, odnosno, periodično fiksirani, sa periodom koji odgovara frekvenciji takta uzorkovanja, prvi i drugi rezultat kumulativnog zbrajanja, dobijanje prve i druge diskretne vrednosti DTMF signalnih komponenti pohranjenih u ćelijama lociranih na adresi odgovarajuće tabele diskretnih vrednosti komponenti DTMF signala, čitanjem iz odgovarajućih tabela na adresama koje odgovaraju rezultatima kumulativnog zbrajanja kodova ugla uzorkovanja, zbrajanjem prve i druge diskretne vrednosti komponenti DTMF signala u dobiti treću diskretnu vrijednost koja odgovara vrijednosti DTMF signala, a novost je da se dobijanjem prve i druge diskretne vrijednosti komponente DTMF signala pohranjuju u adresabilne ćelije odgovarajućih tablica diskretnih vrijednosti DTMF-a komponente signala se vrši čitanjem iz odgovarajućih tabela na adrese koje odgovaraju rezultatima kumulativnog zbrajanja prvog i drugog niza cijelih brojeva, respektivno, čija prosječna vrijednost odgovara kodovima uglova uzorkovanja koji odgovaraju komponentama DTMF signala. Osim toga, prosječna vrijednost niza cijelih brojeva koji formiraju rezultat kumulativnog zbrajanja može biti aritmetička sredina ovih brojeva. Osim toga, periodično snimanje prvog i drugog rezultata kumulativnog zbrajanja može biti s periodom koji odgovara frekvencija takta uzorkovanja, koja je različita za različite DTMF signale.Postavljeni problem je također riješen činjenicom da je u poznatom generatoru DTMF signala, uključujući prvi akumulativni sabirač, prvi latch registar, prvi memorijski uređaj, drugi akumulativni sabirač , drugi latch registar, drugi memorijski uređaj, završni sabirač, digitalno-analogni pretvarač, a izlaz prvog akumulativnog sabirača je spojen na ulaz prvog latch registra, izlaz prvog registra zasuna je povezan na ulaz prvog memorijskog uređaja, kao i na jedan od ulaza prvog akumulativnog sabirača, izlaz prvog memorijskog uređaja je povezan sa jednim od ulaza završnog sabirača, izlaz drugog akumulativnog sabirača je spojen na ulaz drugog latch registra, izlaz drugog latch registra je povezan na ulaz drugog uređaja za skladištenje, kao i na jedan od ulaza drugog akumulativnog sabirača, izlaz drugog uređaja za pohranu podataka je spojen na drugi ulaz završnog sabirača, izlaz završnog sabirača spojen je na ulaz digitalno-analognog pretvarača čiji je izlaz izlaz generatora DTMF signala, novog, prema Izum je da generator DTMF signala dodatno sadrži pretvarač kodova DTMF signala u niz cijelih brojeva, djelitelj referentne frekvencije generatora DTMF signala sa podesivim koeficijentom podjele, pretvarač kodova DTMF signala u kod podjelnog koeficijenta i prvi izlaz pretvarača DTMF signalnih kodova u nizu cijelih brojeva je povezan na drugi ulaz prvog akumulativnog sabirača, drugi izlaz DTMF signalnog kodnog konvertora u nizu cijelih brojeva je povezan na drugi ulaz drugog akumulativnog sabirača, izlaz glavnog djelitelja frekvencije generatora DTMF signala sa podesivim koeficijentom podjele povezan je sa taktnim ulazom DTMF kodnog pretvarača signala u nizu cijelih brojeva, kao i sa taktnim ulazom prvog latch registra i takta ulaz drugog latch registra, izlaz DTMF signalnog kodnog pretvarača u kod podjelnog koeficijenta povezan je sa ulazom za podešavanje koeficijenta podjele glavnog djelitelja frekvencije generatora DTMF signala, ulazom glavnog djelitelja frekvencije Generator DTMF signala sa podesivim koeficijentom podjele je ulaz referentne frekvencije generatora DTMF signala, ulaz pretvarača kodova DTMF signala u kod koeficijenta podjele povezan je sa ulazom pretvarača kodova DTMF signala u niz cijeli brojevi i ulaz je generatora DTMF signala. Osim toga, pretvarač DTMF signalnih kodova u nizove cijelih brojeva može se napraviti u obliku kontroliranog programabilnog memorijskog uređaja, čija se memorija sastoji od, što odgovara broju DTMF signala, memorijskih područja koja se sastoje od memorijskih ćelija koje odgovaraju dužina niza cijelih brojeva, memorijske ćelije su dizajnirane tako da jedna polovina memorijske ćelije pohranjuje broj povezan s prvim nizom cijelih brojeva, a druga polovina memorijske ćelije pohranjuje broj koji se odnosi na drugi niz cijelih brojeva koji su termini odgovarajućih akumulativnih sabirača, a kontrola programabilnog memorijskog uređaja je konfigurisana da kontroliše odvojeno selekciju memorijskog područja i zasebne memorijske ćelije Nove karakteristike metode za generisanje DTMF signala i generatora DTMF signala, zajedno sa poznatim karakteristike ovih objekata, obezbeđuju nova tehnička svojstva objekata, a kao posledica ovih svojstava, dobija se novi neophodan tehnički rezultat Uzročno-posledična veza između skupa karakteristika Predloženi metod i postignuti tehnički rezultat su Kako bi se otkrila suština predloženog tehničkog rješenja, bit će zgodni sljedeći proračuni: y(P)=sin(n) (1.2), gdje je y(P) diskretna vrijednost sinusne funkcije;=wT =27F/Fr (1.3) - ugao uzorkovanja, mjeren u radijanima; n - serijski broj uzorka - uzorak; F t = F OSC / kd - frekvencija takta uzorkovanja, gdje je F OSC - frekvencija podešavanja uređaja; kd - podesiva koeficijent podjele Tada je = 2FC D / F O S C . (1.4) Kao što je poznato, sinusna funkcija je periodična sa periodom od 2. Da bismo pretvorili ugao uzorkovanja iz radijana u relativne jedinice i dobili kod ugla uzorkovanja, cijeli period dijelimo na m dijelova, gdje je m binarni cijeli broj. Tako dobijamo jedan minimalni diskretni dio perioda: = 2/m. (1.5) Kod ugla uzorkovanja je relativna vrijednost ugla uzorkovanja u skladu sa jednim dijelom perioda, odnosno K=/=2F/F t: 2P/m=Fm/F t. (1.6) Na primjer, za generisane frekvencije od 1477 Hz i 697 Hz (odgovara kodu DTMF signala “3”), sa m = 64, i frekvencijom takta F t = 32768 Hz K 697 = 1,36; K l477 = 2,88. Očigledno, za binarnu prikaz ugla uzorkovanja koda K 697 =1,36 V, respektivno, 136 zahteva 8 bita (1281+640+320+160+81+40+20+10), a K 1477 =2,88 V, respektivno, 288 zahteva 9 bita ( 2561+1280+640+321+ 160+80+40+ 20+10). Istovremeno, za kumulativno sumiranje, odnosno u binarnom prikazu, potrebno je 12 bita, što je utvrdilo gore opisane nedostatke poznatih rješenje. Predloženo tehničko rješenje definiše, na primjer, broj 1,36 kao prosječnu vrijednost niza cijelih brojeva 1 i 2, odnosno 1,36=(1x+2y)/(x+y), gdje su x i y broj brojeva 1 i 2, respektivno, periodično se ponavljaju sa tačkom (x+y).Vrijednost koda ugla uzorkovanja sastoji se od cijelog dijela C i razlomka, tj. na primjer, 1,36=1+0,36. Relativna tačnost takve zamene u skladu sa izrazom (1.7) = K/C (1.7) raste sa povećanjem celobrojnog dela vrednosti koda ugla uzorkovanja. Na primjer, za generiranu frekvenciju od 697 Hz, m = 64 i frekvenciju takta F t = 32768 Hz, greška zamjene K 697 = 1,36 vrijednostima brojeva 1 i 2 je 36 i 32%, respektivno. . U isto vrijeme, ako povećate vrijednost m = 256, tada se greška zamjene K 697 = 5,45 vrijednostima brojeva 5 i 6 smanjuje za 9 odnosno 10%. greška generisane frekvencije, na primjer, kada se K 697 = 5,45 zamijeni vrijednostima brojeva 5 i 6 tokom perioda ponavljanja, jednako 16, 5,45=(5x+6y)/(x+y), gdje je ( x+y)=16.Rješavanjem jednačine dobijamo x=9, y=7, tj. od šesnaest kumulativnih operacija sumiranja, član 5 se sabira devet puta, a član 6 sedam puta, dok je zapravo K 697 = 5,4375, zamjenom ove vrijednosti u izraz (1.6) za m = 256, F t = 32768 Hz, određujemo stvarna izračunata vrednost generisane frekvencije F = 696 Hz, dok je greška ostala 0,1%.Tako, kumulativno zbrajanje niza celih brojeva čija prosečna vrednost odgovara odgovarajućim uglovima uzorkovanja, omogućava postizanje visokih tehničkih i ekonomskih vrednosti. indikatora smanjenjem bitnog kapaciteta kumulativnih operacija sumiranja, zbog mogućnosti variranja komponenti navedenih izraza, i shodno tome smanjenjem bitnog kapaciteta uređaja koji implementiraju predloženu metodu, što dovodi do smanjenja hardverskih i energetskih troškova pri implementaciji metode. , te da se osiguraju visoke tehnološke performanse predložene metode kada se koristi u multifunkcionalnim uređajima zbog smanjenih tehničkih zahtjeva Uzročno-posledična veza između skupa Karakteristike predloženog tehničkog rješenja i postignutog tehničkog rezultata su objašnjene u nastavku. visok tehnički rezultat generatora DTMF signala osiguran je uvođenjem novih elemenata pretvarača DTMF signalnih kodova u niz cijelih brojeva, djelitelja referentne frekvencije generatora DTMF signala sa podesivim koeficijentom podjele, pretvarača DTMF signala. signalnih kodova u kod koeficijenta djelitelja, koji osiguravaju implementaciju metode elementima kola sa istom dubinom bita, ne većom od 8 bita, dok ne postoji redundantnost elemenata potrebnih za rješavanje nekoliko problema, npr. zabilježiti rezultat kumulativnog zbrajanja i za adresiranje odgovarajućeg uređaja za pohranu koristi se isti broj bitova koji nisu implementirani više od 8-bitnog registra, koji se može implementirati javno dostupnim sredstvima u obliku jednog mikrokola ili , u verziji mikroprocesora, jedna memorijska ćelija. Osim toga, implementacija akumulativnih sabirača može se izvesti u obliku identičnih uređaja, sa istom dubinom bita, u obliku javno dostupnih mikrokola sabirača koji rade sa 4-bitnim sabircima.Naravno, podrazumijeva se da su brojevi i shodno tome, uređaji koji formiraju gore opisane nizove cijelih brojeva, čija ukupnost određuje odgovarajuće kodove uglova uzorkovanja, mogu biti sa različitom dubinom bita, ali najoptimalniji, sa stanovišta ispunjavanja ciljeva postavljenih od strane Predloženo rešenje su 4-bitni brojevi.Osim toga, visok tehnički rezultat je obezbeđen i pri implementaciji predloženog tehničkog rešenja u sklopu mikrokontrolera, pri čemu komande sistemskog mikrokontrolera obavezno uključuju komande koje rade sa 4-bitnim brojevima - grickalice. Predloženo tehničko rješenje generatora DTMF signala omogućava visoke tehničke rezultate povezane sa smanjenjem broja elemenata kola, a pruža i svestranost pri implementaciji DTMF generatora signala kao javno dostupnog hardvera, te kao dijela multifunkcionalnih mikrokontrolera, što određuje visoka ekonomska efikasnost tehničkog rešenja.Pronalazak je ilustrovan na crtežu gde je na slici 1 funkcionalno prikazan generator DTMF signala koji implementira metod za generisanje DTMF signala.Generator DTMF signala uključuje pretvarač 1 DTMF signalnih kodova u nizu celih brojeva , djelitelj 2 referentne frekvencije generatora DTMF signala sa podesivim koeficijentom podjele, konvertor 3 DTMF signalnih kodova u kod koeficijenta podjele, prvi akumulativni sabirač 4, prvi latch registar 5, prvi memorijski uređaj 6, drugi memorijski uređaj 7, drugi latch registar 8, drugi akumulativni sabirač, završni sabirač 10, digitalno-analogni pretvarač 11. Rad generatora DTMF signala ilustrovan je primjerom implementacije metode za generiranje DTMF signala. o izrazima (1.4, 1.6) i tehničkim podacima, posebno o frekvenciji podešavanja uređaja na kojem će se implementirati predložena metoda, izračunavaju se nizovi cijelih brojeva, definišući odgovarajuće kodove uglova uzorkovanja i šifre koeficijenata podjele za razdjelnik 2 referentne frekvencije generatora DTMF signala sa podesivim koeficijentom podjele, koji se upisuju u odgovarajuće ćelije memorijskih područja pretvarača 1 DTMF signalnih kodova u niz cijelih brojeva i pretvarača 3 DTMF signalnih kodova u podjelu kod koeficijenta, diskretne vrijednosti odgovarajućih sinusnih funkcija su također unaprijed izračunate, čiji je broj određen brojem diskretnih m, i upisan u odgovarajuće memorije 6 i 7, prilikom generiranja DTMF signala, na na ulazima pretvarača 1 i pretvarača 3, koji su ulazi generatora, neko vrijeme djelovanjem DTMF signala, postavlja se kod generisanog DTMF signala, na izlazu pretvarača 3. postavlja se kod koji određuje koeficijent podjele za razdjelnik 2, dok će se na izlazu razdjelnika 2 frekvencija takta uzorkovanja postavljati periodično, s periodom koji odgovara frekvenciji takta uzorkovanja, sa prvog izlaza pretvarača 1 biće binarni brojevi uključeni u prvi niz cijelih brojeva će se napajati na ulaz prvog akumulativnog sabirača 4, a sa drugog izlaza pretvarača 1 binarni brojevi uključeni u drugi niz cijelih brojeva koji odgovaraju komponentama DTMF signala će biti dostavljeni na ulaz drugog akumulativnog sabirača 9, rezultati akumulativnog zbrajanja se dostavljaju sa izlaza akumulativnih sabirača na ulaze odgovarajućih latch registara 5 i 8, sa izlaza latch registara 5 i 8, rezultati akumulativnog zbrajanja, sa period koji odgovara frekvenciji takta uzorkovanja, šalju se na druge ulaze odgovarajućih akumulativnih sabirača 4 i 9, kao i na ulaze odgovarajućih uređaja za skladištenje 6 i 7, postavljajući adrese diskretnih vrijednosti sinusa odgovarajuće komponente DTMF signala, sa izlaza uređaja za skladištenje 6 i 7, diskretne vrijednosti odgovarajućih komponenti DTMF signala se dovode na odgovarajuće ulaze završnog sabirača 10, na čijem izlazu je diskretni Formira se binarni DTMF signal koji se dovodi na ulaz digitalno-analognog pretvarača 11, na čijem se izlazu generira stepenasti sinusoidni DTMF signal koji odgovara ulaznom kodu DTMF signala. Konvertor 1 DTMF signalnih kodova u niz cijelih brojeva (slika 1) može se napraviti u obliku prikazanom na slici 2, gdje pretvarač DTMF signalnih kodova u niz cijelih brojeva uključuje upravljački uređaj 12, programabilnu memoriju uređaj 13. Rad generatora DTMF signala je ilustrovan Ispod je konkretan primjer implementacije predloženog metoda u telefonskom biraču glasovne frekvencije.Prethodno, na osnovu izraza (1.4, 1.6) i tehničkih podataka, nizovi cijelih brojeva su izračunati koji određuju odgovarajuće kodove uglova uzorkovanja i kodova koeficijenta podjele za razdjelnik 2 referentne frekvencije generatora DTMF signala sa podesivim omjerom podjele. S obzirom da implementacija metode uključuje istu vrstu proračuna, za ilustraciju rada, na konkretnom primjeru prikazana je implementacija metode za generiranje DTMF signala koji odgovara pritiskanju tipke “7” u sklopu tonsko-pulsnog birača. Kvarcna frekvencija najčešća u telefonskoj tehnologiji, odnosno F OSC =3579545 Hz, postavljena je kao referentna frekvencija generatora. Pritiskom na tipku “7” odgovara DTMF signal sa gornjom frekvencijom (kolone) od 1209 Hz i donjom (redovi) frekvencijom od 852 Hz. Budući da DTMF signal istovremeno prenosi dvije frekvencije, koeficijenti podjele se izračunavaju za veću - gornju frekvenciju tako da odgovarajući kod ugla uzorkovanja u skladu sa izrazom (1.6) bude blizak maksimalnoj vrijednosti - 16, koja se implementira u ne više od 4 bita podataka. Dakle, sa F OSC = 3579545 Hz, brojem diskretnih vrijednosti sinusa m = 128, izračunate vrijednosti koeficijenta podjele za djelitelj 2 referentne frekvencije generatora DTMF signala sa podesivim koeficijentom podjele K D = 240 = 460, dok su odgovarajući kodovi uglova uzorkovanja za gornju frekvenciju K 1209 /852 =10,376, za nižu frekvenciju K 852/1209 = 7,312. Prema pronalasku, kodove uglova uzorkovanja zamjenjujemo nizovima cijelih brojeva, redom 10/11 i 7/8.10.375 = (10x+11y)/(x+y), dok je u stvari K 1209 / 852 = 10.3757.312 = (7x+8y)/(x+y), dok je u stvari K 952/1209 = 7.313, sa (x+y) = 16. Dakle, 10.375 se zamjenjuje periodično ponavljajućim nizom cijelih brojeva 10 x 10 puta i 11 x 6 puta, a 7.312 se zamjenjuje kao 7 x 11 puta i 8 x 5 Memorijska oblast za DTMF signalni kod “7” u binarnom prikazu je kako slijedi:
Na ovaj način se izračunava šesnaest tabela koje odgovaraju DTMF signalnim kodovima, odnosno 0, 1, 2...9, *, #, A, B, C, D, koje se prethodno upisuju u memoriju programabilnog memorijskog uređaja. 13 (DTMF pretvarač koda znakova u nizove cijelih brojeva). Kada pritisnete tipku, na primjer, “7” na ulazu generatora za vrijeme trajanja DTMF signala, binarni kod DTMF signala “7” (0111) je postavljen, pretvarač 3 DTMF signalnog koda u koeficijent podjele pretvara kod DTMF signala u kod koeficijenta dijeljenjem kd za razdjelnik 2 referentne frekvencije generatora sa podesivim koeficijentom podjele, frekvencija takta uzorkovanja F t =F OSC /K D će biti postavljen na izlazu razdjelnika 2. DTMF signalni kod stiže i na adresne ulaze najznačajnijih bitova programabilnog memorijskog uređaja 13 (konvertor kodova DTMF signala u nizove cijelih brojeva) i tamo je prisutan za vrijeme trajanja DTMF signala. Upravljani uređaj 12, napravljen, na primjer, u obliku brojača (pretvarač kodova DTMF signala u niz cijelih brojeva), pod utjecajem taktnih signala frekvencije t ciklički mijenja svoju vrijednost na paralelnim izlazima uzastopno od 0000 na 1111, shodno tome mijenjajući vrijednosti adresnih ulaza nižih bitova programabilnog memorijskog uređaja 13 (konverter DTMF signalnih kodova u niz cijelih brojeva), 8-bitni (bajtovi) brojevi se pojavljuju na izlazu programabilni memorijski uređaj 13 sa frekvencijom takta uzorkovanja, a u skladu sa tabelom 1, najznačajnija četiri bita (najznačajniji grickanje) formiraju niz cijelih brojeva, čija ukupnost, naime, aritmetička sredina, određuje kod ugla uzorkovanja koji odgovaraju gornjoj (kolone) frekvenciji, a najmanje značajna četiri bita (nisko grickanje) formiraju niz cijelih brojeva, čija ukupnost, naime, aritmetička sredina, određuje kod ugla uzorkovanja koji odgovara nižoj (linijskoj) frekvenciji, četiri- bitni podaci, u skladu sa tabelom 1, sa izlaza programabilnog memorijskog uređaja 13 (konvertor DTMF signalnih kodova u niz cijelih brojeva) odvojeno se dostavljaju na ulaze odgovarajućih akumulativnih sabirača 4 i 9, na izlazima odgovarajućim sabiračima 4 i 9 podaci se mijenjaju sa frekvencijom takta uzorkovanja od 0 do m (u ovom slučaju m=128), određujući i fiksirajući pomoću registara držanja 5 i 8 adrese za uređaje za skladištenje 6 i 7, u koje se binarni diskretni vrijednosti odgovarajućih sinusoidnih komponenti DTMF signala se zapisuju redom, sa izlaza uređaja za skladištenje 6 i 7, binarne diskretne vrijednosti odgovarajućih sinusoidnih komponenti DTMF signala se dovode na odgovarajuće ulaze završnog sabirača 10 , na čijem se izlazu formiraju binarne diskretne vrijednosti DTMF signala, koje se zatim dovode na ulaz digitalno-analognog pretvarača 11, na čijem se izlazu generira stepenasti sinusoidni DTMF signal. Generator DTMF signala se može realizovati na osnovu poznatih tehničkih sredstava, opisanih, na primer, u: Primena integrisanih kola u elektronskoj računarskoj tehnici. Priručnik / Ed. B.N. Fayzulaeva, B.V. Tarabrina. - M.: Radio i komunikacije, 1986. U ovom slučaju, pretvarač 3 DTMF signalnih kodova u kodove podjele koeficijenta može se napraviti, na primjer, u obliku memorijskog čipa samo za čitanje 155PE 3 (str. 343), implementacija registara je opisana na str. 108, implementacija akumulativnih sabirača opisana je na str. 114. Inventivna metoda i generator DTMF signala su takođe implementirani na bazi hardvera kompanije Microchip Inc. (8-bitni mikrokontroleri sa jednim čipom tipa pic16f628), kao deo pulsno-tonskog telefonskog birača “Kadran - NKT - 01” kompanije “Kadran” (Ukrajina, Zaporožje). Komandni sistem i unutrašnja struktura čvorova mikrokontrolera opisani su u: Prokopenko B.Ya. Mikrokontroleri sa jednim čipom. Dodeka, 2000, ISBN8-87835-056-4 Opis parametara DTMF signala dat je, na primjer, u: Integrisana kola: Čipovi za telefoniju. Izdanje 1. - M.: Dodeka, 1994, 256 str. - ISBN-5-87835-003-3., str. 12, 13.

TVRDITI

1. Metoda za generiranje dvotonskih frekvencijskih (DTMF) signala, uključujući odabir prvog i drugog koda ugla uzorkovanja koji odgovaraju prvoj i drugoj frekvenciji komponente DTMF signala, kumulativno zbrajanjem odvojeno prvog i drugog koda ugla uzorkovanja sa, respektivno, periodično fiksni periodi koji odgovaraju frekvenciji takta uzorkovanja, prvi i drugi rezultati kumulativnog zbrajanja, dobijanje prve i druge diskretne vrijednosti komponenti DTMF signala pohranjenih u ćelijama koje se nalaze na adresi odgovarajućih tablica diskretnih vrijednosti Komponente DTMF signala, čitanjem iz odgovarajućih tabela na adresama koje odgovaraju rezultatima kumulativnog zbrajanja kodova ugla uzorkovanja, zbrajanjem prve i druge diskretne vrijednosti komponente DTMF signala kako bi se dobila treća diskretna vrijednost koja odgovara vrijednosti DTMF signala, karakteriziran time što se prva i druga diskretna vrijednost komponenti DTMF signala pohranjene u adresabilnim ćelijama odgovarajućih tablica diskretnih vrijednosti komponenti DTMF signala dobijaju čitanjem iz odgovarajućih tabela na adrese , koje odgovaraju rezultatima kumulativnog zbrajanja prvog i drugog niza cijelih brojeva, respektivno, čija prosječna vrijednost odgovara kodovima uglova uzorkovanja, odgovarajućih komponenti DTMF signala.2. 2. Metoda prema zahtjevu 1, naznačena time što je prosječna vrijednost niza cijelih brojeva koji formiraju rezultat kumulativnog zbrajanja aritmetička sredina ovih brojeva.3. 2. Postupak prema zahtjevu 1, naznačen time što se prvi i drugi rezultati kumulativnog zbrajanja periodično snimaju sa periodom koji odgovara frekvenciji takta uzorkovanja, koja je različita za različite DTMF signale.4. Generator DTMF signala, uključujući prvi akumulativni sabirač, prvi registar sa zasunom, prvi memorijski uređaj, drugi akumulativni sabirač, drugi registar sa zasunom, drugi memorijski uređaj, konačni sabirač, digitalno-analogni pretvarač, pri čemu izlaz prvog akumulativnog sabirača povezan je sa ulazom prvog latch registra, izlaz prvog latch registra povezan je sa ulazom prvog memorijskog uređaja, kao i sa jednim od ulaza prvog akumulativnog sabirača, tj. izlaz prvog memorijskog uređaja spojen je na jedan od ulaza završnog sabirača, izlaz drugog akumulativnog sabirača povezan je sa ulazom drugog latch registra, izlaz drugog latch registra povezan je sa ulazom drugog memorijskog uređaja, kao i kod jednog od ulaza drugog akumulativnog sabirača, izlaz drugog memorijskog uređaja je spojen na drugi ulaz završnog sabirača, izlaz završnog sabirača je spojen na ulaz digitalnog sabirača. analogni pretvarač, čiji je izlaz izlaz generatora DTMF signala, karakteriziran time što generator DTMF signala dodatno sadrži konvertorske kodove DTMF signala u nizu cijelih brojeva, djelitelj referentne frekvencije generatora DTMF signala sa podesivim koeficijentom dijeljenja, pretvarač kodova DTMF signala u kod koeficijenta podjele, pri čemu je prvi izlaz konvertora DTMF signalnih kodova u nizu cijelih brojeva spojen na drugi ulaz prvog akumulativnog sabirača, drugi izlaz pretvarač kodova DTMF signala u nizu cijelih brojeva povezan je na drugi ulaz drugog akumulativnog sabirača, izlaz podešenog djelitelja frekvencije generatora DTMF signala sa podesivim koeficijentom podjele povezan je sa taktnim ulazom pretvarača kodova DTMF signali u nizu cijelih brojeva, kao i na taktni ulaz prvog registra zasuna i taktni ulaz drugog registra zadržavanja, izlaz konvertora DTMF signalnog koda u kod podjelnog koeficijenta povezan je sa ulazom postavke koeficijent podjele djelitelja referentne frekvencije generatora DTMF signala, ulaz djelitelja referentne frekvencije generatora DTMF signala sa podesivim koeficijentom podjele je ulaz referentne frekvencije generatora DTMF signala, ulaz DTMF signalnog kodnog pretvarača u kod koeficijenta podjele je povezan na ulaz pretvarača DTMF signalnog koda u niz cijelih brojeva i predstavlja ulaz generatora DTMF signala. 5. Generator DTMF signala prema zahtjevu 4, naznačen time, što je kodni pretvarač DTMF signala u niz cijelih brojeva napravljen u obliku kontroliranog programabilnog memorijskog uređaja, čija se memorija sastoji od odgovarajućeg broja DTMF signala. , memorijska područja koja se sastoje od ćelija koje odgovaraju dužini memorije niza cijelih brojeva, dizajnirana tako da se u jednoj polovini memorijske ćelije pohranjuje broj koji se odnosi na prvi niz cijelih brojeva, a u drugoj polovini memorijske ćelije broj se pohranjuje u skladu s drugim nizom cijelih brojeva koji su termini odgovarajućih akumulativnih sabirača, a upravljanje programabilnim memorijskim uređajem se vrši uz mogućnost odvojene kontrole odabira memorijskog područja i zasebne memorijske ćelije.

Tonsko biranje (Dual-tone multi-frequency signaling, DTMF) razvila je Bell Labs 50-ih godina prošlog vijeka za tada revolucionarni telefon sa dugmadima. Za predstavljanje i prijenos digitalnih podataka u tonskom modu, koristi se par frekvencija (tonova) opsega govornih frekvencija. Sistem definiše dve grupe po četiri frekvencije, a informacije se kodiraju prenosom dve frekvencije istovremeno, po jedna iz svake grupe. Ovo daje ukupno šesnaest kombinacija koje predstavljaju šesnaest različitih brojeva, simbola i slova. DTMF kodiranje se sada koristi u širokom spektru komunikacijskih i kontrolnih aplikacija, kao što je dokazano, na primjer, u Preporuci Međunarodne unije za telekomunikacije (ITU) Q.23.

Ovaj članak opisuje sklop DTMF tonskog generatora koji reproducira svih osam frekvencija i generira rezultirajući dvotonski izlazni signal. Predmetni sistem je izgrađen oko Silego GreenPAK™ SLG46620V čipa i Silego SLG88104V operativnih pojačala. Rezultirajući proizvedeni signal je zbir dvije frekvencije određene redom i stupcem telefonske tipkovnice.

Predloženo kolo koristi četiri ulaza za odabir kombinacije frekvencija koja će se generirati. Kolo također ima ulaz za omogućavanje, koji pokreće generiranje i određuje dužinu vremena u kojem se signal prenosi. Izlazna frekvencija generatora je u skladu sa ITU standardom za DTMF.

DTMF tonovi

DTMF standard definira kodiranje brojeva 0-9, slova A, B, C i D, te znakova * i # kao kombinaciju dvije frekvencije. Ove frekvencije su podijeljene u dvije grupe: grupu visokih frekvencija i grupu niske frekvencije. Tabela 1 pokazuje frekvencije, grupe i odgovarajuće prikaze simbola.

Tabela 1. DTMF tonsko kodiranje

Grupa visokih tonova

Niskopropusna grupa

Frekvencije su odabrane kako bi se izbjeglo više harmonika. Osim toga, njihov zbir ili razlika ne rezultira različitom DTMF frekvencijom. Na ovaj način izbjegavaju se harmonici ili modulacijsko izobličenje.

Standard Q.23 navodi da greška svake emitovane frekvencije mora biti unutar ±1,8% nominalne vrijednosti, a ukupna distorzija (zbog harmonika ili modulacije) mora biti 20 dB ispod osnovnih frekvencija.

Rezultirajući signal opisan gore može se opisati kao:

s(t) = Acos(2πfhight)+ Acos(2πflowt),

gdje su fhigh i flow odgovarajuće frekvencije iz grupa visoke i niske frekvencije.

Slika 1 prikazuje rezultujući signal za cifru "1". Slika 2 prikazuje frekvencijski spektar koji odgovara ovom signalu.

Rice. 1. DTMF ton

Rice. 2. DTMF tonski spektar

Trajanje DTMF tonova može varirati ovisno o specifičnoj aplikaciji koja koristi kodiranje tonova. Za najčešće aplikacije, vrijednosti trajanja obično padaju između ručnog i automatskog biranja. Tabela 2 prikazuje sažetak tipične dužine vremena za dvije vrste zapošljavanja.

Tabela 2. Trajanje signala tonskog biranja

Tip biranja

Grupa visokih tonova

Grupa visokih tonova

Ručno biranje

Automatsko biranje

Za veću fleksibilnost, DTMF generator ponuđen u ovom priručniku opremljen je ulazom za omogućavanje, koji se koristi za pokretanje generiranja signala i određivanje njegovog trajanja. U ovom slučaju, trajanje signala je jednako trajanju impulsa na ulazu za omogućavanje.

Analogni dio DTMF generatorskog kola

ITU Preporuka Q.23 definiše DTMF signale kao analogne signale stvorene sa dva sinusna talasa. U predloženom kolu DTMF generatora, Silego GreenPAK SLG46620V IC generira kvadratne signale sa željenim DTMF frekvencijama. Za dobijanje sinusoidnih signala tražene frekvencije i formiranje rezultujućeg signala (zbir dva sinusna talasa), potrebni su analogni filteri i sabirač. Iz tog razloga, u ovom projektu je odlučeno da se koriste filteri i kombinatori bazirani na SLG88104V operativnim pojačalima.

Slika 3 prikazuje strukturu predloženog analognog dijela uređaja.

Rice. 3. Analogno kolo za obradu za prijem DTMF signala

Analogni filteri se koriste za dobijanje sinusoidnih signala iz pravougaonih impulsa. Nakon izvršenog filtriranja, dva signala se sumiraju i generira se željeni izlazni dvotonski DTMF signal.

Slika 4 prikazuje rezultat Fourierove transformacije korištene za dobivanje spektra pravokutnog signala.

Rice. 4. Spektar pravokutnog signala

Kao što vidite, kvadratni val sadrži samo neparne harmonike. Ako takav signal s amplitudom A predstavimo u obliku Fourierovog niza, tada će imati sljedeći oblik:

Analiza ovog izraza nam omogućava da zaključimo da ako analogni filteri imaju dovoljno slabljenja za harmonike, onda je sasvim moguće dobiti sinusoidne signale s frekvencijom jednakom frekvenciji izvornog pravokutnog signala.

Uzimajući u obzir toleranciju nivoa smetnji definisanu u standardu Q.23, potrebno je osigurati da svi harmonici budu oslabljeni za 20 dB ili više. Osim toga, bilo koja frekvencija iz niskopropusne grupe mora biti kombinovana sa bilo kojom frekvencijom iz visokopropusne grupe. Uzimajući u obzir ove zahtjeve, razvijena su dva filtera, po jedan za svaku grupu.

Oba filtera su bili niskopropusni Butterworthovi filteri. Slabljenje Butterworthovog filtera reda n može se izračunati na sljedeći način:

A(f)[dB] = 10 log(A(f) 2) = 10log(1+(f/fc) 2n),

gdje je fc granična frekvencija filtera, n red filtera.

Razlika u slabljenju između najniže frekvencije i najviše frekvencije svake grupe ne može biti veća od 3 dB, tako da:

A(fHIGHER)[dB] - A(fHIGHER)[dB] > 3 dB.

Date apsolutne vrijednosti:

A(fVIŠE) 2 / A(CVIJET) 2 > 2.

Također, kao što smo ranije rekli, harmonijsko slabljenje bi trebalo biti 20 dB ili više. U ovom slučaju, najgori slučaj će biti najniža frekvencija u grupi, jer je njen 3. harmonik najniža frekvencija i najbliži je graničnoj frekvenciji filtera. S obzirom da je 3. harmonik 3 puta manji od osnovnog, filter mora ispunjavati uslov (apsolutne vrijednosti):

A(3fLOWER) 2 / A(cVET) 2 > 10/3.

Ako se ove jednačine primjenjuju na obje grupe, tada korišteni filteri moraju biti filteri drugog reda. To znači da će imati dva otpornika i dva kondenzatora svaki ako se implementiraju pomoću op-pojačala. Kada bi se koristili filteri trećeg reda, osjetljivost na tolerancije komponenti bila bi niža. Odabrane granične frekvencije filtera su 977 Hz za niskopropusnu grupu i 1695 Hz za visokopropusnu grupu. Na ovim vrijednostima, razlike u nivoima signala u frekventnim grupama su u skladu s gore navedenim zahtjevima, a osjetljivost na promjene granične frekvencije zbog tolerancija komponenti je minimalna.

Šematski dijagrami filtara implementiranih pomoću SLG88104V prikazani su na slici 5. Ocjene prvog RC para su odabrane na način da ograniče izlaznu struju SLG46620V čipa. Druga veza filtera određuje pojačanje, koje je 0,2. Amplituda pravokutnih signala postavlja radnu tačku operativnog pojačala na 2,5 V. Neželjeni naponi su blokirani kondenzatorima izlaznog filtera.

Rice. 5. Šematski dijagrami izlaznih filtera

Na izlazu se zbrajaju signali filtera, a rezultirajući signal je zbir harmonika odabranih iz grupe niskih i visokih frekvencija. Da bi se kompenziralo slabljenje filtera, amplituda izlaznog signala može se podesiti pomoću dva otpornika R9 i R10. Slika 6 prikazuje kolo za sabiranje. Slika 7 prikazuje cijeli analogni dio kola.

Rice. 6. Šematski dijagram sabirača

Rice. 7. Analogni dio kola

Digitalni dio kola DTMF generatora tona

Digitalni dio kola DTMF tonskog generatora uključuje cijeli set generatora pravokutnih valova - po jedan za svaku DTMF frekvenciju. Kako je za kreiranje ovih generatora potrebno osam brojača, za njihovu implementaciju je odabran GreenPAK SLG46620V čip. Na izlazima digitalnog kola generiraju se dva pravokutna signala, po jedan za svaku frekvencijsku grupu.

Signali pravokutnog talasa se generišu pomoću brojača i D flip-flopova i imaju radni ciklus od 50%. Iz tog razloga, frekvencija prebacivanja brojača je dvostruko veća od potrebne DTMF frekvencije, a DFF flip-flop dijeli izlazni signal na dva.

Izvor takta za brojače je ugrađeni RC oscilator od 2 MHz, čija se frekvencija dalje dijeli sa 4 ili 12. Razdjelnik se bira uzimajući u obzir kapacitet bita i maksimalnu vrijednost svakog brojača potrebnu za dobivanje određenog brojača. frekvencija.

Za generiranje visokih frekvencija potrebno je manje uzoraka, pa se za njihovo generiranje koriste 8-bitni brojači, taktirani od internog RC oscilatora čiji je signal podijeljen sa 4. Iz istog razloga, niže frekvencije se implementiraju pomoću 14-bitnih brojača.

SLG46620V ima samo tri standardna 14-bitna brojača, tako da je jedna od nižih frekvencija implementirana pomoću 8-bitnog CNT8 brojača. Da bi broj uzoraka pao u opseg od 0...255, za taktiranje ovog CNT8 bilo je potrebno koristiti signal RC oscilatora podijeljen sa 12. Za ovo kolo frekvencija sa najvećim brojem uzoraka, tj. je odabrana najniža frekvencija. To nam je omogućilo da minimiziramo grešku.

Tabela 3 prikazuje parametre svakog kvadratnog talasa.

Tabela 3. Parametri generatora kvadratnih impulsa

Sat

Greška frekvencije [%]

Niskopropusna grupa

Grupa visokih tonova

Kao što se vidi iz tabele, sve frekvencije imaju grešku manju od 1,8%, pa su u skladu sa DTMF standardom. Ove izračunate karakteristike, na osnovu idealne frekvencije RC oscilatora, mogu se podesiti mjerenjem izlazne frekvencije RC oscilatora.

Iako u predloženom kolu svi generatori rade paralelno, signal samo jednog generatora iz svake grupe bit će poslan na izlaz mikrokola. Izbor specifičnih signala određuje korisnik. Ovo se radi pomoću četiri GPIO ulaza (dva bita za svaku grupu) sa tabelom istinitosti prikazanom u tabeli 4.

Tabela 4. Tabela za odabir frekvencija iz grupe niske frekvencije

Niskopropusna grupa

Tabela 5. Tabela za odabir frekvencije iz grupe visokih frekvencija

Grupa visokih tonova

Slika 8 prikazuje logičko kolo generatora pravougaonog talasa od 852 Hz. Ovaj obrazac se ponavlja za svaku frekvenciju sa odgovarajućim postavkama brojača i LUT konfiguracijom.

Rice. 8. Pravougaoni generator impulsa

Brojač generiše izlaznu frekvenciju koja je određena njegovim postavkama. Ova frekvencija je jednaka dvostrukoj frekvenciji odgovarajućeg DTMF tona. Parametri konfiguracije brojila prikazani su na slici 9.

Rice. 9. Primjer postavljanja pravokutnog brojača generatora impulsa

Izlazni signal brojača je povezan na ulaz sata D-Flip Flop flip-flopa. Budući da je DFF izlaz konfiguriran kao invertiran, ako spojite DFF izlaz na njegov ulaz, D flip-flop se pretvara u T flip-flop. Konfiguracijski parametri DFF-a mogu se vidjeti na slici 10.

Rice. 10. Primjer postavljanja okidača pravokutnog generatora impulsa

Signal sa DFF izlaza se dovodi na ulaz LUT tablice istine. LUT-ovi se koriste za odabir jednog signala za svaku specifičnu kombinaciju R1-R0. Primjer LUT konfiguracije je prikazan na slici 11. U ovom primjeru, ako R1 primi 1, a R0 primi 0, ulazni signal se šalje na izlaz. U drugim slučajevima, izlaz sadrži “0”.

Rice. 11. Primjer postavljanja tablice istinitosti generatora kvadratnog impulsa

Kao što je gore spomenuto, predloženo kolo ima ulaz za omogućavanje. Ako postoji logička jedinica "1" na ulazu za omogućavanje dozvole, tada se generirani pravokutni signali dovode na par izlaza mikrokola. Trajanje prijenosa je jednako trajanju impulsa na ulazu za omogućavanje. Za implementaciju ove funkcije bilo je potrebno još nekoliko LUT-ova.

Visokopropusna grupa koristi jedan 4-bitni LUT i jedan 2-bitni LUT, kao što je prikazano na slici 12.

Rice. 12. Izlazni krug grupe visokih tonova

4-bitni LUT1 je konfigurisan kao kapija ILI, tako da izlazi logička 1 ako je 1 prisutna na bilo kom od njegovih ulaza. C1/C0 tablice istine dozvoljavaju da se izabere samo jedan od oscilatora, tako da 4-bitni LUT1 određuje koji signal se izlazi. Izlaz ovog LUT-a je povezan sa 2-bitnim LUT4, koji prenosi signal samo ako je ulaz za omogućavanje logički "1". Slike 13 i 14 prikazuju konfiguracije 4-bitnog LUT1 i 2-bitnog LUT4.

Rice. 13. 4-bitna LUT1 konfiguracija

Rice. 14. 2-bitna LUT4 konfiguracija

Pošto više nije bilo 4-bitnih LUT tablica istine, dva 3-bitna LUT-a su korištena za niskopropusnu grupu.

Rice. 15. Niskopropusni grupni izlazni krug

Kompletno interno kolo GreenPAK SLG46620V prikazano je na slici 16. Slika 17 prikazuje konačni dijagram DTMF generatora.

Rice. 16. Blok dijagram DTMF tonskog generatora

Rice. 17. Šematski dijagram DTMF tonskog generatora

Testiranje kola DTMF generatora

U prvoj fazi testiranja predloženog DTMF generatora odlučeno je da se osciloskopom provjere frekvencije svih generiranih pravokutnih signala. Kao primjer, slike 18 i 19 prikazuju izlazne kvadratne talase za 852 Hz i 1477 Hz.

Rice. 18. Kvadratni talas 852 Hz

Rice. 19. Kvadratni val 1477 Hz

Nakon što su provjerene frekvencije svih pravokutnih signala, počelo je testiranje analognog dijela kola. Ispitani su izlazni signali za sve kombinacije niskih i visokih frekvencija. Kao primjer, slika 20 prikazuje zbir signala od 770 Hz i 1209 Hz, a slika 21 prikazuje zbir signala od 941 Hz i 1633 Hz.

Rice. 20. DTMF ton 770 Hz i 1209 Hz

Rice. 21. DTMF ton 941 Hz i 1633 Hz

Zaključak

U ovom članku je predloženo kolo za DTMF tonski generator baziran na Silego GreenPAK SLG46620V čipu i Silego SLG88104V operativnim pojačalima. Generator omogućava korisniku da odabere kombinacije željenih frekvencija koristeći četiri ulaza i kontroliše ulaz za omogućavanje, koji određuje trajanje izlaznih signala.

Karakteristike SLG46620V čipa:

  • Tip: Programabilni mješoviti signal IC;
  • Analogni blokovi: 8-bitni ADC, dva DAC-a, šest komparatora, dva filtera, ION, četiri integrisana oscilatora;
  • Digitalni blokovi: do 18 I/O portova, interkonektivna matrica i kombinatorna logika, programabilna kola kašnjenja, programabilni generator funkcija, šest 8-bitnih brojača, tri 14-bitna brojača, tri PWM oscilatora/komparatora;
  • Komunikacijski interfejs: SPI;
  • Opseg napona napajanja: 1,8…5 V;
  • Raspon radne temperature: -40…85 °C;
  • Verzija pakovanja: 2 x 3 x 0,55 mm 20-pin STQFN.

Prepoznatljive karakteristike

  • Generiranje sinusnih valova korištenjem modulacije širine impulsa (PWM)
  • Kombinovanje različitih sinusnih signala u jedan DTMF signal
  • Izvorni kodovi na asembleru i C jezicima
  • Dizajniran za rad sa STK500
  • Veličina programskog koda 260 bajtova / veličina konstantne tabele 128 bajtova
  • Korištenje metode konverzije tablice

Uvod

Ovaj dokument opisuje tehniku ​​za generisanje DTMF signala (dvotonski multifrekventni signali) koristeći bilo koji AVR mikrokontroler koji sadrži jedinicu za modulaciju širine impulsa (PWM) i statički RAM. Ovi signali se široko koriste u telefoniji, gdje se reprodukuju kada pritisnete tipke za biranje telefonskog aparata. Da bi se pravilno generisao DTMF signal, dvije frekvencije moraju biti superponirane zajedno: niska frekvencija (fb) i visoka frekvencija (fa). Tabela 1 pokazuje kako se različite frekvencije miješaju da bi se proizvele DTMF tonovi kada se pritisnu različiti tasteri.


Slika 1. Krug generatora DTMF signala

Tabela 1. Matrica generiranja tonova

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

Redovi tabele 1 pokazuju vrednosti niske frekvencije, a kolone visoke frekvencije. Na primjer, matrica pokazuje da kada pritisnete dugme “5”, frekvencije fb = 770 Hz i fa = 1336 Hz treba da se pomiješaju. Kao rezultat sabiranja dva sinusoidna signala različitih frekvencija, formira se DTMF signal

gdje odnos amplitude K=A b /A a originalnih signala mora ispuniti uslov

Princip rada

Pored općih informacija o korištenju modulacije širine impulsa, ispod će biti prikazano kako vam modulacija širine impulsa omogućava generiranje sinusnih signala. Sljedeći paragraf opisuje kako koristiti osnovnu frekvenciju prebacivanja da biste dobili različite frekvencije. Nakon uvida u teorijske osnove, dat će se opis samog generatora DTMF signala. Generisanje sinusnih talasa

U zavisnosti od odnosa trajanja visokog VH i niskog VL naponskog nivoa, prosečna vrednost na PWM izlazu se menja. Ako se omjer između trajanja oba nivoa održava konstantnim, kao rezultat će se generirati konstantan nivo VAV napona. Slika 2 prikazuje modulirani signal širinom impulsa.


Slika 2. Generisanje nivoa istosmjernog napona

Nivo napona je određen izrazom:

(3)

Sinusoidni signal se može generirati pod uvjetom da se prosječna vrijednost napona generiranog modulacijom širine impulsa mijenja svakim PWM ciklusom. Odnos između visokog i niskog nivoa mora se postaviti u skladu sa naponskim nivoom sinusnog talasa u odgovarajućem trenutku. Slika 3 ilustruje ovaj proces. Izvorni podaci za PWM se izračunavaju za svaki njegov period i bilježe u tablici konverzije (TC).

Slika 3 također ilustruje odnos između frekvencije osnovnog sinusnog vala i broja uzoraka. Što je veći broj uzoraka (Nc), to je veća tačnost modeliranja rezultirajućeg signala:

(4)

Frekvencija PWM ovisi o PWM rezoluciji. U 8-bitnoj rezoluciji, konačna vrijednost (vrh broja) tajmera je 0xFF (255). Jer Tajmer broji naprijed i nazad, tada se ova vrijednost mora udvostručiti. Stoga, PWM frekvencija se može izračunati dijeljenjem frekvencije takta tajmera f CK sa 510. Dakle, sa frekvencijom takta tajmera od 8 MHz, rezultujuća PWM frekvencija će biti 15,6 kHz.


Slika 3. Generisanje sinusnog vala pomoću PWM-a

Promjena frekvencije sinusnog vala

Pretpostavimo da se sinusoidni uzorci čitaju iz tabele za pretraživanje ne uzastopno, već jedan po jedan. U ovom slučaju, pri istoj brzini uzorkovanja, generiraće se signal dvostruke frekvencije (vidi sliku 4).


Slika 4. Udvostručavanje rezultirajuće frekvencije (XSW = 2)

Po analogiji, ako čitate ne svaku drugu vrijednost, već svaku treću, četvrtu, petu (odnosno, širina koraka je 3, 4, 5...) itd. moguće je generirati Nc frekvencije u opsegu . Imajte na umu da za visoke frekvencije rezultirajući talasni oblik neće biti sinusoidan. Širinu koraka prema tablici konverzije označavamo sa X SW, gdje je

(5)

Izračunavanje trenutne pozicije u TP-u za naredni PWM period (kada se tajmer prekorači) vrši se pomoću izraza (6). Nova vrijednost u X LUT poziciji ovisi o njenom prethodnom stanju u X" LUT poziciji uz dodatak širine koraka X SW

(6)

Dodavanje različitih frekvencija za dobijanje DTMF signala

DTMF signal se može generirati korištenjem izraza (1) i (2). Radi jednostavnosti aritmetičkih operacija, vrijednost koeficijenta K se uzima jednakom 0,75 kako bi se aritmetička operacija zamijenila logičkim pomacima. Uzimajući u obzir izraz (6), trenutna vrijednost za PWM kontrolu može se izračunati izrazom:

a uzimajući u obzir da je X LUTa =X" LUTa + X SWa,X LUTb =X" LUTb + X SWb, konačno ćemo napisati

Implementacija DTMF generatora

Ovaj dodatak ispituje konstrukciju DTMF generatora tona koristeći 8-bitni PWM izlaz (OC1A) i tabelu sa 128 uzoraka sinusne funkcije (Nc), od kojih je svaki specificiran sa 7 bita (n). Sljedeći izrazi pokazuju ovu ovisnost i također pokazuju kako izračunati unose u tabeli za pretraživanje:

(9)

Prednost korištenja 7 bita je u tome što je zbir vrijednosti signala visoke i niske frekvencije jedan bajt. Da bi se podržao cijeli skup DTMF tonova, 8 vrijednosti za svaku DTMF frekvenciju iz Tabele 1 mora se izračunati i unijeti u tabelu za pretraživanje.

Da bi se postigla veća tačnost, implementirano je sledeće rešenje: vrednosti ​​računate korišćenjem izraza 5 zahtevaju samo 5 bajtova. Da bi se koristilo svih 8 bajtova, što će smanjiti greške zaokruživanja, ova vrijednost se množi sa 8. Pokazivač na tabelu pretraživanja je napisan na isti način. Ali u ovom slučaju potrebna su dva bajta za pohranjivanje 8 puta veće vrijednosti. To znači da se moraju izvršiti 3 pomaka udesno i operacija modula radiksa Nc (logičko množenje sa Nc-1) prije upotrebe ovih bajtova kao pokazivača na vrijednosti sinusnog vala u


Slika 5. Dijagram modula za povezivanje na STK500

PWM signal se generiše na pinu OC1A (PD5). Dodatni izlazni filter će pomoći da signal bude kompatibilniji sa sinusoidnim valnim oblikom. Prilikom smanjenja PWM frekvencije, možda će biti potrebno koristiti filter sa strmijom frekvencijom da bi se postigao dobar rezultat.

Povezivanje tastature je prikazano na slici 1. Rad tastature mora biti organizovan na način da je moguće odrediti pritisnut taster. Ovo se može uraditi korišćenjem sledećeg algoritma:

  1. Određivanje niza pritisnute tipke
    • konfigurirajte prijenosno računalo nižeg reda porta B kao izlaz i postavite dnevnik. "0"
    • konfigurišite visoku tetradu porta B kao ulaz sa priključkom pull-up otpornika
    • linija sa pritisnutim dugmetom je definisana kao cifra najveće tetrade sa log. "0"
  2. Definiranje kolone pritisnute tipke
    • konfigurirajte high notebook porta B kao izlaz i postavite dnevnik. "0"
    • konfigurišite tetradu nižeg reda porta B kao ulaz povezivanjem pull-up otpornika
    • kolona sa pritisnutim dugmetom je definisana kao cifra tetrade nižeg reda sa log. "0"

Napomena: U STK200, otpornici su povezani serijski između pinova konektora PORTB i pinova mikrokontrolera BP5, PB6 i PB7 (pogledajte dijagram STK200). Ovo će uzrokovati probleme ako je tastatura povezana na PORTB konektor.

Slika 6 ilustruje rad potprograma za određivanje pritisnute tipke. U zavisnosti od pritisnute tipke, određuje se trajanje intervala. Rutina prekida koristi ovu vrijednost za izračunavanje PWM postavki za dva DTM tonska sinusna vala. Postupak rukovanja prekidom prikazan je na slikama 7 i 8.

Ova rutina izračunava vrijednost za poređenje sa izlazom tajmera za sljedeći PWM period. Rutina prekida prvo izračunava poziciju sljedeće vrijednosti uzorka u tabeli za pretraživanje i čita vrijednost pohranjenu tamo.

Položaj uzorka u tabeli za pretraživanje određen je širinom impulsa, a stvarna širina impulsa određena je generiranom frekvencijom.

Konačna vrijednost koja se upisuje u registar poređenja tajmera određuje se pomoću formule (7), koja uzima u obzir vrijednosti uzorka obje DTMF frekvencije.


Slika 6. Blok dijagram glavnog programa


Slika 7. Blok dijagram postupka obrade prekida prekoračenja tajmera


Slika 8. Dijagram toka procedure čitanja uzorka "GetSample".

Objava: www.cxem.net

Pogledajte ostale članke odjeljak.