در این پروژه سعی بر این است که علاوه بر آشنایی با میکروکنترلر AVRو محیط نرم افزاری (labview) سخت افزار،به گونه ای طراحی شود که با دریافت سیگنال آنالوگ ورودی (صوت) از میکروفن ، از طریق واحدADC میکرو این سیگنال به دیجیتال تبدیل شود و با توجه به برنامهای که در داخل میکرو تعبیه شده است،این اطلاعات به داخل MMC ریخته شده ومیکرو با دریافت فرمان از کامپیوتر به صورت ارتباط سریال دستور پخش را دریافت میکند و از طریق واحد تایمر/ کانترکه در مد PWM کار میکند,اطلاعات ذخیره شده در MMC را با آشکار سازی موج PWM توسط یک انتگرال گیر،باز سازی و به آنالوگ تبدیل میکند و این سیگنال آنالوگ بوسیله یک سری مدارات مورد نیاز برای پخش از طریق یک هدفن پخش میگردد.
نگاهی اجمالی به میکروکنترلرها
بخش اول : میکروکنترلرها
سیر تکاملی میکروکنترلرها :
اولین میکروکنترلرها در اواسط دهه 1970 ساخته شدند. این میکروکنترلرها در ابتدا پردازندههای ماشین حساب بودند که دارای حافظه برنامه کوچکی از نوع ROM ، حافظ داده از نوعRAM وتعدادی درگاه ورودی وخروجی بودند.
با توسعه فناوری سیلیکون ، میکرو کنترلرهای 8 بیتی قویتری ساخته شدند . در این میکروکنترلرها علاوه بر بهینه شدن دستورالعمل ها، تایمر /شمارنده روی تراشه، امکانات وقفه و کنترل بهینه شده خطوط ورودی وخروجی نیز به آن اضافه شده است. حافظه موجود بر روی تراشه هنوز هم محدود میباشد و دربسیاری موارد کافی نیست .یکی از پیشرفتهای قابل توجه در آن زمان، قابلیت استفاده از حافظه EPROM قابل پاک شدن با اشعه ماورا بنفش، روی تراشه بود این قابلیت، زمان طراحی و پیاده سازی محصول را بطور محسوسی کاهش داد و نیز برای اولین بار امکان استفاده از میکروکنترلرها را در کاربردهایی که حجم تولید پایینی دارند، فراهم ساخت.
خانواده 8051 در اوایل دهه 1980 توسط شرکت اینتل معرفی گردید . از آن زمان تاکنون 8051 یکی از محبوبترین میکروکنترلرها بوده و بسیاری از شرکتها دیگر نیز به تولید آن اقدام کردهاند . در حال حاضر مدلهای مختلفی از 8051 وجود دارد که در بسیاری از آنها امکاناتی نظیر مبدل آنالوگ به دیجیتال حجم نسبتاً بزرگ از حافظه برنامه و حافظه داده،مدولاتور عرض پالس(PWM) در خروجیها که امکان پاک کردن و برنامه ریزی مجدد آن توسط سیگنالهای الکتریکی وجود دارد،تعبیه شده است.
میکروکنترلرها اکنون به سمت 16 بیتی شدن در حرکت هستند . میکروکنترلر های 16 بیتی، پردازندههایی با کارایی بالا (نظیر پردازش سیگنالهای دیجیتال ) میباشند که در کنترل فرایندهای بلادرنگ و در مواردی که حجم زیادی از عملیات محاسباتی مورد نیاز است، به کار برده میشوند.
بسیاری از میکروکنترلرهای 16 بیتی، امکاناتی نظیر حجم زیاد حافظه برنامه و حافظه داده، مبدل های آنالوگ به دیجیتال چند کانالی، تعداد زیادی درگاهI/O ، چندین درگاه سریال، عملکردهای بسیار سریع ریاضی و منطقی و مجموعه دستورالعملهای بسیار قدرتمند با قابلیت پردازش سیگنال را دارا میباشند .
معماری داخلی میکرو کنترلرها:
ساده ترین معماری میکروکنترلر، متشکل از یک ریز پردازنده، حافظه و درگاه ورودی/خروجی است. ریز پردازنده نیز متشکل از واحد پردازش مرکزی (CPU)و واحد کنترل(CU) است.
CPUدر واقع مغز یک ریز پردازنده است و محلی است که در آنجا تمام عملیات ریاضی و منطقی ،انجام میشود. واحد کنترل ، عملیات داخلی ریزپردازنده را کنترل میکند و سیگنالهای کنترلی را به سایر بخشهای ریز پردازنده ارسال میکند تا دستورالعملهای مورد نظر انجام شوند.
حافظه بخش بسیار مهمی از یک سیستم میکروکامپیوتری است.ما میتوانیم بر اساس بکارگیری حافظه ،آن را به دو گروه دستهبندی میکنیم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام کد برنامه را ذخیره میکند .این حافظه معمولا از نوع فقط خواندنی (ROM) می باشد. انواع دیگری از حافظهها نظیرEPROM وحافظههای فلش EEPROM برای کاربردهایی که حجم تولید پایینی دارند وهمچنین هنگام پیادهسازی برنامه به کار میروند . حافظه داده از نوع حافظه خواندن/نوشتن(RAM) میباشد. در کاربردهای پیچیده که به حجم بالایی از حافظه RAM نیاز داریم ، امکان اضافه کردن تراشه های حافظه بیرونی به اغلب میکروکنترلر ها وجود دارد.
در گاههای ورودی / خروجی (I/O) به سیگنالهای دیجیتال بیرونی امکان میدهند که با میکروکنترلر ارتباط پیدا کند .درگاههای (I/O) معمولاً به صورت گروههای 8 بیتی دسته بندی میشوند و به هر گروه نیز نام خاصی اطلاق می¬¬شود به عنوان مثال ، میکروکنترلر 8051 دارای 4 درگاه ورودی / خروجی 8 بیت میباشد که P3,P2,P1,P0 نامیده میشوند. در تعدادی از میکروکنترلرها ، جهت خطوط درگاه I/O قابل برنامه ریزی میباشد . لذا بیتهای مختلف یک درگاه را می توان به صورت ورودی یا خروجی برنامهریزی نمود. در برخی دیگر از میکروکنترلرها (از جمله میکروکنترلرهای 8051) درگاههای I/O به صورت دو طرفه میباشند . هر خط از درگاه I/O این گونه میکرو کنترلرها را می توان به صورت ورودی و یا خروجی مورد استفاده قرار داد . معمولاً ، این گونه خطوط خروجی ، به همراه مقاومتهای بالا کش بیرونی به کار برده میشوند.
خانواده AVR :
میکروکنترولر AVR به منظور اجرای دستورالعملهای قدرتمند در یک سیکل کلاک (ساعت) به اندازه کافی سریع است و میتواند برای شما آزادی عملی را که احتیاج دارید به منظور بهینه سازی توان مصرفی فراهم کند . میکروکنترلر AVR بر مبنای معماری(RISC کاهش مجموعهی دستورالعملهای کامپیوتر ) پایه گذاری شده و مجموعه ای از دستورالعملها را که با 32 ثبات کار میکنند ترکیب میکند . به کارگرفتن حافظه از نوع Flash که AVR ها به طور یکسان از آن بهره میبرند از جمله مزایای آنها است.یک میکرو AVR میتواند با استفاده از یک منبع تغذیه 2.7 تا 5.5 ولتی از طریق شش پین ساده در عرض چند ثانیه برنامه ریزی شود یا Program شود.
میکروهای AVR در هرجا که باشند با 1.8 ولت تا 5.5 ولت تغذیه میشوند البته انواع توان پایین نیز وجود دارند که بهLow Power معروفند. ویژگیهایی که سبب شد، AVRها جای 8051 را بگیرند،عبارتست از:
1. توان مصرفی پایین: توان مصرفی پایین آنها برای استفاده بهینه از باتری و همچنین کاربرد میکرو در وسایل سیار و سفری طراحی شده که میکروهای جدید AVR با توان مصرفی کم از شش روش اضافی در مقدار توان مصرفی ، برای انجام عملیات بهره میبرند. این میکروها تا مقدار 1.8 ولت قابل تغذیه هستند که این امر باعث طولانی تر شدن عمر باتری میشود. در میکروهای با توان پایین ، عملیات شبیه حالت Standby است یعنی میکرو میتواند تمام اعمال داخلی و جنبی را متوقف کند و کریستال خارجی را به همان وضعیت شش کلاک در هر چرخه رها کند !
2. حافظه ی فلش خود برنامه ریز با امکانات خاص
3. قابلیت دوباره برنامه ریزی کردن بدون احتیاج به اجزای خارجی
4. بایت کوچک که به صورت فلش سکتور بندی شده اند
5. داشتن مقدار متغیر در سایز بلوک بوت
6. خواندن به هنگام نوشتن
7. بسیار آسان برای استفاده
8. کاهش یافتن زمان برنامه ریزی
9. کنترل کردن برنامه ریزی به صورت سخت افزاری
10. استفاده از فیوزها و بیتهای قفل
11. ایزوله بودن نسبت به نویز که باعث کابرد آن در محیط صنعتی می شود.
راههای مختلف عمل برنامه ریزی :
موازی یاparallel یکی از سریعترین روشهای برنامه ریزی.
خود برنامه ریزی توسط هر اتصال فیزیکی.
برنامه ریزی توسط هر نوع واسطی از قبیل TWIو SPI و غیره، دارا بودن امنیت صد درصد در بروزرسانی و کد کردن.
: SPI واسطه سه سیمی محلی برای بروزرسانی سریع ، آسان و موثر در استفاده.
واسط JTAG : واسطه ای که تسلیم قانون IEEE 1149.1 است و میتواند به صورت NVM برنامهریزی کند یعنی هنگام قطع جریان برق دادهها از بین نروند .
AVR همچنین مجهز به امکانات دیگر مانند تایمر واچ داگ و مبدلهای ADC و PWM است.
یکی از مهمترین بخشهای AVR که کمتر در هر میکروکنترلرهای دیگر دیده میشود مقایسه کننده آنالوگ با گین 1 و 200 و ... می باشد. لازم به ذکر است که در 8051 باید از فلش(EEPROM) وADC و کریستال مولد ساعت به صورت بیرونی استفاده میکردیم اما در AVR این امکانات به صورت درونی وجود دارد .
انواع میکروهایAVR :
شرکتATMEL که شرکت اصلی تولید کننده میکروهایAVR میباشد, سه نوع میکروکنترلر AVR تولید میکند :
(1سری Tiny (2 سری AT90s (3 سریATmega
که هر سری از این میکروها ویژگیهای خاصی داشته و در مصارف خاصی کاربرد بیشتری دارند که در ذیل به توضیح مختصری پیرامون هر یک از این سریها پرداخته میشود :
سریTiny:
میکروهای این سری برای : 1- کاهش قیمت 2- صرفه جویی در وقت بهینه شدهاند ، میزان مصرف ، حجم حافظه و تعداد پایه ها در میکروهای این سری کم است.
از جمله میکروهای این سری میتوان موارد زیر را نام برد :