روش تولید سیگنال های dtmf و مولد سیگنال dtmf. تولید و تشخیص سیگنال های DTMF تراشه مولد سیگنال تن DTMF

قسمت اول این مثالبرنامه تولید سیگنال های DTMF را با استفاده از میکروکنترلر MSP430 توصیف می کند. در مورد مهمترین مشخصات مورد استفاده در این مورد توضیح داده شده و توجیه نظری و ریاضی برای تولید امواج سینوسی با استفاده از امواج مربعی با استفاده از فیلترهای آنالوگ مناسب ارائه شده است. این مثال همچنین شامل برنامه های آزمایشی آزمایش شده برای تولید سیگنال های موج مربعی بر اساس پیکربندی های مختلف تایمر میکروکنترلرهای MSP430 است. بخش پایانی ارائه می دهد مدار، که به شما امکان می دهد سیگنال های DTMF را از سیگنال های موج مربعی تولید کنید.

2 مشخصات سیگنال DTMF

مخفف DTMF مخفف "Dual Tone Multi Frequency" است و روشی برای نمایش ارقام در فرکانس های مختلف به منظور انتقال آنها از طریق خطوط ارتباطی آنالوگ است، به عنوان مثال. خط تلفن. هنگام توسعه استاندارد، این شرایط در نظر گرفته شد - همه فرکانس ها باید در محدوده "صدا" باشند، که باعث کاهش الزامات کانال انتقال می شود. شبکه های تلفن از سیگنال های DTMF برای شماره گیری و سایر اطلاعات استفاده می کنند. با وجود این واقعیت که روش شماره گیری پالس هنوز به طور گسترده استفاده می شود، که استاندارد است، به عنوان مثال، در آلمان، زمان شماره گیری به طور قابل توجهی افزایش می یابد و منجر به بار غیرمولد در خطوط ارتباطی می شود. علاوه بر این، بسیاری از خدمات اضافیارتباطات فقط با استفاده از شماره گیری صوتی امکان پذیر است. هنگام رمزگذاری با استفاده از روش DTMF، اعداد 0-9 و حروف A-D، */E و #/F ترکیبی از دو فرکانس را نشان می دهند:

فرکانس 1209 هرتز 1336 هرتز 1477 هرتز 1633 هرتز
697 هرتز 1 2 3 آ
770 هرتز 4 5 6 ب
852 هرتز 7 8 9 سی
941 هرتز */E 0 #/F D

در این سیستم، ستون نشان دهنده فرکانس از گروه فرکانس "بالا" (Hi-Group: 1209-1633 هرتز) و ردیف نشان دهنده فرکانس از گروه فرکانس "پایین" (Lo-Group: 697-941 Hz) است. . فرکانس های تونال برای از بین بردن تأثیر هارمونیک ها انتخاب می شوند. فرکانس ها مضرب یکدیگر نیستند و هیچ فرکانس DTMF را نمی توان با جمع یا تفریق فرکانس های دیگر به دست آورد. برای تولید شماره‌گیر در شبکه Deutsche Telekom، مشخصات زیر مورد نیاز است (برگرفته از Zulassungsvorschrift des Bundesamtes fur Post und Telekommunikation، BAPT 223 ZV 5 (مشخصات رسمی وزارت پست و مخابرات فدرال):

3 سیگنال های DTMF را تولید کنید

همانطور که در بالا توضیح داده شد، سیگنال های DTMF آنالوگ هستند و از دو موج سینوسی مستقل تشکیل شده اند. بنابراین، تولید چنین سیگنال هایی فقط به صورت دیجیتال امکان پذیر نیست. سیگنال های دیجیتالباید با استفاده از فیلترهای ADC و/یا آنالوگ به شکل موج سینوسی مورد نیاز تبدیل شود.

3.1 تولید با استفاده از امواج مربعی

اگر از سیگنال های موج مربعی برای تولید سیگنال های DTMF استفاده شود، نرم افزار و سخت افزارحداقل هر سیگنال پیوسته ای که دارای دوره T باشد را می توان با یک سری فوریه متشکل از مجموع بی نهایت امواج سینوسی و کسینوس به صورت زیر نشان داد:

جایی که a0/2 جزء ثابت سیگنال است. عنصر مجموع با کمترین فرکانس زاویه ای (w0) هارمونیک اصلی (بنیادی) نامیده می شود، بقیه هارتون ها یا هارمونیک های بالاتر هستند.

ساده ترین سیگنال پیوسته ای که با استفاده از یک میکروکنترلر اجرا می شود، یک موج مربعی است که سری فوریه به شکل زیر است:

سهم هر جزء فرکانس در سیگنال کل به بهترین وجه توسط طیف دامنه نشان داده می شود (شکل 2 را ببینید):


برنج. 2: طیف دامنه سیگنال موج مربعی

هنگام استفاده از یک فیلتر آنالوگ، مولفه DC و هارمونیک های بالاتر به طور موثر سرکوب می شوند، در حالی که در خروجی یک سیگنال سینوسی با فرکانس برابر با فرکانس موج مربع اصلی داریم.

3.2 نرم افزاربرای ایجاد پیچ ​​و خم

برنامه تولید پرپیچ و خم باید شرایط زیر را برآورده کند:

  • قادر به سنتز دو سیگنال مستطیلی مستقل باشد.
  • برای جداسازی سیگنال‌ها، دو پین خروجی برای تولید سیگنال از "گروه بالا" (Hi-Group) و "Lower" (Lo-Group) مورد نیاز است. محدوده فرکانسبه ترتیب.
  • نرم افزار باید بتواند مدت زمان سیگنال مورد نیاز را در محدوده تقریباً 65 تا 100 میلی ثانیه تنظیم کند.

میکروکنترلرهای سری MSP430 دارای تایمرهای داخلی مختلفی هستند که قادر به تولید سیگنال های موج مربعی هستند. خانواده '31x/'32x از یک تایمر 8 بیتی و یک پورت تایمر برای تولید هر دو سیگنال موج مربعی استفاده می کند. این برنامهدر فرکانس MCLK برابر با 1.048 مگاهرتز تست شده است. Timer_A در خانواده '33x می تواند به طور مستقل هر دو سیگنال مورد نیاز را تولید کند. برنامه دوم از این تایمر برای تولید امواج مربعی استفاده می کند و با هر فرکانس MCLK کار می کند. در ادامه هر دو برنامه به تفصیل مورد بحث قرار خواهند گرفت.

3.2.1 تولید امواج مربعی با استفاده از تایمر 8 بیتی و پورت تایمر

در شکل شکل 3 فلوچارتی از روش اولیه سازی برای تولید سیگنال های DTMF است. برای سنتز این دو فرکانس، از پورت تایمر و شمارنده های تایمر 8 بیتی استفاده می شود. هر یک از آنها یک رجیستر شمارنده قابل برنامه ریزی است که برای سنتز دقیق فرکانس های مورد نیاز ضروری است. اگر شمارنده‌های پورت تایمر به یک تایمر 16 بیتی تبدیل شوند و در فرکانس سیستم MCLK کلاک شوند، فرکانس‌های برد بالا را می‌توان با دقت بالا تولید کرد. هنگامی که یک وقفه رخ می دهد، خروجی مربوطه سوئیچ می شود و هر دو رجیستر شمارنده 8 بیتی تنظیم مجدد می شوند. مقادیر بارگذاری شده در دو متغیر در RAM ذخیره می شوند تا رجیسترهای داخلی برای کارهای دیگر ذخیره شوند.

فرکانس های محدوده پایین توسط یک تایمر 8 بیتی تولید می شوند. از آنجایی که رجیستر شمارنده این تایمر 8 بیت عرض دارد، تنها هر سومین وقفه باعث تغییر سطح در پین خروجی مورد نیاز می شود و امکان تولید همان فرکانس شمار را فراهم می کند.

دو خروجی تایمر - پورت ها برای تشکیل دو پیچ و خم با فرکانس های مختلف استفاده می شوند.

برنج. 3 فلوچارت روش اولیه سازی برای تولید سیگنال های DTMF

مراحل اولیه فقط یک بار انجام می شود. پس از اتمام آن، مقدار هگزادسیمال کاراکتر ارسال شده از متغیر سراسری در RAM خوانده می شود. هنگامی که دو فرکانس که تون های DTMF بالا و پایین را تشکیل می دهند از دو جدول تولید می شوند، تنها چیزی که لازم است مقداردهی اولیه و شروع هر دو تایمر است. مدت زمان ارسال با شمارش نیم چرخه فرکانس "پایین" کنترل می شود و از یک جدول اضافی خوانده می شود. پس از تکمیل این رویه، به تابع نظرسنجی باز می گردید. روال های مدیریت وقفه مربوطه، پین های پورت را تغییر می دهند. این فرآیند در شکل نشان داده شده است. 4 و 5.

وظایف تایمر-پورت فقط شامل ضبط گزارش است. سطح در خروجی پورت و بارگذاری مجدد شمارنده از RAM، در حالی که عملکرد یک تایمر 8 بیتی ساختار کمی پیچیده تری دارد: هر ورودی به وقفه توسط یک ثبت شمارنده شمارش می شود. خروجی تنها پس از سه وقفه می تواند تغییر حالت دهد. علاوه بر این، هر نیم چرخه نیز محاسبه می شود. با رسیدن به تعداد مشخصی از نیم چرخه، تولید متوقف می شود.


برنج. 4 بلوک - مدار قطع از یک تایمر 8 بیتی (Lo-Group)


برنج. 5 بلوک - مدار قطع تایمر-پورت (Hi-Group)

; تعاریف سفارشی معادله FLLMPY 32 ; ضریب فرکانس FLL در 1.048 مگاهرتز TCLK معادل FLLMPY*32768؛ TCLK: FLLMPY x f کوارتز DL equ 85 ; مدت زمان سیگنال DTMF (65..100 میلی ثانیه) LO_OUT معادل 02h ; خروجی فرکانس پایین HI_OUT معادل 04h ; خروجی فرکانس بالا RCOUNT معادله r14 ; طول شمارنده DTMF RTEMP equ r15 ; ثبت خدمات.جهانی DTMF_NR ; متغیر جهانی در RAM؛ برای عدد DTMF (0..F) ; تعاریف RAM.even .bss DTMF_TL ; حتی آدرس alignment.bss DTMF_TH .bss DTMF_NR ; متغیر جهانی در RAM؛ برای عدد DTMF (0..F). even ; تعاریف تایمر 8 بیتی TCCTL EQU 42H TCPLD EQU 43H TCDAT EQU 44H ; تعاریف پورت تایمر جهانی TPCTL equ 04bh ; کنترل پورت تایمر TPCNT1 equ 04ch ; شمارنده پورت تایمر 1 TPCNT2 equ 04dh ; شمارنده پورت تایمر 2 TPD equ 04eh ; داده تایمر پورت TPE معادل 04fh ; Timer-port-resolution.text ; جداول فرکانس DTMF: جدول شامل; تعداد چرخه های MCLK برای یک نیم چرخه. ; جدول برای فرکانس "بالا"؛ اصلاحیه اصلاحی اضافه شد. برای در نظر گرفتن زمان ورود به وقفه DTMF_HI .word 0ffffh-(TCLK/(1336*2))+25 ; فرکانس بالا برای 0 .word 0ffffh-(TCLK/(1207*2))+28 ; فرکانس بالا برای 1 .word 0ffffh-(TCLK/(1336*2))+25 ; فرکانس بالا برای 2 .word 0ffffh-(TCLK/(1477*2))+24 ; فرکانس بالا برای 3 کلمه 0ffffh-(TCLK/(1207*2))+28 ; فرکانس بالا برای 4 .word 0ffffh-(TCLK/(1336*2))+25 ; فرکانس بالا برای 5 .word 0ffffh-(TCLK/(1477*2))+24 ; فرکانس بالا برای 6 .word 0ffffh-(TCLK/(1207*2))+28 ; فرکانس بالا برای 7 .word 0ffffh-(TCLK/(1336*2))+25 ; فرکانس بالا برای 8 .word 0ffffh-(TCLK/(1477*2))+24 ; فرکانس بالا برای 9 .word 0ffffh-(TCLK/(1633*2))+22 ; فرکانس بالا برای A .word 0ffffh-(TCLK/(1633*2))+22 ; فرکانس بالا برای B .word 0ffffh-(TCLK/(1633*2))+22 ; فرکانس بالا برای C .word 0ffffh-(TCLK/(1633*2))+22 ; فرکانس بالا برای D .word 0ffffh-(TCLK/(1207*2))+28 ; فرکانس بالا برای * .word 0ffffh-(TCLK/(1477*2))+24 ; فرکانس بالا برای # ; جدول برای فرکانس "پایین" DTMF_LO .byte 0ffh-(TCLK/(941*2*3)) ; فرکانس پایین برای 0.byte 0ffh-(TCLK/(697*2*3)) ; فرکانس پایین برای 1. بایت 0ffh-(TCLK/(697*2*3)) ; فرکانس پایین برای 2. بایت 0ffh-(TCLK/(697*2*3)) ; فرکانس پایین برای 3. بایت 0ffh-(TCLK/(770*2*3)) ; فرکانس پایین برای 4.byte 0ffh-(TCLK/(770*2*3)) ; فرکانس پایین برای 5.byte 0ffh-(TCLK/(770*2*3)) ; فرکانس پایین برای 6.byte 0ffh-(TCLK/(853*2*3)) ; فرکانس پایین برای 7.byte 0ffh-(TCLK/(853*2*3)) ; فرکانس پایین برای 8. بایت 0ffh-(TCLK/(853*2*3)) ; فرکانس پایین برای 9. بایت 0ffh-(TCLK/(697*2*3)) ; فرکانس پایین برای A .byte 0ffh-(TCLK/(770*2*3)) ; فرکانس پایین برای B .byte 0ffh-(TCLK/(853*2*3)) ; فرکانس پایین برای C .byte 0ffh-(TCLK/(941*2*3)) ; فرکانس پایین برای D.byte 0ffh-(TCLK/(941*2*3)) ; فرکانس پایین برای *.byte 0ffh-(TCLK/(941*2*3)) ; فرکانس پایین برای # ; جدول مدت زمان سیگنال DTMF_L .byte 2*941*DL/1000 ; نیم چرخه برای 0. بایت 2*697*DL/1000; نیم چرخه برای 1. بایت 2*697*DL/1000; نیم چرخه برای 2. بایت 2*697*DL/1000; نیم چرخه برای 3. بایت 2*770*DL/1000; نیم چرخه برای 4. بایت 2*770*DL/1000; نیم چرخه برای 5. بایت 2*770*DL/1000 ; نیم چرخه برای 6. بایت 2*852*DL/1000 ; نیم چرخه برای 7. بایت 2*852*DL/1000; نیم چرخه برای 8. بایت 2*852*DL/1000; نیم چرخه برای 9. بایت 2*697*DL/1000; نیم چرخه برای A. بایت 2*770*DL/1000; نیم چرخه برای B.byte 2*852*DL/1000 ; نیم چرخه برای C.byte 2*941*DL/1000; نیم چرخه برای D.byte 2*941*DL/1000; نیم چرخه برای *.بایت 2*941*DL/1000; نیم چرخه برای # ;************************************************ ****************************************** ; زیربرنامه DTMF-TX DTMF ;******************************************** ******************************** DTMF_TX mov.b DTMF_NR,RTEMP ; ذخیره شماره در یک ثبت موقت mov.b DTMF_L(RTEMP),RCOUNT ; شمارشگر مدت ذخیره؛ تایمر 8 بیتی را برای فرکانس DTMF-Lo mov.b #0a8h،&TCCTL آماده کنید. ساعت از MCLK mov.b DTMF_LO(RTEMP),&TCPLD ; آماده سازی ثبت نام؛ پیش بارگذاری mov.b #000,&TCDAT ; بارگیری شمارنده از یک رجیستر؛ پیش بارگذاری bis.b #008h,&IE1 ; فعال کردن وقفه ها؛ از یک تایمر 8 بیتی؛ آماده کردن یک پورت تایمر برای فرکانس DTMF-Hi rla r15. * 2 برای mov جدول 16 بیتی DTMF_HI(RTEMP),&DTMF_TL ; ذخیره کلمه برای فرکانس بالا mov #003, RTEMP ; شمارنده برای تایمر 8 بیتی bis.b #008h,IE2 ; فعال کردن وقفه ها؛ از timer-port mov.b &DTMF_TH,&TPCNT2 ; بارگیری بایت بالا در TC2 mov.b &DTMF_TL,&TPCNT1 ; بارگیری بایت کم در TC1 bis.b #080h،&TPD ; فعال کردن تایمر 16 بیتی bis.b #HI_OUT+LO_OUT,&TPE ; فعال کردن خروجی های DTMF-Hi/Lo mov.b #090h,&TPCTL ; فعال کردن تایمر ret ;************************************************ **************************************** ; وقفه درگاه تایمر؛******************************************** *********************************** TP_INT xor.b #HI_OUT,&TPD ; معکوس کردن خروجی DTMF-Hi mov.b &DTMF_TH,&TPCNT2 ; بارگیری بایت بالا در TC2 mov.b &DTMF_TL,&TPCNT1 ; بارگیری بایت کم در TC1 bic.b #007h،&TPCTL ; پاک کردن پرچم های رتی ;************************************************ ******** *************

3.2.2 1 تولید امواج مربعی با استفاده از Timer_A

این روال تولید سیگنال DTMF فقط از Timer_A برای مربع موج هر دو فرکانس مورد نظر استفاده می کند. فرآیند مونتاژ مقادیر مناسب را برای تایمر برای استفاده از برنامه بدون توجه به مقدار فرکانس MCLK محاسبه می کند. مدت زمان سیگنال خروجی با ثابت DL بر حسب میلی ثانیه مشخص می شود.

; تعاریف سخت افزار؛ FLLMPY .equ 32 ; ضرب کننده فرکانس FLL در 1.048 مگاهرتز TCLK .equ FLLMPY*32768 ; TCLK: FLLMPY x f کوارتز DL .equ 82 ; مدت زمان سیگنال DTMF بر حسب میلی ثانیه. (65..100 ms) STACK .equ 600h ; آدرس اولیه پشته. تعاریف RAM؛ STDTMF .equ 202h ; وضعیت فرکانس سلام و لو TIM32B .equ 204 ; پسوند ثبت تایمر LENGTH .equ 206h ; شمارنده مدت زمان DTMF; .text 0F000h ; آدرس شروع برنامه؛ ; Timer_A مقداردهی اولیه: MCLK، حالت پیوسته، وقفه ها فعال است. آماده سازی ماژول های خروجی تایمر Timer_A MCLK = 1.048 مگاهرتز (اتوماتیک) ; INIT MOV #STACK,SP ;آغاز کردن اشاره گر پشته CALL #INITSR ;آغاز کردن ضریب. فرکانس های FLL و RAM MOV #ISMCLK+TAIE+CLR،&TACTL ; راه اندازی تایمر MOV.B #TA2+TA1,&P3SEL ; خروجی های TA2 و TA1 در پورت های P3.5/4 CLR TIM32B. پاک کردن ثبت تایمر تمدید شده BIS #MCONT,&TACTL ; شروع تایمر Timer_A EINT ; وقفه عمومی فعال کردن MAINLOOP ... ; حلقه اصلی؛ ;Keypress: SDTMF شامل جدول افست است. برای 2 فرکانس (0..6،0..6) در بایت بالا و پایین. MOV&TAR,R5 ; برای شروع فوری: ADD FDTMFLO,R5. آفست برای زمان کوتاهتر MOV R5,&CCR1. اولین تغییر حالت بعد از 0.71 میلی‌ثانیه MOV R5 و CCR2. 1/(2x697) = 0.71 میلی‌ثانیه MOV #OMT+CCIE،&CCTL1 ; وارونگی خروجی، وقفه بیت. MOV #OMT+CCIE,&CCTL2; خروجی معکوس، بیت وقفه MOV.B STDTMF,R5 ; شمارنده 82 میلی ثانیه RRA R5 ; تعداد تغییرات فرکانس پایین تر MOV.B DTMFL(R5),LENGTH ; برای مدت زمان سیگنال... ; ادامه برنامه؛ ; کنترل کننده وقفه از CCR0 (در اینجا استفاده نمی شود). TIMMOD0 ... RETI ; ; کنترل کننده وقفه از ثبات های ضبط-مقایسه 1..4; TIM_HND ADD &TAIV,PC ; پردازش درخواست با بالاترین؛ اولویت RETI؛ بدون درخواست وقفه: RETI JMP HCCR1 ; درخواست از CCR1 (فرکانس پایین DTMF) JMP HCCR2 ; درخواست از CCR2 (فرکانس بالا DTMF) JMP HCCR3 ; درخواست از CCR3 JMP HCCR4 ; درخواست از CCR4؛ TIMOVH INC TIM32B ; گسترش Timer_A به 32 بیت RETI. ; فرکانس پایین DTMF: TA1 خروجی واحد خروجی 1 را معکوس می کند. هر تغییر حالت برای کنترل مدت زمان سیگنال شمارش می شود. HCCR1 PUSH R5 ; ذخیره رجیسترهای استفاده شده MOV.B STDTMF,R5 ; وضعیت فرکانس پایین DTMF ADD FDTMFLO(R5),&CCR1 ; اضافه کردن نیم چرخه مدت زمان DEC.B LENGTH ; آیا مدت زمان سیگنال DL کامل شده است؟ JNZ TARET ; خیر؛ ; بله، سیگنال DTMF را متوقف کنید: وقفه ها را غیرفعال کنید. BIC #OMRS+OUT+CCIE،&CCTL1; بازنشانی TA1 BIC #OMRS+OUT+CCIE،&CCTL2 ; تنظیم مجدد TA2 TARET POP R5 ; بازیابی R5 RETI؛ بازگشت از وقفه؛ ; DTMF فرکانس بالا: TA2 خروجی واحد خروجی 2 را معکوس می کند. HCCR2 PUSH R5 ; ذخیره رجیسترهای MOV استفاده شده B STDTMF+1,R5 ; وضعیت فرکانس بالا DTMF ADD FDTMFHI(R5),&CCR2 ; اضافه کردن نیم چرخه مدت POP R5 . بازیابی R5 RETI؛ بازگشت از وقفه؛ HCCR3 ... ;کنترل وظیفه توسط رجیستر CCR3 RETI HCCR4 ... ;کنترل وظیفه توسط رجیستر CCR4 RETI ; ; جدول فرکانس DTMF: جدول شامل؛ تعداد چرخه های MCLK در نیم سیکل مقادیر تنظیم شده برای؛ فرکانس موثر MCLK در طول فرآیند مونتاژ. و به حداقل گرد می شود اشتباه احتمالیفرکانس ها؛ FDTMFLO .word ((TCLK/697)+1)/2 ; فرکانس پایین DTMF 697Hz .word ((TCLK/770)+1)/2 ; 770Hz .word ((TCLK/852)+1)/2 ; 852Hz .word ((TCLK/941)+1)/2 ; 941Hz FDTMFHI .word ((TCLK/1209)+1)/2 ; فرکانس بالا DTMF1209Hz .word ((TCLK/1336)+1)/2 ; 1336Hz .word ((TCLK/1477)+1)/2 ; 1477Hz .word ((TCLK/1633)+1)/2 ; 1633 هرتز ; جدول شامل تعداد نیم چرخه برای مدت زمان سیگنال DL (ms) است. ; فرکانس پایین تر DTMF برای شمارش استفاده می شود. DTMFL .byte 2*697*DL/1000 ; تعداد نیم چرخه.بایت 2*770*DL/1000 ; برای DL در ms.byte 2*852*DL/1000؛ .بایت 2*941*DL/1000 ; ; بخش "TIMVEC",0FFF0h ; بردارهای وقفه تایمر Timer_A .word TIM_HND ; وکتور ماژول ها 1..4 timers.word TIMMOD0 ; ماژول تایمر 0 vector.sect "INITVEC",0FFFEh ; بردار بازنشانی کنیدکلمه INIT

در زیر یک راه حل کمی سریعتر آورده شده است. با این حال، به رم بیشتری نیاز دارد زیرا ... داده های به دست آمده از جداول هر بار مجدداً محاسبه نمی شود، بلکه به طور خلاصه در RAM DTMFLO و DTMFHI ذخیره می شود. خواندن از روال های وقفه تایمر Timer_A انجام می شود. جداول استفاده شده مشابه جدول های نشان داده شده در مثال قبلی است.

FLLMPY .equ 32 ; ضرب کننده فرکانس FLL در 1.048 مگاهرتز TCLK .equ FLLMPY*32768 ; TCLK: FLLMPY x f کوارتز DL .equ 82 ; مدت زمان سیگنال DTMF. در میلی ثانیه (65..100 میلی ثانیه) STDTMF .equ 202h ; وضعیت فرکانس سلام و لو TIM32B .equ 204 ; پسوند ثبت تایمر LENGTH .equ 206h ; شمارنده مدت زمان DTMF DTMFLO .equ 208h ; نیم چرخه فرکانس پایین DTMFHI .equ 20Ah; فرکانس بالا نیم سیکل STACK .equ 600h ; پشته مقداردهی اولیه address.text 0F000h ; آدرس شروع برنامه؛ Timer_A مقداردهی اولیه: MCLK، حالت پیوسته، وقفه ها فعال است. آماده سازی ماژول های خروجی تایمر Timer_A MCLK = 1.048 مگاهرتز (اتوماتیک) ; INIT MOV #STACK,SP ; راه اندازی نشانگر پشته CALL #INITSR ; مقداردهی اولیه ضریب. فرکانس های FLL و RAM MOV #ISMCLK+TAIE+CLR،&TACTL ; شروع تایمر MOV.B #TA2+TA1,&P3SEL ; خروجی های TA2 و TA1 در پورت های P3.5/4 CLR TIM32B. پاک کردن ثبت تایمر توسعه یافته BIS #MCONT,&TACTL ;راه اندازی تایمر Timer_A EINT ; وقفه عمومی فعال کردن MAINLOOP ... ; حلقه اصلی؛ فشار کلید: SDTMF شامل افست جدول است. برای 2 فرکانس (0..6،0..6) در بایت بالا و پایین. MOV&TAR,R5 ; برای شروع فوری، FDTMFLO،R5 را اضافه کنید. آفست برای زمان کوتاهتر MOV R5,&CCR1. اولین تغییر حالت بعد از 0.71 میلی‌ثانیه MOV R5 و CCR2. 1/(2x697) = 0.71 میلی‌ثانیه؛ ; دو شمارش چرخه را برای فرکانس های DTMF واکشی کنید. MOV.B STDTMF+1,R5 ; فرکانس بالا DTMF MOV FDTMFHI(R5),DTMFHI; مدت زمان نیم چرخه MOV.B STDTMF,R5 ; فرکانس پایین DTMF MOV DTMFLO(R5),DTMFLO ; مدت نیم چرخه؛ ; شمارنده مدت RRA R5 ; تهیه فهرست بایت MOV.B DTMFL(R5),LENGTH ; تعداد تغییرات حالت فرکانس پایین MOV #OMT+CCIE،&CCTL1 ; وارونگی خروجی، وقفه بیت. MOV #OMT+CCIE,&CCTL2; وارونگی خروجی، وقفه بیت. ... بازگشت به حلقه اصلی؛ ; کنترل کننده وقفه از CCR0 (در اینجا استفاده نمی شود). TIMMOD0 ... RETI ; ; کنترل کننده وقفه از ثبات های ضبط-مقایسه 1..4; TIM_HND ADD &TAIV,PC ; پردازش درخواست با بالاترین؛ اولویت RETI؛ بدون درخواست وقفه: RETI JMP HCCR1 ; درخواست از CCR1 (فرکانس پایین DTMF) JMP HCCR2 ; درخواست از CCR2 (فرکانس بالا DTMF) JMP HCCR3 ; درخواست از CCR3 JMP HCCR4 ; درخواست از CCR4؛ TIMOVH INC TIM32B ; گسترش Timer_A به 32 بیت RETI. ; فرکانس پایین DTMF: TA1 خروجی واحد خروجی 1 را معکوس می کند. HCCR1 ADD DTMFLO,&CCR1 ; اضافه کردن نیم چرخه مدت زمان DEC.B LENGTH ; آیا مدت زمان سیگنال DL کامل شده است؟ JNZ TARET ; خیر؛ ; بله، سیگنال DTMF را متوقف کنید: وقفه ها را غیرفعال کنید. BIC #OMRS+OUT+CCIE،&CCTL1; بازنشانی TA1 BIC #OMRS+OUT+CCIE،&CCTL2 ; تنظیم مجدد TA2 TARET RETI ; بازگشت از وقفه؛ DTMF فرکانس بالا: TA2 خروجی واحد خروجی 2 را معکوس می کند. HCCR2 ADD DTMFHI,&CCR2 ; اضافه کردن نیم چرخه مدت زمان RETI ; بازگشت از وقفه؛ HCCR3. .. ;کنترل وظیفه توسط رجیستر CCR3 RETI HCCR4 ... ;کنترل وظیفه توسط رجیستر CCR4 RETI ; ; جداول و بردارهای وقفه با موارد نشان داده شده در مثال قبلی یکسان هستند.

3.3 سخت افزار برای تولید سیگنال های DTMF

همانطور که در بالا گفته شد، در محدوده فرکانس 200 هرتز.. 4600 هرتز، سطح سیگنال فرکانس ارسال باید حداقل 20 دسی بل بالاتر از سطح سیگنال های خارجی (نویز) باشد. علاوه بر این، بر اساس مشخصات، سیگنال‌های گروه‌های "بالا" و "پایین" باید سطوح مختلفی داشته باشند، بنابراین هر سیگنال به فیلتر خاص خود نیاز دارد. دامنه های فرکانس سینوسی را می توان از سری فوریه بدست آورد.

برای انتخاب فرکانس‌های قطع در هنگام طراحی فیلتر آنالوگ، باید بر اساس الزامات زیر رعایت کنید:

  • زیرا لازم است از امکان هر گونه ترکیب فرکانس های گروه "پایین" با فرکانس های گروه "بالا" اطمینان حاصل شود؛ تفاوت سطوح بین پایین ترین و بالاترین فرکانس در گروه نباید از 3 دسی بل تجاوز کند.
  • برای کمترین فرکانس در گروه (f1)، سرکوب هارمونیک (3f1) نباید بدتر از 20 دسی بل باشد. تحقق این شرط برای فرکانس پایین در گروه بسیار حیاتی است، زیرا تا حد امکان از فرکانس قطع فیلتر فاصله دارد.

این فرمول مربع قدر مطلق را در خروجی یک فیلتر باترورث بالا گذر از مرتبه n توصیف می کند:

این فرمول نشان دهنده وابستگی بهره فیلتر بالاگذر Butterworth به فرکانس است. پارامترهای fg و n به ترتیب فرکانس قطع و ترتیب فیلتر را تعیین می کنند.

قبل از هر چیز، لازم است با در نظر گرفتن رعایت الزامات فوق، ترتیب فیلتر مورد نیاز را محاسبه کنید.

برای ارضای شرط اول، نسبت مربعات مقادیر مطلق پایین ترین و بالاترین فرکانس در گروه نباید بیش از 3 دسی بل یا:

شرط دوم به طور خودکار برآورده می شود اگر نسبت مربع های مقادیر مطلق فرکانس های f1 و 3f1 بیشتر از 10/3 باشد، در این حالت هارمونیک سوم در سیگنال مستطیلی 1/3 کمتر است (فوریه را ببینید. سری و شکل 2):

در نتیجه محاسبات برای فرکانس های هر دو گروه، ترتیب فیلتر مورد نیاز n=1.15 را داریم. بنابراین، الزامات توسط یک فیلتر مرتبه دوم، که می تواند بر روی آن ساخته شود، برآورده می شود تقویت کننده عملیاتی. اگر از فیلتر مرتبه سوم استفاده می کنید، فقط به دو عنصر اضافی نیاز دارید. با این حال، این الزامات برای پراکندگی پارامترهای مؤلفه را کاهش می دهد. در صورتی که فرکانس قطع در محدوده های زیر باشد، هر دو الزام فوق برآورده می شوند:

گروه پایین fg> 880 هرتز fg<1418 Гц
گروه بالا fg> 1527 هرتز fg<2460 Гц

اگر فرکانس قطع در حداقل خود باشد، حداکثر کاهش هارمونیک رخ خواهد داد. اما در این حالت اختلاف بین کمترین و بالاترین فرکانس در گروه 3 دسی بل خواهد بود. در بالاترین فرکانس قطع ممکن، اختلاف سطح حداقل است، اما اجزای هارمونیک تنها با 20 دسی بل سرکوب می شوند.

هنگام محاسبه فیلتر، توجه بیشتری به سرکوب هارمونیک معطوف شد؛ اختلاف سطح در گروه در 2 دسی بل ثابت شد. در نتیجه، فرکانس های قطع 977 هرتز و 1695 هرتز هستند. سرکوب هارمونیک حاصل به طور قابل توجهی فراتر از الزامات است. تفاوت در سطوح فرکانس در گروه حتی در مورد انحراف فرکانس قطع مرتبط با گسترش در پارامترهای اجزای مورد استفاده در حد نیاز است. هنگام محاسبه مقادیر عناصر فیلتر، مقاومت ها بر اساس حداکثر نزدیکی آنها به مقادیر استاندارد سری E12 انتخاب شدند.

در خروجی های فیلتر، نتیجه دو سیگنال سینوسی با هارمونیک های به طور قابل توجهی سرکوب شده است. برای ترکیب این سیگنال ها، یک جمع کننده اضافی معرفی شده است.

بنابراین، تنها با استفاده از 3 آپمپ و چند عنصر غیرفعال، می‌توانیم سیگنال‌های DTMF را با استفاده از یک میکروکنترلر بدون استفاده از منابع محاسباتی قابل توجه تولید کنیم.

با استفاده از برنامه های شبیه ساز، مقادیر تقریبی بررسی شد. پاسخ فیلترها به شدت با پاسخ فرکانس محاسبه شده مطابقت دارد.


برنج. 6: طیف دامنه یک سیگنال مستطیلی با فرکانس 697 هرتز در خروجی یک فیلتر مرتبه 3

در شکل شکل 6 طیف دامنه یک سیگنال مستطیلی با فرکانس 697 هرتز را نشان می دهد که از یک فیلتر مرتبه 3 عبور می کند. همانطور که از شکل مشخص است، هارمونیک سوم و پنجم (2091 هرتز و 3485 هرتز) به طور قابل توجهی ضعیف شده است (-25.6 دسی بل).


برنج. 7: طیف دامنه یک سیگنال مستطیلی با فرکانس 941 هرتز در خروجی یک فیلتر مرتبه 3

در شکل شکل 7 طیف سیگنال موج مربعی با فرکانس 941 هرتز را نشان می دهد. در منطقه فرکانس مورد علاقه ما، تا 4600 هرتز، تنها یک هارمونیک وجود دارد. پس از عبور از فیلتر، این هارمونیک 2823 هرتز به طور قابل توجهی ضعیف می شود (-27.9 دسی بل). اختلاف سطح بین پایین ترین و بالاترین فرکانس در گروه از 1.9 دسی بل تجاوز نمی کند.

به منظور استفاده از اجزای کم هزینه با تنوع زیاد در پارامترها، مدل سازی اضافی انجام شد. نتایج شبیه سازی نشان داد که میزان پخش مجاز در مقادیر مقاومت ها و خازن ها 10 درصد است.


شکل 8: هیستوگرام – توزیع سطوح سیگنال در یک گروه


شکل 9: هیستوگرام – سرکوب هارمونیک

در شکل 8 و 9 هیستوگرام های به دست آمده با استفاده از تجزیه و تحلیل مونت کارلو را نشان می دهد. در این مورد، مقادیر مؤلفه به طور تصادفی در یک گسترش 10٪ تغییر می کند. پس از 100 تکرار، نتایج برای تمام فیلترهای شبیه سازی شده در هیستوگرام رسم می شود. در هیستوگرام در شکل. شکل 8 تفاوت سطح بین فرکانس های درون گروه را نشان می دهد. حداکثر اختلاف مجاز 3 دسی بل بین حداقل و حداکثر فرکانس در هیچ موردی به دست نیامد. مقدار متوسط ​​1.6 دسی بل است که کمی بهتر از مقدار محاسبه شده 2 دسی بل است.

در شکل شکل 9 تضعیف هارمونیک ها را برای گروه فرکانس پایین نشان می دهد. مقدار لازم 20 دسی بل در همه موارد به دست می آید، مقدار متوسط ​​تقریباً 27 دسی بل است. در بدترین حالت، هارمونیک با 24.2 دسی بل سرکوب می شود.

مقادیر محاسبه شده برای فیلتر گروه فرکانس "پایین" نیز برای فیلتر گروه فرکانس "بالا" انجام می شود.

هر دو فیلتر مدار یکسانی دارند. تنها تفاوت در فرکانس های قطع فیلترها برای گروه های فرکانس بالا و پایین است. R1 و C1 یک فیلتر بالا گذر مرتبه اول را تشکیل می دهند. زیرا مقاومت ورودی مدار نیز به R1 بستگی دارد، مقدار این عنصر نباید خیلی کوچک باشد. در غیر این صورت، خروجی های میکروکنترلر بیش از حد بارگذاری می شوند و شکل موج مربعی مخدوش می شود. در این حالت فرکانس های اضافی ناشی از اعوجاج درون مدولاسیونی به سیگنال اضافه می شود که بر نسبت سیگنال به نویز تاثیر منفی می گذارد.

عملکرد انتقال فیلترهای مرتبه بالاتر را نمی توان تنها با استفاده از اجزای غیرفعال به دست آورد.

بنابراین، فیلتر مرتبه دوم باید دارای یک آپمپ باشد. بهره فیلتر فعال با استفاده از مقاومت های R1-1 و R1-2 روی 0.2 تنظیم می شود. همانطور که می بینید، سیگنال تا حدودی ضعیف شده است. این برای جلوگیری از بارگذاری بیش از حد op-amp ضروری است، زیرا دامنه پیک هارمونیک سینوسی بنیادی سیگنال موج مربعی از دامنه خود سیگنال موج مربعی فراتر می رود (به سری فوریه و شکل 2 مراجعه کنید). یک جمع کننده اضافی سطح خروجی مورد نیاز را تنظیم می کند. با توجه به مولفه ثابت سیگنال مستطیلی، نقطه عملیاتی op-amp در سطح Vcc/2 تنظیم می شود (همچنین سری فوریه و شکل 2 را ببینید). در این حالت، مولفه ثابت نمی تواند توسط تقسیم کننده ورودی R1-1/R1-2 حذف شود. برای جدا کردن مدار سیستم عامل توسط ولتاژ DC، از خازن C3 استفاده می شود.

در هر یک از خروجی های فیلتر آنالوگ، سیگنالی از گروه های فرکانس بالا و پایین به ترتیب تولید می شود. در یک جمع کننده اضافی، این سیگنال ها اضافه می شوند. در این عنصر مدار، می توانید رابطه بین فرکانس های "پایین" و "بالا" در سیگنال کل و سطح سیگنال خروجی را با استفاده از مقاومت های R4 و R5 تنظیم کنید. بنابراین، دامنه خروجی را می توان به راحتی برای مطابقت با نیازهای مختلف در کشورهای مختلف تنظیم کرد.

هنگام محاسبه مقادیر اجزاء، مقادیر خازن طبق معمول ثابت بود و مقادیر مقاومت مطابق با آنها محاسبه شد. در این مدار از خازن ها و مقاومت های سری E12 استاندارد با اسپرد 10 درصد استفاده شد.

در شکل شکل 10 یک نمودار شماتیک از فیلترهای آنالوگ و یک جمع کننده را نشان می دهد:


برنج. 10: نمودار شماتیک فیلترهای آنالوگ با جمع کننده اضافی

خازن های C1-1 و C1-2 دو سیگنال را با هم در نقطه عملیاتی Vcc/2 ترکیب می کنند. شما نباید مقادیر خیلی بزرگ را برای این عناصر انتخاب کنید، زیرا آنها عناصر فیلتر پایین گذر برای حذف ساب هارمونیک های فرکانس پایین هستند. خازن فیلتر C5 نویز ولتاژ مرجع را حذف می کند. یک خازن اضافی C6 که به موازات مقاومت فیدبک R6 متصل شده است، یک فیلتر درجه یک بالا گذر را تشکیل می دهد. اگر کمترین فرکانس قطع فیلتر انتخاب شود، فیلتر اضافی تداخل مدولاسیون فرکانس بالا کیفیت سیگنال خروجی را بهبود می بخشد، اما در بالاترین فرکانس های گروه "بالا" مقداری کاهش می یابد. در برخی موارد، تولید بالاترین فرکانس DTMF 1633 هرتز ضروری نیست زیرا فقط برای تشکیل نمادهای سرویس A-D استفاده می شود و نسبت سیگنال به نویز را می توان با کاهش فرکانس قطع فیلتر بهبود بخشید. بنابراین، افزایش فرکانس قطع منجر به افزایش سطح تداخل فرکانس بالا می شود، اما در عین حال تأثیر منفی بر اجزای بالاترین فرکانس سیگنال DTMF کاهش می یابد.

4 نتایج مطالعات سیگنال های فرستنده DTMF

طیف نگارهای زیر (شکل 11 و 12) سیگنال های خروجی فرستنده DTMF را در فرکانس های مختلف نشان می دهد. در شکل شکل 11 طیف دامنه نماد "1" را نشان می دهد. فرکانس های مورد نیاز برای انتقال آن - 697 و 1207 هرتز - به ترتیب در سطح -10.5 دسی بل و -8.5 دسی بل هستند. هارمونیک ها در 2091 و 3621 هرتز تقریباً 30 دسی بل سرکوب می شوند. برای انتقال نماد "D"، دو فرکانس بالاتر تولید می شود - 941 و 1633 هرتز. همانطور که در شکل دیده میشود. 12، سطح فرکانس پایین -12 دسی بل، سطح فرکانس بالا -11 دسی بل است. هارمونیک های مربوطه بیش از 30 دسی بل تضعیف می شوند. بنابراین، مقادیر اندازه گیری شده با نتایج شبیه سازی و الزامات مشخصات مطابقت دارد.


برنج. 11: طیف دامنه نماد "1": 697 و 1207 هرتز


برنج. 12: طیف دامنه نماد "D": 941 و 1633 هرتز

دقت فرکانس مطلق سیگنال های موج مربعی تولید شده با استفاده از دو تایمر مختلف قابل دستیابی نیست؛ نتیجه به ترکیب دو فرکانس و نوع تایمرهای مورد استفاده بستگی دارد. دلیل این امر تداخل وقفه تایمر است. با این حال، دقت مورد نیاز ± 1.8٪ با حاشیه زیادی مواجه می شود.

اگر یک تایمر 8 بیتی و یک تایمر پورت تایمر در فرکانس سیستم MCLK 1.048 مگاهرتز استفاده شود، فرکانس های گروه "پایین" با دقت کمتر از 0.3٪ تولید می شوند. برای فرکانس های گروه "بالا"، در عمل، انحراف بیش از 0.5٪ به دست آمد.

تنها استثنا کاراکتر DTMF "D" است که بالاترین فرکانس ها برای آن تولید می شود. در نتیجه، در این ترکیب فرکانس گروه "بالا" 1633 هرتز دارای انحراف -0.97٪ است.

بدون این استثنا، حتی بالاترین فرکانس 1633 هرتز با دقتی بهتر از 0.5 درصد تولید می شود. حداکثر انحرافات برای فرکانس های مختلف در جدول آورده شده است:

اگر از Timer_A برای تولید فرکانس ها استفاده شود، خطا به فرکانس MCLK استفاده شده بستگی دارد:

MCLK، مگاهرتز 1,048 2,096 3,144 3,800
ضریب FLL 32 64 96 116
697 هرتز +0,027% +0,027% +0,027% +0,027%
770 هرتز -0,015% -0,016% +0,033% -0,016%
852 هرتز +0,059% -0,023% +0,005% +0,031%
941 هرتز +0,029% +0,029% +0,029% +0,035%
1209 هرتز -0,079% +0,036% +0,036% -0,003%
1336 هرتز +0,109% -0,018% +0,025% +0,025%
1447 هرتز -0,009% -0,009% -0,009% -0,009%
1633 هرتز +0,018% +0,018% +0,018% +0,018%

5 نتیجه گیری

نرم افزار این مثال بسیار ساده است و با اشغال حدود 300 بایت، به مقدار کمی RAM و ROM نیاز دارد. به لطف ماژول تایمر داخلی، فرکانس های مورد نیاز با دقت بالا بدون اتلاف بار CPU تولید می شوند. در پیکربندی که از یک تایمر 8 بیتی و یک تایمر/پورت برای تولید استفاده می‌شود، روال‌های وقفه تقریباً 12 درصد از منبع CPU را اشغال می‌کنند. در مواردی که فرکانس ها توسط تایمر Timer_A تولید می شوند، بار CPU برای پردازش روال های وقفه به 6٪ کاهش می یابد. در نتیجه، ممکن است در حین ارسال سیگنال های DTMF، سایر وظایف در حال اجرا باشند، یا ممکن است CPU برای کاهش مصرف جریان در حالت کم مصرف قرار گیرد.

عملکرد خوب ماژول توصیف شده برای تولید سیگنال های DTMF با استفاده از سیگنال های موج مربعی با طراحی مدار سخت افزاری نشان داده شده است. زیرا امکان استفاده از قطعات با طیف وسیعی از پارامترها در مدار وجود دارد؛ قیمت چنین راه حلی بسیار پایین است. تمام الزامات مشخصات تا حد زیادی برآورده می شود، بنابراین یک ماژول ژنراتور سیگنال DTMF جداگانه در ابزارهایی که از MSP430 به عنوان کنترل کننده استفاده می کنند مورد نیاز نیست.

اگر در یک مورد خاص نیاز به افزایش نسبت سیگنال به نویز باشد، با استفاده از یک آپمپ اضافی، می توان فیلتری برای سرکوب بیشتر اعوجاج میان مدولاسیون ساخت. چنین تقویت کننده عملیاتی اضافی در حال حاضر در چهار op-amp در بسته DIL14 وجود دارد.

6 پیوند

Bundesamt fur Post und Telekommunikation (دفتر فدرال پست و مخابرات): BAPT 223 ZV 5, Zulassungsvorschrift fur Endeinrichtungen zur Anschaltung an analoge Wahlanschlusse (ausgenommen Notruf- und Durchwahlangue telephone off- und Durchwahlanstel) برای دستگاه های تلفنی متصل به آنالوگ های خاص مستثنی کردن الزامات امنیتی و تماس) / ISDN Deutschen Bundespost Telekom. Bundesministerium fur Post und Telekommunikation، پیش نویس، بن آوریل 1994 پاپولا: Mathematik fur Ingenieure 2 (ریاضیات برای مهندسان). Vieweg Verlag, Braunschweig 1990 Tietze / Schenk: Halbleiterschaltungstechnik; (Titze/Schenk, Semiconductor Circuit Engineering), 10th.edition; Springer Verlag, Berlin 1993 Lutz Bierl / Texas Instruments: MSP430 Family, Metering Application Report, Texas Instruments, Issue 2.1, Jan 1997, SLAAE10B Texas Instruments: MSP430 Family, Architecture User's Guide and Module Library, Texas190B Texas Instruments MSP430 Family, Software User's Guide, Texas Instruments, 1996 Texas Instruments: MSP430 Family, Assembly Language Tools Guide User's Tools, Texas Instruments, 1996 Siwy, Robert: Systementwicklung einer Telekom-Aplikation zum Senden und Empfangen vonn DTMmit-Signeve DTMF-Signeve سیستم مخابراتی برای دریافت و ارسال سیگنال های دیجیتال بر اساس میکروکنترلر MSP430). Diplomarbeit, Fachhochschule Landshut, Mai 1997

ویژگی های متمایز کننده:

  • تولید امواج سینوسی با استفاده از مدولاسیون عرض پالس (PWM)
  • ترکیب سیگنال های موج سینوسی مختلف در یک سیگنال DTMF
  • کدهای منبع در زبان های اسمبلی و C
  • طراحی شده برای کار با STK500
  • اندازه کد برنامه 260 بایت / اندازه جدول ثابت 128 بایت
  • با استفاده از روش تبدیل جدول

معرفی

این سند تکنیکی را برای تولید سیگنال‌های DTMF (سیگنال‌های چند فرکانس دوگانه) با استفاده از هر میکروکنترلر AVR حاوی واحد مدولاسیون عرض پالس (PWM) و رم استاتیک توصیف می‌کند. این سیگنال‌ها به طور گسترده در تلفن استفاده می‌شوند، جایی که با فشار دادن دکمه‌های شماره‌گیری یک دستگاه تلفن بازتولید می‌شوند. برای تولید صحیح سیگنال DTMF، دو فرکانس باید روی هم قرار گیرند: فرکانس پایین (fb) و فرکانس بالا (fa). جدول 1 نشان می دهد که چگونه فرکانس های مختلف برای تولید زنگ های DTMF هنگام فشار دادن کلیدهای مختلف مخلوط می شوند.

شکل 1 - مدار مولد سیگنال DTMF

جدول 1 - ماتریس تولید سیگنال تن

fb/fa 1209 هرتز 1336 هرتز 1477 هرتز 1633 هرتز
697 هرتز 1 2 3 آ
770 هرتز 4 5 6 ب
852 هرتز 7 8 9 سی
941 هرتز * 0 # D

ردیف‌های جدول 1 مقادیر فرکانس پایین و ستون‌ها مقادیر فرکانس بالا را نشان می‌دهند. به عنوان مثال، ماتریس نشان می دهد که وقتی دکمه "5" را فشار می دهید، فرکانس های fb = 770 هرتز و fa = 1336 هرتز باید مخلوط شوند. در نتیجه افزودن دو سیگنال سینوسی با فرکانس های مختلف، یک سیگنال DTMF تشکیل می شود.

نسبت دامنه کجاست K=A b /A aسیگنال های منبع باید شرایط را برآورده کنند

اصول کارکرد، اصول جراحی، اصول عملکرد

علاوه بر اطلاعات کلی در مورد استفاده از مدولاسیون عرض پالس، در زیر نشان داده خواهد شد که چگونه مدولاسیون عرض پالس به شما امکان تولید سیگنال های سینوسی را می دهد. پاراگراف بعدی نحوه استفاده از فرکانس سوئیچینگ پایه برای به دست آوردن فرکانس های مختلف را شرح می دهد. پس از بررسی مبانی نظری، توضیحاتی در مورد خود مولد سیگنال DTMF داده خواهد شد. تولید امواج سینوسی

بسته به نسبت طول مدت سطوح ولتاژ VH بالا و VL پایین، مقدار متوسط ​​در خروجی PWM تغییر می کند. اگر نسبت بین مدت زمان هر دو سطح ثابت نگه داشته شود، یک سطح ولتاژ VAV ثابت در نتیجه تولید می شود. شکل 2 سیگنال مدوله شده با عرض پالس را نشان می دهد.


شکل 2 - تولید سطح ولتاژ DC

سطح ولتاژ با عبارت زیر تعیین می شود:

(3)

یک سیگنال سینوسی می تواند تولید شود به شرطی که مقدار متوسط ​​ولتاژ تولید شده توسط مدولاسیون عرض پالس در هر سیکل PWM تغییر کند. رابطه بین سطوح بالا و پایین باید مطابق با سطح ولتاژ موج سینوسی در زمان مربوطه تنظیم شود. شکل 3 این فرآیند را نشان می دهد. داده های منبع برای PWM برای هر یک از دوره های آن محاسبه شده و در جدول تبدیل (TC) ثبت می شود.

شکل 3 همچنین رابطه بین فرکانس موج اصلی سینوسی و تعداد نمونه ها را نشان می دهد. هر چه تعداد نمونه ها (Nc) بیشتر باشد، دقت مدل سازی سیگنال حاصل بیشتر می شود:

(4)

فرکانس PWM به وضوح PWM بستگی دارد. در وضوح 8 بیت، مقدار نهایی (بالای تعداد) تایمر 0xFF (255) است. زیرا تایمر به جلو و عقب شمارش می کند، سپس این مقدار باید دو برابر شود. بنابراین فرکانس PWM را می توان با تقسیم فرکانس ساعت تایمر f CK بر 510 محاسبه کرد.


شکل 3 - تولید یک سیگنال سینوسی با استفاده از PWM

تغییر فرکانس موج سینوسی

بیایید فرض کنیم که نمونه های سینوسی از جدول جستجو نه به صورت متوالی، بلکه یک به یک خوانده می شوند. در این حالت، با همان نرخ نمونه برداری، سیگنالی با فرکانس دو برابر تولید خواهد شد (شکل 4 را ببینید).


شکل 4 - دو برابر کردن فرکانس حاصل (XSW = 2)

به قیاس، اگر نه هر مقدار دوم، بلکه هر سوم، چهارم، پنجم را بخوانید (به ترتیب عرض گام 3، 4، 5...) و غیره است. امکان تولید فرکانس های Nc در محدوده وجود دارد. توجه داشته باشید که برای فرکانس های بالا شکل موج حاصل سینوسی نخواهد بود. عرض گام را مطابق جدول تبدیل به صورت مشخص می کنیم XSW، جایی که

(5)

محاسبه موقعیت فعلی در TP برای دوره PWM بعدی (زمانی که تایمر سرریز می شود) با استفاده از عبارت (6) انجام می شود. ارزش جدید در موقعیت X LUTبه وضعیت قبلی آن در موقعیت بستگی دارد X" LUTبا افزایش عرض پله XSW

(6)

افزودن فرکانس های مختلف برای به دست آوردن سیگنال DTMF

سیگنال DTMF را می توان با استفاده از عبارات (1) و (2) تولید کرد. برای سادگی عملیات حسابی، مقدار ضریب K برابر با 0.75 در نظر گرفته می شود تا عملیات حسابی با شیفت های منطقی جایگزین شود. با در نظر گرفتن عبارت (6)، مقدار فعلی برای کنترل PWM را می توان با عبارت زیر محاسبه کرد:

و با در نظر گرفتن آن X LUTa=X" لوتا + XSWa ,X LUTb=X" LUTb + XSWb، در نهایت آن را بنویسیم

پیاده سازی ژنراتور DTMF

این ضمیمه ساخت مولد تون DTMF را با استفاده از خروجی PWM 8 بیتی (OC1A) و جدولی با 128 نمونه تابع سینوسی (Nc) که هر کدام با 7 بیت (n) مشخص شده اند، بررسی می کند. عبارات زیر این وابستگی را نشان می دهد و همچنین نحوه محاسبه ورودی های جدول جستجو را نشان می دهد:

(9)

مزیت استفاده از 7 بیت این است که مجموع مقادیر سیگنال فرکانس بالا و پایین یک بایت است. برای پشتیبانی از مجموعه کامل زنگ های DTMF، 8 مقدار برای هر فرکانس DTMF از جدول 1 باید محاسبه و در جدول جستجو وارد شود.

برای دستیابی به دقت بالاتر، راه حل زیر پیاده سازی شد: مقادیر محاسبه شده با استفاده از عبارت 5 تنها به 5 بایت نیاز دارند. برای استفاده از تمام 8 بایت که خطاهای گرد کردن را کاهش می دهد، این مقدار در 8 ضرب می شود. اشاره گر به جدول جستجو نیز به همین ترتیب نوشته می شود. اما در این حالت دو بایت طول می کشد تا 8 برابر مقدار ذخیره شود. این بدان معناست که قبل از استفاده از این بایت ها به عنوان نشانگر مقادیر موج سینوسی، باید 3 شیفت به راست و یک عملیات مدول Nc ریشه (ضرب منطقی در Nc-1) انجام شود.


شکل 5 – نمودار ماژول برای اتصال به STK500

سیگنال PWM در پین OC1A (PD5) تولید می شود. یک فیلتر خروجی اضافی به سازگاری بیشتر سیگنال با شکل موج سینوسی کمک می کند. هنگام کاهش فرکانس PWM، ممکن است برای به دست آوردن یک نتیجه خوب، لازم باشد از فیلتری با پاسخ فرکانسی تندتر استفاده شود.

اتصال صفحه کلید در شکل 1 نشان داده شده است. عملکرد صفحه کلید باید به گونه ای سازماندهی شود که امکان تعیین کلید فشرده شده وجود داشته باشد. این کار را می توان با استفاده از الگوریتم زیر انجام داد:

  1. تعیین رشته کلید فشار داده شده
    • نوت بوک درجه پایین پورت B را به عنوان یک خروجی پیکربندی کنید و گزارش را تنظیم کنید. "0"
    • تتراد بالای پورت B را به عنوان ورودی با اتصال مقاومت های pull-up پیکربندی کنید
    • خط با دکمه فشار داده شده به عنوان رقم بالاترین تتراد با log تعریف می شود. "0"
  2. تعریف ستون کلید فشرده
    • نوت بوک بالا پورت B را به عنوان خروجی پیکربندی کنید و گزارش را تنظیم کنید. "0"
    • پیکربندی تتراد درجه پایین پورت B به عنوان ورودی با اتصال مقاومت های کششی
    • ستون با دکمه فشار داده شده به عنوان رقمی از تتراد درجه پایین با ورود به سیستم تعریف می شود. "0"

نکته: در STK200، مقاومت ها به صورت سری بین پایه های رابط PORTB و پایه های میکروکنترلر BP5، PB6 و PB7 متصل می شوند (نمودار STK200 را ببینید). در صورتی که صفحه کلید به کانکتور PORTB متصل باشد، مشکل ایجاد می کند.

شکل 6 عملکرد زیربرنامه برای تعیین کلید فشرده شده را نشان می دهد. بسته به کلید فشرده شده، مدت زمان فاصله تعیین می شود. روتین وقفه از این مقدار برای محاسبه تنظیمات PWM برای دو موج سینوسی تون DTM استفاده می کند. روش رسیدگی به وقفه در شکل های 7 و 8 نشان داده شده است.

این روال مقداری را برای مقایسه با خروجی تایمر برای دوره PWM بعدی محاسبه می کند. روال وقفه ابتدا موقعیت مقدار نمونه بعدی را در جدول جستجو محاسبه می کند و مقدار ذخیره شده در آنجا را می خواند.

موقعیت نمونه در جدول جستجو با عرض پالس و عرض پالس واقعی با فرکانس تولید شده تعیین می شود.

مقدار نهایی که در رجیستر مقایسه تایمر نوشته می شود با استفاده از فرمول (7) تعیین می شود که مقادیر نمونه هر دو فرکانس DTMF را در نظر می گیرد.


شکل 6 – بلوک دیاگرام برنامه اصلی

این اختراع مربوط به زمینه تولید دیجیتال سیگنال های فرکانس دوگانه (DTMF) است که برای انتقال داده ها، به عنوان مثال، در زمینه تلفن در نظر گرفته شده است. نتیجه فنی به دست آمده کاهش تعداد عناصر مدار اضافی، افزایش بازده اقتصادی است. مولد سیگنال DTMF، که روش تولید سیگنال های DTMF را پیاده سازی می کند، شامل دو جمع کننده تجمعی، دو رجیستر نگهدارنده، دو دستگاه ذخیره سازی، یک جمع کننده نهایی، یک مبدل دیجیتال به آنالوگ، یک مبدل کدهای سیگنال DTMF به دنباله ای از اعداد صحیح است. ، یک تقسیم کننده فرکانس مرجع ژنراتور سیگنال DTMF با ضریب تقسیم قابل تنظیم، یک مبدل کد سیگنال DTMF را به کد عامل تقسیم می کند. 2 ثانیه و 3 حقوق f-ly، 2 بیمار.

این اختراع مربوط به روش‌هایی برای تولید سیگنال‌های DTMF (فرکانس دو تن) با روش‌های دیجیتال است که برای انتقال داده‌ها در نظر گرفته شده است، به عنوان مثال، در زمینه تلفن در هنگام شماره‌گیری فرکانس تن. نزدیک‌ترین در ماهیت فنی و نتیجه به دست آمده به ادعا شده است. روش، روشی برای تولید سیگنال های DTMF است که در ثبت اختراع ایالات متحده به شماره 5034977 مورخ 04/04/89، منتشر شده است. 91/07/23 کلاس م. 5 N 04 M 1/00. یک روش شناخته شده برای تولید سیگنال های DTMF شامل انتخاب کدهای زاویه نمونه برداری اول و دوم مربوط به فرکانس های اول و دوم اجزای سیگنال DTMF، جمع آوری مجزا کدهای زاویه نمونه برداری اول و دوم به ترتیب به صورت دوره ای است. موارد ثابت، با یک دوره مربوط به فرکانس نمونه برداری ساعت، نتایج اول و دوم جمع بندی تجمعی، به دست آوردن اولین و دومین مقادیر گسسته اجزای سیگنال DTMF ذخیره شده در سلول های آدرسی جداول گسسته مربوطه. مقادیر اجزای سیگنال DTMF، با خواندن از جداول مربوطه در آدرس های مربوط به نتایج حاصل از جمع تجمعی کدهای زاویه نمونه برداری، مجموع اولین و دومین مقادیر گسسته اجزای سیگنال DTMF به سومین مقدار گسسته مربوط به مقدار سیگنال DTMF را بدست آورید.یک روش شناخته شده برای تولید سیگنال های DTMF به شرح زیر است: بسته به کد سیگنال DTMF، ابتدا با تبدیل کدهای سیگنال های DTMF، اولین کد انتخاب می شود که زاویه نمونه گیری سیگنال را با فرکانس، مربوط به گروه فرکانس های بالا - ستون ها تعیین می کند و با استفاده از تبدیل دوم کدهای سیگنال DTMF، کد دوم انتخاب می شود که زاویه نمونه گیری سیگنال را با فرکانس مربوط به تعیین می کند. گروه فرکانس های پایین - ردیف ها، به صورت دوره ای، با یک دوره متناظر با فرکانس ساعت نمونه برداری، اولین کد زاویه نمونه برداری در جمع کننده تجمعی مربوطه خلاصه می شود و در رجیستر مربوطه ثبت می شود که خروجی آن نتیجه، مقدار آن مربوط به آدرس سلول جدول ذخیره شده در حافظه فقط خواندنی مربوطه است و مقادیر گسسته مربوطه سینوس ها در آن قرار دارند که فرکانس بالایی سیگنال DTMF را به همان روش، به صورت دوره ای، با یک دوره متناظر با فرکانس ساعت نمونه برداری، دومین کد زاویه نمونه در جمع کننده انباشته مربوطه خلاصه می شود و در ثبات مربوطه ثبت می شود، خروجی آن نتیجه است که مقدار آن مطابق با آدرس سلول جدول ذخیره شده است. در دستگاه حافظه فقط خواندنی مربوطه و در آن مقادیر گسسته مربوط به سینوس ها که فرکانس پایین سیگنال DTMF را تعیین می کنند، مقادیر گسسته سینوس هایی که فرکانس های بالایی و پایینی سیگنال DTMF را تعیین می کنند جمع می شوند. در جمع‌کننده نهایی، مقدار گسسته سیگنال DTMF را تعیین می‌کند و از طریق تبدیل دیجیتال به آنالوگ، به خروجی عرضه می‌شود و یک سیگنال DTMF مرحله‌سینوسی متناظر با کد ورودی سیگنال DTMF را تشکیل می‌دهد. روش شناخته شده ناکارآمد است که به دلیل پایین بودن شاخص های فنی و اقتصادی و شاخص های تکنولوژیکی آن است، شاخص های فنی و اقتصادی با هزینه های لازم در هنگام اجرای روش تعیین می شوند تا به پارامترهای لازم مورد نیاز برای سیگنال های DTMF دست یابند. در روش شناخته شده، دقت تولید فرکانس به عمق بیت کد مربوط به زاویه نمونه گیری بستگی دارد که به عرض بیت زیادی از جمع کننده انباشته نیاز دارد که اجرای روش را با سخت افزار ساده دشوار می کند. یعنی، کد زاویه نمونه‌برداری در روش شناخته شده با عبارت K = (F/F t)32...، (1.1) تعیین می‌شود که در آن K کد مربوط به زاویه نمونه‌برداری است؛ F فرکانس تولید شده است؛ F t. همان طور که مشاهده می شود، دقت فرکانس تولید شده به وضوح به نسبت فرکانس تولید شده و فرکانس نمونه گیری بستگی دارد. حداقل دو رقم قابل توجه بعد از نقطه اعشار مورد نیاز است که برای فرکانس های پایین تر حداقل 8 بیت و برای فرکانس های بالا حداقل 9 بیت و برای جمع تجمعی حداقل 12 بیت به ارائه داده ها با عمق بیت نیاز دارد. ، که منجر به افزایش تعداد عناصر اجزای دستگاه هایی می شود که روش شناخته شده را پیاده سازی می کنند. دستگاه های شناخته شده برای پیاده سازی روش شناخته شده، یعنی جمع کننده ها، ثبات ها و دستگاه های ذخیره سازی دائمی دارای ورودی/خروجی با عرض 4 و 8 بیت هستند. بنابراین، با ظرفیت بیت بالاتر، هزینه های فنی و اقتصادی اضافی در هنگام پیاده سازی دستگاه هایی با عملکرد یکسان مورد نیاز است. علاوه بر این، در روش شناخته شده، کاهش تعداد ارقام اعشاری منجر به خطای فرکانس بیش از حد مجاز می‌شود.شاخص‌های فن‌آوری با تطبیق پذیری و یکپارچگی در اجرای روش تعیین می‌شوند، به عنوان مثال، سطح مدرن فناوری، که شامل کاهش مصرف مواد، قطعات و افزایش تطبیق پذیری دستگاه ها، مستلزم استفاده از میکروکنترلرها است. میکروکنترلرهای گسترده ای که در اندازه گیری های تلفن و تله متری استفاده می شوند از داده های 8 بیتی و یک واحد حسابی-منطقی 8 بیتی استفاده می کنند که در هنگام اجرای روش شناخته شده، به عملیات محاسباتی اضافی مرتبط با جمع کردن داده ها با عرض بیش از 8 بیت و تجزیه و تحلیل نیاز دارد. سیگنال انتقال، که تعداد دستورات و بر این اساس، فرکانس ساعت میکروکنترلر و همچنین مقدار رم میکروکنترلر را افزایش می دهد، که منجر به افزایش هزینه دستگاه هایی می شود که از روش شناخته شده برای تولید DTMF استفاده می کنند. سیگنال ها این نتیجه گیری هنگام تجزیه و تحلیل استفاده از روش شناخته شده در یک شماره گیر صوتی مبتنی بر میکروکنترلرهای تولید شده توسط Atmel، Microchip tnc و دیگران ارائه می شود. مصرف مواد، مصرف انرژی و شاخص‌های تکنولوژیک پایین، زیرا در استفاده از روش دارای محدودیت‌هایی است، از جمله به عنوان بخشی از میکروکنترلرهای پرکاربرد، که در افزایش ویژگی‌های فنی مورد نیاز میکروکنترلرها بیان می‌شود که تطبیق پذیری آنها را کاهش می‌دهد. نتیجه به دست آمده برای تولید کننده سیگنال DTMF ادعا شده سیگنال های ژنراتور DTMF است که در ثبت اختراع ایالات متحده به شماره 5034977 مورخ 04/04/89، منتشر شده است. 91/07/23 کلاس م. 5 N 04 M 1/00. مولد سیگنال DTMF شناخته شده شامل: یک جمع کننده تجمعی اول، یک رجیستر لچ اول، یک دستگاه حافظه اول، یک جمع کننده تجمعی دوم، یک رجیستر لچ دوم، یک دستگاه حافظه دوم، یک جمع کننده نهایی، یک مبدل دیجیتال به آنالوگ، که در آن خروجی اولین جمع کننده انباشته به ورودی اولین رجیستر لچ متصل می شود، خروجی اولین رجیستر لچ به ورودی اولین دستگاه حافظه و همچنین به یکی از آنها متصل می شود. ورودی های جمع کننده تجمعی اول، خروجی دستگاه حافظه اول به یکی از ورودی های جمع کننده نهایی، خروجی جمع کننده انباشته دوم به ورودی رجیستر لچ دوم، خروجی دومی متصل می شود. Holding register به ورودی دستگاه ذخیره سازی دوم و همچنین به یکی از ورودی های جمع کننده انباشته دوم متصل می شود، خروجی دستگاه ذخیره سازی دوم به ورودی دیگری از جمع کننده نهایی، خروجی جمع کننده نهایی متصل می شود. به ورودی مبدل دیجیتال به آنالوگ متصل است که خروجی آن خروجی ژنراتور سیگنال DTMF است. ژنراتور شناخته شده همچنین حاوی اولین مبدل کدهای سیگنال DTMF به کدهای مربوطه از زوایای نمونه گیری مربوط به فرکانس های بالایی است. از سیگنال DTMF، یک مبدل دوم از کدهای سیگنال DTMF به کدهای مربوط به زوایای نمونه گیری مربوط به فرکانس های پایین سیگنال DTMF، که در آن خروجی مبدل اول کدهای سیگنال DTMF به ورودی دیگری از اولین جمع کننده تجمعی متصل می شود. خروجی مبدل کد سیگنال دوم DTMF به ورودی دیگری از جمع کننده انباشته دوم متصل می شود، ورودی های مبدل کد سیگنال DTMF اول و دوم ورودی سیگنال مولد DTMF و ورودی های ساعت اولین و دومین لچینگ هستند. رجیسترها به هم متصل هستند و ورودی فرکانس ساعت نمونه برداری ژنراتور سیگنال DTMF هستند. ژنراتور سیگنال شناخته شده DTMF به دلیل تعداد بیش از حد عناصر مدار مرتبط با عناصر مختلف و همچنین ظرفیت بیت بیش از حد عناصر دارای عملکرد یکسان، نتیجه فنی پایینی را ارائه می دهد. علاوه بر این، اجرای راه حل فنی شناخته شده به طور موثر در قالب یک مدار مجتمع مجزا امکان پذیر است، با این حال، این امر مستلزم سازماندهی تولید تخصصی است، اما با توجه به اینکه ژنراتورهای سیگنال DTMF بخشی از دستگاه های چند منظوره هستند (مجموعه های تلفن با قابلیت های پیشرفته، دستگاه هایی برای انتقال اطلاعات تله متری از طریق خطوط تلفن و غیره) و غیره)، که در حال حاضر بر اساس میکروکنترلرهای جهانی اجرا می شوند، تولید ریز مدارهای سیگنال DTMF فردی از نظر اقتصادی بی اثر است. اساس راه حل فنی پیشنهادی وظیفه ایجاد یک روش است. برای تولید سیگنال های DTMF با استفاده از سیگنال مولد DTMF، که در آن با تغییر شرایط و توالی عملیات، روشی با شاخص های فنی و اقتصادی بالا، به دلیل کاهش ظرفیت بیت عملیات مشابه، نشانگرهای تکنولوژیکی بالا، اجرا می شود. پیاده سازی این روش، هم در طراحی مدار با سخت افزار ساده، و هم به عنوان بخشی از یک میکروکنترلر چند منظوره، مرتبط با تکرارپذیری، هنگام پیاده سازی، عناصر عملکردی یکسان. با معرفی عناصر جدید و ایجاد اتصالات جدید، نتیجه فنی مرتبط با کاهش تعداد المان‌های مدار اضافی افزایش می‌یابد و بر این اساس بازده اقتصادی مرتبط با امکان پیاده‌سازی راه حل فنی پیشنهادی با ابزارهای گسترده افزایش می‌یابد. حل شده است به این صورت که در روش شناخته شده تولید سیگنال های DTMF، شامل انتخاب کدهای اول و دوم زوایای نمونه گیری مربوط به فرکانس های اول و دوم اجزای سیگنال DTMF، جمع تجمعی کدهای اول و دوم زوایای نمونه برداری به طور جداگانه، به ترتیب، به طور دوره ای ثابت می شوند، با دوره ای مربوط به فرکانس ساعت نمونه برداری، نتایج اول و دوم جمع بندی تجمعی، به دست آوردن اولین و دومین مقادیر گسسته از اجزای سیگنال DTMF ذخیره شده در سلول های آدرس قرار گرفته جداول مربوط به مقادیر گسسته اجزای سیگنال DTMF، با خواندن از جداول مربوطه در آدرس های مربوط به نتایج حاصل از جمع تجمعی کدهای زاویه نمونه برداری، مجموع مقادیر گسسته اول و دوم اجزای سیگنال DTMF به سومین مقدار گسسته مربوط به مقدار سیگنال DTMF را بدست آورید، آنچه جدید است این است که به دست آوردن اولین و دومین مقادیر گسسته اجزای سیگنال DTMF ذخیره شده در سلول های آدرس پذیر جداول مربوطه مقادیر گسسته DTMF ذخیره شده است. اجزای سیگنال به ترتیب با خواندن از جداول مربوطه به آدرس های مربوط به نتایج حاصل از جمع تجمعی دنباله های اول و دوم اعداد صحیح انجام می شود که مقدار متوسط ​​آن مربوط به کدهای زوایای نمونه گیری مربوط به اجزای است. سیگنال DTMF علاوه بر این، مقدار متوسط ​​دنباله اعداد صحیح تشکیل دهنده نتیجه جمع تجمعی ممکن است میانگین حسابی این اعداد باشد، علاوه بر این، ثبت دوره ای نتایج اول و دوم جمع تجمعی ممکن است با دوره ای مطابق با فرکانس ساعت نمونه برداری، که برای سیگنال های مختلف DTMF متفاوت است. مشکل مطرح شده نیز با این واقعیت حل می شود که در مولد سیگنال DTMF شناخته شده، شامل جمع کننده انباشته اول، رجیستر لچ اول، دستگاه حافظه اول، جمع کننده انباشته دوم ، یک رجیستر لچ دوم، یک دستگاه حافظه دوم، یک جمع کننده نهایی، یک مبدل دیجیتال به آنالوگ، و خروجی اولین جمع کننده انباشته به ورودی متصل می شود. به ورودی دستگاه حافظه اول و همچنین به یکی از ورودی های جمع کننده انباشته اول، خروجی دستگاه حافظه اول به یکی از ورودی های جمع کننده نهایی متصل می شود، خروجی جمع کننده انباشته دوم است. به ورودی رجیستر لچ دوم متصل می شود، خروجی رجیستر لچ دوم به ورودی ذخیره ساز دوم متصل می شود و همچنین به یکی از ورودی های جمع کننده انباشته دوم، خروجی دستگاه ذخیره سازی دوم می باشد. متصل به ورودی دیگر جمع کننده نهایی، خروجی جمع کننده نهایی به ورودی مبدل دیجیتال به آنالوگ متصل می شود که خروجی آن خروجی سیگنال ژنراتور DTMF است، جدید، مطابق با اختراع این است که ژنراتور سیگنال DTMF علاوه بر این شامل یک مبدل از کدهای سیگنال DTMF به دنباله ای از اعداد صحیح، یک تقسیم کننده فرکانس مرجع ژنراتور سیگنال DTMF با ضریب تقسیم قابل تنظیم، یک مبدل کدهای سیگنال DTMF به یک کد ضریب تقسیم و اولین است. خروجی مبدل کدهای سیگنال DTMF در دنباله ای از اعداد صحیح به ورودی دیگری از جمع کننده تجمعی اول متصل می شود، خروجی دوم مبدل کد سیگنال DTMF در دنباله ای از اعداد صحیح به ورودی دیگری از جمع کننده تجمعی دوم متصل می شود. خروجی تقسیم کننده فرکانس اصلی ژنراتور سیگنال DTMF با ضریب تقسیم قابل تنظیم به ورودی ساعت مبدل کد سیگنال DTMF به ترتیب اعداد صحیح و همچنین با ورودی ساعت اولین رجیستر لچ و ساعت متصل می شود. ورودی رجیستر لچ دوم، خروجی مبدل کد سیگنال DTMF به کد ضریب تقسیم به ورودی تنظیم ضریب تقسیم تقسیم کننده فرکانس اصلی ژنراتور سیگنال DTMF، ورودی تقسیم کننده فرکانس اصلی ژنراتور سیگنال DTMF با ضریب تقسیم قابل تنظیم ورودی فرکانس مرجع ژنراتور سیگنال DTMF است، ورودی مبدل کدهای سیگنال DTMF به کد ضریب تقسیم به ورودی مبدل کدهای سیگنال DTMF به یک دنباله متصل می شود. اعداد صحیح و ورودی مولد سیگنال DTMF است. علاوه بر این، تبدیل کدهای سیگنال DTMF به دنباله‌ای از اعداد صحیح را می‌توان به شکل یک دستگاه حافظه قابل برنامه‌ریزی کنترل‌شده، که حافظه آن شامل تعداد سیگنال‌های DTMF، مناطق حافظه متشکل از سلول‌های حافظه مربوط به طول دنباله اعداد صحیح، سلول های حافظه طوری طراحی شده اند که نیمی از سلول حافظه عددی مربوط به اولین دنباله اعداد صحیح را ذخیره می کند و نیمی دیگر از سلول حافظه به ترتیب اعداد مربوط به دنباله دیگری از اعداد صحیح را ذخیره می کند. عبارت‌اند از جمع‌کننده‌های انباشته مربوطه، و کنترل دستگاه حافظه قابل برنامه‌ریزی به گونه‌ای پیکربندی شده است که انتخاب منطقه حافظه و یک سلول حافظه جداگانه را کنترل کند. ویژگی‌های جدید روش تولید سیگنال‌های DTMF و مولد سیگنال DTMF، همراه با شناخته شده ویژگی های این اشیاء، ویژگی های فنی جدید اشیاء را فراهم می کند و در نتیجه این ویژگی ها، یک نتیجه فنی لازم جدید ارائه می شود. برای آشکار کردن ماهیت راه حل فنی پیشنهادی، محاسبات زیر راحت خواهد بود: y(P)=sin(n) (1.2)، که در آن y(P) مقدار گسسته تابع سینوس است؛=wT =27F/Fr (1.3) - زاویه نمونه برداری، اندازه گیری شده بر حسب رادیان؛ n - شماره سریال نمونه - نمونه؛ F t = F OSC / kd - فرکانس ساعت نمونه برداری، جایی که F OSC - فرکانس تنظیم دستگاه؛ kd - قابل تنظیم ضریب تقسیم سپس = 2FC D / F O S C . (1.4) همانطور که مشخص است، تابع سینوس تناوبی با پریود 2 است. برای تبدیل زاویه نمونه گیری از رادیان به واحدهای نسبی و به دست آوردن کد زاویه نمونه، کل دوره را به m قسمت تقسیم می کنیم که m یک باینری است. عدد صحیح. بنابراین، یک حداقل بخش گسسته از دوره را به دست می آوریم: = 2/m. (1.5) کد زاویه نمونه‌برداری مقدار نسبی زاویه نمونه‌برداری مطابق با یک قسمت از دوره است، یعنی K=/=2F/F t: 2P/m=Fm/F t. (1.6) برای مثال، برای فرکانس های تولید شده 1477 هرتز و 697 هرتز (مطابق با کد سیگنال DTMF "3")، با m = 64، و فرکانس ساعت Ft = 32768 هرتز K 697 = 1.36؛ K l477 = 2.88. بدیهی است، برای باینری نمایش کد زاویه نمونه K 697 = 1.36 V، به ترتیب، 136 به 8 بیت (1281+640+320+160+81+40+20+10) و K 1477 = 2.88 ولت، 288 به 9 بیت نیاز دارد. 2561 + 1280 + 640 + 321 + 160 + 80 + 40 + 20 + 10) در همان زمان، برای جمع تجمعی، به ترتیب، در یک نمایش باینری، 12 بیت مورد نیاز است که معایب توصیف شده در بالا را مشخص می کند. راه حل. راه حل فنی پیشنهادی، برای مثال، عدد 1.36 را به عنوان مقدار متوسط ​​یک دنباله از اعداد صحیح 1 و 2، یعنی 1.36=(1x+2y)/(x+y) تعریف می کند، که در آن x و y تعداد اعداد 1 هستند. و 2 به ترتیب به صورت دوره ای با نقطه (x+y) تکرار می شود. برای مثال 1.36=1+0.36. دقت نسبی چنین جایگزینی مطابق با عبارت (1.7) = K/C (1.7) با افزایش قسمت صحیح مقدار کد زاویه نمونه‌برداری افزایش می‌یابد. به عنوان مثال، برای فرکانس تولید شده 697 هرتز، m = 64، و فرکانس ساعت F t = 32768 هرتز، خطا در جایگزینی K 697 = 1.36 با مقادیر اعداد 1 و 2 به ترتیب 36 و 32 درصد است. در همان زمان، اگر مقدار m = 256 را افزایش دهید، خطای جایگزینی K 697 = 5.45 با مقادیر اعداد 5 و 6 به ترتیب 9 و 10 درصد کاهش می یابد. خطای فرکانس تولید شده، به عنوان مثال، هنگام جایگزینی K 697 = 5.45 با مقادیر اعداد 5 و 6 در طول دوره تکرار، برابر با 16، 5.45=(5x+6y)/(x+y)، که در آن ( x+y)=16. با حل معادله، x=9، y=7، یعنی. از شانزده عملیات جمع انباشته، ترم 5 نه برابر و ترم 6 هفت بار جمع می شود، در حالی که در واقع K 697 = 5.4375، با جایگزینی این مقدار به عبارت (1.6) برای m = 256، F t = 32768 هرتز، تعیین می کنیم. مقدار واقعی محاسبه شده فرکانس تولید شده F = 696 هرتز، در حالی که خطا 0.1% باقی مانده است. شاخص های اقتصادی با کاهش ظرفیت بیت عملیات جمع تجمعی به دلیل قابلیت تغییر مولفه های عبارات فوق و بر این اساس کاهش ظرفیت بیت دستگاه های پیاده سازی روش پیشنهادی که منجر به کاهش هزینه های سخت افزاری و انرژی در هنگام پیاده سازی می شود. روش، و برای اطمینان از عملکرد تکنولوژیکی بالای روش پیشنهادی هنگام استفاده در دستگاه‌های چند منظوره به دلیل کاهش الزامات فنی. نتیجه فنی بالای ژنراتور سیگنال DTMF با معرفی عناصر جدید مبدل کد سیگنال DTMF به دنباله ای از اعداد صحیح، یک تقسیم کننده فرکانس مرجع ژنراتور سیگنال DTMF با ضریب تقسیم قابل تنظیم، یک مبدل کد سیگنال DTMF به یک تقسیم کننده تضمین می شود. کد ضریب، که اجرای روش را توسط عناصر مدار با عمق بیت یکسان، نه بیش از 8 بیت، تضمین می کند، در حالی که برای حل چندین مشکل، هیچ افزونگی عناصر لازم وجود ندارد، به عنوان مثال، هر دو برای ثبت نتیجه جمع تجمعی و برای آدرس دادن به دستگاه ذخیره‌سازی مربوطه، از همان تعداد بیت استفاده می‌شود که بیش از یک ثبات 8 بیتی پیاده‌سازی نمی‌شوند، که می‌توان آن را با ابزارهای عمومی در قالب یک ریزمدار واحد یا، در نسخه ریزپردازنده، پیاده‌سازی کرد. تک سلول حافظه علاوه بر این، پیاده سازی جمع کننده های انباشته را می توان در قالب دستگاه های یکسان، با همان عمق بیت، در قالب ریزمدارهای جمع کننده در دسترس عموم که با اضافات 4 بیتی کار می کنند، انجام داد.البته قابل درک است که اعداد و بر این اساس، دستگاه‌هایی که دنباله‌های اعداد صحیح فوق را تشکیل می‌دهند، که مجموع آنها کدهای زاویه نمونه‌گیری مربوطه را تعیین می‌کنند، ممکن است با عمق بیت متفاوتی باشند، اما بهینه‌ترین آنها، از نقطه نظر تحقق اهداف تعیین‌شده توسط راه حل پیشنهادی، اعداد 4 بیتی هستند. علاوه بر این، هنگام اجرای راه حل فنی پیشنهادی به عنوان بخشی از میکروکنترلرها، نتیجه فنی بالایی نیز تضمین می شود، که در آن دستورات میکروکنترلر سیستم لزوماً شامل دستوراتی است که با اعداد 4 بیتی - nibbles کار می کنند. راه حل فنی پیشنهادی ژنراتور سیگنال DTMF به نتایج فنی بالا مرتبط با کاهش تعداد عناصر مدار اجازه می دهد و همچنین در هنگام پیاده سازی ژنراتور سیگنال DTMF به عنوان سخت افزار در دسترس عموم و به عنوان بخشی از میکروکنترلرهای چند منظوره که تعیین کننده بازده اقتصادی بالا راه حل فنی اختراع در نقشه نشان داده شده است، جایی که شکل 1 به طور عملکردی یک ژنراتور سیگنال DTMF را نشان می دهد که روشی را برای تولید سیگنال های DTMF پیاده سازی می کند. ، تقسیم کننده 2 فرکانس مرجع سیگنال مولد DTMF با ضریب تقسیم قابل تنظیم، مبدل 3 کد سیگنال DTMF به کد ضریب تقسیم، جمع کننده انباشته اول 4، رجیستر لچ اول 5، دستگاه حافظه اول 6، دستگاه حافظه دوم 7، رجیستر لچ دوم 8، جمع کننده انباشته دوم، جمع کننده نهایی 10، مبدل دیجیتال به آنالوگ 11. عملکرد مولد سیگنال DTMF با مثالی از اجرای روشی برای تولید سیگنال های DTMF نشان داده شده است. بر روی عبارات (1.4، 1.6) و داده های فنی، به ویژه فرکانس تنظیم دستگاهی که روش پیشنهادی در آن پیاده سازی خواهد شد، دنباله های اعداد صحیح محاسبه می شوند، کدهای مربوط به زوایای نمونه برداری، و کدهای ضرایب تقسیم برای تقسیم کننده 2 تعیین می شوند. فرکانس مرجع ژنراتور سیگنال DTMF با ضریب تقسیم قابل تنظیم، که در سلول های مربوط به مناطق حافظه مبدل 1 کدهای سیگنال DTMF به ترتیب اعداد صحیح و مبدل 3 کدهای سیگنال DTMF به تقسیم نوشته می شود. کدهای ضرایب، مقادیر گسسته توابع سینوسی مربوطه نیز از قبل محاسبه شده اند، که تعداد آنها با تعداد گسسته m تعیین می شود و در حافظه های مربوطه 6 و 7، هنگام تولید یک سیگنال DTMF، در ورودی های مبدل 1 و مبدل 3 که ورودی های ژنراتور هستند، برای مدتی عمل سیگنال DTMF، کد سیگنال DTMF تولید شده تنظیم می شود، در خروجی مبدل 3 کدی تنظیم می شود که ضریب تقسیم را تعیین می کند. برای تقسیم کننده 2، در حالی که در خروجی تقسیم کننده 2 فرکانس ساعت نمونه برداری به صورت دوره ای تنظیم می شود، با دوره ای مربوط به فرکانس ساعت نمونه برداری، از اولین خروجی مبدل 1 اعداد باینری موجود در اولین دنباله اعداد صحیح وجود خواهد داشت. به ورودی اولین جمع کننده انباشته 4 عرضه می شود و از خروجی دوم مبدل 1 اعداد باینری موجود در دنباله دوم اعداد صحیح مربوط به اجزای سیگنال DTMF به ورودی انباشته دوم عرضه می شود. جمع 9، نتایج حاصل از جمع انباشته از خروجی های جمع کننده های انباشته به ورودی های رجیستر لچ مربوطه 5 و 8، از خروجی های رجیستر لچ 5 و 8، نتایج حاصل از جمع انباشته، با دوره مربوط به فرکانس ساعت نمونه برداری، به ورودی های دیگر جمع کننده های انباشته مربوطه 4 و 9 و همچنین به ورودی های دستگاه های ذخیره سازی مربوطه 6 و 7 ارسال می شود و آدرس مقادیر گسسته سینوس ها را تنظیم می کند. اجزای مربوط به سیگنال DTMF، از خروجی های دستگاه های ذخیره سازی 6 و 7، مقادیر گسسته اجزای مربوطه سیگنال DTMF به ورودی های مربوطه جمع کننده نهایی 10 عرضه می شود که در خروجی آن یک گسسته است. سیگنال DTMF باینری تشکیل می شود که به ورودی مبدل دیجیتال به آنالوگ 11 تغذیه می شود که خروجی آن یک سیگنال DTMF سینوسی پلکانی مطابق با کد ورودی سیگنال DTMF تولید می کند. مبدل 1 کدهای سیگنال DTMF به دنباله ای از اعداد صحیح (شکل 1) می تواند به شکل نشان داده شده در شکل 2 ساخته شود، جایی که مبدل کدهای سیگنال DTMF به دنباله ای از اعداد صحیح شامل یک دستگاه کنترل 12، یک حافظه قابل برنامه ریزی است. دستگاه 13. عملکرد مولد سیگنال DTMF نشان داده شده است که در زیر نمونه ای خاص از اجرای روش پیشنهادی در شماره گیر فرکانس صوتی تلفنی آورده شده است. محاسبه شده است که کدهای زاویه نمونه برداری مربوطه و کدهای ضریب تقسیم را برای تقسیم کننده 2 فرکانس مرجع ژنراتور سیگنال DTMF با نسبت تقسیم قابل تنظیم تعیین می کند. با توجه به اینکه اجرای روش شامل همان نوع محاسبات است، برای نشان دادن کار، یک مثال خاص اجرای روشی را برای تولید سیگنال DTMF مربوط به فشار دادن کلید "7" به عنوان بخشی از شماره گیر پالس صدا نشان می دهد. فرکانس کوارتز رایج ترین در فناوری تلفن، یعنی F OSC = 3579545 هرتز، به عنوان فرکانس مرجع ژنراتور تنظیم می شود. فشار دادن کلید "7" مربوط به سیگنال DTMF با فرکانس بالایی (ستون ها) 1209 هرتز و فرکانس پایین (ردیف ها) 852 هرتز است. از آنجایی که سیگنال DTMF به طور همزمان دو فرکانس را ارسال می کند، ضرایب تقسیم برای فرکانس بزرگتر - بالایی محاسبه می شود به طوری که کد زاویه نمونه گیری مربوطه مطابق با بیان (1.6) نزدیک به حداکثر مقدار - 16 است که در بیش از آن اجرا نمی شود. داده 4 بیتی بنابراین، با F OSC = 3579545 هرتز، تعداد مقادیر گسسته سینوس m = 128، مقادیر محاسبه شده ضریب تقسیم برای تقسیم کننده 2 فرکانس مرجع ژنراتور سیگنال DTMF با ضریب تقسیم قابل تنظیم KD = 240 = 460، در حالی که کدهای زاویه نمونه برداری مربوطه برای فرکانس بالا K 1209 / 852 = 10.376، برای فرکانس پایین K 852/1209 = 7.312 است. طبق اختراع، کدهای زاویه نمونه برداری را به ترتیب با دنباله اعداد صحیح جایگزین می کنیم. 10/11 و 7/8.10.375 = (10x+11y)/(x+y)، در حالی که در واقع K 1209 / 852 = 10.3757.312 = (7x+8y)/(x+y)، در حالی که در واقع K 952/1209 = 7.313، با (x+y) = 16. بنابراین، 10.375 به طور دوره ای با یک دنباله تکراری از اعداد صحیح 10 x 10 بار و 11 x 6 بار جایگزین می شود، و 7312 به عنوان 7 x 11 بار و 8 x 5 جایگزین می شود. ناحیه حافظه برای کد سیگنال DTMF "7" در نمایش باینری به شرح زیر است:
به این ترتیب، شانزده جدول مربوط به کدهای سیگنال DTMF، یعنی 0، 1، 2...9، *، #، A، B، C، D محاسبه شده و قبلاً در حافظه دستگاه حافظه قابل برنامه ریزی نوشته می شود. 13 (تبدیل کد کاراکتر DTMF به دنباله ای از اعداد صحیح) هنگامی که یک کلید را فشار دهید، به عنوان مثال، "7" در ورودی ژنراتور برای مدت زمان سیگنال DTMF، کد باینری سیگنال DTMF "7" (0111) است. مجموعه، مبدل 3 کد سیگنال DTMF به ضریب تقسیم، کد سیگنال DTMF را به کد ضریب تقسیم kd برای تقسیم کننده 2 فرکانس مرجع ژنراتور با یک ضریب تقسیم قابل تنظیم، فرکانس ساعت نمونه برداری F t =F OSC /K D تبدیل می کند. در خروجی تقسیم کننده 2 تنظیم می شود. کد سیگنال DTMF همچنین به ورودی‌های آدرس مهم‌ترین بیت‌های دستگاه حافظه قابل برنامه‌ریزی 13 (تبدیل کدهای سیگنال DTMF به دنباله‌ای از اعداد صحیح) می‌رسد و در طول مدت سیگنال DTMF در آنجا وجود دارد. دستگاه کنترل شده 12 که به عنوان مثال به شکل یک شمارنده ساخته شده است (تبدیل کدهای سیگنال DTMF به دنباله ای از اعداد صحیح)، تحت تأثیر سیگنال های ساعت با فرکانس t به طور دوره ای مقدار خود را در خروجی های موازی به صورت متوالی از 0000 به 0000 تغییر می دهد. 1111، بر این اساس، با تغییر مقادیر ورودی آدرس بیت های مرتبه پایین دستگاه حافظه قابل برنامه ریزی 13 (تبدیل کننده کدهای سیگنال DTMF به دنباله ای از اعداد صحیح)، اعداد 8 بیتی (بایتی) در خروجی ظاهر می شوند. دستگاه حافظه قابل برنامه ریزی 13 با فرکانس ساعت نمونه برداری و مطابق با جدول 1، مهم ترین چهار بیت (مهم ترین نوک انگشت) دنباله ای از اعداد صحیح را تشکیل می دهند که مجموع آنها، یعنی میانگین حسابی، کد زاویه نمونه گیری مربوطه را تعیین می کند. به فرکانس بالایی (ستون‌ها)، و چهار بیت کم‌اهمیت (نیبل کم) دنباله‌ای از اعداد صحیح را تشکیل می‌دهند که مجموع آنها، یعنی میانگین حسابی، کد زاویه نمونه‌گیری متناظر با فرکانس پایین (خط) چهار بیتی را تعیین می‌کند. داده ها، مطابق با جدول 1، از خروجی دستگاه حافظه قابل برنامه ریزی 13 (تبدیل کدهای سیگنال DTMF به دنباله ای از اعداد صحیح) به طور جداگانه به ورودی جمع کننده های تجمعی مربوطه 4 و 9 در خروجی های مربوطه عرضه می شود. جمع کننده های 4 و 9 داده ها با فرکانس ساعت نمونه برداری از 0 به متر تغییر می کنند (در این مورد m = 128)، با تعیین و ثابت کردن آدرس های دستگاه های ذخیره سازی 6 و 7 با استفاده از ثبات های 5 و 8، که مقادیر گسسته باینری در آنها وجود دارد. از اجزای سینوسی متناظر سیگنال DTMF به ترتیب نوشته شده است، از دستگاه های ذخیره سازی خروجی 6 و 7، مقادیر گسسته باینری مولفه های سینوسی مربوطه سیگنال DTMF به ورودی های مربوطه جمع کننده نهایی 10 عرضه می شود. در خروجی آن مقادیر گسسته باینری سیگنال DTMF تشکیل می شود که سپس به ورودی مبدل دیجیتال به آنالوگ 11 عرضه می شود که در خروجی آن یک سیگنال DTMF سینوسی پلکانی تولید می شود. ژنراتور سیگنال DTMF را می توان بر اساس ابزارهای فنی شناخته شده پیاده سازی کرد، به عنوان مثال در موارد زیر شرح داده شده است: کاربرد مدارهای مجتمع در فناوری رایانه الکترونیکی. کتاب راهنما / ویرایش. B.N. Fayzulaeva، B.V. تارابرینا. - M.: Radio and Communications, 1986. در این مورد، تبدیل 3 کدهای سیگنال DTMF به کدهای ضریب تقسیم را می توان به عنوان مثال در قالب یک تراشه حافظه فقط خواندنی 155PE 3 (ص. 343) ساخت. اجرای رجیسترها در صفحه توضیح داده شده است. 108، اجرای جمع کننده های تجمعی در صفحه توضیح داده شده است. 114. روش اختراعی و مولد سیگنال DTMF نیز بر اساس سخت افزار Microchip Inc پیاده سازی شده است. (ریزکنترلرهای تک تراشه 8 بیتی از نوع pic16f628)، به عنوان بخشی از شماره گیر تلفن پالس "Kadran - NKT - 01" تولید شده توسط شرکت "Kadran" (اوکراین، Zaporozhye). سیستم فرمان و ساختار داخلی گره های میکروکنترلر در: Prokopenko B.Ya توضیح داده شده است. میکروکنترلرهای تک تراشه. Dodeka، 2000، ISBN8-87835-056-4 شرحی از پارامترهای سیگنال DTMF، به عنوان مثال، در: مدارهای مجتمع: تراشه‌های تلفنی آورده شده است. مسئله 1. - م.: دودکا، 1994، 256 ص. - ISBN-5-87835-003-3.، ص. 12، 13.

مطالبه

1. روشی برای تولید سیگنال‌های فرکانس دوگانه (DTMF)، شامل انتخاب کدهای زاویه نمونه‌برداری اول و دوم مربوط به فرکانس‌های اول و دوم اجزای سیگنال DTMF، جمع‌آوری مجزا کدهای زاویه نمونه‌برداری اول و دوم به ترتیب دوره‌ای. دوره های ثابت مربوط به فرکانس ساعت نمونه برداری، نتایج اول و دوم از جمع تجمعی، به دست آوردن اولین و دومین مقادیر گسسته اجزای سیگنال DTMF ذخیره شده در سلول های آدرسی جداول مربوطه مقادیر گسسته اجزای سیگنال DTMF، با خواندن از جداول مربوطه در آدرس های مربوط به نتایج حاصل از جمع تجمعی کدهای زاویه نمونه برداری، مجموع مقادیر گسسته اول و دوم اجزای سیگنال DTMF برای به دست آوردن سومین مقدار گسسته متناظر با مقدار از سیگنال DTMF، مشخص می شود که اولین و دومین مقادیر مجزای اجزای سیگنال DTMF ذخیره شده در سلول های آدرس پذیر جداول مربوطه مقادیر گسسته اجزای سیگنال DTMF با خواندن از جداول مربوطه در آدرس ها، مربوط به نتایج حاصل از جمع تجمعی دنباله های اول و دوم اعداد صحیح، به ترتیب، که مقدار متوسط ​​آن مربوط به کدهای زوایای نمونه برداری، اجزای متناظر سیگنال DTMF است. روش طبق ادعای 1، مشخص می شود که مقدار متوسط ​​دنباله اعداد صحیح که نتیجه جمع تجمعی را تشکیل می دهند، میانگین حسابی این اعداد است. روش طبق ادعای 1، مشخص می شود که نتایج اول و دوم جمع انباشته به طور دوره ای با دوره ای مربوط به فرکانس ساعت نمونه برداری، که برای سیگنال های مختلف DTMF متفاوت است، ثبت می شود. یک مولد سیگنال DTMF، شامل یک جمع کننده تجمعی اول، یک رجیستر لچ اول، یک دستگاه حافظه اول، یک جمع کننده تجمعی دوم، یک رجیستر لچ دوم، یک دستگاه حافظه دوم، یک جمع کننده نهایی، یک مبدل دیجیتال به آنالوگ، که در آن خروجی اولین جمع کننده انباشته به ورودی اولین لچ رجیستر، خروجی رجیستر لچ اول به ورودی اولین دستگاه حافظه و همچنین به یکی از ورودی های اولین جمع کننده تجمعی، خروجی دستگاه حافظه اول به یکی از ورودی های جمع کننده نهایی وصل می شود، خروجی جمع کننده انباشته دوم به ورودی رجیستر لچ دوم و خروجی رجیستر لچ دوم به ورودی گیره متصل می شود. دستگاه حافظه دوم و همچنین با یکی از ورودی های جمع کننده تجمعی دوم، خروجی دستگاه ذخیره سازی دوم به ورودی دیگر جمع کننده نهایی و خروجی جمع کننده نهایی به ورودی یک عدد دیجیتال متصل می شود. مبدل به آنالوگ که خروجی آن خروجی یک مولد سیگنال DTMF است که مشخص می شود مولد سیگنال DTMF علاوه بر این شامل کدهای مبدل سیگنال های DTMF در دنباله ای از اعداد صحیح است که یک تقسیم کننده فرکانس مرجع مولد سیگنال DTMF است. با یک ضریب تقسیم قابل تنظیم، یک مبدل کدهای سیگنال DTMF به یک کد ضریب تقسیم، که در آن اولین خروجی مبدل کدهای سیگنال DTMF در دنباله ای از اعداد صحیح به ورودی دیگری از جمع کننده انباشته اول، خروجی دوم متصل می شود. کدهای مبدل سیگنال های DTMF در دنباله ای از اعداد صحیح به ورودی دیگری از جمع کننده تجمعی دوم متصل می شود، خروجی تقسیم کننده فرکانس تنظیم شده ژنراتور سیگنال DTMF با ضریب تقسیم قابل تنظیم به ورودی ساعت مبدل کدها متصل می شود. سیگنال های DTMF در یک دنباله از اعداد صحیح، و همچنین به ورودی ساعت اولین رجیستر لچ و ورودی ساعت رجیستر نگهدارنده دوم، خروجی مبدل کد سیگنال DTMF به یک کد ضریب تقسیم به ورودی تنظیم متصل می شود. ضریب تقسیم تقسیم کننده فرکانس مرجع ژنراتور سیگنال DTMF، ورودی تقسیم کننده فرکانس مرجع ژنراتور سیگنال DTMF با ضریب تقسیم قابل تنظیم ورودی فرکانس مرجع ژنراتور سیگنال DTMF، ورودی مبدل کد سیگنال DTMF به کد ضریب تقسیم به ورودی مبدل کد سیگنال DTMF به دنباله ای از اعداد صحیح متصل می شود و ورودی مولد سیگنال DTMF است. 5. ژنراتور سیگنال DTMF طبق ادعای 4، مشخصه آن این است که مبدل کد سیگنال های DTMF به دنباله ای از اعداد صحیح به شکل یک دستگاه حافظه قابل برنامه ریزی کنترل شده ساخته می شود که حافظه آن متناظر با تعداد سیگنال های DTMF است. نواحی حافظه متشکل از سلول های مربوط به طول دنباله اعداد صحیح حافظه، طراحی شده به گونه ای شماره مربوط به دنباله دیگری از اعداد صحیح ذخیره می شود که عبارت از جمع کننده های انباشته مربوطه است و کنترل دستگاه حافظه قابل برنامه ریزی با قابلیت کنترل جداگانه انتخاب یک ناحیه حافظه و یک سلول حافظه جداگانه انجام می شود.

شماره گیری زنگی (سیگنال دهی چند فرکانس دوگانه، DTMF) توسط آزمایشگاه بل در دهه 50 قرن گذشته برای تلفن دکمه ای انقلابی آن زمان توسعه یافت. برای نمایش و انتقال داده های دیجیتال در حالت تن، از یک جفت فرکانس (تن) از محدوده فرکانس گفتار استفاده می شود. این سیستم دو گروه از چهار فرکانس را تعریف می کند و اطلاعات با ارسال دو فرکانس به طور همزمان، یکی از هر گروه، کدگذاری می شود. در مجموع شانزده ترکیب برای نمایش شانزده عدد، نماد و حروف مختلف به دست می آید. رمزگذاری DTMF اکنون در طیف گسترده ای از برنامه های ارتباطی و کنترل استفاده می شود، به عنوان مثال، توصیه اتحادیه بین المللی مخابرات (ITU) Q.23 نشان می دهد.

این مقاله مدار یک مولد تن DTMF را توصیف می کند که هر هشت فرکانس را بازتولید می کند و سیگنال خروجی دو رنگ حاصل را تولید می کند. سیستم مورد بحث حول تراشه Silego GreenPAK™ SLG46620V و تقویت کننده های عملیاتی Silego SLG88104V ساخته شده است. سیگنال حاصل از مجموع دو فرکانس تعیین شده توسط سطر و ستون صفحه کلید تلفن است.

مدار پیشنهادی از چهار ورودی برای انتخاب ترکیب فرکانس برای تولید استفاده می کند. مدار همچنین دارای یک ورودی فعال است که تولید را آغاز می کند و مدت زمان ارسال سیگنال را تعیین می کند. فرکانس خروجی ژنراتور با استاندارد ITU برای DTMF مطابقت دارد.

زنگ های DTMF

استاندارد DTMF کدگذاری اعداد 0-9، حروف A، B، C و D و کاراکترهای * و # را به صورت ترکیبی از دو فرکانس تعریف می کند. این فرکانس ها به دو گروه تقسیم می شوند: گروه فرکانس بالا و گروه فرکانس پایین. جدول 1 فرکانس ها، گروه ها و نمادهای مربوطه را نشان می دهد.

میز 1. کدگذاری تن DTMF

گروه سه گانه

گروه کم پاس

فرکانس ها برای جلوگیری از هارمونیک های متعدد انتخاب شدند. علاوه بر این، مجموع یا تفاوت آنها منجر به فرکانس متفاوت DTMF نمی شود. به این ترتیب از هارمونیک ها یا اعوجاج مدولاسیون جلوگیری می شود.

استاندارد Q.23 مشخص می کند که خطای هر فرکانس ارسالی باید در ± 1.8٪ از مقدار اسمی باشد و اعوجاج کل (به دلیل هارمونیک ها یا مدولاسیون) باید 20 دسی بل کمتر از فرکانس های اساسی باشد.

سیگنال حاصل که در بالا توضیح داده شد را می توان به صورت زیر توصیف کرد:

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

که در آن fhigh و flow فرکانس های متناظر از گروه های فرکانس بالا و پایین هستند.

شکل 1 سیگنال حاصل را برای رقم "1" نشان می دهد. شکل 2 طیف فرکانس مربوط به این سیگنال را نشان می دهد.

برنج. 1. تن DTMF

برنج. 2. طیف تن DTMF

مدت زمان صداهای DTMF بسته به برنامه خاصی که از کدگذاری آهنگ استفاده می کند می تواند متفاوت باشد. برای رایج ترین برنامه ها، مقادیر مدت زمان معمولاً بین شماره گیری دستی و خودکار قرار می گیرند. جدول 2 خلاصه ای از مدت زمان معمول برای دو نوع استخدام را نشان می دهد.

جدول 2. مدت زمان سیگنال های شماره گیری آهنگ

نوع شماره گیری

گروه سه گانه

گروه سه گانه

شماره گیری دستی

شماره گیری خودکار

برای ارائه انعطاف پذیری بیشتر، ژنراتور DTMF ارائه شده در این راهنما مجهز به ورودی فعال است که برای شروع تولید سیگنال و تعیین مدت زمان استفاده می شود. در این حالت، مدت زمان سیگنال برابر با مدت زمان پالس در ورودی فعال است.

قسمت آنالوگ مدار ژنراتور DTMF

توصیه ITU Q.23 سیگنال های DTMF را به عنوان سیگنال های آنالوگ ایجاد شده توسط دو موج سینوسی تعریف می کند. در مدار مولد DTMF پیشنهادی، آی سی Silego GreenPAK SLG46620V سیگنال های موج مربعی را با فرکانس های DTMF مورد نظر تولید می کند. برای به دست آوردن سیگنال های سینوسی با فرکانس مورد نیاز و تشکیل سیگنال حاصل (مجموع دو موج سینوسی)، فیلترهای آنالوگ و جمع کننده مورد نیاز است. به همین دلیل در این پروژه تصمیم گرفته شد که از فیلترها و ترکیبی بر پایه تقویت کننده های عملیاتی SLG88104V استفاده شود.

شکل 3 ساختار قسمت آنالوگ پیشنهادی دستگاه را نشان می دهد.

برنج. 3. مدار پردازش آنالوگ برای دریافت سیگنال DTMF

از فیلترهای آنالوگ برای به دست آوردن سیگنال های سینوسی از پالس های مستطیلی استفاده می شود. پس از انجام فیلترینگ، دو سیگنال جمع شده و سیگنال DTMF دو رنگ خروجی مورد نظر تولید می شود.

شکل 4 نتیجه تبدیل فوریه را نشان می دهد که برای بدست آوردن طیف سیگنال موج مربع استفاده می شود.

برنج. 4. طیف سیگنال موج مربعی

همانطور که می بینید، موج مربع فقط شامل هارمونیک های فرد است. اگر چنین سیگنالی را با دامنه A به صورت سری فوریه نمایش دهیم، شکل زیر را خواهد داشت:

تجزیه و تحلیل این عبارت به ما امکان می دهد نتیجه بگیریم که اگر فیلترهای آنالوگ تضعیف کافی برای هارمونیک ها داشته باشند، می توان سیگنال های سینوسی با فرکانس برابر با فرکانس سیگنال موج مربعی اصلی را به دست آورد.

با در نظر گرفتن تلرانس سطح تداخل تعریف شده در استاندارد Q.23، لازم است اطمینان حاصل شود که همه هارمونیک ها 20 دسی بل یا بیشتر ضعیف می شوند. علاوه بر این، هر فرکانس از گروه پایین گذر باید با هر فرکانس از گروه بالا گذر ترکیب شود. با در نظر گرفتن این الزامات، دو فیلتر، یکی برای هر گروه ایجاد شد.

هر دو فیلتر فیلترهای باترورث پایین گذر بودند. تضعیف یک فیلتر مرتبه n Butterworth را می توان به صورت زیر محاسبه کرد:

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

جایی که fc فرکانس قطع فیلتر است، n ترتیب فیلتر است.

تفاوت میرایی بین کمترین فرکانس و بالاترین فرکانس هر گروه نمی تواند بیش از 3 دسی بل باشد، بنابراین:

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

با توجه به مقادیر مطلق:

A(fHIGHER) 2 / A(FLOWER) 2 > 2.

همچنین همانطور که قبلاً گفتیم تضعیف هارمونیک باید 20 دسی بل یا بیشتر باشد. در این حالت، بدترین حالت، کمترین فرکانس در گروه خواهد بود، زیرا هارمونیک 3 آن کمترین فرکانس است و نزدیکترین فرکانس به فرکانس قطع فیلتر است. با توجه به اینکه هارمونیک سوم 3 برابر کمتر از هارمونیک اصلی است، فیلتر باید شرایط (مقادیر مطلق) را داشته باشد:

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

اگر این معادلات برای هر دو گروه اعمال شود، فیلترهای مورد استفاده باید فیلترهای درجه دوم باشند. این بدان معنی است که اگر با استفاده از آپ امپ اجرا شوند، هر کدام دو مقاومت و دو خازن خواهند داشت. اگر از فیلترهای مرتبه سوم استفاده می شد، حساسیت به تحمل اجزا کمتر می شد. فرکانس های قطع فیلتر انتخاب شده برای گروه پایین گذر 977 هرتز و برای گروه بالا گذر 1695 هرتز است. در این مقادیر، تفاوت در سطوح سیگنال در گروه های فرکانس با الزامات فوق مطابقت دارد و حساسیت به تغییرات فرکانس قطع به دلیل تحمل اجزا حداقل است.

نمودارهای شماتیک فیلترهای پیاده سازی شده با استفاده از SLG88104V در شکل 5 ارائه شده است. رتبه بندی اولین جفت R-C به گونه ای انتخاب شده است که جریان خروجی تراشه SLG46620V را محدود کند. لینک فیلتر دوم بهره را تعیین می کند که 0.2 است. دامنه سیگنال های موج مربعی نقطه کار تقویت کننده عملیاتی را روی 2.5 ولت تنظیم می کند. ولتاژهای ناخواسته توسط خازن های فیلتر خروجی مسدود می شوند.

برنج. 5. نمودارهای شماتیک فیلترهای خروجی

در خروجی، سیگنال های فیلتر جمع می شوند و سیگنال حاصل، مجموع هارمونیک های انتخاب شده از گروه فرکانس های پایین و بالا است. برای جبران تضعیف فیلتر، دامنه سیگنال خروجی را می توان با استفاده از دو مقاومت R9 و R10 تنظیم کرد. شکل 6 مدار جمع کننده را نشان می دهد. شکل 7 کل قسمت آنالوگ مدار را نشان می دهد.

برنج. 6. نمودار شماتیک جمع کننده

برنج. 7. قسمت آنالوگ مدار

بخش دیجیتال مدار مولد تن DTMF

بخش دیجیتال مدار مولد تن DTMF شامل مجموعه کاملی از مولدهای موج مربعی است - یکی برای هر فرکانس DTMF. از آنجایی که برای ایجاد این ژنراتورها به هشت شمارنده نیاز است، تراشه GreenPAK SLG46620V برای اجرای آنها انتخاب شد. در خروجی های مدار دیجیتال، دو سیگنال مستطیلی، یکی برای هر گروه فرکانس تولید می شود.

سیگنال‌های موج مربعی با استفاده از شمارنده‌ها و فلیپ فلاپ‌های D تولید می‌شوند و دارای چرخه کاری 50 درصدی هستند. به همین دلیل فرکانس سوئیچینگ شمارنده دو برابر فرکانس DTMF مورد نیاز است و فلیپ فلاپ DFF سیگنال خروجی را به دو قسمت تقسیم می کند.

منبع ساعت برای شمارنده ها یک نوسان ساز داخلی 2 مگاهرتز است که فرکانس آن بر 4 یا 12 تقسیم می شود. تقسیم کننده با در نظر گرفتن ظرفیت بیت و حداکثر مقدار هر شمارنده مورد نیاز برای به دست آوردن یک مقدار خاص انتخاب می شود. فرکانس.

برای تولید فرکانس‌های بالا، نمونه‌های کمتری مورد نیاز است، بنابراین از شمارنده‌های 8 بیتی برای تولید آن‌ها استفاده می‌شود که از یک نوسان‌گر داخلی RC کلاک شده است که سیگنال آن بر 4 تقسیم می‌شود. به همین دلیل، فرکانس‌های پایین‌تر با استفاده از شمارنده‌های 14 بیتی پیاده‌سازی می‌شوند.

SLG46620V تنها دارای سه شمارنده استاندارد 14 بیتی است، بنابراین یکی از فرکانس های پایین تر با استفاده از شمارنده 8 بیتی CNT8 پیاده سازی شده است. برای اینکه تعداد نمونه ها در محدوده 0...255 قرار گیرد، برای کلاک این CNT8 لازم بود از یک سیگنال نوسان ساز RC تقسیم بر 12 استفاده شود. برای این مدار، فرکانس با بیشترین تعداد نمونه، که است، کمترین فرکانس، انتخاب شد. این به ما اجازه داد تا خطا را به حداقل برسانیم.

جدول 3 پارامترهای هر موج مربعی را نشان می دهد.

جدول 3. پارامترهای ژنراتورهای پالس مربعی

ساعت

خطای فرکانس [%]

گروه کم پاس

گروه سه گانه

همانطور که از جدول مشخص است، تمام فرکانس ها دارای خطای کمتر از 1.8٪ هستند، بنابراین با استاندارد DTMF مطابقت دارند. این ویژگی های محاسبه شده، بر اساس فرکانس ایده آل نوسان ساز RC، می توانند با اندازه گیری فرکانس خروجی نوسانگر RC تنظیم شوند.

اگرچه در مدار پیشنهادی همه ژنراتورها به صورت موازی کار می کنند، سیگنال تنها یک ژنراتور از هر گروه به خروجی ریزمدار ارسال می شود. انتخاب سیگنال های خاص توسط کاربر تعیین می شود. این کار با استفاده از چهار ورودی GPIO (دو بیت برای هر گروه) با جدول صدق نشان داده شده در جدول 4 انجام می شود.

جدول 4. جدول انتخاب فرکانس از گروه فرکانس پایین

گروه کم پاس

جدول 5. جدول انتخاب فرکانس از گروه فرکانس بالا

گروه سه گانه

شکل 8 مدار منطقی یک مولد موج مربعی 852 هرتز را نشان می دهد. این الگو برای هر فرکانس با تنظیمات شمارنده مناسب و پیکربندی LUT تکرار می شود.

برنج. 8. مولد پالس مستطیلی

شمارنده فرکانس خروجی را تولید می کند که با تنظیمات آن تعیین می شود. این فرکانس برابر با دو برابر فرکانس تن DTMF مربوطه است. پارامترهای پیکربندی کنتور در شکل 9 نشان داده شده است.

برنج. 9. نمونه ای از راه اندازی یک شمارنده مولد پالس مستطیلی

سیگنال خروجی شمارنده به ورودی ساعت فلیپ فلاپ D-Flip Flop متصل می شود. از آنجایی که خروجی DFF به صورت معکوس پیکربندی شده است، اگر خروجی DFF را به ورودی آن وصل کنید، فلیپ فلاپ D به فلیپ فلاپ T تبدیل می شود. پارامترهای پیکربندی DFF را می توان در شکل 10 مشاهده کرد.

برنج. 10. نمونه ای از راه اندازی یک ماشه مولد پالس مستطیلی

سیگنال خروجی DFF به ورودی جدول حقیقت LUT داده می شود. LUT ها برای انتخاب یک سیگنال برای هر ترکیب خاص R1-R0 استفاده می شوند. نمونه ای از پیکربندی LUT در شکل 11 نشان داده شده است. در این مثال، اگر R1 1 و R0 0 دریافت کند، سیگنال ورودی به خروجی ارسال می شود. در موارد دیگر، خروجی حاوی "0" است.

برنج. 11. مثالی از تنظیم جدول صدق یک مولد پالس مربعی

همانطور که در بالا ذکر شد، مدار پیشنهادی دارای ورودی Enable Enable است. اگر یک واحد منطقی "1" در ورودی مجوز Enable وجود داشته باشد، سیگنال های مستطیلی تولید شده به یک جفت خروجی ریزمدار عرضه می شود. مدت زمان انتقال برابر است با مدت زمان پالس در ورودی فعال. برای پیاده سازی این ویژگی، چندین LUT دیگر مورد نیاز بود.

همانطور که در شکل 12 نشان داده شده است، گروه high-pass از یک LUT 4 بیتی و یک LUT 2 بیتی استفاده می کند.

برنج. 12. مدار خروجی گروه سه گانه

LUT1 4 بیتی به عنوان یک دروازه OR پیکربندی شده است، بنابراین اگر 1 در هر یک از ورودی های آن وجود داشته باشد، منطق 1 را خروجی می دهد. جداول صدق C1/C0 اجازه می دهد که تنها یکی از نوسانگرها انتخاب شود، بنابراین LUT1 4 بیتی تعیین می کند که کدام سیگنال خروجی است. خروجی این LUT به LUT4 2 بیتی متصل است که تنها در صورتی سیگنال را ارسال می کند که ورودی فعال یک منطق "1" باشد. شکل 13 و 14 تنظیمات LUT1 4 بیتی و LUT4 2 بیتی را نشان می دهد.

برنج. 13. پیکربندی LUT1 4 بیتی

برنج. 14. پیکربندی LUT4 2 بیتی

از آنجایی که دیگر LUTهای جداول حقیقت 4 بیتی وجود نداشت، از دو LUT 3 بیتی برای گروه کم گذر استفاده شد.

برنج. 15. مدار خروجی گروه پایین گذر

مدار داخلی کامل GreenPAK SLG46620V در شکل 16 نشان داده شده است. شکل 17 نمودار مدار نهایی ژنراتور DTMF را نشان می دهد.

برنج. 16. بلوک دیاگرام تون ژنراتور DTMF

برنج. 17. نمودار شماتیک یک مولد تن DTMF

تست مدار ژنراتور DTMF

در مرحله اول آزمایش ژنراتور DTMF پیشنهادی، تصمیم گرفته شد که فرکانس تمام سیگنال های مستطیلی تولید شده با استفاده از یک اسیلوسکوپ بررسی شود. به عنوان مثال، شکل 18 و 19 خروجی موج مربعی را برای 852 هرتز و 1477 هرتز نشان می دهد.

برنج. 18. موج مربع 852 هرتز

برنج. 19. موج مربعی 1477 هرتز

هنگامی که فرکانس تمام سیگنال های موج مربعی بررسی شد، آزمایش قسمت آنالوگ مدار آغاز شد. سیگنال های خروجی برای تمام ترکیبات فرکانس های پایین و بالا مورد بررسی قرار گرفت. به عنوان مثال، شکل 20 مجموع سیگنال های 770 هرتز و 1209 هرتز را نشان می دهد و شکل 21 مجموع سیگنال های 941 هرتز و 1633 هرتز را نشان می دهد.

برنج. 20. صدای DTMF 770 هرتز و 1209 هرتز

برنج. 21. صدای DTMF 941 هرتز و 1633 هرتز

نتیجه

در این مقاله، مداری برای یک تون ژنراتور DTMF بر اساس تراشه Silego GreenPAK SLG46620V و تقویت‌کننده‌های عملیاتی Silego SLG88104V پیشنهاد شد. ژنراتور به کاربر اجازه می دهد تا ترکیبی از فرکانس های مورد نظر را با استفاده از چهار ورودی انتخاب کند و ورودی فعال را کنترل کند، که مدت زمان سیگنال های خروجی را تعیین می کند.

ویژگی های تراشه SLG46620V:

  • نوع: آی سی سیگنال مختلط قابل برنامه ریزی.
  • بلوک های آنالوگ: ADC 8 بیتی، دو DAC، شش مقایسه کننده، دو فیلتر، ION، چهار نوسانگر یکپارچه.
  • بلوک های دیجیتال: تا 18 پورت I/O، ماتریس اتصال و منطق ترکیبی، مدارهای تاخیر قابل برنامه ریزی، مولد تابع قابل برنامه ریزی، شش شمارنده 8 بیتی، سه شمارنده 14 بیتی، سه نوسانگر/مقایسه کننده PWM.
  • رابط ارتباطی: SPI;
  • محدوده ولتاژ تغذیه: 1.8…5 ولت؛
  • محدوده دمای عملیاتی: -40…85 درجه سانتیگراد.
  • نسخه بسته: 2 x 3 x 0.55 میلی متر STQFN 20 پین.

ویژگی های متمایز کننده

  • تولید امواج سینوسی با استفاده از مدولاسیون عرض پالس (PWM)
  • ترکیب سیگنال های موج سینوسی مختلف در یک سیگنال DTMF
  • کدهای منبع در زبان های اسمبلی و C
  • طراحی شده برای کار با STK500
  • اندازه کد برنامه 260 بایت / اندازه جدول ثابت 128 بایت
  • با استفاده از روش تبدیل جدول

معرفی

این سند تکنیکی را برای تولید سیگنال‌های DTMF (سیگنال‌های چند فرکانس دوگانه) با استفاده از هر میکروکنترلر AVR حاوی واحد مدولاسیون عرض پالس (PWM) و رم استاتیک توصیف می‌کند. این سیگنال‌ها به طور گسترده در تلفن استفاده می‌شوند، جایی که با فشار دادن دکمه‌های شماره‌گیری یک دستگاه تلفن بازتولید می‌شوند. برای تولید صحیح سیگنال DTMF، دو فرکانس باید روی هم قرار گیرند: فرکانس پایین (fb) و فرکانس بالا (fa). جدول 1 نشان می دهد که چگونه فرکانس های مختلف برای تولید زنگ های DTMF هنگام فشار دادن کلیدهای مختلف مخلوط می شوند.


شکل 1. مدار مولد سیگنال DTMF

جدول 1. ماتریس تولید تن

fb/fa 1209 هرتز 1336 هرتز 1477 هرتز 1633 هرتز
697 هرتز 1 2 3 آ
770 هرتز 4 5 6 ب
852 هرتز 7 8 9 سی
941 هرتز * 0 # D

ردیف‌های جدول 1 مقادیر فرکانس پایین و ستون‌ها مقادیر فرکانس بالا را نشان می‌دهند. به عنوان مثال، ماتریس نشان می دهد که وقتی دکمه "5" را فشار می دهید، فرکانس های fb = 770 هرتز و fa = 1336 هرتز باید مخلوط شوند. در نتیجه افزودن دو سیگنال سینوسی با فرکانس های مختلف، یک سیگنال DTMF تشکیل می شود.

که در آن نسبت دامنه K=A b /A a سیگنال های اصلی باید شرایط را برآورده کند

اصول کارکرد، اصول جراحی، اصول عملکرد

علاوه بر اطلاعات کلی در مورد استفاده از مدولاسیون عرض پالس، در زیر نشان داده خواهد شد که چگونه مدولاسیون عرض پالس به شما امکان تولید سیگنال های سینوسی را می دهد. پاراگراف بعدی نحوه استفاده از فرکانس سوئیچینگ پایه برای به دست آوردن فرکانس های مختلف را شرح می دهد. پس از بررسی مبانی نظری، توضیحاتی در مورد خود مولد سیگنال DTMF داده خواهد شد. تولید امواج سینوسی

بسته به نسبت طول مدت سطوح ولتاژ VH بالا و VL پایین، مقدار متوسط ​​در خروجی PWM تغییر می کند. اگر نسبت بین مدت زمان هر دو سطح ثابت نگه داشته شود، یک سطح ولتاژ VAV ثابت در نتیجه تولید می شود. شکل 2 سیگنال مدوله شده با عرض پالس را نشان می دهد.


شکل 2. تولید سطح ولتاژ DC

سطح ولتاژ با عبارت زیر تعیین می شود:

(3)

یک سیگنال سینوسی می تواند تولید شود به شرطی که مقدار متوسط ​​ولتاژ تولید شده توسط مدولاسیون عرض پالس در هر سیکل PWM تغییر کند. رابطه بین سطوح بالا و پایین باید مطابق با سطح ولتاژ موج سینوسی در زمان مربوطه تنظیم شود. شکل 3 این فرآیند را نشان می دهد. داده های منبع برای PWM برای هر یک از دوره های آن محاسبه شده و در جدول تبدیل (TC) ثبت می شود.

شکل 3 همچنین رابطه بین فرکانس موج اصلی سینوسی و تعداد نمونه ها را نشان می دهد. هر چه تعداد نمونه ها (Nc) بیشتر باشد، دقت مدل سازی سیگنال حاصل بیشتر می شود:

(4)

فرکانس PWM به وضوح PWM بستگی دارد. در وضوح 8 بیت، مقدار نهایی (بالای تعداد) تایمر 0xFF (255) است. زیرا تایمر به جلو و عقب شمارش می کند، سپس این مقدار باید دو برابر شود. بنابراین فرکانس PWM را می توان با تقسیم فرکانس ساعت تایمر f CK بر 510 محاسبه کرد.


شکل 3. تولید موج سینوسی با استفاده از PWM

تغییر فرکانس موج سینوسی

بیایید فرض کنیم که نمونه های سینوسی از جدول جستجو نه به صورت متوالی، بلکه یک به یک خوانده می شوند. در این حالت، با همان نرخ نمونه برداری، سیگنالی با فرکانس دو برابر تولید خواهد شد (شکل 4 را ببینید).


شکل 4. دو برابر کردن فرکانس حاصل (XSW = 2)

به قیاس، اگر نه هر مقدار دوم، بلکه هر سوم، چهارم، پنجم را بخوانید (به ترتیب عرض گام 3، 4، 5...) و غیره است. امکان تولید فرکانس های Nc در محدوده وجود دارد. توجه داشته باشید که برای فرکانس های بالا شکل موج حاصل سینوسی نخواهد بود. عرض گام را مطابق جدول تبدیل به صورت X SW نشان می دهیم، جایی که

(5)

محاسبه موقعیت فعلی در TP برای دوره PWM بعدی (زمانی که تایمر سرریز می شود) با استفاده از عبارت (6) انجام می شود. مقدار جدید در موقعیت X LUT به حالت قبلی آن در موقعیت X" LUT با افزودن عرض پله X SW بستگی دارد.

(6)

افزودن فرکانس های مختلف برای به دست آوردن سیگنال DTMF

سیگنال DTMF را می توان با استفاده از عبارات (1) و (2) تولید کرد. برای سادگی عملیات حسابی، مقدار ضریب K برابر با 0.75 در نظر گرفته می شود تا عملیات حسابی با شیفت های منطقی جایگزین شود. با در نظر گرفتن عبارت (6)، مقدار فعلی برای کنترل PWM را می توان با عبارت زیر محاسبه کرد:

و با در نظر گرفتن اینکه X LUTa =X" LUTa + X SWa,X LUTb =X" LUTb + X SWb، در نهایت می نویسیم

پیاده سازی ژنراتور DTMF

این ضمیمه ساخت مولد تون DTMF را با استفاده از خروجی PWM 8 بیتی (OC1A) و جدولی با 128 نمونه تابع سینوسی (Nc) که هر کدام با 7 بیت (n) مشخص شده اند، بررسی می کند. عبارات زیر این وابستگی را نشان می دهد و همچنین نحوه محاسبه ورودی های جدول جستجو را نشان می دهد:

(9)

مزیت استفاده از 7 بیت این است که مجموع مقادیر سیگنال فرکانس بالا و پایین یک بایت است. برای پشتیبانی از مجموعه کامل زنگ های DTMF، 8 مقدار برای هر فرکانس DTMF از جدول 1 باید محاسبه و در جدول جستجو وارد شود.

برای دستیابی به دقت بالاتر، راه حل زیر پیاده سازی شد: مقادیر محاسبه شده با استفاده از عبارت 5 تنها به 5 بایت نیاز دارند. برای استفاده از تمام 8 بایت که خطاهای گرد کردن را کاهش می دهد، این مقدار در 8 ضرب می شود. اشاره گر به جدول جستجو نیز به همین ترتیب نوشته می شود. اما در این حالت دو بایت طول می کشد تا 8 برابر مقدار ذخیره شود. این بدان معناست که قبل از استفاده از این بایت ها به عنوان نشانگر مقادیر موج سینوسی، باید 3 شیفت به راست و یک عملیات مدول Nc ریشه (ضرب منطقی در Nc-1) انجام شود.


شکل 5. نمودار ماژول برای اتصال به STK500

سیگنال PWM در پین OC1A (PD5) تولید می شود. یک فیلتر خروجی اضافی به سازگاری بیشتر سیگنال با شکل موج سینوسی کمک می کند. هنگام کاهش فرکانس PWM، ممکن است برای به دست آوردن یک نتیجه خوب، لازم باشد از فیلتری با پاسخ فرکانسی تندتر استفاده شود.

اتصال صفحه کلید در شکل 1 نشان داده شده است. عملکرد صفحه کلید باید به گونه ای سازماندهی شود که امکان تعیین کلید فشرده شده وجود داشته باشد. این کار را می توان با استفاده از الگوریتم زیر انجام داد:

  1. تعیین رشته کلید فشار داده شده
    • نوت بوک درجه پایین پورت B را به عنوان یک خروجی پیکربندی کنید و گزارش را تنظیم کنید. "0"
    • تتراد بالای پورت B را به عنوان ورودی با اتصال مقاومت های pull-up پیکربندی کنید
    • خط با دکمه فشار داده شده به عنوان رقم بالاترین تتراد با log تعریف می شود. "0"
  2. تعریف ستون کلید فشرده
    • نوت بوک بالا پورت B را به عنوان خروجی پیکربندی کنید و گزارش را تنظیم کنید. "0"
    • پیکربندی تتراد درجه پایین پورت B به عنوان ورودی با اتصال مقاومت های کششی
    • ستون با دکمه فشار داده شده به عنوان رقمی از تتراد درجه پایین با ورود به سیستم تعریف می شود. "0"

نکته: در STK200، مقاومت ها به صورت سری بین پایه های رابط PORTB و پایه های میکروکنترلر BP5، PB6 و PB7 متصل می شوند (نمودار STK200 را ببینید). در صورتی که صفحه کلید به کانکتور PORTB متصل باشد، مشکل ایجاد می کند.

شکل 6 عملکرد زیربرنامه برای تعیین کلید فشرده شده را نشان می دهد. بسته به کلید فشرده شده، مدت زمان فاصله تعیین می شود. روتین وقفه از این مقدار برای محاسبه تنظیمات PWM برای دو موج سینوسی تون DTM استفاده می کند. روش رسیدگی به وقفه در شکل های 7 و 8 نشان داده شده است.

این روال مقداری را برای مقایسه با خروجی تایمر برای دوره PWM بعدی محاسبه می کند. روال وقفه ابتدا موقعیت مقدار نمونه بعدی را در جدول جستجو محاسبه می کند و مقدار ذخیره شده در آنجا را می خواند.

موقعیت نمونه در جدول جستجو با عرض پالس و عرض پالس واقعی با فرکانس تولید شده تعیین می شود.

مقدار نهایی که در رجیستر مقایسه تایمر نوشته می شود با استفاده از فرمول (7) تعیین می شود که مقادیر نمونه هر دو فرکانس DTMF را در نظر می گیرد.


شکل 6. بلوک دیاگرام برنامه اصلی


شکل 7. بلوک دیاگرام فرآیند پردازش وقفه سرریز تایمر


شکل 8. فلوچارت روش خواندن نمونه "GetSample".

انتشار: www.cxem.net

مقالات دیگر را ببینیدبخش.