اینتل – ۸۳C51FA
اینتل – ۸۳C51FA – ایران ترجمه – Irantarjomeh
مقالات ترجمه شده آماده گروه برق – الکترونیک
مقالات ترجمه شده آماده کل گروه های دانشگاهی
مقالات
قیمت
قیمت این مقاله: 25000 تومان (ایران ترجمه - irantarjomeh)
توضیح
بخش زیادی از این مقاله بصورت رایگان ذیلا قابل مطالعه می باشد.
شماره | ۶ |
کد مقاله | ELC06 |
مترجم | گروه مترجمین ایران ترجمه – irantarjomeh |
نام فارسی | اینتل – ۸۳C51FA |
نام انگلیسی | Intel- 83C51FA |
تعداد صفحه به فارسی | ۱۸ |
تعداد صفحه به انگلیسی | ۵ |
کلمات کلیدی به فارسی | اینتل |
کلمات کلیدی به انگلیسی | Intel |
مرجع به فارسی | |
مرجع به انگلیسی | |
کشور | ایالات متحده |
اینتل – ۸۳C51FA
اینتل
۸۳C51FA
مقدمه
این مقاله کاربردی نشان دهنده چگونگی استفاده از ۸۳C51FA جهت کنترل موثر موتورهای DC با حداقل نیازهای سخت افزاری میباشد. همچنین در این مقاله کاربرد نرم افزار و تکنیکهای کمکی موجود به همراه کدهای نمونه که برای درک دقت کنترل موتور لازم است عرضه میگردد.
علاوه بر این، در این مقاله خلاصهای از خصیصههای جدید ۸۳C51FA تشریح گردیده است. این خصیصه جدید بنام آرایه شمارنده قابل برنامهریزی (PCA) نامیده میشود و قدرت ارسال سیگنالهای ماژوله پالس پهن (PWM) از طریق پینهای I/O طراحی شده را دارا میباشد.
در این مقاله تصور بر آن است که خوانندگان با معماریMCS-51 و زبان اسمبلی خاص آن آشنایی دارند.
این مقاله موتورهای استپر (پلهای) و یا الگوریتمهای کنترل مربوطه را مورد بررسی قرار نمیدهد.
اینتل – ۸۳C51FA
موتورهای DC
موتورهای DC بطور گسترده ای در کاربردهای صنعتی و مصرفی استعمال میگردند. در بسیاری از موارد ، دقت بطور مطلق در حرکت مسئله اصلی محسوب نمیگردد، اما کنترل سرعت دقیق یک مسئله مهم میباشد. بطور مثال، یک موتور DC در یک دستگاه ضبط میبایست دارای سرعت حرکت ثابت باشد. دراین دستگاه لزومیجهت افزایش دقیق سرعت و ایست آن در نقاط مشخص وجود ندارد.
با این وجود، برخی از کاربردهای موتور نیاز به دقت زیاد قرارگیری در یک محل خاص دارد. مثال این مورد پلاترهای با رزولوشن بالا، چاپگرها، درایوهای دیسک رباتها، و غیره میباشند. همچنین برخی از برنامه های کاربردی وجود دارند که نیاز به کنترل دقیق سرعت و قرارگیری دقیق در یک محل خاص دارند. مثال این دستگاهها عبارتند از ضبط کنندههای ویدیوئی، درایوهای دیسک فشرده، ضبطهای با کیفیت بالا.
با کنترل دقیق موتورهای DC آنها قادرند بسیاری ار کاربردهای موتور مرحلهای را انجام دهند. هزینه سیستم کنترل بستگی به میزان دقت و سرعت آن دارد.
۸۳C51FA میتواند یک موتور DC را با دقت و حداقل نیاز سخت افرازی با هزینه بسیار پایین کنترل نماید. میکروکنترلر، بعنوان مغز سیستم، بصورت دیجیتالی قادر میباشد تا سرعت مدور موتور را کنترل نماید، این کنترل بوسیله مانیتورینگ خطوط تغذیه یا فیدبک و کنترل چرخش خطوط خروجی صورت میپذیرد. بعلاوه ۸۳C51FA قادر است وظایف دیگری که مورد نیاز باشند را انجام دهد.
تقریبا کلیه کاربردهایی که از موتورDC استفاده میکنند نیاز دارند تا این موتور بتواند مسیر خود را معکوس نموده و یا سرعت خود را تغییر دهد. معکوس کردن مسیر براحتی با تغییر قطبیت ولتاژ بکار رفته در موتور انجام میگیرد.
شکل ۱ نشان دهنده یک مدار درایو سمبلیک ساده میباشد که قادر است قطبیت ورودی موتور را معکوس نماید.
شکل ۱٫ مدار درایو موتور دوطرفه
در تغییر دادن سرعت نیاز به تغییر سطح ولتاژ ورودی موتور میباشد، و این بدان معناست که میبایست سطح ورودی درایو موتور را تغییر دهیم. در سیستمهای کنترل شده دیجیتالی سیگنال آنالوگ درایور میبایست از کانورتور مبدل D/A استفاده نماید ولی اضافه کردن این مبدل به مدار باعث افزایش هزینه چیپ میگردد، که خود به معنای پرداخت بیشتر، مصرف برق بیشتر و کاهش اطمینان و اتکا به سیستم میباشد.
جایگزین دیگر در این خصوص تغییر پهنای پالس سیگنال دیجیتال ورودی به موتور میباشد. با تغییر پهنای پالس میانگین، ولتاژ ارسالی به موتور تغییر یافته و باعث تغییر سرعت موتور میگردد. مدار دیجیتالی که این عمل را انجام میدهد به نام ماژولهساز پهنای پالس (PWM) خوانده میشود. ۸۳C51FA را میتوان به صورتی پیکربندی کرد تا دارای ۵ ماژوله پهنای پالس روچیپه باشد.
اینتل – ۸۳C51FA
۸۳C51FA
۸۳C51FA یک میکروکنترلر ۸ بیتی بر مبنای معماری ۸۰۵۱ میباشد. ۸۳C51FA نگارش پیشرفته ۸۷C51 بوده و دارای خصیصههای جدید مثل آرایه شمارنده قابل برنامه ریزی (PCA) میباشد.
در داخل آرایه شمارنده قابل برنامهریزی یک تایمر آزاد ۱۶ بیتی و ۵ ماژول مجزا قرار دارد.
تایمر PCA متشکل از دو رجیستر ۸ بیتی به نام CL (بایت کم) و CH (بایت زیاد) میباشد، و با دیگر ماژولها مشترک است. این دستگاه را میتوان به گونهای برنامهریزی کرد تا ورودی را از ۴ منبع مختلف دریافت دارد. ورودیها دارای انعطاف در انتخاب میزان شمارش تایمر میباشند. حداکثر نرخ شمارش، ۴ مگاهرتز (یک چهارم فرکانس اسیلاتور) میباشد.
قسمتی از پورت یک پین جهت اینترفیس هر ماژول و تایمر به جهان بیرون متصل است. به هنگامیکه پینهای پورت توسط ماژول های PCA مورد استفاده قرار نمیگیرند میتوان آنها را به عنوان پینهای I/O معمولی مورد استفاده قرار داد. ماژولهای PCA را میتوان جهت انجام یکی از حالات زیر برنامهریزی کرد: مد گیراندازی یا کپچر، مد مقایسه، مد سرعت بالای خروجی، مد مدوله کننده پهنای پالس(PWM)، و مد تایمر واچ داگ.
هر ماژول دارای یک رجیستر مد ۸ بیت به نام CCAPMn (شکل ۲) میباشد، و یک رجیستر مقایسه / کپچر ۱۶ بیت به نام CCAPnL و CCAPnH میباشد. n میتواند شامل هر مقدار از صفر تا ۴ باشد. با تنظیم بیتهای مناسب در رجیستر مد میتوانید هر ماژول را طوری برنامهریزی کنید تا در هر یک از مدهای فوق الذکر کار نماید.
۰ | ۱ | ۲ | ۳ | ۴ | ۵ | ۶ | ۷ |
ECCFn | PWMn | TOGn | MATn | CAPNn | CAPPn | ECOMn | – |
CCAPMnECOMn _ فعال کننده فانکشن مقایسه گر. میبایست برای فانکشنهایی تنظیم گردد که نیاز به مقایسه رجیسترهای کامپیر / کپچر با تایمر ۱۶ بیت دارد مانند تایمر نرم افزار، خروجی سرعت زیاد، تایمر واچ داگ، و PWM.CAPPn _ کپچر در لبه مثبت سیگنال.CAPNn _ کپچر در لبه منفی سیگنال.MATn _ یافتن یک همتا میان کپچر / کامپیر و تایمر ۱۶ بیت.TOGn _ کنترل پین I/O با انطباق میان رجیسترهای کپچر / کامپیر و تایمر ۱۶ بیت.PWMn _ ساخت PWM بر روی پین I/O با انطباق میان بایت پایین کپچر / کامپیر و بایت پایین تایمر PCA.ECCFn _ فعالسازی پرچم کپچر/ کامپیر CCFn در رجیستر CCOn جهت بوجودآوری یک وقفه |
شکل ۲٫ رجیستر CCAPMn
به هنگامییک ماژول در مد کپچر برنامهریزی میشود، یک سیگنال خارجی بر روی پورت مترادف باعث کپچر ارزش جاری تایمر ۱۶ بیتی خواهد شد. با تنظیم بیت CAPPn یا CAPNn و یا هر دو، ماژول را میتوان طوری برنامهریزی کرد تا لبه برآمده، لبه افتاده و یا هر لبه سیگنال را کپچر نماید. چنانچه کپچر فعال باشد یک وقفه در زمان کپچر تولید خواهد شد.
چنانچه ماژول میبایست در هر یک از مدهای کامپیر (تایمر نرم افزاری، خروجی سرعت بالا، تایمر واچ داگ، PWM) عمل نماید، کاربر، رجیسترهای کپچر/ کامپیر را با ارزشهای محاسبه شده لود کرده، که این موارد با محتویات تایمر ۱۶ بیت مقایسه گردیده، و به مجردی که مطابقت ارزشها تایید شد، باعث تولید یک رویداد یا ایونت میگردد. همچنین یک وقفه نیز تولید خواهد شد.
PWM یکی از مدهای کامپیر یا مقایسه میباشد و تنها مدی است که از رجیستر کپچر/کامپیر ۸ بیت استفاده مینماید. کاربر یک مقدار (۰ تا FFH) را در بایت بالا (CCAPnH) ماژول انتخابی مینویسد. این مقدار به بایت پایین همان ماژول انتقال داده شده و با بایت پایین تایمر PCA مقایسه میگردد. به هنگامیکه CL<CCAPnL باشد خروجی پین متناظر لاجیک صفر خواهد بود. اما چنانچه CL>CCAPnL باشد خروجی لاجیک یک خواهد بود.
در این برنامه ما خواهیم دید که چگونه یک ماژول برنامهریزی خواهد شد تا آنکه بتواند بعنوان یک PWM عمل نموده و سرعت و مسیر موتور DC را کنترل نماید.
اینتل – ۸۳C51FA
نصب PCA
۸۳C51FA دارای چندین رجیستر فانکشن مخصوص (SFRs) میباشد، که این رجیسترها در نگارش قبل از ۲٫۴ ASM51 شناخته شده نیست. نامهای این SFRs را میبایست توسط دستور دهنده DATA و یا در یک فایل مجزا تعریف نمود و در زمان کامپایل اضافه کرد. چنین فایلی در نگارش ۲٫۴ ASM51 قبلا ساخته شده و موجود است.
دو رجیستر فانکشن به تایمر PCA جهت انتخاب مد و کنترل تایمر اختصاص داده شده است. این رجیسترها CCON و CMOD بوده و در شکل ۳ نشان داده شده است. CCON شامل تایمر PCA بیت روشن و خاموش (CR)، پرچم رول اور (CF)، و پرچم ماژول (CCFn) میباشد. پرچمهای ماژول جهت تعیین آنکه کدام ماژول باعث وقفه PCA شده بکار میرود.
در ابتدا منبع ساعت برای تایمر PCAمیبایست تعریف گردد. تایمر ۱۶ بیتی میتواند یکی از چهار منبع ورودی آن باشد. این منابع عبارتند از: osc freq/4، osc freq/12، تایمر صفر اورفلو، و ساعت خارجی.
دو بیت در رجیستر CMOD به منظور انتخاب یکی از منابع تایمر ورودی PCA اختصاص داده شده است. آنها بیت ۱ و ۲ CMOD میباشند که به نامهای CPS0 و CPS1 خوانده میشود. CMOD بیت قابل آدرس دهی نیست. بنابراین مقدار باید بعنوان بایت لود گردد. شکل ۴ نشان دهنده کلیه منابع و مقادیر متناظر CPS0 و CPS1 میباشد.
منبع ورودی تایمر | CPS0 | CPS1 |
ساعت داخلی، Fosc/12ساعت داخلی، Fosc/4تایمر ۰ اورفلوساعت خارجی (ورودی P1.2) | ۰۱۰۱ | ۰۰۱۱ |
شکل ۴٫ منبع ورودی تایمر
در مرحله بعد ماژول مناسب میبایست بعنوان PWM برنامهریزی گردد. همانگونه قبلا تشریح شد، رجیستر ۸ بیت برای هر ماژول بنام CCAPMn خوانده میشود (شکل ۲). بیت ۱ هر رجیستر PWMn خوانده میشود. این بیت بهمراه ECOMn (بیت ۶ همان رجیستر)، میبایست برای برنامهریزی ماژول در مد PWM تنظیم گردد. PWM یکی از فانکشنهای مقایسهای PCA میباشد، و ECOMn فانکشن مقایسه را فعال میسازد. بنابراین، مقدار هگز که میبایست در یک رجیستر مناسب CCAPMn لود شود ۴۲H است.
اکنون که مدل بعنوان PWM برنامهریزی شده است، یک مقدار میبایست در بایت بالای رجیستر کامپیر لود شود تا آنکه سیکل وظیفه را انتخاب نماید. این مقدار میتواند بین ۰ الی ۲۵۵ باشد. ۸۳C511FA صفر را در CCAPnH لود کرده که باعث بوجود آوری سیکل وظیفه ۱۰۰% میگردد و ۲۵۵(۰FFh) باعث ایجاد سیکل وظیفه ۰٫۴% میشود (شکل ۵).
شکل ۵٫ سیکلهای کار انتخابی و فرمهای موج
مرحله بعد آغاز تایمر PCA میباشد. بیتی که تایمر را روشن و خاموش میکند، بنام CR خوانده شده و بیت ۶ رجیستر CCON میباشد(شکل ۳). از آنجایی که این رجیستر قابل آدرس دهی میباشد، میتوانید از دستورالعمل بیت برای روشن و خاموش کردن تایمر استفاده نمائید.
در مثال زیر ماژول ۲ برای مهیا نمودن سیگنال PWM در درایور موتور انتخاب میگردد. یک ساعت خارجی برای ورودی تایمر بگونهای مهیا میشود که، مقداری که باید در CMOD لود شود ۰۶H باشد.
اینتل – ۸۳C51FA
ملزومات سخت افزاری
به هنگام استفاده از ۸۳CF51FA ، ملزومات سخت افزاری بسیار اندکی جهت کنترل موتور مورد نیاز میباشد. کنترلر میتواند از طریق درایوری که در شکل ۶ نشان داده شده است به موتور متصل گردد.
شکل ۶٫ دیاگرام مدار ساده سیستم لوپ بسته
این پیکربندی، مدار لوپ بسته، تنها دارای ۳ پین I/O میباشد. مسیر کنترل خط میتواند یک پین پورت معمولی باشد ولی خط کنترل سرعت میبایست یکی از پینهای پورت ۱ مترادف ماژول PCA انتخاب شده برای PWM باشد. برحسب آنکه فیدبک چگونه تولید و پردازش میگردد، میبایست آن را به I/O معمولی، وقفه خارجی، و یا ماژول PCA متصل نمود. فیدبک(بازخورد) در بخش فیدبک این مقاله مورد بررسی قرار خواهد گرفت.
دیاگرام ضمیمه A نمونه موتور مدار DC میباشد که ساخته شده و تحت آزمایش و محک قرار گرفته است.
مدار درایور
با وجود آنکه برخی از موتورهای DC با انرژی ۵ ولت یا کمتر کار میکنند، ۸۳C51FA قادر به تهیه انرژی کافی جهت چرخاندن موتور نمیباشد. حداقل میزان انرژی مورد نیاز برای چرخش هر گونه موتور بیشتر از آن است که بوسیله جریان برق میکروکنترلر بدست آید. براساس سایز و گردش موتور، میبایست یک درایور مناسب را جهت دریافت سیگنال مربوطه از ۸۳C51FA و ارسال جریان برق کافی به موتور انتخاب نمود.
یک موتور به هنگام بارگیری کامل و بحرکت درآمدن از حالت سکون به حداکثر جریان خود نیاز دارد. این فاکتور را به هنگام انتخاب یک درایور باید مد نظر قرار داد. با این وجود، چنانچه برنامه نیاز داشته باشد که موتور بصورت معکوس بگردش درآید، جریان مورد نیاز حتی بیشتر نیز خواهد بود. به هنگامیکه سرعت موتور افزایش مییابد، مصرف برق آن کاهش مییابد. زمانی که سرعت موتور ثابت گشت، جریان بستگی به بار و ولتاژ حول موتور خواهد داشت.
درایورهای موتور استاندارد با انواع مختلف جریان برق و ولتاژ وجود دارند. یک نمونه سری L293 میباشد که میتواند دارای خروجی ۱ آمپر در کانال با ولتاژ ۳۶V باشد. این سری نیروی لاجیک را جدا نموده و ورودی لاجیک (۰ یا ۱) را به منظور فعالسازی و یا عدم فعالیت هر کانال تحت کنترل دارد. ۴ کانال در هر دیوایس یا دستگاه وجود دارد. همچنین L293D شامل دیودهای گیرهای است تا درایور را در برابر بروز EMF عقبی به هنگام معکوس نمودن موتور محافظت نماید.
اینتل – ۸۳C51FA
ملاحظات نویز (صدای ایجاد شده بر اثر کار دستگاه)
موتور، نویز الکتریکی زیاد و آزار دهندهای را تولید میکند. منبع نویز میتواند از سوئچینگ مدار درایور و یا از خود موتور باشد. هر چه که علت نویز باشد، این نویز باید ایزوله شده و یا برطرف گردد.
ایزوله نمودن میکروکنترلر از مدار درایور میتواند در جهت محدود کردن نویز امیدبخش باشد.
کنار گذاردن خازنها کمک بزرگی در برطرف نمودن نویز بوده است. آنها میبایست به برق و زمین (شکل ۷ دیاگرام a)، مدار درایور (دیاگرام b)، ترمینالهای موتور (دیاگرام c)، و ۸۳C51FA (دیاگرام d) متصل شوند. خازنها میبایست تا آنجا که ممکن است نزدیک اجزا باشند. در حقیقت بهترین محل زیر چیپ و یا روی آن است، البته در صورتی که پکیج اجازه دهد. دیاگرام های شکل ۷ نشان دهنده محل و برخی از مقادیر معمولی برای کنار گذاشتن خازنها میباشد.
شکل ۷ : محل های معمولی و مقادیر کنارگذاشته شده خازنها
سیستمهای لوپ باز و لوپ بسته
دو نوع سیستمهای کنترل موتور وجود دارد. لوپ باز و بسته.
در سیستم لوپ باز کنترلر یک سیگنال خروجی را جهت روشن و یا خاموش کردن موتور و یا تغییر مسیر چرخش آن ارسال مینماید. بطور مثال، محل دستی یا سوییچ تایمر بعنوان ورودی به کنترلر محسوب میشود. به عبارت دیگر، کنترلر میتواند ورودی را از جداول داده در برنامه اخذ نماید تا آنکه موتور را به حرکت درآورده، سرعت را تغییر داده، مسیر را معکوس نموده یا موتور را نگه دارد.
سیستمهای لوپ بسته میتواند مثالهای ذکر شده بالا را که برای سیستم لوپ باز بوده انجام دهد، بعلاوه دریافت حداقل یک سیگنال فیدبک از موتور. سیگنال فیدبک اطلاعاتی را نظیر سرعت، محل قرارگیری، و مسیر حرکت را باز میگرداند.
بسیاری از کاربردهای نیاز به آن دارند که موتور با سرعت یکنواخت و ثابت حرکت نماید. کنترلر میبایست به صورت مداوم تنظیمات را انجام دهد تا سرعت در محدوده خود باقی بماند. در برخی از موارد سرعت موتور به موتور و یا بخش دیگری از سیستم سنکرون میشود.
برحسب نوع سیگنال فیدبک ۸۳C51FA میتواند از دیگر ماژول های PCA به همراه لوازم جانبی دیگر روچیپه مانند تایمر/ شمارندهها، پورت سریال، و سیستم وقفه جهت کنترل دقیق موتور DC استفاده نماید.
مثال بخش زیر از یک ماژول PCA جهت ساخت PWM و یک ماژول دیگر (در مد کپچر) جهت دریافت فیدبک از موتور DC استفاده مینماید.
اینتل – ۸۳C51FA