پردازنده و حافظه در میکروکنترلر AVR (آموزش AVR جلسه #3)
در این قسمت راجع به پردازنده میکروکنترلر AVR و سازماندهی حافظه میکروکنترلر AVR توضیح میدهیم.
لینک قسمت های قبل :
CPU چیست ؟
CPU مخفف (Centeral Proccessing Unit) به معنیه واحد پردازش مرکزی است.
سی پی یو ، اصلی ترین بخش و مغز میکروکنترلر است. وظیفه اصلی میکروکنترلر انجام عملیات های منطقی و ریاضی و محاسبه و مقایسه و ارسال دستور و … است .
به طور کلی ، همه عملیات های میکروکنترلر زیر نظر CPU انجام میشود. سی پی یو بخش های مختلفی دارد که در ادامه راجع به آن توضیح میدهیم.
بخش های CPU میکروکنترلر AVR
MCU :
MCU مخفف Master Control Unit است.
این واحد ، همه فعالیت های میکروکنترلر رو مدیریت میکند. یعنی روی داده ها عملیات انجام میدهد و ارتباط با حافظه و کنترل تجهیزات جانبی را بر عهده دارد.
میکروکنترلر های AVR از معماری هاروارد استفاده میکنند، در معماری هاروارد حافظه به دو قسمت حافظه برنامه و حافظه داده تقسیم میشود.
(RAM یعنی حافظه داده و ROM یعنی حافظه برنامه)
در معماری هاروارد پهنای باند بیشتر است و به طور کلی میکروکنترلر ها با سبک هاروارد دستورات اجرایی رو به صورت RISC انجام میدهند. (RISC : Reduced Instruction Set Computer)
ALU :
ALU مخفف Arithmetic logic unit است. این واحد عملیات های منطقی و ریاضی را انجام میدهد مثل جمع و تفریق و …
عملیات های ALU به طور کلی به سه قسمت تقسیم میشوند :
- اعمال ریاضی
- اعما منطقی
- اعمال بیتی
در بعضی از انواع پیشرفته میکروکنترلر های AVR ، واحد ALU محاسبات پیشرفته را هم انجام میدهد.
حافظه میکروکنترلر AVR
همانطور که کمی بالاتر گفتیم ، فضای حافظه میکروکنترلر ما به دو بخش اصلی تقسیم میشود.
- حافظه برنامه ROM
- حافظه داده RAM
ROM: حافظه برنامه ، همان فضایی است که برنامه ای که نوشتیم را در آن میریزیم. میکروکنترلر های AVR دارای حافظه از نوع فلش هستند و این فضا هم به دو بخش تقسیم میشود:
- فضای برنامه کاربردی
- فضای بوت
به تصویر پایین نگاه کنید ، این تصویر حافظه داخلی فلش را نشان میدهد.
بیشتر حافظه فلش به فضای برنامه کاربری اختصاص داده شده و میتوانیم میزان فضای بوت را تنظیم کنیم.
RAM :
این فضا ، همان فضایی هست که سی پی یو برای عملیات های پردازشی از آن استفاده میکند.
همانطور که در تصویر پایین میبینید ، این فضا چهار بخش هست:
- ریجستر های عمومی : رجیستر های عمومی با اسم های R0-R31 شناخته میشوند.
- حافظه داده داخلی : یا همان SRAM بعد از تکمیل ظرفیت فضای رجیستر های عمومی سی پی یو ، برای انجام عملیات های پردازشی از واحد بزرگتری به نام SRAM استفاده میکند که قبلا توضیحاتشو دادیم.
- رجیستر های I/O : این رجیستر ها از مهم مهم ترین رجیستر های پردازنده هستند و هر کدامشان به یک طریقی استفاده میشوند.
- رجیستر های I/O توسعه یافته : در بعضی از میکروکنترلر های پیشرفته این نوع رجیستر وجود دارد.
- حافظه داده خارجی : این امکان هم در بعضی در میکروکنترلر ها وجود دارد و وقتی فضای حافظه اطلاعات (داده) پر شود بصورت جانبی از این حافظه میشه استفاده کرد.