در آموزش کاربردی AVR میخواهیم به زبان خیلی ساده، نحوه کارکرد میکروکنترلر و میکروپروسسورها را بررسی کنیم. به همین دلیل، خیلی وارد مباحث فنی و پیچیده نمیشویم و با یک دید کلی در مورد نحوه عملکرد و تاریخچه آنها پیش میرویم، با سیسوگ همراه باشید.
در آموزش avr قصد داریم، تاریخچهای از آن را نیز ارائه کنیم. هر چند، شاید ندانستن تاریخچهی یک وسیله، برای کار با آن چندان اهمیتی نداشته باشد. مخصوصاً وقتی که شما تشنهی یادگیری هستید و میخواهید هر چه زودتر به سراغ آموزش اصلی بروید! اما به عنوان یک مهندس الکترونیک، هر چقدر به پیشینه و روند ساخت یک دستگاه آشناتر باشید، میتوانید هوشمندانهتر عمل کنید. همین طور بد نیست کمی از تاریخچه پیشرفت تکنولوژی آن را نیز بدانید!
ریزپردازنده (میکروپروسسور) بهزبان ساده!
اول از همه به این نکته توجه داشته باشید که
میکروکنترلر و
میکروپروسسور با یکدیگر
تفاوت دارند. در ادامه با تفاوت هر
دو آشنا خواهید شد. ریز
پردازنده یا
میکروپروسسور (Microprocessor)
تراشه بسیار کوچکی است که میتواند عملیات مربوط
به حساب و منطق را انجام دهد. ریزپردازنده همان CPU معروف یا مغز متفکر
یک کامپیوتر است.
از آنجایی که معمولاً
یک پردازنده اصلی، در سیستمها مدیریت کل را به عهده میگیرد، به آن واحد پردازش مرکزی یا
CPU نیز
می گویند. شما میتوانید بسته به نوع پردازنده
یک یا چند ورودی باینری به
ریزپردازنده بدهید و از او بخواهید که عملیاتهای مختلفی مثل جمع، تفریق، ضرب، شیفت، مقایسه و… را روی آنها انجام بدهد.
میکروپروسسور عملیات خواستهشده را بر روی ورودیها انجام داده و نتیجه را به شما تحویل میدهد. اگر میخواهید بدانید CPU یا همان ریزپردازنده، چگونه این کار را انجام میدهد، لازم است تا ابتدا مروری کوتاه بر درس مدار منطقی داشته باشیم و سپس در ادامه نحوه عملکرد CPU را توضیح خواهیم داد.
مروری بر درس مدار منطقی
در دانشگاه،
پیش نیاز درس
میکروکنترلر مدار منطقی است. توصیه میکنم قبل از ادامه آموزش کاربردی AVR این درس را حتماً مروری داشته باشید. اگر شما این درس را مطالعه کرده باشید، حتماً
می دانید که مدارات دیجیتال با استفاده از اجزای بسیار کوچکی به نام گیتهای منطقی ساخته میشوند. این
گیتها معمولاً عملیاتهای سادهای مثل AND, OR, XOR و… را برای شما انجام میدهند. ساختار گیتها ساده است و با استفاده از چند
ترانزیستور ساخته میشوند. ساختار گیتهای منطقی ابتدایی و پایه به شکل زیر است:
گیتهای منطقی میتوانند تعداد ورودیهای بیشتری نیز داشته باشند. همانطور که در شکل بالا میبینید، وقتی ورودی دیجیتال (سطح ولتاژ منطقی) به پایههای گیت متصل میشود، در همان لحظه میتوانید خروجی را دریافت کنید. برای مثال، تنها هرگاه هر دو پایه گیت AND همزمان یک باشند، خروجی یک دریافت خواهد شد.
مدارات ترکیبی
گیتهای منطقی، در واقع مثل اجزای بازی لگو هستند که شما با ترکیب آنها میتوانید مدار و منطق دلخواه خودتان را پیاده سازی کنید. محاسبات ریاضی مثل جدول کارنو، قوانین جبر بول و… وجود دارند که به شما در طراحی و ساده سازی اینگونه مدارات بسیار کمک میکنند. به این ترتیب میتوان مداراتی برای تفریق، ضرب و… باینری ساخت. چنین مداراتی، از آنجایی که با ترکیبی از گیتهای منطقی ساخته میشوند، مدارات ترکیبی نامیده میشوند. برای مثال شما میتوانید مدار تمام جمع کننده باینری را با استفاده از این گیتها به شکل زیر پیاده سازی کنید:
خصوصیت مدارهای ترکیبی این است که خروجی آن، به مقدار ورودی در همان لحظه وابسته است. یعنی شما هر ورودی در این لحظه به آن بدهید، در همان موقع نتیجه را در خروجی دریافت خواهید کرد.
مدارات ترتیبی
اما در ادامه مدارات منطقی ترتیبی نیز معرفی شدند که میتوانستند عملیات را مرحلهبهمرحله انجام بدهند. یعنی نتیجه مرحله قبل، به مرحله بعدی منتقل میشود. معمولاً مدارهای ترتیبی، برای اجراشدن بهصورت مرحلهبهمرحله، به کلاک یا پالس ساعت نیاز دارند. به همین دلیل سرعت پردازش اطلاعات به پالس ساعت وابسته است. در مدارات ترتیبی، حافظه و فلیپ فلاپ ها نیز وجود دارند. جالب است بدانید مدارات ترتیبی، خود از مدارات ترکیبی و عناصر حافظه تشکیلشدهاند. ازآنجاییکه مدارات ترتیبی، برای کار کردن نیاز به یک پالس ساعت یا کلاک دارند، معمولاً سرعت عملکرد آنها برحسب کلاک یا پالس ساعت سنجیده میشود.
نحوه عملکرد CPU
همانطور که در بالاتر نیز به آن اشاره شد، به کمک گیتهای منطقی میتوان عملیاتهای منطقی و حسابی مختلفی مثل جمع و تفریق و مقایسه و… را انجام داد. در میکروپروسسور بخشی بانام ALU یا واحد منطق و حساب وجود دارد. میکروکنترلر در طی سالها پیشرفت بسیار زیادی کرده است، اما تقریباً میتوان گفت با ترکیبی از همین مدارات ترکیبی و ترتیبی و باسها و… میتوان یک ALU را به وجود آورد. برای مثال، مدار ALU ساده یک تراشه چهار بیتی 74181 بهصورت زیر است:
واحد محاسبه و منطق تنها یکی از واحدهای CPU است و با نماد زیر بهصورت خلاصه در مدار نمایش داده میشود:
حال، به بلوک دیاگرام کل CPU دقت کنید:
یک سی پی یو علاوه بر اینکه از ALU خودش برای انجام اعمال استفاده میکند، اعمال دیگری نظیر خواندن دستور بعدی از حافظه، خواندن اطلاعات مشخص شده به صورت نشانوند از حافظه و نوشتن یافتههای حاصل در حافظه را نیز به عهده دارد. به همین دلیل به جز واحد ALU به واحدهای جانبی دیگری مثل واحد کنترل و واحد حافظه نیز احتیاج دارد.
میکروکنترلر چیست؟
اگر شما تغذیه یک CPU را متصل کنید، هیچ اتفاقی نمیافتد. زیرا یک CPU خود به تنهایی کاری را انجام نمیدهد. یک CPU برای اینکه بتواند کار کند، به اجزای دیگری مثل RAM،ROM، پورتهای I/O و… نیز احتیاج دارد. برای مثال، تراشه Z80 CPU را در نظر بگیرید. این تراشه تنها کار ریزپردازنده را انجام میداد. شما برای اینکه بتوانید به وسیله آن یک کامپیوتر ساده بسازید، باید مداری مشابه مدار زیر را میبستید:
میکروکنترلر، تراشهای است که تمام اجزای بالا را درون خود جایداده است! میکروکنترلر درواقع یک مینی کامپیوتر است که تمام اجرای موردنیاز برای راهاندازی مثل RAM،ROM، پورتهای I/O و… را دارد! یعنی شما یک تراشه کوچک و ارزانقیمت در دست دارید که تنها با متصل کردن تغذیه آن، روشنشده و برنامهای که شما برایش نوشتید را اجرا میکند! قسمت عمدهای از کار مدار بالا را میتوان تنها با تراشه زیر انجام داد!
میکروپروسسورها نه تنها باعث کاهش چشمگیر حجم مدار میشوند، بلکه هزاران مزیت دیگر نیز دارند. ازجمله این مزیتها میتوان به کاهش هزینه نهایی، کاهش جریان مصرفی، عیبیابی و توسعه راحتتر و… نیز اشاره کرد.
میکروپروسسورها در ابعاد و اندازههای مختلف، با ویژگیهای متفاوت عرضه شدهاند.
شما با استفاده از این کامپیوترهای کوچک و ارزان میتوانید کارهای فوقالعاده زیادی را انجام دهید. هر چند، توانایی CPU، RAM و… یک میکروکنترلر مثل AVR اصلاً قابل مقایسه با کامپیوتر رومیزی نیست! اما هر وسیلهای کاربردهای خاص خودش را دارد. شما در AVR پایههای ورودی و خروجی دیجیتال، رابطهای مختلفی مثل UART، I2C، SPI و… دارید که میتوانید از آن برای کنترل یک سلف، نمایشگر LCD، رله (Relay)، سوییچ یا حسگرهای مختلف مانند سنسور رطوبت، دما، ولتاژ و … استفاده کنید.
برای مثال در پروژههایی مثل ماشین لباسشوییهای هوشمند، گلخانههای هوشمند، کنترل از راه دور، اینترنت اشیاء، بردهای آردوینو و… سروکلهی میکروکنترلرها پیدا میشود.
تفاوت میکروکنترولر و میکروپروسسور
اگر تا اینجای مقاله را مطالعه کرده باشید، احتمالاً جواب این سؤال را میدانید!
برخی از تفاوتهای میکروکنترلر و میکروپروسسور:
- میکروپروسسور تنها شامل CPU است، در حالی که میکروکنترلر اجزای دیگری مثل RAM، ROM واحدهای جانبی و… دیگری نیز دارد.
- حافظه و بسیاری از مشخصات دیگر میکروپروسسورها را میتوان افزایش داد، اما برای تعویض یا ارتقای یک ویژگی در میکروکنترلر، آن میکروکنترلر میبایست از عمل مورد نظر پشتیبانی کند.
- طراحی و عیب یابی یک مدار با استفاده از میکروکنترلر بسیار سادهتر از طراحی آن با میکرو پروسسور است.
توجه داشته باشید که این مقایسه به این معنا نیست که شما باید یکی از این دو را کنار بگذارید، هر کدام از آنها خواص و ویژگیهایی دارند که میتوان از آن در جای مربوطه استفاده کرد.
تاریخچه میکروکنترلرها
اولین میکروکنترلر بانام 4004 در سال 1971 توسط شرکت intel ساخته شد. این میکروکنترلر 4 بیتی بود و تنها چهار عمل اصلی را انجام میداد. منظور از چهار بیتی بودن این است که میکروکنترلر با هر پالس ساعت، چهار بیت یا نیم بایت (یک نیبل nibble) را پردازش میکند. این میکروکنترلر تنها بهعنوان اولین میکروکنترلر شناخته میشود، اما اولین میکروکنترلر کاربردی بانام 8080 از همان شرکت در سال 1980 روانه بازار شد. میکروکنترلرها عموماً برای کاربردهای کوچک طراحی میشوند، بنابراین برخلاف ریزپردازندهها، در اینجا مهمترین مسائل، سادگی و مصرف کمتوان است. پسازآن نیز صنعت میکروکنترلر پیشرفت بسیار زیادی کرد و میکروکنترلر هایی مثل 8051، AVR،PIC،ARM و… روانه بازار شدند.
تاریخچه میکروکنترلر avr
دو دانشجو به نامهای Vegard Wollan و Alf-Egil Bogen در دانشگاه علوم و فناوری نروژ برای اولین بار معماری داخلی AVR را طراحی کردند. از آنجایی که معماری داخلی AVR، از نوع RISC بود، با ترکیب حروف اول نام این دو دانشجو با R کلمه RISC، نام مخفف AVR به وجود آمد. در سال 1996 شرکت ATMEL امتیاز این میکروکنترلر را خریداری کرد.
با توجه به اینکه AVR ساختار داخلی سادهای دارد، میتوان آن را برای یادگیری و شروع ورود به دنیای میکروکنترلرها انتخاب کرد. فرض کنید بتوانید با استفاده از یک میکروکنترلر کامپیوتر کوچک خودتان را بسازید و وظایفی رو به آن بسپارید تا برایتان انجام بدهد. قطعاً خیلی جذاب خواهد بود. همچنین ازآنجایی که AVR در دو پکیج DIP و SMD ساخته میشود. بنابراین شما هم قادر خواهید بود تا آن را بر روی بِردبُرد تست کنید، و هم میتوانید با استفاده از آن بردهای خیلی کوچک بسازید.
نویسنده شو !
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.