سمیکالن – روایتگران داستان تکنولوژی

atmega8_01_pengo-copy

فراگیری کدام میکروکنترلر برای من مناسب است؟ – تفسیر اصطلاحات تخصصی (قسمت دوم)

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

[irp posts=”2768″ name=”میکروکنترلر،میکروپروسسوری که همه ی ایده ها را عملی میکند!(قسمت اول)”]

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

ماژول در میکروکنترلر

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

در پاسخ باید بگوییم که این موضوع بسیار تخصصی میباشد و در حیطه ی دانش ما نیست اما اگر نگاهی به شکل زیر بیندازید شاید درک موضوع برای تان ساده تر شود:

در شکل زیر ماژول تایمر(Timer) را در نظر بگیرید.
pic-microcontrollers-examples-in-assembly-language-chapter-01-fig1-3

در مورد ماژول های خارجی فعلا همینقدر بدانید که با اتصال آن ها به میکروکنترلر ، ربات ما قابلیت هایی نظیر درک محیط پیرامون (Sensitive to the environment) را بدست می آورد!

پروگرامر(Programmer)

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

pickit3

معماری هاروارد

معماری هاروارد از فناوری RISC (بخوانید ریسک )مخفف (کاهش دستورات پردازش و محاسبه = Reduced instruction Set Computing) استفاده میکند و همین موضوع باعث افزایش سرعت پردازنده می شود و دلیل آن استفاده از دو درگاه جداگانه برای انتقال برنامه(ROM) و داده(RAM)(کدی که می نویسیم) میباشد.

معماری ون نیومن (نویمان)

از فناوری CISC مخفف (Complex Instruction Set Computer == دستورات پیچیده محاسبات) استفاده میکند  و برعکس معماری هاروارد از یک درگاه هم برای انتقال برنامه و هم برای انتقال داده استفاده میکند.

harward-von-neuman

خلاصه: از آنجایی که دستورات در RISC ساده‌تر و کمتر هستند پس سریعتر اجرا می‌شوند و نیاز به ترانزیستور کمتری دارند، ترانزیستور کمتر هم به معنی دمای کمتر، مصرف پایین‌تر و فضای کمتر است که آن را برای ابزارهای موبایل و میکروکنترلر مناسب می‌کند.

در مقاله ای خوانده بودیم که در حال حاظر بیش از 16 هزار میکروکنترلر وجود دارد. شاید در ابتدا عجیب به نظر برسد اما باید در نظر داشت که هر خانواده ی میکروکنترلر تعداد بسیار زیادی عضو دارد.

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

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

img_20150419_12323264

میکروکنترلر AVR ساخته شرکت ATMEL میباشد که از معماری هاروارد برای پردازش و انتقال داده استفاده میکند.میکرو های خانواده AVR شامل طیف گسترده ای از میکرو های 8 ، 16 و 32 بیتی را شامل میشوند که به بصورت خانواده های ATtiny – ATmega – ATxmega در بازار توزیع میشوند.

کد نویسی برای میکروکنترلر AVR با زبان های سطح بالای بیسیک و سی میباشد و کامپایلر (محیط کدنویسی) های متعددی برای آن عرضه شده است که رایج ترین آن در کشور ما کامپایلر CodeVision به زبان C می باشد. لازم به ذکر است که شرکت اتمل کامپایلر اختصاصی خود با نام Atmel studio را که تمام زبان های برنامه نویسی را شامل میشود به همراه میکروهای خود عرضه کرده است.

cvisionمیکروکنترلر ARM آرم یا به بیان بهتر پردازنده ARM که ساخته شرک آرم هولدینگز میباشد که نوعی پردازنده 32 و 64 بیتی میباشد و میکروکنترلری که از هسته ARM بهره برده باشد میکروکنترلر ARM نامیده میشود این میکروکنترلر نیز از معماری هاروارد بهره میبرد. شرکت آرم هولدینگز لایسنس استفاده از پردازنده خود را به شرکت هایی نظیر ATMEL وMotorola، INTEL , Philips…. فروخته است. در حال حاضر سه خانواده از میکرو های آرم در ایران مورد استفاده قرار میگیرندکه عبارت اند از 1. خانواده STM ساخته ی شرکت اس تی ام میکروالکترونیک 2. خانواده ATSAM ساخته ی شرکت ATMEL و 4. خانواده پر طرفدار LPC ساخته شرکت Philips (با برند NXP ) .

lpc2148zembedded_systick-500x421pg2_sam4s_chipstm32

همچنین برنامه Keil کامپایلر محبوب میکرو های آرم در کشور ما میباشد که زبان کدنویسی برای آن C,C++ و در موارد نیاز زبان اسمبلی میباشد. در ضمن این کامپایلر دارای محیط شبیه ساز میباشد که از نقاط مثبت آن محسوب میشود(محیط شبیه ساز ، محیطی میباشد که ما در آن قطعات و ماژول های خارجی رو به میکرو اتصال میدهیم و سپس کدی که نوشتیم رو به صورت مجازی بر روی میکرو و قطعاتاعمال میکینیم و نتیجه رو میبینیم البته این توضیح برای شبیه ساز Proteus میباشد و شبیه ساز برنامه Keil جور دیگری راه اندازی میشود.

3_2013102219185933ugl

تصویر محیط شبیه ساز در کامپایلر Keil : ( شبیه سازی کدی که برای ایجاد پالس مربع نوشته شده)

logic-analyzer

میکروکنترلر PIC : این میکرو ساخته شرکت میکروچیپ (microchip) میباشد شرکت میکروچیپ یا ریز تراشه در ایالات متحده قرار دارد. میکرو های PIC یا به قولی پیک طیف وسیعی از میکروها با قابلیت های متفاوت را ارائه می دهند. بطور کلی میکروچیپ نیز همانند اتمل (atmel) میکرو های هشت ، شانزده و 32 بیتی با معماری هاروارد (فناوری ریسک) را روانه بازار میکند که در قالب مجموعه های :   PIC24FPIC18F PIC10F,PIC12F – PIC16F ارائه میشوند.

microchiptechnology_logo

برای میکروکنترلر پیک چند کامپایلر موجود  میباشد یکی کامپایلر رسمی شرکت میکروچیپ با نام mplab که کد زنی در آن با زبان سی و اسمبلی(Assembly) انجام میشود و رایگان میباشد.دیگری کامپایلر میکرو سی (micro c) میباشد که برای کد زنی ایده آل میباشد اما رایگان نیست. سومین کامپایلر که در کشور به وفور از آن استفاده میشود کامپایلر CCS میباشد که علت استقبال از آن راحتی به هنگام کد زنی و کتابخانه های متعدد میباشد که کار برنامه نویس را ساده میکند. در ضمن هر دو کامپایلر میکرو سی و CCS به زبان سی و اسمبلی میباشند.

pic_c_10

آردوینو (ARDUINO) : آردوینو نام مجموعه برد هایی است که برای ساخت آنها اکثرا از هسته پردازنده  (میکرو) AVR و ARM ساخته شرکت اتمل استفاده میشود. خب با این حساب آردوینو یک میکروکنترلر محسوب نمیشود اما استفاده از آن به شدت رایج شده است و دلیل آن هم واضح هست. وقتی که شما از مغازه یک میکرو میخرید تازه کار شما شروع میشود و باید برای آن برحسب نیاز اقدام به طراحی برد در نرم افزار کنید (که البته همین موضوع نیز کار آسانی نیست) و سپس قطعه های لازم دیگر را نیز بخرید و سپس شروع به لحیم کاری کنید و …..

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

arduinocommunitylogo

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

515b4656ce395f8a38000000

شرکت آردوینو به همراه برد های خود نرم افزاری رایگان با اسم خود شرکت ارائه میدهد که با زبان های سی و سی پلاس پلاس قابل کد زنی میباشد.

نتیجه گیری : از بین میکرو های آرم ، پیک و ای وی آر (AVR) میکروکنترلر AVR بدلیل قیمت ارزان ، برآورده کردن نیاز های عادی و غیر صنعتی ، داشتن کد های آماده و منابع فوق العاده زیاد در فضای مجازی برای کسانی که قصد انجام کارهای ساده و معمولی را دارند بسیار مناسب است .از میکروکنترلر AVR بدلیل نویز(Noise) پذیری در مراکز صنعتی استفاده نمیشود. اما اگر کسی قصد دارد میکرو را بصورت حرفه ای کار  و از آن کسب درآمد کند و در پروژه ای بزرگ استفاده کند بدون شک دو میکروکنترلر PIC و ARM توصیه ما به این کسان میباشد. تکلیف برد های آردوینو نیز با توضیحاتی که دادیم مشخص هست.

ما در آینده به لطف خدا یکی از دو میکروکنترلر PIC یا ARM را به شما از صفر تا صد آموزش خواهیم داد.در مقاله های بعد به امید خدا به تفسیر ماژول های داخلی میکروکنترلر میپردازیم . ممنون که با ما بودید ؛)