Организация микропроцессорных систем. Учебное пособие. Могнонов П.Б. - 50 стр.

UptoLike

Составители: 

3.3.3. Идентификация прерывающего устройства системы прерывания
Когда в микропроцессорных системах имеется несколько ПУ, работающих в режиме
прерываний, сигналы их запросов на обслуживание прерываний объединяются по схеме
ИЛИ и подаются на вход INT микропроцессора. В этом случае возникает задача
идентификации ПУ, т.е. однозначного перехода к определенной подпрограмме
обслуживания. Решение этой задачи возлагается на систему прерывания. Разработано
несколько способов решения этой проблемы, различающихся скоростью реакции
микропроцессора и объемом дополнительных аппаратных средств. При реализации любого
способа необходимо назначить устройствам определенные приоритеты.
Программный полинг
Простейшее решение проблемы идентификации, почти не требующих
дополнительных аппаратных средств, заключается в программном опросе (полинге) флажков
готовности (сигналов прерывания) ПУ.
На рис.3.4 приведен типичный вариант программного полинга. Первым проверяется
флажок готовности ПУ1 с наибольшим приоритетом. Если оно не запрашивало
обслуживание, опрашивается следующее ПУ и т.д.
Когда встречается первое устройство готовое к операциям ВВ, управление передается
подпрограмме обслуживания этого устройства. При завершении обслуживания в полинге
может быть запрограммировано одно из следующих действий:
1.
Управление возвращается в основную программу без проверки готовности
остальных ПУ. Здесь гарантируется обязательная проверка в каждом цикле полинга ПУ с
высоким приоритетом, так как обслуживание их блокирует обслуживание устройств с
меньшим приоритетом.
2
Обслуживание
ПУ1
Обслуживание
ПУ2
Обслуживание
ПУ3
ПУ1
готово
ПУ2
готово
ПУ3
готово
Нет
Да
Нет
Да
Нет
Да
1
Основная
программа
Программа полинга
INT=1
INT=1
Рис.3.4. Программный полинг
2.
Управление возвращается к программе полинга, т.е. в точку проверки прерывания
следующего ПУ (на рис.3.4 это показано цифрой). Этот способ гарантирует проверку в
каждом цикле полинга всех устройств.
Для ускорения полинга сигналы прерываний всех устройств подключаются к
специальному регистру. Приоритет ПУ задается последовательностью опроса флажков
         3.3.3. Идентификация прерывающего устройства системы прерывания

      Когда в микропроцессорных системах имеется несколько ПУ, работающих в режиме
прерываний, сигналы их запросов на обслуживание прерываний объединяются по схеме
ИЛИ и подаются на вход INT микропроцессора. В этом случае возникает задача
идентификации ПУ, т.е. однозначного перехода к определенной подпрограмме
обслуживания. Решение этой задачи возлагается на систему прерывания. Разработано
несколько способов решения этой проблемы, различающихся скоростью реакции
микропроцессора и объемом дополнительных аппаратных средств. При реализации любого
способа необходимо назначить устройствам определенные приоритеты.

                                     Программный полинг

      Простейшее решение проблемы идентификации, почти не требующих
дополнительных аппаратных средств, заключается в программном опросе (полинге) флажков
готовности (сигналов прерывания) ПУ.
      На рис.3.4 приведен типичный вариант программного полинга. Первым проверяется
флажок готовности ПУ1 с наибольшим приоритетом. Если оно не запрашивало
обслуживание, опрашивается следующее ПУ и т.д.
      Когда встречается первое устройство готовое к операциям ВВ, управление передается
подпрограмме обслуживания этого устройства. При завершении обслуживания в полинге
может быть запрограммировано одно из следующих действий:
      1. Управление возвращается в основную программу без проверки готовности
остальных ПУ. Здесь гарантируется обязательная проверка в каждом цикле полинга ПУ с
высоким приоритетом, так как обслуживание их блокирует обслуживание устройств с
меньшим приоритетом.
                                         Программа полинга
                        Основная
                        программа


                      INT=1                                   Да
                                                ПУ1                   Обслуживание
                                               готово                     ПУ1

                                                  Нет             2


                                                             Да       Обслуживание
                                                ПУ2
                      INT=1                    готово                     ПУ2

                                                  Нет
                                    1


                                               ПУ3           Да
                                                                      Обслуживание
                                              готово                      ПУ3

                                                   Нет




                                    Рис.3.4. Программный полинг

      2. Управление возвращается к программе полинга, т.е. в точку проверки прерывания
следующего ПУ (на рис.3.4 это показано цифрой). Этот способ гарантирует проверку в
каждом цикле полинга всех устройств.
      Для ускорения полинга сигналы прерываний всех устройств подключаются к
специальному регистру. Приоритет ПУ задается последовательностью опроса флажков