Контроллер прямого доступа к памяти: схема, логика, состояния и режим работы

Программируемый контроллер В качестве примера реализации принципов прямого доступа к памяти (ПДП) рассмотрим микросхему КР580ВТ57. Программируемый контроллер ПДП предназначен для высокоскоростного обмена данными между памятью системы и че­тырьмя внешними устройствами (ВУ).

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

Состав контроллера ПДП

В контроллере можно выделить следующие блоки (рис. 3.11.1): блок обработки запросов, формирователь адреса, блок логики чте­ния–записи, блок управления, буфер данных и два регистра — регистр установки режима и регистр состояния каналов. Рассмотрим их особенности.рис. 3.11.1

Блок обработки запросов предназначен:

? для приема сигналов запроса ЗПДП0–ЗПДП3 на прямой доступ к памяти от ВУ;

? для маскирования входов каналов К0–К3;

? для выдачи сигналов подтверждения запроса ?ППДП0 – ?ППДП3 прямого доступа к памяти, информирующих ВУ о готовности контроллера к обмену данными по каналу ПДП.

Формирователь адреса содержит 16–разрядные регистры начального адреса (РНА0…РНА3) и числа циклов (РЧЦ0…РЧЦ3), схему инкремента–декремен­та, триггер. В процессе выполнения программы начальной установки в РНА запи­сывается начальный адрес ячейки памяти, к которой будет обращаться ВУ по ка­налу ПДП. В 14 младших разрядов регистра числа циклов РЧЦ заносится число N – 1, где N — число циклов. Два старших разряда этого регистра используются для управления обменом по каналу ПДП.

В каждом цикле из РНА считывается два байта адреса. Триггер обеспечивает порядок считывания: старший байт выводится через буфер данных на ШД, а младший байт адреса — по шинам А0…А3, А4…А7. По завершении цикла схема инкремента–декремента содержимое РНА увеличивает, а содержимое РЧЦ умень­шает на единицу. Следует отметить, что выводы контроллера А4…А7 всегда ис­пользуются как выходы для разрядов А4…А7 кода адреса, а выводы А0…А3 ис­пользуются:

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

Блок логики чтения–записи

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

? ?Зп — двунаправленный управляющий трехстабильный вход/выход, использу­емый:

• как вход для получения сигнала из процессора на запись данных во внут­ренние регистры контроллера ПДП при его начальной установке;

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

? ?Чт — двунаправленный трехстабильный управляющий вход/выход, использу­емый:

• как вход для получения из процессора сигнала, разрешающего чтение (вы­вод) содержимого внутренних регистров контроллера;

• как выход длявыдачи сигнала на разрешение считывания данных из ВУ в память;

? ?ЧтП, ?ЗпП — выходы для управления чтением из памяти и записью в память;

? ?ВК — вход (выбор кристалла), на который подается нулевой сигнал выбора микросхемы после того, как установлены сигналы записи или чтения. Сигнал ?ВК инициирует обмен данными между процессором и внутренними регистра­ми контроллера ПДП при программировании; автоматически блокируется в режиме прямого доступа. Вход ?ВК подключается к ША микропроцессорной системы непосредственно или через дешифратор.

Выводы ?Зп, ?Чт подключаются к процессору как входы и к ВУ как выходы, а вы­ходы ?ЗпП, ?ЧтП — к памяти микропроцессорной системы.

На этапе начальной установки в формирователе адреса дешифрируются младшие разряды А3…А0 кода адреса и после поступления от процессора сигна­лов ?Зп, ?Чт организуется запись или чтение программно доступных регистров устройства ПДП. При работе в цикле ПДП логические цепи блока чтения–записи формируют пары сигналов ?Чт, ?ЗпП и ?Зп, ?ЧтП на выходах устройства, обеспечи­вающих тактирование процесса обмена данными между ВУ и памятью.

Блок управления

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

  • ЗЗх (Н RQ ) — выход, с которого снимается сигнал запроса захвата для микро­процессора;
  • ПЗх ( HLDA) — вход, на который поступает сигнал подтверждения захвата от микропроцессора;
  • Гт (RDY )— управляющий вход готовности. Сигнал Гт = 1 от ВУ активизирует работу контроллера ПДП; сигнал Гт = 0 переводит контроллер в состояние ожидания;
  • М128 — выход маркер 128–го цикла: М128 = 1 свидетельствует о том, что те­кущий цикл ПДП является по счету 128–м циклом от конца массива данных;
  • КС (ТС) — выход конец счета: КС = 1 указывает ВУ, что текущий цикл обмена по каналу ПДП является последним при передаче массива данных. Если раз­ряд «КС–стоп» в регистре установки режимов установлен в 1, то канал будет запрещен. Выход КС активизируется (КС = 1), когда содержимое 14–разряд­ного регистра числа циклов в данном канале устанавливается в 0;
  • РА (АЕ) — выход разрешения адреса: РА = 1 указывает системе, что происхо­дят циклы прямого доступа. При этом все шины отключаются от микропроцес­сора. Сигнал может быть использован для блокировки адресной шины в уст­ройствах, не участвующих в прямом доступе, а также для записи старших восьми разрядов кода адреса в буферный регистр адреса и отключения схе­мы выборки устройства. В режиме ПДП выборка устройства осуществляется сигналами ?ППДП0 – ?ППДП3;
  • СтА ( STBA ) — выходстроб адреса,сигнал которого стробирует старший байт адреса памяти, передаваемый через ШД в дополнительный буфер данных. Через этот буфер старший байт адреса поступает на адресную шину микро­процессорной системы;
  • ТИ — вход для тактовых импульсов;
  • Сброс —вход начальной установки устройства. Подача единичного сигнала на этот вход обнуляет содержимое всех программно доступных регистров, что приводит к отключению  каналов К0 – К3.

Буфер данных представляет собой 8–разрядную двунаправленную шину с тремя состояниями, соединяющую контроллер ПДП с системной шиной дан­ных ШД.

Через буфер данных:

  • при программировании в режиме записи восемь бит данных D 7… D 0 из мик­ропроцессора передаются в контроллер ПДП для записи в регистр начально­го адреса, регистр числа циклов или регистр установки режима; при чтении процессором из устройства ПДП выводится содержимое регистра начально­го адреса, регистра числа циклов и регистра состояния каналов;
  • приработе канала ПДП в начале каждого цикла старшие восемь разрядов ад­реса передаются из адресного регистра соответствующего канала в память. Затем ШД освобождается для непосредственного обмена данными между па­мятью и ВУ в течение оставшейся части цикла. Эти данные через устройство ПДП не проходят.

Регистр установки

режимов хранит информацию о запрограммированных режимах автозагрузки, удлиненной и обычной записи, фиксированного приорите­та и циклического сдвига приоритетов, КС–стоп и др. В него при программировании контроллера ПДП записывается 8–разрядное управляющее слово. Регистр установки режима обычно загружается после того, как установлены регистр ад­реса (РгА) и регистр циклов (РгЦ). Назначение разрядов регистра установки режимов приведено в табл. 3.11.1. табл. 3.11.1

Регистр состояния каналов

указывает, в каком из четырех каналов окончился процесс передачи массива. Для этого в младшие разряды РС0–РС3 (флаги завершения обслуживания) записывается значение сигнала КС = 1 конца счета, появляющегося на выходе КС и указывающего на конец массива по соот­ветствующему каналу. Назначение разрядов регистра установки режимов приве­дено в табл. 3.11.2. табл. 3.11.2

Основные состояния и режимы работы устройства.

Основными состояния­ми являются исходное состояние, программирование, ожидание и обслуживание.

Исходное состояние.

При поступлении на вход Сброс единичного сигна­ла устройство переходит в исходное состояние. В этом состоянии маскируются запросы всех каналов ПДП (Р0 = Р1 = Р2 = Р3 = 0), буферные схемы шины А0…А3 переводятся в состояние приема информации.

Программирование.

В состоянии программирования устройства микро­процессор по шине данных (ШД — D 0… D 7) осуществляет запись начального ад­реса, числа циклов и других данных в  соответствующие регистры, адрес которых задается кодом А3А2А1А0на шинах А0–А3 (табл. 3.11.3). Старший разряд А3 кода позволяет различать при А3 = 0 —регистры каналовК0…К3; при А3 = 1 —регистр установки режимов(работает только на запись) ирегистр состояния каналов(ра­ботает только на чтение). Младший разряд А0 выбирает регистры начального ад­реса (А0 = 0) и числа циклов (А0 = 1). Два средних разряда А2А1указывают номера регистров (или каналов) в двоичном коде. Например, код 0101 соответствует РЧЦ2 — регистру числа циклов канала 2. Регистры контроллера ПДП загружаются или из них считывается информация, если микропроцессор выполняет команду записи или чтения путем обращения к устройству и его регистрам. Для этого микропроцессору необходимо выдать соответствующие сигналы записи ?Зп или чтения ?Чт и на системные адресные шины ША выставить адрес регистра в виде кода А3А2А1А0. В это время на шину данных ШД подается необходимая информа­ция D 7… D 0 для записи в регистры или через шину данных ШД читается информа­ция из котроллера ПДП. Для установки состояния программирования необходимо также подать сигнал выборки устройства ?ВК = 0. В связи с тем, что регистры кана­лов являются 16–разрядными, для их загрузки или чтения требуется два про­граммных командных цикла. Вформирователе адресаконтроллера имеется триг­гер, который автоматически переключает цепи во время операции чтения или за­писи. Этот триггер определяет доступ к старшему или младшему байтам регистра. Сбрасывается триггер подачей единичного сигнала на входСброса,а также вся­кий раз при загрузке регистра установки режима.

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

Ожидание.

В состоянииожиданияконтроллер принимает от ВУ сигнал за­проса на получение цикла ПДП (ЗПДП0–ЗПДП3) и вырабатывает для микропро­цессора сигнал запроса захвата (ЗЗх). В этом состоянии системные шины нахо­дятся под управлением микропроцессора.

Обслуживание.

После поступления от микропроцессора сигнала подтверж­дения захвата (ПЗх) при наличии сигнала запроса (ЗПДП0 – ЗПДП3) от ВУ контрол­лер вырабатывает сигнал подтверждения запроса (?ППДП0 – ?ППДП3) для одного из ВУ и переходит всостояние обслуживания. Вэтом состоянии системные шины находятся под управлением контроллера, и реализуется один из запрограм­мированных режимов ПДП:

  • младшие 8 разрядов адреса памяти поступают на шины А0–А3, А4–А7, стар­шие 8 разрядов — на шину данных ШД;
  • формируются соответствующие сигналы управления ?ЧтП и ?ЗпП, ?Зп и ?Чт, ко­торые позволяют ВУ получить из ячейки памяти или передать в ячейку памя­ти за один цикл байт данных.

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

  • дальнейшее наращивание адреса прибавлением единицы после очередного цикла;
  • блокировка канала ПДП (режим «КС–стоп»);
  • повторение ранее выбранного массива адресов (режим автозагрузки).

В процессе выполнения циклов ПДП возможны три режима работы:

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

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

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