Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет мой.doc
Скачиваний:
15
Добавлен:
22.12.2018
Размер:
1.6 Mб
Скачать

Формат команд: доступа к биту; доступа к битам маски.

Регистру одиночных масок присвоен адрес 0Ah (D4h). По этому адресу направляется 3-битовая команда, в которой биты Dl и D0 указывают на номер бита в регистре одиночных масок, а бит D2 определяет значение этого бита (1 или 0). Формат команды доступа к биту показан на рис. 10.

Рис. 10. Формат команды доступа к биту

Установка программного запроса выполняется с помощью команды (см. рис. 10), посылаемой в 4-битовый регистр запросов по адресу 09h (DMA1) или D2h (DMA2), причем бит D2=l указывает на наличие запроса. Для осуществления одновременной установки (сброса) битов регистра маски необходимо по адресу OFh (DMA1) или DFh (DMA2) направить команду доступа к битам (D3-D0), имеющую следующий формат (рис. 11).

Рис. 11. Формат команды доступа к битам маски

По сигналу RESET (сброс) выполняется установка всех битов регистра маски, которые блокируют все программные или аппаратные запросы DMA. С помощью порта OEh (DMA1) или DCh (DMA2)(сброс регистра маски) можно разрешить обработку запросов DMA.

В DMA применяется двунаправленная 8-битовая шина данных, по которой происходит запись выводимых из процессора байтов данных в 16-битовые регистры выбранного канала. Для управления занесением байта данных в младшую часть (А7-А0) или старшую часть (А15-А8), например, регистра текущего адреса используется триггер первый/последний (Тп/п), который при нулевом значении разрешает запись байта данных в младшую часть регистра, а при единичном значении - в старшую часть регистра. При инициализации DMA в начале программы следует один раз сбросить триггер Тп/п. который затем автоматически устанавливается (сбрасывается) при передаче каждого байта.

Регистр данных DMA предназначен для временного хранения байта данных, передаваемого в режиме память-память. После завершения передачи байтов данных, последний байт может быть считан и введен в процессор

Каждый канал DMA содержит четыре 16-битовых регистра. Регистр текущего адреса после передачи каждого байта (слова) автоматически уменьшается или увеличивается на единицу. В циклах ПДП биты А 7-А 0 выводятся по шине адреса DMA, а биты А8-А15 - по шине данных.

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

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

Схема подключения к DMA младших бит адреса.

В работе КПДП можно выделить 2 режима: режим связи с процессором (инициализации КПДП) и режим управления передачей данных между оперативной памятью и периферийным устройством (блочной передачей в циклах ПДП В первом режиме процессор является задатчиком на системной шине, а КПДП - исполнителем. Режим инициализации КПДП выполняется, если сигналы CS = DRQ=0, т.е. отсутствует режим ПДП. Для доступа к портам DMA используются 4 младших бита адреса АЗ-АО, сигналы CS, IOR и IOW. Здесь следует иметь в виду, что на адресные выводы А 3-А 0 DMA2 подаются соответственно смещенные адресные сигналы ХА4 -ХА2 (рис. 12).

Рис. 12. Схема подключения к DMA младших битов адреса

Процессор при инициализации КПДП выполняет следующую последовательность действий.

1. Программирует регистр режима заданного канала DMA (операцию запись или чтение, тип передачи, инкремент или декремент адреса).

2. Вычисляет 24-битовый адрес памяти.

3. Сбрасывает триггер первый / последний (Тп/п).

4. Выводит младший и старший байты в регистр текущего адреса канала.

5. Устанавливает старшую часть адреса в требуемый регистр страницы.

6. Направляет младший и старший байты в регистр текущего числа циклов канала.

7. Сбрасывает бит маски выбранного капала DMA (открывает канал).

Во втором режиме (циклах ПДП) КПДП является задатчиком на шине, а оперативная память - исполнителем. На рис. 13 представлена упрощенная блок-схема циклов ПДП.

При выполнении режима ПДП DMA в соответствии с синхросигналами CLK переходит условно или безусловно из одного состояния, например SO. в другое состояние SI, выполняя соответствующие функции. Состояние SI является исходным (пассивным) состоянием DMA при котором опрашиваются сигналы запросов ПДП (DRQN). С поступлением активного сигнала DRQN DMA переходит в состояние S0, формируя сигнал запроса шины (HRQ). После этого DMA ожидает приход сигнала подтверждения шины (HLDA). Сигнал HLDA устанавливает КПДП задатчиком на системной шине. Если старшая часть адреса (А15-А8) не изменяется, то можно исключить программным способом состояние S1 (сжатая синхронизация), связанное с выводом старшей части адреса. С этой целью проверяется условие SI. указывающее на обход или переход к состоянию S1. Обход состояния SI осуществляется в том случае, если в регистре управления DMA задана сжатая синхронизация. В состоянии SI DMA вырабатывает сигнал разрешения адреса AEN и выдает биты старшей части адреса А15-А8 по шине данных XD7 - XD0.

После перехода в состояние S2 DMA реализует следующие действия:

1. Выводит младшую часть адреса (А7-А0) по шипе адреса.

2. Формирует сигнал строб адреса (ADSTB) для фиксации битов А 15-А8 во внешнем регистре.

3. Вырабатывает сигнал подтверждения ПДП(iDACK) в контроллер периферийного устройства.

4. Устанавливает сигналы IOR и MEMW при записи в память или MEMRH IOW при чтении памяти.

5. Формирует сигнал ЕОР. если обмен завершен.

Блок-схема циклов ПДП.

Рис. 13. Упрощенная блок-схема циклов ПДП

Для согласования с медленной» памятью используется сигнал готовности (RDY). Пассивный уровень сигнала RDY вызывает в DMA состояние ожидания (SW). С появлением активного уровня сигнала RDY DMA анализирует осведомительный сигнал S3 и если запрограммирована сжатая синхронизация, то состояние S3 исключается. Для нормальной синхронизации состояние S3 выполняется и формируются расширенные сигналы записи MEMW и IOW учитывающие изменение старшей части адреса. В состоянии S4 DMA выполняет анализ режимов обслуживания (одиночная передача, блочная передача или это передача по требованию) и в зависимости от сигнала ЕОР переходит в исходное состояние или на продолжение следующего цикла ПДП.

Структурная схема МК с ПДП.

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

Рис. 14 Обобщенная структурная схема МК с ПДП

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

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

Структурная схема передачи данных между ОП и буферной памятью.

Рис. 15. Структурная схема передачи данных между ОП и БП

Рассмотрим, например, цикл режима чтения блока данных из ОП и запись их в БП. Последовательность действий начинается с того, что МП инициализирует канал 0 внешнего КПДП и открывает его (сбрасывает бит маски). На вход активного канала 0 поступает запрос DRQ0 и внешний КПДП формирует сигнал запроса шины (HRQ) поступающий в МП. После установки сигнала HLDA со стороны МП внешний КПДП получает управление, направляет начальный адрес в БП. формирует сигнал подтверждения ПДП (DACK 0) и переходит в состояние ожидания до получения сигнала READY.

При наличии разрешения ПДП (РПДП) заранее установленного в блоке интерфейса со стороны процессора, на вход системного КПДП поступает запрос DRQ1. Системный КПДП захватывает интерфейс, выводит адрес в ОП, осуществляет чтение содержимого выбранной ячейки ОП по сигналу MEMR. устанавливает сигнал DACK1, разрешающий работу приемопередатчика и ДшУС в блоке интерфейса, схемы которых будут представлены ниже. После этого системный КПДП формирует сигнал IOW (запись в порт), по которо­му блоком интерфейса вырабатываются: сигнал записи данных (ЗпД) и сигнал готовности (READY), запускающий внешний КПДП на продолжение работы канала 0. Байт данных из ОП по шипе SD7-SD0 поступает через открытый сигналом DACK1 приемопередатчик блока интерфейса на буферизованную шину BD7-BD0 и записывается в ячейку БП, выбранную адресом внешнего КПДП по сигналу ЗпД блока интерфейса. С поступлением сигнала READY во внешний КПДП завершается его цикл работы, связанный с передачей одного байта (увеличивается или уменьшается текущий адрес БП и уменьшается содержимое счетчика байтов). Если внешний КПДП запрограммирован на выполнение блочного режима работы, то осуществляется очередной цикл ПДП.