|
В начало
Контроллер
параллельного обмена К580ВВ55 (Тема)
В настоящее
время во многих микропроцессорных комплектах выпускают специальные интерфейсные
БИС, существенно расширяющие (по сравнению с использованием регистров)
возможности разработчиков при организации параллельного обмена в МПС. Наиболее
популярной БИС этого класса можно считать контроллер К580ВВ55. БИС К580ВВ55
представляет собой трехканальный байтовый интерфейс и позволяет организовать
обмен байтами с периферийным оборудованием в различных режимах. Рис.
Параллельный обмен на базе буферных регистров Контроллер
параллельного обмена К580ВВ55 (далее - "контроллер") включает в себя
оборудование трех 8-разрядных каналов ввода/вывода (регистр и буферную схему),
буфер шины данных, 8-разрядный регистр управления Y и блок управления. Контроллер
подключается к системной шине МПС, причем адресация его внутренних объектов
осуществляется (младшими) разрядами шины адреса след. образом: Таблица 1
В МПС
контроллер размещают, как правило, в пространстве адресов ввода/вывода. Поэтому
в качестве стробов чтения и записи используются сигналы RDIO, WRIO, а для селекции
контроллера дешифрируются старшие разряды адреса. При подаче
сигнала SR все регистры контроллера, в том числе и регистр управления Y,
устанавливаются в состояние 00h. В каждый момент времени
процессор может поддерживать связь только с одним каналом, в зависимости от состояния
линий A[1:0] (см. табл. 1). Функцию каждого канала и режим его работы
определяет состояние управляющего слова Y, помещенного в регистр управления. Каналы
контроллера могут работать в одном из трех режимов: ·
Режим "0" - синхронный
однонаправленный ввод/вывод; ·
Режим "1" - асинхронный
однонаправленный ввод/вывод; ·
Режим "2" - асинхронный
двунаправленный ввод/вывод. Кроме трех
перечисленных, существует еще режим сброса-установки произвольного разряда
канала C. В режиме "0"
контроллер может работать как четыре порта ввода/вывода: A[7:0], B[7:0],
C[7:4], C[3:0], причем каждый порт может быть независимо запрограммирован на
ввод или на вывод. При этом к порту, определенному как выходной, нельзя
обращаться по чтению (будет прочитан "обрыв" - FFh), а на входной
порт нельзя выводить информацию). Рис. Внутренняя
структура контроллера К580ВВ55 В стробируемом
однонаправленном режиме "1"
могут работать только каналы A и B, причем соответствующие линии (см.
ниже) канала C придаются каналам A и B для передачи управляющих сигналов. Как и в режиме "0",
каналы A и B программируются на ввод или вывод (независимо). Рис.
Подключение контроллера К580ВВ55 к системной шине В режиме "2" может
работать только канал A, к которому
в этом случае можно обращаться как по записи, так и по чтению (двунаправленный
стробируемый обмен). Выбор режимов
каналов и направления передачи данных в них осуществляется загрузкой в регистр
Y управляющего слова, формат которого представлен ниже. Рис.
Формат управляющего слова К580ВВ55 Загрузка
управляющего слова осуществляется путем записи его в регистр Y по адресу A[1:0]
= 11, причем в старшем (D7) разряде такого слова должна стоять логическая
единица. Если при записи
по адресу 11 D7 = 0, то такое слово не будет воспринято как управляющее и не
будет помещено в регистр Y. Такие действия обеспечивают установку или сброс
одного разряда регистра C, причем
номер изменяемого разряда записывается в разрядах D[3:1], а значение
записываемого бита - в D0. Состояние разрядов D[6:4] - безразлично (Рис. 5).
В разряде 0 - значение устанавливаемого бита
порта С Рис.
Управление битами канала C Рассмотрим подробнее работу
контроллера в различных режимах. Режим "0". При работе в этом
режиме на вывод информация, поступающая с системной шины DB, запоминается в
буферном регистре канала, адресуемого A[1:0] и сразу же передается на его
выход. При вводе информации данные с линий соответствующего канала, минуя
регистр, поступают через буфер данных на системную шину данных DB. Временные
диаграммы режима "0" приведены на Рис.
6, где под именем K понимается один из трех каналов: A, B
или C.
В режиме
"0" канал C может быть
разбит на два подканала, один из которых запрограммирован на ввод, а другой -
на вывод. Обращение к обоим подканалам осуществляется по адресу A[1:0] = 10,
причем в цикле ввода на DB подключаются только 4 входные линии, на остальных
четырех - код 1111. При выводе информация с DB попадает только в 4 разряда
регистра канала C, объявленные как
выходные. Режим 1 обеспечивает однонаправленную
асинхронную передачу информации между МП и ВУ. При этом каналы A и B используются как регистры данных, а канал C - для приема и формирования сигналов, сопровождающих асинхронный
обмен, причем каждый разряд канала C
имеет строго определенное функциональное назначение. В Табл. 1 показано использование линий канала C для передачи управляющих сигналов в
режимах "1" и "2".
В Табл.
1 использованы следующие обозначения: СТР - строб
записи в регистр канала (вход); ППР -
подтверждение приема (выход); ГТВ -
готовность (выход), может использоваться в качестве запроса на прерывание; ППРД -
подтверждение передачи (вход); КГТ - канал
готов к обмену (выход). Символ "\" после
имени сигнала обозначает, как и ранее, что активный уровень этого сигнала -
низкий. Работа канала в
режиме 1 "ВВОД" иллюстрируется временной диаграммой Рис. Ввод в режиме "1" Информация,
попавшая в регистр канала, должна быть передана в МП. Контроллер вырабатывает
по фронту СТР при ППР = 1 сигнал ГТВ, который поступает в качестве запроса на
прерывание в подсистему прерываний (см. раздел 7) и инициирует процедуру чтения
байта из канала. Сигнал ГТВ формируется контроллером только при условии
установления в "1" внутреннего триггера разрешения прерывания по
каналу (разряды 2 и 4 регистра порта C для каналов A и B соответственно). Эти
триггеры могут быть установлены и сброшены программно с помощью команд
установки/сброса разряда порта C. МП может не
сразу удовлетворить запрос контроллера, т.к. занят обслуживанием более
приоритетного запроса. В этом случае контроллер поддерживает активный уровень
на выходе ГТВ и высокий уровень на ППР, запрещая выработку нового строба.
Промежуток времени t1 (Рис.
7) может быть произвольно большим и характеризует время
ожидания реакции МП. При появлении
сигнала RD\ по соответствующему адресу содержимое регистра канала передается на
шину данных DB и далее - в МП. По спаду RD\ снимается запрос ГТВ, а по фронту
RD\ снимается ППР и ВУ получает возможность формировать новый строб записи
данных. Промежуток времени t2 характеризует быстродействие ВУ и
может, как и t1, иметь произвольную длительность. Таким образом,
в описанном режиме осуществляется асинхронный ввод информации в МП с анализом
готовности вводимой информации и исключением потери информации (в контроллере).
Подсистема прерываний может быть выключена (сброшены триггеры разрешения
прерывания или сигнал ГТВ не заведен в систему), однако МП может осуществлять
программный опрос состояния каналов, считывая значение регистра порта C и анализируя значения разрядов
готовности (C3 и C0 для каналов A и B соответственно). Модификация
управляющих сигналов на линиях порта C
может осуществляться программно с помощью соответствующих команд МП и аппаратно
со стороны контроллера. Работа
контроллера в режиме "1" на ВЫВОД показана на Рис. 8. По стробу WR\ производится запись байта с системной
шины данных в регистр канала. Одновременно снимается сигнал запроса на
прерывание ГТВ. По фронту WR\ контроллер посылает на ВУ сигнал КГТ\,
подтверждая, что данные для ВУ записаны в регистр и присутствуют на выводах
канала. После получения КГТ ВУ начинает прием данных (отрезок времени t2),
а закончив прием - формирует сигнал подтверждения передачи ППРД\. Получив
ППРД\, контроллер формирует для МП сигнал ГТВ, сообщая, что можно выводить
следующий байт данных. Время ожидания реакции МП - отрезок t1.
Программная установка/сброс триггеров разрешения формирования сигналов ГТВ
осуществляется с помощью команд переключения разрядов C6 и C2 - соответственно
для каналов A и B. Рис. Вывод в режиме "1" Как и в случае
режима ВВОД возможна реализация программно-управляемой процедуры асинхронного
обмена. В режиме
"1", как и в режиме "0", недопустимо обращение по чтению к
каналу, объявленному выходным и по записи к входному каналу. Для организации
двунаправленного обмена предназначен режим "2", в котором может
работать только канал A, которому
для передачи управляющих сигналов придается 5 линий порта C (см. Табл.
1). Канал B
может при этом работать в режиме "1" - совместно с оставшимися
линиями порта C, или в режиме
"0", тогда C[2:0] будут работать тоже в "0"-режиме. Направление передачи по каналам B и C определяется разрядами управляющего слова Y. Процедуры ВВОД
и ВЫВОД в режиме "2" осуществляются аналогично соответствующим
процедурам в режиме "1". |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||