Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Контроллер прямого доступа к памяти КР580ИК57 (КР580ВТ57)
(Аналог Intel i8257)
Обмен данными в компьютере при классическом его построении выполняется центральным процессором. Значительно ускорить процесс обмена данными с перефирийными устройствами и освободить процессор от этой выполнения этой операции позволяют специализированные БИС контроллеров прямого доступа к памяти.
Прямой доступ к памяти (Direct Memory Access - DMA) используется для выполнения операций передачи данных непосредственно между оперативной памятью и устройствами ввода/вывода. Обычно это такие устройства, как контроллер дисплея, накопители на гибком или жестком магнитных дисках (НГМД, НМД), кассетные накопители на магнитной ленте КНМЛ (стримеры). При использовании DMA процессор не участвует в операциях ввода/вывода, контроллер прямого доступа сам формирует все сигналы, необходимые для обмена данными с устройством. Скорость такого непосредственного обмена значительно выше, чем при традиционном вводе/выводе с использованием центрального процессора.
В серии К580 таким устройством является контроллер КР580ИК57 (КР580ВТ57). Микросхема представляет собой БИС четырехканального программируемого контроллера прямого доступа к памяти (ПДП). Каждый из четырех каналов адресует область внешней памяти путем инкрементирования выбранного адреса. ПДП имеет приоритетную логику, реализующую запросы от четырех периферийных устройств и производит счет циклов прямого доступа к памяти каждого канала.
Использование БИС ПДП позволяет существенно сократить аппаратные затраты при реализации прямого доступа к памяти.
На рисунке приведена структурная схема КР580ИК57, в табл. 1 - назначение выводов.
Таблица 1. Назначение выводов
Номер вывода |
Обозначение |
Тип |
Описание |
1 |
Чт В/В |
Вход/выход |
Чтение ввода-вывода. Сигнал Чт В/В разрешает (во входном режиме) чтение 8-разрядного регистра состояния или записанных в ЗУ ПДП начального адреса и числа циклов ПД любого из каналов, в выходном режиме сигнал Чт В/В разрешает выдачу информации из внешнего устройства ввода-вывода |
2 |
Зп В/В |
Вход/выход |
Запись ввода-вывода. Сигнал Зп В/В разрешает (во входном режиме) загрузку регистров установки режимов, начального адреса значения количества циклов для любого канала ПДП. В выходном режиме сигнал Зп В/В разрешает запись информации во внешнее устройство ввода-вывода |
3 |
Чт П |
Выход |
Чтение памяти. Выходной сигнал ЧтП предназначен для внешнего ЗУ |
4 |
Зп П |
Выход |
Запись в память. Выходной сигнал ЗпП предназначен для внешнего ЗУ |
5 |
М128 |
Выход |
Модуль 128. Выходной сигнал М128 появляется в каждом 128-м цикле от конца массива, а также во время действия сигнала КС |
6 |
Гт |
Вход |
Готовность. Входной сигнал Гт предназначен для обеспечения совместной работы ПДП и медленных внешних устройств. Сигнал может поступать асинхронно. Он отражает готовность внешнего устройства к ведению обмена |
7 |
ПЗхв |
Вход |
Подтверждение захвата. Входной сигнал ПЗхв является ответом МП на сигнал ЗЗхв. При появлении ПЗхв системные шины (линии) свободны |
8 |
СтрА |
Выход |
Строб адреса. Выходной сигнал СтрА указывает, что на шине данных выдан старший байт адреса внешнего ЗУ |
9 |
РА |
Выход |
Разрешение адреса. Выходной сигнал РА используется для блокировки адресных шин в невыбранных устройствах |
10 |
ЗЗхв |
Выход |
Запрос захвата. Выходной сигнал ЗЗхв запрашивает у МП разрешение на управление системными шинами (линиями) |
11 |
ВМ |
Вход |
Выбор микросхемы. Входной сигнал ВМ позволяет активизировать данную БИС |
12 |
ТИ |
Вход |
Тактовый импульс. Входной сигнал ТИ обеспечивает функционирование микросхемы. Обычно этим сигналом является сигнал Ф2 микропроцессора КР580ИК80А |
13 |
Уст |
Вход |
Установка. Входной сигнал Уст предназначен для установки схемы в исходное состояние |
14 |
ППД2 |
Выход |
Подтверждение прямого доступа. Выходные сигналы подтверждения прямого доступа ППД2, ППД3 являются ответными по отношению к ЗПД2, ЗПД3. Они вырабатываются микросхемой в соответствии с приоритетами внешних устройств |
15 |
ППД3 |
Выход |
|
16 |
ЗПД3 |
Вход |
Запрос прямого доступа. Входные сигналы ЗПД0...ЗПД3 поступают асинхронно из внешних устройств и воспринимаются микросхемой как запросы на обмен с ЗУ |
17 |
ЗПД2 |
Вход |
|
18 |
ЗПД1 |
Вход |
|
19 |
ЗПД0 |
Вход |
|
20 |
Общий |
||
21 |
D7 |
Вход/выход |
Шина данных |
22 |
D6 |
||
23 |
D5 |
||
24 |
ППД1 |
Выход |
Подтверждение прямого доступа. Выходные сигналы подтверждения прямого доступа ППД0, ППД1 являются ответными по отношению к ЗПД0, ЗПД1. Они вырабатываются микросхемой в соответствии с приоритетами внешних устройств |
25 |
ППД0 |
Выход |
|
26 |
D4 |
Вход/выход |
Шина данных |
27 |
D3 |
||
28 |
D2 |
||
29 |
D1 |
||
30 |
D0 |
||
31 |
Пит |
напряжения питания +5 В |
|
32 |
A0 |
Вход/выход |
Шина адреса |
33 |
A1 |
||
34 |
A2 |
||
35 |
A3 |
||
36 |
КС |
Выход |
Конец счета. Выходной сигнал КС вырабатывается при установке в нуль 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 многократно осуществлять обмен массивами данных без программного вмешательства. Регистры канала 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 |
Пример программирования
Рассмотрим в качестве примера программирование обмена данными между оперативной памаятью и контроллером дисплея. В этом случае контроллер ПДП используется для передачи кодов отображаемых символов из экранной области памяти в алфавитно-цифрового дисплея КР580ВГ75. Данная задача требует программирования контроллера ПДП с автозагрузкой. Предположим, что экранное ОЗУ находится по адресам 76D0H-7FF3H, регистр управления контроллера ПДП расположен в совмещенном адресном пространстве по адресу 0F808H, для обмена данными используется канал 2 БИС.
Таблица 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 |
Пример программирования контроллера ПДП на языке Ассемблер:
MVI A,80H ; 10000000b = 80H флаг автозагрузки
STA 0F800H ; занесли в регистр режима
LXI H,0F804H ; указали на регистр адреса через M=([HL])
MVI M, 0DOH ; загружаем младший байт адреса
MVI M, 76H ; загружаем старший байт адреса
INX H ; указали на регистр счета
MVI M, 23H ; заносим младший байт количества циклов
MVI M, 49H ; заносим старший байт количества циклов, и D14=1 - чтение
MVI A, 0A4H ; установили флаги: автозагрузка, удлиненная запись и
STA 0F808H ; разрешение работы канала 2 (D0-D3=1), записываем в РгР.
Контроллер ПДП циклически пересылает область памяти 76D0H-7FF3H в контроллер дисплея, приостанавливая на это время работу процессора.