Рис. 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 °