Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие.doc
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
21.67 Mб
Скачать

Тема 3.7 Взаимосвязь с периферийными устройствами

INTERRUPTS и IRQ.

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

В самом простом случае понятие Interrupt обозначает прерывание последней выполняющейся программы. Принцип простой: CPU извещает через специальные линии (INT-линии), что один из элементов должен выполнить какую-то «важную работу», при этом речь может идти, например, о том, что нажата клавиша клавиатуры. Реакция на эти действия должна быть быстрой, и поэтому CPU прерывает работу выполняемого программного обеспечения, отмечая место, в котором остановилось выполнение программы, и переключается на устройство, которое вызвало прерывание. Этот процесс управляется обоими контроллерами прерываний (Interrupt Controllers), которые установлены в указанном ранее контроллере периферии 82C206.

Начиная с компьютера, имеющего CPU 80286, стандартно для PC предусмотрено 16 линий прерываний, часть которых резервируется системой, а часть может быть предоставлена для дополнительного оборудования, необходимого пользователю. Стандартное распределение линий прерываний и адресов портов ввода/вывода для основных компонентов PC приведено в таблицах 3.7.1. и 3.7.2.

Таблица 3.7.1. Стандартное распределение аппаратных прерываний

IRQ

Назначение

0

прерывание от таймера

1

прерывание от клавиатуры

2

связь со вторым контроллером прерывания (каскадное прерывание)

3

COM2, COM4

4

COM1, COM3

5

LPT2

6

контроллер дисковода

7

LPT1

8

текущее время

9

свободен

10

свободен

11

свободен

12

свободен

13

сопроцессор

14

контроллер винчестера

15

свободен

Таблица 3.7.2. Стандартное распределение адресов ввода/вывода

Диапазон адреса

Назначение

000 - 01F

первый контроллер DMA

020 - 03F

первый контроллер прерываний

040 – 05F

таймер

060 – 06F

контроллер клавиатуры

070 – 07F

текущее время

080 – 09F

регистр страниц DMA

0A0 – 0BF

второй контроллер прерывания

0C0 – 0DF

второй контроллер DMA

0F0 – 0FF

сопроцессор

100 – 1EF

свободен

1F0 – 1F8

контроллер винчестера

1F9 – 1FF

свободен

200 – 20F

игровой пор (джойстик)

210 – 217

свободен

220 – 24F

свободен

250 – 277

свободен

278 – 27F

LPT2

280 – 2EF

свободен

2F8 – 2FF

COM2

300 – 31F

свободен

330 – 35F

свободен

360 – 36F

сетевая карта

370 – 377

свободен

378 – 37F

LPT1

380 – 38F

SDLC 2 (синхронное управление передачей данных 2)

390 – 39F

свободен

3A0 – 3AF

SDLC 1 (синхронное управление передачей данных 1)

3B0 – 3BF

монохромная графическая карта, параллельный интерфейс (IBM PS/2)

3C0 – 3CF

графическая карта EGA

3D0 – 3DF

графическая карта CGA

3E0 – 3EF

свободен

3F0 – 3F7

контроллер дисковода

3F8 – 3FF

COM1

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

В данном курсе будут рассмотрены аппаратные прерывания. Выполнение аппаратных прерываний ничем не отличается от выполнения программных прерываний, отличие заключается в источнике прерывания.

Назначение прерывания заключается в приостановке выполнения текущей программы, вызова и выполнение программы обработки данного прерывания.

Аппаратные прерывания делятся на маскируемые и не маскируемые прерывания.

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

Немаскируемые прерывания это такие прерывания, невыполнение которых может привести к сбою системы. Примером может служить прерывание на регенерацию динамической памяти (DRAM), если её не выполнить, то данные в памяти обнуляться и система рухнет.

В CPU приходят два сигнала : MNI – немаскируемые прерывание и INTR – запрос на маскируемое прерывание. Современные микросхемы поддерживают алгоритм работы такой, какой был установлен для отдельных контроллеров 8259 или отечественный аналог 1810ВН59 – программируемый контроллер прерываний ПКП. В дальнейшем будем рассматривать отдельные контроллеры.

Архитектура БИС программируемого контроллера прерываний КР580ВН59

БИС программируемого контроллера прерываний (ПКП) представляет собой устройство, реализующее до восьми уровней запросов на прерывание с возможностями программного маскирования и изменения дисциплины обслуживания прерываний. За счет каскадного включения БИС КР580ВН59 число уров­ней прерывания может быть расширено до 64 [8, 9].

Упрощенная структурная схема ПКП приведена на рис. 2.17,а.. В состав БИС входят: двунаправленный 8-разрядный буфер данных (BD), предназначенный для сопряжения ПКП с системной информационной шиной; блок управления записью чтением (RWCU), принимающий управляющие сигналы от МП и задающий режим функционирования ПКП: схема каскадного буфера-компаратора (CMP), используемая для включения в систему нескольких ПКП; схема управления (СU) вырабатывающая сигнал прерывания и формирующая трехбайтную команду CALL для выдачи на шину данных; регистр запросов прерываний (RGI), используемый для хранения всех уровней прерываний, на которые поступают запросы; схема принятия решений по приоритетам (PRB), идентифицирующая приоритеты запросов и выбирающая запрос с наивысшим приоритетом; регистр обслуживаемых прерываний (1SR). сохраняющий уровни запросов прерыва­ний, находящихся на обслуживании ПКП; регистр маскирования прерываний (RGM). обеспечивающий запрещение одной или нескольких линий запросов прерывания

Сопряжение БИС КР580ВН59 со стандартной системой шиной показано на рис. 2.17.б.

ПКП позволяет реализовать процесс прерывания по запросам от внешних устройств или по опросу микропроцессором запросов на обслуживание внешних устройств.

рис. 2.17

При обслуживании прерываний по запросу от внешних устройств выполняется следующая последовательность операций: запросы прерываний поступают на входы IR0 — IR7 и устанавливают соответствующие разряды RGI; ПКП принимает запросы, оценивает их приоритеты и формирует сигнал прерывания INT; МП принимает сигнал INT. если прерывания разрешены, и подтверждает прием выдачей сигнала INTA; после получения сигнала INTА ПКП устанавливает разряд регистра ISR, соответствующий запросу с наивысшим приоритетом, сбрасывает соответствующий разряд и выдает на шину данных D(7 — 0) код команды CALL: МП выдает еще два сигнала INTА. которые позволяют ПКП передать на шину данных 16-разрядный адрес подпрограммы обслуживания прерывания, причем младший байт адреса пере­дается по первому сигналу INTА. а старший — по второму.

При обслуживании прерываний по опросу микропроцессор производит считывание кода номера запроса с высшим уровнем приоритета, но сигналу RD. Прием запросов, маскирование и анализ приоритета выполняются так же, как и при обслуживании прерываний по запросу.

Для увеличения числа уровней прерывания ПКП могут быть объединены в систему, состоящую из ведущего ПКП и нескольких ведомых ПКП (рис. 2.17,в). При обслуживании запроса, поступившего на вход ведомого ПКП. ведущий ПКП по сигналу 1NTA выдает на шину данных код команды CALL, а на шины СAS0 — CAS2 — код номера ведомою ПКП. С приходом второго и третьего сигналов INTA адрес подпрограммы обслуживания па шину данных выдает выбранный по коду на шинах CASOCAS2 ведомый ПКП.

Установка ПКП в исходное состояние и настройка его на определенный режим обслуживания прерываний программируется двумя типами команд: командами инициализации (ICW) и командами управления операциями (OCW). Для инициализации в ПКП последовательно вводятся команды ICW1 и ICW2. В микропроцессорной системе, состоящей из нескольких ПКП, для каждого из них после двух первых команд инициализации вводится команда ICW3. задающая режим взаимодействия контроллеров.

Рис. 2.18

Таблица 2.18. Младший байт адресов команды CALL

Вход запроса

Адресный интервал 4 байт

Адресный интервал 8 байт

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

IR7

А7

А6

А5

1

1

1

0

0

A7

A6

1

1

1

0

0

0

IR6

А7

А6

А5

1

1

0

0

0

A7

A6

1

1

0

0

0

0

IR5

А7

А6

А5

1

0

1

0

0

A7

A6

1

0

1

0

0

0

IR4

А7

А6

А5

1

0

0

0

0

A7

A6

1

0

0

0

0

0

1R3

А7

А6

А5

0

1

1

0

0

A7

A6

0

1

1

0

0

0

IR2

А7

А6

А5

0

1

0

0

0

A7

A6

0

1

0

0

0

0

IR1

А7

А6

А5

0

0

1

0

0

A7

A6

0

0

1

0

0

0

IRO

А7

А6

А5

0

0

0

0

0

A7

A6

0

0

0

0

0

0

Форматы команд инициализации приведены на рис. 2.18. Команда ICW1 (рис. 2.18,а) сбрасывает регистры RGI. RGM и присваивает низший приоритет входу IR7. Разряд S этой команды определяет наличие одного или нескольких ПКП в системе, а разряд F (формат) - адресный интервал в 4 или 8 байт между начальными адресами подпрограмм обслуживания прерываний. Разряды A7 - А5 команды ICW1 используются для формирования младшего байта адресов подпрограмм обслуживания прерываний в соответствии с табл. 2.18. Команда ICW2 (рис. 2.18.б) представляет собой старший байт адреса подпрограмм обслуживания прерываний, выдаваемый ПКП на шину данных в качестве третьего байта команды CALL. В команде ICW3 для ведущего ПКП (рис. 2.18, в) наличие 1 в одном из разрядов указывает на подключение к соответствующему входу запроса прерывания выхода INT ведомого ПКП. В команде ICW3 для ведомого ПКП (рис. 2.18,г) задается код его номера в системе.

Команды инициализации загружаются в ПКП из микропроцессора по команде OUТ с учетом определенного значения младшего разряда адреса AO (рис. 2.13). После записи команд инициализации ПКП подготовлен к приему запросов на прерывания и может работать в режиме с фиксированными приоритетами запросов. В этом режиме запросы упорядочены по приоритетам и вход IR0 имеет выс­ший приоритет, a IR7 — низший. Для за­дания других режимов функционирования ПКП необходимо использовать команды OCW, которые загружаются после команд инициализации в любой текущий момент времени.

Команда управления операциями ОСW1 (рис. 2.19,а) осуществляет установку или сброс разрядов регистра RGM. Установка некоторого разряда регистра маскирования приводит к запрету прерывания по соответствующему входу.

Рис.2.19

Таблица 2.19. Варианты команды

Разряд команды

Выполняемая функция

D7

(R)

D6

(SEOI)

D5

(EOI)

D4

D3

D2

D1

DO

0

0

1

0

0

X

X

X

Фиксированный приоритет

1

0

1

0

0

X

X

X

Циклический сдвиг приоритета — присвоение обслуженному запросу низшего приоритета

0

1

1

0

0

L2

L1

L0

Фиксированный приоритет; L2 — L1 —

номер сбрасываемого разряда регистра ISR

1

1

1

0

0

L2

L1

L0

Циклический сдвиг приоритета; L2 – L1 — номер сбрасываемого разряда регистра ISR (присвоение ему низшего приоритета)

1

1

0

0

0

L2

L1

L0

Циклический сдвиг приоритета без завершения прерывания: L2 — LO — номер входа IR с низшим приоритетом

Примечание: X - произвольное состояние разряда (Х € [0;1])

Команда управления операциями OCW2 (рис. 2.19.б) осуществляет сброс разряда регистра ISR и циклический сдвиг приоритета запроса. Возможные варианты команды OCW2 и выполняемые ею функции показаны в табл. 2.19. Если обслуживание запроса прерывания необходимо закончить сбросом разряда регистра 1SR с высшим приоритетом, то используется команда OCW2 со значениями EOI = 1 и SEOI = 0. При EOI = 1 и SEOI=1 предназначенный для сброса уровень обслуживаемого прерывания указывается в команде разрядами D2(L2) DO(L0). Циклический сдвиг при­оритетов задается в команде ОСW'2 раз­рядом D7(R). В циклическом режиме ис­пользуется круговой порядок назначения приоритетов. Последнему обслуженному запросу присваивается низший приори­тет, следующему по кругу — высший. Приоритеты остальных запросов цикли­чески смещаются по шкале приоритетов. При R = l и SEOI = 0 команда OCW2 присваивает низший приоритет запросу с вы­сшим приоритетом, а при R = 1 и SEOI = 1 низший приоритет присваивается запро­су, номер которого указывается разряда­ми D2(L2) - DO(L0). Команда OCW2 обы­чно записывается в ПКП в конце подпро­граммы обслуживания прерывания перед командой возврата RET.

Команда управления операциями OCW3 (рис. 2.19,в) позволяет задать ре­жим специального маскирования (раз­ряды D6, D5), режим опроса (разряд D2) и произвести считывание состояния ПКП (разряды Dl, D0).

Режим специального маскирования дает возможность на некотором участке программы выборочно управлять запро­сами с различными приоритетами и раз­решать прерывания выполняемой про­граммы даже от входов с меньшими приоритетами. Режим специального ма­скирования задается командой OCW3 при ESMM = 1 и SMM = 1 и воздейству­ет до сброса по команде с ESMM = 1 и SMM = 0.

Режим опроса устанавливается по команде OCW3 при Р = 1. В этом режиме ПКП принимает запросы и формирует слово-состояние опроса, содержащее но­мер запроса с наивысшим приоритетом (разряды D2 — D0 слова-состояния). Обслу­живание запроса происходит по требова­нию программы, осуществляющей с по­мощью команды ввода IN (AO = 0, RD = 0) чтение слова-состояния, программное де­кодирование его и переход к соответ­ствующей подпрограмме обслуживания прерывания.

Считывание содержимого регистров RGI и ISR производится после загрузки в ПКП команды OCW3 соответствующи­ми значениями ERIS и RIS (рис. 2.19,в) с последующим выполнением команды ввода IN (A0 =1, RD = 0). Считывание со­держимого регистра RGM производится без предварительной загрузки OCW3 по команде IN (A0=l, RD = 0).

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

. Контроллер прямого доступа к памяти (КПДП) генерирует управляющие сигналы, необходимые для организации обмена. КПДП содержит четыре канала прямого доступа, каждый из которых обеспечивает передачу блока данных размером до 16К байт с произвольным начальным адресом в диапазоне от 0 до 64К байт [5, 8, 9].

Упрощенная структурная схема КПДП приведена на рис. 2.15,а. В состав БИС входят: двунаправленный двустабильный буфер данных (BD), предназна­ченный для обмена информацией между МП и КПДП; схема управления чте­нием/записью (RWCU), адресующая вну­тренние регистры КПДП и управляющая обменом по шине D(7 — 0); блок управле­ния (СU), содержащий регистры режима и состояния КПДП и обеспечивающий последовательность операций, необходи­мую для организации режима прямого доступа к памяти; блок управления при­оритетами (PCU), обеспечивающий определенный порядок обслуживания запро­сов внешних устройств: четыре канала прямого доступа (СНО — СНЗ). Каждый, из которых содержит регистр адреса ячейки памяти, с которой производится обмен, и счетчик циклов обмена, два старших разряда которого отведены для задания операций обмена.

Назначение входных. выходных и управляющих сигналов КПДП приве­дено при описании выводов микросхемы в табл. 2.15

р ис.2.15

При подключении КПДП к шинам микроЭВМ младший байт адреса памяти выдается по линиям А(3-0) и А(7-4). а старший байт — через шину D(7 — 0). по­этому КПДП обычно подключается вме­сте с буферным регистром. Схема под­ключения КПДП к системной шине с использованием буферного регистра К589ИР12 показана на рис. 2.15,б.

Для начальной установки КПДП не­обходимо записать соответствующую ин­формацию в 16-разрядный регистр адреса канала (RGA). в 16-разрядный счетчик ци­клов канала (СТ) и в 8-разрядный регистр режима, общий для всех каналов. Запись этой информации производится с помощью команды OUT, хотя возможен и другой способ обращения к КПДП как к ячейкам памяти. Запись информации в 16-разрядные регистры осуществляется двумя командами, начиная с младшего байта. Два старших разряда счетчика ци­клов определяют операцию обмена сле­дующим образом: запись в память — 01. чтение из памяти — 10, контроль — 00 (комбинация 11 запрещена). Состояние КПДП можно контролировать чтением содержимого RGA, СT и 8-разрядного ре­гистра состояния, общего для всех кана­лов, с помощью команды IN. Для чтения содержимого 16-разрядного регистра ис­пользуются две команды IN с одной и той же адресной частью, причем снача­ла происходит считывание младшего бай­та. В табл. 2.16 приведены коды адресных выводов А(3 — 0) и значение сигнала CS для адресации внутренних регистров КПДП. При программировании КПДП операции записи управляющих слов или чтения состояний внутренних регистров определяются также значениями сигналов

i | or и I | OW.

Обозначение вывода

Номер контакта

Назначение вывода

D(7-0)

21; 22; 23; 26; 27; 28; 29; 30

Входы/выходы данных для обмена с МП

I | OR

1

Чтение ввода/вывода — двунаправленный тристабильный вход/выход; входной сигнал L-уровня разрешает чтение ин формации из КПДП в МП; выходной сигнал L-уровня

разрешает чтение из ВУ

I | OW

2

Запись ввода/вывода — двунаправленный тристабильный вход/выход; входной сигнал L-уровня разрешает программирование КПДП; выходной сигнал L-уровня разрешает запись в ВУ

CLK

12

Вход тактовых импульсов

RESET

13

Вход установки 0

А(З-О)

35; 34; 33; 32

Двунаправленные тристабильные адресные выводы

CS

11

Выбор микросхемы

A(7-4)

40; 39; 38; 37

Тристабильные адресные выходы

READY

6

Готовность — входной сигнал H-уровня указывает на готовность к обмену

HRQ

10

Запрос захвата — выходной сигнал H-уровня указывает на запрос о доступе КПДП к системным шинам

HLDA

7

Подтверждение захвата — входной сигнал H-уровня указывает на возможность доступа к системным шинам

MEMR

3

Чтение из памяти — тристабильный выход; выходной сигнал L-уровня разрешает чтение из ячейки памяти, адресуемой КПДП

MEMW

4

Запись в память — тристабильный выход; выходной сигнал L-уровня разрешает запись в ячейку, адресуемую КПДП

AEN

9

Разрешение адреса — сигнал H-уровня используется для блокировки некоторых шин адреса и данных

ADSTB

8

Строб адреса — сигнал H-уровня указывает на нахождение на шине D(7 — 0) старшего байта адреса ЗУ

TC

36

Конец счета — сигнал H-уровня определяет выполнение последнего цикла передачи блока данных

MARK

5

Маркер — сигнал H-уровня указывает, что до конца передаваемого блока необходимо выполнить число циклов обмена кратное 128

DRQ3-

DRQO

16; 17; 18; 19

Запросы прямого доступа к памяти каналов СНЗ—СН0: сигнал H-уровня указывает на запрос от ВУ

DACK3-

DACK0

15; 14; 24; 25

Подтверждение запросов прямого доступа к памяти каналов СНЗ—СНО: сигнал L-уровня указывает на разрешение обмена

Ucc

31

Напряжение питания (+5 В)

GND

20

» » (0 В)

Таблица 2.16 Адресация внутренних регистров КПДП

Регистр

Сигналы управления

CS

A3

A2

А1

А0

RQ0

0

0

0

0

0

СТ0

0

0

0

0

1

RQ1

0

0

0

1

0

CT

0

0

0

1

1

RQ2

0

0

1

0

0

CT2

0

0

1

0

1

RQ3

0

0

1

1

0

СТЗ

0

0

1

1

1

Регистр режима (запись)

0

1

0

0

0

Регистр состояния (чтение)

0

1

0

0

0

NOP*

1

X

X

X

X

Примечания. 1. NOP — означает отключение КПДП от шины данных. 2. X — произвольное состояние (X €[0;1]).

Формат управляющего слона, записываемого в регистр режима, приведен на рис. 2.15,в. Разряды D3-D0N3 - ЕN0) задают разрешение обмена по соответствующему каналу, запись нуля в разряд запрещает обмен. Остальные разряды определяют режимы работы канала.

Разряд D4(RP) устанавливает порядок обслуживания запросов от каналов. При RP = 0 задается фиксированный приори­тет каналов, и канал 0 имеет высший приоритет. В режиме циклического приоритета (RP= 1) после обслуживания канала ему присваивается низший приоритет, а следующему за ним по номеру каналу — высший. Причем циклический сдвиг приоритетов производится после каждого цикла прямого доступа.

Режим расширенной записи (EW=1) увеличивает за счет смещения переднего фронта длительность сигналов I | OW и MEMW. генерируемых КПДП. Это позволяет ВУ, формирующему сигнал READY по фронту сигнала записи, уменьшить время охлаждения и увеличить скорость обмена.

При TCS = 1 появление сигнала ТС в одном из каналов сбрасывает соответствующий разряд D3 — DO, в результате чего канал отключается. Дальнейшая работа этого канала возможна после перезагрузки регистра режима. Если TCS=0. то появление сигнала ТС не воздействует на разряд разрешения работы канала и заканчивать передачу должно ВУ за счет прекращения выработки сигнала DRQ.

В режиме автозагрузки (AL=l) может работать только второй канал, используя содержимое своих внутренних регистров и внутренних регистров третьего канала. После передачи данных в соответствии с параметрами регистров второго канала и появления сигнала ТС параметры из регистров третьего канала автоматически загружаются в регистры второго канала: флаг обновления (UF) в регистре состояния каналов (рис. 2.15,г) устанавливается в 1. Затем передача данных продолжается в соответствии с новыми параметрами регистров второго канала, а в конце первого же цикла прямого доступа с новыми параметрами флаг UF сбрасывается. Режим автозагрузки позволяет организовать повторяющиеся пересылки блоков данных с одинаковыми параметрами или соединять несколько блоков с разными параметрами.

Разряды D3 — D0 регистра состояний (рис. 2.15,г) устанавливаются одновременно с появлением сигнала ТС соответствующего канала и сбрасываются сигналом RESET при чтении содержимого регистра состояний. Считывание регистра состояний на флаг UF (разряд D4) не влияет; флаг можно сбросить установкой 0 в разряде D7 регистра режима.

Если два старших разряда счетчика циклов канала устанавливают режим контроля (VERIFY). то передача данных не производится, так как не генерируются сигналы управления записью и чтением, все остальные функции прямого доступа сохраняются. Этот режим может использоваться ВУ для контроля принятых данных.

Работу КПДП поясняет диаграмма состояний (рис. 2.15,д) и временные диаграммы основных сигналов (рис. 2.16).

рис.2.16

В начальном состоянии SI запрограммированный на определенный режим КПДП ожидает запроса DRQ от ВУ. Переходя в состояние So. он вырабатывает сигнал HRQ и ожидает поступления от МП сигнала HLDA. После поступления сигнала подтверждения HLDA начинается цикл обмена. В состоянии SI формируется сигнал AEN для блокировки других устройств системы от шин данных и управления, выдается код младших разрядов на выходы А(7-0), а код старших разрядов — на выходы D(7 — 0).

Выдача старших разрядов адреса сопровождается стробирующим сигналом ADSTB для записи их во внешний буферный регистр. В состоянии S2 вырабатывается сигнал DACK. указывающий на начало обмена, а также формируются пары сигналов MEMR, I | OR и МЕMW, I / OW, определяющие направление обмена. В состоянии S3 происходит передача данных в ЗУ или ВУ. Состояние S4 завершает цикл прямого доступа. В этом состоянии при передаче последнего байта выдается сигнал ГС. а в случае конца блока — сигнал MARK. При необходимо­сти согласования быстродействия ЗУ и ВУ с помощью сигнала READY между состояниями S3 и S4 вводится требуемое число состояний ожидания SW. В режиме контроля переход в состояние SW не разрешается.

. Архитектура БИС парал­лельного интерфейса КР580ВВ55

БИС программируемого параллельного интерфейса КР580ВВ55 предназначена для организации ввода вывода параллельной информации различного формата и позволяет реализовать большинство известных протоколов обмена по параллельным каналам [8. 9]. БИС программируемого параллельного интерфейса (ППИ) может использоваться для сопряжения микропроцессора со стандартным периферийным оборудованием (дисплеем, телетайпом, накопителем).

Структурная схема ППИ приведена на рис. 2.11.а. В состав БИС входят: двунаправленный 8-разрядный буфер данных (BD). связывающий ППИ с системной шиной данных: блок управления записью/чтением IRWCU). обеспечивающий управление внешними и внутренними передачами данных, управляющих слов и информации о состоянии ППИ; три 8-разрядных канала ввода/вывода (PORT А. В и С) для обмена информацией с внешними устройствами: схема управления группой A (CUA). вырабатывающая сигналы управления каналом А и старшими разрядами канала С[PC(7 — 4)1: схема управления группой В (CUB). вырабатывающая сигналы упра­вления каналом В и младшими разряда­ми канала С [PC(3 -О)].

Назначения входных, выходных и управляющих сигналов ППИ приведены при описании выводов микросхемы в табл. 2.13 Сопряжение БИС КР580ВВ55 со стандартной системной шиной показано на рис. 2.11,6. Сигналы управления работой ППИ подаются на блок RWCU (рис. 2.11,а) и вместе с адресными входа­ми А0, А1 задают вид операции, выпол­няемой БИС (табл. 2.14)

Режим работы каждого из каналов ППИ программируется с помощью управляющего слова. Управляющее слово может задать один из трех режимов: основной режим ввода/вывода (режим 0), стробируемый ввод/вывод (режим 1). режим двунаправленной передачи информации (режим 2). Одним управляющим словом можно установить различные режимы работы для каждого из каналов. Формат управляющего слова представлен на рис. 2.11, в.

.

Рис.2.11

Канал А мелеет работать в любом из трех режимов, канал В - в режимах 0 и 1. Канал С может быть использован для передачи данных только в режиме 0, а в остальных режимах он служит для передачи управляющих сигналов, сопровождающих процесс обмена по каналам .4 и В.

Разряд D7 управляющего слова (рис. 2.11, в) определяет либо установку режимов работы каналов (D7 = 1), либо работу ППИ в режиме сброса/установки отдельных разрядов канала C(D7=0). При поразрядном управлении каналом С раз­ряды D3 — D1 определяют номер модифицируемого разряда; разряд D0 задает сброс (D0 = 0) или установку (D0 = 1) модифицируемого разряда; разряды D6 — D4 но используются.

Сброс/ установку разрядов канала С можно использовать для выработки сигналов запроса прерывания от ППИ. Для каждого из каналов А и В в ППИ имеется триггер разрешения прерывания, установка сброс которого осуществляется управляющим словом установки/ сброса определенного разряда канала С. Если триггер разрешения прерывания соответствующего канала установлен (INTE=1). то ППИ может сформировать сигнал запроса прерывания при готовности внешнего устройства к вводу или выводу

Режим 0 применяется при синхронном обмене или при программной организации асинхронного обмена. Микросхема может рассматриваться в этом режиме как устройство, состоящее из четырех портов (два 8-разрядных и два 4-разрядных), независимо настраиваемых на ввод или вывод. Вывод информации осуществляется по команде 0UТ микропроцессора с фиксацией выводимой информации в регистрах каналов, а ввод — по команде IN без запоминания информации

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

Таблица 2.13. Описание выводов ППИ

Обозначение вывода

Номер контакта

Назначение вывода

D(7-0)

27; 28; 29: 30;

31; 32; 33; 34

Вход/выход данных

RD

5

Чтение; L-уровень сигнала разрешает считывание информации из регистра, адресуемого по входам АО, А1 на шину D(7—0)

WR

36

Запись; L-уровень сигнала разрешает запись информации с шины D(7—0) в регистр ППИ, адресуемый по входам АО, А1

АО, А1

9; 8

Входы для адресации внутренних регистров ППИ

RESET

35

Сброс; Н-уровень сигнала обнуляет регистр управляющего слова и устанавливает все порты в режим ввода

CS

6

Выбор микросхемы; L-уровень сигнала подключает ППИ к системной шине

РА(7-0)

37; 38; 39; 40;

1; 2; 3; 4

Вход/выход канала А

РВ(7-0)

15; 24; 23; 22;

21; 20; 19; 18

Вход/выход канала В

РС(7-0)

10; 11; 12; 13;

17; 16; 15; 14

Вход/выход канала С

Ucc

26

Напряжение питания (+5 В)

GND

7

» » (0 В)

В режиме 1 для ввода информации ис­пользуются следующие управляющие сигналы: строб приема (STB) - входной сигнал, формируемый внешним устройством: указывает на готовность ВУ к вводу информации: подтверждение приема (IBF) — выходной сигнал ППИ. сообщающий ВУ об окончании приема данных в канал; формируется по спаду STB: запрос прерывания (INTR) — выходной сигнал ППИ. информирующий МП о завершении приема информации в канале; H-уровень сигнала устанавливается при STB=L 1BF= 1 и INTE=1; сбрасывается спадом сигнала RD.

Таблица 2.14. Операции, задаваемые управляющими сигналами ППИ

Операция

Сигналы управления

CS

RD

WR

A1

A0

Запись управляюще­го слова из МП

0

1

0

1

1

Запись в канал А

0

1

0

0

0

» » » В

0

1

0

0

1

» » » С

0

1

0

1

0

Чтение из канала А

0

0

1

0

0

» » » В

0

0

1

0

1

» » » С

0

0

1

1

0

Отключение ППИ от D(7-0)

1

X

X

X

X

Примечание. X -безразличное состояние сигнала.

Для операции ввода управление сигна­лом INTE канала А осуществляется по линии РС4, а канала В — по линии РС2.

Для вывода информации в режиме 1 используются следующие управляющие сигналы: строб записи (OBF) — выходной сигнал, указывающий внешнему устрой­ству о готовности к выводу; формируется по фронту WR; подтверждение записи (АСК) — входной сигнал от внешнего устройства, подтверждающий прием ин­формации из ППИ; запрос прерывания (INTR) — выходной сигнал ППИ, инфор­мирующий МП о завершении операции вывода информации; H-уровень сигнала устанавливается по фронту сигнала АСК при OBF=1 и INTR = l; сбрасывается спадом сигнала WR.

Для операции вывода управление сиг­налом INТЕ канала А осуществляется по линии РС6, а канала В - по линии РС2.

На рис. 2.12,а приведен пример кон­фигурации ППИ в режиме 1 и соот­ветствующее ему управляющее слово для ввода по каналам А, В, а на рис. 2.12,б — для вывода. Не используемые для передачи управляющих сигналов ли­нии РС7, РС6 (рис. 2.12,а) и РС5, РС4 (рис. 2.12,б) могут быть запрограммиро­ваны на ввод (DЗ=1) или вывод (D3=0). На рис. 2.12. в приведен вариант конфигура­ции ППИ в режиме 1 для вывода инфор­мации по каналу А и ввода по каналу В. Управляющее слово этого варианта имеет вид 1011D311X, где D3 определяет работу линий РС5, РС4 на ввод или вывод.

рис.2.12

Режим 2 обеспечивает двунаправлен­ную передачу информации по каналу А к внешнему устройству и обратно. Про­цесс обмена сопровождают пять упра­вляющих сигналов, подаваемых по ли­ниям РС7 — РСЗ. Оставшиеся 11 интер­фейсных линий могут настраиваться на режим 0 или режим 1. Распределение сиг­налов по интерфейсным линиям и упра­вляющее слово режима 2 приведены на рис. 2.14,а. Разряд D0 в этой конфигура­ции ППИ определяет настройку на ввод или вывод интерфейсных линий РС2, РС1 и РС0. Функции управляющих сигналов аналогичны рассмотренным выше сигна­лам для режима 1. Управление установкой внутреннего сигнала INTE для операции ввода осуществляется по линии РС4, а для операции вывода — по линии РС6

. Временная диаграмма ра­боты ППИ в режиме 2 представлена на рис. 2.14,б.

На рис. 2.14,в показан один из воз­можных вариантов комбинированного режима работы ППИ, в котором канал А запрограммирован на режим 2, а канал В — на вывод в режиме 1.

В режимах 1 и 2 возможно проведение контроля за состоянием работы внешнего устройства и ППИ. Контроль осущест­вляется чтением слова-состояния канала

С по команде OUT. Форматы слова-со­стояния показаны на рис. 2.14,г. Для ре­жима 1 сигналы I/O в разрядах с опреде­ленными номерами указывают на опера­цию ввода или вывода по интерфейсным линиям канала С с такими же номерами. Для режима 2 значения разрядов D2 — D0 определяются только режимом работы группы В.

Рис.2.14