مفدمه
به علت مشکلاتی از قبیل سیاست سازندکان قطعات سخت افزار و تحریم اقتصادی ایران اکثر کشور ها از ارائه تکنولوژی به ایران خودداری می کنند .در کشور ما طراح سخت افزار و اصولا مرکزی برای تولید این قطعات وجود ندارد ، به دانشجویان نیز در این زمینه به جز مقداری تئوری اطلاعات دیگری آموخته نمی شود .
به همین دلیلی با مطالعه درس VLSI که اصول کلی طراحی سخت افزار را توضیخ می دهد بر آن شدیم تا شاید بتوانیم بوسیله نرم افزار های شبیه ساز سخت افزار (VHDL) قطعات سخت افزاری را شبیه سازی نماییم .جهت رسیدن به این مقصود از IC کوچکی که کارایی زیادی در میکرو کنترولر ها دارد شروع کردیم . بعد از حدود 3 ماه توانستیم از مدار خود جواب بگیریم و تازه متوجه کار مشقت بار یک طراح شدیم .
مستندات برنامه نویسی این پروژه در این مقاله تحقیقی فقط برای قسمتهای اصلی داده شده است چون ارائه کامل آن مقاله را بسیار پیچیده و گنگ می کرد .
لازم به ذکر است مطالب این مفاله صرفا برای دانشجویان سخت افزار و الکترونیک قابل درک است و برای کسانی که درس VLSI , ریز پردازنده را خواهند گدراتد مفید خواهد بود .
آشنایی با رابط قابل برنامه ریزی 8255A
رابط قابل برنامه ریزی وسائل جانبی ، 8255 یک تراشه ارزان قسمت بسیار متداول است که امروزه کاربردهای زیادی یافته است . این تراشه دارای 24 پایه برای I/O است که در گروههای 12 پایه ای قابل برنامه ریزی هستند . هر گروهی می تواند در به حالت مجزا کار کند : I/O ساده ، IO استروب شده و I/O دو طرفه ، 8255 قادر است هر وسیله I/O موازی سازگار با TTL را به آسانی به ریز پردازنده Z80 ارتباط دهد .
توضیح کلی :
شکل 1- نمایی از انواع مختلف مدلهای ساختاری به همراه پایه های 8255
(شکل در فایل اصلی موجود است)
وضعیت پایه ها و شمای کلی 8255 در شکل 1 نشان داده شده است . پایه ها نشان می دهد که 8255 سه در گاه I/O دارد( A,B,C) که در دو گروه 12 پایه ای برنامه ریزی می شوند. گروه A از در گاه A (PA0-PA7) و نیمه بالایی در گاه C ( PC4-PC7) و گروه B ( PB0-PB7) و نیمه پائینی درگاه C(PC0-PC3)تشکیل می شود .
انتخاب در گاه بوسیله پایه CS و پایه های آدرس A0,A1 ، انجام می شود. که با هم بطور داخلی یک در گاه I/O یا ثبات فرمان را بر می گزینند .
ورودی RESET باعث می شود که در گاه I/O به عنوان در گاه ورودی برنامه ریزی شود تا آسیبی به مدارهای متصل به پایه های در گاه برسد . اگر این درگاه بخواهد به عنوان درگاه خروجی بکار رود .8255 را باید از طریق درگاه فرمان برنامه ریزی نمود تا به عنوان خروجی عمل کنند..
شکل شماره 2 - نمای داخلی و ارتباطات داخلی پرتها
(شکل در فایل اصلی موجود است)
روش برنامه ریزی 8255
برنامه ریزی 8255 کارنسبتا ساده ای است زیرا تراشه فقط دارای 2 ثبات فرمان داخلی است که برنامه ریزی می شوند.شکل 3 ثبات فرمان اصلی را نشان می دهد که به استفاده کننده اجازه می دهد تا در گاه I/O گروههای A و B را به طور جداگاه برنامه ریزی نماید . این ثبات فرمان
شکل 3- ثبات فرمان
(شکل در فایل اصلی موجود است)
را می توان با ارسال یک 1 به محل آخرین بیت سمت چپ آن انتخاب نمود .
پایه های گروه B به عنوان پایه های ورودی و یا به عنوان پایه های خروجی قابل برنامه ریزی هستند . گروه B همچنین می تواند در یکی از حالتهلی 0 یا 1 کار کند .
حالت 0 مربوط به عملیات ورودی–خروجی ساده و حالت 1 مربوط به عملیات ورودی-خروجی استروب شده است در این حالت در گاه B به عنوان ورودی خروجی به همراه سیگنالهای کنترلی انتقال اطلاعات(دست تکانی ) که بوسیله در گاه C تامین می شود. عمل کند .
پایه های گروه A به عنوان پایه های ورودی یا خروجی برنامه ریزی می شوندکه در یکی از حالات 0و1و2 کار کنند . در همه حالات به جز حالت 0 در گاه A به عنوان
یک در گاه ورودی یا خروجی برنامه ریزی می شود که در گاه C به عنوان سیگنال های کنترل انتقال اطلاعات برای آن عمل می کند .حالات 0و1 مشابه حالات در گروه B هستند .و حالت 2 در گاه A را به عنوان یک درگاه I/O دو طرفه بکار می گیرد که درگاه C تامین کننده سیگنال های کنترل انتقال اطلاعات برای آن است.
اگر یک صفر در آخرین بیت ثبات فرمان (از سمت چپ) قرار داده شود بیتهای درگاه C را میتوان به طور مجزا آدرس داد، به نحویکه در حالات 1و2 می توان هر یک از آنها را نشاند و یا پاک نمود. در حالت 0 ، اطلاعات مستقیما به در گاه C فرستاده می شوند.
عملیات حالت صفر
در حالت صفر- اطلاعات را می توان به در گاه A,B,C فرستاد و در آنجا از آنها تا دستورالعمل بعدی (OUT) نگهداری می شود.
حالت 1 ورودی استروب شده – در 8255 با یکار گیری پایه های در گاه C بعنوان سیگنال های کنترل انتقال اطلاعات عملیات دست تکانی را برای در گاه B,A انتخاب می کند . شکل 4 ساختار داخلی 8255 را برای عملیات ورودی استروب شده و همچنین سیگنالهای زمانبندی مربوطه را در حالت 1 نشان می دهد.
شکل 4 - حالت 1-نمای داخلی پرت A,B به همراه کلمه کنترلی و زمانبندی سیکنال ها
(شکل در فایل اصلی موجود است)
[1]- استروب : این ورودی برای وارد کردن اطلاعات بداخل قفل در گاه A یا B بکار می رود. این اطلاعات تا زمانیکه بوسیله یک دستورالعمل IN بداخل ریز پردازنده برده نشود در آنجا نگهداری می شود.
IBF = (INPUT BUFFER FULL) این خروجی نشان می دهد که قفل ورودی ، اطلاعاتی برای ریز پردازنده در بر دارد . سیگنال این پایه خروجی را می نشاند و دستورالعمل IN آنرا پاک می کند .
INTR[2]- (در خواست وقفه )این خروجی برای درخواست نمودن یک وقفه بکار میرود. وقتی سیگنال به سطح منطقی 1 می رود این خروجی 1 می شود و با اجرا شدن دستورالعمل IN پاک می گردد .
INTE[3]- فعال کننده وقفه : این فعال کننده یک ورودی یا خروجی نیست ، بلکه یک بیت داخلی است که بوسیله ثبات فرمان BSR[4] برنامه ریزی می شود .INTE A به عنوان PC4 و INTE B به عنوان PC2 برنامه ریزی می شود .
در این حالت PC6,PC7 به عنوان I/O همه منظوره در عملیات ورودی استروب شده حالت 1 هستند. این پایه ها وفتی به عنوان پایه های خروجی به کار می روند بوسیله BSR کنترل می شوند و وقتی به عنوان پایه های ورودی بکار می روند ، از طریق درگاه C خوانده می شوند.
عملیات خروجی استروب شده (حالت 1 )
ساختار داخلی 8255 برای عملیات خروجی استروب شده و سیگنال های زمانبندی مربوطه را نشان می دهد .
شکل 5 - حالت 1-نمای داخلی پرت A,B به همراه کلمه کنترلی و زمانبندی سیگنال ها
(شکل رد فایل اصلی موجود است)
تعاریف درگاه C برای خروجی استروب شده حالت 1 :
[5] - بافر خروجی پر است : هر گاه اطلاعاتی به قفل در گاه A یا B فرستاده شود این خروجی پایین می رود . این سیگنال با برگشتن پالس [6] از یک وسیله خارجی نشانده می شود و وقتی اطلاعات با یک دستور العمل OUT در درگاه نوشته می شود ، پاک می گردد.
- ورودی اعلام دریافت اطلاعات : سیگنالی که باعث می شود پایه به سطح منطقی 1 برگردد . پاسهای از یک وسیله خارجی است که نشان می دهد وسیله اطلاعات را از 8255 دریافت کرده است .
INTR – در خواست وقفه : هرگاه یک وسیله خارجی ، دریافت اطلاعات خروجی را اعلام کند () از این سیکنال می توان برای دادن وقفه به ریز پردازنده استفاده کرد .
INTE فعال کننده وقفه : این فعال کننده یک ورودی یا خروجی نیست ، بلکه یک بیت داخلی است که بوسیله ثبات فرمان BSR[7] برنامه ریزی می شود.
INTE A به عنوان بیت PC6 و INTE B به عنوان PC2 برنامه ریزی می شود.
عملیات دو طرفه (حالت 2)
عملیات دو طرفه فقط برای پایه های گروه A انجام می شود. در گاه A به صورت یک در گاه دو طرفه در می آید که امکان ارسال و در یافت اطلاعات را بر روی هشت سیم مشترک بوجود می آورد . اطلاعات دو طرفه در ارتباط دهی دو کامپیوتر مفید است شکل 6 ساختار داخلی و سیگنال های زمانبندی را برای عملیات دو طرفه درگاه A نشان می دهد.