Dtmf signallari va dtmf signal generatorini yaratish usuli. DTMF signallarini yaratish va tanib olish DTMF ohangli signal generator chipi

Birinchi qism bu misol Ilova MSP430 mikrokontrolleri yordamida DTMF signallarini yaratishni tavsiflaydi. Bu holatda ishlatiladigan eng muhim spetsifikatsiyalar haqida tushuntirish berilgan va tegishli analog filtrlar yordamida kvadrat to'lqinlar yordamida sinus to'lqinlarni yaratishning nazariy va matematik asoslari berilgan. Misol shuningdek, MSP430 mikrokontrollerlarining turli taymer konfiguratsiyalari asosida kvadrat to'lqin signallarini yaratish uchun sinovdan o'tgan demo dasturlarni o'z ichiga oladi. Yakuniy qism taqdim etadi elektr sxemasi, bu sizga kvadrat to'lqin signallaridan DTMF signallarini yaratishga imkon beradi.

2 DTMF signal spetsifikatsiyasi

DTMF qisqartmasi "Dual Tone Multi Frequency" degan ma'noni anglatadi va analog aloqa liniyalari orqali uzatish maqsadida turli chastotalardagi raqamlarni ifodalash usulidir, masalan. telefon liniyasi. Standartni ishlab chiqishda shart hisobga olindi - barcha chastotalar "ovoz" diapazonida bo'lishi kerak, bu esa uzatish kanaliga qo'yiladigan talablarni kamaytirishga imkon berdi. Telefon tarmoqlari terish va boshqa ma'lumotlar uchun DTMF signallaridan foydalanadi. Standart bo'lgan pulsli terish usuli hali ham keng qo'llanilishiga qaramay, masalan, Germaniyada terish vaqti sezilarli darajada oshadi, bu esa aloqa liniyalarida samarasiz yuklanishga olib keladi. Bundan tashqari, ko'p qo'shimcha xizmatlar Aloqa faqat ohangli terish yordamida mumkin. DTMF usuli yordamida kodlashda 0-9 raqamlari va A-D harflari, */E va #/F ikki chastotaning kombinatsiyasini ifodalaydi:

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

Ushbu tizimda ustun "yuqori" chastota guruhidagi chastotani (Hi-Group: 1209-1633 Gts) va qator "pastki" chastota guruhidan (Lo-Group: 697-941 Gts) chastotani ifodalaydi. . Harmoniklarning ta'sirini bartaraf etish uchun tonal chastotalar tanlanadi. Chastotalar bir-birining ko'paytmasi emas va boshqa chastotalarni qo'shish yoki ayirish yo'li bilan DTMF chastotasini olish mumkin emas. Deutsche Telekom tarmog'ida raqam teruvchini yaratish uchun quyidagi texnik xususiyatlar talab qilinadi (Zulassungsvorschrift des Bundesamtes fur Post und Telekommunikation, BAPT 223 ZV 5 (Federal pochta va telekommunikatsiyalar vazirligining rasmiy spetsifikatsiyasi) dan olingan):

3 DTMF signallarini yarating

Yuqorida aytib o'tilganidek, DTMF signallari analog bo'lib, ikkita mustaqil sinus to'lqinlardan iborat. Shunday qilib, bunday signallarni faqat raqamli shaklda yaratish mumkin emas. Raqamli signallar ADC va/yoki analog filtrlar yordamida kerakli sinus to'lqin shakliga aylantirilishi kerak.

3.1 Kvadrat to'lqinlar yordamida avlod

Agar kvadrat to'lqin signallari DTMF signallarini yaratish uchun ishlatilsa, dasturiy ta'minot va apparat minimal. T davriga ega bo'lgan har qanday uzluksiz signal sinus va kosinus to'lqinlarining cheksiz yig'indisidan iborat Furye qatori bilan quyidagicha ifodalanishi mumkin:

Bu erda a0/2 signalning doimiy komponentidir. Eng past burchak chastotasi (w0) bo'lgan yig'indi elementi asosiy (asosiy) garmonik deb ataladi, qolganlari ohanglar yoki undan yuqori harmonikalardir.

Mikrokontroller yordamida amalga oshiriladigan eng oddiy uzluksiz signal kvadrat to'lqin bo'lib, Furye seriyasi quyidagi shaklga ega:

Har bir chastota komponentining umumiy signalga qo'shgan hissasi eng yaxshi amplituda spektri bilan namoyon bo'ladi (2-rasmga qarang):


Guruch. 2: Kvadrat to'lqin signalining amplituda spektri

Analog filtrdan foydalanganda, DC komponenti va undan yuqori harmoniklar samarali tarzda bostiriladi, chiqishda esa biz asl kvadrat to'lqinning chastotasiga teng chastotali sinusoidal signalga egamiz.

3.2 Dasturiy ta'minot meander hosil qilish uchun

Meander ishlab chiqarish dasturi quyidagi talablarga javob berishi kerak:

  • Ikkita mustaqil to‘rtburchak signallarni sintez qila olish.
  • Signallarni ajratish uchun "yuqori" (Hi-Group) va "pastki" (Lo-Group) signallarini yaratish uchun ikkita chiqish pinlari talab qilinadi. chastota diapazonlari mos ravishda.
  • Dasturiy ta'minot talab qilinadigan signal davomiyligini taxminan 65 ms - 100 ms oralig'ida o'rnatishi kerak.

MSP430 seriyali mikrokontrollerlar kvadrat to'lqinli signallarni ishlab chiqarishga qodir turli xil o'rnatilgan taymerlarga ega. '31x/'32x oilasi har ikkala kvadrat to'lqin signalini yaratish uchun 8 bitli taymer va taymer portidan foydalanadi. Bu dastur 1,048 MGts ga teng MCLK chastotasida sinovdan o'tkazildi. '33x oilasidagi Timer_A ikkala kerakli signalni mustaqil ravishda ishlab chiqishi mumkin. Ikkinchi dastur kvadrat to'lqinlarni yaratish uchun ushbu taymerdan foydalanadi va har qanday MCLK chastotalari bilan ishlaydi. Ikkala dastur ham quyida batafsil muhokama qilinadi.

3.2.1 8-bitli taymer va taymer porti yordamida kvadrat to'lqinlarni yaratish

Shaklda. 3 - bu DTMF signallarini yaratish uchun ishga tushirish protsedurasining sxemasi. Ikki chastotani sintez qilish uchun taymer porti va 8 bitli taymer hisoblagichlari ishlatiladi. Ularning har biri kerakli chastotalarni aniq sintez qilish uchun zarur bo'lgan dasturlashtiriladigan hisoblagich registridir. Taymer-port hisoblagichlari bitta 16-bitli taymerga kaskadlangan bo'lsa va MCLK tizim chastotasida soatlansa, u holda yuqori diapazonli chastotalar yuqori aniqlik bilan yaratilishi mumkin. Uzilish sodir bo'lganda, mos keladigan chiqish almashtiriladi va ikkala 8 bitli hisoblagich registrlari qayta o'rnatiladi. Yuklangan qiymatlar boshqa vazifalar uchun ichki registrlarni saqlash uchun RAMda ikkita o'zgaruvchida saqlanadi.

Past diapazonli chastotalar 8 bitli taymer tomonidan ishlab chiqariladi. Ushbu taymerning hisoblagich registrining kengligi 8 bit bo'lganligi sababli, faqat har uchinchi uzilish kerakli chiqish pinidagi daraja o'zgarishiga olib keladi va bir xil chastota hisoblagichini yaratishga imkon beradi.

Ikkita taymer chiqishi - portlar turli chastotalarning ikkita meanderini hosil qilish uchun ishlatiladi.

Guruch. 3 DTMF signallarini yaratish uchun ishga tushirish jarayonining sxemasi

Boshlash jarayoni faqat bir marta amalga oshiriladi. U tugallangandan so'ng, uzatilgan belgining o'n oltilik qiymati RAMdagi global o'zgaruvchidan o'qiladi. Yuqori va past DTMF ohanglarini tashkil etuvchi ikkita chastota ikkita jadvaldan hosil bo'lgach, talab qilinadigan narsa ikkala taymerni ishga tushirish va ishga tushirishdir. Yuborish davomiyligi "pastki" chastotaning yarim davrlarini hisoblash orqali nazorat qilinadi va qo'shimcha jadvaldan o'qiladi. Ushbu protsedura tugagandan so'ng, siz ovoz berish funksiyasiga qaytasiz. Tegishli uzilishlarni qayta ishlash tartiblari port pinlarini almashtiradi. Bu jarayon rasmda ko'rsatilgan. 4 va 5.

Taymer-portning vazifalari faqat jurnalni yozishni o'z ichiga oladi. port chiqishidagi daraja va hisoblagichni RAMdan qayta yuklash, 8 bitli taymerning ishlashi biroz murakkabroq tuzilishga ega: uzilishga har bir kirish hisoblagich registri tomonidan hisoblanadi. Chiqish holatini faqat uchta uzilishdan keyin o'zgartirishi mumkin. Bundan tashqari, har bir yarim tsikl ham hisobga olinadi. Yarim sikllarning ma'lum soniga erishilganda avlod to'xtaydi.


Guruch. 4-blok - 8 bitli taymerdan uzilish davri (Lo-Group)


Guruch. 5 Blok - taymer-port uzilish davri (Hi-Group)

; Maxsus ta'riflar FLLMPY equ 32; 1,048 MGts chastotada FLL chastotasi multiplikatori TCLK equ FLLMPY*32768; TCLK: FLLMPY x f kvarts DL equ 85; Davomiyligi DTMF signali (65..100 ms) LO_OUT equ 02h ; “Pastki” chastotaning chiqishi HI_OUT equ 04h ; Yuqori chastotali chiqish RCOUNT equ r14; Uzunlik hisoblagichi DTMF RTEMP equ r15; xizmat registri.global DTMF_NR ; RAMdagi global o'zgaruvchi; DTMF raqami uchun (0..F) ; Ta'riflar RAM.hatto .bss DTMF_TL ; Hatto manzil alignment.bss DTMF_TH .bss DTMF_NR ; RAMdagi global o'zgaruvchi; DTMF raqami uchun (0..F).juft ; 8-bitli taymer uchun ta'riflar TCCTL EQU 42H TCPLD EQU 43H TCDAT EQU 44H ; Universal taymer porti uchun ta'riflar TPCTL equ 04bh ; Taymer-port nazorati TPCNT1 equ 04ch ; Taymer-port hisoblagichi 1 TPCNT2 equ 04dh ; Taymer-port hisoblagichi 2 TPD equ 04eh ; Taymer-port ma'lumotlari TPE equ 04fh ; Timer-port-resolution.text ; DTMF chastota jadvallari: jadval o'z ichiga oladi; bir yarim tsikl uchun MCLK tsikllari soni. ; "Yuqori" chastota uchun jadval; Tuzatuvchi tuzatish kiritildi; uzilishga kirish vaqtini hisobga olish DTMF_HI .so'z 0ffffh-(TCLK/(1336*2))+25 ; 0 .so'z uchun yuqori chastota 0ffffh-(TCLK/(1207*2))+28 ; 1 .so'z uchun yuqori chastota 0ffffh-(TCLK/(1336*2))+25 ; 2 .so'z uchun yuqori chastota 0ffffh-(TCLK/(1477*2))+24 ; 3 so'z uchun yuqori chastota 0ffffh-(TCLK/(1207*2))+28 ; 4 .so'z uchun yuqori chastota 0ffffh-(TCLK/(1336*2))+25 ; 5 .so'z uchun yuqori chastota 0ffffh-(TCLK/(1477*2))+24 ; 6 .so'z uchun yuqori chastota 0ffffh-(TCLK/(1207*2))+28 ; 7 .so'z uchun yuqori chastota 0ffffh-(TCLK/(1336*2))+25 ; 8 .so'z uchun yuqori chastota 0ffffh-(TCLK/(1477*2))+24 ; 9 .so'z uchun yuqori chastota 0ffffh-(TCLK/(1633*2))+22 ; A .so'z uchun yuqori chastota 0ffffh-(TCLK/(1633*2))+22 ; B uchun yuqori chastota .so'z 0ffffh-(TCLK/(1633*2))+22 ; C .word uchun yuqori chastota 0ffffh-(TCLK/(1633*2))+22 ; D .word uchun yuqori chastota 0ffffh-(TCLK/(1207*2))+28 ; * .word 0ffffh-(TCLK/(1477*2))+24 uchun yuqori chastota; # uchun yuqori chastota; "Quyi" chastotasi uchun jadval DTMF_LO .bayt 0ffh-(TCLK/(941*2*3)) ; 0 .bayt 0ffh-(TCLK/(697*2*3)) uchun past chastotali; 1 .bayt 0ffh-(TCLK/(697*2*3)) uchun past chastotali; 2 .bayt 0ffh-(TCLK/(697*2*3)) uchun past chastotali; 3 .bayt 0ffh-(TCLK/(770*2*3)) uchun past chastotali; 4 .bayt 0ffh-(TCLK/(770*2*3)) uchun past chastotali; 5 .bayt 0ffh-(TCLK/(770*2*3)) uchun past chastotali; 6 .bayt 0ffh-(TCLK/(853*2*3)) uchun past chastotali; 7 .bayt 0ffh-(TCLK/(853*2*3)) uchun past chastotali; 8 .bayt 0ffh-(TCLK/(853*2*3)) uchun past chastotali; 9 .bayt 0ffh-(TCLK/(697*2*3)) uchun past chastotali; A .bayt uchun past chastota 0ffh-(TCLK/(770*2*3)) ; B .bayt uchun past chastota 0ffh-(TCLK/(853*2*3)) ; C .bayt 0ffh-(TCLK/(941*2*3)) uchun past chastotali; D .bayt 0ffh-(TCLK/(941*2*3)) uchun past chastotali; *.bayt 0ffh-(TCLK/(941*2*3)) uchun past chastotali; # uchun past chastota; Signal davomiyligi jadvali DTMF_L .bayt 2*941*DL/1000; 0 .bayt 2*697*DL/1000 uchun yarim davrlar; 1 .bayt 2*697*DL/1000 uchun yarim davrlar; 2 .bayt 2*697*DL/1000 uchun yarim davrlar; 3 .bayt 2*770*DL/1000 uchun yarim davrlar; 4 .bayt 2*770*DL/1000 uchun yarim davrlar; 5 .bayt 2*770*DL/1000 uchun yarim davrlar; 6 .bayt 2*852*DL/1000 uchun yarim davrlar; 7 .bayt 2*852*DL/1000 uchun yarim davrlar; 8 .bayt 2*852*DL/1000 uchun yarim davrlar; 9 .bayt 2*697*DL/1000 uchun yarim davrlar; A .bayt 2*770*DL/1000 uchun yarim davrlar; B .bayt 2*852*DL/1000 uchun yarim davrlar; C .bayt 2*941*DL/1000 uchun yarim davrlar; D .bayt 2*941*DL/1000 uchun yarim davrlar; *.bayt 2*941*DL/1000 uchun yarim davrlar; # uchun yarim sikl;******************************************** ********* ******************************** ; DTMF-TX DTMF quyi dasturi;************************************************ ******************************** DTMF_TX mov.b DTMF_NR,RTEMP ; Raqamni vaqtinchalik registrda saqlang mov.b DTMF_L(RTEMP),RCOUNT ; Davomiylik hisoblagichini saqlash; DTMF-Lo chastotasi uchun 8 bitli taymerni tayyorlang mov.b #0a8h,&TCCTL ; MCLK mov.b dan soat DTMF_LO(RTEMP),&TCPLD ; Ro'yxatga olishni tayyorlash; oldindan yuklash mov.b # 000, & TCDAT ; Hisoblagichni registrdan yuklash; oldindan yuklash bis.b # 008h, & IE1; Uzilishlarni yoqish; 8 bitli taymerdan; DTMF-Hi chastotasi rla r15 uchun taymer portini tayyorlash; * 16-bitli jadval mov uchun 2 DTMF_HI(RTEMP),&DTMF_TL ; yuqori chastotali mov uchun so'zni saqlang #003,RTEMP ; 8-bitli taymer uchun hisoblagich bis.b #008h,IE2 ; Uzilishlarni yoqish; taymer-portdan mov.b &DTMF_TH,&TPCNT2 ; Yuqori baytni TC2 mov.b ga yuklash &DTMF_TL,&TPCNT1 ; TC1 bis.b ga past bayt yuklanmoqda #080h,&TPD ; 16-bitli taymerni yoqish bis.b #HI_OUT+LO_OUT,&TPE ; DTMF-Hi/Lo chiqishlarini yoqish mov.b #090h,&TPCTL ; Taymerni yoqish;************************************************ ******** ******************************** ; Taymer-port uzilishi;************************************************ *** ******************************* TP_INT xor.b #HI_OUT,&TPD ; Invert DTMF-Hi chiqish mov.b &DTMF_TH,&TPCNT2 ; Yuqori baytni TC2 mov.b ga yuklash &DTMF_TL,&TPCNT1 ; TC1 bic.b ga past bayt yuklanmoqda #007h,&TPCTL ; Reti bayroqlarini tozalash;************************************************ ******** ************

3.2.2 1 Timer_A yordamida kvadrat to'lqinlarni hosil qilish

Ushbu DTMF signalini yaratish tartibi istalgan chastotalarni kvadrat to'lqinlash uchun faqat Timer_A dan foydalanadi. Yig'ish jarayoni MCLK chastotasi qiymatidan qat'i nazar, dasturdan foydalanish uchun taymer uchun tegishli qiymatlarni hisoblab chiqadi. Chiqish signalining davomiyligi millisekundlarda DL doimiysi bilan belgilanadi.

; Uskuna ta'riflari; FLLMPY .equ 32 ; Chastota multiplikatori FLL 1,048 MGts TCLK .equ FLLMPY*32768 ; TCLK: FLLMPY x f kvarts DL .equ 82 ; DTMF signalining davomiyligi milodiy; (65..100 ms) STACK .equ 600h ; Stackni ishga tushirish manzili; RAM ta'riflari; STDTMF .equ 202h ; Salom va past chastota holati TIM32B .equ 204 ; Taymer registrining kengaytmasi LENGTH .equ 206h ; DTMF davomiyligi hisoblagichi; .matn 0F000h ; Dasturning boshlang'ich manzili; ; Timer_A ishga tushirish: MCLK, Uzluksiz rejim, uzilishlar yoqilgan; Taymer chiqish modullarini tayyorlash Timer_A MCLK = 1,048 MGts (avtomatik) ; INIT MOV #STACK,SP ;Stek ko'rsatkichini ishga tushirish CALL #INITSR ;Ko'paytirgichni ishga tushirish; FLL chastotalari va RAM MOV #ISMCLK+TAIE+CLR,&TACTL; Taymerni ishga tushirish MOV.B #TA2+TA1,&P3SEL ; P3.5/4 CLR TIM32B portlarida TA2 va TA1 chiqadi; Kengaytirilgan taymer registrini tozalash BIS #MCONT,&TACTL ; Boshlash taymeri Timer_A EINT ; Umumiy uzilishni yoqish MAINLOOP ... ; Asosiy halqa; ;Klaviatura bosish: SDTMF jadval ofsetini o'z ichiga oladi; yuqori va past baytda 2 chastota (0..6,0..6) uchun; MOV&TAR,R5 ; Darhol boshlash uchun: ADD FDTMFLO,R5 ; Qisqaroq vaqt uchun ofset MOV R5, & CCR1 ; 0,71 ms dan keyin birinchi holat o'zgarishi MOV R5, & CCR2 ; 1/(2x697) = 0,71 ms MOV #OMT+CCIE, & CCTL1; Chiqish inversiyasi, bit uzilishi. MOV #OMT+CCIE, & CCTL2; Chiqishni teskari, uzilish bitini MOV.B STDTMF,R5 ; 82 milodiy hisoblagich RRA R5; pastki chastota holati o'zgarishlar soni MOV.B DTMFL(R5),LENGTH ; signal davomiyligi uchun... ; dasturni davom ettirish; ; CCR0 dan uzilish ishlovchisi (bu yerda ishlatilmaydi); TIMMOD0 ... RETI; ; Tugatish-qiyoslash registrlaridan uzilish ishlovchisi 1..4; TIM_HND QO'SHISH &TAIV,PC ; Eng yuqori so'rovni qayta ishlash; RETI ustuvorligi; uzilish so'rovi yo'q: RETI JMP HCCR1 ; CCR1 (DTMF past chastotasi) dan so'rov JMP HCCR2 ; CCR2 (DTMF yuqori chastotasi) dan so'rov JMP HCCR3 ; CCR3 JMP HCCR4 dan so'rov; CCR4 dan so'rov; TIMOVH INC TIM32B; Timer_A ni 32 bit RETI gacha kengaytirish; ; DTMF past chastotasi: TA1 1-chiqish birligining chiqishini o'zgartiradi; Har bir holat o'zgarishi signalning davomiyligini nazorat qilish uchun hisoblanadi; HCCR1 PUSH R5; Ishlatilgan registrlarni saqlash MOV.B STDTMF,R5 ; Past chastota holati DTMF ADD FDTMFLO(R5),&CCR1 ; Yarim davr davomiyligini qo'shing DEC.B LENGTH ; DL signalining davomiyligi tugallandimi? JNZ TARET; Yo'q; ; Ha, DTMF signalini to'xtating: uzilishlarni o'chiring; BIC #OMRS+OUT+CCIE,&CCTL1; TA1 BIC #OMRS+OUT+CCIE,&CCTL2 ni tiklash; TA2 TARET POP R5 ni tiklash; R5 RETI ni tiklash; Uzilishdan qaytish; ; Yuqori chastotali DTMF: TA2 2-chiqish blokining chiqishini o'zgartiradi; HCCR2 PUSH R5; Ishlatilgan MOV registrlarini saqlash. B STDTMF+1,R5; Yuqori chastota holati DTMF ADD FDTMFHI(R5),&CCR2; POP R5 yarim davr davomiyligini qo'shing; R5 RETI ni tiklash; Uzilishdan qaytish; HCCR3 ... ;Vazifa CCR3 RETI registri bilan boshqariladi HCCR4 ... ;Vazifa CCR4 RETI registri bilan boshqariladi ; ; DTMF chastotalar jadvali: Jadvalda; yarim sikl uchun MCLK tsikllari soni. Qiymatlar uchun sozlangan; yig'ish jarayonida samarali chastota MCLK; va minimal darajaga yaxlitlanadi mumkin bo'lgan xato chastotalar; FDTMFLO .word ((TCLK/697)+1)/2 ; Past chastotali DTMF 697Hz .word ((TCLK/770)+1)/2 ; 770Hz .so'z ((TCLK/852)+1)/2 ; 852Hz .so'z ((TCLK/941)+1)/2 ; 941Hz FDTMFHI .so'z ((TCLK/1209)+1)/2 ; Yuqori chastotali DTMF1209Hz .word ((TCLK/1336)+1)/2 ; 1336Hz .so'z ((TCLK/1477)+1)/2 ; 1477Hz .so'z ((TCLK/1633)+1)/2 ; 1633 Gts; ; Jadvalda DL signalining davomiyligi (ms) uchun yarim davrlar soni mavjud. ; Hisoblash uchun pastki DTMF chastotasi ishlatiladi; DTMFL .bayt 2*697*DL/1000; Yarim sikllar soni.bayt 2*770*DL/1000 ; ms.baytda DL uchun 2*852*DL/1000 ; .bayt 2*941*DL/1000; ; .sect "TIMVEC",0FFF0h ; Taymer uzilish vektorlari Timer_A .so'z TIM_HND ; Modullar vektori 1..4 taymer.word TIMMOD0 ; Taymer moduli 0 vektor.sect "INITVEC",0FFFEh ; Vektor Qayta o'rnatish.so'z INIT

Quyida biroz tezroq yechim mavjud. Biroq, u ko'proq RAM talab qiladi, chunki ... Jadvallardan olingan ma'lumotlar har safar qayta hisoblanmaydi, lekin qisqacha DTMFLO va DTMFHI operativ xotirasida saqlanadi. O'qish Timer_A taymerining uzilish tartiblaridan amalga oshiriladi. Amaldagi jadvallar oldingi misolda ko'rsatilganlarga o'xshash.

FLLMPY .equ 32 ; Chastota multiplikatori FLL 1,048 MGts TCLK .equ FLLMPY*32768 ; TCLK: FLLMPY x f kvarts DL .equ 82 ; DTMF signalining davomiyligi; milodiy (65..100 ms) da STDTMF .equ 202h ; Salom va past chastota holati TIM32B .equ 204 ; Taymer registrining kengaytmasi LENGTH .equ 206h ; DTMF davomiyligi hisoblagichi DTMFLO .equ 208h ; Pastki chastotali DTMFHI ning yarim davri .equ 20Ah; Yuqori chastotali yarim sikl STACK .equ 600h ; Stackni ishga tushirish manzili.text 0F000h ; Dasturning boshlang'ich manzili; Timer_A ishga tushirish: MCLK, Uzluksiz rejim, uzilishlar yoqilgan; Taymer chiqish modullarini tayyorlash Timer_A MCLK = 1,048 MGts (avtomatik) ; INIT MOV #STACK,SP ; Stack ko'rsatkichini ishga tushirish CALL #INITSR ; Multiplikatorni ishga tushirish; FLL chastotalari va RAM MOV #ISMCLK+TAIE+CLR,&TACTL; Taymerni ishga tushirish MOV.B #TA2+TA1,&P3SEL ; P3.5/4 CLR TIM32B portlarida TA2 va TA1 chiqadi; Kengaytirilgan taymer registrini tozalash BIS #MCONT,&TACTL ;Taymerni ishga tushirish_A EINT ; Umumiy uzilishni yoqish MAINLOOP ... ; Asosiy tsikl;Klaviaturani bosish: SDTMF jadval ofsetini o'z ichiga oladi; yuqori va past baytda 2 chastota (0..6,0..6) uchun; MOV&TAR,R5 ; Darhol boshlash uchun FDTMFLO, R5 qo'shing; Qisqaroq vaqt uchun ofset MOV R5, & CCR1 ; 0,71 ms dan keyin birinchi holat o'zgarishi MOV R5, & CCR2 ; 1/(2x697) = 0,71 ms; ; DTMF chastotalari uchun ikkita sikl hisobini oling; MOV.B STDTMF+1,R5 ; Yuqori chastotali DTMF MOV FDTMFHI(R5),DTMFHI; Yarim davr davomiyligi MOV.B STDTMF,R5 ; Past chastotali DTMF MOV DTMFLO(R5),DTMFLO ; Yarim tsiklning davomiyligi; ; Davomiylik hisoblagichi RRA R5; Bayt indeksini tayyorlang MOV.B DTMFL(R5),LENGTH ; pastki chastota holati o'zgarishlar soni MOV # OMT + CCIE, & CCTL1 ; Chiqish inversiyasi, bit uzilishi. MOV #OMT+CCIE, & CCTL2; Chiqish inversiyasi, bit uzilishi. ... ; Asosiy tsiklga qaytish; ; CCR0 dan uzilish ishlovchisi (bu yerda ishlatilmaydi); TIMMOD0 ... RETI; ; Tugatish-qiyoslash registrlaridan uzilish ishlovchisi 1..4; TIM_HND QO'SHISH &TAIV,PC ; Eng yuqori so'rovni qayta ishlash; RETI ustuvorligi; uzilish so'rovi yo'q: RETI JMP HCCR1 ; CCR1 (DTMF past chastotasi) dan so'rov JMP HCCR2 ; CCR2 (DTMF yuqori chastotasi) dan so'rov JMP HCCR3 ; CCR3 JMP HCCR4 dan so'rov; CCR4 dan so'rov; TIMOVH INC TIM32B; Timer_A ni 32 bit RETI gacha kengaytirish; ; DTMF past chastotasi: TA1 1-chiqish birligining chiqishini o'zgartiradi; HCCR1 AQSH DTMFLO, & CCR1 ; Yarim davr davomiyligini qo'shing DEC.B LENGTH ; DL signalining davomiyligi tugallandimi? JNZ TARET; Yo'q; ; Ha, DTMF signalini to'xtating: uzilishlarni o'chiring; BIC #OMRS+OUT+CCIE,&CCTL1; TA1 BIC #OMRS+OUT+CCIE,&CCTL2 ni tiklash; TA2 TARET RETI ni tiklash; Uzilishdan qaytish; Yuqori chastotali DTMF: TA2 2-chiqish blokining chiqishini o'zgartiradi; HCCR2 DTMFHI qo'shish, & CCR2 ; Yarim davr davomiyligini qo'shing RETI ; Uzilishdan qaytish; HCCR3. .. ;Vazifa CCR3 RETI HCCR4 registri bilan boshqariladi ... ;Vazifa CCR4 RETI registri bilan boshqariladi ; ; Uzilish jadvallari va vektorlari oldingi misolda ko'rsatilganlarga o'xshash.

3.3 DTMF signallarini ishlab chiqarish uchun uskunalar

Yuqorida aytib o'tilganidek, 200 Hz.. 4600 Hz chastota diapazonida uzatish chastotasining signal darajasi tashqi signallar (shovqin) darajasidan kamida 20 dB bo'lishi kerak. Bundan tashqari, spetsifikatsiyaga asoslanib, "yuqori" va "pastki" guruhlarning signallari turli darajalarga ega bo'lishi kerak, shuning uchun har bir signal o'z filtrini talab qiladi. Sinusoidal chastota amplitudalarini Furye seriyasidan olish mumkin.

Analog filtrni loyihalashda kesish chastotalarini tanlash uchun siz quyidagi talablarga rioya qilishingiz kerak:

  • Chunki "pastki" guruh chastotalarining "yuqori" guruh chastotalari bilan har qanday kombinatsiyasi imkoniyatini ta'minlash kerak, guruhdagi eng past va eng yuqori chastotalar o'rtasidagi darajadagi farq 3 dB dan oshmasligi kerak.
  • Guruhdagi eng past chastota uchun (f1) harmonik bostirish (3f1) 20 dB dan kam bo'lmasligi kerak. Ushbu shartning bajarilishi guruhdagi past chastotalar uchun eng muhim hisoblanadi, chunki u filtrni kesish chastotasidan iloji boricha uzoqroqda joylashgan.

Formula n-tartibdagi yuqori o'tkazuvchan Butterworth filtrining chiqishidagi mutlaq qiymatning kvadratini tavsiflaydi:

Ushbu formula Butterworth yuqori o'tkazuvchan filtri daromadining chastotaga bog'liqligini ifodalaydi. fg va n parametrlari mos ravishda filtrning kesish chastotasi va tartibini aniqlaydi.

Avvalo, yuqoridagi talablarga muvofiqligini hisobga olgan holda, kerakli filtr tartibini hisoblash kerak.

Birinchi shartni qondirish uchun guruhdagi eng past va eng yuqori chastotalarning mutlaq qiymatlari kvadratlarining nisbati 3 dB dan oshmasligi kerak yoki:

Ikkinchi shart, agar f1 va 3f1 chastotalarining mutlaq qiymatlari kvadratlarining nisbati 10/3 dan ortiq bo'lsa, avtomatik ravishda qondiriladi, bu holda to'rtburchaklar signaldagi uchinchi harmonik 1/3 ga kam bo'ladi (Qarang: Furye qator va 2-rasm):

Ikkala guruhning chastotalari uchun hisob-kitoblar natijasida biz kerakli filtrlash tartibiga ega bo'lamiz n=1,15. Shunday qilib, talablar qurilishi mumkin bo'lgan 2-darajali filtr tomonidan qondiriladi operatsion kuchaytirgich. Agar siz uchinchi tartibli filtrdan foydalansangiz, sizga faqat ikkita qo'shimcha element kerak bo'ladi. Biroq, bu komponent parametrlarining tarqalishiga bo'lgan talablarni kamaytiradi. Agar kesish chastotasi quyidagi chegaralar ichida bo'lsa, yuqoridagi ikkala talab ham qondiriladi:

Pastki guruh fg>880 Hz fg<1418 Гц
Yuqori guruh fg>1527 Hz fg<2460 Гц

Agar kesish chastotasi minimal bo'lsa, maksimal garmonik pasayish sodir bo'ladi. Biroq, bu holda guruhdagi eng past va eng yuqori chastotalar orasidagi farq 3 dB bo'ladi. Mumkin bo'lgan eng yuqori kesish chastotasida daraja farqi minimal, ammo harmonik komponentlar faqat 20 dB bilan bostiriladi.

Filtrni hisoblashda harmonik bostirishga katta e'tibor berildi, guruh ichidagi darajadagi farq 2 dB ga o'rnatildi. Natijada, o'chirish chastotalari 977 Gts va 1695 Gts ni tashkil qiladi. Olingan harmonik bostirish talablardan sezilarli darajada oshadi. Guruhdagi chastotalar darajasidagi farq, ishlatiladigan komponentlarning parametrlarida tarqalish bilan bog'liq bo'lgan kesish chastotasining og'ishida ham talablar doirasida bo'ladi. Filtr elementlarining qiymatlarini hisoblashda rezistorlar E12 seriyasining standart qiymatlariga maksimal yaqinligi asosida tanlangan.

Filtrning chiqishlarida natija sezilarli darajada bostirilgan harmoniklarga ega bo'lgan ikkita sinusoidal signaldir. Ushbu signallarni birlashtirish uchun qo'shimcha qo'shimcha kiritiladi.

Shunday qilib, faqat 3 ta op-amp va bir nechta passiv elementlardan foydalangan holda, biz muhim hisoblash resurslaridan foydalanmasdan mikrokontroller yordamida DTMF signallarini yaratishimiz mumkin.

Simulyator dasturlari yordamida taxminiy qiymatlar tekshirildi. Filtrlarning javobi hisoblangan chastota javobiga juda mos keladi.


Guruch. 6: 3-darajali filtr chiqishida 697 Gts chastotali to'rtburchak signalning amplituda spektri

Shaklda. 6-rasmda 3-tartibli filtrdan o'tgan chastotasi 697 Gts bo'lgan to'rtburchaklar signalning amplituda spektri ko'rsatilgan. Rasmdan ko'rinib turibdiki, uchinchi va beshinchi harmonikalar (2091 Hz va 3485 Hz) sezilarli darajada zaiflashadi (-25,6 dB).


Guruch. 7: 3-darajali filtr chiqishida 941 Gts chastotali to'rtburchak signalning amplituda spektri

Shaklda. 7-rasmda 941 Gts chastotali kvadrat to'lqin signalining spektri ko'rsatilgan. Bizni qiziqtiradigan chastota mintaqasida 4600 Gts gacha, faqat bitta harmonik mavjud. Filtrdan o'tgandan so'ng, bu 2823 Hz harmonik sezilarli darajada zaiflashadi (-27,9 dB). Guruhdagi eng past va eng yuqori chastotalar orasidagi daraja farqi 1,9 dB dan oshmaydi.

Parametrlarning yuqori o'zgarishiga ega bo'lgan arzon komponentlardan foydalanish uchun qo'shimcha modellashtirish amalga oshirildi. Simulyatsiya natijalari shuni ko'rsatdiki, rezistorlar va kondansatkichlar qiymatlarida ruxsat etilgan tarqalish 10% ni tashkil qiladi.


8-rasm: Histogramma - guruhdagi signal darajalarining taqsimlanishi


9-rasm: Gistogramma - Garmonik bostirish

Shaklda. 8 va 9 Monte-Karlo tahlili yordamida olingan histogrammalarni ko'rsatadi. Bunday holda, komponent qiymatlari 10% tarqalish doirasida tasodifiy o'zgargan. 100 marta takrorlangandan so'ng, barcha simulyatsiya qilingan filtrlar natijalari gistogrammalarda chiziladi. Shakldagi gistogrammada. 8-rasmda guruh ichidagi chastotalar orasidagi darajadagi farq ko'rsatilgan. Minimal va maksimal chastotalar o'rtasidagi 3 dB maksimal ruxsat etilgan farq hech qanday holatda erishilmadi. O'rtacha qiymat 1,6 dB ni tashkil qiladi, bu 2 dB hisoblangan qiymatdan biroz yaxshiroq.

Shaklda. 9-rasmda "pastki" chastotalar guruhi uchun harmoniklarning susayishi ko'rsatilgan. 20 dB talab qilinadigan qiymat barcha holatlarda erishiladi, o'rtacha qiymat taxminan 27 dB ni tashkil qiladi. Eng yomon holatda, harmonik 24,2 dB tomonidan bostiriladi.

"Quyi" chastota guruhi filtri uchun hisoblangan qiymatlar "yuqori" chastota guruhi filtri uchun ham amalga oshiriladi.

Ikkala filtr ham bir xil sxemaga ega. Faqatgina farq yuqori va pastki chastotali guruhlar uchun filtrlarning kesish chastotalarida. R1 va C1 1-darajali yuqori o'tkazuvchan filtrni tashkil qiladi. Chunki sxemaning kirish qarshiligi ham R1 ga bog'liq, bu elementning qiymati juda kichik bo'lmasligi kerak; aks holda, mikrokontroller chiqishlari ortiqcha yuklanadi va kvadrat to'lqin shakli buziladi. Bunday holda, intermodulyatsiya buzilishidan kelib chiqadigan qo'shimcha chastotalar signalga qo'shiladi, bu signal-shovqin nisbatiga salbiy ta'sir qiladi.

Yuqori tartibli filtrlarning uzatish funksiyasini faqat passiv komponentlar yordamida olish mumkin emas.

Shunday qilib, 2-tartibli filtrda op-amp bo'lishi kerak. R1-1 va R1-2 rezistorlari yordamida faol filtrning daromadi 0,2 ga o'rnatiladi. Ko'rib turganingizdek, signal biroz zaiflashgan. Bu op-ampni ortiqcha yuklamaslik uchun kerak, chunki kvadrat to'lqin signalining asosiy sinusoidal harmonikasining eng yuqori amplitudasi kvadrat to'lqin signalining amplitudasidan oshib ketadi (Qarang: Furye seriyasi va 2-rasm). Qo'shimcha to'ldiruvchi kerakli chiqish darajasini sozlaydi. To'rtburchak signalning doimiy komponenti tufayli op-ampning ish nuqtasi Vcc / 2 darajasida o'rnatiladi (Shuningdek, Fourier seriyali va 2-rasmga qarang). Bunday holda, doimiy komponentni R1-1 / R1-2 kirish bo'linmasi bilan bartaraf etish mumkin emas. OS pallasini doimiy kuchlanish bilan ajratish uchun C3 kondansatörü ishlatiladi.

Analog filtrning har bir chiqishida mos ravishda yuqori va pastki chastotali guruhlarning signali hosil bo'ladi. Qo'shimcha qo'shimchada bu signallar qo'shiladi. Ushbu elektron elementda R4 va R5 rezistorlari yordamida umumiy signaldagi "pastki" va "yuqori" chastotalar va chiqish signali darajasi o'rtasidagi munosabatni o'rnatishingiz mumkin. Shunday qilib, chiqish amplitudasi turli mamlakatlardagi turli talablarga mos ravishda osongina sozlanishi mumkin.

Komponent qiymatlarini hisoblashda kondansatör qiymatlari odatdagidek o'zgarmas edi va qarshilik qiymatlari ularga muvofiq hisoblab chiqildi. Ushbu sxemada standart E12 seriyali kondansatörler va rezistorlar 10% tarqalishi bilan ishlatilgan.

Shaklda. 10-rasmda analog filtrlar va biriktiruvchining sxematik diagrammasi ko'rsatilgan:


Guruch. 10: Qo'shimcha qo'shimchali analog filtrlarning sxematik diagrammasi

C1-1 va C1-2 kondansatkichlari ikkita signalni Vcc/2 ish nuqtasida birlashtiradi. Ushbu elementlar uchun juda katta qiymatlarni tanlamaslik kerak, chunki ular past chastotali subharmoniklarni yo'q qilish uchun past chastotali filtr elementlari. Filtr kondansatörü C5 mos yozuvlar kuchlanish shovqinini yo'q qiladi. R6 teskari rezistoriga parallel ravishda ulangan qo'shimcha kondansatör C6 birinchi darajali yuqori o'tkazuvchan filtrni hosil qiladi. Eng past filtrni kesish chastotasi tanlangan bo'lsa, yuqori chastotali intermodulyatsiya aralashuvining qo'shimcha filtrlanishi chiqish signalining sifatini yaxshilaydi, ammo "yuqori" guruhning eng yuqori chastotalarining biroz susayishi bo'ladi. Ba'zi hollarda, 1633 Gts eng yuqori DTMF chastotasini yaratish kerak emas, chunki u faqat A-D xizmat belgilarini shakllantirish uchun ishlatiladi va signal-shovqin nisbati filtrni kesish chastotasini pasaytirish orqali yaxshilanishi mumkin. Shunday qilib, kesish chastotasini oshirish yuqori chastotali shovqin darajasining oshishiga olib keladi, lekin ayni paytda DTMF signalining eng yuqori chastotali komponentlariga salbiy ta'sir kamayadi.

4 DTMF uzatuvchi signallarini o'rganish natijalari

Quyidagi spektrogrammalar (11 va 12-rasm) turli chastotalarda DTMF transmitterining chiqish signallarini ko'rsatadi. Shaklda. 11-rasmda "1" belgisining amplituda spektri ko'rsatilgan. Uning uzatilishi uchun zarur bo'lgan chastotalar - 697 va 1207 Hz - mos ravishda -10,5 dB va -8,5 dB darajasida. 2091 va 3621 Gts chastotadagi harmoniklar deyarli 30 dB bilan bostiriladi. "D" belgisini uzatish uchun ikkita eng yuqori chastotalar hosil bo'ladi - 941 va 1633 Gts. Shakldan ko'rinib turibdiki. 12, past chastota darajasi -12 dB, yuqori chastota darajasi -11 dB. Tegishli harmonikalar 30 dB dan ortiq zaiflashadi. Shunday qilib, o'lchangan qiymatlar simulyatsiya natijalari va spetsifikatsiya talablariga mos keladi.


Guruch. 11: “1” belgisining amplituda spektri: 697 va 1207 Gts


Guruch. 12: “D” belgisining amplituda spektri: 941 va 1633 Gts

Ikki xil taymerdan foydalanganda hosil qilingan kvadrat to'lqin signallarining mutlaq chastota aniqligiga erishib bo'lmaydi; natija ikki chastotaning kombinatsiyasiga va ishlatiladigan taymerlar turiga bog'liq bo'ladi. Buning sababi - taymer uzilishlari to'qnashuvi. Shu bilan birga, ± 1,8% talab qilinadigan aniqlik katta marj bilan bajariladi.

Agar 8 bitli taymer va Timer Port taymer MCLK 1,048 MGts tizim chastotasida ishlatilsa, u holda "pastki" guruhning chastotalari 0,3% dan kam bo'lmagan aniqlik bilan hosil bo'ladi. "Yuqori" guruhning chastotalari uchun amalda 0,5% dan ko'p bo'lmagan og'ish olindi.

Faqat istisno bu DTMF belgisi "D" bo'lib, ular uchun eng yuqori chastotalar hosil bo'ladi. Natijada, bu kombinatsiyada "yuqori" guruhning chastotasi 1633 Hz -0,97% og'ish.

Ushbu istisnosiz, hatto 1633 Gts eng yuqori chastotasi ham 0,5% dan yuqori aniqlik bilan ishlab chiqariladi. Turli chastotalar uchun maksimal og'ishlar jadvalda keltirilgan:

Agar chastotalarni yaratish uchun Timer_A ishlatilsa, xato MCLK chastotasiga bog'liq bo'ladi:

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

5 Xulosa

Ushbu misol uchun dasturiy ta'minot juda oddiy va taxminan 300 baytni egallaydi, kichik hajmdagi RAM va ROMni talab qiladi. O'rnatilgan taymer moduli tufayli kerakli chastotalar protsessor yukini behuda sarf qilmasdan yuqori aniqlik bilan ishlab chiqariladi. Ishlab chiqarish uchun 8 bitli taymer va taymer/port ishlatiladigan konfiguratsiyada uzilish tartiblari protsessor resursining taxminan 12% ni egallaydi. Chastotalar Timer_A taymer tomonidan yaratilgan bo'lsa, uzilishlar tartiblarini qayta ishlash uchun CPU yuki 6% gacha kamayadi. Natijada, DTMF signallari uzatilayotganda boshqa vazifalar ishlayotgan bo'lishi mumkin yoki oqim sarfini kamaytirish uchun CPU kam quvvat rejimiga o'tkazilishi mumkin.

Kvadrat to'lqin signallari yordamida DTMF signallarini yaratish uchun tavsiflangan modulning yaxshi funksionalligi apparat sxemasi dizayni bilan ko'rsatilgan. Chunki Sxemada keng parametrlarga ega bo'lgan komponentlardan foydalanish mumkin, bunday yechimning narxi juda past. Barcha spetsifikatsiya talablari katta darajada qondiriladi, shuning uchun MSP430 ni boshqaruvchi boshqaruvchi sifatida ishlatadigan asboblarda alohida DTMF signal generator moduli talab qilinmaydi.

Agar ma'lum bir holatda qo'shimcha op-amp yordamida signal-shovqin nisbatini oshirish zarur bo'lsa, intermodulyatsiya buzilishini yanada bostirish uchun filtr qurilishi mumkin. Bunday qo'shimcha operatsion kuchaytirgich allaqachon DIL14 paketidagi to'rtta op-ampda mavjud.

6 havola

Bundesamt fur Post und Telekommunikation (Pochta va telekommunikatsiyalar federal idorasi): BAPT 223 ZV 5, Zulassungsvorschrift fur Endeinrichtungen zur Anschaltung va Wahlanschlusse (ausgenommen Notruf- und Durchwahlanschlusse) (ausgenommen Notruf- und Durchwahlanschlusse) uchun maxsus telefon tarmog'iga ulangan telefon tarmog'i uchun terminallar. xavfsizlik va qo'ng'iroq qilish talablari) / Deutschen Bundespost Telekom ISDN; Bundesministerium fur Post und Telekommunikation, Draft, Bonn, Aprel 1994 Papula: Mathematik fur Ingenieure 2 (muhandislar uchun matematika); Vieweg Verlag, Braunschweig 1990 Tietze / Schenk: Halbleiterschaltungstechnik; (Titze/Schenk, Semiconductor Circuit Engineering), 10-nashr; Springer Verlag, Berlin 1993 Lutz Bierl / Texas Instruments: MSP430 oilasi, oʻlchash qoʻllanmasi hisoboti, Texas Instruments, 2.1-son, 1997 yil yanvar, SLAAE10B Texas Instruments: MSP430 oilasi, arxitektura foydalanuvchi qoʻllanmasi va modul kutubxonasi, Texas1, SLA1960 modullari MSP430 oilasi, Software User's Guide, Texas Instruments, 1996 Texas Instruments: MSP430 Family, Assembly Language Tools User's Guide, Texas Instruments, 1996 Siwy, Robert: Systementwicklung einer Telekom-Applikation zum Senden und Empfangen-Sign SPControl D0F MSP430 mikrokontrolleri asosida raqamli signallarni qabul qilish va uzatish uchun telekommunikatsiya tizimi; Diplomarbeit, Fachhochschule Landshut, 1997 yil may

O'ziga xos xususiyatlar:

  • Impuls kengligi modulyatsiyasi (PWM) yordamida sinus to'lqinlarni yaratish
  • Turli xil sinus to'lqin signallarini bitta DTMF signaliga birlashtirish
  • Assembly va C tillarida manba kodlari
  • STK500 bilan ishlash uchun mo'ljallangan
  • Dastur kodi hajmi 260 bayt / doimiy jadval hajmi 128 bayt
  • Jadvalni aylantirish usulidan foydalanish

Kirish

Ushbu hujjat impuls kengligi modulyatsiyasi (PWM) birligi va statik RAMni o'z ichiga olgan har qanday AVR mikrokontrolleri yordamida DTMF signallarini (ikki tonnali ko'p chastotali signallar) ishlab chiqarish texnikasini tavsiflaydi. Ushbu signallar telefoniyada keng qo'llaniladi, ular telefon apparatining terish tugmalarini bosganingizda qayta ishlab chiqariladi. DTMF signalini to'g'ri ishlab chiqarish uchun ikkita chastotani bir-biriga joylashtirish kerak: past chastotali (fb) va yuqori chastotali (fa). 1-jadvalda turli tugmalar bosilganda DTMF ohanglarini hosil qilish uchun turli chastotalar qanday aralashtirilganligi ko'rsatilgan.

1-rasm - DTMF signal generatori sxemasi

1-jadval - Ohang signalini yaratish matritsasi

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

1-jadvalning satrlari past chastotali qiymatlarni, ustunlar esa yuqori chastotali qiymatlarni ko'rsatadi. Misol uchun, matritsa "5" tugmasini bosganingizda fb = 770 Hz va fa = 1336 Hz chastotalarini aralashtirish kerakligini ko'rsatadi. Turli chastotali ikkita sinusoidal signalning qo'shilishi natijasida DTMF signali hosil bo'ladi.

amplituda nisbati qayerda K=A b /A a manba signallari shartga javob berishi kerak

Ishlash printsipi

Impuls kengligi modulyatsiyasidan foydalanish haqida umumiy ma'lumotlarga qo'shimcha ravishda, impuls kengligi modulyatsiyasi sinusoidal signallarni yaratishga qanday imkon berishi quyida ko'rsatiladi. Keyingi paragraf turli chastotalarni olish uchun asosiy kommutatsiya chastotasidan qanday foydalanishni tavsiflaydi. Nazariy asoslarni ko'rib chiqqandan so'ng, DTMF signal generatorining o'zi tavsifi beriladi. Sinus to'lqinlarning paydo bo'lishi

Yuqori VH va past VL kuchlanish darajalarining davomiyligi nisbatiga qarab, PWM chiqishidagi o'rtacha qiymat o'zgaradi. Agar ikkala darajaning davomiyligi o'rtasidagi nisbat doimiy bo'lsa, natijada doimiy VAV kuchlanish darajasi hosil bo'ladi. 2-rasmda impuls kengligi modulyatsiyalangan signal ko'rsatilgan.


Shakl 2 - doimiy kuchlanish darajasini ishlab chiqarish

Kuchlanish darajasi quyidagi ifoda bilan aniqlanadi:

(3)

Sinusoidal signal impuls kengligi modulyatsiyasi natijasida hosil bo'lgan kuchlanishning o'rtacha qiymati har bir PWM siklida o'zgarishi sharti bilan yaratilishi mumkin. Yuqori va past darajalar o'rtasidagi munosabatlar sinus to'lqinining tegishli vaqtda kuchlanish darajasiga mos ravishda o'rnatilishi kerak. 3-rasmda bu jarayon tasvirlangan. PWM uchun manba ma'lumotlari uning har bir davri uchun hisoblab chiqiladi va konversiya jadvalida (TC) qayd etiladi.

3-rasmda asosiy sinus to'lqin chastotasi va namunalar soni o'rtasidagi bog'liqlik ham ko'rsatilgan. Namunalar soni (Nc) qanchalik ko'p bo'lsa, natijada olingan signalni modellashtirishning aniqligi shunchalik yuqori bo'ladi:

(4)

PWM chastotasi PWM ruxsatiga bog'liq. 8 bitli ruxsatda taymerning yakuniy qiymati (hisobning yuqori qismi) 0xFF (255). Chunki Taymer oldinga va orqaga hisoblaydi, keyin bu qiymat ikki barobarga oshirilishi kerak. Shuning uchun, PWM chastotasini f CK taymerining soat chastotasini 510 ga bo'lish yo'li bilan hisoblash mumkin. Shunday qilib, 8 MGts taymer chastotasi bilan, natijada PWM chastotasi 15,6 kHz bo'ladi.


3-rasm - PWM yordamida sinusoidal signalni yaratish

Sinus to'lqinining chastotasini o'zgartirish

Faraz qilaylik, sinusoidal namunalar qidiruv jadvalidan ketma-ket emas, birma-bir o'qiladi. Bunday holda, bir xil namuna olish tezligida ikki barobar chastotali signal hosil bo'ladi (4-rasmga qarang).


4-rasm - Olingan chastotani ikki baravar oshirish (XSW = 2)

O'xshashlik bo'yicha, agar siz har bir ikkinchi qiymatni emas, balki har uchinchi, to'rtinchi, beshinchi (mos ravishda qadam kengligi 3, 4, 5 ...) o'qisangiz va hokazo. diapazonda Nc chastotalarni hosil qilish mumkin. E'tibor bering, yuqori chastotalar uchun hosil bo'lgan to'lqin shakli sinusoidal bo'lmaydi. Biz konvertatsiya jadvaliga muvofiq qadam kengligini belgilaymiz XSW, Qayerda

(5)

Keyingi PWM davri uchun TPdagi joriy pozitsiyani hisoblash (taymer to'lib ketganda) ifoda (6) yordamida amalga oshiriladi. Joydagi yangi qiymat X LUT oldingi holatiga bog'liq X" LUT qadam kengligi ortishi bilan XSW

(6)

DTMF signalini olish uchun turli chastotalarni qo'shish

DTMF signali (1) va (2) iboralar yordamida yaratilishi mumkin. Arifmetik amallarning soddaligi uchun arifmetik amalni mantiqiy siljishlar bilan almashtirish uchun K koeffitsientining qiymati 0,75 ga teng qabul qilinadi. (6) ifodasini hisobga olgan holda, PWM boshqaruvining joriy qiymati quyidagi ifoda bilan hisoblanishi mumkin:

va buni hisobga olgan holda X LUTa=X" LUta + XSWa ,X LUTb=X" LUTb + XSWb, keling, nihoyat yozamiz

DTMF generatorini joriy qilish

Ushbu ilovada 8 bitli PWM chiqishi (OC1A) va har biri 7 bit (n) bilan belgilangan 128 sinus funksiyasi (Nc) namunalari bo'lgan jadval yordamida DTMF ohang generatorining qurilishi ko'rib chiqiladi. Quyidagi iboralar ushbu bog'liqlikni ko'rsatadi va shuningdek, qidiruv jadvali yozuvlarini qanday hisoblashni ko'rsatadi:

(9)

7 bitdan foydalanishning afzalligi shundaki, yuqori va past chastotali signal qiymatlarining yig'indisi bir bayt o'lchamda. DTMF ohanglarining to'liq to'plamini qo'llab-quvvatlash uchun 1-jadvaldagi har bir DTMF chastotasi uchun 8 ta qiymat hisoblanishi va qidiruv jadvaliga kiritilishi kerak.

Yuqori aniqlikka erishish uchun quyidagi yechim amalga oshirildi: 5 ifodasi yordamida hisoblangan qiymatlar faqat 5 baytni talab qiladi. Yaxlitlash xatolarini kamaytiradigan barcha 8 baytdan foydalanish uchun bu qiymat 8 ga ko'paytiriladi. Qidiruv jadvaliga ko'rsatgich xuddi shu tarzda yoziladi. Ammo bu holda qiymatdan 8 barobar ko'p saqlash uchun ikki bayt kerak bo'ladi. Bu shuni anglatadiki, bu baytlarni sinus to'lqin qiymatlariga ko'rsatgich sifatida ishlatishdan oldin 3 ta o'ngga siljish va radix Nc moduli operatsiyasi (Nc-1 ga mantiqiy ko'paytirish) bajarilishi kerak.


5-rasm - STK500 ga ulanish uchun modul diagrammasi

PWM signali OC1A (PD5) pinida ishlab chiqariladi. Qo'shimcha chiqish filtri signalning sinusoidal to'lqin shakliga mos kelishiga yordam beradi. PWM chastotasini pasaytirishda yaxshi natijaga erishish uchun yuqori chastotali filtrdan foydalanish kerak bo'lishi mumkin.

Klaviatura ulanishi 1-rasmda ko'rsatilgan. Klaviaturaning ishlashi shunday tashkil etilishi kerakki, bosilgan tugmani aniqlash mumkin bo'ladi. Buni quyidagi algoritm yordamida amalga oshirish mumkin:

  1. Bosilgan tugma satrini aniqlash
    • B portining past tartibli daftarini chiqish sifatida sozlang va jurnalni o'rnating. "0"
    • tortuvchi rezistorlar ulanishi bilan kirish sifatida B portining yuqori tetradasini sozlang
    • tugmasi bosilgan chiziq log bilan eng yuqori tetradning raqami sifatida aniqlanadi. "0"
  2. Bosilgan tugma ustunini aniqlash
    • B portining yuqori noutbukini chiqish sifatida sozlang va jurnalni o'rnating. "0"
    • tortuvchi rezistorlarni ulash orqali B portining past tartibli tetradasini kirish sifatida sozlang
    • tugmasi bosilgan ustun log bilan past tartibli tetradning raqami sifatida aniqlanadi. "0"

Eslatma: STK200 da rezistorlar PORTB ulagichi pinlari va BP5, PB6 va PB7 mikrokontroller pinlari o'rtasida ketma-ket ulanadi (STK200 diagrammasiga qarang). Agar klaviatura PORTB ulagichiga ulangan bo'lsa, bu muammolarga olib keladi.

6-rasmda bosilgan tugmani aniqlash uchun pastki dasturning ishlashi ko'rsatilgan. Bosilgan tugmachaga qarab, intervalning davomiyligi aniqlanadi. Uzilish tartibi ushbu qiymatdan ikkita DTM ton sinus to'lqinlari uchun PWM sozlamalarini hisoblash uchun foydalanadi. Uzilishlarni qayta ishlash tartibi 7 va 8-rasmlarda ko'rsatilgan.

Ushbu tartib keyingi PWM davri uchun taymer chiqishi bilan solishtirish uchun qiymatni hisoblab chiqadi. Uzilish tartibi birinchi navbatda qidiruv jadvalidagi keyingi namuna qiymatining o'rnini hisoblab chiqadi va u erda saqlangan qiymatni o'qiydi.

Qidiruv jadvalidagi namunaning pozitsiyasi impuls kengligi bilan belgilanadi va haqiqiy impuls kengligi hosil qilingan chastota bilan aniqlanadi.

Taymerni taqqoslash registriga yozilgan yakuniy qiymat formula (7) yordamida aniqlanadi, bu ikkala DTMF chastotasining namunaviy qiymatlarini hisobga oladi.


6-rasm - Asosiy dasturning blok diagrammasi

Ixtiro ma'lumotlarni uzatish uchun mo'ljallangan ikki tonli chastotali (DTMF) signallarni raqamli ishlab chiqarish sohasiga tegishli, masalan, telefoniya sohasida. Erishilgan texnik natija - bu ortiqcha elektron elementlarning sonini kamaytirish, iqtisodiy samaradorlikni oshirish. DTMF signallarini ishlab chiqarish usulini amalga oshiradigan DTMF signal generatori ikkita akkumulyatorli qo'shimchalar, ikkita ushlab turuvchi registrlar, ikkita saqlash moslamalari, yakuniy yig'uvchi, raqamli-analogli konvertor, DTMF signal kodlarini butun sonlar ketma-ketligiga o'zgartiruvchini o'z ichiga oladi. , sozlanishi bo'linish koeffitsienti bilan DTMF signal generatorining mos yozuvlar chastotasining bo'luvchisi, konvertor DTMF signal kodlarini bo'linish faktor kodiga aylantiradi. 2 s. va 3 ish haqi f-ly, 2 kasal.

Ixtiro ma'lumotlarni uzatish uchun mo'ljallangan raqamli usullar bilan DTMF (ikki ohangli chastota) signallarini ishlab chiqarish usullariga tegishli bo'lib, masalan, ohangli chastotali terish paytida telefoniya sohasida.Texnik mohiyati va erishilgan natija da'vo qilinganga eng yaqin. usul DTMF signallarini ishlab chiqarish usuli bo'lib, 04/04/89 yildagi 5034977-sonli AQSh patentida keltirilgan. 07.23.91, M. sinf. 5 N 04 M 1/00. DTMF signallarini yaratishning ma'lum usuli DTMF signal komponentlarining birinchi va ikkinchi chastotalariga mos keladigan birinchi va ikkinchi namuna olish burchagi kodlarini tanlashni, birinchi va ikkinchi namuna olish burchagi kodlarini mos ravishda davriy ravishda alohida yig'ishni o'z ichiga oladi. sobit bo'lganlar, soatli namuna olish chastotasiga mos keladigan davr bilan, kümülatif yig'ishning birinchi va ikkinchi natijalari, tegishli diskret jadvallarning manzilda joylashgan kataklarida saqlanadigan DTMF signali komponentlarining birinchi va ikkinchi diskret qiymatlarini olish. DTMF signali komponentlarining qiymatlari, tegishli jadvallardan namuna olish burchagi kodlarining yig'indisi natijalariga mos keladigan manzillarda o'qish, DTMF signali komponentlarining birinchi va ikkinchi diskret qiymatlarini yig'ish orqali DTMF signalining qiymatiga mos keladigan uchinchi diskret qiymatni oling.DTMF signallarini yaratishning ma'lum usuli quyidagicha: DTMF signalining kodiga qarab, birinchi navbatda DTMF signallarining kodlarini konvertatsiya qilish orqali birinchi kod tanlanadi. chastota bilan signalning namuna olish burchagini aniqlaydi , yuqori chastotalar guruhiga mos keladigan - ustunlar va DTMF signal kodlarining ikkinchi konvertatsiyasi orqali signalning namuna olish burchagini chastotaga mos keladigan chastota bilan aniqlaydigan ikkinchi kod tanlanadi. past chastotalar guruhi - qatorlar, davriy ravishda, namuna olish takt chastotasiga to'g'ri keladigan davr bilan, birinchi tanlama burchagi kodi mos keladigan yig'uvchi qo'shimchada jamlanadi va tegishli registrda qayd etiladi, uning chiqishi natijasi, qiymati faqat o'qish uchun mo'ljallangan tegishli xotirada saqlanadigan jadval katakchasining manziliga mos keladi va DTMF signalining yuqori chastotasini bir xil tarzda, davriy ravishda aniqlaydigan sinuslarning tegishli diskret qiymatlari joylashgan. namuna olish takt chastotasiga mos keladigan davr, ikkinchi tanlama burchagi kodi mos keladigan yig'uvchi qo'shimchada jamlanadi va tegishli registrda qayd etiladi, uning chiqishi natijasi bo'lib, uning qiymati saqlangan jadval katakchasi manziliga mos keladi. mos keladigan faqat o'qish uchun mo'ljallangan xotira qurilmasida va DTMF signalining pastki chastotasini aniqlaydigan sinuslarning tegishli diskret qiymatlari, DTMF signalining yuqori va pastki chastotalarini aniqlaydigan sinuslarning diskret qiymatlari yig'iladi. DTMF signalining diskret qiymatini aniqlab, yakuniy qo'shimchada yuqoriga ko'tariladi va raqamli-analogga aylantirish orqali chiqishga etkazib beriladi, DTMF signalining kirish kodiga mos keladigan qadam-sinus DTMF signalini hosil qiladi. Ma'lum bo'lgan usul samarasiz bo'lib, bu uning texnik-iqtisodiy ko'rsatkichlari va texnologik ko'rsatkichlarining pastligi bilan bog'liq.DTMF signallari uchun zarur bo'lgan kerakli parametrlarga erishish uchun usulni amalga oshirishda texnik-iqtisodiy ko'rsatkichlar zarur xarajatlar bilan belgilanadi. Ma'lum bo'lgan usulda chastota hosil qilishning aniqligi namuna olish burchagiga mos keladigan kodning bit chuqurligiga bog'liq bo'lib, bu yig'uvchi qo'shimchaning katta bit kengligini talab qiladi, bu usulni oddiy apparat bilan amalga oshirishni qiyinlashtiradi. Ya'ni, ma'lum usulda tanlab olish burchagi kodi K = (F/F t)32..., (1.1) ifoda bilan aniqlanadi, bu erda K - tanlab olish burchagiga mos keladigan kod; F - hosil qilingan chastota; F t Ko'rinib turibdiki, hosil bo'lgan chastotaning aniqligi hosil bo'lgan chastota va namuna olish chastotasining nisbatiga aniq bog'liq.Yaratilgan chastotaning kerakli aniqligiga erishish uchun, ya'ni 1,5% dan kam bo'lmagan, aniqki, da o'nli nuqtadan keyin kamida ikkita muhim raqam talab qilinadi, bu kamida 8 bit past chastotalar uchun bit chuqurligi va yuqori chastotalar uchun kamida 9 bit va yig'indisi uchun mos ravishda kamida 12 bit bo'lgan ma'lumotlarni taqdim etishni talab qiladi , bu ma'lum usulni amalga oshiradigan qurilmalarning tarkibiy elementlari sonining ko'payishiga olib keladi. Ma'lum usulni amalga oshirish uchun ma'lum qurilmalar, ya'ni qo'shimchalar, registrlar va doimiy saqlash qurilmalari 4 va 8 bit kenglikdagi kirish/chiqishlarga ega. Shuning uchun, yuqori bit sig'imi bilan, bir xil funktsional qurilmalarni amalga oshirishda qo'shimcha texnik va iqtisodiy xarajatlar talab etiladi. Bundan tashqari, ma'lum usulda o'nli kasrlar sonini kamaytirish chastota xatosining ruxsat etilganidan oshib ketishiga olib keladi.Texnologik ko'rsatkichlar usulni amalga oshirishda ko'p qirralilik va unifikatsiya bilan belgilanadi, masalan, texnologiyaning zamonaviy darajasi, bu o'z ichiga oladi. materiallar, komponentlar sarfini kamaytirish va qurilmalarning ko'p qirraliligini oshirish, mikrokontrollerlardan foydalanishni talab qiladi. Telefoniya va telemetriya o'lchovlarida qo'llaniladigan keng tarqalgan mikrokontrollerlar 8 bitli ma'lumotlar va 8 bitli arifmetik-mantiqiy birlikdan foydalanadilar, bu ma'lum usulni amalga oshirishda 8 bitdan ortiq kenglikdagi ma'lumotlarni yig'ish va tahlil qilish bilan bog'liq qo'shimcha hisoblash operatsiyalarini talab qiladi. buyruqlar sonini va shunga mos ravishda mikrokontrollerning taktli chastotasini, shuningdek mikrokontrollerning RAM miqdorini oshiradigan uzatish signali, bu DTMF ishlab chiqarishning ma'lum usulidan foydalanadigan qurilmalar narxining oshishiga olib keladi. signallari. Ushbu xulosa Atmel, Microchip tnc va boshqalar tomonidan ishlab chiqarilgan mikrokontrollerlar asosidagi ohangli terishda ma'lum usuldan foydalanishni tahlil qilishda berilgan. Shunday qilib, ma'lum usul printsipial jihatdan samarasizdir, bu past texnik va iqtisodiy ko'rsatkichlar bilan bog'liq bo'lib, o'sish bilan ifodalanadi. material iste'moli, energiya sarfi va past texnologik ko'rsatkichlar , chunki u usulni qo'llashda cheklovlarga ega, shu jumladan keng qo'llaniladigan mikrokontrollerlarning bir qismi sifatida, bu mikrokontrollerlardan talab qilinadigan texnik xususiyatlarning oshishi bilan ifodalanadi, bu ularning ko'p qirraliligini pasaytiradi. da'vo qilingan DTMF signal generatoriga erishilgan natija DTMF generator signallari bo'lib, 04/04/89 yildagi 5034977-sonli AQSh patentida keltirilgan. 07.23.91, M. sinf. 5 N 04 M 1/00. Maʼlum boʻlgan DTMF signal generatoriga quyidagilar kiradi: birinchi yigʻuvchi, birinchi latch registr, birinchi xotira qurilmasi, ikkinchi yigʻuvchi qoʻshimcha, ikkinchi latch registr, ikkinchi xotira qurilmasi, yakuniy yigʻuvchi, a. raqamli-analogli konvertor, bunda birinchi yig'uvchi qo'shimchaning chiqishi birinchi latch registrining kirishiga ulanadi, birinchi latch registrining chiqishi birinchi xotira qurilmasining kirishiga, shuningdek ulardan biriga ulanadi. birinchi yig'uvchi qo'shimchaning kirishlari, birinchi xotira qurilmasining chiqishi oxirgi qo'shimchaning kirishlaridan biriga, ikkinchi yig'uvchining chiqishi ikkinchi mandal registrining kirishiga, ikkinchisining chiqishiga ulanadi. tutuvchi registr ikkinchi saqlash moslamasining kirishiga, shuningdek, ikkinchi yig‘uvchining kirishlaridan biriga, ikkinchi saqlash moslamasining chiqishi yakuniy yig‘uvchining boshqa kirishiga, yakuniy yig‘uvchining chiqishiga ulanadi. Raqamli-analogli konvertorning kirishiga ulanadi, uning chiqishi DTMF signal generatorining chiqishidir.Ma'lumki, generatorda DTMF signal kodlarini yuqori chastotalarga mos keladigan namuna olish burchaklarining mos keladigan kodlariga birinchi konvertor ham kiradi. DTMF signalining ikkinchi konvertori DTMF signal kodlarining DTMF signalining pastki chastotalariga mos keladigan namuna olish burchaklarining mos keladigan kodlariga, bunda DTMF signal kodlarining birinchi konvertorining chiqishi birinchi yig'uvchi qo'shimchaning boshqa kirishiga ulanadi; ikkinchi DTMF signal kodini o'zgartirgichning chiqishi ikkinchi akkumulyatorli qo'shimchaning boshqa kirishiga ulangan, birinchi va ikkinchi DTMF signal kodini o'zgartirgichlarning kirishlari DTMF signal generatorining kirishlari va birinchi va ikkinchi qulflashning taktli kirishlari. registrlar bir-biriga bog'langan va DTMF signal generatorining namuna olish soat chastotasining kirishidir. Ma'lum bo'lgan DTMF signal generatori turli xil, shuningdek, bir xil funktsional elementlarning haddan tashqari bit sig'imi bilan bog'liq bo'lgan elektron elementlarning haddan tashqari soni tufayli past texnik natija beradi. Bundan tashqari, ma'lum bo'lgan texnik echimni amalga oshirish alohida integral mikrosxema shaklida samarali bo'lishi mumkin, ammo bu ixtisoslashtirilgan ishlab chiqarishni tashkil qilishni talab qiladi, ammo DTMF signal generatorlari ko'p funktsiyali qurilmalarning bir qismi ekanligini hisobga olsak (ilg'or imkoniyatlarga ega telefon apparatlari, telefon liniyalari orqali telemetrik ma'lumotlarni uzatish qurilmalari va boshqalar) va boshqalar), hozirda universal mikrokontrollerlar asosida amalga oshirilayotgan, individual DTMF signal mikrosxemalarini ishlab chiqarish iqtisodiy jihatdan samarasizdir.Taklif etilayotgan texnik yechimning asosini usul yaratish vazifasi tashkil etadi. DTMF signal generatoridan foydalangan holda DTMF signallarini ishlab chiqarish uchun, bunda operatsiyalar shartlari va ketma-ketligini o'zgartirib, shunga o'xshash operatsiyalarning bit sig'imi, yuqori texnologik ko'rsatkichlarning pasayishi hisobiga yuqori texnik-iqtisodiy ko'rsatkichlarga ega bo'lgan usul amalga oshiriladi. usulni amalga oshirish, oddiy apparat bilan sxemani loyihalashda ham, takrorlanishi bilan bog'liq bo'lgan ko'p funksiyali mikrokontrollerning bir qismi sifatida, bir xil funktsional elementlarni amalga oshirishda.Asosiy texnik yechim sifatida DTMF signal generatorini yaratish vazifasi qo'yildi. yangi elementlarni kiritish va yangi ulanishlarni amalga oshirish orqali ortiqcha zanjir elementlari sonini kamaytirish bilan bog'liq texnik natija oshiriladi va shunga mos ravishda taklif etilayotgan texnik yechimni keng tarqalgan vositalar yordamida amalga oshirish imkoniyati bilan bog'liq iqtisodiy samaradorlik oshiriladi. DTMF signallarini yaratishning ma'lum usulida, shu jumladan DTMF signali komponentlarining birinchi va ikkinchi chastotalariga mos keladigan tanlab olish burchaklarining birinchi va ikkinchi kodlarini tanlash, birinchi va ikkinchi kodlarning yig'indisi. Namuna olish burchaklari, mos ravishda, davriy ravishda, namuna olish takt chastotasiga mos keladigan davr bilan, yig'indisining birinchi va ikkinchi natijalari, manzilning joylashgan kataklarida saqlanadigan DTMF signal komponentlarining birinchi va ikkinchi diskret qiymatlarini olish. DTMF signal komponentlarining diskret qiymatlarining mos keladigan jadvallarini, mos keladigan jadvallardan namuna olish burchak kodlarining yig'indisi natijalariga mos keladigan manzillarda o'qish, DTMF signal komponentlarining birinchi va ikkinchi diskret qiymatlarini yig'ish orqali DTMF signalining qiymatiga mos keladigan uchinchi diskret qiymatni oling, yangilik shundaki, DTMF signal komponentlarining birinchi va ikkinchi diskret qiymatlarini olish DTMF diskret qiymatlarining tegishli jadvallarining manzilli kataklarida saqlanadi. signal komponentlari mos ravishda butun sonlarning birinchi va ikkinchi ketma-ketliklarining yig'indisi natijalariga mos keladigan manzillarga mos keladigan jadvallardan o'qish orqali amalga oshiriladi, ularning o'rtacha qiymati komponentlariga mos keladigan tanlama burchaklarining kodlariga mos keladi. DTMF signali. Bundan tashqari, jami yig'indining natijasini tashkil etuvchi butun sonlar ketma-ketligining o'rtacha qiymati ushbu raqamlarning o'rtacha arifmetik qiymati bo'lishi mumkin.Bundan tashqari, yig'indining birinchi va ikkinchi natijalarini davriy qayd etish davriga mos keladigan davr bilan bo'lishi mumkin. Turli DTMF signallari uchun har xil bo'lgan namuna olish takt chastotasi.Qo'yilgan muammo shu bilan ham hal qilinadiki, ma'lum DTMF signal generatorida, jumladan, birinchi yig'uvchi qo'shimcha, birinchi latch registr, birinchi xotira qurilmasi, ikkinchi yig'uvchi qo'shimchalar. , ikkinchi latch registr, ikkinchi xotira qurilmasi, yakuniy qo'shimcha qurilma, raqamli-analogli konvertor va birinchi yig'uvchi qo'shimchaning chiqishi birinchi latch registrining kirishiga ulangan, birinchi latch registrining chiqishi ulangan. birinchi xotira qurilmasining kirishiga, shuningdek, birinchi yig'uvchi qo'shimchaning kirishlaridan biriga birinchi xotira qurilmasining chiqishi yakuniy qo'shimchaning kirishlaridan biriga ulanadi, ikkinchi yig'uvchining chiqishi ikkinchi latch registrining kirishiga ulangan, ikkinchi latch registrining chiqishi ikkinchi saqlash moslamasining kirishiga, shuningdek ikkinchi yig'uvchi qo'shimchaning kirishlaridan biriga, ikkinchi saqlash moslamasining chiqishiga ulangan. yakuniy qo'shimchaning boshqa kirishiga ulangan, yakuniy qo'shimchaning chiqishi raqamli-analogli konvertorning kirishiga ulangan, uning chiqishi DTMF signal generatorining chiqishi bo'lgan, yangi, Ixtiroga ko'ra, DTMF signal generatori qo'shimcha ravishda DTMF signal kodlarini butun sonlar ketma-ketligiga o'tkazgichni, sozlanishi bo'linish koeffitsientiga ega DTMF signal generatorining mos yozuvlar chastotasini ajratuvchisini, DTMF signal kodlarini bo'linish koeffitsienti kodiga o'tkazgichni va birinchisini o'z ichiga oladi. Butun sonlar ketma-ketligidagi DTMF signal kodlari konvertorining chiqishi birinchi yigʻuvchi qoʻshimchaning boshqa kirishiga, butun sonlar ketma-ketligidagi DTMF signal kodlari konvertorining ikkinchi chiqishi ikkinchi yigʻuvchi qoʻshimchaning boshqa kirishiga ulanadi; sozlanishi bo'linish koeffitsienti bo'lgan DTMF signal generatorining asosiy chastota bo'luvchisining chiqishi butun sonlar ketma-ketligida DTMF signal kodini o'zgartiruvchining taktli kirishiga, shuningdek, birinchi mandal registrining soat kiritishiga va soatga ulanadi. ikkinchi mandal registrining kiritilishi, DTMF signal kodini o'zgartiruvchining bo'linish koeffitsienti kodiga chiqishi DTMF signal generatorining asosiy chastota bo'luvchisining bo'linish koeffitsientini o'rnatish kiritishiga, asosiy chastota bo'luvchining kirishiga ulanadi. Sozlanishi mumkin bo'linish koeffitsienti bo'lgan DTMF signal generatori DTMF signal generatorining mos yozuvlar chastotasini kiritishdir, DTMF signal kodlari konvertorining bo'linish koeffitsienti kodiga kirishi DTMF signal kodlari konvertorining kirishiga ketma-ketlik bilan ulanadi. butun sonlar va DTMF signal generatorining kirishidir. Bundan tashqari, DTMF signal kodlarini butun sonlar ketma-ketligiga o'zgartiruvchi boshqariladigan dasturlashtiriladigan xotira qurilmasi ko'rinishida amalga oshirilishi mumkin, uning xotirasi DTMF signallari soniga mos keladigan, xotira katakchalaridan iborat xotira maydonlaridan iborat. butun sonlar ketma-ketligining uzunligi, xotira kataklarining yarmida butun sonlarning birinchi ketma-ketligiga tegishli raqamni, ikkinchi yarmi esa mos ravishda boshqa butun sonlar ketma-ketligi bilan bog'liq bo'lgan raqamni saqlaydigan tarzda yaratilgan xotira kataklari. mos keladigan yig'uvchi qo'shimchalarning shartlari bo'lib, dasturlashtiriladigan xotira qurilmasini boshqarish alohida xotira maydoni va alohida xotira katakchasini tanlashni boshqarish uchun tuzilgan.DTMF signallarini ishlab chiqarish usulining yangi xususiyatlari va DTMF signal generatori ma'lum. ushbu ob'ektlarning xususiyatlari, ob'ektlarning yangi texnik xususiyatlarini beradi va bu xususiyatlar natijasida yangi zarur texnik natija ta'minlanadi.. Belgilar majmui o'rtasidagi sabab-oqibat munosabatlari Taklif etilayotgan usul va erishilgan texnik natijadir. quyidagicha izohlanadi.Taklif etilayotgan texnik yechimning mohiyatini ochish uchun quyidagi hisob-kitoblar qulay bo‘ladi: y(P)=sin(n) (1.2), bunda y(P) sinus funksiyaning diskret qiymati;=wT =27F/Fr (1.3) - radyanlarda o'lchangan namuna olish burchagi; n - namunaning seriya raqami - namuna; F t = F OSC / kd - namuna olish chastotasi, bu erda F OSC - qurilmaning sozlash chastotasi; kd - sozlanishi bo'linish koeffitsienti.U holda = 2FC D / F O S C . (1.4) Ma'lumki, sinus funksiyasi davriy bo'lib, davriy 2. Namuna olish burchagini radianlardan nisbiy birliklarga aylantirish va tanlama burchak kodini olish uchun biz butun davrni m qismga ajratamiz, bu erda m ikkilikdir. butun son. Shunday qilib, biz davrning bir minimal diskret qismini olamiz: = 2/m. (1.5) Namuna olish burchagi kodi - davrning bir qismiga mos keladigan tanlama burchagining nisbiy qiymati, ya'ni K=/=2F/F t: 2P/m=Fm/F t.(1.6) Masalan, 1477 Gts va 697 Gts hosil qilingan chastotalar uchun (DTMF signal kodiga mos keladi "3"), m = 64 va takt chastotasi F t = 32768 Gts K 697 = 1,36; K l477 = 2,88. Shubhasiz, ikkilik uchun Namuna olish burchagi kodini ko'rsatish K 697 =1,36 V, mos ravishda, 136 uchun 8 bit (1281+640+320+160+81+40+20+10) va K 1477 =2,88 V, mos ravishda 288 uchun 9 bit kerak ( 2561+1280+640+321+ 160+80+40+ 20+10).Shu bilan birga, ikkilik ko'rinishda yig'indisi uchun mos ravishda 12 bit talab qilinadi, bu ma'lum bo'lganlarning yuqorida tavsiflangan kamchiliklarini aniqladi. yechim. Taklif etilayotgan texnik yechim, masalan, 1,36 raqamini 1 va 2 butun sonlar ketma-ketligining o'rtacha qiymati sifatida belgilaydi, ya'ni 1,36=(1x+2y)/(x+y), bunda x va y raqamlar soni 1 va 2, mos ravishda, davriy davr bilan takrorlanadigan (x+y) Namuna olish burchagi kodining qiymati C butun son qismidan va kasrdan iborat, ya'ni. masalan, 1,36=1+0,36. (1.7) = K / C (1.7) ifodasiga muvofiq bunday almashtirishning nisbiy aniqligi namuna olish burchagi kod qiymatining butun qismining ortishi bilan ortadi. Masalan, ishlab chiqarilgan chastotasi 697 Hz, m = 64 va takt chastotasi F t = 32768 Gts uchun K 697 = 1.36 ni 1 va 2 raqamlari qiymatlari bilan almashtirishda xatolik mos ravishda 36 va 32% ni tashkil qiladi. Shu bilan birga, agar siz m = 256 qiymatini oshirsangiz, K 697 = 5.45 ni 5 va 6 raqamlari qiymatlari bilan almashtirish xatosi mos ravishda 9 va 10% ga kamayadi. hosil qilingan chastota xatosi, masalan, takrorlash davrida K 697 = 5,45 ni 5 va 6 raqamlari qiymatlari bilan almashtirganda, 16 ga teng, 5,45=(5x+6y)/(x+y), bu erda ( x+y)=16. Tenglamani yechib, x=9, y=7, ya’ni. o'n olti jami yig'indi amallaridan, 5 hadi to'qqiz marta yig'iladi va 6 hadi yetti marta yig'iladi, aslida K 697 = 5,4375, bu qiymatni m = 256, F t = 32768 Gts ga (1,6) ifodaga almashtirib, biz aniqlaymiz hosil qilingan chastotaning haqiqiy hisoblangan qiymati F = 696 Hz, xatolik esa 0,1% bo'lib qoldi.Shunday qilib, o'rtacha qiymati mos keladigan tanlama burchaklariga mos keladigan butun sonlar ketma-ketligini yig'indisi yuqori texnik va iqtisodiy ko'rsatkichlarga erishishga imkon beradi. Yuqoridagi iboralarning tarkibiy qismlarini o'zgartirish qobiliyati tufayli jamlash operatsiyalarining bit sig'imini kamaytirish va shunga mos ravishda tavsiya etilgan usulni amalga oshiradigan qurilmalarning bit sig'imini kamaytirish orqali ko'rsatkichlar, bu usulni amalga oshirishda apparat va energiya xarajatlarini kamaytirishga olib keladi. , va texnik talablar kamayganligi sababli koʻp funksiyali qurilmalarda qoʻllanilganda taklif etilayotgan usulning yuqori texnologik koʻrsatkichlarini taʼminlash.Toʻplam oʻrtasidagi sabab-taʼsir munosabatlari Taklif etilayotgan texnik yechim va erishilgan texnik natijaning xususiyatlari quyidagicha izohlanadi. DTMF signal generatorining yuqori texnik natijasi butun sonlar ketma-ketligiga DTMF signal kodini o'zgartiruvchining yangi elementlarini, sozlanishi bo'linish koeffitsientiga ega DTMF signal generatorining mos yozuvlar chastotasini ajratuvchisini, DTMF signal kodini o'zgartiruvchini ajratuvchi koeffitsientga kiritish orqali ta'minlanadi. bir xil bit chuqurligiga ega, 8-bitdan oshmaydigan sxema elementlari tomonidan usulni amalga oshirishni ta'minlaydigan kod, shu bilan birga bir nechta muammolarni hal qilish uchun zarur bo'lgan elementlarning ortiqcha miqdori yo'q, masalan, jami yig'ish natijasini yozish uchun ham, tegishli saqlash moslamasiga murojaat qilish uchun bitta mikrosxema yoki mikroprotsessorli versiyada umumiy foydalanish mumkin bo'lgan vositalar yordamida amalga oshirilishi mumkin bo'lgan 8 bitli registrdan ortiq amalga oshirilmaydigan bir xil miqdordagi bitlar ishlatiladi. xotira hujayrasi. Bundan tashqari, akkumulyativ qo'shimchalarni amalga oshirish bir xil bit chuqurlikdagi bir xil qurilmalar shaklida, 4 bitli qo'shimchalar bilan ishlaydigan umumiy foydalanish mumkin bo'lgan yig'uvchi mikrosxemalar shaklida amalga oshirilishi mumkin.Albatta, raqamlar va , shunga ko'ra, yuqorida tavsiflangan butun sonlar ketma-ketligini tashkil etuvchi qurilmalar, ularning yig'indisi mos keladigan tanlama burchak kodlarini aniqlaydi, boshqa bit chuqurligiga ega bo'lishi mumkin, ammo belgilangan maqsadlarni bajarish nuqtai nazaridan eng maqbul bo'lishi mumkin. Taklif etilayotgan yechim 4-bitli raqamlardir.Bundan tashqari, taklif etilayotgan texnik yechimni mikrokontrollerlar tarkibiga kiritishda ham yuqori texnik natija taʼminlanadi, bunda tizim mikrokontrolleri buyruqlari 4-bitli raqamlar bilan ishlaydigan buyruqlarni – nibblesni oʻz ichiga oladi. DTMF signal generatorining taklif etilayotgan texnik yechimi kontaktlarning zanglashiga olib keladigan elementlar sonini kamaytirish bilan bog'liq yuqori texnik natijalarga erishishga imkon beradi, shuningdek DTMF signal generatorini umumiy foydalanish mumkin bo'lgan uskuna sifatida va ko'p funktsiyali mikrokontrollerlarning bir qismi sifatida amalga oshirishda ko'p qirralilikni ta'minlaydi. texnik yechimning yuqori iqtisodiy samaradorligi.Ixtiro chizmada ko'rsatilgan, bu erda 1-rasmda DTMF signallarini ishlab chiqarish usulini amalga oshiradigan DTMF signal generatori funktsional ko'rsatilgan.DTMF signal generatori ketma-ketlik butun sonlarida DTMF signal kodlarining 1-konvertorini o'z ichiga oladi. , sozlanishi bo'linish koeffitsienti bilan DTMF signal generatorining mos yozuvlar chastotasining bo'luvchisi 2, DTMF signal kodlarining bo'linish koeffitsienti kodiga o'tkazgich 3, birinchi yig'uvchi qo'shimcha 4, birinchi mandal registr 5, birinchi xotira qurilmasi 6, ikkinchi xotira qurilmasi 7, ikkinchi latch registr 8, ikkinchi yig'uvchi qo'shimcha 10, yakuniy yig'uvchi 10, raqamli-analog konvertor 11. DTMF signal generatorining ishlashi DTMF signallarini ishlab chiqarish usulini amalga oshirish misolida ko'rsatilgan. iboralar (1.4, 1.6) va texnik ma'lumotlar bo'yicha, xususan, tavsiya etilgan usul amalga oshiriladigan qurilmani sozlash chastotasi, namuna olish burchaklarining tegishli kodlarini va 2 bo'linish uchun bo'linish koeffitsientlarini aniqlaydigan butun sonlar ketma-ketligi hisoblanadi. DTMF signal kodlarining 1-konvertorining xotira maydonlarining tegishli kataklarida butun sonlar ketma-ketligida va DTMF signal kodlarining 3-konvertorining bo'linishga bo'linishiga yoziladigan sozlanishi bo'linish koeffitsientiga ega DTMF signal generatorining mos yozuvlar chastotasi. koeffitsient kodlari, tegishli sinus funktsiyalarining diskret qiymatlari ham oldindan hisoblab chiqiladi, ularning soni m diskretlar soni bilan belgilanadi va DTMF signalini yaratishda mos keladigan 6 va 7 xotiralarga yoziladi. generator kirishlari bo'lgan 1-konvertor va 3-konvertorning kirishlari, DTMF signalining bir muncha vaqt ta'sirida hosil bo'lgan DTMF signalining kodi o'rnatiladi, 3-konvertorning chiqishida bo'linish koeffitsientini aniqlaydigan kod o'rnatiladi. 2-bo'luvchi uchun, 2-bo'luvchining chiqishida namuna olish takt chastotasi davriy ravishda o'rnatiladi, namuna olish takt chastotasiga mos keladigan davr bilan 1-konvertorning birinchi chiqishidan boshlab butun sonlarning birinchi qatoriga kiritilgan ikkilik raqamlar paydo bo'ladi. birinchi yig'uvchi qo'shimchaning kirishiga 4, konvertorning 1 ikkinchi chiqishidan esa DTMF signalining komponentlariga mos keladigan butun sonlarning ikkinchi qatoriga kiritilgan ikkilik raqamlar ikkinchi akkumulyatorning kirishiga beriladi. to'plovchi 9, jamlovchi yig'ish natijalari to'plovchi yig'uvchilarning chiqishlaridan tegishli latch registrlarining 5 va 8 kirishlariga, 5 va 8 latch registrlarining chiqishlaridan, jamlovchi yig'ish natijalari, Namuna olish takt chastotasiga to'g'ri keladigan davr sinuslarning diskret qiymatlari manzillarini o'rnatgan holda tegishli akkumulyatorlar 4 va 9 ning boshqa kirishlariga, shuningdek mos keladigan saqlash moslamalarining 6 va 7 kirishlariga yuboriladi. DTMF signalining mos keladigan komponentlari, saqlash moslamalari 6 va 7 chiqishlaridan DTMF signalining tegishli komponentlarining diskret qiymatlari yakuniy qo'shimcha 10 ning mos keladigan kirishlariga beriladi, ularning chiqishida diskret ikkilik DTMF signali hosil bo'lib, u raqamli-analogli konvertorning 11 kirishiga beriladi, uning chiqishi DTMF signalining kirish kodiga mos keladigan pog'onali sinusoidal DTMF signalini hosil qiladi. DTMF signal kodlarini butun sonlar ketma-ketligiga o'zgartiruvchi 1 (1-rasm) 2-rasmda ko'rsatilgan shaklda amalga oshirilishi mumkin, bu erda DTMF signal kodlarini butun sonlar ketma-ketligiga o'zgartiruvchi boshqaruv moslamasi 12, dasturlashtiriladigan xotirani o'z ichiga oladi. qurilma 13. DTMF signal generatorining ishlashi tasvirlangan Quyida taklif qilingan usulni telefon ovozli chastotali teruvchida amalga oshirishning o'ziga xos misoli keltirilgan.. Ilgari iboralar (1.4, 1.6) va texnik ma'lumotlarga asoslanib, butun sonlar ketma-ketligi berilgan. sozlanishi bo'linish nisbati bilan DTMF signal generatorining mos yozuvlar chastotasining 2-bo'luvchisi uchun mos keladigan namuna olish burchagi kodlari va bo'linish koeffitsienti kodlarini aniqlaydigan hisoblangan. Usulni amalga oshirish bir xil turdagi hisob-kitoblarni o'z ichiga olganligini hisobga olsak, ishni tasvirlash uchun aniq misolda ohangli puls terish vositasining bir qismi sifatida "7" tugmachasini bosishga mos keladigan DTMF signalini yaratish usulini amalga oshirish ko'rsatilgan. Telefon texnologiyasida eng keng tarqalgan kvarts chastotasi, ya'ni F OSC =3579545 Hz, generatorning mos yozuvlar chastotasi sifatida o'rnatiladi. "7" tugmachasini bosish yuqori (ustunlar) chastotasi 1209 Gts va pastki (qatorlar) chastotasi 852 Gts bo'lgan DTMF signaliga mos keladi. DTMF signali bir vaqtning o'zida ikkita chastotani uzatganligi sababli, bo'linish koeffitsientlari kattaroq - yuqori chastotalar uchun hisoblab chiqiladi, shunda (1.6) ifodaga muvofiq mos keladigan tanlama burchagi kodi maksimal qiymatga - 16 ga yaqin bo'ladi, bu ko'pi bilan amalga oshiriladi. 4 bitli ma'lumotlar. Shunday qilib, F OSC = 3579545 Gts bilan sinuslarning diskret qiymatlari soni m = 128, sozlanishi bo'linish koeffitsienti K D bo'lgan DTMF signal generatorining mos yozuvlar chastotasining 2-bo'linuvchisi uchun bo'linish koeffitsientining hisoblangan qiymatlari = 240 = 460, yuqori chastota uchun mos keladigan namuna olish burchagi kodlari K 1209 /852 =10,376, pastki chastota uchun K 852/1209 =7,312.Ixtiroga ko'ra, biz namuna olish burchagi kodlarini mos ravishda butun sonlar ketma-ketligi bilan almashtiramiz. 10/11 va 7/8.10.375 = (10x+11y)/(x+y), aslida esa K 1209 / 852 = 10.3757.312 = (7x+8y)/(x+y), aslida esa K. 952/1209 = 7,313, (x+y) = 16. Shunday qilib, 10,375 vaqti-vaqti bilan 10 x 10 marta va 11 x 6 marta takrorlanuvchi butun sonlar ketma-ketligi bilan almashtiriladi va 7,312 soni 7 x 11 marta va 8 x 5 bilan almashtiriladi. Ikkilik ko'rinishdagi DTMF signal kodi "7" uchun xotira maydoni quyidagicha:
Shu tarzda, DTMF signal kodlariga mos keladigan o'n oltita jadval, ya'ni 0, 1, 2...9, *, #, A, B, C, D hisoblab chiqiladi va oldindan dasturlashtiriladigan xotira qurilmasi xotirasiga yoziladi. 13 (DTMF belgilar kodini butun sonlar ketma-ketligiga oʻzgartiruvchi) DTMF signalining davomiyligi uchun generator kirishidagi “7” tugmachasini bosganingizda DTMF signalining ikkilik kodi “7” (0111) boʻladi. o'rnatilgan bo'lsa, DTMF signal kodining 3-konvertori bo'linish koeffitsientiga DTMF signal kodini sozlanishi bo'linish koeffitsienti bilan generator mos yozuvlar chastotasining 2-bo'luvchisi uchun kd bo'linuvchi koeffitsient kodiga aylantiradi, namuna olish takt chastotasi F t =F OSC /K D. ajratuvchi 2 chiqishida o'rnatiladi. DTMF signal kodi, shuningdek, dasturlashtiriladigan xotira qurilmasi 13 (DTMF signal kodlarini butun sonlar ketma-ketligiga o'zgartiruvchi)ning eng muhim bitlarining manzilli kirishlariga keladi va DTMF signalining davomiyligi davomida mavjud bo'ladi. Masalan, hisoblagich ko'rinishida (DTMF signal kodlarini butun sonlar ketma-ketligiga o'zgartiruvchi) boshqariladigan qurilma 12 t chastotali takt signallari ta'sirida parallel chiqishlarda o'z qiymatini 0000 dan ketma-ket ravishda o'zgartiradi. 1111 ga, mos ravishda dasturlashtiriladigan xotira qurilmasining 13-sonli (DTMF signal kodlarini butun sonlar ketma-ketligiga o'zgartiruvchi) past tartibli bitlarining manzilli kirishlari qiymatlarini o'zgartirganda, chiqishda 8 bitli (bayt) raqamlar paydo bo'ladi. Namuna olish chastotasi bilan dasturlashtiriladigan xotira qurilmasi 13 va 1-jadvalga muvofiq, eng muhim to'rtta bit (eng muhim nibble) butun sonlar ketma-ketligini hosil qiladi, ularning yig'indisi, ya'ni arifmetik o'rtacha, namuna olish burchagi kodini aniqlaydi. yuqori (ustunlar) chastotasiga mos keladigan va eng kam ahamiyatli to'rtta bit (past nibble) butun sonlar ketma-ketligini hosil qiladi, ularning umumiyligi, ya'ni arifmetik o'rtacha, pastki (chiziq) chastotaga mos keladigan tanlama burchagi kodini aniqlaydi, to'rt- 1-jadvalga muvofiq, dasturlashtiriladigan xotira qurilmasi 13 chiqishidan (DTMF signal kodlarini butun sonlar ketma-ketligiga o'zgartiruvchi) bit ma'lumotlari 4 va 9-sonli to'plovchilarning kirishlariga alohida etkazib beriladi. mos keladigan qo'shimchalar 4 va 9 ma'lumotlar namuna olish takt chastotasi bilan 0 dan m gacha o'zgaradi (bu holda m = 128), 5 va 8 saqlovchi registrlar yordamida 6 va 7 saqlash moslamalari manzillarini aniqlaydi va aniqlaydi, ularga ikkilik diskret DTMF signalining tegishli sinusoidal komponentlarining qiymatlari mos ravishda yoziladi, saqlash moslamalari 6 va 7 dan, DTMF signalining mos keladigan sinusoidal komponentlarining ikkilik diskret qiymatlari yakuniy qo'shimcha 10 ning mos keladigan kirishlariga beriladi. , uning chiqishida DTMF signalining ikkilik diskret qiymatlari hosil bo'ladi, ular keyinchalik raqamli-analog konvertorning 11 kirishiga beriladi, uning chiqishida pog'onali sinusoidal DTMF signali hosil bo'ladi. DTMF signal generatori ma'lum texnik vositalar asosida amalga oshirilishi mumkin, masalan, tasvirlangan: Elektron hisoblash texnikasida integral mikrosxemalarni qo'llash. Qo'llanma / Ed. B.N. Fayzulaeva, B.V. Tarabrina. - M .: Radio and Communications, 1986. Bunday holda, DTMF signal kodlarini bo'linish koeffitsienti kodlariga konvertor 3, masalan, faqat o'qish uchun mo'ljallangan xotira chipi 155PE 3 (343-bet) shaklida amalga oshirilishi mumkin. registrlarni amalga oshirish pda tasvirlangan. 108, to'plovchi qo'shimchalarning bajarilishi betda tasvirlangan. 114. Ixtirochilik usuli va DTMF signal generatori ham Microchip Inc.ning apparat vositalari asosida amalga oshiriladi. (8-bitli bitta chipli pic16f628 tipidagi mikrokontrollerlar), "Kadran" (Ukraina, Zaporojye) tomonidan ishlab chiqarilgan "Kadran - NKT - 01" pulsli telefon terish qurilmasining bir qismi sifatida. Mikrokontroller tugunlarining buyruqlar tizimi va ichki tuzilishi quyidagicha tasvirlangan: Prokopenko B.Ya. Bir chipli mikrokontrollerlar. Dodeka, 2000, ISBN8-87835-056-4.DTMF signali parametrlarining tavsifi, masalan, quyidagilarda keltirilgan: Integratsiyalashgan sxemalar: Telefoniya uchun chiplar. 1-son. - M.: Dodeka, 1994, 256 b. - ISBN-5-87835-003-3., p. 12, 13.

TALAB

1. Ikki tonli chastotali (DTMF) signallarni yaratish usuli, shu jumladan DTMF signal komponentlarining birinchi va ikkinchi chastotalariga mos keladigan birinchi va ikkinchi namuna olish burchagi kodlarini tanlash, birinchi va ikkinchi namuna olish burchagi kodlarini mos ravishda davriy ravishda alohida yig'ish. namuna olish takt chastotasiga to'g'ri keladigan sobit davrlar, kümülatif yig'ishning birinchi va ikkinchi natijalari, DTMF signal komponentlarining birinchi va ikkinchi diskret qiymatlarini olish, tegishli diskret qiymatlar jadvallarining manzilda joylashgan kataklarida saqlanadi. DTMF signal komponentlari, tegishli jadvallardan namuna olish burchak kodlarining yig'indisi natijalariga mos keladigan manzillarda o'qish, qiymatga mos keladigan uchinchi diskret qiymatni olish uchun DTMF signal komponentlarining birinchi va ikkinchi diskret qiymatlarini yig'ish orqali. DTMF signali, DTMF signal komponentlarining tegishli jadvallarining manzilli kataklarida saqlangan DTMF signal komponentlarining birinchi va ikkinchi diskret qiymatlari DTMF signali komponentlarining diskret qiymatlarining tegishli jadvallarini o'qish orqali olinadi. manzillar , mos ravishda butun sonlarning birinchi va ikkinchi ketma-ketliklarining yig'indisi natijalariga mos keladi, ularning o'rtacha qiymati tanlama burchaklarining kodlariga mos keladi, DTMF signalining mos keladigan komponentlari.2. 1-bandga muvofiq usul, uning xarakteristikasi, yig'indisi natijasida hosil bo'lgan butun sonlar ketma-ketligining o'rtacha qiymati bu raqamlarning o'rtacha arifmetik qiymatidir.3. 1-bandga muvofiq usul bo'lib, u yig'indisi yig'indisining birinchi va ikkinchi natijalari davriy ravishda turli DTMF signallari uchun har xil bo'lgan namuna olish takt chastotasiga mos keladigan davr bilan qayd etilishi bilan tavsiflanadi.4. DTMF signal generatori, shu jumladan birinchi akkumulyatorli qo'shimcha, birinchi latch registr, birinchi xotira qurilmasi, ikkinchi yig'uvchi, ikkinchi latch registr, ikkinchi xotira qurilmasi, yakuniy qo'shimcha qurilma, raqamli-analogga o'zgartirgich, bunda birinchi yig'uvchi qo'shimchaning chiqishi birinchi latch registrning kirishiga, birinchi latch registrining chiqishi birinchi xotira qurilmasining kirishiga, shuningdek birinchi yig'uvchi qo'shimchaning kirishlaridan biriga ulanadi. birinchi xotira qurilmasining chiqishi yakuniy qo'shimchaning kirishlaridan biriga, ikkinchi yig'uvchining chiqishi ikkinchi latch registrining kirishiga, ikkinchi latch registrining chiqishi esa oxirgi qo'shimchaning kirishiga ulangan. ikkinchi xotira qurilmasi, shuningdek, ikkinchi yig'uvchi qo'shimchaning kirishlaridan biri bilan ikkinchi xotira qurilmasining chiqishi yakuniy qo'shimchaning boshqa kirishiga ulanadi, yakuniy qo'shimchaning chiqishi raqamli- chiqishi DTMF signal generatorining chiqishi bo'lgan analogli konvertor, uning xususiyati DTMF signal generatorida qo'shimcha ravishda butun sonlar ketma-ketligida DTMF signallarining konvertor kodlari, DTMF signal generatorining mos yozuvlar chastotasining bo'luvchisi mavjud. sozlanishi bo'linish koeffitsienti bilan, DTMF signal kodlarini bo'linish koeffitsienti kodiga o'zgartiruvchi, bunda butun sonlar ketma-ketligidagi DTMF signal kodlari konvertorining birinchi chiqishi birinchi yig'uvchi qo'shimchaning boshqa kirishiga, ikkinchi chiqishi esa bo'linish koeffitsientiga ulanadi. Butun sonlar ketma-ketligidagi DTMF signallarining konvertor kodlari ikkinchi yig'uvchi qo'shimchaning boshqa kirishiga, sozlanadigan bo'linish koeffitsientiga ega DTMF signal generatorining o'rnatilgan chastota bo'luvchisining chiqishi kodlari konvertorining taktli kirishiga ulanadi. Butun sonlar ketma-ketligidagi DTMF signallari, shuningdek, birinchi latch registrining taktli kirishiga va ikkinchi ushlab turuvchi registrning taktli kirishiga, DTMF signal kodini o'zgartiruvchining bo'linish koeffitsienti kodiga chiqishi sozlash kiritishiga ulanadi. DTMF signal generatorining mos yozuvlar chastotasi bo'linuvchisining bo'linish koeffitsienti, sozlanishi bo'linish koeffitsienti bilan DTMF signal generatorining mos yozuvlar chastotasi bo'luvchisining kirishi DTMF signal generatorining mos yozuvlar chastotasining kiritilishi, DTMF signal kodini o'zgartiruvchining kirishi. bo'linish koeffitsienti kodi DTMF signal kodini o'zgartirgichning kirishiga butun sonlar ketma-ketligiga ulanadi va DTMF signal generatorining kirishi hisoblanadi. 5. 4-bandga muvofiq DTMF signal generatori, uning xarakteristikasi DTMF signallarining butun sonlar ketma-ketligiga kod konvertori boshqariladigan dasturlashtiriladigan xotira qurilmasi shaklida amalga oshiriladi, uning xotirasi DTMF signallari soniga mos keladi. , xotira xonalari butun sonlar ketma-ketligi uzunligiga mos keladigan kataklardan iborat bo'lib, xotira kataklarining bir yarmida butun sonlarning birinchi ketma-ketligiga tegishli raqam saqlanadi, ikkinchi yarmida esa a. raqam mos keladigan jamlovchi qo'shimchalarning shartlari bo'lgan boshqa butun sonlar ketma-ketligiga mos ravishda saqlanadi va dasturlashtiriladigan xotira qurilmasini boshqarish xotira maydoni va alohida xotira katakchasini tanlashni alohida boshqarish imkoniyati bilan amalga oshiriladi.

Tone terish (Dual-tone multi-frequency signaling, DTMF) o'tgan asrning 50-yillarida Bell Labs tomonidan o'sha paytdagi inqilobiy tugmachali telefon uchun ishlab chiqilgan. Raqamli ma'lumotlarni ohang rejimida ko'rsatish va uzatish uchun nutq chastotasi diapazonining bir juft chastotasi (tonlari) ishlatiladi. Tizim to'rt chastotali ikkita guruhni belgilaydi va ma'lumotlar bir vaqtning o'zida ikkita chastotani, har bir guruhdan bittadan uzatish orqali kodlanadi. Bu o'n olti xil raqamlar, belgilar va harflarni ifodalash uchun jami o'n olti kombinatsiyani beradi. DTMF kodlash hozirda keng doiradagi aloqa va boshqaruv dasturlarida qo'llanilmoqda, masalan, Xalqaro elektraloqa ittifoqining (XEI) Q.23 tavsiyanomasi tasdiqlaydi.

Ushbu maqola barcha sakkiz chastotani takrorlaydigan va natijada ikki tonnali chiqish signalini yaratadigan DTMF ohang generatorining sxemasini tasvirlaydi. Ushbu tizim Silego GreenPAK™ SLG46620V chipi va Silego SLG88104V operatsion kuchaytirgichlari atrofida qurilgan. Olingan signal telefon klaviaturasining satri va ustuni tomonidan aniqlangan ikkita chastota yig'indisidir.

Taklif etilayotgan sxema hosil qilinadigan chastota birikmasini tanlash uchun to'rtta kirishdan foydalanadi. Sxema, shuningdek, generatsiyani ishga tushiradigan va signalning uzatilish vaqtini aniqlaydigan faollashtiruvchi kirishga ega. Generatorning chiqish chastotasi DTMF uchun ITU standartiga mos keladi.

DTMF ohanglari

DTMF standarti 0-9 raqamlari, A, B, C va D harflari hamda * va # belgilarining kodlanishini ikkita chastota birikmasi sifatida belgilaydi. Ushbu chastotalar ikki guruhga bo'linadi: yuqori chastotali guruh va past chastotali guruh. 1-jadvalda chastotalar, guruhlar va tegishli belgilar ko'rinishlari ko'rsatilgan.

1-jadval. DTMF ohangini kodlash

Trebl guruhi

Past o'tish guruhi

Chastotalar bir nechta harmoniklardan qochish uchun tanlangan. Bundan tashqari, ularning yig'indisi yoki farqi boshqa DTMF chastotasini keltirib chiqarmaydi. Shunday qilib, harmonika yoki modulyatsiya buzilishining oldini oladi.

Q.23 standarti har bir uzatiladigan chastotaning xatosi nominal qiymatdan ± 1,8% oralig'ida bo'lishi kerakligini va umumiy buzilish (harmonika yoki modulyatsiya tufayli) asosiy chastotalardan 20 dB past bo'lishi kerakligini belgilaydi.

Yuqorida tavsiflangan natijaviy signalni quyidagicha ta'riflash mumkin:

s(t) = Acos(2pfhight)+ Acos(2pflowt),

bu erda fhigh va oqim yuqori va past chastotali guruhlardan mos keladigan chastotalardir.

1-rasmda "1" raqami uchun olingan signal ko'rsatilgan. 2-rasmda ushbu signalga mos keladigan chastota spektri ko'rsatilgan.

Guruch. 1. DTMF ohangi

Guruch. 2. DTMF ohang spektri

DTMF ohanglarining davomiyligi ohang kodlashdan foydalanadigan maxsus dasturga qarab farq qilishi mumkin. Eng keng tarqalgan ilovalar uchun muddat qiymatlari odatda qo'lda va avtomatik terish o'rtasida bo'ladi. 2-jadvalda ikkita ishga qabul qilish turi uchun odatiy vaqt uzunligining qisqacha tavsifi ko'rsatilgan.

2-jadval. Ohangli terish signallarining davomiyligi

Terish turi

Trebl guruhi

Trebl guruhi

Qo'lda terish

Avtomatik terish

Ko'proq moslashuvchanlikni ta'minlash uchun ushbu qo'llanmada taqdim etilgan DTMF generatori signal ishlab chiqarishni boshlash va uning davomiyligini aniqlash uchun ishlatiladigan yoqish kiritish bilan jihozlangan. Bunday holda, signalning davomiyligi faollashtirilgan kirishdagi impulsning davomiyligiga teng.

DTMF generator sxemasining analog qismi

XEI Q.23 tavsiyasi DTMF signallarini ikkita sinus to'lqinlar tomonidan yaratilgan analog signallar sifatida belgilaydi. Tavsiya etilgan DTMF generator pallasida Silego GreenPAK SLG46620V IC kerakli DTMF chastotalari bilan kvadrat to'lqinli signallarni hosil qiladi. Kerakli chastotali sinusoidal signallarni olish va natijada olingan signalni (ikkita sinusoidal to'lqinlar yig'indisi) hosil qilish uchun analog filtrlar va toplayıcı kerak. Shu sababli, ushbu loyihada SLG88104V operatsion kuchaytirgichlari asosidagi filtrlar va kombaynlardan foydalanishga qaror qilindi.

3-rasmda qurilmaning tavsiya etilgan analog qismining tuzilishi ko'rsatilgan.

Guruch. 3. DTMF signalini qabul qilish uchun analog ishlov berish sxemasi

Analog filtrlar to'rtburchak impulslardan sinusoidal signallarni olish uchun ishlatiladi. Filtrlash amalga oshirilgandan so'ng, ikkita signal yig'iladi va kerakli chiqish ikki rangli DTMF signali hosil bo'ladi.

4-rasmda kvadrat to'lqin signalining spektrini olish uchun foydalanilgan Furye transformatsiyasining natijasi ko'rsatilgan.

Guruch. 4. Kvadrat to'lqin signalining spektri

Ko'rib turganingizdek, kvadrat to'lqin faqat g'alati harmonikani o'z ichiga oladi. Agar amplitudasi A bo'lgan bunday signalni Furye qatori ko'rinishida ifodalasak, u quyidagi ko'rinishga ega bo'ladi:

Ushbu ifodani tahlil qilish, agar analog filtrlar harmoniklar uchun etarli darajada zaiflashuvga ega bo'lsa, u holda asl kvadrat to'lqin signalining chastotasiga teng chastotali sinusoidal signallarni olish juda mumkin degan xulosaga kelishimizga imkon beradi.

Q.23 standartida belgilangan shovqin darajasining bardoshliligini hisobga olgan holda, barcha harmoniklarning 20 dB yoki undan ko'proq zaiflashishini ta'minlash kerak. Bundan tashqari, past chastotali guruhning har qanday chastotasi yuqori o'tish guruhining har qanday chastotasi bilan birlashtirilishi kerak. Ushbu talablarni hisobga olgan holda, har bir guruh uchun bittadan ikkita filtr ishlab chiqildi.

Ikkala filtr ham past chastotali Butterworth filtrlari edi. Butterworth filtri buyurtmasining susayishi quyidagicha hisoblanishi mumkin:

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

Bu erda fc - filtrni kesish chastotasi, n - filtrlash tartibi.

Har bir guruhning eng past chastotasi va eng yuqori chastotasi o'rtasidagi zaiflashuvdagi farq 3 dB dan oshmasligi mumkin, shuning uchun:

A(fYUQOR)[dB] - A(FLOWER)[dB] > 3 dB.

Berilgan mutlaq qiymatlar:

A(fYUQOR) 2 / A(gul) 2 > 2.

Bundan tashqari, yuqorida aytib o'tganimizdek, harmonik zaiflashuv 20 dB yoki undan ko'p bo'lishi kerak. Bunday holda, eng yomon holat guruhdagi eng past chastota bo'ladi, chunki uning 3-harmonikasi eng past chastotadir va filtrni kesish chastotasiga eng yaqin. 3-harmonik asosiydan 3 baravar kam ekanligini hisobga olsak, filtr shartga javob berishi kerak (mutlaq qiymatlar):

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

Agar ushbu tenglamalar ikkala guruhga ham qo'llanilsa, ishlatiladigan filtrlar ikkinchi tartibli filtrlar bo'lishi kerak. Bu shuni anglatadiki, agar op-amplar yordamida amalga oshirilsa, ular ikkita rezistor va ikkita kondansatörga ega bo'ladi. Agar uchinchi tartib filtrlari ishlatilsa, komponentlarning tolerantliklariga nisbatan sezgirlik past bo'lar edi. Tanlangan filtrni kesish chastotalari past chastotali guruh uchun 977 Gts va yuqori o'tish guruhi uchun 1695 Gts ni tashkil qiladi. Ushbu qiymatlarda chastota guruhlaridagi signal darajalaridagi farqlar yuqoridagi talablarga mos keladi va komponentlarning tolerantliklari tufayli kesish chastotasining o'zgarishiga sezgirlik minimaldir.

SLG88104V yordamida amalga oshirilgan filtrlarning sxematik diagrammalari 5-rasmda keltirilgan. Birinchi R-C juftining reytinglari SLG46620V chipining chiqish oqimini cheklaydigan tarzda tanlangan. Ikkinchi filtr aloqasi daromadni aniqlaydi, bu 0,2 ga teng. Kvadrat to'lqin signallarining amplitudasi operatsion kuchaytirgichning ish nuqtasini 2,5 V ga o'rnatadi. Kiruvchi kuchlanishlar chiqish filtri kondansatkichlari tomonidan bloklanadi.

Guruch. 5. Chiqish filtrlarining sxematik sxemalari

Chiqishda filtr signallari yig'iladi va natijada olingan signal past va yuqori chastotalar guruhidan tanlangan harmonikalar yig'indisidir. Filtrning zaiflashishini qoplash uchun chiqish signalining amplitudasi ikkita R9 va R10 rezistorlari yordamida sozlanishi mumkin. 6-rasmda qo'shimchaning sxemasi ko'rsatilgan. 7-rasmda sxemaning butun analog qismi ko'rsatilgan.

Guruch. 6. Qo'shimcha qurilmaning sxematik diagrammasi

Guruch. 7. Sxemaning analog qismi

DTMF ohang generatori sxemasining raqamli qismi

DTMF ohang generatori pallasining raqamli qismi kvadrat to'lqin generatorlarining butun to'plamini o'z ichiga oladi - har bir DTMF chastotasi uchun bittadan. Ushbu generatorlarni yaratish uchun sakkizta hisoblagich kerak bo'lganligi sababli, ularni amalga oshirish uchun GreenPAK SLG46620V chipi tanlangan. Raqamli kontaktlarning zanglashiga olib chiqishlarida har bir chastota guruhi uchun bittadan ikkita to'rtburchaklar signal hosil bo'ladi.

Kvadrat to'lqin signallari hisoblagichlar va D flip-floplar yordamida ishlab chiqariladi va ish aylanishi 50% ni tashkil qiladi. Shu sababli, hisoblagichni almashtirish chastotasi zarur bo'lgan DTMF chastotasidan ikki baravar ko'pdir va DFF flip-flop chiqish signalini ikkiga ajratadi.

Hisoblagichlar uchun soat manbai o'rnatilgan 2 MGts chastotali RC osilator bo'lib, uning chastotasi qo'shimcha ravishda 4 yoki 12 ga bo'linadi. Ajratuvchi bit sig'imi va ma'lum bir hisoblash uchun zarur bo'lgan har bir hisoblagichning maksimal qiymatini hisobga olgan holda tanlanadi. chastota.

Yuqori chastotalarni yaratish uchun kamroq namunalar talab qilinadi, shuning uchun ularni ishlab chiqarish uchun signali 4 ga bo'lingan ichki RC osilatoridan soatlangan 8 bitli hisoblagichlar ishlatiladi. Xuddi shu sababga ko'ra, past chastotalar 14 bitli hisoblagichlar yordamida amalga oshiriladi.

SLG46620V faqat uchta standart 14 bitli hisoblagichga ega, shuning uchun past chastotalardan biri 8 bitli CNT8 hisoblagich yordamida amalga oshirildi. Namunalar soni 0...255 oralig'ida bo'lishi uchun ushbu CNT8 ni soatlash uchun 12 ga bo'lingan RC osilator signalidan foydalanish kerak edi. Ushbu sxema uchun eng ko'p namunalar soniga ega chastota, ya'ni hisoblanadi, eng past chastota, tanlangan. Bu bizga xatoni minimallashtirishga imkon berdi.

3-jadvalda har bir kvadrat to'lqinning parametrlari ko'rsatilgan.

3-jadval. Kvadrat impuls generatorlarining parametrlari

Soat

Chastota xatosi [%]

Past o'tish guruhi

Trebl guruhi

Jadvaldan ko'rinib turibdiki, barcha chastotalar 1,8% dan kam xatoga ega, shuning uchun ular DTMF standartiga mos keladi. Ideal RC osilator chastotasiga asoslangan ushbu hisoblangan xususiyatlar RC osilatorining chiqish chastotasini o'lchash orqali sozlanishi mumkin.

Tavsiya etilgan sxemada barcha generatorlar parallel ravishda ishlayotgan bo'lsa-da, har bir guruhdan faqat bitta generatorning signali mikrosxemaning chiqishiga yuboriladi. Muayyan signallarni tanlash foydalanuvchi tomonidan belgilanadi. Bu 4-jadvalda ko'rsatilgan haqiqat jadvali bilan to'rtta GPIO kirish (har bir guruh uchun ikkita bit) yordamida amalga oshiriladi.

4-jadval. Past chastotali guruhdan chastotalarni tanlash jadvali

Past o'tish guruhi

5-jadval. Yuqori chastotalar guruhidan chastotalarni tanlash jadvali

Trebl guruhi

8-rasmda 852 Hz kvadrat to'lqin generatorining mantiqiy sxemasi ko'rsatilgan. Ushbu naqsh tegishli hisoblagich sozlamalari va LUT konfiguratsiyasi bilan har bir chastota uchun takrorlanadi.

Guruch. 8. To'rtburchak impuls generatori

Hisoblagich o'z sozlamalari bilan aniqlangan chiqish chastotasini ishlab chiqaradi. Bu chastota mos keladigan DTMF ohangining ikki barobar chastotasiga teng. Hisoblagich konfiguratsiya parametrlari 9-rasmda ko'rsatilgan.

Guruch. 9. To'rtburchaklar impuls generatori hisoblagichini o'rnatish misoli

Hisoblagich chiqish signali D-Flip Flop flip-flopning taktli kirishiga ulangan. DFF chiqishi teskari sifatida tuzilganligi sababli, agar siz DFF chiqishini uning kirishiga ulasangiz, D flip-flop T flip-flopga aylanadi. DFF konfiguratsiya parametrlarini 10-rasmda ko'rish mumkin.

Guruch. 10. To'g'ri to'rtburchak impuls generatorini ishga tushirishga misol

DFF chiqishidan signal LUT haqiqat jadvalining kirishiga beriladi. LUTlar har bir aniq R1-R0 kombinatsiyasi uchun bitta signalni tanlash uchun ishlatiladi. LUT konfiguratsiyasiga misol 11-rasmda ko'rsatilgan. Ushbu misolda, agar R1 1 ni qabul qilsa va R0 0 ni qabul qilsa, kirish signali chiqishga yuboriladi. Boshqa hollarda, chiqishda "0" mavjud.

Guruch. 11. Kvadrat impuls generatorining haqiqat jadvalini o'rnatishga misol

Yuqorida aytib o'tilganidek, taklif qilingan sxema "Enable enable" kirishiga ega. Agar "Enable" ruxsatnomasi kirishida mantiqiy birlik "1" bo'lsa, hosil qilingan to'rtburchaklar signallar mikrosxemaning bir juft chiqishiga beriladi. Uzatish davomiyligi yoqilgan kirishdagi impuls davomiyligiga teng. Ushbu xususiyatni amalga oshirish uchun yana bir nechta LUT kerak edi.

Yuqori o'tish guruhi 12-rasmda ko'rsatilganidek, bitta 4 bitli LUT va bitta 2 bitli LUT dan foydalanadi.

Guruch. 12. Treble guruhining chiqish sxemasi

4-bitli LUT1 OR eshigi sifatida tuzilgan, shuning uchun u har qanday kirishda 1 mavjud bo'lsa, mantiqiy 1ni chiqaradi. C1/C0 haqiqat jadvallari osilatorlardan faqat bittasini tanlash imkonini beradi, shuning uchun 4-bitli LUT1 qaysi signal chiqishini aniqlaydi. Ushbu LUTning chiqishi 2-bitli LUT4 ga ulangan, u faqat agar yoqish kiritish mantiqiy "1" bo'lsa, signalni uzatadi. 13 va 14-rasmlarda 4 bitli LUT1 va 2 bitli LUT4 konfiguratsiyasi ko'rsatilgan.

Guruch. 13. 4-bitli LUT1 konfiguratsiyasi

Guruch. 14. 2-bitli LUT4 konfiguratsiyasi

Endi 4-bitli haqiqat jadvallari LUTlari yo'qligi sababli, past chastotali guruh uchun ikkita 3-bitli LUT ishlatilgan.

Guruch. 15. Past o'tish guruhining chiqish davri

GreenPAK SLG46620V ning to'liq ichki sxemasi 16-rasmda ko'rsatilgan. 17-rasmda DTMF generatorining yakuniy sxemasi ko'rsatilgan.

Guruch. 16. DTMF ohang generatorining blok diagrammasi

Guruch. 17. DTMF ohang generatorining sxematik diagrammasi

DTMF generator sxemasini sinovdan o'tkazish

Taklif etilgan DTMF generatorini sinovdan o'tkazishning birinchi bosqichida osiloskop yordamida barcha yaratilgan to'rtburchaklar signallarning chastotalarini tekshirishga qaror qilindi. Misol sifatida, 18 va 19-rasmlarda 852 Gts va 1477 Gts uchun kvadrat to'lqin chiqishlari ko'rsatilgan.

Guruch. 18. Kvadrat to'lqin 852 Hz

Guruch. 19. Kvadrat to'lqin 1477 Hz

Barcha kvadrat to'lqin signallarining chastotalari tekshirilgandan so'ng, kontaktlarning zanglashiga olib keladigan analog qismini sinovdan o'tkazish boshlandi. Past va yuqori chastotalarning barcha kombinatsiyalari uchun chiqish signallari tekshirildi. Misol tariqasida, 20-rasmda 770 Gts va 1209 Gts chastotali signallarning yig'indisi, 21-rasmda 941 Gts va 1633 Gts chastotali signallarning yig'indisi ko'rsatilgan.

Guruch. 20. DTMF ohangi 770 Gts va 1209 Gts

Guruch. 21. DTMF ohangi 941 Gts va 1633 Gts

Xulosa

Ushbu maqolada Silego GreenPAK SLG46620V chipi va Silego SLG88104V operatsion kuchaytirgichlari asosida DTMF ohang generatori uchun sxema taklif qilingan. Jeneratör foydalanuvchiga to'rtta kirishdan foydalangan holda kerakli chastotalar kombinatsiyasini tanlash va chiqish signallarining davomiyligini belgilaydigan yoqish kiritishni boshqarish imkonini beradi.

SLG46620V chipining xususiyatlari:

  • Turi: Dasturlashtiriladigan aralash signal IC;
  • Analog bloklar: 8-bitli ADC, ikkita DAC, oltita komparator, ikkita filtr, ION, to'rtta o'rnatilgan osilator;
  • Raqamli bloklar: 18 tagacha kiritish-chiqarish portlari, o'zaro bog'lanish matritsasi va kombinatoryal mantiq, dasturlashtiriladigan kechikish davrlari, dasturlashtiriladigan funktsiyalar generatori, oltita 8-bitli hisoblagichlar, uchta 14-bitli hisoblagichlar, uchta PWM osilatorlari / taqqoslagichlari;
  • Aloqa interfeysi: SPI;
  • Ta'minot kuchlanish diapazoni: 1,8…5 V;
  • Ishlash harorati diapazoni: -40…85 °C;
  • Paket versiyasi: 2 x 3 x 0,55 mm 20 pinli STQFN.

O'ziga xos xususiyatlar

  • Impuls kengligi modulyatsiyasi (PWM) yordamida sinus to'lqinlarni yaratish
  • Turli xil sinus to'lqin signallarini bitta DTMF signaliga birlashtirish
  • Assembly va C tillarida manba kodlari
  • STK500 bilan ishlash uchun mo'ljallangan
  • Dastur kodi hajmi 260 bayt / doimiy jadval hajmi 128 bayt
  • Jadvalni aylantirish usulidan foydalanish

Kirish

Ushbu hujjat impuls kengligi modulyatsiyasi (PWM) birligi va statik RAMni o'z ichiga olgan har qanday AVR mikrokontrolleri yordamida DTMF signallarini (ikki tonnali ko'p chastotali signallar) ishlab chiqarish texnikasini tavsiflaydi. Ushbu signallar telefoniyada keng qo'llaniladi, ular telefon apparatining terish tugmalarini bosganingizda qayta ishlab chiqariladi. DTMF signalini to'g'ri ishlab chiqarish uchun ikkita chastotani bir-biriga joylashtirish kerak: past chastotali (fb) va yuqori chastotali (fa). 1-jadvalda turli tugmalar bosilganda DTMF ohanglarini hosil qilish uchun turli chastotalar qanday aralashtirilganligi ko'rsatilgan.


Shakl 1. DTMF signal generatorining sxemasi

Jadval 1. Ton hosil qilish matritsasi

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

1-jadvalning satrlari past chastotali qiymatlarni, ustunlar esa yuqori chastotali qiymatlarni ko'rsatadi. Misol uchun, matritsa "5" tugmasini bosganingizda fb = 770 Hz va fa = 1336 Hz chastotalarini aralashtirish kerakligini ko'rsatadi. Turli chastotali ikkita sinusoidal signalning qo'shilishi natijasida DTMF signali hosil bo'ladi.

bu yerda dastlabki signallarning amplituda nisbati K=A b /A a shartga javob berishi kerak

Ishlash printsipi

Impuls kengligi modulyatsiyasidan foydalanish haqida umumiy ma'lumotlarga qo'shimcha ravishda, impuls kengligi modulyatsiyasi sinusoidal signallarni yaratishga qanday imkon berishi quyida ko'rsatiladi. Keyingi paragraf turli chastotalarni olish uchun asosiy kommutatsiya chastotasidan qanday foydalanishni tavsiflaydi. Nazariy asoslarni ko'rib chiqqandan so'ng, DTMF signal generatorining o'zi tavsifi beriladi. Sinus to'lqinlarning paydo bo'lishi

Yuqori VH va past VL kuchlanish darajalarining davomiyligi nisbatiga qarab, PWM chiqishidagi o'rtacha qiymat o'zgaradi. Agar ikkala darajaning davomiyligi o'rtasidagi nisbat doimiy bo'lsa, natijada doimiy VAV kuchlanish darajasi hosil bo'ladi. 2-rasmda impuls kengligi modulyatsiyalangan signal ko'rsatilgan.


Shakl 2. DC kuchlanish darajasini yaratish

Kuchlanish darajasi quyidagi ifoda bilan aniqlanadi:

(3)

Sinusoidal signal impuls kengligi modulyatsiyasi natijasida hosil bo'lgan kuchlanishning o'rtacha qiymati har bir PWM siklida o'zgarishi sharti bilan yaratilishi mumkin. Yuqori va past darajalar o'rtasidagi munosabatlar sinus to'lqinining tegishli vaqtda kuchlanish darajasiga mos ravishda o'rnatilishi kerak. 3-rasmda bu jarayon tasvirlangan. PWM uchun manba ma'lumotlari uning har bir davri uchun hisoblab chiqiladi va konversiya jadvalida (TC) qayd etiladi.

3-rasmda asosiy sinus to'lqin chastotasi va namunalar soni o'rtasidagi bog'liqlik ham ko'rsatilgan. Namunalar soni (Nc) qanchalik ko'p bo'lsa, natijada olingan signalni modellashtirishning aniqligi shunchalik yuqori bo'ladi:

(4)

PWM chastotasi PWM ruxsatiga bog'liq. 8 bitli ruxsatda taymerning yakuniy qiymati (hisobning yuqori qismi) 0xFF (255). Chunki Taymer oldinga va orqaga hisoblaydi, keyin bu qiymat ikki barobarga oshirilishi kerak. Shuning uchun, PWM chastotasini f CK taymerining soat chastotasini 510 ga bo'lish yo'li bilan hisoblash mumkin. Shunday qilib, 8 MGts taymer chastotasi bilan, natijada PWM chastotasi 15,6 kHz bo'ladi.


Shakl 3. PWM yordamida sinus to'lqinini yaratish

Sinus to'lqinining chastotasini o'zgartirish

Faraz qilaylik, sinusoidal namunalar qidiruv jadvalidan ketma-ket emas, birma-bir o'qiladi. Bunday holda, bir xil namuna olish tezligida ikki barobar chastotali signal hosil bo'ladi (4-rasmga qarang).


Shakl 4. Olingan chastotani ikki baravar oshirish (XSW = 2)

O'xshashlik bo'yicha, agar siz har bir ikkinchi qiymatni emas, balki har uchinchi, to'rtinchi, beshinchi (mos ravishda qadam kengligi 3, 4, 5 ...) o'qisangiz va hokazo. diapazonda Nc chastotalarni hosil qilish mumkin. E'tibor bering, yuqori chastotalar uchun hosil bo'lgan to'lqin shakli sinusoidal bo'lmaydi. Biz konvertatsiya jadvaliga ko'ra qadam kengligini X SW deb belgilaymiz, bu erda

(5)

Keyingi PWM davri uchun TPdagi joriy pozitsiyani hisoblash (taymer to'lib ketganda) ifoda (6) yordamida amalga oshiriladi. X LUT holatidagi yangi qiymat uning X" LUT holatidagi oldingi holatiga, qadam kengligi X SW qo'shilishi bilan bog'liq.

(6)

DTMF signalini olish uchun turli chastotalarni qo'shish

DTMF signali (1) va (2) iboralar yordamida yaratilishi mumkin. Arifmetik amallarning soddaligi uchun arifmetik amalni mantiqiy siljishlar bilan almashtirish uchun K koeffitsientining qiymati 0,75 ga teng qabul qilinadi. (6) ifodasini hisobga olgan holda, PWM boshqaruvining joriy qiymati quyidagi ifoda bilan hisoblanishi mumkin:

va X LUTa =X" LUTa + X SWa,X LUTb =X" LUTb + X SWb ekanligini hisobga olib, nihoyat yozamiz.

DTMF generatorini joriy qilish

Ushbu ilovada 8 bitli PWM chiqishi (OC1A) va har biri 7 bit (n) bilan belgilangan 128 sinus funksiyasi (Nc) namunalari bo'lgan jadval yordamida DTMF ohang generatorining qurilishi ko'rib chiqiladi. Quyidagi iboralar ushbu bog'liqlikni ko'rsatadi va shuningdek, qidiruv jadvali yozuvlarini qanday hisoblashni ko'rsatadi:

(9)

7 bitdan foydalanishning afzalligi shundaki, yuqori va past chastotali signal qiymatlarining yig'indisi bir bayt o'lchamda. DTMF ohanglarining to'liq to'plamini qo'llab-quvvatlash uchun 1-jadvaldagi har bir DTMF chastotasi uchun 8 ta qiymat hisoblanishi va qidiruv jadvaliga kiritilishi kerak.

Yuqori aniqlikka erishish uchun quyidagi yechim amalga oshirildi: 5 ifodasi yordamida hisoblangan qiymatlar faqat 5 baytni talab qiladi. Yaxlitlash xatolarini kamaytiradigan barcha 8 baytdan foydalanish uchun bu qiymat 8 ga ko'paytiriladi. Qidiruv jadvaliga ko'rsatgich xuddi shu tarzda yoziladi. Ammo bu holda qiymatdan 8 barobar ko'p saqlash uchun ikki bayt kerak bo'ladi. Bu shuni anglatadiki, bu baytlarni sinus to'lqin qiymatlariga ko'rsatgich sifatida ishlatishdan oldin 3 ta o'ngga siljish va radix Nc moduli operatsiyasi (Nc-1 ga mantiqiy ko'paytirish) bajarilishi kerak.


Shakl 5. STK500 ga ulanish uchun modul diagrammasi

PWM signali OC1A (PD5) pinida ishlab chiqariladi. Qo'shimcha chiqish filtri signalning sinusoidal to'lqin shakliga mos kelishiga yordam beradi. PWM chastotasini pasaytirishda yaxshi natijaga erishish uchun yuqori chastotali filtrdan foydalanish kerak bo'lishi mumkin.

Klaviatura ulanishi 1-rasmda ko'rsatilgan. Klaviaturaning ishlashi shunday tashkil etilishi kerakki, bosilgan tugmani aniqlash mumkin bo'ladi. Buni quyidagi algoritm yordamida amalga oshirish mumkin:

  1. Bosilgan tugma satrini aniqlash
    • B portining past tartibli daftarini chiqish sifatida sozlang va jurnalni o'rnating. "0"
    • tortuvchi rezistorlar ulanishi bilan kirish sifatida B portining yuqori tetradasini sozlang
    • tugmasi bosilgan chiziq log bilan eng yuqori tetradning raqami sifatida aniqlanadi. "0"
  2. Bosilgan tugma ustunini aniqlash
    • B portining yuqori noutbukini chiqish sifatida sozlang va jurnalni o'rnating. "0"
    • tortuvchi rezistorlarni ulash orqali B portining past tartibli tetradasini kirish sifatida sozlang
    • tugmasi bosilgan ustun log bilan past tartibli tetradning raqami sifatida aniqlanadi. "0"

Eslatma: STK200 da rezistorlar PORTB ulagichi pinlari va BP5, PB6 va PB7 mikrokontroller pinlari o'rtasida ketma-ket ulanadi (STK200 diagrammasiga qarang). Agar klaviatura PORTB ulagichiga ulangan bo'lsa, bu muammolarga olib keladi.

6-rasmda bosilgan tugmani aniqlash uchun pastki dasturning ishlashi ko'rsatilgan. Bosilgan tugmachaga qarab, intervalning davomiyligi aniqlanadi. Uzilish tartibi ushbu qiymatdan ikkita DTM ton sinus to'lqinlari uchun PWM sozlamalarini hisoblash uchun foydalanadi. Uzilishlarni qayta ishlash tartibi 7 va 8-rasmlarda ko'rsatilgan.

Ushbu tartib keyingi PWM davri uchun taymer chiqishi bilan solishtirish uchun qiymatni hisoblab chiqadi. Uzilish tartibi birinchi navbatda qidiruv jadvalidagi keyingi namuna qiymatining o'rnini hisoblab chiqadi va u erda saqlangan qiymatni o'qiydi.

Qidiruv jadvalidagi namunaning pozitsiyasi impuls kengligi bilan belgilanadi va haqiqiy impuls kengligi hosil qilingan chastota bilan aniqlanadi.

Taymerni taqqoslash registriga yozilgan yakuniy qiymat formula (7) yordamida aniqlanadi, bu ikkala DTMF chastotasining namunaviy qiymatlarini hisobga oladi.


Rasm 6. Asosiy dasturning blok sxemasi


Shakl 7. Taymerning to'lib toshgan uzilishlarini qayta ishlash protsedurasining blok diagrammasi


Shakl 8. "GetSample" namunasini o'qish protsedurasining sxemasi

Nashr: www.cxem.net

Boshqa maqolalarga qarang Bo'lim.