بخش سوم دوره EVS0 : ساختار سیستم های میکروکامپیوتری و تفاوت آن با میکروکنترلر

بازگشت به آموزشگاه

اگر با فلوچارت دوره های ما آشنایی ندارید >>این لینک<< را مشاهده کنید.

دسترسی سریع به بخش های قبلی دوره :


سیستم چیست ؟

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


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

در یک نگاه ساده، یک سیستم الکترونیکی ( electronic system ) را می‌توان به سه بخش تقسیم کرد:

  • ورودی ( input ) : ورودی ها شامل سنسور ( حسگر ) های الکترونیکی و مکانیکی ( یا مبدل‌های انرژی ) هستند. این تجهیزات سیگنال‌ ها یا اطلاعات را از محیط خارج دریافت کرده و سپس آنها را به جریان، ولتاژ یا سیگنال‌های دیجیتال تبدیل می‌کنند.
  •  پردازنده ( CPU ) : این مدارها در واقع وظیفه اداره کردن، تحلیل کردن و تبدیل سیگنال‌های ورودی برای استفاده آنها در کاربرد مناسب را بر عهده دارند. معمولاً در این بخش پردازش سیگنال‌ ها بر عهده پردازشگر سیگنال دیجیتال ( Digital Signal processor ) است.
  • خروجی ( output ) : عمل کننده ها ( Actuators ) یا دیگر تجهیزات ( مانند مبدل‌های انرژی ) که سیگنال‌های ولتاژ یا جریان را به صورت خروجی مناسب در خواهند آورد ( برای مثال با ایفای یک وظیفه فیزیکی مانند چرخاندن یک موتور )

system

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

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

digitalVsanalog


واحدهای اصلی کامپیوتر

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

ComputerA


تعریف سیستم میکروکامپیوتر

یک سیستم میکروکامپیوتر حداقل شامل میکروپرسسور (CPU) ، حافظه موقت (RAM) ، حافظه دائمی (ROM) و قطعات ورودی/خروجی (PORT ) می باشد که بوسیله گذرگاه ( باس BUS) به هم ارتباط دارند و همه مجموعه روی یک برد اصلی به نام مادر برد قرار می گیرند. تمام کامپیوترهای خانگی امروزی مانند PC ها و لپتاپ ها از این نوع هستند که علاوه بر واحد های حداقلی فوق قطعات و واحدهای دیگری نیز به آنها اضافه شده است مانند شکل زیر .

MotherBoard

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

MicroprocessorA


تعریف میکروپروسسور ( CPU )

CPU مخفف عبارت Central Processor Unit به معنای واحد پردازنده مرکزی می باشد . میکروپروسسور تراشه ( IC ) ای است که از مدارات منطقی دیجیتال ساخته شده است که وظایف آن به شرح زیر است :

  • انجام محاسبات ریاضی ، منطقی و بیتی
  • انجام دادن دستورالعمل ها ( حلقه های شرطی و … )
  • ارتباط با حافظه
  • کنترل تجهیزات جانبی
  • پاسخ دادن به وقفه ها

cpu


تعریف ROM

مخفف عبارت Read Only Memory به معنای حافظه فقط خواندنی می باشد. این حافظه دائمی بوده یعنی با قطع برق اطلاعات درون آن از بین نمی رود. برنامه راه اندازی سیستم و سیستم عامل(برنامه کاربر) در این حافظه قرار می گیرد . در بسیاری از کامپیوتر های امروزی بخشی از سیستم عامل روی ROM و بیشتر آن روی هارد دیسک قرار دارد .

انواع حافظه های ROM

  • ROM : در این نوع حافظه که توسط کارخانه و فقط برای یکبار پروگرام می شود ، شامل شبکه ای از سطر ها و ستون های ماتریسی است که در نقاطی به نام بیت به هم میرسند. در صورتیکه خطوط مربوطه بخواهد “یک”  باشد برای اتصال از دیود استفاده می شود و اگر بخواهد مقدار “صفر”  باشد خطوط به یکدیگر متصل نخواهند شد. دیود ، صرفا امکان حرکت ” جریان ” را در یک جهت ایجاد می کند ، بنابراین در صورتیکه دیود در نقطه مورد نظر ارائه گردد ، جریان هدایت شده و سلول یک خوانده می شود و در صورتیکه مقدار سلول صفر باشد یعنی در محل برخورد سطر و ستون دیودی وجود ندارد .

ROMmatrix

  • PROM : تولید تراشه های ROM مستلزم صرف وقت و هزینه بالائی است . بدین منظور اغلب تولید کنندگان ، نوع خاصی از این نوع حافظه ها را که Programmable Read Only Memory نامیده می شوند ، تولید می کنند. این نوع از تراشه ها با محتویات خالی و با قیمت مناسب عرضه شده و می تواند توسط هر شخص با استفاده از دستگاه های خاصی برنامه ریزی گردند. ساختار این نوع از تراشه ها مشابه ROM بوده با این تفاوت که در محل برخورد هر سطر و ستون از یک فیوز استفاده می گردد.با توجه به اینکه تمام سلول ها دارای یک فیوز می باشند ، درحالت اولیه یک تراشهPROM دارای مقدار اولیه “یک” است . بمنظور تغییر مقدار یک سلول به صفر، از یک دستگاه خاص پروگرامر استفاده می گردد. حافظه های PROM صرفا یک بار قابل برنامه ریزی هستند ونسبت به RAM شکننده تر بوده و یک جریان حاصل  از الکتریسیته ساکن ، می تواند باعث سوخته شدن فیور در تراشه شود و مقدار یک را به صفر تغییر نماید. از طرف دیگر  PROM دارای قیمت مناسب بوده و برای نمونه سازی داده برای یک ROM ، قبل از برنامه ریزی نهائی کارآئی مطلوبی دارند.
  • EPROM : که مخفف Erasable programmable read only memory است . این نوع حافظه ها همانند PROM هستند با این تفاوت که در آنها امکان پاک کردن حافظه توسط تاباندن مدت زمانی اشعه فرابنفش به حافظه بوجود آمد . بنابراین روی آی سی آنها شیاری تعبیه شده است که اشعه ماورای بنفش بتواند مستقیما به بخش اصلی حافظه بتابد .

EPROM

  • EEPROM : این نوع حافظه که Electrically Erasable Programmable ROM است ، می توان الکترون های هر بیت را با استفاده از یک نرم افزار و به کمک پروگرامر به وضعیت طبیعی برگرداند. بنابراین دیگر برای بازنویسی تراشه نیاز به جدا نمودن تراشه از محل نصب شده نخواهد بود و برای تغییر بخشی از تراشه نیاز به پاک نمودن تمام محتویات نخواهد بود. اعمال تغییرات در این نوع تراشه ها مستلزم بکارگیری یک دستگاه اختصاصی نخواهد بود.

EEPROM

  • Flash : تراشه های EEPROM در هر لحظه تنها یک بیت خاص را تغییر می دهد و فرآیند اعمال تغییرات در تراشه کند است و در مواردی که می بایست اطلاعات با سرعت تغییر یابند ، سرعت لازم را ندارد. تولیدکنندگان با ارائه Flash Memory که یک نوع خاص از حافظه های EEPROM می باشد به محدودیت اشاره شده پاسخ لازم را داده اند. در حافظه Falsh از مدارات از قبل پیش بینی شده در زمان طراحی ، بمنظور حذف استفاده می گردد .در این حالت می توان تمام  و یا بخش های خاصی از تراشه را را حذف کرد. بنابراین این نوع حافظه نسبت به حافظه های EEPROM سریعتر است و داده ها در آن داخل بلاک هائی که معمولا ۵۱۲ بایت می باشند ، نوشته می گردند.

FlashMemory


تعریف RAM

مخفف عبارت Random Access Memory به معنای حافظه با دسترسی تصادفی می باشد. این حافظه ، حافظه موقت می باشد یعنی با قطع برق اطلاعات آن از بین میرود . اطلاعات میانی سیستم شامل متغیرهای برنامه کاربر و داده های مربوط به ورودی/خروجی ها در این حافظه قرار میگیرد .

RAM

انواع حافظه های RAM

  • SRAM : مخفف Static RAM به معنای حافظه ایستا است . در این نوع حافظه ها که از فلیپ فلاپ ساخته شده اند ، دارای سرعت خواندن و نوشتن بالا و توان مصرفی پایین می باشند .
  • DRAM : مخفف Dynamic RAM به معنای حافظه پویا است . در این نوع حافظه ها از ترانزیستور MOSFET استفاده شده است که باعث کاهش سرعت خواندن و نوشتن و همچنین افزایش توان مصرفی نسبت به SRAM می باشد ولی در عوض حجم کمتری را اشغال می کند و ارزان تر از SRAM می باشد.

تعریف PORT

به معنای درگاه می باشد و وظیفه ارتباط میکروکامپیوتر با دستگاههای جانبی را بر عهده دارد . که این دستگاه های جانبی ورودی یا خروجی هستند برای همین به آنها I/O نیز می گویند. پورت ها انواع مختلفی دارند مانند پورت USB ، پورت سریال ، پورت موازی و … که در شکل زیر مشاهده می کنید .

PORT


تعریف BUS

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

  •  گذرگاه داده(Data Buss): جهت نقل و انتقال داده ها بین ماژولهای میکرو به کار می رود که میتواند ۸ خط (در میکرو های ۸ بیتی)، ۱۶ خط (در میکرو های ۱۶ بیتی) و … باشد. هر چه تعداد خطوط Data بیشتر باشد سرعت انتقال داده ها بیشتر خواهد بود و توان پردازش میکروکنترلر بالاتر است.
  • گذرگاه آدرس(Address Buss): برای شناسایی هر وسیله (حافظه یا I/O ) توسط CPU می باشد که باید آدرس منحصر به فردی به آنها تخصیص داد. هر چه تعداد خطوط آدرس بیشتر باشد میکرو میتواند تعداد مکانهای بیشتری را آدرس دهی کند، در نتیجه میتواند حافظه بزرگتری داشته باشد.
  • گذرگاه کنترل(Control Buss): شامل خطوط کنترلی دستگاههای موجود مثل Read ، Write و غیره است. هر چه تعداد خطوط کنترلی بیشتر باشد، میکرو امکانات کنترلی بیشتری در اختیار برنامه نویس قرار میدهد.

تعریف میکروکنترلر

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

BasicMicroController

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

MicroControllerSystem


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

اولین میکروکنترلر در سال۱۹۷۱ توسط شرکت نام آشنای  intel ساخته شد و این شرکت اولین میکروکنترلر کاربردی خود را در سال ۱۹۸۰با نام ۸۰۸۰ روانه بازار کرد. بعد از آن میکروکنترلر توسط شرکت اینتل با سری چیپهای AT8050,8051,8052,…، شرکت زایلوگ باسری چیپهای Z8601,8602,8603,…و شرکت موتورولا‌ با سری چیپهای ۶۸۱۱A1,A2,… گسترش یافت . در حال حاضر میکروکنترلر های پرکاربرد موجود دارای انواع زیر هستند که هریک کاربرد ها و ویژگی های مخصوص به خود را دارند :

  • خانواده AVR : ساخت شرکت ATMEL
  • خانواده PIC : ساخت شرکت MicroChip
  • خانواده ARM : ساخت شرکت های ATMEL ، NXP ، STM و …
  • خانواده FPGA : ساخت شرکتهای Xilinx و Altera

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

MicroCompare

* منظور از قدرت پردازش عمومی و اختصاصی ، سرعت و قدرت پردازش اطلاعات در مصارف عمومی( مانند کار های کنترلی و… ) اختصاصی (مانند پردازش تصویر و…) می باشد.

توجه : شرکت atmel در سال 2016 توسط شرکت بزرگتری به نام میکروچیپ ( microchip ) خریداری شد. اکنون این دو شرکت با یکدیگر ادغام شده اند و بنابراین هر کجا میگوییم atmel منظور همان microchip کنونی است.


انواع معماری های RISC و CISC در پردازنده ها

پردازنده ها ( CPU ) از دیدگاه “دستور العمل” به دو دسته CISC و RISC تقسیم بندی می شود. دستور العمل یا instruction به عملیات هایی گفته می شود که پردازنده میتواند آن ها را انجام دهد. برای مثال عملیات هایی نظیر جمع، تفریق، ضرب و تقسیم هر کدام یک دستور العمل هستند. در ادامه هر یک از معماری های یاد شده را تعریف می کنیم.

CISC : مخفف Complete Instruction Set Computer به معنای کامپیوتر با دستورالعمل کامل می باشد. در این ساختار تعداد دستورالعمل ها بسیار زیاد است. دستورها پیچیده بوده و با سرعت پایین اجرا می شوند ولی برنامه نویسی آن ساده تر (سطح بالا) است. CPU های میکروکامپیوترهای PC و لپ تاپ ها از این نوع هستند.

RISC : مخفف Reduced Instruction Set Computer به معنای کامپیوتر با دستورالعمل کاهش یافته می باشد. در این ساختار تعداد دستورالعمل ها کمتر بوده و دستورات ساده تر هستند و با سرعت بسیار زیادی اجرا می شوند اما برنامه نویسی آن دشوار تر (سطح پایین) است. CPU های میکروکنترلرها از این نوع هستند.

cisc-vs-risc

گفتیم که یکی از مزیت های میکروکنترلرها نسبت به میکروکامپیوترها سرعت انجام بالای دستورالعمل ها در آن ها است. این مزیت از همین معماری منحصر به فرد میکروکنترلرها ناشی می شود. در واقع نقطه قوت میکروکنترلرها که باعث شده که به عنوان نسل پنجم شناخته شوند همین RICS بودن آنها است که باعث می شود دستورات ساده را در سیکل کلاک کمتری نسبت به CISC انجام دهند . ایده اصلی RISC اولین بار توسط جان کوکی از IBM و در سال ۱۹۷۴ شکل گرفت، نظریه او به این موضوع اشاره داشت که یک کامپیوتر تنها از ۲۰ درصد از دستورات نیاز دارد و ۸۰ درصد دیگر، دستورات غیرضروری هستند. پردازنده‌های ساخته شده براساس این طراحی از دستورات کمی پشتیبانی می‌کنند به این ترتیب به ترانزیستور کمتری نیز نیاز دارند و ساخت آنها نیز کم هزینه است. با کاهش تعداد ترانزیستورها و اجرای دستورات کمتر، پردازنده در زمان کمتری دستورات را پردازش می‌کند. اما در CISC مجموعه‌ای از دستورات بصورت فشرده و با آدرس دهی مختلف به یکباره پردازش می‌شوند، مثل اعداد اعشاری یا تقسیم که در طراحی RISC وجود ندارند. از آنجایی که دستورات در RISC ساده‌تر هستند پس سریعتر اجرا می‌شوند و نیاز به ترانزیستور کمتری دارند، ترانزیستور کمتر هم به معنی دمای کمتر، مصرف پایین‌تر و فضای کمتر است که آن را برای ابزارهای موبایل مناسب می‌کند. مثلا اگر عمل ضرب توسط یک میکروکنترلر در ۲ سیکل کلاک انجام شود و کلاک میکرو روی ۱۰ مگاهرتز تنظیم شده باشد ، عمل ضرب دو عدد به مدت ۲۰۰ نانو ثانیه طول میکشد ، در حالی که همان عمل ضرب در کامپیوتر با ۱۰۰ کلاک انجام می شود که اگر کلاک آن را ۱ گیگاهرتز در نظر بگیریم ، عمل ضرب ۱۰۰ نانو ثانیه طول می کشد . این مثال نشان می دهد که دستور ضرب در یک میکروکامپیوتر با قیمت مثلا یک میلیون تنها دو برابر سریعتر از یک میکروکنترلر با قیمت ۱۰ هزار تومان است . پس یک کامپیوتر برای کارهای بزرگ تر مناسب است و یک میکرو کنترلر برای کارهای کوچکتر ساخته شده است و کار کوچک را با هزینه پایین تر و کیفیت بهتری انجام می دهد.


با کلیک بر روی تصویر زیر به بخش بعدی آموزش بروید

next-image


در صورتی که این مطلب مورد پسندتان بود لایک و اشتراک گذاری فراموش نشود.

دیدگاه (6)

  • HOJABRCR7 پاسخ

    مرسی…عالی…مهندس یک سوال مهم دارم و پاسخ شما خیلی برام مهمه پس لطفا دقیق پاسخ بدید…
    من میخوام شروع به یادگیری حرفه ای بکنم.یک شیش اعزامم به خدمت و میخوام تو اوقات بیکاری خدمت با میکروکنترلر ها به شکل حرفه ای کار بکنم.لیسانس الکترونیک هم دارم.حالا سوال اصلی من اینه که از نظر شما من شروع به یادگیری avr بکنم یا arm؟؟؟؟ من میخوام حرفه ای یاد بگیرم و قبلش میخوام کلی قطعه بخرم تا حرفه ای شروع بع یادگیری کنم.اشنایی مقدماتی با avr دارم…نظر شما چیست؟؟؟ 🙂

    1395-04-09 در 09:53
    • ادمین الکترو ولت پاسخ

      ممنونم دوست عزیز چون الکترونیک خوندید و کمی هم AVR کار کردید میتونید برید سراغ ARM و توصیه میشه از ARM7 که ساده تره شروع کنید و سپس سمت CortexM3 بروید که حرفه ای تره و نیز حتما به صورت عملی کار کنید

      1395-04-09 در 18:25
      • HOJABRCR7 پاسخ

        پس مهندس از نظر شما arm از avr بهتره؟؟؟

        1395-04-10 در 09:44
        • ادمین الکترو ولت پاسخ

          در کل arm حرفه ای تر از avr است اما باید پیش نیاز یادگیری arm را رعایت کنید

          1396-07-08 در 22:34
  • بهزاد پاسخ

    سلام و خسته نباشید مرسی از اطلاعات بسیار مفیدتون
    چرا در فرایند کاری cpu که شامل مراحل زیر است

    Fetch
    Decode
    memory fetch
    execute
    حافظه موقت sram هیچ نقشی ندارد؟؟

    1396-04-17 در 23:43
    • ادمین الکترو ولت پاسخ

      سلام ممنونم همواره حافظه موقت توسط cpu مورد استفاده قرار می گیرد به خصوص در فرآیند memory fetch

      1396-07-10 در 16:02

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بازگشت به آموزشگاه