اصول شبیه سازی و پیاده سازی

مقدمه

در فصل گذشته با معماری و ساختار میکروکنترلر Atmega32 آشنا شدیم . گفتیم مهمترین بخش میکروکنترلر Atmega32 که با آن سر و کار داریم رجیسترها هستند.  رجیسترها کنترل و تنظیمات تمام بخش های میکروکنترلر را بر عهده دارند و باید به خوبی با نحوه عملکرد آنها آشنا شد . گفتیم که در Atmega32  به تعداد 64 رجیستر برای کنترل مجموعه سیستم میکروکنترلر وجود دارد که در قسمت SRAM حافظه قرار دارد . با تنظیم و مقدار دهی  به این رجیسترها در برنامه میتوان برنامه های مختلف را راه  اندازی و اجرا نمود . هر چه بیشتر با این رجیسترها کار کرده و مسلط به برنامه ریزی آنها باشید بهتر میتوانید برنامه نویسی کرده و از امکانات میکروکنترلر حداکثر استفاده را ببرید .  بعد از رجیسترها ، فیوز بیت ها نیز بخش مهمی از میکروکنترلر می باشد که همانند رجیسترها کنترل و تنظیمات بخش های دیگری از میکروکنترلر نظیر فرکانس کلاک میکرو و … را بر عهده دارد. در این فصل ابتدا با نرم افزارهای Proteus  و CodeVision  آشنا خواهید شد و مثال عملی گفته شده در فصل قبل را  شبیه سازی و پیاده سازی خواهیم کرد و سپس با فیوز بیت ها و تنظیمات آن آشنا خواهید شد.

معرفی کلی نرم افزارهای Proteus و CodeVision

پروتئوس( Proteus )  نرم  افزاری برای شبیه سازی مدارات الکترونیک ، بخصوص مدارات مبتنی بر میکروکنترلر  می باشد. اصلی ترین کار این نرم افزار شبیه سازی است اما قابلیت استفاده برای کشیدن بردهای PCB   را نیز فراهم کرده است  و برای این کار هم محیطی مجزا  از شبیه سازی  در نظر گرفته است  . کتابخانه های بسیاری از قطعات الکترونیک جهت طراحی و شبیه سازی مدارات الکترونیکی در این نرم افزار موجود است . این نرم افزار محصول شرکت Lab center Electronics می باشد .

کاربردهای این نرم افزار عبارتند از :

  • شبیه سازی مدارات آنالوگ و دیجیتال
  • تست و آنالیز مدارات با استفاده از ابزار اندازه گیری مجازی مانند اسیلوسکوپ ، مولتی متر ، فانکشن ژنراتور و….
  • شبیه سازی تقریبا اکثر مدارات با میکرو کنترلرهای PIC ،AVR و برخی از میکروکنترلرهای ARM
  • امکان ایجاد و ویرایش قطعات الکترونیکی
  • طراحی بردهای PCB یک تا 1. لایه

کدویژن( CodeVision AVR )  یک نرم افزار کامپایلر زبان C  است که برای برنامه نویسی ، برنامه ریزی ) پروگرام ( و عیب یابی ( debug ) کلیه میکروکنترلرهایAVR  می باشد . این نرم افزار که دارای محیط برنامه نویسی توسعه یافته نیز می باشد ، بیشتر به علت تولید کدهای اتوماتیک توسط ساختار CodeWizard ( جادوگر کد ) مشهور شده است . این قابلیت دسترسی راحت به تنظیمات رجیسترهای میکروکنترلرهای AVR را فراهم می کند

امکاناتی که این نرم افزار فراهم می کند به شرح زیر است :

  • کامپایلر استاندارد زبان C
  • پشتیبانی از تمام میکروکنترلرهای AVR
  • دارای قابلیت تولید خودکار برنامه ( CodeWizard )
  • پشتیبانی از اکثر پروگرامرهای AVR
  • پشتیبانی از ارتباط JTAG برای عیب یابی
  • و …

مراحل کلی انجام یک پروژه میکروکنترلری

به طور کلی وقتی که قرار است یک پروژه با میکروکنترلرهای AVR ا نجام دهید ، بعد از مشخص شدن هدف پروژه و صرفه اقتصادی آن مراحل زیر به وجود می آید :

  • طراحی سخت افزار : در این مرحله می بایست بر اساس هدف پروژه و شرایط مکانی به کارگیری پروژه ، نوع و مقدار تک تک المان های سخت افزار مورد نیاز طراحی و روی کاغذ آورده شود .
  • طراحی نرم افزار : در این مرحله ابتدا الگوریتم یا فلوچارت مورد نیاز رسم و سپس برنامه نویسی مورد نظر بر اساس آن نوشته می شود .
  • شبیه سازی : قبل از پیاده سازی عملی ، تست صحت عملکرد مدار د ر این مرحله توسط نرم افزارهای مناسب ( در اینجا Proteus و CodeVision ) صورت می گیرد .
  • پیاده سازی : پروگرام کردن میکروکنترلر و بستن مدار مورد نظر روی بردبرد در این مرحله صورت می گیرد .
  • تست و عیب یابی : با وصل منبع تغذیه به مدار ، تست و عیب یابی مدار در این  مرحله صورت می گیرد
  • تولید ، ارتقا و بهبود : در نهایت بعد از بررسی مدار و اطمینان صحت عملکرد آن ، در این مرحله برای مدار مورد نظر فیبر مدار چاپی ( pcb ) تولید می شود . پشتیبانی پروژه که ارتقا و بهبود عملکرد مدار می باشد ، بعد از تولید پروژه و بازخورد مشتریان بوجود می آید .

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

مثال عملی شماره 1 

برنامه ای بنویسید که LED موجود روی PA.0  را 4  بار در ثانیه به صورت چشمک زن روشن و خاموش کند . سپس آن را در نرم افزار Proteus شبیه سازی کرده و پس از اطمینان از عملکرد صحیح برنامه توسط نرم افزار CodeVision روی میکروکنترلر Atmega32 پیاده سازی نمایید .

حل :

مرحله اول : طراحی سخت افزار خواسته شده

مرحله دوم : طراحی نرم افزار خواسته شده

#include <mega32.h>
#include <delay.h>
void main(void)
{
DDRA.0=1;
while(1){
PORTA.0=1;
delay_ms(250);
PORTA.0=0;
delay_ms(250);
}
}

مرحله سوم : شبیه سازی توسط نرم افزارهای Proteus و CodeVision

در این مرحله همیشه ابتدا به نرم افزار پروتئوس مراجعه کرده و سخت افزار طراحی شده را رسم می نماییم. سپس به نرم افزار کدویژن مراجعه کرده و نرم افزار مربوطه را کامپایل و می سازیم ( Build ) .  سپس برنامه ساخته شده توسط کدویژن را در نرم افزار پروتئوس اضافه ( add ) می کنیم و مدار را شبیه سازی ( Run ) می کنیم . در صورت جواب گرفتن در این مرحله به مرحله پیاده سازی خواهیم رفت .

شروع به کار با نرم افزار پروتئوس

پس از نصب نرم افزار بر روی آیکون آن در صفحه دسکتاپ کلیک کرده تا نرم افزار باز شود . زمانی که نرم افزار باز شد با پنجره شکل زیر مواجه می شوید . در این مرحله بر روی آیکون آبی رنگ ISIS  موجود در نوار  ابزار بالایی که در شکل زیر نیز مشخص شده است ، کلیک کنید تا Schematic capture  برای رسم مدار باز شود .

برای انتخاب المان های مداری باید روی آیکون P کلیک کنید تا صفحه جدیدی بنام Pick Devices باز شود .

در این صفحه هر المانی نیاز داشته باشید را تایپ کرده و سپس روی نام قطعه دابل کلیک می کنید تا قابل استفاده گردد . برای این مثال یک Atmega32  و یک LED  نیاز داریم . نام  آنها را تایپ کرده و  از قسمت سمت  چپ  روی نام آنها دابل کلیک می کنیم. در نهایت پنجره Pick Devices را با کلیک بر روی Ok می بندیم .مراحل اجرای کار را در زیر مشاهده می کنید:

با بازگشت به صفحه اصلی مشاهده می کنید که زیر آیکون P  قطعاتی  را  که  انتخاب کرده بودیم آورده شده است. با کلیک بر روی آنها میکرو و LED  را درون کادر آبی رنگ صفحه اصلی در محل مناسب خود قرار داده و مدار را تکمیل می کنیم . به یک زمین ( Ground ) نیز احتیاج داریم که آن را با کلیک بر روی آیکون Terminals Mode موجود در نوار ابزار سمت چپ و سپس کلیک بر روی GROUND  انتخاب کرده و در جای مناسب خود قرار می دهیم .

در نهایت نوبت به سیم کشی مدار می رسد . زمانی که نشانگر ماوس را در محل سیم کشی روی پایه(پین) های LED  یا میکروکنترلر می برید ، مداد سبز رنگی ظاهر می شود ، در همین حال کلیک کنید و سیم کشی مدار را به صورت شکل زیر تکمیل نمایید .

بعد از تکمیل مدار آن را از منوی File و گزینه Save با نام مناسب در یک پوشه جدید ذخیره نمایید . برای اینکه برنامه را بتوان بر روی آی سی ریخته و سپس اجرا کرد میبایست ابتدا باید فایلی که از نرم افزار CodeVision  تولید می شود را داشته باشیم . بنابراین در این مرحله به سراغ نرم افزار کد ویژن رفته و پس از نوشتن برنامه برای شبیه سازی عملکرد مدار باز خواهیم گشت .