Способы обмена данными

Способы обмена данными Основные способы обмена данными.

Между микропроцессорной системой (МС) и внешним устройством (ВУ) происходит обмен полезной информацией в виде слов данных (

Data

Word

DW

) и служебной информацией в виде управля­ющих слов (

Control

Word

CW

) и слов состояния (

Status

Word

SW

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

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

Программно–управляемый обмен данными.

Обмен инициируется и выпол­няется процессором с помощью:

? специальных команд ввода–вывода,

при этом в формате команды должен со­держаться код выполняемой операции и номер выбираемого порта ВУ;

? команд обращения к

ОЗУ, при этом каждый порт ВУ рассматривается как ад­рес, отличный от адресов других ячеек.

С точки зрения использования вспомогательных сигналов различают прямой и условный обмен.

Прямым, или безусловным,

вводом–выводом называется такая процедура, при которой для активизации обмена не требуется никаких условий и вспомогатель­ных сигналов. Прямой ввод/вывод возможен только с внешними устройствами, которые всегда готовы к обмену. Он является составной частью более сложных протоколов обмена.

Условным

вводом–выводом называется такая процедура, при которой активи­зация обмена возможна при выполнении условия готовности к обмену ВУ.

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

Таким образом, условный ввод/вывод применяется для обмена с низкоскоро­стными внешними устройствами и сопровождается сигналом готовности ГтВУ, ге­нерируемым ВУ. Сигнал готовности ГтВУ вводится в процессор в составе слова состояния и информирует его о готовности ВУ к обмену. После завершения опе­рации обмена сигнал готовности ГтВУ должен быть снят и выставлен перед новой операцией. Для этого процессор информирует ВУ об окончании операции с по­мощью сигнала подтверждения Пт. рис. 3.2.1

На рис. 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, а) в случае неготовности ВУ микропроцес­сор находится в режиме ожидания; при совмещенном обмене (рис. 3.2.2, б) после опроса ВУ микропроцессор возвращается к выполнению основной программы.

По способу кодирования различают обмен данными в параллельном и после­довательном коде.

Необходимость передачи данных в последовательном коде обусловлена двумя факторами:

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

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

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

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

Обмен с прерыванием программы.

При этом способе инициатором обмена является внешнее устройство, которое подает специальный сигнал ЗАПРОС ПРЕ­РЫВАНИЯ на соответствующий вход процессора. После выполнения текущей микрокоманды процессор прекращает выполнение основной программы, выра­батывает сигнал ПОДТВЕРЖДЕНИЕ ПРЕРЫВАНИЯ и переходит к подпрограмме обработки прерывания, расположенной в фиксированной области памяти. После выполнения этой подпрограммы происходит возврат к основной программе.

Обмен данными с помощью прямого доступа к памяти.

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

До начала работы канала ПДП в счетчик адреса заносится адрес ячейки ОЗУ, с которой начинается массив данных, и в счетчик слов (в прямом или дополни­тельном коде) — число слов в массиве. При передаче каждого слова содержимое этих счетчиков изменяется на единицу и обмен данными производится автомати­чески, пока не будет передан весь массив слов.

В микропроцессорных системах встроены (или предусматриваются) интер­фейсные схемы для организации ввода/вывода.

Понравилась статья? Поделиться с друзьями:
Все об энергетике, электротехнике и электронике
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: