Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Консп_АПЗ_ПК_10_укр.doc
Скачиваний:
46
Добавлен:
10.02.2016
Размер:
2.7 Mб
Скачать

Лекція 10. Компоненти системної плати - співпроцесор, порти та таймер

10.1. Математичний співпроцесор 8087

Мікросхема 8087 являє собою 80-бітовий арифметичний співпроцесор (FPU) і може бути використаний тільки разом із процесором 8086/88, тому що в ньому відсутній механізм вибірки команд. Співпроцесор призначений для підвищення продуктивності CPU до 100 разів при виконанні операцій із багаторозрядними цілими та дійсними числами.

Схема з'єднання 8088 та 8087 представлена на рис.10.1. Взаємодія процесорів починається за сигналом RESET (>4 тактів CLK). 8087 перевіряє рівень сигналу на виводі 34. CPU 8086 формує 0, а 8088 - 1. Таким чином, установлюється тип МП. Крім того, у процесорах запам'ятовується значення сигналу на вході 23 (TEST#=BUSY#=1).

┌─────────────────┐ ┌─────────────────┐

│ 8088 А8..А19╞═════════════╡ А8..А19 8087 │

│ АD0..АD7╞═════════════╡ АD0..АD7 │

│ RESET, │ │ RESET, │

│ READY,CLK╞═════════════╡ READY,CLK │

│ S0..S2 ╞═════════════╡ S0..S2 │

│ QS1,QS2 ╞═════════════╡ QS1,QS2 │

│ S7 ├─34───────34─┤ S7/BHE# │

│ RQ#/GT0#├─31 33─┤ RQ#/GT1# │

│ RQ#/GT1#├─30───────31─┤ RQ#/GT0# │

│ NMI ├──<─схема──<─┤ INT │

│ │ │ │

│ MN/MX#,GND├──────┬──────┤ GND │

│ │ ┴ │ │

│ TEST#├─23─<─┬───23─┤ BUSY# │

│ Ucc │ ┌┴┐ │ Ucc │

└─────────────┬───┘ │ │ └───┬─────────────┘

│ └┬┘ │

+5V────┴──────────┴──────────┘

Рис. 10.1. Схема з'єднання 8088 і 8087

Далі CPU робить вибірку команд із пам'яті, а співпроцесор стежить за його роботою, перебуваючи у пасивному режимі: як і 8088, приймає всі команди в чергу та аналізує стан черги CPU QS1,QS0. Якщо QS1,QS0=01 (перший байт) і код команди дорівнює 11011= ESC (префікс команди співпроцесора), 8087 переходить в активний режим, установивши сигнал BUSY# =0. CPU і співпроцесор тепер працюють паралельно. При цьому процесори "домовляються" по лінії RQ#/GT1# (8088) - RQ#/GT0# (8087) про право користування локальною шиною. Це досягається шляхом двосторонньої передачі/прийому нульових імпульсів із тривалістю одного періоду CLK. Процесор, якому потрібна шина, передає сигнал запиту. Інший процесор, закінчує цикл шини (якщо такий був), відключається від шини та передає у відповідь імпульс дозволу на її використання. Закінчивши цикл шини, перший процесор видає сигнал її звільнення RELEASE.

Після виконання своєї команди співпроцесор установлює сигнал BUSY#=1 і переходить у пасивний режим.

10.2. Паралельний периферійний інтерфейс

Паралельний периферійний інтерфейс (PPI) виконаний на контролері 8255. PPI формує внутрішні порти в діапазоні адрес 60...7F, які мають наступне призначення: порт A використовується для читання даних із клавіатури; порт B використовується порозрядно для формування сигналів управління; порт C використовується для формування сигналу динаміка, сигналу звукового каналу таймера, сигналів управління.

Функціональна схема читання даних із клавіатури наведена на рис.10.2.

┌─────────────┬<──┐ PB3 PB6 ┌─────┐

│ сист.перем. ╞═╗ │┌───────────────>─┤ Key ├─<──KB_CLOCK

└─────────────┘ ║ ││ └──┬──┘

║ BX ┌──┬───────┬──┐ ║ ││ ┌─────────┐ ┌──v──┐

║ │ │ PPI │ │ ║ ││ │ИР28 CLK├<┬─┤ ЛЗ │

╠═════╡ D│ │PC╞═╣ ││ │ │ │ ├─────┤

║ │ │ │ │ ║ ││ │ │ └>┤ T │

╠═════╡ А│ │ │ ││PB7│ OH#├─>─┤ ├─┬─> IRQ1

║ │ │ │PB╞═══╧╧─┬>┤OE# │ └──^──┘ │

│WR#,RD# │ │ │ │ G#├<─────│────┘

══════╡ RESET │ │ │ │ │ │PB7

PPICS──┤CS# │PA╞════════╡D 8 DI├<─────────────KB_DATE

└──┴───────┴──┘ │ └─────────┘ │

└──────────────────┘

Рис. 10.2. Схема читання даних із клавіатури

Читання даних із клавіатури відбувається наступним чином.

У вихідному стані PB6=1 (немає скидання по лінії KB_CLOCK) і PB7=0 (дозвіл виходу регістра ИР28). При натисканні або відпусканні клавіші в контролері клавіатури для PC/XT формується однобайтовий скан-код. Старший біт означає натискання (1) або відпускання (0) клавіші. Інші 7 біт відповідають номеру натиснутої клавіші.

Далі код порозрядно передається в комп'ютер по лінії KB_DATE. Одночасно з кожним бітом передаються нульові строби ( імпульси-клямки) по лінії KB_CLOCK, які через ключ Key і лінію затримки ЛЗ (близько 1 мкс) надходять на тактовий вхід CLK послідовно-паралельного регістра ИР28 (ИР24). У цей регістр послідовно завантажуються біти даних KB_DATE.

По закінченні восьми тактів на виході -OH# з'являється нульовий імпульс, що затримується в тригері T. Позитивний вихідний сигнал тригера є запитом на переривання IRQ1, що надходить на контролер PIC. Одночасно по входу G# забороняється прийом нових розрядів в ИР28. Програма переривання читає скан-код з порту A, а потім, передавши одиничний імпульс по лінії PB7, скидає запит на переривання IQR1 та зміст регістра ИР28. Далі CPU повідомляє контролер PIC про те, що запит знято, аналізує скан-код і перетворює його в ASCII-Код символу. Статус клавіші та її код розміщується в буфер пам'яті (до 15 значень) в області даних BIOS. Після виходу із програми переривання комп'ютер готовий до прийому наступного байта із клавіатури.