اختصاصی از
فی ژوو دانلودمقاله پروژه شماره گیر (DTMF) TONE بوسیلة AVR دانلود با لینک مستقیم و پر سرعت .
چکیده:
DTMF یا Dual Tone Multiple Frequecies روشی است برای تولید سیگنالهای Tone به منظور استفاده در سیستمهای تلفن، مودم، کارتهای صوتی و غیره. این روش با توجه به استاندارهای مشخصی که دارد این امکان و قابلیت را به ما می دهد تا سیگنال Tone مورد نظر را توسط میکروکنترلرها و یا AVR طراحی و پیاده سازی کنیم.
فهرست مطالب:
• مقدمه
• DTMF و روش تولید آن
- DTMF چیست؟
- روش تولید DTMF
- مدولاسیون پهنای پالس PWM
• میکروکنترلز AVR AT9058515
- اجزاء اصلی
- توضیح پایه ها
- معماری AVR
- ساختمان فضای حافظه
- مدهای آدرس دهی
• تولید DTMF نوسط AT9058515
- آشنایی با تایمر 1
- تعیین مدهای تایمر برای تولید DTMF
• نرم افزار مربوط به پروژه:
- الگوریتم و فلوچارت برنامه
- جزئیات برنامه
• سخت افزار و شماتیک پروژه
مقدمه:
در این پروژه ما به بررسی چگونگی عملکرد DTMF Generator می پردازیم و خواهیم دید که سیگنال DTMF چیست و چگونه می توان آنرا تولید کرد برای این منظور روشی را باختصار توضیح می دهیم که با نحوه ساخت یک سیگنال DTMF بطور کامل آشنا شویم.
بعد از اینکه در مورد DTMF صحبت کردیم با میکروکنترلری که در این پروژه مورد استفاده قرار گرفته اشنا می شویم. میکروکنترلر AVR با سریال AT9058515 ساخت شرکت Atmel می باشد که ابتدا با قابلیتها و اجزاء آشنا می شویم و بعد از آن خواهیم دید چگونه می توان برای تولید موج DTMF به ما کمک کند.
بعد از اینکه با DTMF آشنا شدیم و AT9058515 را مورد بررسی قرار دادیم می خواهیم ببینیم که چگونه می توان با استفاده از AT9058515 سیگنال مورد نظر را تولید کرد. برای این منظور رجیسترها، پایه ها و دیگر اجزایی که در تولید DTMF سهیم هستند را بررسی می کنیم.
در قسمت بعدی نرم افزار مربوط به پروژه را خواهیم دید و الکوریتمها و فلوچارتهای مربوط به برنامه را بررسی می کنیم.
در نهایت و در آخرین بخش سخت افزار و شماتیک پروژه را می بینیم و راجع به آن صحبت خواهیم کرد. البته لازم به ذکر است با توجه به اینکه در این پروژه ما به طراحی و پیاده سازی DTMF توسط AT9058515 پرداختیم و عملاً این مسئله را شبیه سازی کردیم لذا IC هایی که در بازار موجود هستند، موج DTMF را تولید می کنند معرفی می کنیم، ICهایی مانند AT94K یا AT94S یا AT90S4414 و غیره ساخت شرکت Atmel برای همین منظور طراحی و ساخته شده اند و می توان از آنها برای مصارف مربوط به DTMF استفاده کرد.
• DTMF و روش تولید آن:
DTMF چیست؟ (Uual Tone Multiple Freg.)
در این قسمت می خواهیم به شرح DTMF بپردازیم و ببینیم چگونه می توان آنرا توسط یک میکروکنترلر AVR با PWM و SRAM پیاده سازی کرد.
در کاربردهایی مانند تلفن برای انتقال اطلاعات شماره گیری از DTMF استفاده می کنند. عملاً در تولید یک سیگنال DTMF، دو فرکانس متفاوت با هم جمع می شوند و یک سیگنال DTMF صحیح را تولید می کنند. یک فرکانس پائین یا (fb) و یک فرکانس بالا یا (fa) جدول زیر نشان مکی دهد که چگونه دو فرکانس متفاوت با هم ترمیب می شوند و به فرم موج DTMF درمی آیند.
(فایل DTMFTable از پوشه Articlepix)
. شکل جدول DTMFTable.
سطرهای نشان داده شده در جدول فوق ارائه دهنده فرکانسهای پائین (fb) درحالیکه ستونهای جدول ارائه دهنده مقدار فرکانسهای بالا (fa) هستند. بطور مثال، این جدول ماتریسی نشان می دهد که عدد 5 توسط دو فرکانس پائین fb=770Hz و فرکانس بالای fa=1336Hz نشان داده می شود. دو فرکانس fa و fb بوسیله فرمول فوق به یک موج DTMF تبدیل می شوند.
(فایل Formula 182 از پوشه Articlepix)
که البته باید به نکته و شرط بالا در مورد دامنه دو فرکانس توجه داشت.
- روش تولید DTMF:
در این قسمت ابتدا باید یک توضیح کلی از استفاده PNM برای تولید DTMF می دهیم و می بینیم که DWM چطور به ما کمک می کند که یک موج سینوسی تولید کنیم.
تولید موج سینوسی:
با توجه به رابطه میان سطح بالایی ولتاژ و سطح پائینی ولتاژ خروجی پایه PWM می بینیم که ولتاژ میانگین در این پایه چطور تغییر خواهد کرد. همانطوذ که می بینیم اگر در رابطه زیر هر دو سطح ولتاژ ثابت باشند لذا یک سطح ولتاژ ثابت خواهیم داشت. اما اگر x و y را تغییر دهیم با کم و زیاد کردن ط و y مقدار VAV ما تغییر خواهد کرد. پس به این ترتیب می بینیم که یک موج سینوسی در صورتی تولید می شود که میانگین ولتاژ پایه PWM در هر سیکل تغییر کند.
(فایل VAV از پوشه Articlepix)
(فایل VAV Formula از پوشه Articlepix)
رابزه میان سطح بالا و پائین ولتاژ در رابطه فوق سطح ولتاژ سینوسی ما را در زمانهای مخصوص تنظیم می کند با توجه به شکل زیر می بینیم که یک موج سینوسی با پریود T چطور تولید شده است.
(فایل Sinware از پوشه Articlepix)
شکل بالا رابطه میان فرکانس پایه موج سینوسی و میزان نمونه ها را بایان می کند هرچه تعداد نمونه ها (Nc) بیشتر باشد دقت سیگنال خروجی بیشتر خواهد بود. معادله زیر بیانگر رابطه میان فرکانس موج پایه و تعداد نمونه هاست.
(فایل FpwmFormula از پوشه Articlepix)
همانطور که می بینیم فرکانس pwm به دقت وضوح pwm بستگی دارد بطور مثال برای دقت وضوح 8 بیتی بیشترین مقدار تایید براب با OXFF یا همان (255) می باشد. برای اینکه تایمر بالا و پائین می رود این مقدار باید دو برابر باشد با تقسیم فرکانس FCK یز عدد 510 فرکانس موج pwm بدست می اید پس اگر فرض کنیم فرکانس FCK برابر با 8MHZ باشد درنتیجه فرکانس موج PWM برابر 15.6KHZ می باشد. شکل زری مشخص کننده موج سینوسی با 12 نمونه پالس است.
(فایل SinwaveFig از پوشه Articlepix)
با توجه به شکل می بینیم که برای تنظیم مقادیر PWM می توان یا آنرا در هر سیکل محاسبه کرد یا مقادیر آن در یک (LUT) look-up Table ذخیره کرد. اکنون اگر بخواهیم موجی با فرکانس دیگری داشته باشیم می توانیم بجای اینکه همة PWM ها را بطور مرتب و با ترتیب کنار هم قرار دهیم اعدادی از آنها را انتخاب می کنیم مثلاً اگر بخواهیم فرکانس دو برابر شود باید بجای اینکه مقادیر PWM در هر ثانیه را انتخاب کنیم مقادیر آنرا در هر ثانیه یکبار از LUT انتخاب کنیم پس با این وجود اگر بیائیم بجای آنکه در هر ثانیه نمونه را انتخاب کنیم مثلاً هر سه یا چهار یا پنج یا … ثانیه یکبار نمونه ها را از LUT انتخاب فرکانس ما سه یا چهار یا پنج یا … می شود و عملاً می توانیم موجهایی با فرکانسهای مختلف از هرتز تا صفر هرتز داشته باشیم.
(فایل XSW از پوشه Articlepix)
با توجه به شکا فوق می بینیم که عرض هر پالس در هر نمونه یا فاصله و گام بین هر نمونه با XSW مشخص می شود. معادله بالا بیانگر رابطة XSW با تعداد نمونه ها و فرکانس موج سینوسی است. در ادامه رابطه ای را می بینیم برای انتخاب XSW در حر حالت، یعنی مقدار XSW در حالت جدید برابر است با X’LUT یعنی مقدلر ما در جدول به اضافه XSW که در نهایت XLUT را در حالت جدید به ما می دهد.
(فایل XLUT از پوشه Article pix)
نکته قابل توجه برای ما اینست که باید XSW را روند کنیم و این عمل را بوسیلة فرمول زیر انجام میدهیم:
(فایل RXSW از پوشه Article pix)
اکنون با توجه به اینکه در این پرئژه ما با استفاده از NC=128 نمونه موج سینوسی را تولید می کنیم با استفاده n=7 بیت جدولی را با استفاده از فزمول زیر می سازیم.
(فایل Fx از پوشه Article pix)
در نهایت بطور مثال شکل موج حاصل از کلید 8 که تشکیل شده است از هر فرکانس fb=852HZ و فرکانس ستون fa=1336HZ در زیر می بینیم:
(فایل oscope از پوشه Article pix)
• مدولاسیون پهنای پالس (Pulse Width Modulation):PWM
برای ساخت یک شکل موج سینوسی با سطح DC متغیر می توان سطوح مختلف DC را کنار هم قرار داد و شکل موح سینوسی را تقریب بزنیم. اگر تعداد پله ها برای رسیدن به Vomax، n باشد آنگاه تعداد کل در یک پریود 2n خواهد بود که با فرض پهنای پله T0 آنگاه T دوره تناوب برابر است با 2nT0 (T=2nT0 دوره تناوب)
برای ساخت dc متغیر با n سطح می توان T0 را بر n تقسیم کرد و عدد بدست آمده t’0 که همان حداقل زمان قابل تشخیص است را بدست می آوریم. برای داشتن سطح dc متفاوت با توجه به شکل زیر مقدار dc برابر خواهدبود با
بنابراین می توان Vdc با n سطح قابل تشخیص را با PWM تولید کرد مثلاً برای موج 1KHZ پریود برابر خواهد بود که اگر 16 1/n بگیریم آنگاه تعداد پله ها برابر 2 16=32 خواهد بود که عرض هر پله برابر 32 است بنابراین است که میکروکنترلر قادر است در این زمان یک دستورالعمل را انجام دهد.
برای فرکانسهای پائین تر که معنی داشتن T های بالاتر است دو راه وجود دارد که یکی افزایش n یا تعداد پله هاست، دیگری تکرار پالس dc است.یعنی یا قدرت تفکیک را افزایش می دهیم و یا مثل شکل زیر هر پالس dc متغیر را M بار تکرار می کنیم تا شکل مطلوب آید بطور مثال یک شکل موج با M=4 می بینیم.
اما برای مثلاً فرکانس 100HZ با n=16 چطور باید M را انتخاب کرد؟ باید بصورت زیر عمل کرد:
تعداد پله های قابل = عرض هر پله پیاده سازی برابر با 32 است
پریود یعنی با 32 پله که هر پله به 16 قسمت تقسیم شده است.
و طولی برابر با دارد ما باید هر پله را 10 بار تکرار کنیم تا در نهایت پریود کل 10 برابر شود. در اینصورت برای 1HZ باید 1000 بار پاله ای را تکرار کنیم که راه حل معقول تر استفاده از n بزرگتر مثل n=256 با M=4 است.
بدین ترتیب برای فرکانسهای مختلف n و m مناسب را یافته و در یک جدول می ریزیم و در یک EEPROM ذخیره می کنیم و بسته به فرکانس درخواستی n و m مناسب را فرا می خوانیم. در این برنامه فرض بر آن است که n در خانه 40h و n در خانه 4h از قبل ذخیره شده باشند برنامه نویس به وسیلة برنامه زیر شکل موج درخواستی ما را تولید می کند.
N Equ 30h
M Equ 30h
TH Equ 30h
T’H Equ 30h
.
.
.
.
Mov N,40h
Loop1: Call Pwm
Cjne TH,n,inc-TH
Jmp Loop2
Inc-TH: Inc TH
Jmp Loop1
Loop2: Call PWM
Djnz TH,100P2
Jmp Loop1
.
.
.
.
PWM: Mov TH’ , TH
Setb Pout
Djnz T’H , $
Mov A,n
Sub A,TH
CLR Pout
Djnz A,$
Mov T’H,TH
Djnz M, PWM
Ret
یکی دیگر از روشهای پیاده سازی PTMF که روش سخت افزاری می باشد استفاده از R و C های مختلف برای تولید فرکانس های سورزنوا در جدول است بدین ترتیب که با داستن پریود و دانستن را بطری T=RC که T پریود موج ما می باشد می توانیم فرکانس مورد نظر را تولید کنیم مثلاً با معلوم بودن مقاومت و پریود ما ظرفیت خازنی که می تواند فرکانس مورد نظر را به ما دهد مشخص خواهد شد. البته در این طراحی ملاحظاتی از قبیل مقدار جریان متناسب با R و یا نویز تولید شده توسط R و C در اثر گرما وجود خواهد داشت که در طراحی ما تأثیر گذار خواهد بود.
فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد
تعداد صفحات این مقاله 27 صفحه
پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید
دانلود با لینک مستقیم
دانلودمقاله پروژه شماره گیر (DTMF) TONE بوسیلة AVR