PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مقاله سیگنالها ی وقفه



آبجی
22nd March 2010, 07:02 PM
ریزپردازنده 8086/8088 دارای دو پایه ورودی وقفه است. یکی از پایه های ورودی وقفه؛ همانند سایر ریزپردازنده ها؛ اختصاص به وقفه های پوشش ناپذیر دارد. پایه دیگر برای سرویس دهی به وقفه ها (پوشش پذیر) در نظر گرفته شده است. بنابراین تمام ورودی های وقفه و دستگاههایی که به روش وقفه از ریزپردازنده 8086/8088 سرویس می گیرند؛ سیگنال درخواست وقفه آنها به این پایه متصل می شود.


پایه INTR (ورودی و active high)
همانطوریکه اشاره شد سیگنال ورودی وقفه ریزپردازنده 8086/8088 از طریق این پایه بدان اعمال می شود. درخواست وقفه از این پایه پوشش پذیر است و با برنامه ریزی از طریق بیت پرچم IF می توان از وقوع آن جلوگیری کرد. در این ریزپردازنده فقط یک پایه برای ورودی وقفه (به صورت نرمال) در نظر گرفته شده، بنابراین روشی برای رسیدن به سرویس وقفه در آن طراحی شده که بعدا مورد بررسی قرار خواهیم داد. فقط در اینجا ذکر این نکته؛ به اختصار؛ ضروری است که سیگنال های وقفه قبل از ورود به این پایه باید در یک مدار کنترل کننده ایی سازمان دهی گردند و آدرس برنامه سرویس وقفه از بیرون و از طریق گذرگاه داده ها به ریزپردازنده اعلام گردد. معمولا تراشه کنترل کننده وقفه (8259A) برای این منظور به کار می رود.
INTR با سطح سیگنال ورودی (یک منطقی) تریگر می شود و در طی آخرین پریود پالس ساعت از سیکل اجرای هر دستورالعمل چک می گردد. به این ترتیب اگر وقفه در ریزپردازنده توانا (Enable Interrupt) شده باشد (یعنی از قبل بیت پرچم وقفه یک شده باشد) و یک سیگنال با سطح منطقی یک نیز به این پایه وارد شود، 8086/8088 یک سری اعمال مربوط به پذیریش وقفه را انجام داده و کنترل اجرای دستورالعمل ها به برنامه سرویس وقفه مورد نظر منتقل خواهد شد. آدرس این برنامه از بیرون؛ و به طریقی که بعدا گفته خواهد شد؛ به دست می آید. اگر به هر دلیلی قبل از ورود سیگنال وقفه به این پایه، بیت پرچم وقفه یک نشده باشد (Disable Interrupt)، وقفه نادیده گرفته شده و ریزپردازنده به اجرای دستورلعمل بعدی خواهد پرداخت.


پایه NMI (ورودی و active high)
این پایه نیز همانند پایه INTR یک خط ورودی برای درخواست وقفه است، با این تفاوت که درخواست وقفه از طریق این پایه پوشش پذیر نیست (Non Maskable)، یعنی نمی توان آن را توسط نرم افزار (مثلا با صفر کردن IF) ناتوان ساخت.
بنابراین پوشش ناپذیر بودن این پایه بدین معنی است که به محض اعمال سیگنال به آن، ریزپردازنده بعد از اتمام اجرای دستورالعمل جاری، آن را حتما خواهد پذیرفت و نیازی به اعلام پذیرش آن نیست. پس بیت پرچم IF در مورد این وقفه چک نمی شود. اولویت آن نیز بالاتر از وقفه INTR است. این وقفه با لبه مثبت سیگنال ورودی به این پایه عمل می کند.
اشاره شد که آدرس دهی وقفه INTR با روش خاصی صورت می گیرد، ولی آدرس برنامه مربوط به وقفه NMI در محل 00008H حافظه است. یعنی به محض وارد شدن یک لبه مثبت به این پایه وقفه، ریزپردازنده پس از اتمام اجرای دستورالعمل جاری، کنترل اجرا را به روتین وقفه پوشش ناپذیر؛ که آدرس آن در این محل حافظه است؛ می سپارد. معمولا یک کار ویژه یا یک وضعیت خاص در سیستم از طریق این ورودی به ریزپردازنده وقفه می دهد(مثلا بالا رفتن دمای ریزپردازنده).
سیگنال NMI در حالت عادی صفر بوده و در صورت درخواست وقفه پوشش ناپذیر یک می شود. به منظور جلوگیری از تریگر شدن ناخواسته (تحت عواملی از قبیل نویز و غیره) بایستی این سیگنال حداقل به مدت دو پریود پالس ساعت بعد از ورود یک باقی بماند. لبه این سیگنال در داخل ریزپردازنده با پالس های ساعت سنکرون می گردد. ضمنا لازم است سیگنال ورودی وقفه به این پایه حداقل به اندازه زمان دو پریود پالس ساعت قبل از آنکه لبه مثبت آن اتفاق بیفتد، صفر شده باشد.

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد