استفاده از میکروکنترلر AT89C2051 بعنوان ماشین مجازی
استفاده از میکروکنترلر AT89C2051 بعنوان ماشین مجازی – ایران ترجمه – Irantarjomeh
مقالات ترجمه شده آماده گروه برق – الکترونیک
مقالات ترجمه شده آماده کل گروه های دانشگاهی
مقالات
قیمت
قیمت این مقاله: 25000 تومان (ایران ترجمه - irantarjomeh)
توضیح
بخش زیادی از این مقاله بصورت رایگان ذیلا قابل مطالعه می باشد.
شماره | ۱ |
کد مقاله | ELC01 |
مترجم | گروه مترجمین ایران ترجمه – irantarjomeh |
نام فارسی | استفاده از میکروکنترلر AT89C2051 بعنوان ماشین مجازی |
نام انگلیسی | Using the AT89C2051 Microcontroller as a Virtual Machine |
تعداد صفحه به فارسی | ۲۹ |
تعداد صفحه به انگلیسی | ۱۱ |
کلمات کلیدی به فارسی | میکروکنترلر |
کلمات کلیدی به انگلیسی | Microcontroller |
مرجع به فارسی | ATMEL |
مرجع به انگلیسی | ATMEL |
کشور | ایالات متحده |
استفاده از میکروکنترلر AT89C2051 بعنوان ماشین مجازی
استفاده از میکروکنترلر AT89C2051
بعنوان ماشین مجازی
ATMEL
این موضوع معمولا عنوان گردیده است که چیزی که یک میکروکنترلر چند لایه را از دیگر ابزارهای محاسباتی معمولی متمایز میکند، مجتمع سازی آن بصورت یک سیستم الکترو- مکانیکی بزرگتر میباشد. در حالی که این مسئله بطور کلی درست میباشد، حقیقتی که باقی میماند این است که برای انجام این مهم پردازشگرهایی با توانائیهای بسیار متفاوت و ساختار گوناگون مورد استفاده قرار گرفته است. متاسفانه توضیح کلی چیزی را حل نمیکند. ما هنوز چالشهای بسیاری را در پیش روی داریم از رایانههای کاملا توسعه یافته چندلایه تا کوچکترین چیپهای میکروکنترلر. دراین محدوده گسترده، عقل محافظهکار به ما میگوید که میکروکنترلرهای کوچک تنها برای کار در برنامههای کوچک مناسب میباشند، برنامههایی که به ملزومات پردازشی کمی نیاز دارد. در حالی که این موضوع بدون شک در بسیاری از موارد صحت دارد، یک کلاس برنامههای کاربردی باید موجود باشد تا آنکه بتواند برنامههای سطح بالایی را در فضای محدود به اجرا رساند. با روبرو شدن با چنین تضادی مهندسان معمولا احساس میکنند که حق انتخاب چندانی ندارند جز آنکه طرحی را که اندکی کمتر از میزان بهینه مورد نظرشان است، اتخاذ نموده و این استراتژی را با استفاده از میکروکنترلرهایی بزرگتر از آنچه مدنظر داشتند به انجام رسانند.
البته مشکل موجود یکی از محدودیتهایی است که وجود دارد. پیچیدگیهای عملی باعث میگردد که برنامههایی بدون آنکه تست و آزمایش شوند بوجود آید. هرچه میزان پیچیدگیهای عملی بیشتر باشد حجم برنامه نیز زیادتر خواهد شد. حتی با وجود آنکه میزان توانایی میکروکنترلرهای تک چیپه روز به روز افزایش مییابد، ولی با این حال برنامههای کاربردی نیز به همین سرعت رشد کرده و امکانات بیشتری را طلب مینمایند. غلبه بر چنین شرایطی حتی در ایدهآلترین حالت مشکل است.
استفاده از میکروکنترلر AT89C2051 بعنوان ماشین مجازی
استفاده از میکروکنترلرها با قدرت پردازش کافی برای برنامههای خاص جزو مسائل غریزی است که راه حل مناسب خود را میطلبد. این مسئله تنها در صورتی حل گشته و جامه عمل خواهد پوشید که کلید ملزومات سیستمی بطور کلی شناخته شده و بصورت واضح تعریف گردد. از آنجایی که چنین طرحی معمولا دارای ظرفیت معکوس اندکی میباشد، عمل نمودن به مواردی که خارج از محدوده تعیین گشته باشد امری مشکل و سخت خواهد بود. آیا توانائیها و ظرفیتهای اضافه نهایتا به عنوان یک الزام مطرح خواهد شد. اگر چنین باشد، سیستمیخواهیم داشت که خارج از محدوده عمل کار خواهد نمود و مهندسیی خواهیم داشت که میتوانند خارج از محدوده معین و از روی اختیار عمل نمایند. به همین دلیل طراحی ما شکل گرفت. ATmel’s AT89C2051 توانائیها و ظرفیتهایی را در بر دارد که بسیار فراتر از ابزارهای مشابه و هماندازه میباشد. این سیستم قادر است طراحی بالقوهای را اجرا نماید که ادوات قبل از آن امکان اجرای این موارد را نداشتند. این سیستم دارای بستهبندی بصورت بیست پینی میباشد. میکروکنترلر مینیاتوری ATmel’s خصیصههای اصلی معماری ۸۰۵۱ را در خود دارد. بعلاوه، AT89C2051 شامل کلید بیتهای مخصوص ۸۰۵۱ و وقفههای خارجی، ارسال UART و خطوط دریافت کننده و یک کنترل کننده تایمر خارجی میباشد. با وجود آنکه AT89C2051 بطور قابل ملاحظهای پردازش را افزایش میدهد، بنظر میرسد که محدودیتهایی برای آنچه میخواهیم انجام دهیم در میکروکنترلر تک چیپه وجود دارد.
البته این موضوع چیز جدیدی نیست. راهکار سنتی حل مشکل چنین محدودیتهایی استفاده از مد حافظه خارجی بوده است. احساس کلی نا امیدی کاربرد چنین راهکارهایی را در AT89C2051 نشان میدهد. بطور کلی، باید گفت که AT89C2051 یک طرح تک چیپ واقعی است که حتی دارای ساختار باس خارجی هم نمیباشد. بر این اساس میتوان گفت که وضعیت اصلا نا امید کننده نمیباشد.
استفاده از میکروکنترلر AT89C2051 بعنوان ماشین مجازی
شبیهسازی پردازنده
مفهوم شبیهسازی پردازنده بطور گستردهای مورد استفاده قرار گرفته و بخوبی نیز درک شده است. شبیهسازی معمولا برای پیشبرد و توسعه امور مورد استفاده قرار میگیرد.
هدف، مدلسازی یک معماری پردازنده خاص توسط برنامه PC و تفسیر و اجرای دستورالعملهای باینری میباشد. با استفاده از این تکنیک میتوان الگوریتمهایی را بوجود آورده، آنها را تست و دیباگ نموده و نهایتا آنها را دریک برنامه بزرگتر ترکیب نمود. چنین برنامهای در نهایت بر روی یک ریز پردازنده و یا یک میکروکنترلر مجزا اجرا خواهد شد. استفاده از شبیهسازی در ابتدای سیکل طراحی جذاب خواهد بود، چرا که به شما اجازه میدهد تا کد توسعه را کاملا قبل از آنکه سختافزار مقصد حقیقی حاضر باشد آغاز نمائید.
شبیهسازی پردازنده همچنین به منظور شبیهسازی کل سیستمهای محاسباتی مورد استفاده قرار میگیرد. در این مقاله، برنامههای کاربردی حاضر، در فرمت باینری خود، بگونهای طراحی شدهاند تا بتوانند بر روی هر کامپیوتری با هر نوع پردازنده اجرا شوند. البته بدلایل روشنی کاربرد چنین دیدگاهی چندان نیز خالی از نگرانی نیست. با این وجود، در صورت طراحی برای موارد خاص جای نگرانی وجود ندارد. فاکتورهای موثر در کارایی اجرای عملیات شامل قدرت پردازشگر میزبان و محدودیتهای آن میباشد. از دیگر عوامل مهم، انواع خاص عملیات که میبایست شبیهسازی گردد، و تا اندازهای، زبانی که برنامه اصلی با آن نوشته شده میباشد.
شبیهسازی پردازنده مجازی
بسیاری از شبیهسازهای توسعه یافته به منظور به راهاندازی و تحریک فانکشنهای پردازندههای معمولی و میکروکنترلرها بوسیله کامپیوترهای استاندارد دسکتاپ بوجود آمدهاند. همین اصول را میتوان در آنسوی قضیه نیز بکار گرفت. مواردی نیز وجود دارند که اجرای شبیهسازی بر روی میکروکنترلر میتواند برای آنها فوایدی را در بر داشته باشد. با این وجود، مزیت کار شبیهسازی یک پردازنده شناخته شده نیست، بلکه استفاده از گونهای است که مزیتهای توارثی را برای حل مشکلات خاص پیش روی ما داشته باشد. اجرای این موارد، به طراحی پردازنده مجازی اشاره دارد. این ایده براساس کاربرد پردازنده حقیقی جهت استفاده از یک ابزار مجازی میباشد که برای برآورده شدن نیاز برنامه خاصی تدوین شده است. بعبارت دیگر، طراحی ابزارهای مناسب برای انجام یک کار خاص مدنظر است.
حقیقت آن است که اتخاذ چنین اسلوبی میتواند نهایتا موجب پدیدار شدن معماریی شود که میتواند بعنوان یک ابزار موثر برای وظایف گوناگون مورد استفاده قرار گیرد. جزئیات این امر شامل معماری ریشهای، دستورالعملها و مدل حافظهای است که با آزادی کامل در اختیار میباشد. اما، آیا چنین دیدگاهی میتواند آن سطح از کارایی که برای برنامههای کاربردی چند لایه لازم است را فراهم سازد؟
استفاده از میکروکنترلر AT89C2051 بعنوان ماشین مجازی
کارایی و اورهد
نشان دادن کارایی یک موضوع مفهومیاست، مثلا در نظر داشته باشید که چه روی خواهد داد به هنگامیکه برنامه معمولی C طوری کامپایل شود تا بر روی پردازنده ۸۰۵۱ کار کند. در چنین معماریی، بدون غلو، هرگونه دستورات C بطور موثر به دستورالعملهای مشابه آن در ۸۰۵۱ کامپایل میشود. هریک از دستورات C بدون تغییر باعث اجرای چندین دستورالعمل میگردد. بر این اساس، با دادن هر دستورالعمل شبیهسازی، اورهد شبیهسازی ممکن است تنها درصد بسیار کوچکی از زمان اجرای کلی را بخود اختصاص دهد.
…
شبیهسازهای پردازنده و مفسرهای زبان
تمایز بین مفسرهای خاص زبان که زبان خاصی را مانند بیسیک اجرا میکنند و شبیهسازهای پردازنده که مجموعهای از دستورالعملهای باینری سطح پایین را اجرا میکنند حائز اهمیت میباشد. یک مفسر بیسیک نشانهدار شده، در حالیکه کارایی لازم در اجرای دستوراتی که بعنوان بخشی از زبان مورد تصریح قرار گرفته است را دارد، کاملا محدود به آن چیزی است که زبان خاص خود از آن پشتیبانی میکند. کارایی ذاتی یک مفسر زبان وابسته به هزینهای دارد که برای انعطافپذیری آن پرداخت میشود.
در مقابل، یک شبیهساز پردازنده، که دارای مجموعه دستورالعمل باینری حقیقی میباشد، از آزادی کامل در ترکیب این کدهای عملیاتی پایه با داشتن یک هویت عملکردی بزرگتر و تقریبا تبدیل نامحدود سود میبرد. درست مانند یک پردازنده واقعی، یک پردازنده شبیهسازی شده میتواند از مجموعه دستورالعمل خود برای فانکشنهای کتابخانهای استاندارد و معمولی C، کتابخانههای ممیز اعشار، درایوهای ابزار و غیره استفاده کند.
ماشین مجازی ـ یک پردازنده خیالی
این پردازنده را میتوان با توجه به ساختار و مجموعه دستورالعملهای آن که بصورت اصلی و منحصر بفرد میباشند، یک پردازنده خیالی یا ایدهآل خواند. با این وجود، میتوان این مهم را دریافت که پردازنده یک اسباببازی یا یک تفریح هوشمند بشمار نمیآید. از نقطهنظر اجرایی، پردازنده کاملا حقیقی میباشد. این مفهوم اساسی به بسیاری از ساختارهای پردازنده انتقال یافته است. نگارشی نیز وجود دارد که برای کامپیوترهای شخصی جهت اهداف معرفی و توسعه مناسب میباشد. یکی از مهمترین پورتهای کوچک ـ سیستمی نوید دهنده جهت AT89C2051 در نظر گرفته شده است که بواسطه هسته پردازش استاندارد میکروکنترلر خود و مجموعه ادوات جانبی مجتمع آن معروفیت یافته است. یک ماشین مجازی بیسیک k8 بصورت شماتیک در شکل ۱ نشان داده شده است.
…
استفاده از میکروکنترلر AT89C2051 بعنوان ماشین مجازی
بارگزاری اولیه برنامه
با وجود آنکه بطور حقیقی بخشی از ماشین مجازی نمیباشد، هسته شبیهسازی شامل یک برنامه بارگزاری داخلی میباشد. این ابزار به صورت سریال عمل نموده و در پی ریست شدن سیستم با استفاده از دامنهای از دستورات خاص از برنامه یوتیلیتی که در حال اجرا بر روی یک کامپیوتر میزبان میباشد عمل مینماید. علاوه بر انتقال تصویر بارگیری شده به پردازشگر مجازی، برنامه PC تعدادی از خصیصه ها را فراهم میآورد که شامل شبیهساز ( که قادر است به زیر سیستم I/O فیزیکی و منطقی مقصد چسبیده شود ) و یک کنسول ویندوز جهت انجام I/O به سیستم مقصد. از آنجا که ژنراتور کد ماشین مجازی شامل فایل هگزاینتل استاندارد میباشد، استفاده از برنامههای یوتیلیتیPC اختیاری خواهد بود.
…
I/O ماشین مجازی
ماشین مجازی، I/O فیزیکی را (به همراه I/O ماشین مجازی) از طریق دستورالعملهای خروجی و ورودی بکار میبرد. دریافت آدرسهایI/O های مشخص برای فانکشنهای روچیپه نظیرI/O سریال و همچنین برای دسترسی پورتهای I/O موازی دوچیپه AT89C2051 طبیعی میباشد. آدرسهای I/O اضافی به فانکشنهای سطح دوم نظیر پیکربندی پورت سریال وتنظیم بیت I/O مستقیم وفانکشنهای پاک کردن تخصیص مییابد. فانکشنهای دستکاری بیت به هنگامیکه یک پورت موازی روچیپه به صورت همزمان برای ورودی وخروجی استفاده میگردد مهم خواهند بود.
…
اسمبلی ماشین مجازی
جهت روشن ساختن ارتباط هسته ماشین مجازی، یک تابع یا فانکشن کتابخانهای اسمبلی مجازی و یک برنامه کاربردی C مجازی موجود میباشد. این امر همچنین میتوان کمکی جهت نشان دادن چگونگی ارتباط آسان با دنیای خارجی در چنین محیطهایی باشد.برنامه نشان داده شده در لیست ۱، یک تابع کتابخانهای بوده که از I/O کاربر با استفاده از I2C ویژه پشتیبانی میکند.
…
عمل کامپایل ماشین مجازی
موارد کمی را میتوان درباره فرآیند ماشین مجازی بیان نمود. این امر در حقیقت یک موهبت به شمار میرود چرا که هدف اصلی یک کامپیلر زبان دور نگه داشتن یک کاربر از پیچیدگیهای پردازنده خاص میباشد. با توجه به تجارب به دست آمده از کامپایلرهای C جهت پردازندههای ۸۰۵۱ موردی که غیبت آن محسوس میباشد نبوده کتابخانههای چندگانه برای ماژولهای حافظه متفاوتی میباشد که به هنگام کار با دستگاه ۸۰۵۱ بسیار لازم میباشد. توجه داشته باشید که یک ماشین مجازی تنها از حافظه مسطح ۶۴ کیلو پشتیبانی میکند.
…
کامپیوترهایی با اندازه کوچک
با وجود ِآنکه ماشینهای مجازی دارای اندازه کوچکی میباشند، آنچه که از آن انتظار دارید را برآورده مینمایند. ماشین مجازی درحقیقت یک سیستم کامپیوتری کامل با توابع یا فانکشنهای گسترده میباشد. شما به سختی قارد خواهید بود تا سیستمی با این کارایی و کوچکتر از آن پیدا کنید، کامپیوتری که دارای قابلیت سازگاری وپشتیبانی را از زبان برنامه نویسی C را دارد.
با استفاده از تکنیکهای ساخت نصب سطحی، یک کامپیوتر با عملکرد کامل را میتوان به وجود آورد که قابلیت زیادی را داشته باشد. حافظه بزرگ برنامه ماشین مجازی ترکیب گشته با حافظه I2C ثانویه و باس جانبی، این معماری را برای انجام بسیاری از پروژههای سطح بالا به عنوان الگویی دلخواه معرفی مینماید، و اندازه کوچک آن اجازه نصب در هر محل را بدان میدهد.
منابع
چنانچه علاقهای در کسب مفاهیم ماشین مجازی، شبیهساز ماشین مجازی بر مبنای کامپیوترهای PC باعملکرد کامل، کتابخانههای کامپایلر C دارا میباشید یک برنامه اسمبلر آماده دانلوند شده از بولتن سایت ” دانفبلد دولوپمنت سیستمز “ میباشد جهت تماس میتوانید از آدرس ذیل استفاده کنید.
استفاده از میکروکنترلر AT89C2051 بعنوان ماشین مجازی