Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Avdeev

.pdf
Скачиваний:
158
Добавлен:
01.06.2015
Размер:
1.99 Mб
Скачать

81

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

 

 

 

DMA 1

 

 

 

 

 

DMA 2

 

 

A0

A1

A2

A3

 

A0

A1

A2

A3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XA0 XA1 XA2 XA3

XA4

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

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

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

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

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

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

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

7.Сбрасывает бит маски выбранного канала DMA (открывает канал). Во втором режиме (циклах ПДП) КПДП является задатчиком на шине, а опе-

ративная память – исполнителем. На рис. 3.21 представлена упрощенная блок-схема циклов ПДП.

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

82

 

 

 

 

 

DRQ

 

 

 

 

HLDA

 

 

 

 

 

 

 

 

 

 

RDY

 

 

 

 

 

 

 

 

 

SI

 

SI

 

SI

 

 

S0

 

S0

 

 

S1

 

S2

 

SW

 

SW

 

SW

 

SW

 

S3

 

S4

 

SI

 

SI

 

SI

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CLK

SI

ДА

EOP НЕТ

НЕТ

Анализ режимов

обслуживания

S4

Расширение

MEMW, IOW

S3

ДА

S3 НЕТ

ДА

DRQ НЕТ

ДА

HRQ

S0

HLDA НЕТ

ДА

S1

ДА

AEN

S1 A15-A8 (XD7-XD0)

 

A7-A0

 

ADSTB

S2

DACK

IOR, MEMW (MEMR, IOW)

 

 

EOP (обмен завершен)

RDY

НЕТ SW

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

синхронизация), связанное с выводом старшей части адреса. С этой целью проверяется условие S1, указывающее на обход или переход к состоянию S1. Обход состояния S1осуществляется в том случае, если в регистре управления DMAзадана сжатая синхронизация. В состоянии S1 DMA вырабатывает сигнал разрешения адреса AEN

83

и выдает биты старшей части адреса А15-А8 по шине данных XD7-XD0. После перехода в состояние S2 DMA реализует следующие действия:

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

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

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

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

MEMR и IOW при чтении памяти.

5. Формирует сигнал EOP, если обмен завершен.

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

3.4. Многофункциональный контроллер ПДП

Вкачестве примера использования микросхемы КПДП (I8237) и координации

ееработы в составе системы рассмотрим обобщенную структурную схему многофункционального контроллера (МК), представленную на рис. 3.22.

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

84

ISA

 

 

 

Системный

 

 

МК

 

Внешний

Микро-

КПДП (канал 1)

 

 

 

КПДП

процессор

Оперативная

 

Адрес

 

Блок

Буферная

Интерфейс

память

ПУ

 

интерфейса

память

 

 

Процессор

 

 

 

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

цели в системном КПДП используется канал 1, а во внешнем КПДП – канал 0), БП

ипроцессором (канал 1 внешнего КПДП), БП и МП (канал 2 внешнего КПДП), БП

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

На рис. 3.23 изображена структурная схема передачи данных между ОП и БП в циклах ПДП.

-MEMW

-MEMR

 

 

 

 

 

HLDA

 

 

DRQ 1

 

РПДП

 

HRQ

 

 

&

DACK0

Внешний

PD7-PD0

МП

Системный

 

 

 

"1" DRQ 0

КПДП (канал 0)

 

КПДП (канал 1) -DACK 1

 

 

 

READY

 

 

 

 

-IOR, -IOW

 

Адрес

 

Адрес

Блок

 

 

 

 

 

 

 

ОП

SD7-SD0 интерфейса BD7-BD0

БП

 

 

 

 

 

 

 

 

IRQ 10

 

EOP

 

 

 

 

 

ЧтД

 

 

 

 

 

 

 

 

 

 

 

 

ЗпД

 

 

 

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

 

85

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

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

Описанная последовательность основных действий компонентов системы (диаграмма режима чтения ОП в циклах ПДП) показана на рис. 3.24.

86

 

 

 

 

 

 

 

ОП

Системный

 

Блок

БП

Внешний

МП

КПДП (канал 1)

интерфейса

КПДП (канал 0)

 

 

 

 

 

 

 

Разрешение

 

Инициализация

RESET

 

 

 

ПДП

 

DRQ 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

HRQ

 

 

 

 

 

 

 

HLDA

 

 

 

 

 

 

 

Адрес

 

 

 

DRQ 1

 

 

DACK 0

 

 

 

Адрес

 

 

 

 

 

 

 

 

 

 

 

 

 

-MEMR

 

 

 

 

 

 

 

Данные

 

 

Состояние

 

 

 

-DACK 1

 

 

ожидания

 

 

 

 

 

 

 

 

 

-IOW

ЗпД

 

READY

 

 

 

 

 

 

 

1. Счетчик бай-

 

 

 

 

 

 

тов -1

 

 

 

 

 

 

 

2. Адрес +1 (-1)

 

 

Рис. 3.24. Диаграмма чтение ОП в циклах ПДП

 

 

Аналогичным образом выполняется чтение блока данных из БП и запись их в ОП за исключением того, что в этом случае по сигналу –DACK1 блоком интерфейса (ДшУС) формируется сигнал чтения данных (ЧтД ), по которому осуществляется выдача байта данных из БП по шине BD7-BD0 через блок интерфейса (приемопередатчик) по шине SD7-SD0 в ОП.

Системный КПДП вначале вырабатывает сигнал –IOR (чтение порта), который разрешает передачу данных из БП на шину ISA (открывает в соответствующем направлении приемопередатчик блока интерфейса) и формирует сигнал READY. Затем системный КПДП устанавливает сигнал –MEMW, записывающий данные в выбранную ячейку ОП.

Упрощенная диаграмма режима записи данных в ОП представлена в циклах ПДП на рис. 3.25.

 

 

 

 

 

87

ОП

Системный

Блок

БП

 

Внешний

КПДП (канал 1)

интерфейса

КПДП (канал 0)

 

 

 

 

 

 

 

HLDA

 

 

 

 

Адрес

МП

 

 

 

 

 

 

DRQ 1

 

 

 

DACK 0

 

 

 

 

 

 

Адрес

 

 

 

Состояние

 

 

 

 

 

 

-IOR

ЧтД

 

READY

ожидания

 

 

 

 

Данные

 

 

1. Счетчик бай-

 

 

 

 

 

 

-MEMW

 

 

 

тов -1

 

 

 

 

2. Адрес +1 (-1)

 

 

 

 

 

 

Рис. 3.25. Упрощенная диаграмма режима записи данных в ОП

Циклы ПДП выполняются до тех пор, пока содержимое счетчика байтов в канале 0 внешнего КПДП не станет равным FFFFh, при этом на его выходе формируется сигнал EOP (окончание счета), участвующий в вырабатывании сигнала прерывания, например, IRQ N, сообщающему процессору о завершении передачи блока данных. Для формирования сигнала IRQ N, кроме того, необходимы сигналы разрешения прерывания (РП) и сигнал –DACK 1 (рис. 3.26).

Рис. 3.26. Схема формирования сигнала IRQ N

Передача данных между процессором и БП многофункционального контрол-

лера выполняется следующим образом.

На рис. 3.27

 

показана структурная схема со-

 

РП

1

"1"

 

 

 

1 IRQ N

 

 

-DACK 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пряжения процессора и МК, осуществляющая передачу данных между процессором

 

 

 

 

 

 

 

 

 

E

 

 

 

EOP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и БП, управление работой

 

которого

выполняет внешний КПДП (канал 1).

 

 

 

 

 

 

 

 

 

 

 

 

 

88

 

 

 

 

 

 

 

 

 

HLDA

 

 

 

 

 

HRQ

 

 

ISA

DRQ 1

Внешний

PD7-PD0

 

 

DACK 1

 

МП

 

 

КПДП (канал 1)

 

 

 

 

 

AEN

READY

Адрес

MEMW

 

 

 

 

 

SA9-SA0

Блок

 

 

 

MEMR

 

Процессор

SD7-SD0

интерфейса

WE

 

 

BD7-BD0

БП

 

 

 

-IOR

 

CS

 

 

 

INIT

 

 

 

 

-IOW

 

 

 

 

 

 

 

 

 

RESET

ЗпД, ЧтД

 

 

 

 

 

 

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

Взаимодействие процессора и МК начинается с доступа его к порту (3E0h) сброса МК блока интерфейса, при этом внешний КПДП и МП сигналом INIT приводятся в исходное состояние и микропроцессором (МП) выполняется инициализация внешнего КПДП (канала 1) на прием данных в БП со стороны процессора. Затем процессор устанавливает триггер запроса (порт 3E1h) в блоке интерфейса и на его выходе формируется сигнал DRQ 1 (запрос ПДП канала 1), запускающий внешний КПДП на выполнение заданного режима. Внешний КПДП, получив сигнал DRQ 1, устанавливает сигнал HRQ (запрос шины) на соответствующий вход МП. В свою очередь, МП направляет на внешний КПДП сигнал HLDA, передающий ему управление работой БП. После этого канал 1 внешнего КПДП выполняет соответствующие такты состояния, в результате чего устанавливается адрес ячейки БП и формируется сигнал DACK 1, который поступает в блок интерфейса и устанавливает соответствующий триггер регистра состояния (порта 3E0h). Адрес удерживается на адресных выходах внешнего КПДП, который приостанавливает свою работу (состояние ожидания) до появления сигнала READY (готовности). Для упрощения (см. рис. 3.27) адрес БП выбран 8-битным (А7-А0). При необходимости употребления адреса А15-А0 следует использовать внешний регистр старшего адреса, который загружается по шине данных внешнего КПДП битами А15-А8, а запись их выполняется сиг-

налом ADSTB.

89

Процессор путем опроса порта состояния (3E0h) определяет, что адрес ячейки БП установлен (имеется в наличии сигнал -DACK 1) и можно выводить информацию, которая может быть инструкциями для МП или данными. Число выводимых байтов информации задается в счетчике байтов канала 1 внешнего КПДП. Вывод байта данных с учетом порта данных (3E3h) осуществляется по шине SD7-SD0 через блок интерфейса (приемопередатчик) по буферизованной шине BD7-BD0 и сопровождается сигналом –IOW (запись данных). Блок интерфейса (ДшУС) формирует сигнал ЗпД, который осуществляет разрешение работы БП (выбор CS) и вырабатывает сигнал READY, запускающий внешний КПДП на продолжение работы. Затем сигналом MEMW внешнего КПДП выполняется запись данных в БП.

Диаграмма передачи данных из процессора в БП изображена на рис. 3.28.

Процессор

 

Блок

 

БП

 

Внешний

МП

интерфейса

КПДП (канал 1)

 

 

 

Сброс МК

 

 

INIT

 

 

 

 

 

(3E0h)

 

 

 

 

 

Инициализация

 

 

 

 

 

 

 

Установка ТЗ

 

 

DRQ 1

 

 

 

 

(3E1h)

 

 

 

 

 

HRQ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

HLDA

 

 

 

 

 

 

 

Адрес

 

 

Опрос ТС (3E0h)

 

DACK 1

 

 

 

 

Адрес (3E2h)

 

Установка бита

 

Состояние

 

Данные (3E2h)

 

порта 3E0h

 

 

 

-IOW

 

 

ЗпД

 

READY

ожидания

 

 

 

 

 

 

 

 

 

 

 

 

CS

MEMW

 

 

 

 

 

 

 

 

 

1. Счетчик бай-

 

 

 

 

 

 

 

тов -1

 

 

 

 

 

 

 

 

2. Адрес +1 (-1)

Рис. 3.28. Диаграмма передачи данных из процессора в БП

 

Почти таким же образом выполняется ввод данных из БП в процессор за исключением того, что после завершения опроса порта состояния (3E0h) процессор

90

устанавливает адрес порта данных (3E3h) и сигнал –IOR, по которому блок интерфейса (ДшУС) формирует сигнал чтения данных (ЧтД ). Сигнал ЧтД осуществляет вывод данных из БП на шину SD7-SD0 и участвует в формировании сигнала READY. В табл. 3.6 приведено описание портов МК.

 

 

 

 

Таблица 3.6

Название порта

Адрес (h)

Доступ

Сигналы ДшУС

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сброс

3E0

W

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сбр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Триггер запроса

3E1

W

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Зап

 

 

 

 

 

 

 

 

 

 

 

 

 

Регистр состояния

3E0

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЧтС

 

 

 

 

 

 

 

 

 

 

 

 

Данные (Д)

3E3

W/R

 

 

 

 

/

 

 

 

 

 

ЗпД

ЧтД

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Регистр разрешения

3E2

W

 

 

 

 

 

 

 

 

 

 

 

 

(Р) ПДП и прерывания

 

 

 

ЗпР

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тип устройства (У)

3E2

R

 

 

 

 

 

 

 

 

 

 

 

ЧтР

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Порт сброс (3E0h) используется без передачи битов данных. При выводе из процессора по адресу 3E0h на выходе ДшУС формируется сигнал Сбр, который устанавливает внешний КПДП и МП в исходное состояние и вызывает инициализацию канала 0 внешнего КПДП со стороны МП.

После этого процессор устанавливает триггер запроса (ТЗ), имеющий адрес 3E1h, с передачей бита данных по шине SD0 (BD0). На выходе ТЗ формируется сигнал DRQ 1 (запрос ПДП канала 1), поступающий на соответствующий вход внешнего КПДП. В результате взаимодействия внешнего КПДП сМПон получает доступ к БП и устанавливает адрес его ячейки.

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

Запись (чтение) данных в БП осуществляется с помощью порта данных

(3E3h).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]