Технологии

Контроллер прямого доступа к памяти КР580ИК57 (КР580ВТ57)

(Отечественный аналог Intel i8257)

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

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

Использование БИС ПДП позволяет существенно сократить аппаратные затраты при реализации прямого доступа к памяти.

На рис. 1 приведена структурная схема КР580ИК57, в табл. 1 - назначение выводов.

Структура микросхемы КР580ИК57

Рис. 1. Структура микросхемы КР580ИК57

Таблица 1. Назначение выводов

Номер вывода Обозначение Тип Описание
1 Чт В/В
(I/O R)
Вход/выход Чтение ввода-вывода. Сигнал Чт В/В разрешает (во входном режиме) чтение 8-разрядного регистра состояния или записанных в ЗУ ПДП начального адреса и числа циклов ПД любого из каналов, в выходном режиме сигнал Чт В/В разрешает выдачу информации из внешнего устройства ввода-вывода
2 Зп В/В
(I/O W)
Вход/выход Запись ввода-вывода. Сигнал Зп В/В разрешает (во входном режиме) загрузку регистров установки режимов, начального адреса значения количества циклов для любого канала ПДП. В выходном режиме сигнал Зп В/В разрешает запись информации во внешнее устройство ввода-вывода
3 Чт П
(MEMR)
Выход Чтение памяти. Выходной сигнал ЧтП предназначен для внешнего ЗУ
4 Зп П
(MEMW)
Выход Запись в память. Выходной сигнал ЗпП предназначен для внешнего ЗУ
5 М128
(MARK)
Выход Модуль 128. Выходной сигнал М128 появляется в каждом 128-м цикле от конца массива, а также во время действия сигнала КС
6 Гт
(Ready)
Вход Готовность. Входной сигнал Гт предназначен для обеспечения совместной работы ПДП и медленных внешних устройств. Сигнал может поступать асинхронно. Он отражает готовность внешнего устройства к ведению обмена
7 ПЗхв
(HLDA)
Вход Подтверждение захвата. Входной сигнал ПЗхв является ответом МП на сигнал ЗЗхв. При появлении ПЗхв системные шины (линии) свободны
8 СтрА
(ADSTB)
Выход Строб адреса. Выходной сигнал СтрА указывает, что на шине данных выдан старший байт адреса внешнего ЗУ
9 РА
(AEN)
Выход Разрешение адреса. Выходной сигнал РА используется для блокировки адресных шин в невыбранных устройствах
10 ЗЗхв
(HRQ)
Выход Запрос захвата. Выходной сигнал ЗЗхв запрашивает у МП разрешение на управление системными шинами (линиями)
11 ВМ
(CS)
Вход Выбор микросхемы. Входной сигнал ВМ позволяет активизировать данную БИС
12 ТИ
(CLK)
Вход Тактовый импульс. Входной сигнал ТИ обеспечивает функционирование микросхемы. Обычно этим сигналом является сигнал Ф2 микропроцессора КР580ИК80А
13 Уст
(RESET)
Вход Установка. Входной сигнал Уст предназначен для установки схемы в исходное состояние
14 ППД2
(DACK2)
Выход Подтверждение прямого доступа. Выходные сигналы подтверждения прямого доступа ППД2, ППД3 являются ответными по отношению к ЗПД2, ЗПД3. Они вырабатываются микросхемой в соответствии с приоритетами внешних устройств
15 ППД3
(DACK3)
Выход  
16 ЗПД3
(DRQ3)
Вход Запрос прямого доступа. Входные сигналы ЗПД0...ЗПД3 поступают асинхронно из внешних устройств и воспринимаются микросхемой как запросы на обмен с ЗУ
17 ЗПД2
(DRQ2)
Вход  
18 ЗПД1
(DRQ1)
Вход  
19 ЗПД0
(DRQ0)
Вход  
20 Общий
(GND)
   
21 D7 Вход/выход Шина данных
22 D6    
23 D5    
24 ППД1
(DACK1)
Выход Подтверждение прямого доступа. Выходные сигналы подтверждения прямого доступа ППД0, ППД1 являются ответными по отношению к ЗПД0, ЗПД1. Они вырабатываются микросхемой в соответствии с приоритетами внешних устройств
25 ППД0
(DACK0)
Выход  
26 D4 Вход/выход Шина данных
27 D3    
28 D2    
29 D1    
30 D0    
31 Пит
(+U)
  БИС ПДП имеет один номинал напряжения питания +5 В
32 A0 Вход/выход Шина адреса
33 A1    
34 A2    
35 A3    
36 КС
(TC)
Выход Конец счета. Выходной сигнал КС вырабатывается при установке в нуль 14-разрядного регистра количества циклов и указывает периферийным устройствам, что данный цикл ПД последний
37 A4 Выход Шина адреса
38 A5    
39 A6    
40 A7    

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

Внутреннее запоминающее устройство микросхемы ВЗУ предназначено для хранения начального адреса и числа циклов ПД для каждого канала в 16-разрядных регистрах адреса РгА и циклов РгЦ соответственно. РгА загружается адресом первой ячейки памяти, к которой должно быть обращение. Младшие 14 разрядов РгЦ указывают число циклов ПД (минус один) до конца счета (до появления сигнала КС}. Разряды 14-й и 15-й РгЦ указывают на вид обмена данными при ПД (табл. 2).

В блоке ВЗУ происходит формирование массива адресов инкрементированием текущего адреса. Младший байт адреса А7...А0 помещается в буфер адреса БА, старший байт (А15...А8} - на буфер данных БД. Старший байт адреса должен быть защелкнут во внешнем регистре по сигналу СтрА.

Буфер данных БД представляет собой 8-разрядное устройство, обеспечивающее двунаправленный обмен информацией между БИС и системной шиной данных. Информация, поступающая на БД с системной шины данных, передается в регистр установки режимов либо в ЗУ. С внутренней шины данных на ШД, поступает информация о регистрах адреса, количества циклов, состояния БИС. В течение циклов ПД выдаются старшие восемь разрядов адреса памяти.

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

Адресные линии А4...А7 - всегда выходные. Информация на них соответствует разрядам генерируемого адреса памяти.

Последовательностью операций в течение циклов ПД управляет устройство управления УУ.

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

Регистр установки режимов РгР хранит информацию о режимах работы БИС, к которым относятся "Автозагрузка", "Конец счета-стоп", "Удлиненная запись", "Обычная запись", "Циклический сдвиг приоритета" и "Фиксированный приоритет".

РгР обычно загружается после установки РгА и РгЦ и сбрасывается подачей сигнала Уст.

Разряды 0...3 РгР разрешают работу соответствующего канала. Разряды 4...7 обеспечивают соответствующий режим работы БИС. Так, при записи "1" в разряд 4 РгР приоритет каждого канала изменяется.

Обслуженный канал будет иметь самый низкий приоритет. Порядок обслуживания каналов установливается в соответствии с их номерами 0>>1>2>3>0. Если разряд 4 РгР установлен в "0", то каждый канал будет иметь фиксированный приоритет. Так, канал 0 имеет наивысший приоритет, а канал 3 - самый низкий. При записи "1" в разряд 5 РгР устанавливается режим "Удлиненная запись". В этом режиме продолжительность сигналов ЗпП и Зп В/В увеличивается при отсутствии сигнала готовности внешнего устройства. При этом БИС входит в состояние ожидания.

При записи "1" в разряд 6 РгР устанавливается режим "Конец счета - стоп". В этом случае после появления сигнала КС обслуженный канал окажется запрещенным. Если необходимо продолжить обслуживание данного канала, перепрограммируют его разряд разрешения. При "0" в разряде РгР появление сигнала КС не запрещает повторное обслуживание канала.

При "1" в разряде 7 РгР устанавливается режим "Автозагрузка", позволяющий каналу 2 повторно пропустить массив данных или связать ряд массивов без программного вмешательства.

Регистры канала 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РК", совместив в адресном пространстве контроллер ПДП (только запись) и ПЗУ (только чтение).