Най-четените учебни материали
Най-новите учебни материали
***ДОСТЪП ДО САЙТА***
ДО МОМЕНТА НИ ПОСЕТИХА НАД 2 500 000 ПОТРЕБИТЕЛИ
БЕЗПЛАТНИТЕ УЧЕБНИ МАТЕРИАЛИ ПРИ НАС СА НАД 7 700
Ако сме Ви били полезни, моля да изпратите SMS с текст STG на номер 1092. Цената на SMS е 2,40 лв. с ДДС.
Вашият СМС ще допринесе за обогатяване съдържанието на сайта.
SMS Login
За да използвате ПЪЛНОТО съдържание на сайта изпратете SMS с текст STG на номер 1092 (обща стойност 2.40лв.)Програмируем контролер на прекъсвания I8259A |
2 Теоретична постановка 2.1. Регистри 2.1.1. Регистър за заявки за прекъсвания (IRR) В него се съхраняват всички заявки за прекъсвания, постъпващи по линии IRQ0-IRQ7. В зависимост от установения режим на контролера, разредите му се установяват по нарастващ фронт или при високо ниво на съответните входни сигнали. 2.1.2. Регистър на обслужваните заявки (ISR) В него се съхраняват всички заявки за прекъсвания, чието обслужване е започнало. 2.1.3. Регистър за маски на прекъсванията (IMR) Зарежда се програмно и съхранява индивидуалните маски на заявките за прекъсвания, постъпващи по линиите IRQ0-IRQ7. Ако даден бит от маската е 1, то съответната заявка се блокира. 2.1.4. Логика за определяне на приоритета В зависимост от съдържанието на регистри IRR, ISR и IMR определя необходимостта от изработване на сигнал за прекъсване INT към процесора. Всеки от разредите на IRR е свързан с определен приоритет, който в зависимост от установения режим на контролера може да бъде фиксиран или да се изменя след всяко обработено прекъсване. Сигналът INT се формира след избиране на най-приоритетната немаскирана заявка за прекъсване и постъпва директно на вход INTR на процесора. Ако тази заявка се приеме по линия INTA към контролера на прекъсвания се изпращат два последователни импулса за разпознаване на прекъсването. По втория от тях контролерът предава към процесора кода на приетото прекъсване по шина данни. Едновременно с това се установява съответния бит на регистъра за обслужване на заявките ISR и се смъква съответния бит в IRR. Нова заявка за прекъсване към контролера I8259A се приема, в случай, че не е маскирана и има по-висок приоритет от обслужваните в момента заявки. 2.1.5. Управляваща логика за четене и запис По сигнал за запис WR при активен сигнал CS се извършва зареждане на инициализиращи командни думи ICW и операционни командни думи OCW в съответните регистри на контролера. По сигнал за четене RD при активен сигнал CS към процесора се предава съдържанието на регистрите IRR, ISR и IMR. За избор на вътрешните регистри се използва само адресна линия A0. Обръщенията са в точно определена последователност. 2.1.6. Адресен компаратор Използва се при каскадно свързване на няколко контролера. Един от контролерите се дефинира като главен, а останалите като подчиниени. 2.2. Управляващи думи и режими на работа Действието на контролера се програмира чрез два типа управляваща информация, предавана от процесора: инициализиращи командни думи ICW и операционни командни думи OCW. Първите се използват за начално установяване на контролера в определено състояние, а вторите – за управление на операциите в него и за изменение на работните режими. Вътрешните регистри на контролера заемат два адреса от входно-изходното адресно пространство (портове $020 и $021 за главния контролер и портове $0A0 и $0А1 за каскадно свързания контролер). При активни сигнали CS и WR командните думи ICW и OCW се предават за запис в съответните вътрешни регистри на контлера по шина данни. 2.2.1. Инициализиращи командни думи (ICW) Установяването на необходимото начално състояние и на режимите на работа се извършва чрез запис u1085 на последователност от два до четири байта, наречни ICW. Инициализиращите командни думи са четири като ICW1 и ICW2 се задават от процесора винаги, а ICW3 и ICW4 са необходими, само ако това е указано в ICW1. След инициализиране на контролера изменения в ICW са възможни само при изпълнение на цялата последователност по програмирането им.
|