تكنولوژي ماشين بينايي وتصوير بر داري ديجيتالي شامل فرايند هايي است كه نيازمند بكارگيري علوم مختلف مهندسي نرم افزار كامپيوتر مي باشد اين فرايند را مي توان به چند دسته اصلي تقسيم نمود :
1- ايجاد تصوير به شكل ديجيتالي
2- بكارگيري تكنيكهاي كامپيوتري جهت پردازش ويا اصلاح داده هاي تصويري
3- بررسي و استفاده از نتايج پردازش شده براي اهدافي چون هدايت ربات يا كنترل نمودن تجهيزات خود كار ، كنترل كيفيت يك فرايند توليدي ، يا فراهم آوردن اطلاعات جهت تجزيه و تحليل آماري در يك سيستم توليدي كامپيوتري (MAC)
ابتدا مي بايست آشنايي كلي ، با هر يك از اجزاء سيستم پيدا كرد و از اثرات هر بخش بر روي بخش ديگر مسطح بود . ماشين بينايي و تصوير بر داري ديجيتالي از موضوعاتي است كه در آينده نزديك تلاش و تحقيق بسياري از متخصصان را بخود اختصاص خواهد بود.
در طي سه دهه گذشته تكنولوژي بينايي يا كامپيوتري بطور پراكنده در صنايع فضايي نظامي و بطور محدود در صنعت بكار برده شده است . جديد بودن تكنولوژي ، نبودن سيستم مقرون به صرفه در بازار و نبودن متخصصين اين رشته باعث شده است تا اين تكنولوژي بطور گسترده استفاده نشود.
تا مدتي قبل دوربين ها و سنسورهاي استفاده شده معمولا بصورت سفارشي ومخصوص ساخته مي شدند تا بتوانند برا ي منظورخاصي مورد استفاده قرار گيرند همچنين فرايند ساخت مدارهاي مجتمع بسيار بزرگ آنقدر پيشرفت نكرده بود تا سنسورهاي حالت جامد با رزولوشن بالا ساخته شود.
استفاده از سنسورهاي ذكر شده مستلزم اين بود كه نرم افزار ويژه اي براي آن تهيه شود و معمولا اين نرم افزارها نيز نياز به كامپيوتر هايي با توان پردازش بالا داشتند. علاوه بر همه اين مطالب مهندسين مجبور بودند كه آموزشهاي لازم را پس از فراغت از تحصيل فرا گيرند . زيرا درس ماشين بينايي در سطح آموزشهاي متداول مهندسي در دانشگاهها وبه شكل كلاسيك ارائه نمي شد .
تكنولوژي ماشين بينايي در دهه آينده تاثير مهمي بر تمامي كارهاي صنعتي خواهد گذاشت كه دليل آن پيشرفتهاي تكنولوژي اخير در زمينه هاي مرتبط با ماشين بينايي است واين پيشرفتها در حدي است كه استفاده از اين تكنولوژي هم اكنون حياتي مي باشد .
2-1-بينايي واتوماسيون كارخانه
وظايف اساسي كه مي تواند توسط سيستمهاي ماشين بينايي انجام گيرد شامل سه دسته اصلي است.
1- كنترل
2- بازرسي
3- ورود داده
كنترل در ساده ترين شكل آن مرتبط با تعيين موقعيت و ايجاد دستورات مناسب مي باشد تا يك مكانيزم را تحريك نموده ويا عمل خاصي صورت گيرد . هدايت نقاله هاي هدايت شونده خود كار (AGVS) در عمليات انتقال مواد در يك كارخانه هدايت مشعل جوشكاري در امتداد يك شماير يا لبه يا انتخاب يك سطح بخصوص براي انجام عمليات رنگ پاشي توسط ربات ، مثلهايي از بكار گيري ، ماشين بينايي در كنترل مي باشند . كاربردهاي ماشين بينايي در بازرسي مرتبط با تعيين برخي پارامترها مي باشد . ابعاد مكانيكي وهمچنين شكل آن ، كيفيت سطوح ، تعداد سوراخها در يك قطعه ، وجود ياعدم وجود يك ويژگي يا يك قطعه در محل خاصي از جمله پارامترهايي هستند كه توسط ماشين بينايي ممكن است ، بازرسي مي شوند عمل اندازه گيري توسط ماشين بينايي كم و بيش مشابه بكارگيري روشهاي سنتي استفاده از قيدها و سنجه هاي مخصوص و مقايسه ابعاد مي باشد . ساير عمليات بازرسي بجز موارد اندازه گيري شامل مواردي چون كنترل وجود بر چسب بر روي محصول بررسي رنگ قطعه ، وجود مواد خارجي در محصولات غذايي نيز با تكنيكهاي خاصي انجام مي گيرد . كار بازرسي ممكن است حتي شامل مشخص نمودن خواص يا ويژگيهايي الكتريكي يك محصول گردد . با مشاهده خروجي اندازه گيرهاي الكتريكي مي توان صحت عملكرد محصولات الكتريكي را بازرسي نمود . هر چند كه در چنين مواردي چنانچه سيستم بينايي كار ديگري بجز مورد ذكر شده انجام ندهد معمولا روش ساده تر و مقرون به صرفه ترين بدين صورت خواهد بود كه كار بازرسي فوق توسط يك ريز پردازنده و ابزارهاي مربوط انجام گيرد .
اطلاعات مربوط به كيفيت محصول ويا مواد وهمچنين تعقيب فرايند توليد را مي توان توسط ماشين بينايي گرفته ودر بانك اطلاعاتي سيستم توليد كامپيوتري جامع بطور خود كار وارد نمود . اين روش ورود اطلاعات بسيار دقيق و قابل اعتماد است كه دليل آن حذف نيروي انساني از چرخه مزبور مي باشد . علاوه بر اين ورود اطلاعات بسيار مقرون به صرفه خواهد بود چرا كه اطلاعات بلافاصله پس از بازرسي وبه عنوان بخشي از آن جمع آوري و منتقل مي شوند .
ميزان پيچيدگي سيستم هاي بينايي متفاوت مي باشد اين سيستم ها ممكن است منحصر به يك سيستم باركدينگ معمولي كه براي مشخص نمودن محصول جهت كنترل موجودي بكار مي رود تشكيل شده باشد يا ممكن است متشكل از يك سيستم بينايي صنعتي كامل براي اهدافي چون كنترل كيفيت محصول باشد .
3-1 سرعت واكنش
زمان مورد نياز براي تصميم گيري توسط ماشين بينايي بستگي به اندازه ماتريس تصوير يا زمان پردازش لازم در كارت تصوير گير و نوع دوربين دارد . دوربيهايي نوع لاچكي كه با استاندارد Rs-170 كار مي كنند تعداد 30 تصوير در ثانيه توليد مي كنند كه اين تصاوير بر روي مونيتورهاي موجود در بازار قابل نمايش هستند . چنانچه از استاندارد Rs-170 استفاده نشود مي توان تعداد تصاوير در ثانيه را پنج تا ده برابر افزايش داد . دوربينهاي حالت جامد مي توانند در زمان بسيار كوتاه معادل ( ميكرو ثانيه تصوير گيري كنند زمان لازم جهت خواندن سيگنال تصوير از سنسور دوربين بستگي به اندازه ماتريس سنسور سرعت پردازش و پهناي باند سيستم دارد. با استفاده از تكنيكهاي پردازش موازي مي توان زمان پردازش را متناسب با تعداد پردازشگرهاي موازي كاهش داد .
زمان واكنش سيستم بينايي انسان در حدود 6% ثانيه يا 16/1 ثانيه مي باشد اين موضوع توسط اين حقيقت تائيد مي شود كه وقتي تصاوير ، با سرعت 30 عدد در ثانيه يك صحنه متحرك را نشان مي دهند چشم انسان قادر به تشخيص انقطاع بين تصاوير نيست .
سيستم هاي ماشين بينايي مورد استفاده در صنعت كه براي كنترل بر چسب روي بطريها بكار مي رود مي توانند با سرعتي معادل 900 بطري در دقيقه يا در صورت يك بطري در 7% ثانيه كار كنند . البته مي توان با گرفتن تصاويري كه بيش از يك بطري را در بر مي گيرد سرعت كنترل را بيش از اين نيز افزايش داد . سرعت چشم انسان براي انجام كار مشابه حداكثر 60 بطري در دقيقه مي باشد كه اين سرعت در اثر خستگي و شرايط نامساعد محيطي كاهش نيز مي يابد .
بطور خلاصه تصوير گيري توسط ماشين بينايي تقريبا 10 برابر سرعت بينايي انسان مي باشد اين نسبت با پيشرفت تكنولوژي در علوم الكترونيك رو به افزايش مي باشد در حاليكه سرعت چشم انسان مقدار مشخصي است سرعت انجام فرايند كامل توسط ماشين بينايي در حدود 15 برابر چشم انسان مي باشد .
4-1 واكنش طيف موج
چشم انسان فقط در مقابل نور قابل رويت كه طيف محدودي است مي تواند اشياء را ببيند . دامن ديد از طول موج بنفش در 390 ميكرون تا طول موج قرمز در 790 ميلي ميكرون مي باشد
واكنش سيستم ماشين بينايي در مقايسه با چشم انسان بسيار وسيع تر بوده و دامنه از پرتو گاما و X در منطقه طول موج كوتاه شروع شده وتا طول موج مادون قرمز در قسمت طول موجهاي طويلي ختم مي شود .
توانايي چشم انسان در تشخيص رنگها و پيچيده بوده ودر هنگام تشخيص رنگ مولفه هاي آن بطور مجزا در نظر گرفته نمي شوند . در عوض ميانگين ، انرژي در طول موجهاي مختلف مورد استفاده قرار گرفته ورنگ ديده شده يكي از طول موجهاي مابين آنها مي باشد .
ماشين بينايي براي شناسايي رنگها نيازمند سه دسته اطلاعات است كه همان مولفه هاي رنگ يعني طول موجهاي قرمز يا سبز و آبي مي باشد ايجاد رنگ بر روي مانيتور نيز با تحريك هر يك از مولفه ها به مقدار معين بوده بطوريكه نهايتا رنگ مورد نظر ايجاد شود .
ذخيره سازي تصاوير رنگي به حافظه اي معادل سه برابر تصاوير غير رنگي نياز دارد .
همچنين حجم پردازش تصاوير رنگي كه حاوي اجزاء B,G,R مي باشند در مقايسه با تصاوير يك رنگ بيشتر مي باشد .
بطور خلاصه طيف طول موج قابل رويت توسط ماشين بينايي بسياروسيعتر از طيف قابل رويت توسط چشم انسان مي باشد همچنين امكان تلفيق و استفاده از طول موجهاي مختلف يك تصوير توسط ماشين بينايي وجود دارد يكنواختي و دقت ماشين بينايي در مورد تصاوير رنگي بيش از چشم انسان مي باشد .
-1 سيستم بينايي چيست ؟
1-6-1 كليات سيستم
يك سيستم ماشين بينايي شامل تمام اجزاء لازم بمنظور تهيه ، تعريف ديجيتالي يك تصوير تغيير واصلاح داده ها وارائه نمايش داده هاي تصويري ديجيتالي به دنياي بيرون مي باشد چنين سيستمي چنانچه در يك محيط صنعتي بكار گرفته شود ، ممكن است به دليل اينكه متصل به ساير تجهيزات خط توليد مي باشد بسيار پيچيده بنظر مي رسد ولي اگر چنانچه با توجه به نقش و وظيفه سيستم بينايي اجزاء اصلي تشكيل دهنده آن بيان شوند ، مشخص خواهد شد كه پيچيدگي زيادي در سيستم وجود ندارد اجزاء اصلي سيستم شامل سه قسمت اصلي است :
1- قسمت تصوير برداري
2- پردازش
3- نمايش يا وسايل خروجي اطلاعات
2-6-1 تصوير گيري
تصوير گيري در ماشين بينايي يعني تبديل اطلاعات تصويري يك شئي فيزيكي و خواص ظاهري آن بصورت داده هاي عددي است بگونه اي كه اين تصوير مي تواند از توسط پردازشگر پردازش شود تصوير گيري ممكن است شامل چهار فرايند زير باشد :
1- نور پردازي
2- تشكيل تصوير يا متمركز كردن آن
3- تبديل تصوير به سيگنالهاي الكتريكي
4- قالب بندي كردن سيگنال خروجي تصوير
3-6-1 نور پردازي
نور پردازي يك عامل كليدي وتاثير گذ ار بر روي كيفيت تصوير تشكيل شده است كه به عنوان ورودي ماشين بينايي مورد استفاده قرار مي گيرد ممكن است تا 30 درصد حجم كار و تلاش طراحي اجزاء يك سيستم ماشين بينايي را بخود اختصاص دهد .
بسياري از سيستم هاي ماشين بينايي كه در گذشته در صنعت بكار رفته اند از نور قابل رويت استفاده كرده اند كه علت آن از يك طرف در دسترس بودن آن واز طرف ديگر خود كار نمودن عمل بازرسي كه قبلا توسط كارگر انجام مي شده است مي باشد بازرسي توسط كارگر براساس توانايي چشم ودر محدوده طول موج نور قابل رويت مي باشد چهار نوع لامپ از لامپهايي كه نور قابل رويت توليد مي كنند واغلب در صنعت استفاده شده اند عبارتند از : لامپهاي التهابي فلورسنت بخار جيوه وبخار سديم استفاده از نور غير قابل رويت شبيه اشعه ايكس ماوراء بنفش و مادون قرمز بدليل نياز به انجام بررسي هاي ويژه كه توسط نور قابل رويت انجام پذير نيست ، روبه افزايش است روشهاي نور پردازي جهت كار بردهاي صنعتي ماشين بينايي شامل چهار دسته زير است :
1- نور پردازي از پشت
2- نور پردازي از مقابل
3- نور پردازي داراي ساختار
4- نور پردازي لحظه اي
نور پيرامون محيط كار كه منابعي بجز منبع اصلي نور پردازي سيستم ماشين بينايي بر مجموع ميزان نور تابيده شده برجسم اثر گذاشته وبطور كلي بصورت نويز در داده هاي تصويري ظاهر مي شود .
براي كم كردن تاثير نور پيراموني مي توان از پرده نوري يا ديواره هاي محافظ استفاده نمود تا از ورود آن به لنز دوربين جلوگيري شود .
1-3-6-1 نور پردازي از پشت :
وقتيكه شي مورد بررسي بين دوربين و منبع نور قرار مي گيرد نور پردازي را اصطلاحا نور پردازي از پشت مي گويند در اين روش سايه اي از جسم تشكيل مي شود و مرز جسم كاملا مشخص مي باشد .
مزيت نور پردازي از پشت ايجاد تصاوير با كنتر است بالاو تفكيك آسان مرز جسم مي باشد كنتر است بالاباعث كم شدن پردازش هاي بعدي شده همچنين از حساسيت سيستم به تغييرات نوردهي منبع نور مي كاهد در مورد نور پردازي اجسامي كه مسطح نيستند ممكن است لازم باشد تا با استفاده از عدسي هاي مناسب نور به جسم تابانده شود .
روش نور دهي از پشت براي اعمالي از قبيل تشخيص ترك ، مك و وجود اشياء خارجي در قطعات شفاف ايده آل مي باشد . تشخيص ترك الستخوان در تصاوير اشعه X واندازه گيري ميزان تنش انرژي و حرارتي از يك ساختمان توسط پرتو مادون قرمز از جمله مثالهاي اين روش نور پردازي مي باشند .
اساسا تصوير حاصل از روش نور دهي از پشت تك رنگ است با توجه به اينكه لب هاي تصوير بگونه اي بر روي صفحه سنسور تشكيل تصوير مي دهند كه ممكن است يك پيكسل كامل را پر نكنند .
بنابراين اين پيكسلها داراي مقادير حدود سطحي بين سياه و سفيد مطلق خواهند بود به عنوان مثال مقدار عددي پيكسل كه 50 درصد آن توسط جسم پوشيده شده است در يك سيستم داراي 16 سطح خاكستري معادل عدد 7 خواهد بود و بطور كلي مقدار عددي هر پيكسل كه نشانگر مرزهاي قطعه باشد متناسب با مقدار پوشش آن خواهد بود شي نشان داده شده در صفحه بعد در قسمت مرزها ، فقط بخشي از مساحت پيكسلها را پوششي مي دهد كه مقادير عددي پيكسلها يا همان سطح خاكستري بدست آمده براي پيكسلها در ماتريس تصوير نشان داده شده است شايان ذكر است كه مقدار عددي پيكسلها وهمچنين مقدار كاهش يافته آن نمي تواند هيچگونه اطلاعاتي در خصوص شكل قطعه ارادئه دهد و بايستي اطلاعات مربوط به اينكه چه شكلي در مقابل دوربين قرار گرفته است با مقادير عددي پيكسلها توام گردد.
(شکل2-1)
2-3-6-1نور پردازي از مقابل :
در روش نور پردازي از مقابل نور منعكس شده از سطح جسم به دوربين وارد مي شود . در اين روش دوربين ومنبع نور در يك طرف شئي قرار مي گيرند با استفاده از اين روش مي توان اطلاعاتي درباره سطح جسم يا برجستگي و فرورفتگيهاي آن وهمچنين ابعاد جسم بدست آورد .
بسته به زاويه دوربين مي توان از تكنيكهاي اندازه گيري مات ويا نور پردازي Specular استفاده نمود . (شکل 3-1)
3-3-6-1نور پردازي لحظه اي :
درنور پردازي لحظه اي شي و براي مدت بسيار كوتاه ولي باشدت زياد ( 5 تا 500 ميكروثانيه ) نور دهي مي شود پالس كوتاه نور دهي ممكن است براي ايجاد يك تصوير ساكن از اجسام در حال حركت بكار رود ويا ممكن است براي كاهش اثر نامطلوب نور محيط استفاده شود .
در فرايند هاي توليد معمولا قطعات بر روي نوارنقاله متحرك بوده ويا قطعه طبعا در حال حركت مي باشد .
در اين نور پردازي لازم است تا دوربين و منبع نور براي ايجاد پالس كوتاه نور منكرون شوند .با توجه به اينكه لازم است تا تصوير ساكن از جسم تهيه شود ، لذا مدت پالس حائز اهميت فراوان مي باشد .
4-3-6-1نور پردازي داراي ساختار :
نور پردازي داراي ساختارعبارت است از نور دادن به شئي با پرتوهاي نوري داراي الگوهاي خاص يا بصورت الگوي مشبك 10 از تلاقي شئي با تصوير پرتوهاي نور داراي ساختار ، يك الگوي منحصر بفرد از شي حاصل مي شود كه اين الگو بستگي به شكل واندازه هاي جسم دارد يك جسم سه بعدي داراي تصويري خواهد بود كه طبعا وقتي در صفحه سنسور قرار مي گيرد داراي دو بعد بيشتر نخواهد بود با استفاده از تكنيك نور پردازي داراي ساختار ونه تنها مي توان فواصل افقي بلكه اندازه هاي عمودي را بر روي قطعه اندازه گيري نمود و شكل سه بعدي قطعه را مشخص كرد مشاهده مي شود كه خط نشان داده شده در شكل از حالت خط مستقيم خارج شده و بصورت منقطع در آمده است كه علت آن وجود برآمدگي بر روي قطعه است اندازه فاصله بين قسمت مقطع وسطي با امتداد اوليه مرتبط ، با ارتفاع برآمدگي مي باشد اطلاعات بيشتر تا شبيه فواصل بين اجزاء قطعه را مي توان با استفاده از گونه هاي مختلف ساختار نور بدست آورد .(شکل 4-1)
7-1مفاهيم اوليه پردازش تصوير
1-7-1 پيكسل
هر تصوير توسط يك ماتريس M ×N از مقاديرپيكسلها ( المانهاي P( I,j) با مقادير اسكالر منفي كه بيانگر شدت نور تابيده شده از جسم بر سطح پيكسل واقع درموقعيت ( x,y) مي باشد تعريف مي شود اين مطلب درشكل پائين نشان داده شده است در اين شكل ارتباط بين المان تصوير و پيكسلهاي ماتريس نشان داده شده است مبدا مختصات استفاده شده براي تصوير ماتريس با يكديگر فرق دارند مبدا مختصات تصوير درگوشه چپ پائين قرار دارد در حاليكه مبدا مختصات پيكسلها در گوشه چپ بالاي ماتريس قرار دارد .(شکل 5-1)
برخي از سيستم هابجاي نقطه شروع (1و1) از نقطه (0و0) استفاده مي كنند . تمامي ماتريسهاي استفاده شده در اين مبحث بصورت ربعي M ×Nخواهند بود ولي در عمل مقادير M ×N ممكن است متفاوت باشند .
(شکل 6-1)
مقدار عددي پيكسل عبارت از ميانگين شدت نور تابيده شده برسطح پيكسل مي باشد مقدار هر پيكسل P(I,j) بين 0 و 1 مي باشد .
2-7-1 پنجره
يك بخش يا ناحيه از تصوير از يك پنجره گويند پنجره توسط مختصات نقاط چهارگوشه آن بيان مي شود .
(شكل 7-1 )
3-7-1 مكان پيكسل
يك پيكسل متعلق به ماتريس M ×N در ساده ترين شكل توسط مختصاتش بيان مي شود پيكسل واقع در مكان n,m از يك ماتريس داراي مقدار عددي مي باشد كه اين مقدار بيانگر مقدار نور تابيده شده از بخشي ازسطح به پيكسل مربوطه ميباشد .
به عنوان مثال تصويري را در نظر بگيريد كه در قسمت با روي آن هيچگونه لوزي وجود ندارد ( سياه كامل ) وقسمت پائين آن بسيار روشن مي باشد ( سفيد كامل ) واين تصوير داراي ابعاد 10×10 مي باشد اگر از يك سيستم دو روئي براي نشان دادن تصوير استفاده شود آنگاه ناحيه اي كه در آن هيچ نوري وجود ندارد توسط عدد صفر و قسمت روشن با مقدار يك مشخص خواهد شد و شكل پائين چنانچه از يك ماتريس 4×5 يعني داراي 5 رديف و 4 ستون از پيكسلها استفاده شود هر المان 2× 5/2 ( پهنا در ارتفاع ) اينچي از تصوير توسط يك پيكسل بيان خواهد شد كه مقدار آن بستگي به ميانگين نور تابيده شده برسطح آن دارد .
(شکل 8-1)
سطح 2×5/2 اينچي واقع در گوشه بالاي سمت چپ كه با موقعيت ( 1و1) در ماتريس 4×5 الماني مشخص مي شود با مقدار صفر بيان مي شود كه معني آن اين است كه هيچگونه نوري از اين قسمت دريافت نشده است سطح 2×5/2 اينچي واقع در گوشه پايين سمت راست تصوير يعني المان واقع در ستون چهارم و رديف پنجم ( مختصات (4×5)) با مقدار يك يعني حداكثر دريافت نور بيان مي شود .
بايستي توجه داشت كه چنانچه از يك سيستم كه داراي 16 سطح خاكستري است استفاده مي شد آنگاه مقدار پيكسل ( 1و1) برابر صفحه ومقدار پيكسل ( 4و 5) برابر 16 سي بود .
مشاهده مي شود كه هيچگونه اطلاعاتي در مورد مقادير مياني سطوح وجود ندارد و طراح سيستم بايستي يك حد آستانه را مشخص نمايد تا مقادير زير حد آستانه
توسط عدد صفحه ومقادير بالاي حد آستانه توسط يك عدد بيان شوند .
در مثال ذكر شده شكل المانها تصوير مستطيلي در نظر گرفته شدند ولي بسته به نوع سنسور ممكن است المانها بصورت مستطيلي يا دايره اي در نظر گرفته شوند در مورد دوربينهاي لابي با سطح سنسور دايره اي ممكن است المانها قدري همپوشاني داشته باشند . (شکل 9-1)
در هنگام استفاده از المانها مدور مجزا ( بدون همپوشاني ) نور انعكاسي از سطح تصوير كه در پيرامون دواير قرار مي گيرند اندازه گيري نمي شود در حاليكه وقتي از المانهاي با همپوشاني استفاده مي شود بخشهايي از تصوير دوبار اندازه گيري مي شود بايستي توجه داشت نمي توان هيچگونه اطلاعاتي در مورد شكل سطحي از تصوير كه توسط يك پيكسل نمايش داده مي شود بدست آورد وهمچنين نميتوان از مقدار يك پيكسل اطلاعاتي درباره توزيع نور بر سطح آن پيكسل بدست آورد .
4-7-1سطح خاكستري
براي اينكه بتوان مقادير مياني بين روشن وتاريك كامل را بيان نمود واطلاعات تصويري كاملتري بدست آورد لازم است تا تعداد بيتهايي كه مقدار پيكسل را نشان مي دهند افزايش داد به عنوان نمونه ، چنانچه قرار باشد شدت نور پردازي را با چهار شدت مختلف بيان نمود لازم است تا از دو بيت دودوئي استفاده نمود بهمين ترتيب براي 16 سطح نياز به 4 بيت و براي 256 سطح نياز به 8 بيت مي باشد تعداد مجموع سطوح خاكستري معمولا بصورت تواني از عدد 2 مي باشد كمترين مقدار پيكسل يعني صفر براي سياه كامل بكار مي رود و مقدار يك يا عددي برابر يكي كمتر از تعداد سطوح خاكستري سيستم براي سفيد كامل استفاده مي شود مثلا عدد 15 براي بيان سفيد كامل در يك سيستم سطحي بكار مي رود مقادير پيكسلها همواره مقادير صحيح مي باشند .
سطح خاكستري دامنه مقدار خاكستري
21 2 مقدار 0 و 1
23 8 مقدار از 0 تا 7
24 16 مقدار از 0 تا 15
25 256 مقدار از 0 تا 255
سيستم هاي اوليه ماشين بينايي فقط دو دويي بودند به همين دليل سنسورهاي استفاده شده بسيار ساده بودند . علاوه بر آن جمع آوري داده ها ، پردازش وذخيره سازي تصوير ساده تر بود .
اغلب ريز پردازنده هاي امروزي حداقل 8 بيتي هستند لذا سيستم هاي 16 و 64 و 256 سطح خاكستري ، متداول مي باشند . استفاده از سيستم هايي با سطوح بيشتر از 256 چندان سفيد نبوده و براي اكثر كاربردهاي صنعتي فعلي سيستم هاي با 256 سطح كفايت مي كنند . سيستم هاي 64 و 256 سطحي تعداد سطوح بيشتري از آنچه توسط چشم انسان قابل تشخيص است را فراهم مي كنند چشم انسان قادر است درهنگام مقايسه بين رنگهاي مختلف خاكستري تا 40 سطح مختلف بين سفيد و سياه كامل را تشخيص دهد ولي بطور مطلق قادر به مشخص نمودن 10 تا 15 سطح بيشتر نيست . قدرت تمايز يك سيستم 16 سطحي قادر كمتر از چشم انسان مي باشد در حاليكه سيستم هاي 64 و 256 سطحي قدرت تمايز بيشتري از چشم انسان دارند .
اگر چه سيستم بينايي استفاده شده در يك كاربرد خاص ممكن است داراي 256 سطح باشد ولي بنا به دلايلي ممكن است لازم باشد تا تعداد سطوح متفاوت استفاده شود براي دستيابي به دقت باتلرانس مورد نياز از تكنيكهاي اعشار پيكسل با دقت 9/1 ، 13/1 يا 20/1 پيكسل ممكن است استفاده شود در اين صورت سيستمي با سطوح 9 ، 13 يا 20 بكار گرفته مي شود .
تعداد سطوح خاكستري با و اضح تر جلوه دادن بعضي از ويژگيهاي تصوير يا با حذف برخي از جزئيات بر روي كيفيت تصوير تاثير مي گذارند . در حالت كلي افزايش تعداد سطوح خاكستري باعث بهبود كيفيت تصوير شده واين امكان را بوجود مي آورد تا بتوان بخشهاي خاصي از تصوير را بهبود داد تصوير گيري بصورت تصاوير دو دويي نيازمند حافظه كمتري مي باشد .
اما امكان استفاده از تكنيكهاي بسط سطوح خاكستري در هنگام پردازش تصوير را محدود مي كند افزايش تعداد پيكسلهاي تصوير از مقادير كم شبيه 32×32 به 250×250 از روزلوشن سيستم را افزايش مي دهد وتصوير حاوي جزئيات بيشتري خواهد داد . افزايش روزلوشن متفاوت از بزرگ كردن تصوير توسط عدسي ميباشد . با بزرگ كردن تصوير توسط عدسي فقط اندازه پيكسل افزايش مي يابد .
سيستم هاي داراي سطوح بيشتر از 2 اولا اين امكان را فراهم مي كنند تا سطوح متفاوت شدت نور تابيده شده را تفكيك نموده ثانيا امكان بهره گيري از تكنيك اعشار پيكسل را فراهم آورده كه مي تواند در اندازه گيري دقيق ابعاد اجسام از آن بهره جست . (شکل10-1)
(aشي برروي ميزنور
(bنماي شئي از بالا
(cداد هاي تصويري متناظر نقاط سياه با صفر و نقاط سفيد با 15نشان داده شده است .
در يك تحليل سلول به سلول مشاهده مي شود كه سطح نشان داده شده توسط پيكسل ( 4و2) يك سطح تاريك بوده ولذا مقدار پيكسل بر1 و صفر خواهد بود . در حاليكه فقط صف سطح پيكسل ( 2و2) توسط جسم پوشانده شده است از اينرو ميانگين نور دريافت شده برابر 2 ( 15+0) يا 5/7 خواهد بود تمامي سطوح كناري روشن بوده لذ ا مقادير پيكسلهاي مربوطه برابر 15 خواهد بود .
با توجه به اينكه مقادير پيكسلها بايستي اعداد صحيح باشد عدد 5/7 بايستي تبديل به يك عدد صحيح گردد در هر سيستمي بايستي نحوه تبديل اعداد اعشاري به اعداد صحيح مشخص باشد به عنوان مثال يك قانون كلي مي تواند اين باشد كه از روش گرد كردن رياضي استفاده شود يعني اعداد اعشاري با جز صحيح كوچكتر گرد شوند از اينرو مقدار 5/7 در مثال فوق بايستي به عدد 8 گرد شود يا اگر مقدار پيكسل 6/6 باشد به عدد 7 گرد خواهد شد انتخاب حد آستانه براي گرد كردن مهم بوده و بر روي تلرانس اثر مي گذارد لذا اطلاع از اين مقدار نيز مهم مي باشد .
8-1 هيستو گرام
به نموداري كه تعداد تكرار سطوح مختلف خاكستري در يك تصوير را نشان دهد هيستو گرام گويند . در اين نمودار محور x ها را نشان دهنده هر يك ازسطوح خاكستري و محور y ها تعداد پيكسلهاي متناظره با سطوح خاكستري مختلف مي باشند .
هيستو گرام بدين گونه ساخته مي شود كه :
1- داده هاي تصويري بصورت ديجيتال در آورده شود .
2- تعداد پيكسلها در هر يك از سطوح خاكستري شمرده مي شوند .
3- نمودار تعداد تكرار پيكسلها در هر يك از سطوح خاكستري ترسيم مي گردد .
نمودار مي تواند بصورت ميله اي باشد كه ارتفاع هر يك از ميله ها بيانگر تعداد پيكسل در آن 32 سطح خاكستري خاص مي باشد مقدار هيستو گرام در يك مقدار مشخص از پيكسل بيانگر احتمال وضوح آن سطح خاكستري در هر يك از المانهاي تصوير مي باشد از اين گراف هيچ اطلاعي در خصوص مكان پيكسلها نمي توان بدست آورد احتمال اينكه يك پيكسل در مكاني مثل ( x,y) داراي مقداري مثل b باشد از شكل ( 1-3) مي تواند بدست آيد كه اين مقدار عبارت است از :
مقدار b = P(b) در نقطه (y,x) از تصوير
مجموع تعداد پيكسل ها
اگر b=6 فرض شود با توجه به شكل صفحه قبل مقدار هيستو گرام به ازاي سطح خاكستري 6 برابر 7 مي باشد لذا :
شكل هيستو گرام اطلاعاتي را درباره خواص تصوير فراهم مي كند به عنوان مثال ، يك هيستو گرام باريك ( در امتداد محور x ها ) نشان دهنده اين واقعيت است كه كمتر است تصوير كم مي باشد يا يك مقدار پيكسل مشخص مي تواند نشان دهنده يك خاصيت منحصر بود از يك جزء تصويري مثل يك سوراخ باشد هيستو گرام مي تواند در مواردي از قبيل بدست آوردن مقدار حد آستانه 6 كه براي تبديل تصاوير سطح خاكستري به تصاوير دو دويي لازم است يا در تصحيح بخشي از طيف سطوح خاكستري سفيدباشد .
1-8-1 ايجاد هيستو گرام
هيستو گرام يك تصوير مي تواند طبق زير وهمانگونه كه در شكلهاي زير نشان داده شده است ايجاد گردد . (شکل11-1)
تعداد مجموع پيكسلهاي تشكيل دهنده تصوير مشخص گردد اين تعداد بستگي به تعداد المانها دارد . در مثال ذكر شده ماتريس با ابعاد M ×N استفاده شده است اگر 10 = N=M باشد تعداد مجموع پيكسلها برابر 100 = 10×10 خواهد بود .
1-لازم به ذكر است كه M الزاما برابر N نيست و مقادير آن بستگي به دوربين استفاده شد ه سرعت نمونه گيري در فرايند تبديل سنگنال آنالوگ به ديجيتال و گنجايش حافظه سيستم دارد
هر چه مقادير N,M بيشتر باشد دقت و زير سنجي سيستم افزايش مي يابد ولي لازم است تا محاسبات بيشتري انجام گيرد و زمان واكنش نيز افزايش مي يابد .
1- داده هاي تصويري بصورت ماتريسي در آورده شود در مثال از يك ماتريس 5×5 يعني مجموعا 25 مقدار استفاده شده است .
2- داده هاي تصويري بصورت جدول در آورده شده است يعني به ازاي هر سطح خاكستري چه تعداد پيكسل داراي آن مقدار مي باشد به عنوان مثال 6 پيكسل داراي مقدار صفر هستند و يك پيكسل داراي مقدار 3 است مجموع تعداد مقادير جدول بايستي مساوي M ×N باشد در مثالي كه ذكر شد اين مقدار برابر 25 خواهد بود .
3- نمودار ميله اي براساس جدول تهيه شده در مرحله 3 ترسيم گردد محور افقي از صفر شروع شده تا مقدار حداكثر يكي كمتر از تعداد سطوح خاكستري ادامه مي يابد درمثال ذكر شده چون از يك سيستم 16 سطحي استفاده شده حداكثر عدد افقي عدد 15 خواهد بود .
بايستي توجه داشت كه مقدار حداكثر پيكسل ها عامل تعيين كننده اي نيست هيستو گرام حاصل داراي ميله هايي با ارتفاع هاي مختلف به ازاي مقادير از 0 تا 15 خواهد بود .
9-1سيستم هاي رنگي CMYB , RGB
در سيستم هاي رنگي هر يك از پيكسل ها داراي 3 يا 4 مقدار مرتبط با آن پيكسل مي باشند بعنوان مثال ، در سيستم سنتي قرمز ، سبز ، آبي ( RGB) براي هر پيكسل سه مقدار وجود دارد كه هريك از اين مقادير مرتبط با يكي از اجزاء اصلي رنگ مي باشد از تركيب سه مولفه رنگ ميتوان رنگهاي گوناگون را ايجاد نمود در صنعت چاپ معمولا از سيستم چهار رنگي CMYB استفاده مي شود زيرا بيننده نور انعكاسي را مشاهده مي كند كه يك فرايند تفريحي است .
همچنين ميتوان از دياگرام كروماتوگرافي CIE در جهت متضاد استفاده كرد بدين معني كه بر روي نمودار يك نقطه كه همان رنگ مورد نظر است انتخاب مي شود مختصات نقطه انتخاب شده نشان دهنده مقادير اجزاء رنگ هستند بايستي استفاده شوند هر يك از مولفه هاي رنگ داراي 16 يا 256 سطوح مختلف مي باشند .
سيستم سه رنگي قرمز ، سبز ، آبي در صنعت مورد استفاده قرار مي گيرد و سيستم چهار رنگي (CMYB)مورد استفاده در صنعت چاپ از اين جهت باهم تفاوت دارند كه سيستم سه رنگي يك سيستم اصطلاحا افزودني است در حاليكه سيستم 4 رنگي اصطلاحا يك سيستم كاهشي مي باشند . اگر پرتوهاي نوراني سه رنگ RGB بر روي يك صفحه سفيد كه در يك اتاق تاريك تابا نده شودوقتي هر سه دسته نور برروي هم قرار گيرند رمگ سفيد حاصل خواهد شدووقتي که پرتو نوري وجود نداشته باشد, کا ملا تاريک خواهد شد .رنگ سفيد تشکيل شده حاصل جمع سه مولفه رنگ مي باشد.
در سيستمCMYB نور سفيد مرکب از تما مي مولفه ها مي باشدو براي آنکه بتوان يک رنگ خاص را ايجاد کرد لازم است تا از فيلتر مناسب که در بين نور وصفحه شفات قرار مي گيرد استفاده شود تا با حذف يکي از رنگها رنگ مورد نظر تشکيل شود .فرايند فوق يک فرايند کاستني است.
فصل دوم
ميكروكنترلر 8051
1-2 مقدمه
با وجود اينكه بيش از بست سال از تولد ريز پردازنده نمي گذرد،تصور وسايل الكترونيكي و اسباب بازيهاي امروزي بدون آن كار مشكلي است.در 1971 شريك انيتل،8080 را به عنوان اولين ريز پردازنده موفق عرضه كرد.مدت كوتاهي پس از آن،موتور ولا،RCA و سپس Mostechnologyو Zilog انواع مشابهي را به ترتيب به نامهاي 6800،1801،6502،Z80 عرضه كردند.گرچه اين مدارهاي مجتمع (IC) به خودي خود فايده چنداني نداشتند اما به عنوان بخشي از يك كامپيوتر تك بورد(SBC) به جزء مركزي فرآورده هاي مفيدي براي آموزش طراحي با ريز پردازنده ها تبديل شدند.تز تيم SBC ها كه به سرعت به آزمايشگاههاي طراحي در كالج،دانشگاهها و شركت هاي الكترونيك راه پيدا كردند مي توان براي نمونه از D2موتورولا،KIM-1 ساخت Mos technology و SDK-85 متعلق به شركت انتيل نام برد.
ميكروكنترلر قطعه اي شبيه به ريز پردازنده است.در 1976 انتيل 8748 را به عنوان اولين قطعه خانوادة ميكروكنترلرهاي MCS-48TMمعرفي كرد.8748 با 17000 ترانزيستور،در يك مدار مجتمع،شامل يك cpu، 1كيلوبايت EPROM، 64 بايت RAM، 27 پايه I/O و يك تايمر 8 بيتي بود.اين IC و ديگر اعضاي MCS-48TM كه پس از آن آمدند خيلي زود به يك استاندارد صنعتي در كابردهاي كنترل گرا تبديل شدند.جايگزين كردن اجزاءالكترومكانيكي در فرآورده هاي مثل ماشين هاي لباسشويي و چراغ هاي راهنمايي از ابتدا كار،يك كاربرد مورد توجه براي اين ميكروكنترلرها بودند و همين طور باقي ماندند.ديگر فرآورده هايي كه در آنها مي توان ميكروكنترلر را يافت عبارتند از اتومبيل ها،تجهيزات صنعتي،وسايل سرگرمي و ابزارهاي جانبي كامپيوتر (افرادي كه يك IBM PC دارند كافي است به داخل صفحه كليد نگاه كنند تا مثالي از يك ميكروكنترلر را در يك طراحي با كمترين اجزاء ممكن ببينند)
توان ابعاد و پيچيدگي ميكروكنترلر با اعلام ساخت 8051،يعني اولين عضو خانوادة ميكروكنترلرهاي MCS-51TMدر 1980 توسط انيتل پيشرفت چشمگيري كرد.در مقايسه 8048 اين قطعه شامل بيش از 60000 ترانزيستور،K4 بايت ROM، 128 بايت RAM، 32 خط I/O يك درگاه سريال و دو تايمر 16 بيتي است.كه از لحاظ مدارات داخلي براي يك TC بسيار قابل ملاحظه است.امروزه انواع گوناگوني از اين IC وجود دارند كه به صورت بخاري اين مشخصات را دو برابر كرده اند.شركت زيمنس كه دومين توليد كنندة قطعات MCS-51TMاست SAB80515 را به عنوان يك 8015 توسعه يافت در يك بسته 86پايه با شش درگاه I/O 8 بيتي،13 منبع وقفه و يك مبدل آنالوگ به ديجيتال با 8 كانال ورودي عرضه كرده است.خانوادة 8051 به عنوان يكي از جامعترين و قدرتمندترين ميكروكنترلرهاي 8 بيتي شناخته شده و جايگاهش را به عنوان يك ميكروكنترلر مهم براي سال هاي آينده يافته است.
يك سيستم كامپيوتري شامل يك واحد پردازش مركزي (CPU) است كه از طريق گذرگاه آدرس،گذرگاه داده و گذرگاه كنترل به حافظةقابل دستيابي تصادفي (RAM) و حافظه فقط خواندي (ROM) متصل مي باشد.مدارهاي واسطه گذرگاه هاي سيستم را به وسايل جانبي متصل مي كنند.
(شکل1 –2)
2-2واحد پردازش مركزي
CPU،به عنوان «مغز» سيستم كامپيوتري،تمامي فعاليت هاي سيستم را اداره كرده و همه عمليات روي داده را انجام مي دهد.انديشة اسرار آميز بودن CPU در اغلب موارد ناردست است زيرا اين تراشه فقط مجموعه اي از مدارهيا منطقي است كه بطور مداوم دو عمل انجام مي دهند:واكنشي دستورالعمل ها و اجراي آنها،CPUتوانايي درك و اجراي دستورالعمل هاي را براساس مجموعه اي از كدهاي دورويي دارد كه هريك از اين كدها نشان دهندة يك عمل ساده است.اين دستورالعمل ها معمولاً حسابي (جمع،تفريق،ضرب و تقسيم)،منطقي (AND،OR،NOT و غيره)انتقال داده يا عمليات انشعاب هستند و يا مجموعه اي از كدهايي دروريي با نام مجموعه دستورالعمل ها نشان داده مي شوند.
3-2حافظه نيمه رسانا:RAM وROM
برنامه ها و داده ها در حافظه ذخيره مي شوند.حافظه هاي كامپيوتر بسيار مشوعند و اجزاي همراه آنها بسيار و تكنولوژي بطور دائم و پي در پي موانع را برطرف مي كند.بگونه اي كه اطلاع از جديدترين پيشرفت ها نياز به مطالعة جامع و مداوم دارد.حافظه هايي كه به طور مستقيم توسط CPU قابل دستيابي مي باشند،IC هاي (مدار مجتمع)نيمه رسانايي هستند كه RAMو ROM ناميده مي شوند.دو ويژگي RAM و ROMرا از هم متمايز سازد:اول آنكه RAM حافظه خواندني /نوشتني است.در حاليكه ROM حافظه خواندني است و دوم آنكه RAM فرّار است(يعني محتويات آن هنگام عبور ولتاژ تغذيه مي شود)در حالي كه ROM غيرفرّار است.
4-2ابزارهاي كنترل/نظارت
به كمك ابزارهاي كنترل/نظارت در برخي نرم افزارها و روابط هاي الكترونيكي (دقيق)كامپيوترها مي توانند كارهاي كنترلي زيادي را بي وقفه،بدون خستگي و بسيارفراتر از توانايي انسان انجام دهند.
كاربردهايي نظير كنترل حرارت يك ساختمان،محافظت از خانه، كنترل آسانسور،كنترل وسايل خانگي و حتي جوش دادن قطعات مختلف يك خودرو همگي با استفاده از اين ابزارها امكان پذير هستند.ابزارهاي كنترل،ابزارهاي خروجي يا عمل كننده هستند.آنها وقتي كه با يك ولتاژ با جريان،تغذيه شوند مي توانند بر جهان پيرامون خود اثر بگذارند(مثل موتورها مولدها).ابزارهاي نظارت،ابزارهاي ورودي يا مسگر هستند كه با كميت هايي نظير حرارت،نور،فشار،حركت و مانند آن،تحريك شده و آنها را به جريان يا ولتاژي كه توسط CPU خوانده مي شود تبديل مي كنند(مثل فتوترانزيستورها و ترميستورها و سوئيچ ها).ولتاژ يا جريان توسط مدارهاي واسطه، به يك دادة دورويي تبديل مي وشد و يا برعكس و سپس نرم افزار،يك رابطه منطقي بين ورودي ها و جروجي ها برقرارمي كند.
5-2مقايسه ريز پردازنده ها با ميكروكنترلرها
پيش از اين خاطرنشان شد كه ريز پردازنده ها CPU هايي تك تراشه هستند و در ميكروكامپيوترها به كار مي روند.پس فرق ميكروكنترلرها با ريز پردازنده ها چيست؟با اين سؤال از سه جنبه مي توان برخورد كرد:معماري سخت افزار،كاربردهايو ويژگي هاي مجموعه دستورالعمل ها.
1-5-2 معماري سخت افزار
در حالي كه زيز پردازنده يك CPU تك تراشه اي است،ميكروكنترلر در يك تراشه واحد شامل يك CPUو بسياري از مدرارات لازم براي يك سيستم ميكروكامپيوتري كامل مي باشد.اجزاي داخل خط چين در شكل زير بخش كاملي از اغلب IC هاي ميكروكنترلر مي باشند.علاوه بر CPU ميكروكنترلرها شامل RAM و ROM يك رابطه سريال،يك رابط سريال،يك رابط موازي،تايمر و مدارات زمانبدي البته مقدار RAMروي تراشه حتي به ميزان آن در يك سيستم ميكروكامپيوتري كوچك هم نميرسد اما آن طور كه خواهيم ديد اين مسأله محدوديتي ايجاد نمي كند زيرا كاربردهاي ميكروكنترلر بسيار متفاوت است.
(شکل 2-2)
يك ويژگي مهم ميكروكنترلرها،سيستم وقفة موجود در داخل آنهاست.ميكروكنترلرها به عنوان ابزار هاي كنترل گرا اغلب براي پاسخ بي درنگ به محركهاي خارجي (وقفه ها)مورد استفاده قرار مي گيرند.يعني بايد در پاسخ به يك «اتفاقي» سريعاً يك فرآيند را معدق گذاره،به فرآيند ديگر بپردازند.باز شدن در يك اجاق مايكروويو مثالي است از يك اتفاق ممكن است باعث ايجاد يك وقفه در يك سيستم ميكروكنترولي شود.البته اغلب ريز پردازنده ها مي توانند سيستم هاي وقفة قدرتمندي را به اجرا بگذارند،اما برا اين كار معمولاً نياز به اجزاي خارجي دارند.مدارات روي تراشه يك ميكروكنترولر شامل تمام مدارات مورد نياز براي بكارگيري وقفه هاي مي باشد.
2-5-2 كاربردها
ريز پردازنده اغلب به عنوان CPU در سيستم هاي ميكروكامپيوتري بكار مي روند.اين كاربرد دليل طراحي آنها و جايي است كه مي توانند خود را به نمايش بگذارند.با اين وجود ميكروكنترلرها در طراحي هاي كوچك با كمترين اجزاء ممكن كه فعاليت هاي كنتري گرا انجام مي شد.يك ميكروكنترلر مي تواند در كاهش تعداد كل اجزاء كمك كند.آنچه كه مورد نياز است عبارت است از يك ميكروكنترلر،تعداد كمي اجزاءپشتيبان و يك برنامه كنترلي در ROM ميكروكنترلرها براي «كنترل» ابزارهاي I/O در طراحي هايي با كمترين تعداد اجزاء ممكن مناسب هستند،اما ريزپردازنده ها براي «پردازش» اطلاعات در سيستم هاي كامپيوتري مناسبند.
3-5-2 ويژگي هاي مجموعه دستورالعمل ها
به علت تفاوت در كاربردها،مجموعه دستورالعمل هاي مورد نياز براي ميكروكنترلرها تاحدودي با ريز پردازنده ها تفاوت دارد.مجموعه دستورالعمل هاي ريز پردازنده ها بر عمل پردازش تمركز يافته اند و در نتيجه داراي روش هاي آدرس دهي قدرتمند به همراه دستورالعمل هايي براي انجام عمليات روي حجم زياد داده مي باشند. دستورالعمل هاي روي چهار بيت ها،بايتها،كلمه ها يا حتي كلمه هاي مضاعف عمل مي كنند.روش هاي آدرس دهي با استفاده از فاصله هاي نسبي و اشاره گر هاي آدرس امكان دسترسي به آرايه هاي بزرگ داده را فراهم مي كنند.حالت هاي افزايش يك واحدي اتوماتيك و كاهش يك واحدي اتوماتيك حركت گام به گام روي بايت ها،كلمه ها كلمه هاي مضاعف را درآرايه ها آسان مي كنند.دستورالعمل هيا رمزي نمي توانند در داخل برنامه كاربرد اجرا شوند وبسياري ويژگي هاي ديگر از اين قبيل.از طرف ديگر ميكروكنترلرها مجموعه دستورالعمل هايي مناسب براي كنترل ورودي ها و خروجي ها دارند.ارتباط با بسياري از ورودي ها و خروجي ها تنها نيازمند يك بيت است.براي مثال يك موتور مي تواند توسط يك سيم پيچ كه توسط يك درگاه خروجي يك بيتي انرژي دريافت مي كند،روشن و خاموش شود.ميكروكنترلرها دستورالعمل هايي براي 1 كردن و0كردن بيت هاي جداگانه دارند و ديگر عمليات روي بيت ها مثل AND،OR يا XOR كردن منطقي بيت ها،پرش در ثورت ايا پاك بودن يك بيت و مانند آن ها را نيز انجام مي دهند.اين ضميمة مفيد بندرت در ريزپردازنده يافت مي شود زيرا آنها معمولاً براي كار روي بيت ها يا واحدهاي بزرگتر داده طراحي مي شوند.براي كنترل و نظارت بر ابزارها (شايد توسط يك رابط تك بيتي)،ميكروكنترلرها مدارات داخلي و دستورالعمل هايي براي عمليات ورودي/خروجي،زمان بندي انفاقات و فعال كردن و تعيين اولويت وقفه هاي ناشي از محرك هاي خارجي دارند.ريزپردازنده ها اغلب به مدارات اضافي (IC هاي رابط سريال،كنترل كننده هاي وقفه،تايمرها و غيره)براي انجام اعمال مشابه نيازدارند.با اين همه در قدرت پردازش محض،يك ميكروكنترلر هرگز به ريزپردازنده نمي رسد(اگر در بقيه موارد يكسان باشند)زيرا بخش عمدة «فضاي واقعي».IC ميكروكنترلر صرف تهيه امكانات روي تراشه مي شود البته به قيمت كاهش توان پردازش.از آنجا كه فضاهاي واقعي در تراشه براي ميكروكنترلر اهيمت دارند دستورالعمل ها بايدبي نهايت فشرده باشند و اساساً در يك بايت پياده سازي شوند.يكي از نكات در طراحي جادادن برنامه كنترلي در داخل ROM روي تراشه است.زيرا افزودن حتي يك ROM خارجي هزينه نهايي توليد را بسيار افزايش مي دهد.به ريزدرآوردن فشرده براي مجموعه دستورالعمل هاي ميكروكنترلر اساسي است،در حاليكه ريزپردازنده بندرت داراي ويژگي مي باشند،روش هاي آدرس دهي قدرتمند آنها باعث به رمز درآوردن غيرفشردة دستورالعمل ها مي شود.
6-2 مفاهيم جديد
ميكروكنترلر مانند ديگر فرآورده هايي كه پيش از آن براي برطرف كردن موانع كار مورد ملاحظه بودند،توسط دو نيروي مكمل هم يعني نياز بازار و تكنولوژي جديد بوجود آمده اند.تكنولوژي جديد همان است كه پيش از اين ذكر شد،يعني نيمه رساناهايي با ترانزيستورهاي بيشتر در فضاي كمتر كه با قيمت پايين تري به صورت انبوه توليد مي شوند.نياز بازار،تقاضاي صنعت و مصرف كنندگان وسايل و اسباب بازي هاي هوشمند مي باشد.اين تعريف گسترده اي است،بهترين مثال شايد داشبورد خودور باشد كه شاهد تغيير «مركز كنترل» خودرو در طي دهه گذشته بوده است.زماني راننده ها بايد با دانستن سرعت خوداكتفا مي كردند،اما امروزه نمايشي از سرعت صرفه جويي شده و زمان تقريبي رسيدن را دراختيار دارند.زماني دانستن اين كه يك كمربند ايمني در شروع حركت محكم شده است يا نه كافي بود.امروزه به ما گفته مي شود كه كدام كمربند ايمني ايراد دارد- اگر دري نيمه باز بماند بموقع توسط كلمات به ما اطلاع داده مي شود(شايد كمربند ايمني لاي درگير كرده باشد)
همه اين موارد اين مطلب را در ذهن تداعي مي كنند كه ريز پردازنده ها (و دراين مورد ميكروكنترلر)به راه حل هايي تبديل شده اند كه به دنبال يك مسأله مي گردند.به نظر مي رسد كه آنها در كاهش پيچيدگي مدارات فرآورده هاي مصرفي بسيار مؤثر عمل كرده اند بطوري كه توليدكنندگان اغلب براي افزودن امكانات اضافي اشتياق زيادي دارند،فقط به اين علت كه ميكروكنترلرها خيلي راحت براي فرآورده هاي قابل طراحي هستند.نتيجه كار،اغلب فاقد سادگي لازم مي باشد.بهترين مثل ممكن ظهور فرآورده هاي سخنگو درسال هاي اخير است.اين فرآورده ها،چه خودرو،چه اسباب بازي معمولاً مثال هايي از زياده روي ها و طراحي هاي اضافه برنياز، و شايد گوشه اي از هر دهه هشتاد هستند.در آن زمان هم بسياري معتقد بودند كه همين كه گردكهنگي روي اين وسايل بنشيند،تنها چيزي كه براي آنها باقي مي ماند قابليت كاري آنها خواهد بود.ميكروكنترلرها پردازنده هايي اختصاصي هستند آنها به خودي خود در كامپيوترها به كار نمي روند بلكه در فرآورده هاي صنعتي و وسايل مصرفي مورد استفاده قرار مي گيرند.استفاده كنندگان اين فرآورده ها اغلب از وجود ميكروكنترلرها كاملاً بي اطلاع هستند.از ديد آنها اجزاي داخلي وجود دارند اما جزو جزئيات بي اهميت طراحي به شمار مي روند.براي مثال اجاق هاي مايكروويو،ترموسات قابل برنامه ريزي،ترازو هاي الكترونيكي و حتي خودروها را مي توانيد در نظر بگيريد.قسمت الكترونيكي هر يك از اين فرآورده ها عموماً شامل ارتباط ميكروكنترلر با كليدهاي فشاري،سوئيچ ها، وسايل هشدار دهنده و لامپ هاي روي يك تابلو مي باشد.در نتيجه به استثناي برخي امكانات اضافي،طرز استفادة آنها يا فرآورده هاي الكترومكانيكي قبلي تفاوتي نكرده است و ميكروكنترلر آنها از ديد استفاده كنندگان مخفي است.برخلاف سيستم هاي كامپيوتري كه توسط قابليت برنامه ريزي و دوباره برنامه ريزي شدن،باز شناخته مي شوند،ميكروكنترلها يك بار براي هميشه و براي يك كار برنامه ريزي مي شوند.اين مقايسه به يك تفاوت اساسي در معماري اين دو سيستم منجر مي شود.سيستم هاي كامپيوتري نسبت RAMبه ROM بالايي دارند و برنامه هاي كاربران در يك فضاي نسبتاً بزرگ ROM اجرا مي شوددر حاليكه روالهاي ارتباط با سخت افزار در يك فضاي كوچك ROM اجرا مي گردد.از طرف ديگر ميكروكنترلرها نسبت ROM به RAM بالايي دارند،برنامه كنترلي آنها كه شايد نسبتاً بزرگ سيم باشد در ROM ذخيره مي شود،در حالي كه RAM فقط براي ذخيره موقت مورد استفاده قرار مي گيرد.از آنجا كه برنامه كنترلي براي هميشه در ROM ذخيره مي شود در مرتبة ميان افزار قرارمي گيرد.يعني چيزي بين سخت افزار(مدارهاي واقعي) ونرم افزار (برنامه هايي در RAMكه هنگام خاموش شدن سيستم پاك مي شوند)تفاوت بين سخت افزار و نرم افزار تا حدي شبيه به تفاوت بين يك صفحه كاغذ (سخت افزار)وكلمات نوشته شده روي آن (نرم افزار)مي باشد.ميان افزار را مي توان به صورت فرم هاي استانداردي كه براي يك كاربرد مشخص طراحي و چاپ شده اند درنظر گرفت.
7-2 مزيت ها و معايب:يك مثال طراحي
وظايفي كه ميكروكنترلرها انجام مي دهند وظايف تازه اي نيستند.آنچه جديد است اين است كه طراحي ها با تعداد اجزاي كمتري از گذشته انجام مي شوند.طراحي هايي كه در گذشته با استفاده از ده ها يا حتي صدها IC انجام مي شوند امروزه با يك ميكروكنترلر و اجزايي به تعداد از انگشتان دست قابل انجام اند.كاهش تعداد اجزاء كه نتيجة مستقيم قابليت برنامه ريزي و توانايي زياد ميكروكنترلرها درايجاد يكپارچگي مي باشد،معمولاً منجر به زمان طراحي و ساخت كوتاه تر،هزينه توليد پائين تر،مصرف توان كمتر و قابليت اطمينان بيشتر مي شود.اعمال منطقي كه نيازمند چندين ICمي باشند،اغلب توسط يك ميكروكنترلر با اضافه كردن يك برنامة كنترلي انجام مي شوند.عيب كار در سرعت است.راه حل هاي ميكروكنترلي هرگز در سرعت به پاي راه حل هاي مشابه با اجزاي گسسته نمي رسند.در موقعيت هايي كه نياز به پاسخ هاي بسيار سريع به رويدادها وجود دارد كه البته بندرت چنين كاربردهايي پيدا مي شوند)ميكروكنترلرها عكس العمل ضعيفي از خودنشان مي دهند.به عنوان يك مثل،نمايش ساده اي از انجام عمل NAND با استفاده از ميكروكنترلر8051 در شكل الف نشان داده شده است.به كاربردن ميكروكترلر براي چنين عملي چندان مرسوم نيست،اما اين امكان وجود دارد.نرم افزار بايد عمليات نشان داده شده در نمودار گردشي شكل (ب) را انجام دهد.برنامه زبان اسمبلي 8051 براي اين عمل منطقي به صورت زير مي باشد.
Loop: Mov c,p1,4
ANL c,p1,5
ANL c,p1,6
CPL c
Mov p1,7,c
SUMP Loop
اگر اين برنامه در يك ميكروكنترلر 8051 اجرا شود بدون شك تابع NAND با سه ورودي تحقق مي يابد(اين مطلب را مي توان با يك ولتمتر يا نوسان تحقيق كرد)تأخير انتشار يك گذار[1]در ورودي تا استقرار سطح منطقي درست در خروجي دست كم در مقايسه با معادل TTL[2] آن بسيار طولاني است.(شکل 3-2)
(الف _انجام يك عمل منطقي ساده توسط ميكرو کنترلر)
(ب_نمودار گردشي براي برنامه گيت منطقي)
بسته به نسبت زماني تغيير در ورودي و تشخيص اين تغيير توسط برنامه،تأخير بين 3 تا 17 ميكروثانيه خواهد بود.(با فرض عملكرد استاندارد 8051 با استفاده از يك كريستال 12 مگاهرتز)در حالي كه تأخير انتشار در معادل TTL از مرتبه 10 نانو ثانيه است يعني حدود هزار با كمتر.واضح است كه در ايجاد توابع منطقي با سرعت ميكروكنترلرها با مدارهاي معادل TTL قابل مقايسه نيست.در بسياري از كاربردها بويژه آنهايي كه با عملكرد انسان سروكار دارند اين تأخيرها با نانوثانيه اندازه گيري مي شوند يا ميكروثانيه و ميلي ثانيه اهميتي ندارند،هنگامي كه فشار روغن در خودروي شما افت مي كند آيا لازم است كه ظرف چند ميكروثانيه مطلع شويد؟)مثال گيت منطقي نشان مي دهد كه ميكروكنترلرها مي توانند عمليات منطقي را انجام دهند از اين گذشته هر چه طراحي ها پيچيده تر باشند طراحي ميكروكنترلر بيشتر خود را نشان مي دهد،تعداد كم اجزاءمزيتي است كه قبلاً به آن اشاره شده علاوه برآن عمليات پيش بيني نشده در برنامه كنترلي را مي توان تنها با تغيير نرم افزار دگرگون كرد و اين روش كمترين اثر ممكن را روي چرخة توليد خواهد گذاشت.
8-2 خلاصه سخت افزار
1-8-2 مروري بر خانوادهMcs-51TM
8051 يك IC نوعي و اولين عضو اين خانواده است كه بصورت تجاري مطرح شد خلاصه مشخصات اين IC از اين قراراست:
- K4 بايت ROM
- 128 بايت RAM
- چهاردرگاه I/O [3] (ورودي – خروجي)هشت بيتي
- دو تايمر/شمارنده[4] 16 بيتي
- رابط سريال[5]
- K64 بايت فضاي حافظه خارجي براي كد
- K64 بايت فضاي حافظه خارجي براي داده
- پردازنده بويي[6](كه عمليات روي بيت ها را انجام مي دهد)
- 210 مكان بيتي آدرس پذير[7]
- انجام عمليات ضرب و تقسيم در 4 ميكروثانيه
ديگر اعضاي خانواده Mcs-51TM هريك امكانات ديگري از قبيل ROM روي تراشه[8]EPROMRAM روي تراشه و يا يك تايمر سوم را دارا هستند.درضمن هر يك از انواع ICهاي اين خانواده يك نسخه مشابه يا CMOS كم مصرف[9]نيزدارد
شماره قطعه | حافظه كد روي تراشه | حافظه دادة روي تراشه | تعداد تايمر | |
80518031 8751 8052 8032 8752 | K ROM4– K EP ROM4 K ROM8 – K EPROM8 | 128 Byte128 Byte 128 Byte 256 Byte 256 Byte 256 Byte | 22 2 3 3 3 |
مشخصاتي كه ذكر شد در نمودار بكومي شكل زير نشان داده شده اند.(شکل 4-2)
2-8-2 بررسي اجمالي پايه ها
در اين شكل ديده مي شود 32 پايه از 40 پايه 8051 به عنوان خطوط درگاه I/O عمل مي كنند.معهذا 24 خط از اين خطوط دو منظوره هستند.هريك از اين خطوط مي توانند به عنوان I/O يا خط كنترل و يا بخشي از گذرگاه آدرس يا گذرگاه داده به كار روند.در طراحي هايي كه با كمترين مقدار حافظه و ديگر قطعات خارجي انجام مي شوند،از اين درگاهها به عنوان I/O همه منظوره استفاده مي كنند.هرهشت خط يك درگاه مي تواند به صورت يك واحد ارتباط با وسايل موازي مانند چاپگرها و مبدل هاي ديجيتال به آنالوگ بكار رود.يا هر خط به تنهايي با وسايل تك بيتي مثل سوئيچ ها،LED ها،ترانزيستورها،سيم پيچ ها[10]،موتورها و بلندگوها ارتباط برقرار كند.(شکل5-2)
درگاه O
درگاه O: يك درگاه دو منظوره از پاية 32 تا 39 تراشه 8051 مي باشد.اين درگاه در طراحي هاي با كمترين اجزاي ممكن به عنوان يك درگاه I/O عمومي استفاده مي شود.در طراحي هاي بزرگتر كه از حافظه خارجي استفاده مي كنند،اين درگاه يك گذرگاه آدرس و داده حالتي پلكس شده مي باشد.
درگاه1
درگاه 1 درگاه اختصاصي I/O روي پايه هاي 1 تا 8 است.پايه هاي p1.o تا P1.7 در صورت نياز براي ارتباط با وسايل خارجي بكار مي روند.وظيفه ديگري براي پايه هاي درگاه در نظر گرفته نشده است با بنابراين آنها گهگاه براي ارتباط با وسايل خارجي بكار مي روند.استثناء در Icهاي 8032/8052 كه از p1.o و p1.1 به عنوان خطوط I/O و يا ورودي تايمر سوم استفاده مي شود.
درگاه 2
درگاه 2 (پايه هاي 21تا 28)يك درگاه سات كه به عنوان I/O عمومي و يا بايت بالاي گذرگاه آدرس طراحي با حافظه كد خارجي[11] به كار مي رود.اين درگاه همچنين در طراحي هايي كه به بيش از 256 بايت از حافظه داده خارجي [12]نيازدارد نيز استفاده مي شود.
درگاه 3
درگاه 3 يك درگاه دو منظوره روي پايه هاي 10تا 17مي باشد.علاوه بر I/O عمومي اين پايه ها هريك وظايف ديگري نيز در رابطه با امكانات خاص 8051 دارند.وظايف خاص پايه هاي درگاه 3 و درگاه 2 در جدول خلاصه شده است.
بيت | نام | آدرس بيت | عملكرد خاص |
P3.3 | RXD | B0H | دريافت داده براي درگاه سريال |
P3.1 | TXD | B1H | ارسال داده براي دريافت سريال |
P3.2 | B2H | وقفه خارجي 0 | |
P3.3 | B3H | وقفه خارجي 1 | |
P3.4 | TO | B4H | ورودي خارجي براي تايمر شمارنده 0 |
P3.5 | T1 | B5H | ورودي خارجي براي تايمر شمارنده 1 |
P3.6 | B6H | سيگنال فعال ساز نوشتن در حافظه داده خارجي | |
P4.7 | B7H | سيگنال فعال ساز خواندن از حافظه داده خارجي | |
P1.0 | T2 | 90H | ورودي خارجي تايمر شمارنده 2 |
P1.1 | T2EX | 91H | تسخير/reload تايمر شمارنده 2 |
( Program stare Enable)
8051 چهار سيگنال اختصاص يافته براي كنترل گذرگاه دارد. يك سيگنال خروجي روي پايه 29 است كه حافظه برنامه خارجي (كد)را فعال مي كند.اين پايه معمولاً به پاي CE يك EPROM وصل مي گردد تا خواندن با بيتهاي برنامه از EPROM امكان پذير شود.
سيگنال در طي مرحله خواندن يك دستورالعمل پائين مي رود.كدهاي دورويي برنامه از EPROM خوانده مي شوند.در گذرگاه داده منتقل مي گردند و براي رمز گشائي در ثبات دستورالعمل 8051 ذخيره مي شوند هنگام اجراي برنامه از ROM داخلي در حالت غيرفعال باقي مي ماند.
ALE(Address latch Enable)
سيگنال خروجي ALE در پايه 30 براي هر فردي كه با ريزپردازنده انيتل مثل 80806,8085 يا 8088 كاركرده باشد آشناست.8051 بطور مشابهي از ALE براي جداسازي گذرگاه آدرس داده استفاده مي كند.هنگاميكه درگاه o در حالت خاص خود به عنوان گذرگاه داده وبايت پايين گذرگاه آدرس استفاده مي شود سيگنال ALE آدرس را در يك ثبات خارجي در طي غير نخست سيكل[13] حافظه نگاه مي دارد.پس از آن خطوط درگاه براي ورود و خروج داده در طي نيمه دوم سيكل حافظه يعني هنگاميكه انتقال داده انجام مي شود،در دسترس هستند سيگنال ALE با فركانس يك ششم فركانس نوسان ساز روي تراشه نوسان مي كند و مي تواند به عنوان يك پالس ساعت همه منظوره در تعبه سيستم بكار رود.اگر 8051 از يك كريستال 12 مگاهرتز،پالس ساعت دريافت كند،ALEبا فركانس 2 مگاهرتز نوسان مي كند.تنها استثناء در طي انجام دستورالعمل Movx است كه يك پالس ALE حذف مي شود.اين پايه همچنين براي برنامه ريزي پالس ورودي در انواع EPROM در 8051 مورد استفاده قرار مي گيرد.
(Extrral Access)
سيگنال ورودي در پايه 31 معمولاً به سطح منطقي بالا(+5V) يا پائين (زمين)وصل مي شود اگر اين پايه در وضعيت بالا قرارگرفته باشد 8051/8052 برنامه را از ROM داخلي يعني K4 يا K8 بايت پائين حافظه اجرا مي كند.هنگامي كه پايين باشد ROM داخلي غيرفعال مي شود و برنامه ها از EPROM خارجي اجرا مي شوند.همچنين نوع EPROM در 8051 از خط براي تغذيه 21 ولت در برنامه ريزي EPROMداخلي استفاده مي كند.
RST(Reset)
ورودي RST در پايه 9، آغازگر اصلي 8051 است وهنگاميكه اين سيگنال حداقل براي دوسيكل ماشين [14]در وضعيت بالا بماند اثبات هاي داخلي 8051با مقادير نسبي براي يك شروع به كار سازمان يافته بكار مي شوند.
ورودي هاي نوسان ساز روي تراشه
8051 داراي يك نوسان ساز روي تراشه[15] است و معمولاً با يك كريستال كه به پايه هاي 18و 19 متصل مي شود به راه مي افتد.فازنهاي پايدار كننده نيز به صورت نشان داده شده مورد نياز هستند،فركانس نامي كريستال براي اغلب IC ها خانواده MCS-51TM ،14 مگاهرتز است،هرچند كه 80c31BH مي تواند با فركانسهايي تا 16 مگاهرتز نيز كاركند.نوسان ساز روي تراشه الزاماً نيازي به يك كريستال ندارد.همانطور كه در شكل نشان داده شده است يك منبع پالس ساعت TTL مي تواند به XTAL1 و XTAL 2 وصل شود.
اتصالات تغذيه
8051 با يك تغذيه +5 ولتي كارمي كند.اتصالVss به پايه 40 و Vss (زمين)به پايه 20وصل مي شود.
3-8-2 ساختار درگاه I/O
مدارات داخلي پايه هاي درگاه ها به صورت مختصر درشكل نشان داده شده است.نوشتن در پايه يك درگاه،داده را در يك ذخيره ساز درگاه بار[16]مي كند.در اثر اين عمل يك ترانزيستور اثر ميداني (FET)كه به پايگاه درگاه وصل شده است،راه اندازي مي شود.قابليت راه اندازي براي درگاههاي 1،2 و 3 به اندازة چهار TTL شا تكي كم مصرف[17]و براي درگاه o به اندازه هشت عدد از همين نوع TTLمي باشد.
(شکل 6-2) راه اندازي 8051 با يک نوسان ساز TTL
(شکل7-2 )
توجه كنيد كه مقاومت بالابرنده[18]در درگاه oوجود ندارند.ممكن است يك مقاومت بالا برندة خارجي بسته به مشخصات ورودي وسيله اي كه توسط درگاه راه اندازي مي شود مورد نياز باشد.
در 8051دو قابليت خواندن ذخيره ساز[19]و خواندن پايه[20]وجود دارد.دستورالعمل هايي كه عمل بخوان تغيير بده- بنويس ر ابكار مي برد(مثل CPL p1.5)براي پرهيز ازتشخيص نادرست سطح ولتاژ در مواقعي كه پايه بشدت تحت بار قراردارد،عمل خواندن را از ذخيره ساز انجام مي دهند و دستورالعمل هايي كه يك بيت ازدرگاه وارد مي كنند،پايه را مي خوانند.ذخيره ساز درگاه در اين مورد بايد شمال 1 منطقي باشد وگرنه FET راه انداز روشن مي شود و خروجي را پايين مي كشد.reset كردن سيستم همة ذخيره سازه هاي درگاه را مي كند.پس اگر يك ذخيره ساز درگاه پاك شود متعاقب آن نمي توان از پايه به عنوان ورودي استفاده كرد،مگر اينكه ابتدا ذخيره ساز 1 شود.شكل بالا مدارات مربوط به عملكرد خاص درگاههاي oو 2 و3 را نشان نمي دهد،هنگاميه عملكرد خاص اين درگاه ها در حال انجام است.راه اندازهاي خروجي به يك آدرس داخلي آدرس/داده داخلي با يك سيگنال كنترلي بصورت مقتضي سوئيچ مي شوند.
9-2 سازمان حافظه
اغلب ريزپردازنده ها يك فضاي حافظه مشترك براي داده و برنامه در نظر مي گيرند.اين كار معتولي است چون برنامه ها معمولاً روي يك ديسك ذخيره شده و براي اجرا به RAM منتقل مي گردند.به اين ترتيب برنامه ها و داده ها هر دو در RAM سيستم مقيم مي شوند.از طرف ديگر ميكروكنترلرهابندرت به عنوان cpu در سيستم هاي كامپيوتري مورد استفاده قرار مي گيرند.در عوض،به عنوان جزء مركزي در طراحي هاي كنترل گرا به كار مي روند كه دراين موارد حافظه محدود است،ديسك درايو يا سيستم عامل ديسك وجود ندارد و برنامه كنترلي بايد در ROM قرارداده شود.به همين دليل 8051 يك فضاي حافظه جداگانه براي برنامه (كد)و داده در نظر مي گيرد.همان طور كه در جدول مقايسه IC ها نشان داده شده است،كه داده هر دو ممكن است داخلي باشند. با اين وجود هردو با استفاده از اجزاءرا خارجي تا خد K64 بايت حافظه كد و K64 بايت حافظه داده قابل توسعه هستند.حافظه داخلي شامل ROM روي تراشه و RAM دادة روي تراشه است.RAM روي تراشه شامل آرايش مناسبي از حافظه همه منظوره،حافظه بيتي آدرس پذير،بانك هاي ثبات و ثبات ها كاربرد خاص[21]مي باشد.دو ويژگي جالب توجه در 8051 بدين قرار است:الف – ثباتها و درگاههاي ورودي- خروجي بصورت نقشه حافظه [22]هستند و مانند هر مكان ديگر حافظه قابل دسترسي مي باشند ب)پشته،برخلاف معمول ديگر ريز پردازنده ها كه پشته را در RAMخارجي قرار مي دهند،در RAM داخلي قراردارد.شكل زير به صورت خلاصه شده،فضاي حافظه را براي 8031 بدون ROM و بدون نشان دادن جزئيات حافظه داد.روي تراشه نشان مي دهد
(شکل 8-2)
همانطور كه در شكل صفحه بعد نشان داده شده است فضاي حافظه داخلي ميان بانك هاي ثبات (ooH-Ffh)،RAM بيتي آدرس پذير(20H-ffH)،RAM همه منظوره ((30H-7FHو ثبات ها كاربرد خاص (80H-ffh)تقسيم شده است.
1-9-2 RAM همه منظوره
(شکل 9-2)
اگر به شكل بالا،80 بايت را از آدرس 30H تا 7FH براي RAM همه منظوره نشان مي دهد.32 بايت پائين ازآدرس 00H تا 2FH نيز مي توانند به صورت مشابهي استفاده شوند.هر مكاني در RAM همه منظوره با استفاده از روشهاي آدرس دهي مستقيم يا غيرمستقيم قابل دسترس است.براي مثال براي خواندن محتويات RAMداخلي آدرس 5FHبه داخل انباره اين دستورالعمل بكار مي رود:
MOV A,5FH
اين دستورالعمل يك بايت داده را با استفاده از آدرس دهي مستقيم براي مشخص كردن مكان مبدأ منتقل مي كند،مقصد داده بطور منحتي در كد عملياتي دستورالعمل با عنوان A انبار،[23]مشخص شده است.در ضمن RAM داخلي با استفاده از آدرس دهي غير مستقيم و R0و R1 نيز قابل دسترسي است.براي مثال دو دستورالعمل زير همان كاري را مي كنند كه دستورالعمل بالا به تنهايي انجام مي دهد:
5FH # وMOV R0
MOV A, @ Ro
دستورالعمل نخست از آدرس دهي فوري براي انتقال مقدار 5FH به ثبات Ro استفاده مي كند و دستورالعمل دوم آدرس دهي غيرمستقيم را براي انتقال داده اي كه «Ro به آن اشاره مي كند»به داخل انباره به كار مي گيرد.«RAM بيت آدرس پذير»
8051،210 مكان بيت آدرس پذير دارد،كه 128 مكان آن درآدرس بايت 20Hتا 2FH قرارداشته و بقيه ثبات هاي كاربرد خاص هستند كه بعداً مورد بحث قرار مي گيرند.انديشه دستيابي به بيت هاي منفرداز طريق نرم افزار،يكي از امكانات قدرتمند اغلب ميكروكنترلها است.بيت ها مي توانند توسط يك دستورالعمل،1،0،AND و يا OR گردند.اغلب ريزپردازنده ها به يك رشته از دستورالعمل هاي «بخوان – تغيير بده- بنويس»براي انجام همين اعمال نياز دارند.بعلاوه درگاه هاي I/O در 8051 بصورت بيت هاي آدرس پذير هستند كه ارتباط اقراري را با تك بيت ها ورودي و خروجي مي كنند.تعداد 28 امكان آدرس پذير همه منظوره در آدرس بايت يا به عنوان بيت قابل دسترسي هستند.براي مثال براي 1 كردن بيت 64H اين دستورالعمل را مي توان بكار برد:
MOV A,2CH
ORL A,#1000000013
MOV 2CH,A
2-9-2 بانك هاي ثبات[24]
بانك هاي شات در 32 مكان پائين حافظه داخلي قراردارند.مجموعه دستورالعمل 8051 هشت ثبات را از Roتا R7پشتيباني مي كند و به صورت پيش فرض،اين ثبات ها،در آدرس 00Hتا07H قرارمي گيرند دستورالعمل زير محتواي آدرس 05H را به داخل انباره منتقل مي كند. MOV A,R5
اين دستورالعمل يك دستورالعمل يك بايتي است كه از آدرس دهي ثبات استفاده مي كند.البته همين عمليات با يك دستورالعمل دو بايتي با استفاده از آدرس دهي مستقيم دربايت دوم نيز انجام پذير است:MOV A,05H
دستورالعمل هايي كه از ثبات هاي RoتاR7استفاده مي كنند كوتاهتر و سريعتر از دستورالعملهاي معادلي هستند كه از آدرس دهي مستقيم استفاده مي كنند.داده هايي كه بطور متناوب استفاده مي شوند،بهتر است يكي از اين ثبات ها را استفاده كنند.
بانك ثبات فعال با تغيير بيت هايي انتخاب بانك ثبات در كلمه وضعيت برنامه[25] قابل تغيير است.با فرض آنكه بانك ثابت شماره 3 فعال باشد دستورالعمل زير محتواي انباره را در مكان 18H مي نويسد.
MOV Ro,A
انديشة بانك هاي ثبات «امكان» سوئيچ متن را بصورت سريع و كارا فراهم مي كند،كه به موجب آن بخشهاي جداگانه يك نرم افزار،مستقل از ديگر بخشها از يك مجموعة ثبات خاص خود استفاده مي كنند.
3-9-2 ثبات هاي كاربرد خاص
ثبات هاي داخلي در اغلب ريز پردازنده توسط مجموعة دستورالعمل ها به صورت صنفي قابل دسترسي هستند.براي مثال«INCA» در ريزپردازنده 6809 محتواي انبار،A را يك واحد افزايش مي دهد.عمليات به صورت مختلفي در كد عملياتي دستورالعمل مشخص شده است.روش دستيابي مشابهي براي ثبات ها درميكروكنترلرها 8051 امكان پذير است.در حقيقت دستورالعمل «INCA» در 8051 همان عمل را انجام ميدهد.ثبات ها داخلي 8051به عنوان بخشي از RAM روي تراشه پيكربند شده اند . بنابراين هر ثبات داراي يك آدرس نيز هست.[26]
اين براي 8051 منطقي است چون ثبات زيادي دارد.علاوه بر R7،21 ثبات كاربرد خاص (SFR) در ناحيه بالاي RAMاز آدرس 80H تا FFH وجود دارد.دقت كنيد كه اكثر 128 آدرس از 80Hتا FFH تعريف نشده اند.تنها 21 آدرس SFRتعريف شده است.
اگرچه انباره به صورت مخفي قابل دسترسي است اكثر SFRها با استفاده از آدرس دهي مستقيم قابل دستيابي است.طراحان بايد هنگام بازكردن با بيت ها به جاي بايت ها مراقب باشند.براي مثال دستورالعمل:SETB OEOH بيت 0در انباره را 1 مي كند ولي ديگر بيت ها را متغيير نمي دهد.شگرد كار تشخيص اين نكته است كه بدانيم EOH هم آدرس كامل با بيت انباره و هم آدرس كم ارزش ترين بيت درانباره مي باشد.چون دستورالعمل SETB روي بيت ها عمل مي كند تنها روي بيت آدرس دهي شده تأثير مي گذارد.براي مثال درگاه 1 آدرس با بيت 90Hيا 1001000B قراردارد بيت هاي درگاه 1 در آدرس 90Hتا 97H قراردارند يعني 10010XXXB.
«كلمه وضعيت برنامه»
كلمه وضعيت برنامه (psw) در آدرس DOH همانطور كه در جدول خلاصه شده است شامل بيت هاي وضعيت مي باشد.
خلاصه ثبات psw
بيت | نماد | آدرس | شرح عملكرد بيت |
Psw.7 | CY | D7H | پرچم نقلي |
Psw.6 | AC | D6H | پرچم نقلي كمكي |
Psw.5 | Fo | D5H | پرچم 0 |
Psw.4 | RS1 | D4H | انتخاب بانك ثبات 0 |
Psw.3 | RS0 | D3H | انتخاب بانك ثبات 1 |
00H-07H | 00=بانك0، آدرسهاي | ||
08-0FH | 01= بانك 1، آدرس هاي | ||
10H-17H | 1 0= بانك 2، آدرس هاي | ||
18H-1FH | 11= بانك 3، آدرس هاي | ||
Psw.2 | ov | D2H | پرچم سرريز |
Psw.1 | D1H | رزروشدده | |
Psw.0 | p | D0H | پرچم توازن زوج |
.
پرچم نقلي
بيت نقلي (CY) يك بيت دو منظوره است كه كاربرد آن براي عمليات حسابي است اگر در طي عمل جمع،يك بيت نقلي از بيت 7خارج شود يا در طي عمل تفريق،يك بيت فرضي به بيت 7 وارد شود پرچم نقلي 1 مي شود.براي مثال اگر انباره شامل ffh باشد دستورالعمل:
ADD A,#1
به انباره مقدار 00Hرا داده و پرچم نقلي را در psw،1 مي كند.
پرچم نقلي در ضمن يك انباره بولي نيز هست،كه به عنوان يك ثبات تك بيتي براي دستورالعمل هاي بولي كه روي بيت ها عمل مي كنند به كار مي آيد.براي مثال دستورالعمل زير بيت 25H را با پرچم نقلي AND مي كند و نتيجه را به پرچم نقلي برمي گرداند: C,25H AND
پرچم نقلي كمكي
هنگام جمع كردن مقادير دهدهي كد شده بصورت دورويي (BCD) اگر يك انتقال از بيت 3به بيت 4اتفاق بيفتد،يا نتيجه در چهار بيت پائيني بين oAH تا oFH باشد پرچم نقلي كمكي Set مي شود.اگر مقادير كه جمع شده اند،BCDباشند دستورالعمل جمع بايد با DAA(تصحيح اعشاري انباره)[27]دنبال مي شود.تا نتايج بزرگتر از 9 به محدودة كاربرگردانده شوند.
پرچم صفر 0
پرچم 0يا F0 يك بيت پرچم همه منظوره براي استفاده كاربران مي باشد.
«بيت هاي انتخاب بانك ثبات»
بيت هاي انتخاب بانك ثبات (Rs1 و RS0)،بانك ثبات فعال را مشخص مي كنند،در پي Reset شدن سيستم پاك مي شوند و در صورت لزوم بصورت نرم افزاري تغيير مي كنند.براي مثال سه دستورالعمل زير بانك 3 را فعال كرده سپس محتويات ثبات R7 را به انباره منتقل مي كنند:
SETB Rs1
SETB RS0
MOV A,R7
هنگامي كه برنامه بالا اسمبل شود آدرس هاي بيت درست،جانشين نمادهاي «Rso» و «RS1» مي شوند و به اين ترتيب دستورالعمل SETBRS1همان SETB OD4H ميباشد.
پرچم سرريز[28]
پرچم سرريز (OV)پس از يك عمل جمع يا تفريق،اگر يك سرريز حسابي اتفاق بيفتد 1 مي شود.هنگامي كه اعداد علامت دار جمع يا تفريق مي شوند،نرم افزار مي تواند اين بيت را بررسي كند تا مشخص شود كه نتيجه در محدوده مناسب قراردارد يا خير.وقتي كه اعداد بدون علامت جمع مي شوند از بيت 57 صرف نظر مي شود.نتايج بزرگتراز +127 يا كوچكتر از –128 بيت 57/1 1 مي كنند.براي مثال عمل جمع زير باعث سرريز شده و بيت OV را در 1,Pswمي كند:
8EH به عنوان يك عدد علامت دار،با –116 معادل است كه به وضوح با نتيجه درست يعني 142 متفاوت است بنابراين بيت 1,OV مي شود.
بيت توازن[29]
بيت توازن(P) در هر سيكل ماشين براي ساختن توازن زوج انباره،بطور خودكار 1ويا پاك مي شود.تعداد بيت هاي 1 در انباره به علاوه بيت p همواره زوج است اگر براي مثال انباره شامل 10101101 باشد p حاوي 1 خواهدبود.بيت توازن اغلب در ارتباط بار اول هاي درگاه سريال براي اضافه كردن يك بيت توازن پيش از فرستادن و يا بررسي توازن پس از دريافت به كار مي رود.
ثبات B
ثبات B در آدرس foH به همراه انباره براي عمليات ضرب و تقسيم استفاده ميشود.دستورالعمل MUL AB مقادير هشت بيتي بدون علامت در AوB را صرف كرده و نتيجه 16 بيتي را در A و B قرار مي دهد.دستورالعمل A,DIV AB را بر B تقسيم مي كند و خارج قسمت را در A و باقي مانده را در B مي گذارد.ثبات B همچنين به عنوان يك ثبات چركنويس همه منظوره عمل مي كند.اين ثبات بيت آدرس پذير ازآدرس FOHتا F7H نيز هست.
اشاره گر پشته[30]
اشاره گر پشته يك ثبات هشت بيتي در آدرس 81H است. اين ثبات حاوي آدرس داده اي است كه در همان هنگام در بالاي پشته قراردارد.عمليات پشته شامل پوش كردن داده به پشته و چاپ كردن داده ازپشته مي باشد.پوش كردن به پشته sp را پيش از انتقال داده به پشته يك واحد افزايش مي دهد و عمل پاپ كردن،داده را ازپشته مي خواند سپس sp را يك واحد كاهش مي دهد.
پشته 8051 در RAM داخلي قرار دارد و محدود به آدرس هايي است كه با آدرس دهي غيرمستقيم قابل دسترسي است.يعني 128 بايت اول در 8031/8051يا تمام 256بايت RAM روي تراشه 8032/8051 .براي مقدار اوليه دادن دوباره به sp در پشته اي كه از آدرس 60H آغاز مي شود.دستورالعمل زير مورد استفاده قرار مي گيرد:
MOV SP,#5FH
در 8031/8051 اين دستورالعمل پشته را به 32 بايت محدود مي كند،چون بالاترين آدرس در RAM روي تراشه،7FH است.در اين دستورالعمل مقدار 5FH به كار رفته چون SP پيش از اولين عمل پوس يك واحد افزايش مي يابد و 60H مي شود،طراحان ممكن است نخواهند اشاره گر پشته را مقدار دهي اوليه كنند و بگذارند مقدار پيش فرض خود را از هنگام reset شدن حفظ كند اين مقدار يعني 07H با 8048 كه پردازنده،قبل 8051 است،سازگاري دارد وباعث مي شود كه اولين نوشته در پشته،داده را در آدرس 08H ذخيره كند.اگر نرم افزار مورد استفاده به sp مقدار اوليه ندهد،بانك ثبات 1 در دسترس نخواهدبود.زيرا اين ناحيه از RAM داخلي بخشي از پشته مي باشد.پشته بطور صريح توسط دستورالعمل هاي push و pop براي ذخيره و بازيافت موقتي داده ها قابل دسترس است يا بصورت صنفي با فراخواني زوال ها (ACALL,LCALL)[31]و بازگشت(RETIوRET)كه دستورالعمل هايي براي ذخيره و بازيابي شمارنده برنامه[32]هستند.مي توان به آن دسترسي پيدا كرد.
اشاره گر داده[33]
اشاره گر داده كه براي دستيابي به حافظه كد يا داده خارجي استفاده مي شود،يك ثبات 16 بيتي است كه در آدرس هاي 82H و 83H قراردارد.سه دستورالعمل زير 55H را در مكان 1000H در RAM خارجي مي نويسد:
MOV A,#55H
MOV DPTR ,# 1000H
MOVX @DPTR,A
اولين دستورالعمل از آدرس دهي فوري براي انتقال داده ثبات 55H به انباره استفاده مي كند.دومين دستورالعمل نيز آدرس دهي فوري را اين بار براي انتقال آدرس ثبات 16 بيتي 1000tt به اشاره گر داده به كار مي برد.دستورالعمل سوم از آدرس دهي غيرمستقيم براي انتقال محتواي A(55H) به مكاني از RAMخارجي كه آدرسش در DPTR است (1000H)استفاده مي كند.
ثبات هاي درگاه[34]
درگاههاي I/O در 8051 عبارتند از درگاه 0 در آدرس 80H ، درگاه 1 در آدرس 90H درگاه 2 در آدرس A0H و درگاه 3در آدرس BoH.درگاه هاي 3,2,0 در صورت استفاده از حافظه خارجي يا برخي از امكانات خاص 8051،براي عمليات I/O در دسترس نيستند.با اين همه p1.2تا p1.7 همواره به عنوان خطوط I/O همه منظوره قابل استفاده مي باشند.همه درگاه ها بيت آدرس پذير هستند كه امكانات قدرتمندي را براي ارتباطات متقابل فراهم مي كنند.اگر يك موتور از طريق يك سيم و پيچ و سوئيچ ترانزيستوري به بيت 7درگاه 1 وصل باشد،براي مثال مي تواند:يك دستورالعمل 8051يعني:
SETB P1.7
روشن شود و با دستورالعمل زير خاموش گردد:
CLR P1.7
دستورالعمل ها فوق از عملگر نقطه براي آدرس دادن به يك بيت دريك مكان بيت آدرس پذير استفاده مي كنند.اسمبلر تغييرات لازم را انجام مي دهد بدين ترتيب دو دستورالعمل زير معادل هستند:
CLR P1.7
CLR 97H
به عنوان يك مثال ديگر ارتباط با وسيله اي شامل يك بيت وضعيت بنام Bvsyرا درنظر بگيريدئ كه هنگام مشغول بودن وسيله،او هنگام آماده بودن آن پاك مي باشد.1 مگر Busy برفرض به بيت 5درگاه 1 وصل شده باشد،حلقه زير باعث مي شود كه سيستم براي آماده شدن وسيله صبر كند:
WAIT: JB P1.5 , WAIT
اين دستورالعمل يعني «اگر بيت P1.5 شد،برحسب WAITپرش كن»به عبارت ديگر «برگرد و دوباره آن را بررسي كن».
ثبات هاي تايمر
8051 داراي دو تايمر شمارنده 16 بيتي براي زمان بندي فاصله هاي زماني[35]و يا شمارش اتفاقات[36]است.تايمر 0درآدرس هاي 8AH و 8CH و تايمر 1 در آدرس هاي 8BH قراردارند.عملكرد تايمر توسط ثبات حالت تايمر[37](TMOD) در آدرس 89H و ثبات كنترل تايمر(TCON)در آدرس 88H تعيين مي شود كه از اين دو،تنها TCONبيت آدرس پذير است.
ثبات هاي درگاه سريال
8051 شامل يك درگاه سريال روي تراشه براي ارتباط با ابزارهاي سريال مانند پايانه ها و مدم ها و يا براي ارتباط با ديگر ICهايي كه خطوط ارتباطي سريال دارند،مي باشد.ثباتي به نام با فردادة سريال[38](SBUF) در آدرس 99H هر دو دادة ارسالي و دريافتي را نگه مي دارد.نوشتن در SBUF،داده را براي ارسال آماده مي كند و خواندن از SBUF،داده دريافتي را دردسترس قرار مي دهد.حالت هاي مختلف عملكرد مختلف عملكرد درگاه سريال از طريق ثبات كنترل درگاه سريال در آدرس 99H كه بيت آدرس پذير نيز هست،قابل برنامه ريزي مي باشد.
ثبات هاي وقفه
8051داراي يك ساخت با پنج منبع وقفه در دو سطح تقدم[39]مي باشد.وقثه ها پس از resetشده سيستم غيرفعال مي شوند وسپس با نوشتن در ثبات فعال سازي وقفه[40](IE)در آدرس A8H،فعال مي گردند.سطح تقدم از طريق ثبات تقدم وقفه[41]در آدرس B8Hتعيين مي شود.هر ثبات بيت آدرس پذير هستند.
ثبات كنترل توان[42]
ثبات كنترل توان (PCON) در آدرس 87H شامل بيت هاي كنترلي مختلفي است كه در جدول آمده است:
بيت | نماد | شرح عملكرد |
7 6 5 4 3 2 1*
0*
| SMOD
GF1 GF0 PD
IDL
| بيت دو برابر كننده نرخ ارسال، هنگام 1 شدن، نرخ ارسالدر حالتهاي 1، 2 يا 3 درگاه سريال دو برابر ميشود تعريف نشده تعريف نشده بيت 1 پرچم همه منظوره بيت 0 پرچم همه منظوره افت تغذيه، براي فعال كردن حالت افت تغذيه 1 ميشود تنها راه خروج، reset شدن است. حالت معلق، براي فعال كردن حالت معلق 1 ميشود تنها راه خروج، يك وقفه يا reset شدن است. |
* تنها در نسخههاي CMOS منظور شده است.
بيتSMOD نرخ ارسال درگاه سريال را در حالت هاي 3,2,1دو برابر مي كند.بيت هاي 4 و 5 و 6 در PCONتعريف نشده اند و بيت هاي 2 و 3بيت هاي پرچم همه منظوره براي استفاده كاربران مي باشند.بيت هاي كنترل توان يعني افت تغذيه[43](PD)و معلق [44](IDL)ابتدا در همه ICهاي خانواده MCS-51TM در دسترس بودند اما هم اكنون در نسخه هاي CMOS منظور مي شوند.ثبات PCONبيت آدرس پذير نيست.
حالت معلق
دستورالعملي كه بيت IDL را 1 كند،آخرين دستورالعملي خواهد بود كه پيش از ورود به حالت معلق اجرا مي شود در حالت معلق سيگنال ساعت داخلي به CPU اعمال ميشود.1مانه براي كاربردهاي وقفه،تايمر و درگاه سريال.وضعيت CPU حفظ و محتويات ثبات ها تثبيت مي گردد.پايه هاي درگاه ها هم سطح منطقي خود را حفظ مي كنند.ALEو نيزبالا مي روند.حالت معلق توسط هر وقفه اي كه فعال شود يا با reset شدن سيستم پايان مي يابد هريك ازاين شرايط بيت IDLرا پاك مي كند.
حالت افت تغذيه
دستورالعملي كه بيت PD را كند آخرين دستورالعملي خواهد بود كه پيش از ورود به حالت افت تغذيه اجرا مي شود.در حالت افت تغذيه:1- نوسان ساز روي تراشه متوقف مي وشد 2- تمامي اسامي متوقف مي شوند 3- محتويات RAM روي تراشه حفظ مي شود 4-پايه هاي درگاه سطح منطقي خود را حفظ مي كنند 5- ALE و پايين مي روند.تنها راه خروج از اين حالت،resetكردن سيستم است.هنگامي كه سيستم در اين حالت قراردارد Vccمي تواند تا 2 ولت افت كند.بايد مراقب بود كه Vcc پيش از ورود به اين حالت افت كند و دست كم ده سيكل نوسان ساز پيش از پايين رفتن پاية Vcc,RST به 5 ولت برگردد.
4-9-2 حافظه خارجي
براي پرهيز از يك تنگناي بالقوه در طراحي،ميكروكنترلرها بايد قابليت توسعه را فراتر ازمنابع و امكانات روي تراشه خود داشته باشند.اگر قرار است امكاناتي توسعه يابد قابليت آن بايد وجود داشته باشد.معماري MCS-51TM اين قابليت را به صورت K64 بايت فضاي حافظه خارجي باري كد و K64 بايت فضاي حافظه خارجي براي داده فراهم كرده است و در صورت نياز ROM و RAM اضافي را مي توان به آن افزود.IC هاي ارتباط با ابزارهاي جانبي نيز مي توانند براي افزايش قابليت I/Oاضافه گردند.اينها جزئي از فضاي حافظه دادة خارجي با استفاده از نقشه حافظه براي I/O ميباشند.هنگاميكه حافظه جارجي مورد استفاده قرار مي گيرد درگاه 0 به عنوان يك درگاه I/O قابل استفاده نيست.اين درگاه به يك گذرگاه آدرس (A0-A7)و داده (D0-D7)مالتي پلكس شده تبديل مي شود.ALE بايت پائين آدرس را در شروع هر سيكل حافظه خارجي ذخيره مي كند.
درگاه 2 معمولاً براي بايت بالاي گذرگاه آدرس به كار گرفته مي شود.
پيش از بحث پيرامون جزئيات خاص مالتي پلكس كردن گذرگاه هاي آدرس و داده،ايدة كلي و درشكل نشان داده شده است.يك آرايش بدون مالتي پلكس از 16 خط اختصاصي آدرس و 8 خط اختصاصي داده يعني كلاً از 24 پايه استفاده ميكند. آرايش مالتي پلكس شده 8 خط گذرگاه را با بايت پائين گذرگاه آدرس مالتي پلكس مي نمايد.اين تعداد با 1 خط ديگر براي بايت بالاي گذرگاه آدرس،كلاً 16 پايه ميشود اين صرفه جويي درپايه ها باعث مي شود كه امكانات و توانايي هاي بيشتري در يك بسته بندي دورديفه[45] 40 پايه اي ايجاد شود.در طي نيمه نخست هرسيكل حافظه بايت پايين آدرس در درگاه 0 قرار مي گيرد و توسط ALEذخيره مي شود.(شکل 10-2)
يك 74HC373 بايت پائين آدرس را در طي سيكل حافظه بايد از نگاه مي دارد.در طي نيمه دوم سيكل حافظه درگاه 0 به عنوان گذرگاه داده به كار مي رود و داده،بسته به عمل انجام شده خوانده يا نوشته مي شود.
5-9-2 دستيابي به حافظه كد خارجي
حافظه گد خارجي يك حافظه خواندني است كه توسط سيگنال فعال ميشود.هنگامي كه از يك EPROM خارجي استفاده مي كنيم،درگاه هاي 0 و 2به عنوان درگاه هاي I/O همه منظوره در دسترس ما نيستند.اتصالات سخت افزاري براي حافظه EPRUM در شكل نشان داده شده است.يك سيكل ماشين در 8051 برابر با 12 ولتاب نوسان ساز است. براي نوسان ساز روي تراشه با يك كريستال 12 مگاهرتز هر سيكل ماشين يك ميكروثانيه طول مي كشد.(شکل11-2)
در طي يك سيكل ماشين نوعي ALE دو پالس مي دهد و دو بايت از حافظه برنامه خوانده مي شود.زمان بندي اين عمليات كه به واكنشي كد عملياتي[46]معروف است در شكل زير نشان داده شده است.(شکل 12-2)
6-9-2 دستيابي به حافظه داده خارجي
حافظه داده خارجي يك حافظه خواندني – نوشتني است كه با يا فعال ميشود.اين دو سگنال عملكرد و ديگر پايه هاي p3.6 و p3.7 مي باشند.تنها راه دستيابي به حافظه داده خارجي دستورالعمل MOVxمي باشد كه از اشاره گر داده 16 بيتي،R0 و يا R1به عنوان ثبات آدرس استفاده مي كند.
RAM ها مي توانند همانند EPROM ها به 8051 مرتبط شوند.با اين تفاوت كه به خط تراشه RAM و به خط آن وصل مي شود.اتصالات گذرگاه آدرس و داده همانند EPROMها است.همان طور كه گفته شد با استفاده از درگاههاي 0و 2 تا 64K بايت از RAM خارجي داده مي تواند به 8051 وصل شود.
يك نمودار زمان بندي براي يك عمل خواندن از حافظه دادة خارجي براي دستورالعمل @ DPTR و MOV X A در شكل نشان داده شده است.يك پالس ALEو يك پالس در عوض يك پالس روي خط براي فعال كردن RAM حذف شده است.[47]
زمان بندي يك سيكل نوشتن براي A و MOV X @ DPTR به همان شكل است.
فقط پايين مي رود و داده از درگاه 0 خارج مي شود. در سيم هايي كه با كمترين اجزاء ممكن طراحي مي شوند،از عملكرد ديگر درگاه 2صرف نظر مي شود.زيرا اين سيستم ها از حافظه كد خارجي استفاده نمي كنند و تنها به مقدار كمي حافظه داده خارجي نياز دارند.اگر حافظه داده خارجي به صورت حافظه هاي كوچك صفحه گرا پيكربندي شود توسط آدرس هاي هشت بيتي قابل دسترسي است.اگر بيش از يك صفحه 25 بيتي از RAMمورد نياز باشد چند بيت از درگاه 2مي تواند يك صفحه را انتخاب كند.براي مثال K1 بايت RAM مي تواند مطابق شكل به 8051مرتبط شود.بيت هاي 0و 1 درگاه 2 بايد براي انتخاب يك صفحه مقدار دهي اوليه شوند و سپس يك دستورالعمل MOVX براي خواندن و نوشتن داده در صفحه استفاده ميشود.
(شکل13-2)
براي مثال فرض كنيد دستورالعمل هاي زير مي توانند براي خواندن محتويات RAM خارجي به داخل انباره در آدرس 0050Hبه كار بروند:
Mov Ro,#50H
Mov X A , @RO
براي خواندن آخرين آدرس اين RAM يعني 03ffH دو بيت انتخاب صفحه بايد 1 شوند.رشتة دستورالعمل هاي زير براي اين منظور مي توانند مورد استفاده قرار بگيرند:
SETB P2.0
SETB P2.1
Mov RO,# offH
Mov X A ,@ RO
يك مزيت اين طراحي اين است كه بيت هاي 2تا 7 درگاه 2به عنوان بيت هاي آدرس استفاده نمي شوند،در حالي كه اگر DPTR به عنوان ثبات آدرس به كار مي رفت مورد نياز بودند.در نتيجه P2.2 تا P2.7 براي مقاصد I/O در دسترس قرار مي گيرند.
7-9-2 عمليات راه اندازي مجدد،reset
8051 با قرارگرفتن RST در وضعيت منطقي بالا براي دست كم دو سيكل ماشين و سپس پايين آمدن آن مي تواند reset شود.RST ممكن است بطور دستي با استفاده از يك سوئيچ و يا هنگام اعمال تغذيه توسط يك مدار RC فعال گردد.شكل صفحه بعد دو مدار براي reset كردن سيستم را نشان مي دهد.
(شکل14-2)
وضعيت همه ثبات هاي 8051 پس از reset سيستم در جدول صفحه بعد خلاصه شده است:
شايد مهم ترين اين ثبات ها شمارنده برنامه باشد كه با 0000H بار مي شود.هنگاميكه RST دوباره پايين مي رود.اجراي برنامه هميشه از اولين مكان در حافظه كه يعني 0000H آغاز مي شود.عمل resetتاثيري بر محتواي RAMروي تراشه ندارد.
محتويات | ثبات ها |
0000H | شمارنده برنامه |
00H | انباره |
00H | ثبات B |
00H | PSW |
07H | SP |
0000H | PPTR |
FFH | درگاه 0-3 |
XXX 00000B | (8031/8051)IP |
XX000000B | (8032/8052)IP |
0XX00000B | (8031/8051)IP |
0X000000B | (8032/8052)IP |
00H | ثبات هاي تايمر |
00H | SCON |
00H | S F |
0XXXXXXXB | (HMOS)PCON |
0XXX0000B | (CMOS)PCON |
10-2 خلاصه دستورالعمل ها:
الف)دستورات محاسباتي:
دستور | عملوند | توضيح |
ADD | A,source | Add source to A |
ADD | A,#data | |
ADDC | A,source | Add with carry |
ADDC | A,#Data | |
SVBB | A,source | Subtract from A |
SVBB | A,#dare | With borrow |
INC | A | Ineremenr |
INC | Source | |
DEC | A | Decrement |
DEC | Source | |
INC | DTPR | Inerement DPTR |
MUL | AB | Mvltiply A 8B |
DIV | AB | Divide A by B |
DA | A | Decimel adjvst A |
ب)دستورات انتقال: | ||
دستور | عملوند | توضيح |
MOV | A,Source | Move source |
MOV | A,#Data | To dastination |
MOV | Dest,source | |
MOV | Dest,#data | |
MOV | DPTR,#data 16 | |
MOV C | A,@AtDPTR | Move from code |
MOV C | A,@Atpe | Memory |
MOVX | A,@Ri | Move from daca |
MOVX | A,@DPTR | Memory |
MOVX | @Ri.A | |
MOVX | @ DPTR,A | |
PusH | Direct | Push on to srack |
POP | Direct | Pop from stack |
XCH | A.source | Exchange bytes |
XEHD | A,@Ri | Exchang elow |
Order digits |
ج)دستورات منطقي:
دستور | عملوند | توضيح |
ANL | A,source | Logical AND |
ANL | A,#data | |
ANL | Direct,A | |
ANL | Direct,#data | |
ORL | A,source | Logical OR |
ORL | A.#data | |
ORL | Direct,A | |
ORL | Direct,#data | |
XRL | A,source | Logical XOR |
XRL | A,#data | |
XRL | Direct,A | |
XRL | Direct,#data | |
CLR | A | Elear A |
CPL | A | Complement A |
RL | A | Rotate Alefr |
RLC | A | (through c) |
RR | A | Rorare A right |
RRC | A | (throughe) |
SWAP | A | Swap nibbles |
د)دستورات بيتي:
دستور | عملوند | توضيح |
CLR | C | Clear c |
CLR | Bit | Clear bit |
SETB | C | Set C |
SETB | Bit | Set bit |
CPL | C | Complement C |
CPL | Bit | Complement bit |
ANL | C,bit | AND bit with C |
ANL | C,/bit | AND NOT bit with C |
ORL | C,bit | OR not bit with C |
Mov | C,bit | Mov bit to carry |
Mov | Bit,c | Mov carry to bit |
Jc | Rel | Jump if c set |
JNC | Rel | Jvmp if c notser |
JB | Bit,rel | Jump if bit set |
JNB | Bit,rel | Jump if bit not set |
JBC | Bit,rel | Jump if set then clear |
ه)دستورات انشعاب:
دستور | عملوند | توضيح |
ACALL | Addr11 | Call subroutine |
ACALL | Addr16 | |
RET | Return from svb | |
RETI | From interupt | |
AJMP | Jump | |
LJMP | Addr 16 | |
SJMP | Addr16 | |
JZ | Rel | |
JNZ | @ATDPTR | Jump if A=0 |
CJNE | Rel | If A not= 0 |
CJNE | Rel | Compare and Jump |
CJNE | A,data,rel | IF not equel |
CJNE | A,#data,rel | |
DJNZ | @ Ri,#data,rel | |
DJNZ | Rn,rel | Decrement and jump |
DJNZ | Dircct.rel | If not zero |
و)دستور NOP:
دستور | عملوند | توضيح |
NOP | – | No operarion |
راهنماي جدول:
RN: آدرس دهي ثبات،R0تا R7 مجاز است.
@Ri: آدرس غيرمستقيم به كمك R0 و R1 (آدرس حافظه داخلي يا SFRيا 256 بابت اول حافظه خارجي در R0 يا R1 قرار مي گيرد.)
direct:آدرس حافظه داخلي(00H الي 7FH يا نام يكي از SFRها مثل TMOD يا PO يا A كه جلوي عدد علامت #نباشد).
Dara:يك عدد ثابت 8 بيتي مثل #12H يا #24يا 0101b يا #1111يا #240 (اكتال)
Dara16:يك عدد ثابت 16 بيتي مثل #1234H
Addr11: يك آدرس 11 بيتي (مي تواند نام يك Lable و يا يك عدد 11بيتي در صفحه جاري كه علامت # لازم ندارد).
Addr16: يك آدرس 16 بيتي مستقيم (مي تواند نام يك Lable يا يك عدد 16 بيتي باشد و علامت #لازم ندارد).
Bit: عددي بين 00H الي 7FH (آدرس يكي از بيت هاي قابل آدرس كردن بيتي)يا نام بيت sfrهاي قابل آدرس دهي بيتي مثل tcon.5 يا p1.2
REL: يك عدد 8 بيتي علامت دار(كه در برنامه نام lable مقصد پرش است).
Sovrce: يكي از نمادهاي RA و @Ri و direct كه مقصد را نشان مي دهد.
تذكر: ميكروكنترلر 8X51 همانند هر پردازنده با كد 8 بيتي مي تواند تا 256 دستور داشته باشد كه كلاً 140 دستور يك بايتي و 91 دستور دو بايتي و 24 دستور 3بايتي دارد.براي كد A5H دستورالعمل تعريف نشده است.(140+91+24=255).
فصل سوم
1-3موتور پله اي و مشخصه هاي اساسي آن
شكل 301 مقطع عرضي ساختار يك موتور پله اي مدرن نمونه را نشان مي دهد.اين موتور به نام موتور رلوكتانس متغير تك پشته اي خوانده مي شود. ما ابتدا با استفاده از اين شكل نمونه عملكرد اين ماشين را مطالعه خواهيم كرد هستة استاتور داراي قطب يا دندانة برجسته مي باشد، روتور هم داراي 4 قطب است.هر هستة روتور و استاتور از جنس فولاد نرم هستند.سردسته سيم پيچي همان طور كه در شكل نشان داده شده،آرايش داده شده اند.
هر دسته داراي دو كلاف است كه بصورت سري متصل شده اند
يك دسته از سيم پيچي ها فاز ناميده مي شود و نتيجاً اين ماشين يك موتور سرفاز است.جريان از يك منبع تغذية DC از طريق كليدهاي III,II,I به سيم پيچي ها تأمين مي شود.در وضعيت(1)،سيم پيچي فاز I از طريق جريان كليد Iتغذيه مي شود يا به اصطلاح فني فاز I تحريك مي شود،شار مغناطيسي ماشيني از تحريك كه در فاصله هوايي واقع مي شود با پيكانهايي نشان داده شده است.در وضعيت (1)سيم پيچي فاز I از طريق جريان كليد I تغذيه مي شود،يا به اصطلاح فني فاز I تحريك مي شود،شار مغناطيسي ناشي از تحريك كه در فاصله هوايي واقع مي شود با پيكان هايي نشان داده شده است در وضعيت (1) دو قطب برجسته استاتور فاز I كه تحريك شده اند با دو دندانه از 4 دندانه روترو همرديف هستند.اين حالت از نظر ديناميكي يك حالت تعادل است هنگامي كه كليد II براي تحريك فاز IIعلاوه بر فاز I بسته مي شود،شار مغناطيسي در قطب هاي استاتور فاز II به حالت نشان داده شده در وضعيت (2) بوجود مي آيد و گشتاوري در جهت عكس ساعتگرد بعلت كشش در خط خميده ميدان مغناطيسي بوجود مي آيد.از اين رو روتور سرانجام به وضعيت (3) خواهد رسيد.
از اين رو روتور با يك زوايه ثابت مي چرخد كه زاويه پله خوانده مي شود كه در اين مورد 150با انجام هر عمل سوئيچينگ است.اكنون اگر كليد I براي تخليه انرژي فاز Iباز شود،روتور 150 ديگر براي رسيدن به وضعيت (4) حركت خواهد كرد. .
(شکل1-3)
پس موقعيت زاويه اي روتور را مي توان برحسب واحدهاي زاويه پله از طريق فرآيند سوئيچينگ كنترل كرد.اگر سوئيچينگ به ترتيب انجام شود،روتور با حركتي پله اي خواهد چرخيد،سرعت متوسط را هم مي توان از طريق فرآيند سوئيچينگ كنترل كرد.
امروزه، ادوات حالت جامد بعنوان سوئيچ هاي الكترونيكي در درايو يك موتور پله اي بكار مي روند و سيگنال هاي سوئيچينگ توسط IC هاي ديجيتال يا ريز پردازنده توليد مي شوند(شكل 102) همانطور كه در بالا ذكر شد،موتور پله اي يك موتور الكتريكي است كه ورودي الكتريكي ديجيتال را به يك حركت مكانيكي تبديل مي كند.در مقايسه با ديگر ادواتي كه مي توانند اعمال مشابه يا يكساني را انجام دهند،سيستم كنترلي كه از يك موتور پله اي بهره مي برد داراي چندين مزيت مشخصي به ترتيب زير است:
1- معمولاً به هيچ فيزيكي براي كنترل موقعيت يا كنترل سرعت نياز نمي باشد.
2- خطاي موقعيت جمع ناپذير است.
3- موتورهاي پله اي با تجهيزات ديجيتال مدرن سازكار هستند.
به اين دليل انواع و كلاس هاي مختلف موتورهاي پله اي در لوازم جانبي كامپيوتر،دستگاههاي خودكار سيستم هاي مشابه كار رفته اند
(شکل 2-3)
2-3 تاريخچه ابتدايي موتورهاي پله اي:
در شماره اي از JIEE چاپ سال 1927 مقاله اي با عنوان كاربرد الكتريسيته د رناوهاي جنگي وجود داشت و بخشي از اين مقاله يك موتور پله اي رلوكتانس متغير سه فاز از نوع فوق را تشريح مي كرد كه براي كنترل از را دور نشانگر جهت تفنگها و لوله هاي اژدر افكن در ناوهاي جنگي انگليسي بكار رفته بود.يك كليد گردان مكانيكي براي سوئيچينگ جريان تحريك به كار رفته بود.يك دور چرخش هندل شش پالس پله اي توليد مي كند كه باعث 900 حركت روتور مي شود.حركت روتور در پله هاي 150 به منظور رسيدن به دقت موقعيتي لازم كاهش مي يافت.
در اين مقاله اشاره شده بود كه در طراحي اين موتور پله اي ظاهراً ساده فاكتورهاي بسياري مي بايست مورد توجه قرار گيرند و احتياط هاي بسياري به منظور عملكرد مطلوب و مطمئن لحاظ شوند. اين ماشيني نياز به بست بالاي گشتاور به اينرسي افراد متحرك به منظور اجتناب از دست دادن پله دارد.و ثابت زماني نسبت اندوكتانس مدار به مقاومت،بايستي كوچك باشد تا به سرعت عملكرد بالايي دست يافت.اين مسائل هنوز هم در موتورهاي مدرن وجود دارند.
براساس مقاله هاي در IEEE transaction s on automatic control،موتورهاي پله اي بعدها در نيروي دريايي ايالات متحده با هدفي مشابه بكار گرفته شدند.با اينكه كاربردهاي عملي موتورهاي پله اي مدرن در دهة 1920 واقع شده اشكال اوليه روسيه موتورهاي رلوكتاس متغير به واقع از قبل وجود داشتند.در مقاله اي نوشتة Byrne آمده است: موتورهاي رلوكتانس از نوع پله اي كه اكنون بعنوان ادوات تعين موقعيت بكار مي روند مثل ماشينهاي بخار الكترو مغناطيسي موتورهاي الكترونيكي نيم قرن نوزدهم بودند.ما در اينجا به دو اختراع قابل ذكر در سال هاي 1919 و 1920 در انگلستان ميپردازيم.
(1) ساختار دندانه اي براي به حداقل رساندن زاويه پله.امتياز اختراعي در انگلستان در سال 1919 توسط يك مهندس عمران در آبردين،اسكاتلند،بنام C.L.walker به خاطر اختراع نوعي ساختار موتور پله اي اخذ شد كه قادر بود با زاويه هاي پله كوچك حركت مي كند هر يك ازقطب هاي برجسته داراي يك گروه دندانه كوچك است.دندانه هاي روتور در گام يكسان با دندانه هاي كوچك استاتوري مي باشند.تعداد دندانه هاي روتور در اينجا 32 مي باشند.هنگامي كه فاز I تحريك مي شود،گروههاي پزانه ها در اين فاز با برخي استاتور،همرديف مي شوند.در اين آرايش،دندانه هاي روتور و استاتور در فازهاي II و III بايستي به اندازه 3/1 گام دندانه در جهات متقابل ناهمرديف شوند.هنگامي كه جريان تحريك از فاز I به فاز II سوئيچ مي وشد،روتور در جهت ساعتگرد به اندازه يك زاويه پله كه در اين مورد750 /3 = 3/(32/360)مي باشند،خواهد چرخيد بهرحال اگر در جريان تحريك به فاز III سوئيچ شود،چرخش در حركت عكس ساعتگرد با همان زاويه كوچك خواهدبود.walker در مشخصات اختراع ثبت شده طرحي را براي ساخت نوعي از موتور پله اي كه امروزه به نام نوع رلوكتانس متغير چند پشته اي خوانهد مي شود به همراه طرح هايي براي ساخت يك موتور خطي ارائه كرد.بهرحال در دهة 1950 بود كه موتورهاي پله اي مدرن كه از اساس اين اختراع بهره مي بردند بصورت تجاري عرضه شدند
3- 3 پيشرفت سريع در دهة 1970:
پيش از آغاز دهة 1970 موتورهاي پله اي با عملكرد ديناميك بسيار خوب در دسترس بودند.پس از ورود به دهة 1970 رشد سريعي در تعداد موتورهاي پله اي بكار رفته در صنعت كامپيوتر مشاهد شد. و اين منجر به توليد انبوه موتورها شد.در ايالات متعهده آمريكا،ساخت چاپگرهاي داراي موتورهاي پله اي و سرو موتورهاي DC بصورت تجارتي مخاطره آميز درآمد.
چاپگرهايي كه سيستم هاي كنترل موتور الكتريكي را در برداشتند،با بكارگيري مدارهاي مجتمع بجاي مكانيزم هاي پيچيدة معمول در گذشته، براي مهندسيني جوان داراي جاذبه قوي بودند زيرا آن ها امكان بهره گيري آزاد از دانسته هاي الكترونيك شان را مي داد.گرايش هاي مشابهي در ساير كشورهاي صنعتي در سال هاي نخستين 1970 ديده شد.انواع برجستة موتورهاي پله اي ساخته شده براي استفاده در لوازم جانبي كامپيوتر در طول اين دهه شامل موارد زير مي شود:
موتورهاي دو فاز يا پله اي 1180
موتورهاي هيبريد دوفاز با پله هاي 20 ، 50/2، 50
موتورهاي آهنرباي دائمي با پله هاي 50/7، 450 ، 900
موتورهاي رلوكتانس متغير سه و 4 فاز با پله هاي 50/7 ، 150
موتورهاي رلوكتانس متغير با 128 يا 132 پله بردور.
دستة آخر شامل موتورهاي تك منظوره براي چابگر سريال مي وشد كه براي انطباق تعداد كاراكترهاي بكار رفته در خط طراحي شده است.
در سال هاي نخستين دهة 1970، ماشين هاي نقشه كشي خود كار با بهره گيري از موتورهاي پله اي سطحي از نوع هيبريد ظاهر شدند.در اواخر دهة 1970 بود كه موتورهاي خطي از نوع رلوكتانس متغير به منظور انتقال حامل در پرينترهاي سريال بكار گرفته شدند.بهرحال كاربرد موتورهاي خطي همانگونه كه از ابتدا انتظار مي رفت بدليل اندازة بزرگ و انعطاف پذيري در طراحي ترقي نكرده اند.در موتورهاي پله اي بكار رفته از ماشين هاي NC نيز پيشرفت حاصل شد.در سال 1973 Fanuc itd. با رهبري S.Inaba به ساخت يك موتور پله اي توان بالاي منحصر به فرد نائل شد.اين موتور،يك موتور رلوكتانس متغير چند پشته اي است.اما از ساختار ساندويچي پيشنهاد شده در مرجع براي اعمال گشتاوري بالا بهره مي برد.از اين موتور در ماشين هاي با كنترل عددي استفاده شده است.بهرحال به زودي اين موتور با يك سروموتور DC جايگزين شد.يك دليل براي اين كار محدوديتي است كه موتورهاي پله اي در دستيابي به حركت پاياني آرام دارا هستند.دليل ديگر نيز پيشرفت هاي حاصل شده در سيستم هاي درايو ديجيتال براي موتورهاي DC بود.در زمينة كامپيوترهاي هم،سرو موتورها در جايي كه سرعت هاي بالا و كاهش افزايش سريع ضروري ست بكار گرفته شده اند.بعنوان مثال د ردرايوهاي گردونة ديزي و محورهاي گردانندة نوار مغناطيسي.اما در موتورهاي DC كمر تاتورو جارويك ها در برابر سايش مكانيكي به دور هستند و قابليت اعتماد بالايي را فراهم مي كنند.
4-3مينياتوري شدن بعلت پيشرفت در مغناطيس و تكنولوژي كاربردي آن:
توليد موفقيت آميز آهنرباي از نوع كمياب در زمين طراحي مينياتوري موتور پله اي را به پيش برد.هنگامي كه آلينكو در آهنرباي اصلي موتورهاي پله اي هيبريد بكار ميرفت، كوتاهترين طول آهنربا بايتس mm10 باشد.در موتورهاي بكار رفته تعيين موقعيت مغناطيسي يك درايو در سبك سخت،آهنربا ديسكي به ضخامت تنها mm1 يا در حدود آن مي باشد.به علاوه روش عناصر محدود در آناليز مدارهاي مغناطيسي منجر به كاهش اندازة ماشين شد.
5-3طرح كلي موتورهاي پله اي مدرن:
1-5-3 سيستم هاي كنترل حلقه باز:
بطور كلي موتورهاي پله اي توسط مدارات الكترونيك،اكثراً با متبع تغذيه DC كار مي كنند.موتور پله اي در مقايسه با موتورهاي معمولي ACيا DC كه اكثراً بطور مستقيم از يك منبع تغذيه درايو مي شوند،يك موتور منحصر به فرد مي باشد.به علاوه موتورهاي پله اي در كنترل سرعت و موقعيت بدون حلقه هاي فيزيك پر هزينه كاربرد پيدا مي كنند.اين روش درايو به نام درايو حلقه باز خوانده مي شود.
با اينكه كنترل حلقه باز از نظر اقتصادي روش درايو با صرفه اي است،از محدوديت رها نيست.بطور مثال چرخش روتور در محدوده هاي سرعت مشخص به شكل نوساني و ناپايدار در مي آيد و به خاطر اين مشخصة رفتاري،سرعت و شتاب يك موتور پله اي كنترل شده توسط يك طرح حلقه باز نمي تواند به سرعت يك موتور DC درايو شده توسط يك طرح كنترل – فيزيك باشد.از اين رو در تلاش براي گسترش محدوده هاي كاربردي،توقف نوسان مسأله اي است كه بايستي حل شود.كنترل حلقه – بسته روش درايو موتور بدور از ناپايداري بود،و قادر به افزايش سرعت سريع مي باشد.
تركيب سيستم:
براي درك تركيب اساسي سيستم درايو موتور پله اي،درايو يك نوار پانچ را كه در ماشين هاي كنترل عددي بكار رفته بررسي مي كنيم.يك پانچ كنندة نوار از يك موتور پله اي براي فرستادن نوار كاغذ استفاده مي كند.دستورالعمل هاي كار ماشين هاي كنترل عددي به شكل سوراخ هاي ايجاد شده توسط اين وسيله ذخيره شده اند.موتور پله
اي بكار رفته براي اين منظور معمولاً يك موتور دو – سه يا چهار فاز مي باشد.در اينجا يك موتور سه فاز شامل سه دسته سيم پيچي را بررسي مي كنيم
مهمترين ويژگي موتور پله اي اين است كه با يك زاوية ثابت به ازاي هر پالس اعمال شده به توالي ساز منطقي مي چرخد مقدار نامي اين زاويه (درجه) زاوية پله خوانده مي شود.با دريافت يك پالس دستور پله،توالي ساز منطقي فازي را كه بايد تحريك (يا انرژي دار) شود و فازي را که بايستي تخليه انري شود تعيين مي کند و سيگنالهايي به درايور موتور كه طبقه كنترل كننده جريان تحويلي به موتور ميباشد، ميفرستد. توالي ساز منطقي معمولا با تراشههاي مدار مجتمع TTL يا CMOS ساخته ميشود. هنگاميكه پتانسيل يك كانال خروجي توالي ساز منطقي در سطح H (= بالا) ميباشد، درايور قدرت براي تحريك فاز متناظر سيم پيچي عمل ميكند. بطور مشابه، اگر خروجي در سطح L باشد، فاز همشماره تحري نميشود، يا خاموش ميشود. همانطور كه در شكل 2.3 نشان داده شده، اگر موتور با ترتيب تحري …. 1-2-3-1 در جهت ساعتگرد كه (CW=) حركت كند، جهت چرخش با ترتيب عكس ….. 1-3-2-1 در جهت عكس ساعتگرد (CCW=) خواهد بود. در سيستم پانچ نوار، ترتيب معمولا براي فرستادن نوار در يك جهت ثابت است. بطور كلي، هيچ قاعده مشخصي براي تعيين اينكه كدام جهت ساعتگرد يا عكس آن است وجود ندارد، موتوري كه از يك سر در جهت ساعتگرد ميچرخد اگر از سر ديگر ديده شود بنظر ميرسد كه در جهت عكس ساعتگرد حركت ميكند. جهت چرخش معمولا با تطبيق بخشهاي مورد نظر معين ميشود. در اين جا فازها با Ph1، Ph2، Ph3 و غيره نشان داده شدهاند. يا PhA، PhB براي برخي موتورهاي دو فاز. تحريك بكار رفته در شكل 2.3 تحريك تكفاز يا يكفاز خوانده ميشود، و به اين معني است كه به يك فاز از سه فاز ( يا از چهار فاز در يك موتور چهار فاز) در هر لحظه توان تحويل داده ميشود. تحريك تكفاز اغلب به منظور تشريح اصول اساسي موتورهاي پلهاي ذكر ميشود. اما هميشه بهترين روش درايو كردن نيست.
.(شکل 3-3)
2-5-3 سيستم هاي كنترل حلقه –بسته:
درايو حلقه باز جالب بوده و بطور گسترده اي در كاربردهاي كنترل سرعت و موقعيت مقبوليت دارد.بهرحال عملكرد يك موتور پله اي در درايو حلقه – باز محدود است،بطور مثال يك موتور پله اي درايو شده به روش حلقه – باز هنگامي كه فركانس قطار پله خيلي بالاست يا اينرسي بار خيلي سنگيني است قادر به دنبال كردن فرمان پالس نيست بعلاوه حركت موتور در درايوهاي حلقه ب-باز تمايل به نوساني شدن دارد.
عملكرد يك موتور پله اي بااستفاده از فيزيك موقعيت و يا فيزيك سرعت براي تعيين فازهاي مناسب براي سوئيچينگ در زمان بندي هاي مناسب تا حد بسيار زيادي بهبود مي يابد اين نوع از كنترل بنام درايو حلقه – بسته خوانده مي شود.در كنترل حلقه – بسته براي تشخيص موقعيت روتور نياز به يك سنسور موقعيت مي باشد،بعنوان مثال يك سنسور معمول،امروزه انكدر نوري بكار مي رود و معمولاً به محور موتور ترويج مي شود در يك مكانيسم پيشرفته تر،بجاي يك سنسور مكانيكي اضافي،موقعيت روتور با مشاهده شكل موج هاي جريان سيم پيچي هاي موتور تشخيص داده مي شود.كنترل حلقه بسته نسبت به كنترل حلقه – باز نه تنها در اينكه هيچگاه نقص در پله اتفاق نمي افتد بلكه در اينكه حركت سريع تر وروان تر است نيز مزيت دارد.
فصل چهارم
نمونه عملي از يك ربات مسير ياب ساده
1-4 مقدمه
در اين فصل يك نمونه ساده از يك ربات مسير ياب را كه با حداقل امكانات قابل ساخت است معرفي مي كنيم. عملكرد اين ربات به اين صورت خواهد بود كه مي تواند بر روي امتداد خطي به پهناي يك نوار چسب 15mmكه رنگ آن با رنگ زمينهتفاوت دارد (مثلا سياه با زمينه سفيد و يا برعكس)حركت كند و خط را دنبال نموده و حتي پيچهاي با زاويه بزرگتر از 90 درجه را نيز تعقيب كند. در اين ماشين ساده بيشتر تاكيد به هوشمندي آن مي باشد تا دقت در حركت. چرا كه اين ماشين ممكن است دقيقا بر روي خط حركت نكند اما عمل دنبال كردن خط را با هوشمندي خاصي انجام مي دهد. البته مي شد كه حركت ماشين را نيز به صورتي دقيق تر و با خطاي بسيار كمتري طراحي نمود اما مكانيك پيچيده تري را شامل مي شد كه طراحي و ساخت آن احتياج به فردي متخصص در اين زمينه است.
اين ربات مستقل از سه جزء مكانيكي, سخت افزاري و نرم افزاري مي باشد.
2-4 مكانيك ربات
در طراحي مكانيك اين ماشين از عملكرد تانك در حركت ايده گرفته شده است.همانطور كه مي دانيد تانك داراي دو تسمه در طرفين مي باشد كه براي حركت نيرويي تسمه ها را به گردش در مي آورد و باعث حركت تانك به جلو مي شود و در هنگام گردش به راست تسمه سمت راستي از حركت باز مي ايستد و با حركت تسمه سمت چپ تانك به طرف راست متمايل مي شود. و همين طور براي حركت به سمت چپ تسمه سمت چپ متوقف و تسمه سمت راست به حركت ادامه مي دهد.
در مكانيك اين ماشين نيز از يك تانك اسباب بازي كه شامل دو موتور معمولي الكتريكي (يكي براي حركت تسمه راست و ديگري براي حركت تسمه سمت چپ) مي باشد استفاده شده است.شايد اين سوال به وجود آيد كه چرا در موتور معمولي از step موتور استفاده نشده است؟پاسخ اين است كه step موتور در جاهايي كه به حركت هاي ريز با دقت و يا در جاهايي كه زاويه گردش از دقت خاص بايد برخوردار باشد استفاده مي شود.مثلا اگر در اين ربات از مكانيكي شبيه مكانيك اتومبيل كه داراي محور فرمان در چرخ هاي جلو مي باشد استفاده مي كرديم آنگاه براي چرخش به راست و يا چپ چون ميزان چرخش فرمان پارامتر متغيري بود بايد از step موتور استفاده مي شد . اما در تانك به علت اين كه چرخش به مدت زمان چرخش موتور و اصطكاك ماشين با زمين بستگي دارد.پارامتر قابل اندازه گيري نيست پس بايد به صورت پويا كنترل شود مثلا براي چرخش30درجه اي به راست ما نمي دانيم كه موتور سمت چپ بايد چند دور بزند كه تانك 30 درجه به راست انحراف يابد پس بايد موتور آنقدر دور بزند تا تانك در مسير مورد نظر قرار گيرد.
3-4 سخت افزار
هر سيستم كنترلي شامل يك دسته ورودي پردازشگر و خروجي مي باشد كه پردازشگر با توجه به ورودي ها تصميم گرفته و عمل خاص را توسط خروجي به محيط بيرون اعمال مي كند.
اين ماشين مسير يابي نيز مانند سيستم هاي كنترلي ديگر شامل micro controller input وoutput مي باشد. كه هر يك را به ترتيب توضيح مي دهيم.
(شکل 1-4)
Input 1-3-4
ورودي اين سيستم همان سيگنال هايي است كه از قسمت بينايي ماشين وارد ميكرو كنترلر مي شود. در اينجا براي ديدن و تميز دادن خطي كه قرار است دنبال شود از سه سنسور مادون قرمز استفاده شده است. كه هر يك از اين سنسورها شامل دو قسمت فرستنده و گيرنده مي باشد كه در كنار هم قرار دارند و به اين ترتيب از آنها در اين مدار استفاده شده است كه فرستنده همواره در حال فرستادن نور مادون قرمز مي باشد و در صورت برخورد مادون قرمز با رنگ روشن منعكس شده و به گيرنده مي رسد و گيرنده قطعه اي است كه با رسيدن نور مادون قرمز به آن مقاومت آن كاهش يافته و در حقيقت در مدار مانند يك سوئيچ عمل مي كند(شکل2-4).
اگر گيرنده نور مادون قرمز را دريافت نکند سنسور مانند يک سوييچ باز عمل کرده ودر نتيجه ورودي گيت not ا ز طريق پتانسيومتر 1 شده و خروجي آن صفر مي شود که عدد صفر براي ميکروکنترلر تمايانگر رنگ تيره در مقابل سنسورمي باشد.
(شکل 3-4)
و بر عكس اگر سنسور مادون قرمز را دريافت كند گيرنده مانند يك سوئيچ بسته عمل كرده و ورودي گيت not صفر مي شود كه در نتيجه خروجي آن عدد يك را به ميكرو كنترلر تحويل ميدهد.
(شکل4-4)
به بيان ديگر در مقابل سنسور رنگ روشن وجود دارد.
علت استفاده از اين سنسور براي بينايي در اين ماشين اين است كه در اين صورت 0ربات تنها تعقيب خط مد نظر بوده و كافي است كه ماشين خط سفيد را روي زمينه سياه و يا بالعكس تميز دهد و اين سنسورها نياز ما را در اين زمينه برآورده مي سازند و نيازي به وسايل پيچيده تر مانند دوربين هاي ديجيتال و غيره نمي باشد.
همانطور كه گفته شد در اين ماشين از سه سنسور مادون قرمز براي پيدا كردن مسير استفاده شده است كه اين سه سنسور با فاصله هاي يكسان (تقريبا 1cm) در يك خط در كنار هم و در جلوي ماشين نصب شده اند.
فاصله بين سنسورها به پهناي خط بستگي دارد و بايد طوري باشد كه اگر خط از بين هر جفت از آنها عبور كند در هر حالت حداقل يكي از آن دو سنسور فعال باشد(خط را ببيند) اگر فاصله سنسور ها خيلي كم باشد دقت ماشين بيشتر شده و از طرفي ميدان ديد كاهش مي يابد و ماشين سعي بر آن دارد كه درست روي خط حركت كند كه اين باعث كندي حركت ماشين و چپ و راست شدن مداوم آن براي عمود شدن برخط مي شود كه زياد مطلوب نمي باشد از طرفي اگر فاصله سنسورها بيش از حد مجاز باشد آنگاه خط دوربين سنسورها گم مي شود.
حال كه سنسورها با دقت در جلوي ماشين نصب شده مي توان از سيگنال هاي خروجي آنها وضعيت خط را نسبت به سنسورها و در نتيجه نسبت به ماشين تشخيص داد و ماشين را در جهت اصلاح حركت و تعقيب خط هدايت كرد.حال اگر خروجي سنسورها به صورت سه بيت در نظر بگيريم كه سنسور سمت راست بيت كم ارزش و سنسور سمت چپ بيت با ارزش را تشكيل دهد به عنوان مثال داريم:
در اينجا چون خط سفيد و زمينه سياه است پس سنسورها عدد 2را كه همان 010 باينري است نشان مي دهند كه اين حالت ايده آل است و معني آن اين است كه ماشين بايد مستقيم حركت كند و اگر سنسورها عدد1 را نشان دهند معني آن اين است كه سنسور سمت راست خط را مي بيند پس بايد براي اصلاح حركت ماشين به سمت راست حركت كند تا حالت ايده آل ايجاد گردد چون سه سنسور داريم 8 حالت ممكن وجود دارد كه هر حالت تعبير خاصي دارد كه در قسمت نرم افزاري توضيح داده خواهد شد.
2-3-4 Micro controller
ميكرو كنترلر همانطور كه از نامش پيداست نقش كنترل كننده را بر عهده دارد و يا توجه به پارامترهاي ورودي خروجي مطلوبي را ايجاد مي كند و در واقع مهمترين بخش سيستم محسوب مي شود.
در اين ماشين از 8951, micro controllerاستفاده شده است كه در واقع همان 8051 است با اين تفاوت كه به جاي bytek4 EPROM موجود در 8051 4kbyte,E2PROM در 8951 وجود دارد كه نوشتن و پاك كردن در آن از 8051 آسانتر است در بقيه موارد و مشخصات پايه ها همانند 8051 است و توضيحات بيشتر آن در فصل ميكروكنترلرها آورده شده .سه بيت از پورت p1 (p1.0,p1.1,p1.2 ) به عنوان ورودي به سنسورها و دو بيت p2(p2.1 p2.0 ) به عنوان خروجي به موتورها متصل مي شود .
(شکل 5-4)
يك كليد نيز به عنوان ورودي ديگري براي ماشين در نظر گرفته شده است كه نقش stasrt و راه انداز ربات را دارد و بيت p3.0 كه ورودي تعريف شده است را تحت تاثير قرار مي دهد.ورودي بعدي يك جامپر است و براي مشخص نمودن رنگ خط در نظر گرفته شده است و بيت p3.7 را در وضعيت صفر يك قرار مي دهد. به اين صورت كه اگر خط سفيد و زمينه تيره باشد جامپر را در وضعيتي قرار مي دهيم كه p3.7 يك شود و اگر خط تيره و زمينه روشن است با جابجا كردن جامپر p3.7 را به زمين وصل مي كنيم.
كليد بعدي كليدي براي reset كردن ماشين است و باعث توقف ماشين مي شود و در واقع عمل stop را در ماشين انجام مي دهد و تا زماني كه كليد start زده نشود ماشيني حركت نخواهد كرد. (شکل 6-4)
3-3-4 Output
خروجي ميكروكنترلرها همانطور كه گفته شد به دو موتور الكتريكي اعمال مي شود و باعث چرخاندن آنها و حركت ماشين مي شود. به اين صورت كه اگر موتور سمت راست بچرخد ماشين به سمت چپ و اگر موتور سمت چپ بچرخد ماشين به سمت راست حركت مي كند و در حالت سوم اگر هر دو موتور با هم بچرخند ماشين به صورت مستقيم به حركت ادامه ميدهد.
همانطور كه گفته شد p2.1,p2.0 رابط بين ميكروكنترلر و موتورها مي باشند كه البته در اين بين از مداري شامل دو ترانزيستور براي تامين جريان مورد نظر موتورها استفاده شده است. (شکل 7-4)
ترانزيستور اول BC238 مي باشد كه يك ترانزيستور NPN است و در حالت switching عمل مي كند يعني با يك شدن بيس آن كلكتور راميتور مانند كليد به هم راه مي دهند و در نتيجه بيس ترانزيستور دوم يعني BD140 كه يك ترانزيستور PNP است صفر مي شود يعني ترانزيستور به حالت اشباء رفته و مانند switch اميتور به كلكتور راه مي دهد كه در نتيجه ولتاژ 9v در دو سر موتور بر قرار مي گردد و موتور راه اندازي ميشود.
نقشه كامل مدار در زير آمده است:
(شکل 8-4)
آي سي 7805 يك IC رگولاتور بوده كه براي تثبيت ولتاژ بروي 5 ولت كه براي عملكرد ميكروكنترلر لازم مي باشد بكار رفته است. چرا كه در اين مدار از دو ولتاژ 9و5 ولت استفاده شده كه ولتاژ 5 ولت براي تغزيه مدار و ولتاژ 9 ولت براي راه اندازي موتورها بكار مي رود و 7805 وظيفه تبديل ولتاژ 9 به 5 را به عهده دارد.
پتانسيومترها موجود بر روي سنسورها براي تغيير ميزان حساسيت سنسورها مي باشد به عنوان مثال براي تميز دادن خط سياه از زمينه سفيد حساسيت زيادي لازم نيست اما براي تميز دادن خط سفيد از زمينه خاكستري بايد حساسيت سنسورها را بيشتر كرد يعني مقاومت پتانسيومترها را افزايش مي دهيم.
سه LED قرار داده شده بر روي پورت p1 صرفا به عنوان نمايشگر بوده و براي تنظيم حساسيت سنسورها به كار مي آيد.
4-4 نرم افزار
هر سيستم ميكروكنترلري علاوه بر سخت افزار و مدارات واسط نياز به برنامه اي براي انجام دارد. در واقع ميكروكنترلرها برنامه را به ترتيب از ROM خوانده و انجام مي دهد و به اين ترتيب عمل كنترل تحقق مي يابد.
يك برنامه زبان اسمبلي توسط ميكروكنترلرها قابل اجرا نيست و پس از نوشته شدن بايد به زبان ماشين ترجمه شود. برنامه اي كه اسمبلر خوانده مي شود نمادهاي دستورالعمل را كه به كدهاي دودويي زبان ماشين تبديل مي كند و linker برنامه اي است كه بخش هاي مختلف برنامه را از فايل هاي مجزا تركيب كرده و آدرس حافظه اي را كه برنامه ممكن است از آنجا انجام شود مي سازد. (شکل 9-4)
5-4 نوشتن برنامه ربات مسيرياب
پس از آنكه مدار سخت افزاري آماده شد حال بايد حالت هاي مختلف ورودي را در نظر گرفته و براي هر حالت زمان لازم را به صورت برنامه بنويسيم.همانطور كه گفته شد در اين ماشين سه سنسور مادون قرمز براي پيدا كردن مسير در جلوي ماشين نصب شده است كه نقش ورودي را براي ميكروكنترلر دارد پس 2 به توان 3 يعني 8 حالت ممكن است اين سه سنسور به خود بگيرد.
1-5-4 حالت هاي ممكن:
اگر زمينه سياه و خط سفيد باشد بهترين حالت به صورت زير مي باشد 000(0) يعني هيچ يك از سنسورها خط را نمي بينند و در واقع ماشين به انتهاي مسير رسيده است و يا از مسير خارج شدهاست.
حالت 001 (1) يعني سنسور سمت راست روي خط قرار دارد و معني آن اين است كه يا خط به سمت راست پيچيده است و يا ماشين به سمت چپ منحرف شده است.
حالت (2)010 حالت ايده آل مي باشد و مفهوم آن اينست كه سنسور وسط روي خط مي باشد و ماشين دقيقا روي مسير است .
حالت 011(3) در اين حالت مسير به سمت راست متمايل شده است مثلا پيچ 90 درجه به سمت راست.
حالت (4)100 در اين حالت سنسور سمت چپ خط را مي بيند يعني مسير به سمت چپ پيچيده شده است و يا ماشين به سمت راست منحرف شده است.
حالت 101(5) در اين حالت سنسورهاي چپ و راست خط را مي بينند ولي يك تناقض مي باشد مگر آنكه ماشين به دوراهي رسيده باشد .
حالت 110(6) چون سنسور وسط و سمت چپ خط را مي بيند معني اين اينست كه مسير به سمت چپ پيچيده شده است.
حالت 111(7) در اين حالت كه آخرين حالت ممكن نيز مي باشد هر سه سنسور خط را مي بينند و روي خط قرار دارند و اين به پهناي خط تناقض دارد پس تنها در يك صورت امكان پذير است كه ماشين به يك مسير عمود بر مسير خود رسيده باشد.
حال اگر قرار باشد كه رنگ زمينه سفيد و رنگ خط سياه باشد در سه بيت به دست آورده از سنسورها جاي صفرها با يك و جاي يك ها با صفر عوض مي شود يعني بر خلاف حالت قبل كه عدد يك نشانگر خط بود و در اين حالت عدد صفر نشانگر خط مي باشد پس براي راحتي كار كافي است اين سه بيت را not منطقي كرد. سپس همان تعبيرهايي كه براي خط سفيد بيان كرديم در مورد خط سياه نيز بيان مي كنيم به عنوان مثال براي خط سياه اگر خروجي سنسورها حالت 111(7) باشد بعد از not شدن عدد حالت 000(0) خواهد شد كه نشان مي دهد هيچ سنسوري روي خط نيست و ماشين يا به انتهاي خط رسيده و يا از آن خارج شده است.
حال بايد پاسخ هاي لازم را براي هريك از 8 حالت ممكن در نظر بگيريم يعني هنگامي كه ماشين روي خط قرار دارد و تنها سنسور وسط فعال است(حالت2 ).
ماشين به حركت مستقيم خود ادامه مي دهد يعني هر دو موتور فعال باشند كه لازمه آن اين است كه عدد (0110)3 در پورت شماره (p2)2 نوشته شود. چرا كه p2.0 به موتور سمت چپ و p2.1 به موتور سمت راست فرمان مي دهد. و هنگاميكه مسير به سمت راست متمايل مي شود يعني عدد 1تا 3 در p1 ظاهر مي شود بايد موتور سمت چپ فعال گردد يعني در p2 عدد 1 قرار گيرد و در صورتيكه مسير گردش به چپ باشد (عدد 4 يا 6 در p1) بايد موتور سمت راست فعال شود و عدد 2 در p2 قرار گيرد .
حالت بعد حالتي است كه ماشين به دوراهي مي رسد يعني عدد 5 در p1 قرار مي گيرد در اين صورت عدد 0 در p2 نوشته مي شودو ماشين توقف خواهد كرد.
دو شرط توقف ديگر نيز وجود دارد يكي هنگامي كه ماشين به انتهاي خط مي رسد و در واقع خط تمام مي شود حالت 0 و ديگري زماني كه ماشين به حالت 7 مي رسد كه در اين حالت نيز بايد عدد صفر در p2 قرار گيرد تا هر دو موتور غير فعال شوند.
حال با توجه به فلوچارت نوشتن برنامه كار ساده اي است اما به دليل اينكه ماشين صرفا دنبال كننده خط است و از طرفي به دليل دقيق نبودن قطعات مكانيكي ربات ممكن است در بعضي مواقع مثلا در سر چرخش ها به ميزان كمي از مسير خارج شود و به همين دليل سنسورها خط را گم مي كنند كه براي اصلاح آن بايد برنامه را به گونه اي تغيير داد كه خطاي به وجود آمده در اين رابطه را پوشش دهد. در حقيقت برنامه را هوشمند تر كرد.تنها در دو حالت از 8 حالتي كه سنسورها نشان ميدهند امكان بروز خطا در تصميم گيري توسط ميكرو كنترولرميباشد و آن در حالتهاي 000 و111 يا به عبارتي حالت هاي 0 و7 ميباشد كه در آنها ابهام وجود دارد كه آيا ربات به انتهاي مسير رسيده است و يا از مسير خارج شده است؟
و در حالت 7 يعني حالتي كه همه سنسورها روي خط هستند اين ابهام وجود دارد كه ماشين به يك دو راهي رسيده است ويا ربات در اثر چرخش به موقعيتي رسيده كه هرسه سنسور روي مسير قرار دارند.
2-5-4 رفع اشكال
براي رفع اشكال هاي بالا برنامه را كمي هوشمند تر نموده و كاري كرديم كه در صورت بروز حالت هاي 0 و 7 ميكروكنترلر با توجه به حالت هاي قبل متوجه شود كه كدام يك از حالات داراي ابهام صحيح تر است و بعد تصميم بگيرد به اين صورت كه مثلا اگر ماشين در حال حركت مستقيم بود(حالت 2 ) و بعد خط را گم مي كند (حالت 0)يعني ماشين به انتهاي مسير رسيده و بايد توقف كند اما اگر ماشين در حالت گردش به چپ يا راست بود و سپس خط را گم كند مفهوم آن اين است كه ماشين از مسير خارج شده و براي اصلاح آن ميكروپروسسور همان عكس العمل قبل (عمل چرخش) را ادامه مي دهد تا بالاخره سنسورها خط را پيدا كنند پس در اينجا لازم به ذكر است كه انتهاي مسير نمي تواند دقيقا بعد از يك پيچ باشد بلكه حتما بايد ماشين مسيري مستقيم را طي نموده و بعد به انتهاي مسير برسد در غير اين صورت ماشين انتهاي مسير را تشخيص نمي دهد و متوقف نخواهد شد در حالت 7 نيز ميكروكنترلر را با توجه به حالت قبل تصميم گيري مي كند يعني اگر ماشين در حال حركت مستقيم بوده و سپس حالت 7 ايجاد شده است يعني ماشين به دو راهي رسيده و بايد متوقف شود و اگر در حال گردش به چپ و يا راست به حالت 7 رسيده بايد به حركت قبلي خود تا زماني كه از اين حالت خارج شود ادامه دهد.در كل اينگونه خطاها و خارج شدن از مسير در صورتي به وجود مي آيد كه فاصله پيچ هاي مسير از يكديگر كمتر از طول ماشين باشد چرا كه هنوز ماشين پيچ قبلي را كاملا طي نكرده و كاملا روي خط قرار نگرفته است تغيير مسير ديگري را مي بيند و اين باعث خروج ماشين از خط خواهد شد . براي پياده سازي برنامه جديد لازم است كه عكس العمل ميكروكنترلر در هر لحظه در رجيستري ذخيره شود تا در حالت هاي 0 و 7 مورد استفاده قرار گيرد سپس فلوچارت جديد به صورت زير خواهد بود.
6-4برنامه
ORG 00H
MOV P2,#00H
MOV R1,#00H
WAIT_HIGH: JNB P3.0,WAIT_HIGH
WAIT_LOW: JB P3.0,WAIT_LOW
START:
MOV A,P1
ANL A,#07H
JB P3.7,WHITE_LINE
CPL A
WHITE_LINE:
CJNE A,#00H,STATE1
MOV P2,R1
SJMP START
STATE1:
CJNE A,#01H,STATE2
MOV P2,#01H
MOV R1,#01H
SJMP START
STATE2:
CJNE A,#02H,STATE3
MOV P2,#03H
MOV R1,#00H
SJMP START
STATE3:
CJNE A,#03H,STATE4
MOV P2,#01H
MOV R1,#01H
SJMP START
STATE4:
CJNE A,#04H,STATE5
MOV P2,#02H
MOV R1,#02H
SJMP START
STATE5:
CJNE A,#05H,STATE6
MOV P2,#00H
MOV R1,#00H
SJMP START
STATE6:
CJNE A,#06H,STATE7
MOV P2,#02H
MOV R1,#02H
SJMP START
STATE7:
CJNE A,#07H,START
MOV P2,R1
SJMP START
END
7-4 توضيح برنامه
عبارت ORG00H جزء دستورات نمي باشد و تنها براي اسمبلر معنا دارد و باعث مي شود اسمبلر نوشتن كدهاي برنامه را در ROM از خانه ooH آغاز كند.
OoH # وmov p2 :عدد ooH را در پورت p2 قرار مي دهد.
(موتورها غير فعال مي شوند)
: mov R1,#ooHعدد ooH را در رجيستر R1 قرار داد و غير فعال بودن موتورها را نشان مي دهد.
Wait-high يك lable مي باشد Wait-high و JNB,P3.0 باعث مي شود كه تا زماني كه P3.0 به سطح منطقي يك نرفته است ميكروكنترلر در اين خط منتظر بماند و P3.0 زماني به سطح 1 مي رسد كه كليد start فشرده شود و بعد از آن ميكروكنترلر در خط بعد منتظر صفر شدن P3.o مي ماند يعني منتظر مي ماند تا شخص كليد start را رها كند. سپس برنامه شروع به كار خواهد كرد و در يك حلقه بي پايان مي افتد كه تنها راه خلاصي از آن فشردن كليد stop و reset كردن ميكروكنترلر است در ابتداي اين حلقه ابتدا عدد سنسورها يعني پورت P1 خوانده شده و در accumulator قرار مي گيرد سپس با عدد AND,07H منطقي مي شود تا ساير بيت ها بعد از سه بيت كم ارزش صفر شوند.حال ميكروكنترلر با مراجعه به جامپر (P3.7) مي خواهد بداند كه خطي را كه بايد دنبال كند سفيد است يا سياه و اگر خط سياه باشد يعنيP3.7 صفر باشد اكومولاتور را not مي كند و سپس تصميم گيري مي نمايد و به اين ترتيب عمل مي كند كه عدد اكومولاتور را به ترتيب با تمام حالات ممكن مقايسه مي كند تا به حالت مورد نظر برسد سپس پاسخ لازم را نسبت به آن حالت و پاسخ قبلي كه در R1 وجود دارد اعمال مي نمايد و p2 را عدد دهي مي كند.
منابع:
1– ماشين بينايي و ا صول پردازش ديجيتالي تصويرLOUIS J.GALBIATI,JR
ترجمه دکتر خليل خليلي
2- ميکرو کنترلر 8051 مهندس فيض ا.. خاکپور
3- ميکرو کنترلر 8051MAKENZI.I.SCOTT ترجمه مهندس حميد رضا رضايي نيا و مهندس پيمان در بندي
4- طراحي وتحليل مدار هاي منطقي ديجيتال VICTOR,P.NELSON
ترجمه مهندس حامد محمد حسيني
5-موتورهاي پله اي وکنترل ميکرو پروسسوري آنهاKENJO,TAKASHI ترجمه مهندس نويد تقي زادگان و مهندس اميد يوسف پور
[1]Transition
[2]Transistor-Transistor logic
[3]I/O Port
[4]Timer/counter
[5]Serial-interface
[6]Boolean processo
[7]bit-addressable
[8]On-chipRom
[9]low power CMOs
[10]Solenoids
[11]external code memory
[12]external data memory
[13]memory cycle
[14]Machine Cycle
[15]On.chip oscillator
[16]prot latch
[17]low power schttkg TR
[18]Pull-up resister
[19]read latch
[20]read pin
[21]spe cial Function Registers
[22]memory mapped
[23]Accumulator
[24]registor baanks
[25]Program status word
[27]Decimal Adjust Accumulator
[28]overflow flag
[29]parity flag
[30]Stack pointer
[31]subriutines
[32]Programcounter
[33]data pointer
[34]Port registers
[35]interval timing
[36]event counting
[37]timer mode register
[38]Serial data buffer
[39]Priority level
[40]interrupt emable register
[41]inteivpt prioroty registevs
[43]Power Down
[44]Idle
[45]Dual Inline package
[46]opcode f.etch
[47] اگر دستورالعمل هاي Movx(و RAM خارجي)هرگز استفاده نشوند،ALE بطور ثابت با 6/1 فركانس كريستال،پالس ارسال مي كند.
سلام
پسورد فایل چیه؟
matlab1.ir
ممنون