Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессоры и микроЭВМ. Периферийные устройства.pdf
Скачиваний:
12
Добавлен:
15.11.2022
Размер:
2.64 Mб
Скачать

Рис. 5.7. Временные диаграммы работы ППА. Режим вывода/ввода

Инициализация ППА ИК55

Пример. Запрограммировать режим 0 для всех каналов, задав: порт А на ввод информации; порт В и порт С на вывод информации.

1. Составим управляющее^слово режима работы (УСРР):

D7

D6

D5

D4

D3

D2

 

D1

 

DO

 

0

0

1

0

0

i

0

I

1

■ !

1

1

0

 

 

 

 

_____L

 

1

 

 

 

 

 

 

 

 

в шестнадцатиричном коде УСРР = 90Н; примем адрес регистра режима УВВ = 8FH;

2.Напишем программу инициализации:

LOAD: DI

; запретить прерывание

MVI А, 90Н; занести УСРР в регистр А

OUT 8FH

; вывести УСРР из регистра А в РР УВВ

EI

; разрешить прерывание

6. Программируемый связной адаптер

Для построения интерфейса МПС с устройствами последовательной пе­ редачи данных используются специализированные интерфейсные БИС, кото­ рые получили название программируемых связных адаптеров (ПСА). Так же, как и ППА, они построены на основе принципа программного задания выпол­ няемых функций.

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

Программируемый связной адаптер предназначен для работы как в цепях последовательной асинхронной связи, так и в цепях синхронного обмена. По­ добный универсализм потребовал бы при традиционных методах проектирова­ ния интерфейса цифровых систем очень большого числа управляющих сигна­ лов. что невозможно реализовать из-за ограниченного числа внешних выводов БИС. Все данные, которые характеризуют потребности периферийного обору­ дования и режим работы интерфейса, помещаются в ПСА программным спосо­ бом с использованием стандартных команд МП и управляющих слов.

ВыхД

ГГПер

ППвр

СИПер

ВхД

ГТПр

СИПр

сс

Рис. 6.1. Программируемый связной адаптер

Программируемый связной адаптер обеспечивает полный дуплексный режим передач, детектирование стартовых посылок, может использовать раз­ личные способы представления стоповых бит, проверку ошибок по четности и ошибок в формате. Структурная схема ПСА ИК51 приведена на рис. 6.1, а режимы работы и типовая процедура инициализации показаны на рис. 6.4, я,б.

С корость передачи

3

ао

б

Рис. 6.2. Формат управляющего слова УСРР: а — асинхронный

режим работы; б — синхронный режим работы

Программируемый связной адаптер под воздействием простейших ко­ манд ввода/вывода IN/OUT может осуществить прием информации, представ­ ленной последовательным кодом. Преобразование в стандартную параллель-

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

Схема управления чтснием/записыо содержит два регистра: регистр управляющего слова и регистр инструкции.

Через буфер шины данных МП по сигналу записи ЗП записывает в ПСА или данные, или управляющее слово. По сигналу ЧТ МП может прочитать из ПСА или данные, или информацию о состоянии связного оборудования (СТА­ ТУС). Сигнал на входе УС/Д извещает ПСА о том, какого рода символ он при­ нимает: или слово управления (при 1), или данные (при 0). Любые операции обмена, записи или чтения возможны только в том случае, если на входе селек­ ции ВК присутствует нулевой сигнал. Сигналы схемы управления модемом мо­ гут быть использованы в зависимости от особенностей применяемого связного оборудования для получения информации о его состоянии и для управления ре­ жимом приема/передачи.

Для управления Г1СА используются два формата управляющих слов: УСРР (рис. 6.2) и УСИ (рис. 6.3, а). Управляющее слово УСРР определяет ре­ жим работы ПСА. Это управляющее слово должно быть передано сразу же вслед за операцией СБРОС.

Все управляющие слова загружаются в ПСА после слова УСРР. Управ­ ляющее слово инструкции (УСМ) может быть загружено в адаптер на любом участке передачи блока данных, что позволяет организовать оперативное про­ граммное изменение режима приема/передачи.

Вслед за словом УСРР для синхронного режима должны следовать сим­ волы синхронизации подобно тому, как это показано на рис. 6.4, б. Жесткие ог­ раничения на последовательность загрузки управляющих слов накладываются внутренней организацией ПСА, в котором регистры управления адресуются встроенным счетчиком.

Модуль пересчета счетчика изменяется в зависимости от двух младших разрядов слова УСРР. В асинхронном режиме загружаются только регистры режима и команды. В синхронном режиме, кроме того, могут быть загружены один или два символа синхронизации.

Множество вариантов использования адаптера, которое предоставляется форматом слова УСРР, предполагает использование ПСА в МПС разной слож­ ности и с различными характеристиками интерфейса.

 

Управляющее слово инструкции (УСИ)

 

D7

D6

D 5

D„

D,

D 2

D,

Do П

D0 - разрешение передачи: 1

разрешена; 0 - запрещена

Di =1 - запрос готовности передатчика терминала к обмену D2 - разрешение приема: 1 - разрешен; 0 - запрещен D3 - 0 норма; 1 - конец передачи

D4 =1 - устанавливает все триггеры в нуль

D5 =1 - запрос готовности приемника терминала к обмену Об =1 - программный сброс ПСА в исходное состояние

D7 =1 - вход в режим ожидания 1 - разрешение поиска символа синхронизации

а

 

 

Управляющее слово состояния (УСС)

 

 

г т д

ЧС

j ОФ

j ПС

К

JnTlep

[ГТПр

ГТТТер

 

 

 

 

L

1

1

____1

ГТПер

1 - готовность ПСА принять данные из МП для передачи

 

 

терминалу

 

 

 

 

 

 

ГТПр

1 - готовность ПСА передать в МП данные, принятые

 

 

от терминала

 

 

 

 

 

ППер

1 - пуст передатчик; фиксация окончания посылки данных

К- контроль; 1 - обнаружение ошибки (чет/нечет) в принятых данных

Г1С

- потеря символа; 1 процессор не считал символ до поступления

 

следующей посылки данных

ОФ

- ошибка в формате; 1 - в конце посылки ПСА не обнаружил

 

биты останова

ЧС

- частота синхронизации; программируемый вход/выход,

 

используемый только в режиме синхронного приема

ГГД

0 - данные в МП подготовлены к передаче в ПСА

б

Рис. 6.3. Форматы управляющих слов: о - инструкции УСИ,

б-состоян и я УСС

УС/Д

0

0

1

1

X

Входные сигналы

 

 

Операции и вид

 

 

 

 

 

чт

зп

вк

 

 

информации

 

 

 

 

0

1

0

ПС А —►

ЩД (данные)

1

0

0

ШД

—►

ПСА

(данные)

0

1

0

ПСА —►

ШД (состояние)

1

0

0

ШД

- ►

ПСА

(УС)

X

X

1

ШД

—►

(Высокий импеданс)

В К

 

Сброс

 

 

 

 

УС/Д

 

У С Р Р

 

 

 

 

УС/д"

Символ синхронизации 1

 

 

 

УС/д”

С и м в о л с и н хр о н и з а ц и и 2

 

 

 

УС/д

 

УСИ

 

 

 

 

ус/д ;

 

Д а н н ы е

i

 

 

 

УС/д

 

УСИ

 

 

 

 

ус/д -

 

Данные

^

 

 

 

 

 

 

 

 

 

УС/Д

 

УСИ

 

 

 

 

ч

Рис. 6.4. Основные режимы работы ПСА (а) и типовая процедура инициализации Т1CА (б)

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

Из-за сложности и разнообразия операций, реализуемых в подсоединен­ ных к ПСА терминалах, невозможно через ограниченное число выводов БИС ПСА передать в МП информацию о состоянии процесса.

С этой целью используется операция чтения состояния, которая по сигна­ лу чтения ЧТ позволяет следить за процессом приема/передачи, т.е. реализо­ вать программный доступ к терминалу. Такой программный доступ оказывает­ ся исключительно полезным в тех участках прикладной программы МПС, в ко­ торых возникает необходимость удостовериться в отсутствии ошибок.

Программируемый связной адаптер предоставляет возможность выпол­ нить проверку на четность или нечетность, проверку на целостность блока дан­ ных и, наконец, в асинхронном режиме работы осуществить контроль формата. Некоторые из разрядов регистра состояния ПСА могут быть прочитаны МП не только под воздействием программы, они выводятся как самостоятельные ос­ ведомительные символы из ПСА (рис.6.3, б). Это дает возможность использо­ вать их для выполнения процедур прерывания но вводу/выводу, обмена с кви­ тированием, буферизации сообщений.

Асинхронный режим ПСА. Для организации асинхронных последова­ тельных передач сопрягаемые подсистем^ соединяются через ПСА в соответ­ ствии со схемой, показанной на рис. 6.5. Принцип действия такого интерфейса основан на том, что обе подсистемы имеют тактовые генераторы, работающие с одинаковой частотой. Каждый передаваемый символ заключается в рамку, которая образуется стартовым и стоповым битами. Внутренняя организация ПСА такова, что приемник автоматически синхронизируется стартовым битом так, чтобы можно было производить отбор данных в моменты, соответствую­ щие середине каждого бита. В результате оказывается допустимым небольшой дрейф частоты тактовых генераторов. В режиме асинхронной передачи символ, представленный последовательным кодом, выдвигается из буфера ПСА пораз­ рядно по заднему фронту сигнала СИПер с частотой, которая равняется 1/16 или 1/64 частоты синхронизации. Естественно, что перед началом этого про­ цесса в Г1СА уже сформировано полное сообщение, г.е. передаваемый символ, снабжепный стартовым битом, стоповым и, если требуется, битом контроля.

В режиме асинхронного приема на вход Вх Д нормально подан высокий уровень. Переход сигнала на этом входе в состояние 0 оповещает ПСА о том, что поступил стартовый бит. При его появлении запускается счетчик бит и внутренний генератор опорных сигналов, который выдает стробирующий сигнал приблизительно в середине каждого бита. Принимаемый символ после­ довательно, разряд за разрядом, поступает в буфер ПСА по переднему фронту сигнала СИПр. Если па месте стопового бита (по указанию счетчика бит) ока­ зывается низкий уровень, то триггер ошибки в формате устанавливается в 1. Нормальный оптовый бит сигнализирует о конце символа, гасит внутренний счетчик бит и генерирует сигнал ГТПр, который сообщает МП о том, что сим­ вол готов к загрузке в МП. Если предшествующий символ не может быть по каким-либо причинам перегружен из ПСА в МП, текущий символ замещает его в буфере. При этом устанавливается в 1 триггер, свидетельствующий о потере символа в файле. При обнаружении ошибки при контроле на четность или не­ четность устанавливается в 1 триггер ошибки.

Установка единой скорости приема - передачи

Младший разряд

Старший разряд

 

ВыхД

 

 

 

1

 

Т

 

/

 

 

Стартовый

Биты данных

Контрольный

Стопоеые

бит

 

бит

биты

В хД

 

 

 

- \ ' Ш

Ш

 

 

7

Если длина символа содержит меньше 8 бит, то неиспользуемые биты передаются нулями

Рис. 6.5. Схема соединения Г1СА в режиме асинхронного обмена

Асинхронный принцип системного обмена нашел широкое распростране­ ние в МПС. Однако область применения этого способа передач ограничена из-за низкой скорости передачи данных (9 Кбод). Для работы с высокоскоростными терминалами более подходит способ синхронной последовательной передачи (скорость 56 Кбод) с использованием соответствующих синхронизирующих слов.

Синхронный режим ПСА. В то время, когда МП загружает в ПСА управляющие слова и символы, определяющие режим синхронизации, на выхо­ де Вых Д присутствует единичный сигнал. При появлении на входе ГТПр сиг­ нала 0 первый символ последовательным кодом передается из буфера в линию передачи. Каждый разряд передаваемых символов поступает в линию связи по сигналу СИПер. Скорость передачи равна частоте поступления сигналов СИПер. Будучи инициированной, передача продолжается до тех пор, пока присут­ ствуют входные сигналы синхронизации СИПер. Когда МП окончит передачу данных в адаптер и адаптер очистится, символ синхронизации автоматически вставляется в поток данных на выходе Вых Д, и сигнал ППер приобретает зна­ чение 1 (этот сигнал может быть использован в МП для селекции момента из­ менения направления передач в полудуплексном режиме обмена).

7. Программируемый контроллер прерываний

Программируемый контроллер прерываний (ПКП) ИМС ВН59 реализует управление приоритетными прерываниями от 8 источников. Число источников прерывания относительно просто может быть увеличено до 64. Контроллер инициализируется под управлением программы и с использованием управляю­ щих слов может быть настроен для работы в одном из следующих четырех ре­ жимов:

-векторное прерывание с фиксированным приоритетом. Каждому входу запросов прерывания присваивается фиксированный приоритет в порядке воз­ растания. Запрос с более высоким приоритетом прерывает обслуживание пре­ рывания с меньшим приоритетом;

-векторное прерывание с циклическим перераспределением приорите­ тов. Каждому входу запросов прерывания, как и в предыдущем режиме работы, присваивается приоритет, но после каждого запроса и обслуживания прерыва­ ния вся система приоритетов изменяется по кругу так, что последний обслу­ женный вход запроса прерывания будет иметь самый низкий приоритет, а вход запроса прерывания, который дольше всех не обслуживался - наивысший при­ оритет;

1.После появления на одной или нескольких линиях ЗПР сигнала 1 кон­ троллер фиксирует запросы в РЗПР, учитывая их приоритеты, и формирует сигнал ПР для МП.

2.После завершения выполнения текущей команды МП в случае, если прерывания разрешены командой EI, выдает в 11KII сигнал подтверждения пре­ рывания ПНР.

3.1ЖП по ШД передает в МП первый байт (код операции) команды CALL для вызова подпрограммы обслуживания'прерывания.

4.Код операции CALL (11001101B=CDH) заставляет МП выработать два дополнительных сигнала ППР, по которым ПКП передает в МП предваритель­ но запрограммированный двухбайтный адрес подпрограммы обслуживания прерывания.

5.Управление передается подпрограмме обслуживания прерывания.

6.После завершения подпрограммы выполняется возврат к прерванной программе.

Регистр запросов РЗПР фиксирует все сигналы ЗПР в том случае, если они сохраняют значение 1 до первого ответного сигнала ПИР. По сигналу ПИР! контроллер выдает в шину данных код операции CALL и фиксирует сигнал за­ проса в соответствующем разряде РЗПР. По сигналам ППР2 и ППРЗ контроллер выдает в ШД два байта начального адреса подпрограммы обслуживания преры­ вания. После сигнала ППРЗ логика приоритетов устанавливает в 1 соответст­ вующий разряд в регистре обслуживания P03JTP, сбрасывает этот же разряд в регистре РЗПР и блокирует сигналы ЗПР от этого и от всех других входов

сменьшим приоритетом. При этом сигнал ЗПР на данном входе может еще быть в состоянии 1, однако это нс вызовет повторного прерывания, так как по­ следующие запросы прерываний от данного входа запрещены до момента по­ лучения от МП управляющего слова конца прерывания (УСКП) или специаль­ ный конец прерывания (УССКП), выдачей которых б ПКП должны завершаться все подпрограммы обслуживания прерываний. Для повторного запроса преры­ вания сигнал на входе ЗПР должен быть предварительно сброшен в нулевое со­ стояние.

Запретить обслуживание запросов прерывания можно применением мас­ кирования. Загрузка в регистр МЗПР соответствующего управляющего словамаски (УСМ) позволяет заблокировать любой из входов ЗПР.

При этом сигпал ЗПР будет зафиксирован в РЗПР и может быть обслу­ жен, если выполняемая программа снимет маску. Маскирование входа ЗПР

снекоторым приоритетом не блокирует прерывания от входов ЗПР с меньшими

приоритетами.

Модифицировать механизм блокировки сигналов ЗПР можно с использо­ ванием механизма специального маскирования, который позволяет «затемнить» любой разряд РОЗПР. Применяется этот механизм в тех случаях, когда при­ кладной программе необходимо на какое-то время разрешить прерывания от всех источников, в том числе и от источников прерывания с низкими приорите­ тами. Можно было бы обеспечить это загрузкой УС, по которому сбрасывается

Слово УС01 используется для маскирования отдельных запросов преры­ вания во время исполнения программы. Сигналы ЗПР фиксируются в РЗГГР, но не обслуживаются до тех пор, пока программа не снимет маску.

 

Младший бейт адресе в команде CALL

Ао

D7 DQ D5 П4 D3 Do D-} DQ

B2 - Во - двоично-десятичный код ЗПР, выротевшего ПР (уазатель вектора прерывания)

 

АО

О7

 

De

Ds

D4

D3

О2

D1

DQ

 

УСИ2

А15 А14

А13

A12

AH

Аю

Ag

Aa

Старший байт

 

 

адреса в

 

 

 

 

 

 

 

 

 

 

 

команде CALL

 

Ар

Dr

 

Da

05

D4

D3

D2

01

DO

 

УСИЗа

1

U7

 

иа

U5

U4

U3

U2

U1

U0

Для

 

ведущею

 

 

 

 

 

 

 

 

 

 

 

ПКЛ

 

 

1

Имеет ведомого

На вход ЗПР ведущего сигнал ПР ведомого

 

 

 

0

На имеет

 

На вход ЗПР сигналы запроса отУВВ

 

 

 

 

L

 

_______________________________________________ I

 

Ао

Об

05

04

D3

02

01

DO

 

 

07

 

 

 

 

 

 

0

0

0

0

U2

U1

ио

Для

 

 

 

 

ведомого

 

 

 

 

 

 

 

 

 

 

 

ПКП

и г

U1

и0

ПКП

0

0

0

0

1

0

0

1

2

0

1

0

3

с

1

1

4

1

0

0

5

1

0

1

6

1

1

0

7

1

1

1

fs

i 1

£ 9

l l

Слово УСОЗ используется для управления режимом специального маски­ рования, для чтения состояния ПКП и управления работой ПКП в режиме пре­ рываний по результатам опроса.

Таблица 7.1

Операции ПКП для УС02

УСО

D 7D 6D 5D4D 3

D2D 1D0

КП

0 0 1 0 0

X X X

к п ц

1 0 1 0 0

X X X

е к п

0 1 1 0 0

АР2АР1АП0

е к п ц

1 1 1 0 0

АР2АР1АП0

УПЦ

1 1 0 0 0

APjAPiAIIo

 

 

i

 

 

1

Операции

Фиксированный приоритет. Сброс разряда РОЗПР с максимальным приоритетом Конец прерывания. Циклический сдвиг приоритетов. Присвоение обслуженному запросу минимального уровня приоритетов Специальный конец прерывания. Фиксиро­ ванный приоритет.

АРгАРо - адрес сбрасываемого разряда в РОЗПР Специальный конец прерывания. Цикличе­

ский сдвиг приоритетов.

АРгАРо - адрес сбрасываемого разряда в РОЗПР и присвоения ему низшего уровня приоритетов

Установка приоритета. Циклический сдвиг S приоритета без завершения обслуживания прерывания.

АРгАРо - адрес входа ЗПР. которому при­ сваивается низший приоритет

С помощью УСОЗ МП имеет возможность считать состояние ПКП, т.е. перегрузить в свои рабочие регистры для последующего анализа содержимое РЗПР, РОЗПР и регистр маски. Содержимое регистров считывается по команде IN ADR, которая должна следовать сразу за УСОЗ. Для чтения регистра маски не надо подавать УСОЗ, так как в буфере данных ПКП автоматически пред­ ставляется содержимое регистра МЗПР, если AQ= 1 и на вход ЧТ подается сиг­ нал 0, генерируемый по команде IN ADR.

При обслуживании прерываний по опросу программа блокирует коман­ дой DI вход ЗПР процессора, так как в этом режиме инициирует обслуживание сам МП. После подачи УСОЗ обслуживание по результату’ опроса по команде IN ADR (сигнал Ч Т =0) в МП передается слово состояния ПКП, формат которо­ го и назначение полей показаны на рис. 7.4.

Обслуживание запросов УВВ на прерывание осуществляется после ана­ лиза считанного слова состояния ПКП специальной программой, которая опре­ деляет, какой из пришедших ЗПР обладает наивысшим приоритетом по сравне­ нию с приоритетом выполняемой в текущий момент времени программы.

к МП

 

 

ППР

 

ПР

т

 

 

 

 

 

 

л

 

<2=

0

1

о

ПКП

*

 

 

 

 

2

ё

1чл^2-0

 

ведущий

^

 

 

CZ

 

 

щ

 

Л

 

в п м

 

_

 

у

 

 

 

 

 

х

в

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

х

 

 

 

 

 

 

3

А-

ППР

 

ПР

 

 

 

 

О) ПКП

 

 

N-

D(7 -

^

 

 

 

 

 

ведомый

ж

 

 

к а с 2-о

№ 7

ш

 

 

 

^

 

 

 

 

 

 

 

у •,

я п м

 

 

Рис. 7.5. Каскадное соединение ПКП

ЗПРо

ЗПР1

ЗПР2

ЗПРз

ЗПР*

ЗПРв

ЗПРв

ЗПР7

ЗПРв

ЗПРв

ЗПРш

ЗПРм

ЗПР,2

ЗПР,3

ЗПР14

ЗПР1б

ЗПР2|

По сигаалам ППР устанавливаются соответствующие прерывающим вхо­ дам разряды РОЗПР ведущего и ведомого ПКП. Поэтому подпрограмма обслу­ живания прерывания должна завершаться выдачей двух УС конца прерывания для ведущего и ведомого ПКП.

Режимы работы и система распределения приоритетов за внешними уст­ ройствами могут быть изменены для каждого ПКП статически или динамиче­ ски в любое время выполнения основной программы системы.

Инициализация ПКПВН59

Пример. Запрограммировать режим работы, используя УСИ1иУСИ2, с па­ раметрами:

- начальный адрес таблицы переходов - 4000Н;

-формат - 4 байта;

-один ПКП в системе.

1.Составим управляющее слово инициализации (УСИ1):

D7

D6

D5

D4

D3

D2

D1

D0

 

0

0

0

1

0

1

1

0

И

 

 

 

 

 

 

 

1|

 

2,Составим управляющее слово инициализации (УСИ2);

D7 D6

D5

D4

D3

D2

D1__ DO

J

0

0

j 0

0

о ! о 1

 

. . 1

 

1

 

____I_____ I

-в шестнадцатиричном коде УСИ2 = 40Н;

-примем адрес ПКП, чтобы записать в регистр УСИ1 - 50Н, адрес дол­ жен быть всегда четным, т.к. Ао =0, адрес УСИ2 = 51Н, т.к. Ао =1.

3.Напишем программу инициализации:

LOAD: DI

; запретить прерывание

MVI А, 16Н; занести УСИ1 в регистр А

OUT ЗОН

; вывести УСИ1 из per. А в рег.УСИ! ПКП

MVI А, 40Н; занести УСИ2 в регистр А

OUT 51Н

; вывести УСИ2 из per. А в рег.УСИ2 ПК11

Е1

; разрешить прерывание

8. Прямой доступ в память

Прямой доступ к памяти (ПДП) —создание прямого тракта передач дан­ ных от внешних устройств к памяти или от памяти к внешним устройствам. В английской терминологии это DMA - Direct Memory Access. При обычном обмене передачи между ВУ и памятью требуют вначале принять данные от ис­ точника в процессор, а затем выдать их из процессора приемнику, т.е. реализу­ ются за два командных цикла. При ПДП данные не проходят через процессор,

ипередача байта производится за один цикл. ПДП особенно удобен при пере­ дачах блоков данных в высоком темпе, например при обмене данными между внешней памятью и ОЗУ. В режиме ПДП процессор отключается от системных шин и передает управление ими контроллеру прямого доступа к памяти (КПДП).

Для реализации ПДП разработаны специальные аппаратные средства, выпускаются БИС КПДП, способные благодаря программированию обслужи­ вать ПДП с учетом конкретных требований различных систем.

При осуществлении ПДП микропроцессор отключен, а контроллер выра­ батывает сигналы управления обменом для ВУ и ОЗУ. Тракт передачи данных связывает ВУ с ОЗУ непосредственно. Возможны два вида ПДП - с блочными или одиночными передачами. В первом работа процессора останавливается на все время передачи блока данных, во втором передачи слов в режиме ПДП пе­ ремежаются с выполнением программы, и для передач ПДП выделяются от­ дельные такты машинных циклов, в которых процессор не использует систем­ ные шины. Каждый командный цикл начинается с машинного цикла Ml - вы­ борки команды. В этом машинном цикле есть такт декодирования принятой процессором команды, в котором системные шины не используются. На это время системные шины можно отдать для ПДП и передать одно слово. Произ­ водительность системы может возрасти из-за параллелизма процессов обмена

иобработки данных, благодаря тому, что ПДП. будет для процессора «невиди­ мым». Сам обмен с ПДП будет небыстрым, теми обмена нерегулярен, т.к. дли­ тельности циклов различных команд различны, и, кроме того, ПДП может и за­ медлить выполнение программы, если цикл ПДП не уложится в интервал, соот­ ветствующий такту процессора.

При непрерывной передаче массива данных скорость обмена ограничива­ ется длительностью циклов ЗУ, быстродействием самого контроллера и скоро­ стью выдачи/приема данных внешним устройством.

Вотличие от процессов прерывания при ПДП обмен выполняется без участия программы, поэтому содержимое рабочих регистров МП не нарушает­ ся, и на вхождение в режим ПДП не требуется затрат времени (нет передачи

встек на хранение содержимого рабочих регистров МП). ПДП предоставляется

по завершении текущего машинного цикла.

Схема контроллера прямого доступа к памяти (КПДП) ИК57 (рис. 8.1) реализует функции аппаратно-управляемого (внепроцессорного) обмена дан­ ными между основной памятью и внешними устройствами (чаще всего с внеш­ ней памятью на магнитном носителе). Контроллер может управлять в режиме

ЦДЛ передачей информации побайтно, пословно и блоками данных. С этой це­ лью КПДП формирует и модифицирует адреса участвующих в передачах ячеек ОЗУ, задает размер блока данных, который подлежит передаче, ведет подсчет байтов, передаваемых в ОЗУ или из ОЗУ, и определяет момент завершения пе­ редачи. генерирует управляющие сигналы для МП, ОЗУ и внешней памяти, обеспечивая их согласованную работу в режиме ПДП. Как и все интерфейсные БИС, контроллер настраивается на тот или иной режим работы с использовани­

ем УС.

Контроллер ПДП имеет четыре независимых канала ПДП, в состав каж­ дого из которых входят: 16-разрядный регистр адреса, 14-разрядный счетчик длины блока данных и 2-разрядный регистр режима канала. Каждый канал П Д П имеет один входной сигнал запроса прямого доступа ЗПДП и один вы­ ходной сигнал подтверждения прямого доступа ППДП. Буфер ШД обеспечива­ ет информационную связь КПДП с системной шиной. На этапе инициализации МП загружает через него в КПДП начальные адреса областей ОЗУ, размер бло­ ков данных и коды режимов, а в процессе работы может считывать содержимое любого регистра и счетчика, кроме регистра режима. Кроме перечисленных функций, через буфер IIЩ контроллер, получая из МП разрешение на управле­ ние системной шиной, выдает н ШД старший байт адреса А] 5 из регистра ад­ реса инициированного канала ПДП. При этом на одной из линий управления генерируется сигнал строба адреса (СТБА). По стробу выданный байт адреса загружается во внешний буферный регистр. Выходы этого регистра подсоеди­ няются к линиям. Аи-я шины адреса. Устройство управления КПДП и схема управления вводом/выводом в зависимости от комбинации управляющих сиг­ налов переводят КПДП в одно из двух возможных состояний: на этапе инициа­ лизации КПДП. а также при считывании содержимого регистров по инициативе МП контроллер является ведомым, а в режиме ПДП - ведущим. Ниже приво­ дится перечень имен управляющих и адресных сигналов и соответствующих им линий, а также описываются действия, выполняемые КПДП под их воздействи­ ем или при их генерации.

ЧТВ—чтение ввода/вывода. В зависимости от того, является КПДП ведо­ мым или ведущим, данная липия может быть входной или выходной. По сигна­ лу ЧТВ =0 ведомого КПДП на ШД передается содержимое внутреннего регист­ ра, адресуемого по линиям А3._о. Ведущий КПДП формирует в этой линии управляющий сигнал, который используется для передачи байта данных из внешней памяти на ШД.

ЗПВ— запись ввода/вывода. Сигнал на этой линии также может быть вход­ ным или выходным. У ведомого КПДП входной сигнал 0 на линии ЗПВ управ­ ляет загрузкой байта из ШД во внутренний регистр, адресуемый по лини­ ям А 3_о. Ведущий КПДП выходным сигналом ЗПВ записывает байт с ШД в буферный регистр выбранного внешнего устройства.

С2 - входная линия, на которую подаются сигналы второй фазы синхро­ низации системы.

D(7-0) <$

чтв

*+

зпв

 

С 2

СВР

А (3-0)

"вк

А (7-4)

< J

ГТ

3XB

ПЗХВ

ЧТП -6

ЗИП ■о

РА

СТБА

КБ

МАРК

JS

л

V

V

 

■N

V л-

ST

ЛJSJ

V VI

и.

Чг

J4

V

а

Схема управления приоритетами

Рис. 8.1. Схема контроллера ПДП

Канал О

Регистр

адреса

Регистр

режима

Счетчик

Канал 1

Регистр

адреса

Регистр

режима

Счетчик

Канал 2

Регистр

адреса

Регистр

режима

Счетчик

Канал 3

Регистр

адреса

Регистр

режима

Счетчик

ЗПДПо

ППДП0

о ------ ►

зпдгн

ППДЩ

От-----►

ЗПДП2

ппдп2

6 ------►

ЗПДП з

ППДПз

Q----—►

СБР - сигнал сброса, по которому сбрасывается в куль содержимое реги­ стра режима КПДП, что приводит к дезактивации контроллера: КПДП яе реа­ гирует на сигналы запроса ПДП до тех пор, пока не будет завершена программ­ ная инициализация.

Аз_о - младший полубайт адреса. Для ведомого КПДП эта шина является входной и используется для адресации одного из регистров контроллера при инициализации или считывании. Ведущий КПДП выдает в шину младший по­ лубайт адреса ОЗУ из регистра адреса работающего канала ПДП.

ВК - выбор кристалла. Сигнал на этот вход контроллера подается с одно­ го из выходов адресного дешифратора. Сигнал В К = 0 задает контроллеру со­ стояние ведомого и является разрешающим для входных сигналов ЧТВ и ЗПВ.

Когда КПДП является ведущим, то вход ВКблокируется с тем, чтобы при адресации ОЗУ контроллер не мог сам себя выбрать.

А7^4 - четыре выходные адресные линии, которые подсоединяются к со­ ответствующим линиям ША и на которые КПДП выдает второй полубайт адре­ са памяти.

IT - готовность - входной сигнал, обеспечивающий временное согласо­ вание контроллера с медленно действующей памятью. По сигналу ГТ = 0 уст­ ройство управления КПДП переходит в состояние ожидания S0* и обеспечивает асинхронный режим обмена с памятью (см. ниже).

ЗХВ - захват - выходной сигнал КПДП, который, поступая на вход ЗПДП микропроцессора, отключает его от системной шины после такта ТЗ текущего машинного цикла.

ПЗХВ - подтверждение захвата - входной сигнал с одноименного выхода МП, свидетельствующий о том, что КПДП становится ведущим, а режим пря­ мого доступа разрешен.

ЧТП—чтение памяти - выходной сигнал 0 используется для управления чтением из ОЗУ в режиме ПДП. Во всех остальных случаях на выходе линии ЧТП - высокоимпедансное состояние.

ЗГ7Пзапись в память - выходной сигнал 0 управляет записью в ОЗУ при передачах с прямым доезупом. Так же, как и линия ЧТП, она является трехста­ бильной.

РА - разрешение адреса - выходной сигнал, который применяется для перевода ША и ШД и некоторых линий ШУ других модулей системы в высо­ коимпедансное состояние. Липия сигнала РА заводится на входы разрешения выдачи РБ или выбора корпуса ВК шинных драйверов, через которые все мо­ дули системы (кроме ОЗУ) соединены с системной шиной.

СТБА - строб адреса - выходной сигнал, который сопровождает выдачу контроллером в ШД старшего байта адреса ОЗУ и используется для загрузки этого байта в МБР для последующей трансляции в ША.

КБ - конец блока - выходной сигнал, генерируемый контроллером в по­ следнем цикле ПДП текущего блока данных. Поскольку сигнал КБ формирует­ ся при переходе вычитающего счетчика байтов через нуль, то на этапе инициа­ лизации для задания длины блока байт в счетчик необходимо загрузить двоич­ ный код N - 1. Так как разрядность канальных счетчиков 14 бит, то максималь­ ный размер блока данных равен 16 Кбайт.

МАРК - маркер - выходной сигнал, генерируемый КПДП для сопровож­ дения каждого 128-го байта от начала передачи блока данных в режиме ПДП. В основе схемы генерации сигнала МАРК лежит 7-разрядный счетчик по mod 128. Как правило, размерность блока данных N кратна 128.

Схема управления приоритетами КПДП реализует заданный режим рас­ пределения приоритетов между четырьмя каналами ПДП. Программным путем на этане инициализации каналам присваиваются фиксированные приоритеты (Ко - высший, Кэ - низший), а кроме того, может быть задан режим цикличе­ ского приоритета, при котором после реализации передачи по некоторому ка­ налу Г1Д11 ему присваивается низший приоритет, а приоритеты остальных ка­ налов изменяются по замкнутому кругу: К0—►Ki—►К2—>Кз—►Ко- При эгом при­

оритеты всех четырех внешних устройств, работающих через данный КПДП,

оказываются равными.

Программирование КПДП. С точки зрения программиста, КПДП представляет собой массив из 18 специализированных регистров с форматами, пока­ занными на рис. 8.2. Все регистры программно-доступны, но в регистр режима КПДП можно только записать, а из регистра состояния КПДП можно только считать байт данных.

15

Р ы и п р

ОРЛИМв 13

15

регистр I 13

режимы 1

15

Регистр режима 13

15

Регистр I реж име I

Р а зр я д ы

 

2 1

I й

Р е ги с тр а д р е с а

0

С ч е гч и к бай»

О

Р е ги с тр а д р е с а

О

С ч е тч и к б а й т

0

Р е ги с тр а д р е с а

0

С ч е тч и к б а й !

О

Р е ги с тр а д р е с а

С

С ч е тч и к б а й т

0

Р е ги с тр р е ж и м е

к п д г

Р е ги с тр с о с то я н и я

кп д г

Р и с . 8.2. Массив регистров КПДП

Канальные регистры могут работать в режимах записи и считывания. Инициализация КПДП осуществляется загрузкой УС и исходных данных в ад­ ресуемые регистры по командам OUT или командам MOV в зависимости от способа организации адресной шины в МПС. При этом линии ША после де­ шифрирования формируют сигнал ВК контроллера, а линии АЗЧ1адресуют один из внутренних регистров КПДП.

Назначение линий А30шины адреса следующее: А3селектирует обраще­ ние к регис грам каналов (А3= 0) или к регистрам КПДП (А3= 1).

, а = n t ' ! “ i ! Pa' T ? л Т “3 четь‘Рех каналов ПДП, а А0 задает регистр адреса (Ао 0) или счетчик (Ао - 1) в выбранном канале.

команд OUT на этяп>,М”3 ' (*'Разрядных регистров канала осуществляется парой команд OUT на этапе загрузки и парой команд IN при считывании

Сцелью идентификации младшего и старшего байтов передаваемых слов

вКПДП имеется программно-недоступный триггер М/С, который устанавлива­ ется в исходное нулевое состояние или по сигналу СБР, или при загр узк е реги-

стра режима КГ1ДГ1, а затем при каждой очередной операции загрузки (соответ­ ственно при чтении) изменяет свое состояние на противоположное. Поэтому

команды обращения к регистрам каналов КПДП

должны следовать парой,

п первая из них оперирует с младшим, а вторая -

со старшим байтами слова.

Для правильного срабатывания триггера М/С в системе необходимо преду­ смотреть меры, исключающие появление на входе Вк контроллера сигнала 0 во время действия сигналов ЧТН или 3IIB.

На рис. 8.3 показаны форматы и назначение полей регистров режима и состояния КПДП. Регистр режима устанавливается в нулевое состояние по сигналу СБР, запрещая тем самым работу всех каналов ПДП. Затем произ­ водится загрузка регистров адреса и счетчиков всех каналов, и только после этого выполняется загрузка УС в регистр режима ПДП. Такая последовательность инициализации КПДП позволяет избежать искажений содержимого ОЗУ от запросов ПДП, возникающих в период инициализации.

Управляю щ ее сл ово реж има работы

 

 

 

Сл о в о состоян ия

 

 

 

07

э е

05

D4

03

02

D1

оо

 

1 О

 

ПМ

1

КЬ2

Кб1

КБО

О

0

j КБЭ

 

I

 

I

 

1

Г

п

 

 

 

 

призмах модификации

Конец блоха данным

Рис. 8.3. Формат УС режима и слова состояния КПДП

Младшие гюлбайта регистра режима КПДП используются для маскиро­ вания сигналов ЗПДП. Нели разряд разрешения канала РК; = 0, то КПДП удов­ летворяет запрос ПДП i-ro канала.

Разряд ЦП определяет порядок работы схемы управления приоритетами: при ЦП = 0 распределение приоритетов между каналами ПДП фиксировано, и при ЦП = 1реализуется режим циклической смены приоритетов.

Если в УС, загружаемом в регистр режима КПДП, разряд «длинной» за­ писи ДЗ = 1, то контроллер генерирует сигналы ЗПВ и ЗПП с удвоенной дли­ тельностью, что во многих применениях позволяет обеспечить временное со-

гласование с памятью без использования сигнала готовности ГТ и перевода КПДГТ в состояние ожидания.

Сигнал 1 в разряде запрета по концу блока (3КБ) позволяет каждому ка­ налу ПДП осуществить передачу только одного блока данных, т.к. по сигналу КБ сбрасывается в нуль разряд разрешения работы РК соответствующего кана­ ла. Эту маску можно снять только путем загрузки нового УС в регистр режима КПДП. При ЗКБ=0 реализуются многоблочные передачи данных по каналам ПДП.

В некоторых применениях МПС необходимо обеспечить повторную пере­ дачу блока данных или передачу двух «связанных» блоков данных. С целью исключения необходимости программной перенастройки КПДП между переда­ чами блоков вводится специальный режим автозагрузки, который инициирует­

с б р

ся старшим битом А3 регистра режима

 

 

КПДП.

 

Повторная передача блока данных воз­

 

можна только через канал 2. Если А3=1, то

 

при загрузке исходных значений регистра

 

адреса и счетчика канала 2 они автоматиче­

 

ски переписываются в соответствующие ре­

 

гистры канала 3. После окончания передачи

 

первого блока данных через канал 2 и гене­

 

рации сигнала КБ исходные параметры бло­

 

ка данных из регистров канала 3 в цикле мо­

 

дификации переписываются в регистры ка­

 

нала 2, инициируя таким образом повторную

 

передачу блока данных. В регистре состоя­

 

ния КПДП в младших разрядах КБ3_о фик­

 

сируют сигналы окончания передачи блока

 

данных в соответствующих каналах. Содер­

 

жимое разрядов КБ3_о автоматически об-

Рис. 8.4. Схема алгоритма

нуляется при считывании микропроцессором

работы устройства управления

содержимого регистра состояния.

КПДП

Признак модификации ПМ приобретает

 

значение 1 в режиме автозагрузки (А3= 1) на

период передачи параметров из регистров канала 3 в соответствующие регист­ ры канала 2, т.е. после окончания передачи первого блока данных. По оконча­ нии модификации регистров канала 2 признак модификации ПМ регистра со­ стояния обнуляется. Пока ПМ = 1, инициализация КПДП на передачу новых блоков данных должна быть запрещена. При считывании регистра состояния признак ПМ сохраняет свое значение. Сброс ПМ осуществляется загрузкой но­ вого УС режима КПДП, в котором разряд автозагрузки А3= 0.

Работа контроллера ПДП. Контроллер ПДП после инициализации мо­ жет работать в трех режимах: считывание (передача из ОЗУ во внешнее уст­ ройство), запись (передача из внешнего устройства в ОЗУ) и проверка канала П Д П (считывание содержимого канальных регистров для анализа). Управление

контроллером в этих режимах работы осуществляется устройством управления КПДП, основу которого составляет первичный управляющий автомат.

Автомат управления КПДП может находиться в одном из семи возмож­ ных состояний (рис. 8.4). В исходное состояние автомат переходит под воздей­ ствием сигнала системного сброса (СВР), т.к. по сигналу СВР обнуляется со­ держимое регистров режима и состояния КПДП, контроллер блокирует кана­ лы прямого доступа. В этом состоянии осуществляется инициализация КПДП. Последним управляющим словом загружается регистр режима КПДП, разрешая работу незамаскированных каналов ПДП.

При возникновении сигнала ЗПДП разрешенного канала контроллер транслирует этот сигнал на выход ЗХВ и его автомат управления переходит в состояние S0, в котором и будет находиться до момента получения из МП сигнала подтверждения режима ПЗХВ. При этом устройство управления про­ должает выполнять анализ сигналов ЗПДП с взвешиванием их приоритетов и при получении сигнала ПЗХВ отдаст системную шину каналу прямого досту­ па с наивысшим приоритетом. Автомат управления переходит в состояние Sb и КПДП транслирует полученный сигнал ПЗХВ на выход, ППДП внешнего ус­ тройства, имеющего высший приоритет.

При побайтной передаче данных сигнал ЗПДП должен удерживаться внешним устройством в состоянии 1 до получения подтверждающего сигнала, ППДП, а при передаче блоков данных - до момента окончания передачи блока.

Управляющий автомат КПДП отрабатывает цикл передачи байта по кана­ лу прямого доступа за четыре внутренних состояния S1-4, выгружая адрес ОЗУ, модифицируя счетчик байт и формируя управляющие сигналы ЗАПИСЬ/ ЧТЕ­ НИЕ.

Если КПДП управляет записью в ОЗУ из внешнего устройства, то он фор­ мирует сигнал ЧТВ в состоянии S2, а сигнал ЗПП - в состоянии S3. Если КПДП управляет передачей данных из ОЗУ во внешнее устройство, то в состоянии S2 он генерирует сигнал ЧТП, а в состоянии S3сигнал ЗПВ. Сигналы «длинной» записи ЗПВ и ЗПП формируются в состоянии S2.

В том случае, если быстродействие ОЗУ или внешнего устройства недос­ таточно для обмена с частотой, определяемой сигналами С2 системной синхро­ низации, то, используя механизм асинхронной передачи (ГОТОВНОСТЬ - ОЖИДАНИЕ), управляющий автомат КПДП может из состояния S3 перейти в состояние Ъож, выход из которого осуществляется по сигналу готовности ГТ. При передаче блоков данных по каналу ПДП автомат из состояния S4 перехо­ дит в состояние Sj и реализует цикл ПДП сначала. При побайтной передаче или по сигналу конца блока КБ = 1 внешнее устройство снимает сигнал ЗПДП, контроллер формирует сигнал ЗХВ = 0, режим ПДП заканчивается переходом управляющего автомата в состояние SHCx> в котором и будет находиться до по­ ступления очередного сигнала ЗПДП.

В заключение следует отметить, что режим прямого доступа к памяти це­ лесообразно использовать в МПС, в состав которых входят устройства внешней памяти, дисплей и т.п., обмен информацией с которыми осуществляется боль-

шими блоками (128-2048 байт за сеанс связи). Так, например, в устройствах памяти на гибких магнитных дисках с одинарной плотностью записи скорость передачи после локализации данных составляет 31,25 Кбод (интервал между байтами равен 32 мкс), а при записи с двойной плотностью - 62,5 Кбод (интер­ вал равен 16 мкс). При таких параметрах внешнего устройства обмен с ним следует организовать в режиме ПДП, т.к. производительности МП ИК80 не хватит для организации передач блоков данных в режиме прерывания. В са­ мом деле, если МП в режиме прерывания реализует передачу байта или двух­ байтного слова, то подпрограмма обслуживания прерывания по вводу/выводу имеет длительность около 50 мкс, т.е. больше, чем интервал времени между байтами при обмене с памятью на ГМД. В то же время, если в МПС внешние устройства медленно действующие (скорость передачи не превышает 250 бод), то на операции ввода/вывода по прерываниям затрачивается не более 1% вре­ мени МП последовательно, в таких системах использование КПДП нецелесооб­ разно.

Инициализация КПДПИК57

Пример. Запрограммировать режим работы со следующими параметрами:

-обмен блоком данных размером 16 байт;

-передача по каналу 2 с последующим отключением;

-фиксированный тип приоритетов;

-генерация сигналов по обычной схеме;

-автозагрузки нет;

-начальный адрес зоны ОЗУ - 0900Н;

-режим работы канала - «запись в ОЗУ»;

-примем адрес РА канала 0 = 50Н;

1.Составим слово инициализации РА канала 2:

- младший байт:

 

 

 

 

 

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

0

0

0

0

0

старший байт:

 

 

 

 

 

 

D15

D14

D13

D12

D11

D10

D9

D8

0

0

0

0

1

 

0

1

1 °