مقدمه:
گرچه کامپیوترهای تنها چند دههای است که با ما همراهند با این حال تأثیر عمیق آنها بر زندگی ما به تأثیر تلفن، اتومبیل و تلویزیون رقابت میکند. همگی ما حضور آنها را احساس میکنیم چه برنامهنویسان کامپیوتر و چه دریافت کنندگان صورت حسابهای ماهیانه که توسط سیستمهای کامپیوتری بزرگ چاپ شده و توسط پست تحویل داده میشود. تصور ما از کامپیوتر معمولاً «دادهپردازی» است که محاسبات عددی را بطور خستگی ناپذیری انجام میدهد.
ما با انواع گوناگونی از کامپیوترها برخورد میکنیم که وظایفشان را زیرکانه و بطرزی آرام، کارا و حتی فروتنانه انجام میدهند و حتی حضور انها اغلب احساس نمیشود. ما کامپیوترها را به عنوان جزء مرکزی بسیاری از فرآوردههای صنعتی و مصرفی از جمله در سوپر مارکتا داخل صندوقهای پول و ترازوها، در خانهها، در اجاقها، ماشینهای لباسشوئی، ساعتهای اداری دارای سیستم جز دهنده و ترموستاتها، در وسایل سرگرمی همچون اسباب بازیها، VCRها، تجهیزات استریو و وسایل صوتی؛ در محل کار در ماشینهای تایپ و فتوکپی و در تجهیزات صنعتی مثل متههای فشاری و دستگاههای حروفچینی نوری مییابیم. د این مجموعهها کامپیوترها وظیفه کنترل را در ارتباط با دنیای واقعی برای روشن و خاموش کردن وسایل و نظارت بر وضعیت آنها انجام میدهند.
میکروکنترلر ها (بر خلاف میکرو کامپیوترها و ریزپردازندهها) اغلب در چنین کاربردهایی یافت میشوند.
با وجود اینکه بیش از بیست سال از تولد ریزپردازنده نمیگذرد تصور وسایل الکترونیکی و اسباب بازیهای امروزی بدون آن کار مشکل است. در سال 1971 شرکت اینتل 8080 رابه عنوان اولین ریزپردازنده موفق عرضه کرد. مدت کوتاهی پس از آن موتورلا، RCA و سپس Mos Technology و Zilog انواع مشابهی را به ترتیب به نامهای 6800، 1801، 6502، 80Z عرضه کردند گرچه این مودارهای مجتمع به خودی خود فایده چندانی نداشتند اما به عنوان بخشی از یک کامپیوتر تک بورد (SBC) به جزء مرکزی فرآوردههای مفیدی برای آموزش طراحی با ریزپردازندهها تبدیل شدند. از این SBCها که به سرعت به آزمایشگاههای طراحی در کالجها، دانشگاهها و شرکتیهای الکترونیک راه پیدا کردند میتوان برای نمونه از D2 موتورولا KIM-1 ساخت Mos Technology و 85-SDK متعلق به شرکت اینتل نام برد.
میکروکنترلرها قطعهای شبیه به ریزپردازنده است در سال 1976 اینتل 8748 را به عنوان اولین قطعه خانواده میکروکنترلرهای TM 48-MCS معرفی کرد. 8748 با 17000ترانزیستور در یک مدار مجتمع شامل یک CPU، 1کیلو بایتی EPROM، 64بایت RAM، 27 پایه I/O و یک تایمر 8بیتی بود. این IC و دیگر اعضای TM 48-MCS که پس از آن آمدند خیلی زود به استاندارد صنعتی در کاربردهای کنترل گرا تبدیل شدند. جایگزین کردن اجزاء الکترو مکانیکی در فرآوردههایی مثل ماشینهای لباسشویی و چراغهای راهنمایی از ابتدای کار یک کاربرد مورد توجه برای این میکرو کنترلرها بودند و همین طور باقی ماندند. دیگر فرآوردههایی که در آنها میتوان میکروکنترلر را یافت عبارتند از اتومبیلها تجهیزات صنعتی، وسیال سرگرمی و ابزارهای جانبی کامپیوتر.
توان ابعاد و پیچیدگی میکروکنترلرها با اعلام ساخت 8051، یعنی اولین عنصر خانواده میکرو کنترلرای TM51-MCS در سال 1980 توسط اینتل پیشرفت چشمگیری کرد. در مقایسه با 8048 این قطعه شامل بیش از 60000ترانزیستور، 4k بایت Rom، 128 بایت RAM، 32 خط I/O یک درگاه سریال و دو تایمر 16 بیتی است. که از لحاظ مدارات داخلی برای یک IC بسیار قابل ملاحظه است. امروزه انواع گوناگونی از این IC وجود دارد که بصورت مجازی این مشخصات را دو برابر کردهاند. شرکت زیمنس که دومین تولید کننده قطعات است (TM 51-MCS)، 80515SAB وقفه و یکی مبدل آنالوگ به دیجیتال با 8 کانال ورودی عرضه کرده است.
خانواده 8051 به عنوان یکی از جامع ترین و قدرتمندترین میکروکنترلرهای 8 بیتی شناخته شده و جایگاهش را به عنوان یک میکروکنترلر مهم برای سالهای آینده یافته است.
این بخش با بحثی در مورد نقش و اهمیت میکروکنترلرها در زندگی روزمره و نیاز به میکروکنترلرها و مقایسه آنها با میکرو پروسسورهای همه منظورهای چون پنتیوم و دیگر میکرو پروسسورها آغاز شده است.
میکروکنترلرها در برابر میکرو پروسسورهای همه منظوره
تفاوت بین یک میکرو پروسسور و یک میکروکنترلر چیست؟ منظور از یک میکروپروسسور ریز پردازنده میکروی پروسسورهایی از خانواده x86 اینتل مثل 8036,80286,8086 و یا 68040,68030,68020خانوادههائی از این قبیل است این میکروپروسسورها فاقد RAM و پورتهای ROM در درون خود تراشه هستند. به این دلیل به آنها «میکروپروسسورهای همه منظوره» میگویند.
طراح سیستمی که از میکرو پروسسور همه منظورهای چون پنتیوم، 68040 استفاده میکند، باید در خارج از آن RAm ROM,پورتهای I/O و تایمرها را اضافه نماید تا سیستمی قابل کار ساخت شود. اگرچه افزایش RAM Rom, پورتهای I/O موجب حجیم شدن و گرانتر شدن سیستمها میگردد، ولی به قابلیت انعطاف آنها افزوده میشود از جمله اینکه طراح میتواند روی مقدار ROM, ROM پورتهای I/O بر حسب نوع کاربرد تصمیمگیری و اعمال نظر نماید. این توانمندی در میکروکنترلرها امکان پذیر نیست. یک میکروکنترلر دارای یک CPU به همراه مقدار ثابتی از ROM,RAM پورتهای I/O و تامیر در درون خود میباشد. به بیان دیگر، پروسسور، ROM,RAM، پورتهای I/O و تایمر همگی در یک تراشه جای داده شدهاند، بنابراین طراح نمیتواند یک حافظه، I/O یا تایمری را بدون گسترش لازم آن از بیرون اضافه کند. مقدار ثابت RAM,ROM و مقدار پورتهای تثبیت شده در میکروکنترلرها، آنها را برای کاربردهائی که قیمت و محفظه در آنها بحرانی است، ایدهآل کرده است.
مقایسه سیستم میکرو پروسسور و میکرو کنترلر:
الف) میکرو پروسسور میکروکنترلر: ب) میکروکنترلر
گذرگاه آدرس
میکرو کنترل ها و سیستم های تک منظوره:
در مقالاتی که میکرو پروسسور ها مطرح میشوند، اغلب عبارت سیستم تک منظوره را ملاحظه میکنیم. میکرو پروسسورها و میکروکنترلرها بطور گستردهای در تولید سیستمهای تک منظوره بکار میروند. یک محصول تک منظوره از یک میکروپروسسور (یا میکرو کنترلر) برای انجام فقط و فقط یک کار استفاده میکند. یک چاپگر نمونهای از یک سیستم تک منظوره است. زیرا پروسسور داخل آن فقط یک کار را انجام میدهد و آن این است که داده را بدست آورده و آن را چاپ کند. این کار را با یک PC مبتنی بر پنتیوم (مانند هر PC سازگار با x86 IBM) مقایسه نمایید. PC میتواند برای هر کاربردی مانند پردازشگرهای کلمات، مراکز چاپ، پایانه، لیستهای بانک، بازیهای ویدئویی، سرویسدهنده شبکه و پایانه اینترنت مورد استفاده قرار گیرد، برای انواع کاربردها میتوان به راحتی برنامه را در PC بار کرده و آن را اجرا کرد. البته دلیل قابلیت اجرای کارهای متنوع در PC،این است که دارای حافظه RAM و سیستم عاملی است که نرم افزار کاربردی را در RAM بار کرده و اجازه اجرای آن را به PC میدهد. در یک سیستم تک منظوره، تنها یک نرم افزار کاربردی وجود دارد و معمولاً در ROM سوزانده میشود. یکPC x86 ممکن است به وسایل تک منظورهای مانند صفحه کلید، چاپگر، مودم، کنترلگر دیسک، کارت صدا، راه انداز CD-Rom، ماوس و غیره متصل باشد. هر یک از این وسایل جانبی در داخل خود دارای یک میکروکنترلر برای انجام کار خاص میباشند. مثلاً در داخل هر ماوس یک میکرو کنترلر وجود دارد که وظیفهاش یافتن مکان ماوس و ارسال آنها به PC است. جدول زیر بعضی از محصولات تک منظوره را نشان میدهد.
منزل
خودکار
لوازم خانگی
کامپیوتر
ارتباطات درونی
کنترل موتور
تلفن
کیسه هوا
دزدگیر
وسایل اندازهگیری
منشی تلفن
سیستم حفاظتی
ماشینهای خیاطی
کنترل انتقال
ورود بدون کلید
اداری
فاکس
مایکروویو
دستگاه فتوکپی
چاپگر لیزری
چاپگر رنگی
احضار از بلندگو
انتخاب یک میکروکنترلر
چهار نوع میکروکنترلر 8بیت مهم وجود دارد که عبارتند زا:
6811 ازموتورولا 8051- ازاینتل Z8- از زایکوگ PIC 16x از شرکت میکروچیپ تکنولوژی هر یک از میکرو کنترلرهای فوق مجموعه دستورات و مجموعه ثباتهای خاص خود را دارد، بنابراین با یکدیگر سازگار نیستند. برنامهای که بر روی یک ازآنها نوشته شود، بر روی دیگری قابل اجرا نیست. میکروکنترلرهای 16 و 32 بیتی هم وجود دارند که به وسیله سازندگان مختلف ساخته شدهاند. با این تنوع در میکرو کنترلرها، طراح باید کدامیک را انتخاب کند؟ سه روش برای این انتخاب در زیر تشریح شده است:
(1) برآورده کردن نیازهای محاسبات کار بطور موثر و مقرون به صرفه.
(2) در دسترس داشتن نرمافزارهای کمکی مانند کامپایلرها، اسمبلرها و عیب یابها
(3) منابع گسترده و قابل اعتماد برای میکروکنترلرها
اکنون هر یک از موارد فوق را به تفصیل بررسی میکنیم:
روش انتخاب میکروکنترلر:
1-اولین و قدیمیترین روش انتخاب میکروکنترلر این است که نیازهای سیستم دقیقاً مشخص و هزینه آن هم مقرون به صرفه باشد. دیگر موارد قابل بررسی عبارتند از:
الف) سرعت. بالاترین سرعتی که میکروکنترلر پشتیبانی میکند چیست؟
ب) بستهبندی. آیا بستهبندی از نوع DIP چهل پایه است، از نوع AFP (بسته همسطح) تهیه شده است، و یا در دیگر انواع بستهبندی ارائه شده است؟ بستهبندی به دلیل فضای اشغالی مونتاژ و ساخت نمونه نهایی اهمیت خاصی دارد.
پ) توان مصرفی. این فاکتور خصوصاً برای محصولاتی که با باطری کار میکنند، اهمیت دارد.
ت) مقدار RAM و ROM در تراشه
ث) تعداد پایههای I/O و تایمر در تراشه
ج) به چه سادگی به ویرایش بعدی از نظر کارایی و توان مصرفی تبدیل میشود.
چ) قیمت هر عدد. این فاکتور از نظر قیمت تمام شده میکروکنترلری که در تولید بکار رفته، اهمیت دارد. مثلاً وقتی که 100000 واحد خریداری گردد، قیمت هر یک میتواند حدود 50 سنت باشد.
(2) روش دوم در انتخاب یک میکروکنترلر این است که به چه سادگی میتوان حول آن امکانات ایجاد کرد.
بررسیهای کلیدی نشان میدهد که در دسترس بودن اسمبلر، عیب یاب، کامپایلر C امولاتور (شبیه ساز) پشتیبانی فنی و متخصصین درون خانهای و بیرونی از نکات قابل توجهند در بسیاری از حالات، تولید کنندگان دست دوم، (تولید کنندگانی که سازنده اولیه نیستند) میتوانند اگر بهتر از سازنده نباشند، در حد آنها سرویس ارائه کنند.
(3) سومین روش در انتخاب میکروکنترلر، در دسترس بودن آن بتعداد لازم در حال حاضر و آینده است. برای بعضی از طراحان، این یکی حتی مهمتر از موارد 1 و 2 است. در حال حاضر، در میان پیشروان میکروکنترلرها،خانواده 8051 بیشترین تعداد تولید کننده ثانویه را دارد. در اینجام منظور از تولیدکننده ثانویه میکروکنترلر، تولید کنندهای به جز تولید کننده اصلی است. در مورد 8051، که ابتدا به وسیله Intel ساخته شد، چندین کمپانی دیگر در حال حاضر مشغول تولید آن بوده و یا هستند. از آن جمله: Matra, Simens, AMD, Atmel, Philips/Signetics
باید متذکر شد که Motorola و Microchip Technology, Zilog تعداد زیادی شعبات را برای این منظور انتخاب کردهاند تا تولیدات خود را به طور گسترده و به موقع در دسترس قرار دهند زیرا تولیدشان با ثبات، در حد کمال و قابلیت دسترسی، از یک مرکز است. در سالای اخیر آنها نیز شروع به فروش سلول کتابخانه AISC از میکروکنترلرها کردهاند.
جدول 1-2 بعضی از کمپانیهای تولید کننده اعضای خانواده 8051
Web Site
Company
www.intel.com/design/mcs51
Intel
www.atmel.com
Atmel
WWW.Semiconductors.philips.com
Philips/signetics
www.Sci.siemens.com
Siemens
www.dalsemi.com
Dallas Semiconductors
تاریخچه مختصری از 8051:
در سال 1981 شرکت اینتل، میکروکنترلری به نام 8051 را معرفی کرد. این میکروکنترلر دارای 128 بایت RAM، 4K بایت ROM، دو تایمر، یک پورت سریال و چهار پورت موازی (هریک 8 بیت) بود که همه آنها در یک تراش تعبیه شده بودند. زمانی به آن «سیستم در یک تراشه» میگفتند. 8051 یک پروسسور 8 بیت است، یعنی CPU هر بار میتواند فقط روی 8 بیت داده کار کند. دادههای بزرگتر از 8 بیت باید به قطعات 8 بیت بشکنند وسپس بوسیله CPU پردازش شوند. 8051 کلاً دارای چهار پورت I/O با عرض 8 بیت است. شکل (1) را ملاحظه کنید. گرچه 8051 میتواند حداکثر 64K حافظه Rom در تراشه داشته باشد، بسیاری از سازندگان فقط 4K بایت را در تراشه کار گذاشتهاند.
پس از اینکه اینتل به شرط حفظ سازگاری با 8051، اجازه تولید را به دیگر سازندگان داد، تراشه مذکور بسیار مورد توجه قرار گرفت. این توافق منجر به تولید انواع 8051 با سرعتهای متفاوت و مقداری ROM در تراشه به وسیله نیم دوجین سازنده شد. آنچه اهمیت دارد این است که گرچه انواع مختلف 8051 با سرعت و مقدار Rom متفاوت در تراشه موجودند ولی همه آنها با 8051 اصلی از نظر دستورات سازگارند. این بدان معنی است اگر شما برنامهای برای یکی بنویسید مستقل از سازنده روی دیگری هم قابل اجراست.