ریزکنترلگر یا میکروکنترلر (به انگلیسی: Microcontroller) نوعی ریزپردازنده است که دارای حافظهٔ دسترسی تصادفی (RAM) و حافظهٔ فقط خواندنی (ROM)، تایمر، پورتهای ورودی و خروجی (I/O) و درگاه ترتیبی (Serial Port پورت سریال) در درون خود تراشه میباشد و میتواند به تنهایی بر روی ابزارهای دیگری کنترل اعمال کند. به عبارت دیگر یک میکرو کنترلر، مدار مجتمع کوچکی است که از یک CPU کوچک و اجزای دیگری نظیر نوسان ساز کریستالی، تایمر، درگاههای ورودی و خروجی آنالوگ و دیجیتال و حافظه تشکیل شدهاست.
در واقع یک ریزپردازنده در درون ریزکنترلگر قرار داده شدهاست که ریزکنترلگر با استفاده از آن میتواند محاسبات منطقی و حسابی را انجام دهد.
وجود RAM و ROM و پورتهای I/O در میکرو کنترلرها آنها را یک انتخاب ایده ال برای کاربردهایی میکند که قیمت و فضا در آنها مهم است. در بسیاری از کاربردها مثل کنترل از راه دور تلویزیون نیازی به محاسبات سنگین در حد یک ۴۸۶ یا حتی ۸۰۸۶ وجود ندارد. در این گونه موارد و بسیاری دیگر از کاربردها فضای مورد استفاده توان مصرفی و قیمت هر واحد مهم تر از قدرت محاسبات است. در این گونه موارد اغلب لازم است تعدادی I/O خوانده شده و بیتهای مشخصی را خاموش یا روشن کند. به همین دلیل این گونه پردازندهها را (IBP(ITTY-BITTY PROCESSOR نیز مینامند.
میکروکنترلرها عموما برای کاربردهای کوچک طراحی میشوند، بنابراین برخلاف ریزپردازندهها در این جا مهمترین مسائل، سادگی و مصرف کم توان است.
برخی از وسایل که از میکرو کنترلر استفاده میکنند: تلفن، موبایل، سیستم، ایمنی، دربازکن گاراژ، دستگاه فاکس، کامپیوتر شخصی PC، ویدئو، دوربین ویدئویی، چرخ خیاطی، سیستمهای تهویه، سرعت سنج
اجزا
یک ریزکنترل کننده از سختافزارهایی مانند پردازنده، RAM، ROM و یک سری پایانه ( یا پورت یا درگاه) تشکیل شدهاست.
از سوی دیگر، از آنجا که این قطعات در اکثر حالات برای مقاصد کنترلی استفاده میشوند، نیاز به برقراری ارتباط با دستگاه تحت کنترل خود را دارند. اما از آنجا که اکثر سیگنالهای لازم برای این منظور سیگنالهای آنالوگ هستند، باید ابتدا این سیگنالها به صورت دودویی تبدیل شوند تا برای پردازنده قابل درک باشند. این کار توسط مبدل آنالوگ به دیجیتال صورت میگیرد. همچنین در برخی از میکروکنترلرها مبدل دیجیتال به آنالوگی هم وجود دارد که امکان فرمان دادن میکروکنترلر به دستگاههای با ورودی آنالوگ را فراهم میکند.
از دیگر اجزای معمول و پرکاربرد در میکروکنترلرها، تایمرها هستند. تایمرها عموما از یک شمارنده تشکیل میشوند که پس از تعداد مشخصی از شمارش، تولید یک وقفه میکنند که میتواند برای بررسی متوالی یک روال یا انجام متوالی یک کار مورد استفاده قرار گیرد.
بسیاری از میکروکنترلرها از واحدهای مدولاسیون عرض پالس نیز برخوردارند. این واحدها به خصوص در کاربردهای الکترونیک قدرت و کنترل موتور و نیز به عنوان مبدل دیجیتال به آنالوگ کاربرد دارند.
میکروکنترلرهای رایج
از مهمترین و بزرگترین تولیدکنندگان میکرو کنترلرها میتوان از شرکت اَتمِل (به انگلیسی: Atmel) نام برد که در حال حاضر سری ایویآر و ۸۰۵۱ میکروکنترلرهای این شرکت در ایران بدلیل سهولت استفاده مورد توجهاست.
برنامه ریزی میکروکنترلرهای AVR بیشتر با زبان C و با کامپایلر codevision، و یا با زبان بیسیک و توسط نرمافزار BASCOM انجام میشود. یکی دیگر از تولیدکنندگان بزرگ میکروکنترلرها شرکت Microchip است که میکروکنترلرهای این شرکت با نامهای تجاری PIC و dsPIC نیز از محبوبیت زیادی برخوردار است.[۳]
شرکتهای بزرگ دیگری نیز در زمینه تولید میکروکنترلر فعالیت میکنند که از آن جمله میتوان بهTI، موتورولا و فیلیپس اشاره کرد.شرکت intel هم نقش بسیار مهمی در تولید میکروکنترلرهای خانوادهٔ ۸۰۵۱ دارد.
البته اخیراً با قدرتنمایی میکروکنترلرهای آرم، این میکروکنترلرهای 32 بیتی با شدت بسیار زیادی در حال فراگیر شدن است و از رشد بسیار زیادی در بازار برخوردار است . میکروکنترلرهای آرم موجود در ایران توسط سه شرکت انایکسپی، اتمل و ST تولید می شوند، که در این میان سهم میکروکنترلرهای انایکسپی و اتمل بیشتر است .
تفاوت میکرو کنترولر و میکرو پروسسور
میکرو کنترولر و میکروپروسسور تقریبا از یک شاخه تکنولوژیک وساختاری هستند اما در اجزای وابسته، با هم تفاوت های عمده دارند در میکرو پروسسورها فقط واحد پردازش به صورت مجزا به صورت یک ای سی وجود دارد که رم و رام و حتی ثبات ها در ای سی های مجزا به میکروپروسسور وصل و تشکیل یک میکرو کامپیوتر را می دهند اما در میکرو کنترلر تمام واحد های یک کامپیوتر از جمله رم و رام و ثبات ها در درون یک ای سی به صورت فشرده به نام میکرو کنترولر وجود دارد که معمولا در دستگاه های تجاری برای کاهش قیمت دستگاه مانند تلویزیون و ماکروویو و غیره استفاده می شود.
میکرو کنترلر های موبایل
تکنولوزی AVR برای اولین بار در سال 1997 توسط شرکت Atmel ارائه شد و بعد از آن جزء تولیدات محبوب این شرکت قرار گرفت.مزیت اصلی این تکنولوژی داشتن هسته RISC همراه با تعداد زیادی ثبات کاری یا Working Register است.این ثباتها به ALU مرتبط هستند و توسط آنها می توان تعداد زیادی ریز دستورالعمل را در مدت زمان یک پالس ساعت اجرا کرد به عبارتی دیگر اجرای هر دستورالعمل یک پالس ساعت لازم دارد در حالیکه اجرای این ریز دستورالعملها در میکروکنترلرهای دیگر در تعداد زیادتری از پالس ساعت اجرا می شوند بنابراین AVR ها می توانند بسیار سریعتر عمل کنند و همچنین کدهای با حجم بالایی را اجرا کنند.به عنوان مثال کارایی یک AVR که با سرعت4MHz کار می کند با کارایی میکروی PIC با سرعت 16MHz و همچنین میکروی 8051 با سرعت 48MHz برابر است!
معماری AVR
ثباتهای AVR
میکروکنترلرهای 8 بیتی AVR 32 ثبات 8 بیتی همه منظوره دارند یعنی r0 تا r31 .
سه ثبات آدرس شانزده بیتی با نام مستعار X و Y و Z که هر کدام از این سه ثبات دو ثبات از همان 32 ثبات 8 بیتی هستند یعنی X(r27:r26), Y(r29:r28), Z(r31:r30)) .
یک ثبات 16 بیتی به منظور اشاره گر پشته که در آدرسهای ورودی/خروجی:
0x3e(SPH) و 0x3d(SPL) قرارگرفته اند.همچنین این آدرسها در حافظه داده با آدرسهای 0x5e و 0x5d هستند
یک ثبات 8بیتی به منظور سنجش وضعیت یا همان ثبات پرچم با نام SREG .
ITHSVNZC
I : فعال ساز و غیرفعال ساز عمومی وقفه SREG7 یا Global Interrupt Enable/Disable Flag
T: بیت انتقالی مورد استفاده دستورالعملهای BLD وBST با نام SREG6
H: Half Carry Flag, SREG5
S : بیت علامت یا Signed tests Instruction Set, SREG4
V : سرریزنما برای مکمل دو یا Two's Complement Overflow Indicator, SREG3
N : بیت منفی یا Negative Flag, SREG2
Z : بیت صفر یا Zero Flag, SREG1
C : Carry Flag, SREG0
حافظه داده و ثباتهای AVR
32 آدرس اول حافظه یعنی (0x0000 تا 0x001f ) متعلق به ثباتهای r0 تا r31 هستند.البته در برخی MCU (MicroController Unit) ها برای ثباتها از فضای حافظه ی داده استفاده می شود.
شامل 12 صفحه فایل word قابل ویرایش
دانلود مقاله میکرو کنترلر و کاربرد آن در موبایل