В начало

Система ввода-вывода (Лекция)

ПЛАН ЛЕКЦИИ

1. Параллельный интерфейс

2. Последовательный интерфейс и универсальный синхронный приёмопередатчик

3. Линии последовательной передачи данных

4. Режим опроса и система прерываний

 

1. Параллельный интерфейс

Для обеспечения связи МП с различными внешними устройствами используются два вида интерфейса. Простейшим является параллельный интерфейс. При использовании параллельного интерфейса 8-разрядной МП за каждую операцию обмена обеспечивает передачу 8 бит информации.

На рис. представлена схема обеспечения параллельного 8-битового ввода-вывода данных. Рассматриваемые аппаратные средства предназначены для ввода и  вывода одного 8-битового слова данных.

Шина данных МП является двунаправленной, в соответствии с этим осуществляется ее буферирование. Буферы стробируются сигналами «Чтение УВВ» и» Запись УВВ»: Сигнал «Чтение УВВ» поступает, когда МП готов к подаче на шину данных МП данных из адресованного порта ввода-вывода. Сигнал «Чтение УВВ» поступает также на шинный формирователь. Линия подачи сигнала «Запись УВВ» находится в активном состоянии, когда МП готов к записи данных в адресованный порт. Кроме того, последний сигнал подаётся в качестве стробирующего в буфер выходных данных.

В рассматриваемой схеме обеспечения ввода-вывода данных имеется регистр состояния, с помощью которого МП проверяет состояние порта ввода-вывода. Обычно регистр состояния, входной и выходной регистры имеют подряд идущие адреса портов ввода-вывода. Например, регистр состояния может адресоваться как порт ввода-вывода с адресом 00, входной регистр – как порт ввода-вывода с адресом 01, а выходной регистр – как порт ввода-вывода с адресом 02.

Регистр состояния имеет только два разряда. Нулевой разряд регистра состояний устанавливается в состояние логической 1 путём подачи сигнала "Входные данные готовы". Вместе с тем производится прерывание МП. Т.к. по сигналу "Входные данные готовы" устанавливается в 1 нулевой разряд регистра состояния, МП доступна информация и состоянии порта ввода-вывода. Установка нулевого разряда регистра состояния в 1 является для МП признаком того, что на 8 входных линий поданы входные данные. Теперь МП может воспользоваться командой IN для передачи данных, находящихся на входных линиях, в аккумулятор.

Команда OUT МП служит для вывода данных. Данные, подаваемые МП на шину данных, помещаются в 8-разрядный буфер данных. Вместе с тем устанавливается в 1 первый разряд регистра состояния. Такому значению регистра состояния соответствует рабочее состояние "Выходные данные готовы". Тем самым внешнее устройство информируется о том, что новые данные готовы к выводу. Этот разряд состояния сбрасывается внешним устройством, которое подаёт сигнал "Данные приняты". Если МП необходимо узнать, имеется ли данные, подлежащие выводу, он может ввести слово состояния порта ввода-вывода и проанализировать первый разряд этого слова.

Пара рассмотренных сигналов позволяет МП и внешнему устройству проверить готовность данных к передаче; таким образом устраняется возможность потери данных и обеспечивается их корректная передача.

Схемы, подобные рассмотренной, разрабатываются в интегральном исполнении. Обычно, несколько параллельных портов ввода-вывода могут размещаться на кристалле самого МП или ан кристаллах, реализующих другие функции МП системы. Такой подход к размещению портов ввода-вывода приводит к созданию МП систем с небольшим количеством кристаллов.

Передача данных при выполнении операции ввода-вывода связана с временными затратами. Если требуется передать большой объём данных, то необходимое для этого время может оказаться довольно большой величиной, для уменьшения которой следует решить серьёзную техническую задачу.

Мы пока рассматривали такой способ организации выполнения операций ввода-вывода, когда в командах для ссылки не устройства ввода-вывода использовались специальные адреса. При этом обмен данными между МП и внешними устройствами не имеет ничего общего с обменом данными между МП и памятью. Однако в некоторых МП обращение к устройствам ввода-вывода ставят в соответствие слова памяти и определённые адреса. Устройства подключаются к адресной шине памяти, а для управления обменом данными между ними и МП используются сигналы "Чтение из памяти" и "Запись в память". При организации обращения к устройствам ввода-вывода по аналогии с обращением к памяти не требуется использование специальных команд ввода-вывода. Недостатком такого способа является то, что часть адресного пространства памяти используется для адресации устройств ввода-вывода; размер этой части определяется количеством используемой в системе устройств ввода-вывода.

Организация ввода-вывода по аналогии с обращением к памяти упрощает процесс обмена данными, что является достоинством этого способа. Поскольку обращение МП к устройствам ввода-вывода по форме не отличается от обращения к памяти, способ реализации этих обращений оказывается одним и тем же. Следовательно, исключается необходимость в специальных командах ввода-вывода. Кроме того, уже не потребуется все сигналы управления, которые при обычном способе организации передаёт шина управления МП. Т.к. адресами устройств ввода-вывода манипулируют как словами памяти, все команды МП, предназначенные для обращения к памяти могут использоваться и для работы с устройствами ввода-вывода.

Например, используя способ организации ввода-вывода, аналогичный способу организации обращения к памяти, можно выполнить сложение вводимого слова данных с содержимым аккумулятора или сравнивать входные данные с содержимым аккумулятора. В более совершенных МП, в наборе команд, которых имеются команды пересылки содержимого некоторой области памяти в другую область памяти, вводимое слово данных с помощью одной команды можно переслать из устройства ввода в определённую область памяти.

Однако, способ ввода-вывода, организованный по аналогии с обращением к памяти, можно использовать и в МП, располагающих специальными командами ввода-вывода. Наличие таких команд ввода-вывода не является препятствием для использования рассмотренного способа организации ввода-вывода. Итак, способ управления вводом-выводом, организованный по аналогии с обращением к памяти, можно использовать при создании МП систем, поскольку последние при этом становятся менее сложными.

Разработан стандарт на организацию параллельной передачи данных между электронными контрольно-измерительными приборами и МП. На основании этого стандарта создана шина IEEE-448. Фирмы-изготовители МП производят специальные БИС для сопряжения разрабатываемых ими МП и стандартной шины IEEE-488. К этой шине могут подсоединяться различные устройства: контроллеры; устройства отображения информации; устройства, которые во время своего функционирования как получают, так и выдают информацию. Каждому устройству присваивается адрес. Скорость передачи данных по шине IEEE-488 может превышать 1 Мбайт/с. Фактическая скорость передачи данных по шине ограничивается быстродействием устройств, подключённых к шине.

 

2. Последовательный интерфейс и универсальный синхронный приёмопередатчик

 

Многие устройства связаны с МП посредством линий последовательной передачи данных. Широкое применение способа последовательной передачи данных объясняется главным образом ограничениями, присущими способу параллельной передачи данных. Это, прежде всего, небольшое рабочее расстояние для линий параллельного ввода-вывода. При последовательной передаче данных жесткие ограничения на длину линии не накладывается. Но, прежде чем начать последовательную передачу данных, необходимо выполнить преобразование данных из параллельной формы в последовательную.

Преобразовать данные из параллельной формы в последовательную несложно. Вначале данные загружаются в сдвиговый регистр. Содержимое сдвигового регистра сдвигается на один разряд при поступлении каждого тактового импульса; данные на выходе такого сдвигового регистра будут иметь последовательную форму. Условимся, что биты слова данных, загруженного в регистр, будут появляться на его выходе друг за другом, начиная с младшего.

Чтобы принять данные в последовательной форме и преобразовать их в параллельную форму, необходимо выполнить действия, обратные по отношению к описанным выше. Данные, поступающие в последовательной форме, вводятся бит за битом в сдвиговый регистр. После заполнения сдвигового регистра данные из него (в параллельной форме) поступают в МП систему.

Устройство, обеспечивающее преобразование данных из параллельной формы в последовательную и обратно, называют универсальным асинхронным приёмопередатчиком (УАПП). Такое устройство реализуется в виде БИС. Кроме преобразования формы представления приёмопередатчик выполняет важные функции контроля и управления.

УАПП добавляет к каждому передаваемому слову данных два бита – стартовый бит и стоп-бит. Поэтому вместо передачи 8-битового слова данных фактически требуется передать 10 бит данных. Дополнительные биты используются принимающим УАПП для установления границ передаваемого слова данных. Стартовый бит всегда имеет значение логического 0, стоп-бит – логической 1.

Скорость передачи данных описанным способом принято измерять в бодах. Один бод равен одному биту в секунду, и поэтому скорость в бодах выражает, сколько бит в секунду может быть передано по соответствующему каналу передачи данных. Обычно для работы УАПП требуется последовательность тактовых импульсов, период следования которых в 16 раз меньше времени передачи одного бита данных. Тактовые импульсы используются для синхронизации входного сигнала и для генерирования выходного.

При проектировании большинства современных УАПП предполагается, что они будут подключаться к портам параллельного ввода-вывода МП. В УАПП имеется регистр состояния, в котором специальный бит устанавливается в определённое состояние, когда УАПП примет слово данных, и устанавливается в другое состояние по завершении передачи слова данных. Передача последовательного сигнала с использованием УАПП требует хранения битов состояния в регистре состояния УАПП. Синхронизация УАПП полностью не зависит от синхронизации МП. Следовательно, после того как МП поместил передаваемое слово данных в регистр передатчика, он не может знать, когда ему удаётся загрузить в регистр передатчика следующее слово данных. МП должен ждать до тех пор, пока УАПП не установит определённое значение бита состояния; анализ бита состояния позволит МП определить готовность УАПП к загрузке в него нового слова.

В некоторых УАПП предусмотрены разряды регистра состояния, которые позволяют выполнять программное управление скоростью работы УАПП.

Для человека взаимодействие с ЭВМ предпочтительно осуществлять с помощью буквенно-цифровых символов. С этой целью используется специальный код, называемый Стандартным американским кодом для обмена информацией ASCII. В коде ASCII для кодирования каждого символа используется два бита. Поскольку , с помощью данного кода можно закодировать 128 различных символов.

При передаче 8-битовых кодов 8-й бит может либо иметь постоянное значение (8 или 1), либо значение, позволяющее обнаруживать некоторые ошибки при передаче символов. Если используется код с обнаружением ошибок, то 8-й бит называется контрольным битом чётности. Большинства УАПП осуществляют формирование и проверку бита чётности. Иногда вместо бита чётности используют бит нечётности. Если при передаче данных применяются контроль на чётность, то 8-му биту придаётся значение логического 0 или 1 так, чтобы в передаваемом 8-битовом слове данных было чётное количество 1. После приёма слова данных УАПП проверяет в нём контрольный бит. Если обнаруживается нарушение чётности (нечётности), то УАПП записывает в регистр состояния признак ошибки. Затем УАПП может выдать запрос на повторную передачу данных. Проверкой на чётность удаётся выявить 50% возможных ошибок. Очевидно, будет обнаруживаться только нечётное число ошибочных битов. Если ошибка возникает сразу в двух битах, то обнаружить её контролем  на чётность не удаётся.

Кроме того, УАПП может обнаруживать ошибки синхронизации (кодирования). Ошибки кодирования происходит, когда УАПП не идентифицирует стартовый бит. УАПП не в состоянии принимать слова данных, не снабжённые размещёнными надлежащим образом начальным и конечным битами. Это происходит если принимаемое слово данных не выровнено на границе сдвигового регистра УАПП. Шумы, действующие на линию передачи, являются наиболее распространённой причиной возникновения ошибки кодирования.

Рассмотрим структурную схему простого УАПП. В схеме можно выделить 4 основные части: приёмную, передающую, регистр состояния и блок управления.

Передающая часть состоит из выходного буфера и регистра передатчика. Этот регистр является сдвиговым регистром; на его выходе последовательно появляются: стартовый бит, биты данных D0-D7 и стоп-биты. Подлежащее передаче 8-битовое слово данных загружается в выходной буфер по заднему фронту сигнала стробирования входных данных. По переднему фронту этого сигнала начинается последовательная передача данных, т.е. по переднему фронту.

Начинается процесс сдвига содержимого регистра. Рассмотренные действия поясняет следующий рисунок. С ввода сдвигового регистра, данные поступают на линию, предназначенную для последовательной передачи данных.         

Приемник является почти «зеркальным отражением» передатчика. Сначала данные последовательно вводятся в регистр приемника. При этом регистр приемника обнаружив стартовый бит, выполняет 10 или 11 сдвигов своего содержимого. После того как регистр приемника выполнит все сдвиги, 8-битовое слово данных может быть передано в входной буфер приемника. Эта передача данных осуществляется при поступлении сигнала разрешения ввода данных.

Как сдвиговый регистр передатчика, так и сдвиговый регистр приемника управляются тактовыми импульсами, период следования которых в 16 раз меньше времени передачи одного бита данных. При выбираемом таким образом периоде следования таковых импульсов гарантируется, что время сдвига не превысит одной тридцать второй части от времени передачи 1 бит данных. Указанная степень синхронизации сохраняется, даже если последовательность тактовых импульсов, определяющая скорость передачи данных по линии, и входные данные являются асинхронными.

Как показано на структурной схеме, регистр состояния приёмопередатчика имеет два выхода. Во-первых, 5 его разрядов состояния связаны с отдельными выводами БИС. Во-вторых всё слово состояния может быть загружено в выходной буфер приёмника.

Эта загрузка выполняется при подаче сигнала "строб вывода слова состояния". Регистр состояния содержит следующие разряды.

Наложение. Значение логической 1 в данном разряде означает, что текущее слово данных "набегает" на предыдущее слово данных. Такая ситуация возникает, когда предыдущее слово данных не было передано в выходной буфер приёмника до начала поступления следующего слова данных.

Ошибка кодирования. Значение логической 1 в соответствующем разряде регистра указывает на то, что приёмопередатчик не смог обнаружить стоп-бита, следующего за битами слова данных. Возможно, приёмопередатчик пропустил фактический стартовый бит и в качестве такового принял один из битов слова данных.

Ошибка чётности. Логическая 1 в данном разряде свидетельствует о том, что приёмопередатчик обнаружил ошибку, выявляемую контролем по чётности (или нечётности). Точное условие контроля устанавливается блоком управления, входящим в состав приёмопередатчика.

Буфер передатчика пуст. Значение логической 1 в данном разряде означает, что следующее слово данных может быть загружено в буфер передатчика.

Данные готовы. Значение логической 1 в данном разряде означает, что в буфере приёмника содержатся новые данные. Это слово данных выбирается из буфера путём подачи сигнала "Строб ввода данных".

Т.к. слово состояния УАПП можно записать в выходной буфер приёмника, с помощью команды IN его можно переслать в аккумулятор МП, и с помощью команды сравнения выполнить проверку значения разрядов слова состояния.

Рассмотрим управляющие входы УАПП. Пара входов используется для определения количества битов принимаемого (передаваемого) слова данных. Управляющий вход "Нечётность/чётность" используется для установления вида контроля. Сигнал, подаваемый на этот вход, будет восприниматься лишь тогда, когда линия "Контроль" находится в состоянии, при котором допускается выполнение функции контроля. Кроме того, контрольный бит является последним битом в передаваемом слове данных. При использовании, например, 7-битового кода ASCII контрольным является 8-й бит слова данных.

Вход "Число стоп-битов" позволяет задавать число битов окончания слова; обычно используются один стоп-бит, однако, например, при скорости передачи данных, равной 110 бод, два стоп-бита.

Рассмотренный УАПП может использоваться либо в автономном режиме, либо совместно с МП. При втором варианте использования УАПП подключается к порту МП. Более сложные УАПП могут непосредственно соединятся с шинами данных и адреса МП. При использовании таких УАПП нет необходимости в применении дополнительных схем, которые требуются для обеспечения взаимодействия МП и автономного УАПП. Для обеспечения работы УАПП часто используют специальные генераторы синхроимпульсов, частота которых численно равна  скорости передачи, выраженной в бодах и умноженной на 16. Такой генератор вырабатывает синхроимпульсы, соответствующие всем стандартным скоростям передачи данных. Благодаря использованию кварцевого резонатора генерируемые последовательности синхроимпульсов отличаются стабильностью и точностью.

УАПП является асинхронным устройством. Это означает, что скорость передачи данных не зависит от синхронизации МП. Помимо этого, при асинхронном способе передачи не определяются временные соотношения между сигналами, соответствующими последовательно передаваемым словам данных.

В каком же положении находится МП в связи с использованием асинхронного способа передачи? МП просто «не знает»; когда получит следующий символ. Поэтому ему приходится анализировать содержимое регистра состояния УАПП. Если разряд «Данные готовы» регистра состояния содержит логическую 1, то МП читает слово данных из приемопередатчика. Если же МП выявит в указанном разряде логический 0, то он должен продолжать анализ слова состояния УАПП до тех пор, пока не обнаружит в этом разряде логическую 1.

МП может выполнять «цикл ожидания» сколь угодно долго. Пусть производится передача данных со скоростью 300 бит. Для передачи одного символа требуется 10 бит, следовательно, максимальная скорость передачи данных равна 30символ/ с. Если длительность машинных циклов команд IN, ANI, YZ равна 1 мкс, то суммарное время их выполнения составит 13мкс. (IN,YZ-5циклов,ANI-3цикла). При скорости передачи 30 символ/с МП за время ожидания установления единичного значения разряда «Данные готовы» должен выполнить 2564 ожидания. Один цикл ожидания длится 13мкс. Если же, например, после первого символа не поступит без задержки второй символ, МП, очевидно должен выполнить больше чем 2564 цикла ожидания.

Обычно рассмотренную задачу решают с помощью системы прерываний процессора; запрос на прерывание подается с выхода « Данные готовы», имеющегося в УАПП. После обработки запроса на прерывание МП выполняет команду ввода IN. Однако об этом чуть позже. 

 

3. Линии последовательной передачи данных

Обычно линии последовательной передачи данных подключаются к устройствам с использованием из двух стандартов. Широко распространенным является стандарт EIA RS-232C, разработанный Ассоциацией предприятий электронной промышленности США.

 

Согласно этому стандарту, уровню логической 1 соответствует напряжение +3В (сигнал высокого уровня), а уровню логического 0 – напряжение –3В (сигнал низкого уровня). Кроме того, определен стандарт на специальные сигналы, которыми обмениваются модемы при установлении связи. Стандарт RS-232 используется для устройств последовательного действия, удаленных от ЭВМ на расстояние »100м.

Второй стандарт основан на использовании источника постоянного тока 20мА. В этом случае передача сигналов осуществляется посредством включения и выключения указанного источника.

Источники постоянного тока величиной 20мА впервые были использованы в телефонии, где наряду с такими источниками используются источники 60мА. Источник тока 20мА может применяться для передачи данных на большие расстояния, чем расстояние, предусмотренное стандартом RS-232. Однако рассматриваемому источнику тока присущи и недостатки. Прежде всего, он не имеет управляющих сигналов. Кроме того, он не согласуется с требованиями стандарта RS-232, в частности – отсутствие стандартного разъема. Для защиты УАПП и МП от высокого напряжения и от наводок, которые могут образовываться в линиях последовательной передачи, используется односторонняя развязка.

Для обеспечения связи МП, кроме того, применяются два других стандарта организации высокоскоростной последовательной передачи данных. Один стандартный способ управления каналом связи реализуется в виде процедуры высокоуровневого управления каналом передачи данных (HDLC), второй – в виде процедур синхронного управления каналом передачи данных (SDLC).

В обоих стандартах допускается возможность передачи слов желаемой длины.

Некоторые УАПП вырабатывают сигналы управления и сигналы, используемые для установления связи между двумя модемами.

На рисунке представлен формат передаваемой кодовой комбинации, соответствующей одному символу кода ASCII.

Кодовая комбинация такого формата вырабатывается УАПП. Стартовый бит всегда имеет значение логического 0 и следует после подачи в течении произвольного времени сигнала, соответствующего логической 1. Слово данных (биты D0-D7) содержит кодовую комбинацию из 0 и 1, соответствующую передаваемому символу. Стоп-бит всегда имеет значение логической 1. Не выходе передатчика вплоть до появления следующего стартового бита сохраняется уровень логической 1. На рисунке схематически изображена последовательность 4-х передаваемых символов.

Следует отметить две важные особенности такой формы асинхронной  передачи данных. Во-первых, интервалы времени между передаваемыми символами случайны: стартовый бит может непосредственно следовать за стоп-битом предыдущего символа, однако, их может разделить и интервал времени произвольной длительности. Во-вторых, в течении интервалов времени от момента завершения передачи некоторого символа до момента начала передачи следующего символа передаётся сигнал уровня логической 1.

 

 

 

4. Режим опроса и система прерываний

Если к МП системе подключено несколько устройств ввода-вывода, то любое из них в произвольный момент времени может потребовать обслуживания. МП может обслужить эти устройства одним из двух способов. Первый заключается в использовании подпрограммы опроса. Второй способ реализуется в виде системы прерываний.

Способ обслуживания устройств, при котором используется программа опроса, весьма прост. МП работая по программе опроса, выполняет периодически проверку, или опрос всех устройств ввода-вывода. Целью такого опроса является выявление устройств, нуждающихся в обслуживании. Программу опроса устройств МП вызывает, например, после завершения этапа основных вычислений. Возможный вариант блок-схемы программы опроса представлен на рис. После входа в программу опроса производится пересылка в аккумулятор содержимого регистра состояния порта ввода-вывода с адресом 01. Далее выполняется проверка значения разряда «Запрос на обслуживание». Если этот разряд в регистре состояния порта ввода-вывода имеет значение 1, то вызывается программа обслуживания, соответствующая порту ввода-вывода с адресом 01. После выполнения программы обслуживания осуществляется возврат в программу опроса. Описанные действия производятся для всех портов ввода-вывода, имеющих регистры состояния.

Начало работы программы опроса определяется программным путем, т.е. запуск этой программы производится без использования устройств ввода-вывода. МП начнёт работать по программе опроса тогда, когда при выполнении некоторой управляющей программы ему встретиться команда вызова программы опроса. Программы опроса могут быть использованы только для тех устройств ввода-вывода, которые могут находится в состоянии ожидания обслуживания.

Другой способ запуска программы обслуживания устройства ввода-вывода состоит в подаче и обработке так называемых запросов на прерывание, подаваемых устройствами ввода-вывода. МП имеют специальные входы, на которые могут подаваться запросы на прерывание. Существуют некоторые отличия в системах прерываний различных МП, однако, все они предназначены для достижения единой цели.

Действия МП после появления запроса на прерывание напоминают аппаратно реализованный вызов подпрограммы. Появление на входе прерывания запроса на прерывание обуславливает выполнение МП определённой последовательности действий. Во-первых, МП завершает выполнение текущей команды. Во-вторых, производится запись в стек содержимого счетчика команд. В-третьих, с счётчик команд загружается содержимое двух определённых областей памяти. Следующая команда выбирается из области памяти, адрес которой определяется содержимым этих областей.

Реакцией на прерывание является последовательность действий, представленных в виде блок-схемы. В рассматриваемом примере счётчик команд загружается содержимым областей с адресами FFFB и FFFA. В данном случае мы имеем дело с гипотетическим МП. В разных МП адреса областей памяти, содержимое которых при возникновении прерывания передаётся в счетчик команд, могут быть различными.

Для выхода из программы обработки прерывания используются, как показано на рисунке, команда возврата. При выполнении команды возврата из стека извлекается старое значение счётчика команд. Благодаря этому может быть продолжено выполнение прерванной программы, начиная с команды, перед реализацией которой произошло прерывание.

Обычно в МП схемах требуется обеспечивать обработку запросов на прерывание, которые могут поступать от нескольких устройств. При этом МП должен определять, какому устройству соответствует поступивший запрос на прерывание. Эта задача может быть решена 2-мя способами. Первый способ реализован в МП, имеющих несколько входов для подачи запросов на прерывание. При поступлении запроса на прерывание на  определенный вход МП в счетчик команд загружается содержимое соответствующей этому входу области памяти. В таком случае говорят, что каждое прерывание имеет свой вектор. По вектору МП определяет начальный адрес программы обработки прерывания.

В некоторых МП системах используются внешние аппаратные средства, обеспечивающие ввод различных векторов в МП имеющий один вход запросов на прерывание. Логический блок, выполняющий подачу векторов, связывается с шиной МП.

На рис. изображена схема системы, предназначенной для приема 8-ми запросов на прерывание с учетом приоритета и ввода в МП соответствующих векторов. Такая логическая схема имеет 8 входов (с 10 по 17).

Сигнал «Запрос на прерывание», поступивший на любой из 8-ми входов рассматриваемой схемы, вызывает выполнение двух действий. Во-первых, логическая схема подает сигнал на вход запроса на прерывание МП. Во-вторых, в адресуемый регистр МП будет записано определенное двоичное число. Чтобы прочитать содержимое этого регистра, МП требуется лишь произвести выборку содержимого области с адресом FFFB.

Когда начинается обработка прерывания, МП выбирает старший байт вектора из области памяти с адресом FFFA. На рис. показано, что первая команда программы обработки прерывания имеет адрес 04ХХ. Значение  ХХ равно числу, записанному в регистр, к которому МП может обратиться, как к области с адресом FFFB. Т.о., для каждого из 8-ми входов запроса на прерывание будет формироваться определенный вектор.

Т.о. выглядит таблица векторов (указателей области памяти), которые могли бы быть сформированы с помощью системы прерываний с учетом приоритета.

FFFA

FFFB

HEX

Прерывание

0000 0100

0000 1000

0408

10

0000 0100

0001 0000

0410

11

0000 0100

0001 1000

0418

12

0000 0100

0010 0000

0420

13

0000 0100

0010 1000

0428

14

0000 0100

0011 0000

0430

15

0000 0100

0011 1000

0438

16

0000 0100

0100 0000

0440

17

 

 

 

 

 

 

 

 

 

 

Значение соседних векторов (адресов области памяти) в таблице прерываний отличаются на 8 байт. Области памяти, указываемые векторами, могут содержать либо короткие 8-байтовые программы обработки прерывания, либо 3-байтовые команды безусловного перехода к некоторой программе обработки прерывания.

Еще один довольно простой способ организации обслуживания прерываний – использование программы опроса, блок-схему которой мы рассмотрели раньше. При возникновении запроса на прерывание запускается программа опроса; запуск программы опроса осуществляется также, как выполняется команда вызова подпрограммы. Единственное отличие между этим способом использования программы опроса и способом, описанным выше, заключается в том, что запуск программы опроса в данном случае происходит тогда, когда устройство, нуждающееся в обслуживании, подаёт сигнал запроса на прерывание. При таком способе устройство, подавшее запрос на прерывание, будет обслужено быстрее, чем при обычном способе программного обращения к программе опроса.

Рассматриваемый нами гипотетический МП имеет 3 входа для подачи запросов на прерывание.

Запросу на прерывание, подаваемому на вход "Начальная установка" соответствует вектор, расположенный в областях памяти с адресами FFFE и FFFF. Прерывание, обусловленное подачей сигнала на вход "Начальная установка", имеет наивысший приоритет. Сигнал начальной установки или сброса МП подается в тех случаях, когда в силу каких-либо причин, например после сбоя, требуется возобновить работу МП с некоторого начального состояния. Большинство МП после включения питания начинают свою работу с выполнения команды "Сброс". Часто при выполнении этой команды управление передаётся некоторой вспомогательной программе, которая производит пересылку главной программы из внешней памяти в ОЗУ МП.

Следующий уровень приоритета в МП имеет немаскируемое прерывание. Такому прерыванию соответствует вектор, содержащийся в областях памяти с адресами FFFC и FFFD. На третий вход подаются запросы на прерывание, которые могут быть маскированы. Маскируемому прерыванию соответствует вектор, содержащийся в областях памяти с адресами FFFA и FFFB. Единственное отличие маскируемого прерывания от немаскируемого состоит в том, что в первом случае программист может разрешить или запретить МП реагировать на маскируемое  прерывание. Чтобы маскировать прерывание, программист должен предусмотреть запись значения 1 в разряд "Прерывание" регистра состояния МП.

Если маска прерывания не установлена, т.е. разряд "Прерывание" в регистре состояния МП имеет значение 0, то при поступлении запросов на прерывание МП будет реагировать на эти запросы и выполнять обработку прерываний. Если же маска прерывания установлена в 1, то МП не будет реагировать на сигналы, поступающие на вход Маскируемого прерывания.

Часто маску прерывания устанавливает в самом начале своего выполнения программа обработки прерывания. Тем самым предотвращается возможность других прерываний до тех пор, пока не завершится выполнение программы обработки текущего прерывания. Маска прерывания снимается на том этапе выполнения программы обработки прерывания, когда могут быть разрешены другие прерывания.

Значение разряда "Прерывание" регистра состояния не оказывает никакого влияния на приём запросов на немаскируемые прерывания и их обработку. При поступлении запроса на немаскируемое прерывание МП выбирает вектор прерывания непосредственно из областей с адресами FFFC и FFFD.

 

Overwatch: Game of the Year Edition
Overwatch: Game of the Year Edition


Civilization-5: Complete Edition
Civilization-5: Complete Edition


Шрифт ККМ ШТРИХ-ФР
Шрифт ККМ ШТРИХ-ФР