درباره نویسنده:
به دانش فزای و به یزدان گرای، که او باد جان تو را رهنمای (فردوسی)
در آموزش کاربردی 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 ساخته میشود. بنابراین شما هم قادر خواهید بود تا آن را بر روی بِردبُرد تست کنید، و هم میتوانید با استفاده از آن بردهای خیلی کوچک بسازید.
قطعات اضافه و بدون استفاده همیشه یکی از سربارههای شرکتها و طراحان حوزه برق و
الکترونیک
بوده و هست. پالت سامانهای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد
الکترونیک را
فراهم میکند.
فروش در پالت
آیسی
| موتور جستجوی قطعات الکترونیک
سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود.
جستجو در آیسی
سیسوگشاپ
| فروشگاه محصولات Quectel
فروشگاه سیسوگ
مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ...
جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
برو به فروشگاه سیسوگ
سیسوگ فروم
| محلی برای پاسخ پرسشهای شما
دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک
انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم
میکند.
پرسش در سیسوگ فرم
سیکار
| اولین مرجع متن باز ECU در ایران
بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرمافزارهای متن باز مرتبط با آن
برو به سیکار
نویسنده شو !
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.