
- •Архітектура пеом
- •1. Інтервальний таймер і8253/і8254 на платі івм рс: принцип будови та функціонування
- •2.Програмування інтервального таймера на рівні портів
- •3.!Читання конcтант перерахунку каналів інтервального таймера і8253/і8254
- •4.! Читання байту стану каналів 0-2 інтервального таймера: спосіб 1, 2.
- •5.! Системний час в івм рс: таймер bios (таймер ос).
- •6.Засоби bios та ос для роботи з таймером bios.
- •7.Реальний час в івм рс: годинник реального часу (rtc)
- •8.Функціональна схема годинника реального часу та порти доступу (rtc) на платі ibm pc.
- •9. Керуючі та регістри стану годинника реального часу (rtc).
- •10.Сигнальне переривання від годинника реального часу (rtc).
- •11. Періодичне переривання від годинника реального часу (rtc).
- •12.Програмування годинника реального часу (rtc).
- •13.Апаратна реалізація порту послідовної передачі даних на платі ibm pc, принцип побудови уапп.
- •14. Порти асинхронного адаптера та їх призначення
- •16. Контролер прямого доступу до пам’яті (dma). Призначення і основні функції
- •17.! Регістри каналів контролера прямого доступу до пам’яті (dma).
- •18.!Алгоритм ініціалізації контролера прямого доступу до пам’яті (dma).
- •19.! Реалізація прямого доступу до пам’яті (пдп) в івм рс ат
- •20.! Контролер переривань на платі івм рс (і8259): принцип будови та функціонування
- •21.Загальна схема переривань в івм рс ат
- •22.Види переривань: апаратні та програмні переривання
- •23.Особливості обробки апаратних переривань, пріоритети обслуговування запитів на переривання та їх зміна.
- •24. Суть і призначення векторів переривань. Таблиця векторів переривань та зміна її елементів.
- •25.! Порти доступу до контролера переривань на платі івм рс
- •27.Керування пам`яттю. Сегментація пам`яті.
- •28.Дескрипторні таблиці. Селектори сегментів.
- •29.Сторінкова організація пам`яті, сторінкове перетворення адреси.
- •30.Алгоритм сегмента сторінкової адресації.
Архітектура пеом
1. Інтервальний таймер і8253/і8254 на платі івм рс: принцип будови та функціонування
Принципи роботи
Таймер 8254 має три канали, ідентичних за своїм устроєм і принципам роботи, тому нижче описується робота тільки одного каналу.
На вхід каналу подаються тактова частота синхронізації; на ПК вона однакова для всіх трьох каналів і дорівнює 1,19318 МГц, що відповідає періоду сигналу близько 838 нс. Кожен період синхронізації відбувається зменшення на одиницю вмісту внутрішнього лічильника каналу, початкове значення якого встановлюється програмно. По досягненні нульового значення стан виходу каналу міняється відповідно із запрограмованим режимом роботи. На роботу каналу впливає зовнішній сигнал дозволу рахунку CE: коли на ньому утримується низький рівень, рахунок в каналі не виконується. На ПК на входи CE всіх трьох каналів постійно подається високий рівень, завдяки чому вони працюють безупинно.
Лічильник має розрядність 16 біт і може працювати в двійковому або двійково-десятковому режимі. Початкове значення може програмуватися шляхом установки тільки молодшого, тільки старшого або обох байтів разом. У мікросхемі 8254, а також її клонах, що входять до складу сучасних чіпсетів, передбачено програмне зчитування поточного значення лічильника, а також режиму роботи та поточного стану каналу; в мікросхемі 8253 можливості зчитування стану були значно скромнішими.
Всього передбачено шість режимів. У режимах 0 і 4 по досягненні нульового значення рахунок зупиняється і може бути відновлений програмної завантаженням в канал нового початкового значення лічильника. У режимах 1 і 5 рахунок починається заново кожен раз, коли на лінії дозволу рахунку CE фіксується перехід з низького (забороняє) у високий (дозволяючий) рівень, тобто CE грає роль імпульсу, що запускає. Оскільки на ПК ці лінії постійно підключені до високого рівня, режими 1 і 5 використовуватися не можуть. У режимах 2 і 3 після досягнення лічильником нульового значення він автоматично завантажується останнім програмно встановленим початковим значенням, і операція рахунки починається спочатку.
Таймери 8253 і 8254 складаються з трьох незалежних каналів, або лічильників. Кожен канал містить регістри: • стану каналу RS (8 розрядів); • керуючого слова RSW (8 розрядів); • буферний регістр OL (16 розрядів); • регістр лічильника РЄ (16 розрядів); • регістр констант перерахунку CR (16 розрядів). Канали таймера підключаються до зовнішніх пристроїв за допомогою трьох ліній: GATE - керуючий вхід; CLOCK - вхід тактової частоти; OUT - вихід таймера. Регістр лічильника РЄ працює в режимі віднімання. Його содер-; жімое зменшується по задньому фронту сигналу CLOCK за умови, що на вхід GATE встановлений рівень логічної 1. В залежно від режиму роботи таймера при досягненні лічильником РЄ нуля тим чи іншим чином змінюється вихідний сигнал; OUT. Буферний регістр OL призначений для запам'ятовування поточного вмісту регістра лічильника РЄ без зупинки процесу рахунку. Після запам'ятовування буферний регістр доступний програмі для читання. Регістр констант перерахунку CR може завантажуватися в регістр лічильника, якщо це потрібно в поточному режимі роботи таймера. ) Як неважко здогадатися по назві, регістри стану каналу та керуючого слова призначені відповідно для визначення поточного стану каналу і для завдання режиму роботи таймера. Спрощена схема взаємодії регістрів каналу наведена на малюнку: CR -> - РЄ -> - <- GATE '--- • • -1 - • Керуюча I-'- 1 логіка каналу - <- CLOCK 01 -> - OUT Можливі шість режимів роботи таймера. Вони поділяються на три типи: • Режими 0, 4 - однократне виконання функцій. • Режими 1,5 - робота з перезапуском. • Режими 2, 3 - робота з автозавантаженням. У режимі однократного виконання функцій перед початком рахунку вміст регістра констант перерахунку CR переписується в регістр лічильника РЄ по сигналу CLOCK, якщо сигнал GATE встановлений в 1. Надалі вміст регістра РЄ зменшується у міру приходу імпульсів CLOCK. Процес рахунку можна призупинити, якщо подати на вхід GATE рівень логічного 0. Якщо потім на вхід GATE подати 1, рахунок буде продовжений далі. Для повторення виконання функції необхідна нова завантаження регістра CR, тобто повторне програмування таймера. При роботі з перезапуском не потребує повторного програмування таймера для виконання тієї ж функції. По фронту сигналу GATE значення константи з регістра CR знову переписується в регістр РЄ, навіть якщо поточна операція не була завершена. У режимі автозавантаження регістр CR автоматично переписується в регістр РЄ після завершення рахунки. Сигнал на виході * OUT з'являється тільки при наявності на вході GATE рівня ло-Дмеской 1. Цей режим використовується для створення програмованих імпульсних генераторів та генераторів прямокутних імпульсів (меандру). У комп'ютері IBM PC/XT/AT/PS2 задіяні всі три канали таймера. Канал 0 використовується в системному годиннику часу доби (не слід плутати з годинником реального часу, реалізованими на інший мікросхемі). Цей канал працює в режимі 3 і використовується як генератор імпульсів з частотою приблизно 18,2 Гц. Саме ці імпульси викликають апаратне переривання INT 8h. Канал 1 використовується для регенерації вмісту динамічної пам'яті комп'ютера. Вихід каналу OUT використовується для запиту до каналу прямого доступу DMA, який і виконує оновлення вмісту пам'яті. Вам не слід перепрограмувати цей канал, оскільки це може призвести до порушень в роботі основної оперативної пам'яті комп'ютера. Канал 2 підключений до гучномовця комп'ютера і може бути використаний для генерації різних звуків або музики або як генератор випадкових чисел. Канал використовує режим 3 таймера 8253/8254.