Файл: Конспект лекций (дополнительный, обновленный).doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 28.12.2024

Просмотров: 1996

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

  • выборка команды (прием кода операции и его дешифрация);

  • считывание из памяти;

  • запись в память;

  • ввод из порта ввода;

  • вывод в порт вывода;

  • прерывание;

  • останов.

Каждый машинный цикл состоит из микрокоманд и выполняется за определенное количество тактов сигналов синхронизации. Действия в каждом из тактов индивидуальны для конкретного микропроцессора, но можно выделить общие типовые действия для многих их типов (в порядке очередности их выполнения):

  • вывод на шину адреса кода адреса вызываемого порта или ячейки памяти, а на шину управления сигналов их активизации;

  • анализ ответных управляющих сигналов, выставление на шину данных передаваемой информации или чтение получаемой;

  • расшифровка команды и выполнение внутренних операций.


13.4. Организация ввода-вывода в микропроцессорной системе.

Вводом-выводоминформации называют процесс передачи данных между микропроцессором и основной памятью (ОЗУ, ПЗУ), между микропроцессором и внешними устройствами, а также между основной памятью и внешними устройствами. Различают три режима ввода-вывода: программный, по прерываниям и прямой доступ к памяти.

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

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

Переход к обработке запроса прерывания осуществляется по сигналу запроса прерывания INT от внешнего устройства (рис.13.1) по мере готовности на его выходе данных к передаче или по мере потребности получения им данных от микропроцессора. В микропроцессорной системе может быть подключено несколько внешних устройств по прерываниям (по линиям IRQ0…IRQn). Поэтому внешнее устройство должно сообщить не только о факте прерывания, но и свой номер, чтобы микропроцессор знал, какую именно обрабатывающую подпрограмму запускать. Для этих целей в микропроцессорных комплектах микросхем имеются обычно специальные микросхемы, называемые контроллерами прерываний. Контроллер прерывания воспринимает хотя бы одно прерывание с линий IRQ0…IRQn и формирует сигнал запроса прерывания INT на шину управления микропроцессора. Далее он должен в виде двоичного кода сформировать на шину данных микропроцессора команду запроса прерывания, где определенные биты этого кода будут указывать на номер устройства, запросившего прерывание. Поскольку сигнал запроса прерывания может поступить в любое время, даже когда микропроцессор выполняет очередную команду программы и его шина данных занята, то анализ этого сигнала микропроцессором должен выполниться только после завершения текущей выполняемой команды. Поэтому контроллер прерывания должен дождаться от микропроцессора подтверждения прерывания в виде сигнала INTA, и только после этого выставить на шину данных код команды прерывания.


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

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

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


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


13.5. Интерфейсы микропроцессорных систем.

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

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

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

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