Avdeev
.pdf61
адреса). На рис. 2.25 показана схема запоминания сигналов ВыбПУ, DA1 и DA0 с помощью D – L триггеров.
ДшА |
Выб ПУ |
|
AP |
|
|
AD9-AD2 |
D1 |
T |
Q |
ТВыб ПУ |
|
|
|
D2 |
|
1 |
TA1 |
|
|
D3 |
|
2 |
|
AD1 |
|
|
|
3 |
TA2 |
AD2 |
|
L |
|
|
|
ALE |
1 |
|
|
|
|
Рис. 2.25. Схема запоминания адресных сигналов с помощью D – L триггеров
Фиксация сигналов в АР происходит до появления сигнала ALE, а с его установкой запрещается запись сигналов в АР. Схема ДшУС (см. рис. 2.21) функционирует в соответствии с табл. 2.4.
|
|
|
|
|
|
|
|
|
|
|
Таблица 2.4 |
||||||||||
|
|
|
AD1 |
AD0 |
|
|
|
|
|
|
Операция |
||||||||||
ВыбПУ |
IOR |
IOW |
|||||||||||||||||||
(сигнал ДшУс) |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
0 |
|
0 |
1 |
0 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
ЧтРДВв |
||||||||||||||||
0 |
|
1 |
0 |
0 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
ЧтТФГ |
|||||||||||||||
0 |
|
0 |
1 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
ЗпРДВыв |
||||||||||||||||||
0 |
|
1 |
0 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
Пуск |
||||||||||||||
0 |
|
1 |
1 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
ЗпТРП |
3.1.Программный обмен
Всистемных интерфейсах выполняются три основных способа обмена данными:программный(условныйибезусловный),программныйспрерываниеми прямой доступ к памяти (ПДП). Программный обмен осуществляется по инициативе задатчика (З) и может иметь как условный, так и безусловный характер. Безусловный обмен заключается в непосредственной передаче данных в регистр адаптера ПУ. Условный обмен состоит в том, что З непрерывно сканирует (опрашивает) флаг готовности адаптера ПУ и как только флаг готовности будет установлен со стороны ПУ, З (например, процессор) осуществляет ввод или вывод данных. Рассмотрим процедуру ввода данных из регистра РВв П с опросом флага готовности (ФГВв). На рис. 3.1 изображена схема координации работы П и ПУ, содержащая порты адаптера: регистр РВв и 1–разрядный регистр состояния (РСВв).
|
D0 - D7 |
П |
|
|
1 - РДВв полон |
|
ФГВв (IBF) |
ФГВв = |
|||
|
8 |
|
|
|
0 - РДВв пуст |
ЧтРДВв |
|
|
|
|
|
|
РДВв |
|
|
РCВв |
|
ДшУС |
|
|
|
||
8 |
|
уст |
сбр |
|
|
|
|
|
|||
|
|
|
|
|
|
|
BD0 - BD7 СТР(STR) IBF |
|
|
|
|
|
|
ПУ |
|
|
|
Рис. 3.1. Схема координации работы ПУ и П в режиме ввода |
В этом режиме ПУ (устройство ввода) передает в РДВв по линиям BD0–BD7 байт данных и записывает его сигналом строб (СТР). Кроме того, сигнал строб устанавливает бит РСВв, формирующий на своем выходе сигнал ФГВв (флаг готовности), равный 1. Процессор по единичному значению ФГВв определяет, что РДВв по-
63
лон, и осуществляет чтение данных. При выполнении операции чтения ДшУС адаптера (см. рис. 2.3) вырабатывает сигнал ЧтРДВв, осуществляющий чтение содержимого РДВв на шину D0–D7 и сброс бита РСВв (ФГВв). ПУ по ФГВв=0 узнает, что РДВв пуст и снова загружает его, устанавливая ФГВв=1 и т.д. Координация работы ПУ и П в режиме вывод состоит в следующем (рис. 3.2).
BD0 - BD7 |
ПУ |
|
|
|
1 - РДВыв пуст |
|
ACK |
ФГВыв (OBF) |
ФГВыв = |
||||
8 |
|
|
|
|
|
0 - РДВыв полон |
|
|
|
|
|
|
|
|
|
РДВыв |
|
|
РCВыв |
|
8 |
|
|
уст |
|
сбр |
|
|
|
|
|
|
|
|
D0 - D7 |
ЗпРДВыв ДшУС |
1 |
|
|
||
|
П |
|
|
Общий сброс |
|
|
|
Рис. 3.2. Схема координации ПУ и П в режиме вывод |
По сигналу общий сброс в 1–разрядном регистре РСВыв устанавливается бит
иФГВыв=1,что указывает П о пустомРДВыв.Процессор выполняет операции OUT
изагружает РДВыв байтом данных по линиям D0–D7. Во время выполнения цикла шинызапись(см.рис.2.8)ДшУСадаптераформируетсигналЗпРДВыв,покоторому осуществляется запись данных в РДВыв и сброс флага готовности (ФГВыв = 0). ПУ по сигналу ФГВыв=0 определяет, что РДВыв полон и считывает его содержимое. После этого ПУ формирует сигнал подтверждения приема данных АСК, устанавливающий вновь ФГВыв в единичное состояние. После чего П передает байт данных в РДВыв и т.д.
Режим прерывания выполняется по инициативе ПУ, требует дополнительных аппаратурных затрат, но является более производительным для П, так как П не тратит время на сканирование флага готовности, а может выполнять другую полезную работу. В этом режиме в регистре состояния (РС) используется еще один бит, называемый разрешение прерывания (РП), который устанавливается и сбрасывается со стороны П. Бит РП РС – это бит с передачей бита BDi (0 или 1) из П. На рис. 3.3 показана схема синхронизации ПУ и П в режиме прерывания при вводе данных в П.
64
|
П |
|
|
IRQN |
|
|
|
D0 - D7 |
|
|
& |
|
|
ЧтРДВв |
8 |
|
ФГВв |
РПВв |
|
|
|
РДВв |
ФГ РП |
|
РCВв |
||
ДшУС |
|
|
||||
8 |
|
уст |
|
|
|
|
|
|
|
|
|
||
|
|
сбр |
|
|
|
|
|
|
|
|
|
|
|
|
BD0 - BD7 |
СТР(STR) |
|
ЗпРП |
BDi |
из П |
|
ПУ |
|
||||
|
ДшУС |
|
|
Рис. 3.3. Схема синхронизации ПУ и П в режиме прерывания при вводе данных
В этом режиме П предварительно устанавливает бит РП РСВв путем выполнения операции OUT (бит BDi =1). Затем ПУ записывает байт данных в РДВв и устанавливает бит ФГ в РСВв (ФГВв=1). При выполнении условия ФГВв=РПВв=1 на выходе элемента И формируется сигнал прерывания IRQ N, поступающий в контроллер прерывания и сообщающий П, что РДВв полон. После чего с помощью контроллера прерываний и П находится драйвер (обработчик прерывания), который вводит байт данных РДВв в регистр П. Аналогичнымобразом при выполненииусловия ФГВыв=РПВыв=1 формируется сигнал прерывания IRQ N при выводе байта данныхизПвПУ,сообщающийПотом,чтоРДВывпустиможновыводитьданные.
3.2. Контроллер программного обмена
Рассмотрим вопросы проектирования контроллера программного обмена, содержащего 8-битный регистр вывода (РВыв (W/R)), 8-битный регистр ввода (РВв (R)), триггер состояния (ТС (R)) и 2-битный регистр управления (РУ (W/R)). Обозначение (W/R) указывает на то, что соответствующий порт доступен со стороны процессора по записи (W) или чтению (R), а обозначение (R) – на то, что соответствующий порт доступен только по чтению. Режим чтения (R) для РВыв и РУ является неосновным и введен с целью контроля правильности вывода данных. На рис. 3.4 представлена схема соединения ПУ и контроллера (КОН) программного обмена.
65
|
ПУ |
|
|
|
Д |
Д |
Стр |
Пуск |
КОН |
|
||||
РВыв |
РВв |
|
РУ |
ТС |
|
|
БС |
|
Готовность |
|
|
|
|
|
ШД |
|
ШУ |
ША |
|
Рис. 3.4. Схема соединения ПУ и КОН
Порты КОН подключаются к шинам данных (ШД), управления (ШУ) и адреса (ША) при помощи блока сопряжения (БС), интерфейсной логики. Регистр РВыв используется для приема начального значения ПУ. Регистр РУ содержит два триггера, один из которых формирует сигнал Пуск, поступающий в ПУ и инициирующий его работу, а другойформирует сигнал разрешения прерывания (РП). Триггер состояния (ТС) указывает процессору о том, что ПУ завершило работу и получен результат этойработы,записанныйсостороныПУврегистрРВв.Процессорчерезпрерывание или опрос флага готовности (значения ТС) определяет наличие результата в РВв и считывает его значение.
В качестве ПУ может быть использован специализированный вычислитель (аппаратурная подпрограмма), например, определяющий значение функции по начальному значению аргумента, хранящегося в РВыв, или многоканальный АЦП среднего быстродействия, для выбора одного из аналоговых каналов которого употребляется РВыв, а РВв применяется для хранения кода преобразованной аналоговой величины. На рис. 3.5 изображена структурная схема КОН.
Выберем из резерва 3E0h-3E7h адресного пространства ввода-вывода адреса 3Е0h-3E3h и присвоим их портам. При этом старшие биты адреса SA9-SA2 являются общими для всех портов (эти старшие биты адреса определяют выбор ПУ), а младшиебитыадресаSA1иSA0представляютсяразнымиипредназначаютсядлявыбора одного из четырех портов внутри КОН.
66 |
|
|
|
|
|
|
|
|
Шина ISA |
|
|
|
|
|
|
|
Шина ПУ |
SA9-SA2 |
|
|
|
|
|
|
|
|
AEN |
ДшА |
Выб ПУ 1 |
Выб ПУ |
BD7-BD0 |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
ЗпРВыв |
РВыв |
|
ОD7-ОD0 |
|
|
|
|
|
|
|
ЧтРВыв |
|
|
|
|
ЧтРВыв |
|
Е |
|
||
|
|
|
|
|
|
|||
|
|
|
ЗпРВыв |
|
|
|
||
|
|
|
|
|
|
Пер |
||
SA1, SA0 |
|
|
ЗпРУ |
|
|
|
||
|
|
|
|
|
|
|||
IOR |
ДшУС |
|
ЧтРУ |
|
|
|
|
|
IOW |
|
|
ЧтТС |
|
|
|
|
|
|
|
|
ЧтРВв |
|
|
|
ЧтРВв |
|
1 |
|
|
|
|
BD7-BD0 |
РВв |
|
ID7-ID0 |
|
|
|
|
|
|
|
|
|
|
ПП |
|
|
|
|
|
|
1 |
IRQ10 |
|
|
|
|
BD1,BD0 |
|
|
|
|
|
|
|
|
|
|
||
SD7-SD0 |
В |
А |
BD7-BD0 |
|
|
|
Пуск |
|
|
|
BD0 |
|
|
|
|
||
|
Т |
|
|
|
РУ |
|
|
|
|
|
|
|
ЗпРУ |
|
РП |
||
|
|
|
|
|
|
|
||
Выб ПУ |
CS |
|
|
|
|
|
|
Стр |
|
|
|
|
|
|
|
|
|
|
|
|
IRQ10 |
& |
|
S |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
ТС |
|
ЧтРВв |
|
|
|
|
|
|
|
R |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
Готовность |
ЧтТС |
|
|
||
|
|
|
|
|
|
|
|
|
|
Рис. 3.5. Структурная схема КОН |
|
|
В табл. 3.1 представлены порты КОН, их адреса и указан тип доступа. Таблица 3.1
Порт |
Адрес |
Доступ |
РВыв |
3Е0 |
W/R |
РВв |
3Е1 |
R |
РУ |
3Е2 |
W/R |
ТС |
3Е3 |
R |
В структурной схеме дешифратор адреса (ДшА) предназначен для декодиро- ваниястаршей(общей)частиадресаSA9-SA2сучетомсигналаAENнизкогоуровня, разрешающего обычный ввод-вывод. На выходах ДшА формируется сигнал выбор
67
ПУ (ВыбПУ ), указывающий на то, что ПУ опознало соответствующий адрес. Для построения принципиальной схемы ДшА необходимо написать двоичный эквивалент старшей части адреса и указать их соответствующие адресные линии (рис. 3.6).
AEN |
SA9 |
SA8 |
SA7 |
SA6 |
SA5 |
SA4 |
SA3 |
SA2 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
Рис. 3.6. Двоичный эквивалент старшей части адреса
Работа дешифратора управляющих сигналов (ДшУС) описывается табл. 3.2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 3.2 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Операция |
|||||||||
ВыбПУ |
SA1 |
SA0 |
|
|
|
|
|
|
||||||||||||
|
|
IOR |
IOW |
|||||||||||||||||
|
(CS) |
(ДшУС) |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
0 |
|
0 |
0 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
ЗпРВыв |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
0 |
|
0 |
0 |
0 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
ЧтРВыв |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
0 |
|
0 |
1 |
0 |
|
1 |
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
ЧтРВв |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
0 |
|
1 |
0 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
ЗпРУ |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
0 |
|
1 |
0 |
0 |
|
1 |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
ЧтРУ |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
0 |
|
1 |
1 |
0 |
|
1 |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
ЧтТС |
Примечание: Зп – запись, Чт – чтение.
Таким образом, ДшУС формирует сигнал при выполнении четырех условий: выбрано ПУ, имеются в наличии сигналы SA1, SA0 и IOR (IOW).
Приемопередатчик (ПП) предназначен для согласования электрических характеристик шины SD7-SD0 и внутренней буферизированной шины BD7-BD0 КОН и управления направлением передачи данных. ПП передает данные из КОН на шину только в случае, если выбрано ПУ и выполняется режим чтения, а в остальных случаях ПП пропускает данные шины в КОН, но они могут быть записаны в порт КОН только при наличии соответствующего сигнала ДшУС. Если вход Т=1, то направление передачи данных с А на В.
68
Регистр РВыв предназначен для временного хранения данных (Д), передаваемых из процессора в ПУ. Для реализации контрольного чтения содержимого РВыв используется передатчик (Пер) с тремя состояниями. Данные (Д), полученные в ПУ, передаются в РВв и записываются в него сигналом строб (Стр), который одновременно устанавливает триггер ТС, сообщающий процессору о том, что РВв полон. При чтении процессором содержимого РВв триггер ТС сбрасывается в исходное состояние.
Сигнал прерывания IRQ10 формируется КОН, если установлен соответствующий бит разрешения прерывания (РП) в регистре РУ и триггер TC (флаг готовности ПУ). Сигнал прерывания сообщает процессору, что РВв полон.
Принцип работы КОН заключается в следующем. Вначале процессор выполняет вывод байта данных в РВыв (3E0h) и осуществляет пуск ПУ (установку бита пуск РУ (3E2h)). Затем через прерывание (предварительно установлен бит РП в регистре РУ) или путем опроса флага готовности (единичное значение триггера ТС (3E3h)) процессор определяет, что РВв полон. После этого процессором выполняется чтение содержимого РВв (3E1h).
Схема ДшА может быть реализована на двух микросхемах 1533 СП1 (рис. 3.7) с учетом двоичного эквивалента старшей части адреса (см. рис. 3.6).
|
|
А |
= = |
|
|
А |
= = |
|
AEN |
0 |
|
SA5 |
0 |
||
|
|
|
|
||||
|
SA9 |
1 |
|
|
SA4 |
1 |
|
|
SA8 |
2 |
А> |
|
SA3 |
2 |
|
|
SA7 |
3 |
|
SA2 |
3 |
|
|
|
|
|
|
||||
"1" |
0 |
В |
|
"1" |
1 |
В |
|
|
1 |
0 |
А= |
|
0 |
0 |
|
|
1 |
|
1 |
|
|||
|
1 |
2 |
|
|
0 |
2 |
|
|
1 |
3 |
А< |
|
0 |
3 |
|
|
|
Рис. 3.7. Схема ДшА на двух 1533 СП1 |
|||||
|
|
А> |
|
|
|
А> |
|
|
SA6 |
А= |
|
|
|
А= |
|
|
|
А< |
|
|
|
А< |
|
А> |
|
|
А= |
Выб ПУ |
|
|
Выб ПУ |
|
|
1 |
|
|
|
|
А< |
|
|
69
На рис. 3.8 представлена схема ДшА на элементах ЛЕ1 и ЛА2 (а) или ЛА1 и
ИД7 (б).
|
ЛЕ1 |
|
|
|
|
|
ИД7 |
|
|
AEN |
|
|
|
|
|
|
|
|
|
& |
|
|
|
|
|
DMX |
|
Выб ПУ |
|
SA4 |
ЛА2 |
|
|
SA2 |
1 |
0 |
|||
|
|
|
|
|
|||||
SA3 |
|
|
|
|
SA3 |
2 |
|
1 |
|
& |
|
|
|
|
2 |
|
|||
|
|
|
|
|
|
|
|||
SA2 |
|
|
|
SA4 |
3 |
|
|
||
|
|
|
|
|
3 |
|
|||
|
|
|
|
|
ЛA1 |
|
|
|
|
SA9 |
|
|
Выб ПУ |
|
& |
|
4 |
|
|
|
& |
SA9 |
AEN |
|
|
||||
SA8 |
|
|
SA8 |
E |
|
5 |
|
||
|
|
|
& |
|
|
||||
SA7 |
|
|
|
SA7 |
|
|
6 |
|
|
|
|
|
SA5 |
|
|
|
|||
SA6 |
|
|
|
SA6 |
|
|
7 |
|
|
SA5 |
|
|
|
|
|
|
|
|
|
(а) (б)
Рис. 3.8. Схема ДшА на элементах ЛЕ1 и ЛА2 (а) или ЛА1 и ИД7 (б)
Схема ДшУС, реализованная на микросхеме 1533 ИД4 в соответствии с табл. 3.2, изображена на рис. 3.9.
Выб ПУ |
|
|
|
|
|
|
|
& |
DMX |
0 |
ЗпРВыв |
|
|
E |
|||
IOW |
1 |
|
1 |
|
|
|
|
|
|||
|
|
2 |
ЗпРУ |
||
|
|
|
|
||
SA0 |
|
A0 |
|
3 |
|
|
|
|
|
||
SA1 |
|
A1 |
|
0 |
ЧтРВыв |
|
|
|
|
||
|
|
|
|
1 |
ЧтРВв |
|
Рис. 3.9.&Схема ДшУС |
ЧтРУ |
|||
IOR |
|
G |
|
2 |
|
|
|
3 |
ЧтТС |
||
|
|
|
|||
3.3. Прямой доступ к памяти |
|
||||
|
|
|
Обмен в режиме ПДП является наиболее быстродействующим и требующим значительных аппаратурных затрат. В режиме ПДП обмен данными выполняется между ПУ и ОП без участия П и реализуется аппаратурным способом. В этом режиме П используется для инициализации (подготовки) контроллера ПДП. Режим ПДП обычно применяется для организации связи внешней памяти с ОП для передачи блоков данных. Контроллер ПДП (КПДП) в этом режиме захватывает интерфейс,направляетадресячейкивОП,подсчитываетколичествопередаваемыхбайтов
70
(слов), вырабатывает необходимые интерфейсные сигналы как задатчик и координирует свою работу с работой контроллера внешней памяти (ВЗУ). На рис. 3.10 представленасхемасопряженияП,КПДП,контроллераВЗУ(КВЗУ)иВЗУврежиме ПДП.
|
|
|
IOW |
|
|
|
|
|
|
IOR |
|
|
|
П |
HRQ |
КПДП |
DRQN |
КВЗУ |
ВЗУ |
|
HLDA |
DACKN |
|||||
(DMA) |
||||||
|
D0 - D15 (D7) |
|
T/C |
|
|
|
|
|
|
|
|
||
ОП |
Адрес |
|
|
|
|
|
MEMR , MEMW |
|
|
|
|||
|
I/O CH RDY |
|
|
|
||
|
Рис. 3.10. Схема сопряжения устройств в режиме ПДП |
Вначале режима ПДП П инициализирует КПДП: задает режим работы, передает начальный (стартовый) адрес ОП, число передаваемых байтов (слов) и т.д. Затем П выводит команды в КВЗУ, указывающие тип операции (запись, чтение или поиск и так далее). После подготовки данных КВЗУ устанавливает сигнал запрос ПДП (DMA) DRQ N (N – номер канала). КПДП (микросхема i8237) содержит 4 канала, работающие в режиме разделения времени.
Всвою очередь, КПДП формирует сигнал запрос шины HRQ, поступающий
вП. П освобождает интерфейс (переводит свои выходы в состояние выключено) и устанавливает сигнал подтверждения шины HLDA.
С этого момента времени задатчиком на интерфейсе становится КПДП, под управлением которого осуществляется передача данных через КВЗУ между ВЗУ и ОП по следующей схеме (рис. 3.11).
ВЗУ Данные КВЗУ Данные ОП IRQ6 Управление
П (INT13) ПЗУ (BIOS) КПДП
Рис. 3.11. Схема выполнения режима ПДП