Основные способы обмена данными.
Между микропроцессорной системой (МС) и внешним устройством (ВУ) происходит обмен полезной информацией в виде слов данных (
Data
Word
—
DW
) и служебной информацией в виде управляющих слов (
Control
Word
—
CW
) и слов состояния (
Status
Word
—
SW
). Служебная информация может занимать значительный объем. Поэтому в общем случае для обмена информацией отводится ряд портов ввода/вывода (ВВ), образующих пространство доступа к внешнему устройству (ВУ). Ввод и вывод всегда рассматриваются по отношению к микропроцессору. Обмен информацией между процессором и ВУ осуществляется по определенным правилам. Совокупность правил, называемых протоколом обмена, является основой для составления драйвера ВУ. Драйвер представляет собой набор подпрограмм, обслуживающих обмен ВУ с микропроцессором.
Существуют три способа обмена данными: программно управляемый обмен, обмен с прерыванием программы и обмен по каналу прямого доступа к памяти. Рассмотрим в общих чертах особенности каждого способа обмена.
Программно–управляемый обмен данными.
Обмен инициируется и выполняется процессором с помощью:
? специальных команд ввода–вывода,
при этом в формате команды должен содержаться код выполняемой операции и номер выбираемого порта ВУ;
? команд обращения к
ОЗУ, при этом каждый порт ВУ рассматривается как адрес, отличный от адресов других ячеек.
С точки зрения использования вспомогательных сигналов различают прямой и условный обмен.
Прямым, или безусловным,
вводом–выводом называется такая процедура, при которой для активизации обмена не требуется никаких условий и вспомогательных сигналов. Прямой ввод/вывод возможен только с внешними устройствами, которые всегда готовы к обмену. Он является составной частью более сложных протоколов обмена.
Условным
вводом–выводом называется такая процедура, при которой активизация обмена возможна при выполнении условия готовности к обмену ВУ.
Большинство ВУ работает асинхронно по отношению к процессору. При асинхронном обмене информацией важной задачей является проверка готовности ВУ. Поэтому ВУ должно иметь аппаратные средства для выработки информации о своем внутреннем состоянии. Микропроцессор считывает эту информацию, передает ее в аккумулятор, анализирует и на основе анализа принимает решение о готовности ВУ. При отсутствии готовности ВУ процессор переходит в состояние ожидания. Если обнаружено состояние готовности, то выполняются операции передачи данных. Таким способом достигается сопряжение во времени работы процессора и таких устройств, которые по быстродействию уступают процессору.
Таким образом, условный ввод/вывод применяется для обмена с низкоскоростными внешними устройствами и сопровождается сигналом готовности ГтВУ, генерируемым ВУ. Сигнал готовности ГтВУ вводится в процессор в составе слова состояния и информирует его о готовности ВУ к обмену. После завершения операции обмена сигнал готовности ГтВУ должен быть снят и выставлен перед новой операцией. Для этого процессор информирует ВУ об окончании операции с помощью сигнала подтверждения Пт.
На рис. 3.2.1 приведены диаграммы условного ввода/вывода с помощью контроллера обмена. В этом случае могут быть также использованы сигналы готовности Гт контроллера и подтверждения ПтВУ внешнего устройства.
При вводе (рис. 3.2.1, а) процессы протекают в следующей последовательности:
? если сигнал подтверждения микропроцессора (контроллера) Пт = 0, ВУ выставляет на шине ШВУ новые данные и сигнал готовности ГтВУ = 1;
? так как ГтВУ = 1, процессор дает команду на ввод данных, и данные по ШД поступают в аккумулятор;
? процессор через контроллер выставляет сигнал подтверждения Пт = 1, извещая ВУ о том, что данные введены;
? при Пт = 1 ВУ снимает сигнал готовности (ГтВУ =0);
? при ГтВУ = 0 процессор снимает сигнал подтверждения (Пт = 0).
При выводе данных (рис. 3.2.1, б) процессы протекают в следующей последовательности:
? если сигнал готовности контроллера Гт = 0, ВУ осуществляет сброс сигнала подтверждения (ПтВУ = 0), после чего процессор на ШД выставляет новые данные;
? при сигнале подтверждения ПтВУ = 0 контроллер устанавливает сигнал готовности Гт = 1;
? данные по ШВУ выводятся в ВУ;
? при Гт = 1 ВУ устанавливает сигнал подтверждения (ПтВУ =1);
? при ПтВУ = 1 процессор снимает ранее установленный сигнал готовности (Гт = 0).
Рассмотренный протокол обмена называется квитированием.
Возможны два вида условного обмена: с занятием цикла и совмещенного. При обмене с занятием цикла (рис. 3.2.2, а) в случае неготовности ВУ микропроцессор находится в режиме ожидания; при совмещенном обмене (рис. 3.2.2, б) после опроса ВУ микропроцессор возвращается к выполнению основной программы.
По способу кодирования различают обмен данными в параллельном и последовательном коде.
Необходимость передачи данных в последовательном коде обусловлена двумя факторами:
? наличием устройства (например, клавиатура, дисплей, телетайп), принцип работы которого базируется на использовании последовательного кода;
? удалением внешнего устройства от процессора на значительное расстояние. Дело в том, между отдельными проводниками соединительной линии между источником и приемником информации существует емкостная связь. С увеличением длины соединительной линии растет емкость между ее отдельными проводниками. Поэтому при передаче импульсных сигналов по одному проводнику в других проводниках наводятся помехи, уровень которых может быть соизмеримым с уровнем полезных сигналов.
В этих условиях обмен информацией между процессором и внешним устройством должен сопровождаться преобразованием параллельного кода в последовательный код при выводе данных и последовательного кода в параллельный — при вводе данных. Указанные функции возлагаются на контроллер обмена, который обычно выполняется в виде интегральной схемы.
К достоинствам программно–управляемого обмена данных относится его простота, к недостаткам — бесполезная трата времени на ожидание готовности ВУ и невозможность обеспечения своевременной реакции на внезапно возникшую потребность ВУ в обмене информацией.
Обмен с прерыванием программы.
При этом способе инициатором обмена является внешнее устройство, которое подает специальный сигнал ЗАПРОС ПРЕРЫВАНИЯ на соответствующий вход процессора. После выполнения текущей микрокоманды процессор прекращает выполнение основной программы, вырабатывает сигнал ПОДТВЕРЖДЕНИЕ ПРЕРЫВАНИЯ и переходит к подпрограмме обработки прерывания, расположенной в фиксированной области памяти. После выполнения этой подпрограммы происходит возврат к основной программе.
Обмен данными с помощью прямого доступа к памяти.
По этому способу используется канал прямого доступа к памяти (ПДП), по которому массивы данных передаются непосредственно между внешним устройством (ВУ) и ОЗУ, минуя процессор. Это позволяет достичь наибольшей скорости передачи, но требует определенных аппаратных затрат для организации канала. Аналогично случаю обмена по прерыванию ВУ посылает в процессор сигнал запроса на прямой доступ. После отправления сигнала подтверждения процессор прекращает работу по выполнению текущей программы, отключает свои буферные регистры от шин адреса и данных, а также прекращает выработку управляющих сигналов. Таким образом, процессор как бы замирает до окончания процедуры ПДП, чем этот режим и отличается от режима обработки прерывания. Все функции адресации, передачи данных и управления выполняет контроллер ПДП, содержащий счетчик адреса, счетчик числа слов в массиве, а также ряд триггеров и логических схем, которые внесены в блок управления.
До начала работы канала ПДП в счетчик адреса заносится адрес ячейки ОЗУ, с которой начинается массив данных, и в счетчик слов (в прямом или дополнительном коде) — число слов в массиве. При передаче каждого слова содержимое этих счетчиков изменяется на единицу и обмен данными производится автоматически, пока не будет передан весь массив слов.
В микропроцессорных системах встроены (или предусматриваются) интерфейсные схемы для организации ввода/вывода.