Micro Controller ها

 

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

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

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

از نظر الکترونیکی میکروکنترلر یک آی سی (مدار مجتمع) پیشرفته است. از نظر ظاهری هم میکرو به شکل یک آی سی با تعدادی پایه و معمولا در ابعادی کوچکتر از یک انگشت است. مثل هر ابزار دیگری شرکت های مختلفی میکروکنترلرها را در مدل های مختلف تولید می کنند. طبیعتاً مدل های مختلف از نظر قدرت و امکانات با هم متفاوت هستند. خانواده میکروکنترلرها به چند مدل میکرو کنترلر میگویند که ساحتار آن ها بسیار به هم شبیه است و فقط تفاوت های کمی در امکاناتشان هست.

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

میکروکنترلر ها از بخشهای مختلفی تشکیل شده اند:

Cpu                                واحد پردازش

Alu                                 واحد محاسبات

I /O                                ورودی ها و خروجی ها

Ram                               حافظه اصلی میکرو

Rom                               حافظه ای که برنامه روی آن ذخیره می گردد

Timer                              کنترل زمان ها

          و . . .

 

برنامه نویسی برای میکروکنترلرها

برنامه نویسی برای یک میکرو را می توان با یک کامپیوتر شخصی (PC) انجام داد سپس برنامه نوشته شده را توسط دستگاهی به نام   programmer (که میکرو کنترلر در این دستگاه قرار می گیرد) و توسط یک کابل به یکی از در گاه های کامپیوتر(USB ,Parallel) وصل می شود، به آی سی انتقال داده و سپس برنامه را در حافظه میکرو Rom ذخیره کرد.

برای این کار شما باید از یک نرم افزار کامپایلر خاص استفاده کنید تا برنامه شما را به زبان ماشین که توسط میکرو قابل فهم است تبدیل کند. میکرو کنترلر ها دارای کامپایلرهای خاصی می باشند که با زبان های  Assembly, basic  و  C می توان برای آنها برنامه نوشت معمولاً هر کامپایلر ویژه برنامه نویسی برای یک خانواده خاص میکروها ساخته می شود. مثلا برای برنامه نویسی برای خانواده AVR نرم افزارهایی مثل BASCOM و CodeVision به بازار آمده است.

در هر کامپایلر می توانید با یک زبان برنامه نویسی خاص برنامه بنویسید. برای میکروهای قدیمی فقط کامپیلرهایی با زبان اسمبلی وجود داشت، اما امروزه می توانید با زبان های معروف C و Basic برای میکرو برنامه بنویسید که کار را خیلی راحت کرده است. اصول برنامه نویسی و الگوریتم برای میکروها با برنامه نویسی برای کامپیوتر تفاوتی ندارد. فقط در برنامه نویسی میکرو شما دستورات و توابع خاصی برای کار با امکانات میکرو در اختیار دارید. مثلا می توانید ولتاژ روی پایه های میکرو را در برنامه مثل یک متغیر تغییر دهید (روشن و خاموش کنید).

پروگرم (Program) کردن میکروکنترلر

پروگرم کردن میکرو یعنی انتقال برنامه ای که برایش نوشته اید (برنامه کامپایل شده) از کامپیوتر به حافظه دائم میکرو. برای این کار شما به غیر از کامپایلر، نیاز به ابزاری به نام پروگرمر(Programmer) دارید که به عنوان واسطی بین کامپیوتر و میکرو عمل میکند. پروگرمر در اصل یک مدار الکترونیکی است که به شکل دستگاه آماده در بازار موجود است و شما می توانید با توجه به نوع میکرو خود، آن را بخرید. اما برای بعضی میکروها مدار پروگرمر را خودتان هم به سادگی میتوانید بسازید. اگر خودتان آن را بسازید هزینه خیلی کمتری برایتان خواهد داشت، اما اشکال آن این است که سرعت انتقال برنامه به میکرو کمتر می شود و احتمال آسیب رسیدن به آن هم هست.

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

پایه های ورودی-خروجی (IO) میکروکنترلر:

گفتیم که میکروکنترلر دارای تعدای پایه است (تعداد پایه ها در مدل های مختلف متفاوت است). بعضی از پایه های میکروکنترلر کاربردهای خاص دارد، مثلاً یک پایه مخصوص اتصال به منبع تغذیه است. بقیه پایه های میکرو عمومی هستند و نقش ورودی-خروجی را دارند. در برنامه باید تعیین کنید که می خواهید از یک پایه یا پورت(گروهی خاص از پایه ها) به عنوان ورودی استفاده کنید یا خروجی. در حالت خروجی میتوانید یک ولتاژ را برای پایه در هر لحظه معین کنید و در حالت ورودی می توانید ولتاژ روی آن را بخوانید. توجه کنید که مقادیر ورودی و خروجی میکرو اصولاً دیجیتال (صفر و یک) است. یعنی ولتاژ روی پایه یا باید حدود صفر باشد یا حدود 5 ولت(یا نزدیک ولتاژ منبع) و مقادیر بین این ها معنایی برای میکرو ندارد (مگر در موارد خاص که میکرو ورودی آنالوگ هم بپذیرد).

انواع میکروکنترلرها:

تمام ميکروکنترلرها جزء اين 5 خانواده  هستنند: 
1) خانواده   8051
2) خانواده  PIC 
3) خانواده  AVR 
4) خانواده  6811 
5) خانواده  Z8 
البته مدل هاي 6811 ساخت شرکت موتورلا و z8 ساخت شرکت زايلوگ حداقل در ايران خيلي کم استفاده مي شوند و رقابت اصلي بين سه نوع ديگر است. 
تا به امروز هر ميکروکنترلري که ساخته شده زير مجموعه يکي از اين5 نوع است. البته کارخانه هاي خيلي زيادي با مارک هاي مختلف ميکرو کنترلر توليد ميکنند ولي همه اونها زير مجموعه يکي از اين 5 قسمت هستنند .شما براي هر کدام از اين5 نوع ميکروکنترلر ميتوانيد ميکروکنترلر هاي مختلفي از شرکت هاي مختلفي را پيدا کنيد.
اما خوشبختانه همه ميکروکنترلر هايي که جزء هر یک از 5 نوع بالا باشند از يک برنامه پيروي ميکنند. بدين معنا که اگر شما کار با يکي از مدل هاي آن ميکرو (خانواده) را ياد گرفته باشيد مثل اينکه کار با تمام ميکروکنترلرهاي آن نوع را ياد گرفته ايد. مثلا شما اگر کار با يکي از مدل هاي ميکروکنترلر avr مثلا atmega8 را ياد گرفته باشيد ديگر با صد ها مدل ديگر ميکروکنترلر avr مشکلي نداريد وتقريبا بدون هيچ مشکلي ميتوانيد با ديگر مدل هاي اين ميکرو کار کنيد. 

از آن جايی که 6811 و Z8 خيلي کمتر استفاده ميشوند به مقایسه مختصری از سه نوع ديگر ميپردازم:

 خانواده 8051 :

اول از 8051 که اولين ميکروکنترلري بود که به دست بشر ساخته شد شروع ميکنيم . این خانواده از میکرو کنترولر ها جزو اولین نوع میکرو کنترولر ها یی بود که رایج شده و جزو پیشکسوتان مطرح میشود. ابتدا اين ميکروکنترلر توسط شرکت بزرگ intel ساخته شد .اما بعدا intel اين امکان را به ديگر شرکت ها داد که اين ميکروکنترلر را توليد کنند و شرکت هايي مانند ATMEL , PHILIPS , SIEMENS , DALLAS  و... به توليد اين ميکروکنترلر پرداختنند يکي از شرکت هايي که به صورت گسترده به توليد اين تراشه پرداخت ATMEL بود که مدل هاي مختلف ميکروکنترلر ساخت اين شرکت در سرار جهان و در ايران به خوبي يافت مي شود. اما اگربخواهيم به صورت کلي سير پيشرفت اين نوع ميکروکنترلر رو در نظر بگيريم اولين ميکروکنترلر هايي که ساخته شد با جديدترين ميکروکنترلرهاي 8051 که الان توليد ميشود با توجه به اين پيشرفت شگفت در تمام زمينه ها که صنايع ديگر در دنيا دارند پيشرفت زيادي ندارد به طور مثال AT89S5X که ميکروکنترلر 8051 جديد ساخت ATMEL است نسبت به مدل هاي اوليه 8051 پيشرفت آنچناني ندارد . امکانات اين ميکرو نسبت به AVR و PIC قابل مقايسه نيست . به صورتي که که همين مدل جديد 8051 تقريبا حافظه اي برابر يک صدم (0.001 ) ميکروکنترلر هاي AVR را دارد و سرعتش 4 برابر کمتر از ميکروکنترلر هاي PIC و 12 بار کمتر از ميکروکنترلر هاي AVR است . از لحاظ امکانات ديگر هم چنين ضعفي احساس ميشود. اما براي کارهاي ساده تر که پيچيدگي زيادي در آن نباشد به خاطر قيمت بسيار پاييني که اين ميکروکنترلر دارد بسيار مناسب است . قيمت همين مدل جديد AT89S5X حول و حوش 1000 تومان است که قيمت بسيار مناسبي است. 
اين ميکرو کنترلر از زبان اسمبلي و C پشتيباني ميکند که زبان برنامه نويسي اصلي آن اسمبلي است که واقعا نوشتن با اين زبان برنامه نويسي نسبت به زبان هاي برنامه نويسي ديگر هم مشکل تر و هم طولاني تر است. در کل اين ميکروکنترلر امروزه ديگر تواناي رقابت با AVR و PIC رو ندارد و امروزه رقابت اصلي بين اين دو ميکروکنترلر است. 

 

 خانواده AVR :  

این خانواده از میکرو کنترلرها تمامی امکانات 8051 را دارا می باشد و امکاناتی چون ADC (مبدل آنالوگ به دیجیتال) – نوسان ساز داخلی و قدرت و سرعت بیشتر – EEPROM  (حافظه) از جمله مزایای این خانواده می باشد مهم ترین آی سی این خانواده Tiny  و Mega است.

اول از همه سرعت اين ميکروکنترلر بسيار بالاست و به قولي دستوراتي که بهش داده ميشه در يک سيکل کلاک انجام ميده در صورتي که اين سيکل کلاک براي 8051 بايد تقسيم بر12شودو براي PIC بايد تقسيم بر 4 بنابراين AVR سريعترين ميکروکنترلر موجود در بازار است . AVR از زبان هاي برنامه نويسي سطح بالا يا به اصطلاح (HIGH LEVEL LANGUAGE) HLL پشتيباني ميکند که باعث توليد کدهاي بيشتري ميشود که در کل برنامه نوشته شده نسبت به برنامه هايي که براي 8051 و PIC نوشته ميشود کوتاهتر است. امکانات جانبي اين ميکروکنترلر بسيار مناسب است و شما را از خريد بعضي لوازم جانبي مانند چيپ هاي آنالوگ به ديجيتال (ADC) , مقايسه گر آنالوگ و... راحت ميکند .در ضمن AVR از بسياري از استاندارد هاي ارتباطي مانند SPI,UART,12C,JTAG پشتيباني ميکند که به راحتي ميتوان اين ميکروکنترلر را با ميکروکنترلر ديگر يا و سايل ديگر وصل کرد و با وسايل ديگر به راحتي ارتباط برقرار کند. قيمت اين ميکروکنترلر هم به نسبت امکانات فراواني که داره مناسب است

 

 خانواده pic  : 

این خانواده از نظر امکانات مانند AVR میباشد و در کل صنعتی تر است. بر اساس بعضي آمار ها بيشترين کاربر را به خود اختصاص داده است البته در ايران اين آمار به نفع AVR است. اين ميکروکنترلر ساخت شرکت MicroChip است که PIC را در مدل هاي خيلي زياد با امکانات مختلف براي کارهاي مختلف ميسازد . اين ميکروکنترلر با مدل هاي مختلف PIC16XXX  و PIC12XXXX  که به جاي X دوم از چپ به راست حروف C ,X,E,F قرار ميگرد ،که هر کدام مفهوم خاصي دارد، X هاي بعدي هم اعدادي هستنند که نشان دهنده مدل هاي مختلف هستنند. 

مزایای میکروکنترلرها نسبت به مدار های منطقی :

    1- یک میکرو کنترلر را می توان طوری برنامه ریزی کرد که کار چندین گیت منطقی را انجام دهد.

    2- تعداد آی سی هایی که در مدار به کار میرود به حداقل میرسد .

    3- به راحتی می توان برنامه میکرو کنترلر را تغییر داد و تا هزاران بار میتوان روی میکرو  برنامه های جدید نوشت و یا پاک کرد .

    4- به راحتی میتوان از روی یک مدار منطقی کپی کرد و مشابه آن را ساخت ولی در صورتی که از میکرو کنترلر استفاده شود و برنامه میکرو را قفل کرد به هیچ عنوان نمی توان از آن کپی گرفت .

برای شروع کار با میکرو کنترلر بهتر است که یک زبان برنامه نویسی مثل  C یا basic  را بیاموزید سپس یک برد programmer  تهیه کرده و برنامه خود را روی میکرو ارسال کنید سپس مدار خود را روی BredBoard بسته و نتیجه را مشاهده کنید.

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

                                                                            با آرزوی موفقیت و سعادت.


مطالب مشابه :


ميكرو كنترلر ATMEGA 32

به سرعت در حال تبديل شدن به زبان برنامه نويسي استاندارد براي ميکرو کنترلرها درباره




میکرو کنترلر چیست؟

6- امکانات میکرو کنترلرها : چند کتاب درباره طراحي آموزش برنامه نويسي ميکرو‌هاي pic




یکی از بهترین پروژه های عملی بچه های برق، الکترونیک

ميکرو کنترولر درباره ما. محسن رشته های دیگه، پروژه های الکترونیکی با استفاده از میکرو




Micro Controller ها

به قلم جمعی ازمهندسان برق شیراز شهر راز - Micro Controller ها -




آموزش برنامه نویسی به زبان بیسیک برای میکروکنترلرهای avr

با اين دستور در ميکرو هاي سري ميکرو megaavr از برچسب‌ها: میکرو کنترلرها درباره وبلاگ. این




BMS چیست

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




کنترلر controller

همه چیز درباره کات اوت محوری ترین تجیهزات کنترلرها است که وظیفه کنترل ميکرو پرسوسور و




BMS چیست؟

های کنترل و ميکرو پردازشگرها و سيستمهای i/o ، کنترلرها و نرم افزارهای درباره




برچسب :