تحقیق در مورد پروژه شماره گیر (DTMF) TONE بوسیله AVR

word قابل ویرایش
27 صفحه
8700 تومان
87,000 ریال – خرید و دانلود

پروژه شماره گیر (DTMF) TONE بوسیله AVR

چکیده:
DTMF یا Dual Tone Multiple Frequecies روشی است برای تولید سیگنالهای Tone به منظور استفاده در سیستمهای تلفن، مودم، کارتهای صوتی و غیره. این روش با توجه به استاندارهای مشخصی که دارد این امکان و قابلیت را به ما می دهد تا سیگنال Tone مورد نظر را توسط میکروکنترلرها و یا AVR طراحی و پیاده سازی کنیم.

فهرست مطالب:
• مقدمه
• DTMF و روش تولید آن
– DTMF چیست؟
– روش تولید DTMF

– مدولاسیون پهنای پالس PWM
• میکروکنترلز AVR AT9058515
– اجزاء اصلی
– توضیح پایه ها

– معماری AVR
– ساختمان فضای حافظه
– مدهای آدرس دهی
• تولید DTMF نوسط AT9058515
– آشنایی با تایمر ۱
– تعیین مدهای تایمر برای تولید 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) هستند. بطور مثال، این جدول ماتریسی نشان می دهد که عدد ۵ توسط دو فرکانس پائین 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 بستگی دارد بطور مثال برای دقت وضوح ۸ بیتی بیشترین مقدار تایید براب با OXFF یا همان (۲۵۵) می باشد. برای اینکه تایمر بالا و پائین می رود این مقدار باید دو برابر باشد با تقسیم فرکانس FCK یز عدد ۵۱۰ فرکانس موج pwm بدست می اید پس اگر فرض کنیم فرکانس FCK برابر با ۸MHZ باشد درنتیجه فرکانس موج PWM برابر ۱۵٫۶KHZ می باشد. شکل زری مشخص کننده موج سینوسی با ۱۲ نمونه پالس است.
(فایل 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)
در نهایت بطور مثال شکل موج حاصل از کلید ۸ که تشکیل شده است از هر فرکانس fb=852HZ و فرکانس ستون fa=1336HZ در زیر می بینیم:
(فایل oscope از پوشه Article pix)

• مدولاسیون پهنای پالس (Pulse Width Modulation):PWM
برای ساخت یک شکل موج سینوسی با سطح DC متغیر می توان سطوح مختلف DC را کنار هم قرار داد و شکل موح سینوسی را تقریب بزنیم. اگر تعداد پله ها برای رسیدن به Vomax، n باشد آنگاه تعداد کل در یک پریود ۲n خواهد بود که با فرض پهنای پله T0 آنگاه T دوره تناوب برابر است با ۲nT0 (T=2nT0 دوره تناوب)
برای ساخت dc متغیر با n سطح می توان T0 را بر n تقسیم کرد و عدد بدست آمده t’۰ که همان حداقل زمان قابل تشخیص است را بدست می آوریم. برای داشتن سطح dc متفاوت با توجه به شکل زیر مقدار dc برابر خواهدبود با

بنابراین می توان Vdc با n سطح قابل تشخیص را با PWM تولید کرد مثلاً برای موج ۱KHZ پریود برابر خواهد بود که اگر ۱۶ ۱/n بگیریم آنگاه تعداد پله ها برابر ۲ ۱۶=۳۲ خواهد بود که عرض هر پله برابر ۳۲ است بنابراین است که میکروکنترلر قادر است در این زمان یک دستورالعمل را انجام دهد.

برای فرکانسهای پائین تر که معنی داشتن T های بالاتر است دو راه وجود دارد که یکی افزایش n یا تعداد پله هاست، دیگری تکرار پالس dc است.یعنی یا قدرت تفکیک را افزایش می دهیم و یا مثل شکل زیر هر پالس dc متغیر را M بار تکرار می کنیم تا شکل مطلوب آید بطور مثال یک شکل موج با M=4 می بینیم.

اما برای مثلاً فرکانس ۱۰۰HZ با n=16 چطور باید M را انتخاب کرد؟ باید بصورت زیر عمل کرد:
تعداد پله های قابل = عرض هر پله پیاده سازی برابر با ۳۲ است
پریود یعنی با ۳۲ پله که هر پله به ۱۶ قسمت تقسیم شده است.
و طولی برابر با دارد ما باید هر پله را ۱۰ بار تکرار کنیم تا در نهایت پریود کل ۱۰ برابر شود. در اینصورت برای ۱HZ باید ۱۰۰۰ بار پاله ای را تکرار کنیم که راه حل معقول تر استفاده از n بزرگتر مثل n=256 با M=4 است.

بدین ترتیب برای فرکانسهای مختلف n و m مناسب را یافته و در یک جدول می ریزیم و در یک EEPROM ذخیره می کنیم و بسته به فرکانس درخواستی n و m مناسب را فرا می خوانیم. در این برنامه فرض بر آن است که n در خانه ۴۰h و n در خانه ۴h از قبل ذخیره شده باشند برنامه نویس به وسیله برنامه زیر شکل موج درخواستی ما را تولید می کند.
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 در اثر گرما وجود خواهد داشت که در طراحی ما تأثیر گذار خواهد بود.

• میکروکنترلر AVR AT9058515:
• اجزاء اصلی:
• در این AVR از معماری RISC استفاده شده است.
– دارای ۱۱۸ دستورالعمل قدرتمند است که قابلیت اجرای سریع در یک سیکل ساعت را ارند.
– ۳۲ رجیستر ۸ بیتی برای اهداف عمومی
– قابلیت اجرای ۸MIPS یعنی ۸ میلیون دستورالعمل در ثانیه را دارد
* حافظه داده و حافظه برنامه غیر فرار
– ۸ kbyte حافظه Flash قابل برنامه نویسی داخلی.
– ۵۱۲byte حافظه SRAM.
– 512 byte حافظه EEPROM داخلی قابل برنامه نویسی.
– قفل برنامه برای امنیت حافظه برنامه Flash و حافظه EEPROM.
* اجزاء جانبی
– یک تایمر / شمارنده ۸ بیتی با مقیاس مجزا.
– یک تایمر / شمارنده ۱۶ بیتی با مقیاس مجزا و مدهای مقایسه، Capture و موج PWM 9-8 و یا ۱۰ بیتی.
– مقایسه کننده آنالوگ برروی تراشه.
– تایمر نگهبان قابل برنامه نویسی با نوسان ساز برروی تراشه.
– UART سریال قابل برنامه نویسی
– مدار واسط سریال Master/Slave
* اجزاء مخصوص میکروکنترلر.
– مدهای مخصوص کم مصرف و Power down و idle
– منایع وقفه داخلی و خارجی
* خصوصیات
– ساخته شده با تکنولوژی پردازش CMOS با سرعت بالا و توان کم
– عملیات کاملاً ایستا
* در ترانشه با نوسان ساز ۴MHZ دارای توان مصرفی ۳v در دمای ۲۵۰c می باشد.
– جریان در حالت فعال ۳٫۰MA است.
– جریان در حالت idle یا بیکار ۱٫۰MA است.
– جریان در حالت power down برابر با است.
* اجزاء I/O و بسته ها.
– ۳۲ خط ورودی / خروجی یا I/O قابل برنامه ریزی دارد.
– برای تراشه ۴۰٫PDIP پایه و برای ترانشه PLCC و TQFP دارای ۴۴ پایه است.
* ولتاژ کاری.
– در AT905815-4 برابر با ۲٫۷ تا ۶٫۰ است.
– در AT905815-8 برابر با ۴٫۰ تا ۶٫۰ است.
* توضیح پایه ها:
قبل از اینکه در باره پایه های این میکروکنترلر صحبت کنیم بصورت کلی با AT905815 آشنا می شویم. این تراشه یک میکروکنترلر ۸ بیتی بر پایه معماری RISC ساخته شده از CMOS کم مصرف است. بعلت داشتن دستورالعملهای قدرتمند که در یک سیکل ساعت کاری کار می کنند این میکروکنترلر امکان اجرای یک میلیون دستور العمل در هر ثانیه به ازای هر یک مگاهرتز سرعت دارد که به طراح اجازه یم دهد بهینه توان مصرفی را در مقابل بیشترین سرعت پردازش داشته باشد.

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید
word قابل ویرایش - قیمت 8700 تومان در 27 صفحه
87,000 ریال – خرید و دانلود
سایر مقالات موجود در این موضوع
دیدگاه خود را مطرح فرمایید . وظیفه ماست که به سوالات شما پاسخ دهیم

پاسخ دیدگاه شما ایمیل خواهد شد