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