Смекни!
smekni.com

Контроллер прямого доступа к памяти (стр. 3 из 3)

Регистры канала 3 хранят информацию для переустановки регистров канала 2. После передачи первого массива и появления сигнала К.С содержимое регистров канала 3 передается в соответствующие регистры канала 2. Каждый раз, когда в регистрах канала 2 происходит "подмена" данных информацией регистров канала 3, устанавливается разряд "Флаг обновления данных" в регистре состояния каналов.

Регистр состояния каналов РгС указывает номер канала, который достиг конца счета. Кроме того, в РгС входит разряд "Флаг обновления данных", описанный выше.

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

В исходное состояние микросхему переводит внешний сигнал Уст. В этом состоянии маскируются все запросы каналов ПД, а буферы А0...А3 переводятся в состояние приема информации. В состоянии программирования МП имеет доступ к внутренним регистрам выбранного канала в соответствии с табл. 2 и 3.

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

После получения от МП сигнала ПЗхв при наличии сигнала запроса микросхема вырабатывает сигнал ППД и переходит в состояние обслуживания, в котором системные шины находятся под управлением БИС ПДП.

Таблица 2. Адресация регистров

A3 A2 A1 A0 Операция Регистр

0 0 0 0 Зп Канал 0, начальный адрес

0 0 0 1 Зп Канал 0, количество циклов

0 0 1 0 Зп Канал 1, начальный адрес

0 0 1 1 Зп Канал 1, количество циклов

0 1 0 0 Чт Канал 2, начальный адрес

0 1 0 1 Зп Канал 2, количество циклов

0 1 1 0 Чт Канал 3, начальный адрес

0 1 1 1 Зп Канал 3, количество циклов

1 0 0 0 Чт Чтение РгС

1 0 0 0 Зп Запись в РгР

Последовательность программирования контроллера

Для начала следует запрограммировать РгА и РгЦ выбранного канала (или выбранных каналов).

Таблица 3. Последовательность записи регистров адреса и циклов

A3 A2 A1 A0 Операция Регистр
0 Номер канала 0 Зп Запись младшего байта начального адреса (A0...A7)
0 0 Зп Запись старшего байта начального адреса (A8...A15)
0 1 Зп Запись младшего байта количества циклов (C0...C7)
0 1 Зп Запись старших шести бит количества циклов (C8...C13) плюс два бита вида обмена данными (C14, C15)

Запись в каждый регистр проводится в два этапа - младший, затем старший байт адреса.

Таблица 4. Вид обмена данными

C14 C15 Вид обмена

0 0 Цикл проверки ПД

0 1 Цикл записи ПД

1 0 Цикл чтения ПД

1 1 Запрещенная комбинация

Разрешить работу контроллера ПДП теперь можно, установив в РгР соответствующий бит разрешения каналов вместе с атрибутами режима работы контроллера.

Таблица 5. Формат регистра режимов

Ст. б. Мл.б.
7 6 5 4 3 2 1 0
Установка автозагрузки Установка КС-Стоп Установка удлиненной записи Установка циклического сдвига приоритета Разрешение ПД
Для канала 3 Для канала 2 Для канала 1 Для канала 0

В процессе работы можно контролировать выполнение процесса прямого доступа к памяти посредством периодического чтения РгС.


Таблица 6. Формат регистра статуса

Ст.б. Мл.б.
7 6 5 4 3 2 1 0
0 0 0 Флаг обновления данных КС-стоп
Для канала 3 Для канала 2 Для канала 1 Для канала 0

Пример программирования

В одноплатном компьютере "Радио-86РК", описанном в журнале "Радио", контроллер ПДП используется для передачи кодов отображаемых символов из экранной области памяти в контроллер дисплея. Данная задача требует программирования контроллера ПДП с автозагрузкой (табл. 7).

Таблица 7. Пример программирования контроллера ПДП

A3 A2 A1 A0 Операция Данные Комментарий
1 0 0 0 Зп 10000000 (80H) В РгР установили флаг автозагрузки, чтобы начальный адрес записался в регистр адреса третьего канала
0 1 0 0 Зп 11010000 (D0H) Младший байт адреса
0 1 0 0 Зп 01110110 (76H) Старший байт адреса
0 1 0 1 Зп 00100011 (23H) Младший байт количества циклов
0 1 0 1 Зп 01001001 (49H) Старший байт количества циклов (09H) и вид обмена - чтение
1 0 0 0 Зп 10100100 (A4H) В РгР установили флаги: автозагрузка, удлиненная запись, разрешение работы канала 2

Все. Теперь контроллер ПДП циклически пересылает область памяти 76D0H-7FF3H в контроллер дисплея, приостанавливая на это время работу процессора.

Отметим, что в таком варианте использования контроллера ПДП не требуется проводить операций чтения. Это использовали разработчики компьютера "Радио-86РК", совместив в адресном пространстве контроллер ПДП (только запись) и ПЗУ (только чтение).

Список использованных источников

1 http://www.computer-museum.ru

2 http://dfe3300.karelia.ru