Регистры канала 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