Программируемый контроллер прямого доступа к памяти
Контроллер прямого доступа к памяти (ПДП) служит для организации обмена данными между внешними устройствами и памятью, без участия центрального процессора. В персональных микро-ЭВМ используется контроллер ПДП типа КР580ВТ57, который имеет четыре независимых канала обмена, каждый из которых адресует свою область внешней памяти путем последовательного инкрементирования выбранного адреса. Контроллер ПДП имеет приоритетную логику, реализующую запросы от четырех периферийных устройств и производит счет циклов ПДП каждого канала.
Каждый канал ПДП имеет регистр адреса и регистр количества циклов (оба 16 разрядов), шину адреса и шину данных. Шина адреса разделена на две части (А3 – А0) – двунаправленная часть шины адреса, при работе которой во входном режиме указанные разряды адреса используют для инициализации определенного канала, а в выходном режиме – как младший полубайт адреса внешней памяти. А7 – А4 являются выходами и используются для выдачи адреса на внешнюю память. Шина данных (D7 – D0) обеспечивает двунаправленный обмен между микропроцессором и КПДП. По этой шине принимаются управляющие слова и выдается старший байт адреса внешней памяти.
Сигнал Чт В/В разрешает (во входном режиме) чтение регистра состояния (РС) или записанных в ЗУ контроллера начального адреса и числа циклов передачи данных (ПД) любого из каналов. В выходном режиме Чт В/В разрешает выдачу информации из внешнего устройства ввода – вывода. Сигнал Зп В/В разрешает во входном режиме загрузку регистров установки режимов, начального адреса и количества циклов для любого канала ПДП. В выходном режиме Зп В/В разрешает запись информации во внешнее устройство ввода – вывода. Выходные сигналы Чт П и Зп П предназначены для внешнего ЗУ.
Входные сигналы ЗПД3 – ЗПД0 поступают асинхронно с внешних устройств и воспринимаются БИС как запросы на обмен с ЗУ. Выходные сигналы ППД3 – ППД0 являются ответными по отношению к ЗПД. Они вырабатываются контроллером в соответствии с приоритетом внешних устройств. Сигнал КС – вырабатывается при установке в нуль шестнадцатиразрядного регистра количества циклов, и указывают периферийному устройству, что данный цикл ПД последний. Сигнал на выводе М128 – появляется на каждом 128 цикле от конца массива, а также во время действия сигнала КС.
Структурная схема БИС КР580ВТ57 показана на рисунке 4.11. Схема приема запросов (СПЗ) предназначена для приема и формирования ответных сигналов запроса в соответствии с приоритетом внешних устройств. Внутреннее запоминающее устройство (ВЗУ) служит для хранения начального адреса и числа циклов ПД для каждого канала. Для этого в нем расположены для каждого канала шестнадцатиразрядный регистр адреса РгА и регистр циклов РгЦ. РгА загружается адресом первой ячейки памяти, к которой будет обращение. Младшие 14 разрядов РгЦ указывают число циклов минус 1 до конца счета (сигнал КС). Разряды 14 и 15 РгЦ указывают на вид обмена 00 – контроль, 01 – запись в ЗУ, 10 – чтение ЗУ, 11 – запрещенная комбинация.
Схема формирователя сигналов Зп/Чт обеспечивает обмен информацией между микропроцессором и БИС контроллер с одной стороны, и БИС и ОЗУ и прерывающее устройство – с другой.
Регистр установки режимов РгР хранит информацию о режимах работы БИС, к которым относятся «Автозагрузка», «Конец счета-стоп», «Удлиненная запись», «Обычная запись», «Циклический сдвиг приоритета» и «Фиксированный приоритет». Разряды 3¸0 РгР разрешает работу соответствующего канала, а 7¸4 –обеспечивает необходимый режим контроллера. Регистр состояния каналов РгС указывает номер канала, который достиг конца счета.
Остальные линии БИС имеют следующее назначение:
А0 – А7 – инициализация канала или младший полубайт адреса.
Стр А – указывает, что на шине данных выдан старший байт адреса внешнего ЗУ.
РА – разрешение адреса для блокировки адресных шин в невыбранных устройствах, указывает, что протекает цикл ПД
ТИ – тактовый импульс Ф2ТТЛ –уровень.
Гот – для обеспечения совместной работы ПДП и медленных внешних устройств.
Микросхема КР580ВТ57 может находиться в одном из следующих состояний: исходном, программирования, ожидания, обслуживания.
Рисунок 4.11 – Структурная схема контроллера прямого доступа в память |
В исходное состояние микросхему переводит внешний сигнал установки. В этом состоянии маскируются все запросы признаков ПД, а буферы А3 ¸ А0 переводятся в состояние приема информации. В состоянии программирования микропроцессор имеет доступ к внутренним регистрам выбранного канала в соответствии с состоянием управляющих сигналов. В состоянии ожидания БИС находится либо от момента окончания программирования до выдачи сигнала ПДП, либо в промежутках между циклами ПД.
При получении от внешнего устройства сигнала запроса на ПДП (ЗПД0-ЗПД3), например, на вывод данных из памяти, контроллер вырабатывает сигнал запрос захвата ЗЗхв, который поступает на соответствующий вход микропроцессора. МП на каждом втором такте машинного цикла проверяет состояние этого входа и при активном сигнале ЗЗхв переводит свои шины в третье (высокоимпедансное) состояние, т.е. отключается от шин данных, адреса и управления и выдает сигнал подтверждение захвата ПЗхв. В таком состоянии процессор находится, пока на его входе присутствует активный сигнал ЗЗхв. Управляемыми остаются только линии процессора ЗЗхв и ПЗхв.
После получения от микропроцессора сигнала ПЗхв контроллер выдает сигнал ППД, соответствующему внешнему устройству и переходит в состояние обслуживания ПДП, в котором системные шины находятся под управлением контроллера ПДП. При этом на шину адреса по линиям А0-А7 котроллер выставляет младший байт адреса, а на шину данных – старшую часть адреса. Присутствие адреса на шине данных сопровождается стробом адреса СтрА, который используется для записи этой части адреса во внешний регистр. Вследствие этого на память поступает 16-разрядный адрес ячейки с которой начинается прямой доступ. После снятия адреса с шины данных контроллер вырабатывает сигнал чтения содержимого ячейки памяти ЧтП, в результате чего память выставляет на шину данных восьмиразрядное слово, которое поступает на внешние устройства. После завершения переходного процесса установки данных на шине контроллер вырабатывает сигнал записи во внешнее устройство ЗпВ/В. Очевидно, что данные будут восприняты только тем устройством, которое получило одновременно сигналы ППД и ЗпВ/В.
Затем контроллер ПДП уменьшает счетчик циклов на 1 и, если счет не закончился, повторяет цикл чтения из памяти и запись во внешнее устройство. Запись в память в режиме ПДП осуществляется аналогично, но при этом контроллер формирует сначала сигнал ЧтВ/В, а потом ЗпП. Если содержимое счетчика циклов стало равным нулю, то контроллер формирует сигнал конец счета КС и снимает сигнал ЗЗхв. Процессор возвращается в рабочее состояние и продолжает управление шинами самостоятельно.
Особенности программирования БИС контроллера ПДП:
1. При записи информации в регистры РА и РЦ выполняются по два обращения к регистрам, причем вначале записывается младший байт, а затем – старший. Запись осуществляется по одному и тому же адресу. Операцию записи шестнадцатиразрядного слова в регистры необходимо всегда выполнять полностью.
2. В микропроцессорной системе, работающей с прерываниями, следует запрещать прерывания перед выполнением двойного обращения к регистрам.
3. После сигнала Сброс в регистре режимов РР содержатся нули и работа всех каналов запрещена. Запись байта в РР необходимо всегда выполнять после загрузки параметров в РА и РЦ.
4. После каждого запроса ПДП контроллер необходимо перепрограммировать, если не был установлен режим автозагрузки.
В контроллерах ПДП для работы с 20- 24-разрядной шинами адреса добавляется 8-битовый регистр страниц. Для 20-разрядной ША используется 4 бита этого регистра, а для 24-разрядной – все 8.
Дата добавления: 2016-02-09; просмотров: 1227;