Связь микропроцессора с устройствами ввода-вывода информации

Во всех микропроцессорных системах применяется программно-управляемая передача данных. Известны три типа программно-управляемой передачи данных: синхронная, асинхронная и с прерыванием программы.

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

Асинхронная передача данных, иногда называемая обменом посредством “рукопожатия”, широко используется. При такой передаче данных микропроцессор перед выполнением операции ввода-вывода проверяет состояние периферийного устройства. Обычно при обмене необходимо:

· Проверить состояние внешнего устройства;

· Активизировать устройство, если последнее готово к обмену;

· Передать данные (ввести или вывести);

· Дезактивировать устройство.

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

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

· После выполнения текущей команды микропроцессор выдает сигнал подтверждения прерывания;

· Микропроцессор запоминает содержимое счетчика команд (обычно в стеке) для того, чтобы после выполнения подпрограммы обслуживания прерывания вернуться к выполнению прерванной программы;

· Запоминается содержимое внутренних регистров и выполняется передача данных под управлением специальной программы (подпрограмма обслуживания прерывания);

· Осуществляется возврат к продолжению выполнения основной программы.

Начало подпрограммы обслуживания прерывания обычно имеет фиксированный адрес в памяти, который называется вектором. В системе могут быть реализованы больше, чем одно прерывание. В этом случае каждое прерывание имеет свой вектор и свою подпрограмму обслуживания. Каждое прерывание в системе может быть программно запрещено или разрешено, это действие называется маскированием и демаскированием соответственно. Если система прерываний одноуровневая, то ни одно из прерываний не может быть обслужено, пока не закончено обслуживание какого-то другого. В многоуровневой системе прерываний каждое прерывание имеет свой приоритет (значимость). Если в какой-то момент времени выполяется прерывание с более низким приоритетом, чем пришедшее, то обслуживание этого прерывание откладывается, а начинается выполнение вновь поступившего прерывания.

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

В этом режиме состояние информационных магистралей может иметь два уровня: нулевое и единичное. В режиме прямого доступа в память внешнее устройство берет на себя функции по управлению обменом информацией с памятью, а выводы микропроцессора, подключенные к шинам должны быть переведены в третье состояние. Третье состояние – это состояние высокого сопротивления (высокоимпедансное состояние), что означает отключение от шины. Для реализации этого внешнее устройство посылает сигнал захват шин на специальный вывод микропроцессора, в ответ на этот сигнал микропроцессор посылает сигнал подтвержление захвата и переводит свои выводы в третье состояние. Режим захвата шин для микропроцессора продолжается до тех пор пока внешнее устройство работает с памятью и пока им не будет снят сигнал захвата шин. В этом режиме состояние микропроцессора “замораживается” без каких-либо изменений. Режим иллюстрируется рисунком.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: