- •Раздел 1 Представление информации в вычислительных системах
- •Тема 1.1 Системы счисления
- •Двоичный формат
- •Двоично-кодированный десятичный формат
- •Буквенно-цифровые коды
- •Тема 1.2 дополнительный код
- •Тема 1.3 Логические функции
- •1. Отрицание
- •2. Логическое или (логическое сложение, дизъюнкция):
- •3. Логическое и (логическое умножение, конъюнкция, схема совпадений):
- •Раздел 2 Построение цифровых вычислительных систем
- •Тема 2.1 Основные понятия ( электронное ) представления данных и их передача в вычислительных системах.
- •Раздел 3 Архитектура и принципы работы основных логических блоков вычислительных систем.
- •Тема 3.1 Организация эвм. Блок схема.
- •Тема 3.2 Организация и принципы работы процессора
- •Тема 3.3 Процессор Структура микропроцессора
- •Назначение арифметических флагов.
- •Адресное пространство памяти и ввода - вывода
- •Тема 3.4 Основные команды процессора
- •Тема 3.5 Организация и принципы работы памяти.
- •Принцип работы
- •Виртуальная память
- •Необходимый объем оперативной памяти
- •Примечание
- •Внимание !
- •Примечание
- •Внешняя кэш-память cpu
- •Примечание
- •Внутренняя кэш-память cpu
- •Примечание
- •Основная область памяти
- •Тема 3.6 Программы отладчики. Debug
- •Тема 3.7 Взаимосвязь с периферийными устройствами
Тема 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 адрес подпрограммы обслуживания па шину данных выдает выбранный по коду на шинах CASO — CAS2 ведомый ПКП.
Установка ПКП в исходное состояние и настройка его на определенный режим обслуживания прерываний программируется двумя типами команд: командами инициализации (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]). |
|||||
Разряд 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
