Назначение УСАПП.
С помощью УСАПП реализуется обмен между процессором и внешним устройством (ВУ) в последовательном коде. Программным способом можно установить один из пяти режимов: асинхронная передача, асинхронный прием, синхронная передача, синхронный прием с внутренней синхронизацией и синхронный прием с внешней синхронизацией. Асинхронный обмен характеризуется одиночными посылками информации со стороны УСАПП или ВУ, содержащими старт–бит, 5–8 бит данных, бит контроля четности, 1–2 стоп–бита. При синхронном обмене после передачи одного или двух синхросимволов следует непрерывный поток данных в виде массива.
Организация обмена.
Для организации обмена помимо аппаратных средств используются:
? команды ввода (
IN
) и вывода (
OUT
);
? два вида управляющих слов: инструкция режима (табл. 3.7.1) и инструкция команды (табл. 3.7.2);
? слово состояния
(табл. 3.7.3);
? информационно–управляющие сигналы
(табл. 3.7.4–3.7.6), действующие на выводах УСАПП (рис. 3.7.1).
Структура УСАПП.
В схеме УСАПП (рис. 3.7.1) можно выделить передатчик, приемник, буфер ввода–вывода, регистры управляющих слов и слова состояния, блок управления.
Передатчик предназначен для преобразования данных, поступающих из процессора в виде 8–разрядного параллельного кода, в последовательный код с добавлением служебных символов согласно формату данных при синхронном и асинхронном обмене. Управление работой передатчика осуществляется модулем управления, который отслеживает прием новых данных со стороны процессора, добавляет к ним стартовый и стоповый биты, контрольный бит и синхронизирует вывод из сдвигающего регистра с использованием уведомительных и управляющих сигналов (табл. 3.7.4).
Приемник предназначен для преобразования последовательности символов, поступающих от передатчика ВУ, в параллельный 8–разрядный код и записи этого кода в свой регистр данных. В приемник входят два регистра данных и регистры для хранения синхросимволов. Модуль управления приемником включает логику формирования синхроимпульсов приема, счетчик числа принятых битов, схему контроля четности, триггер ошибки четности РЕ (
Parity
Error
), триггер ошибки кадра (
Framing
Error
—
FE
) и триггер ошибки переполнения (
Overrun
Error
— ОЕ) и другие узлы. Назначение сигналов приемника приведено в табл. 3.7.5.
Буфер ввода–вывода предназначен для связи УСАПП с процессором, представляет собой 8–разрядное двунаправленное устройство с третьим высокоомным состоянием Z.
Регистры управляющих слов хранят инструкции режимов (табл. 3.7.1) и команд (табл. 3.7.2), а регистр слова состояния — необходимые сведения о состоянии УСАПП (табл. 3.7.3).
Блок управления координирует режимы УСАПП. Назначение управляющих сигналов приведено в табл. 3.7.6.
С помощью сигналов:
? активизируется работа УСАПП ( ?ВК);
? задается направление передачи между процессором и УСАПП ( ?Зп , ?Чт). Направление передачи инициируется командами ввода (
IN
) и вывода (
OUT
);
? определяется вид передаваемых данных (У/Д);
? осуществляется перевод УСАПП в исходное состояние (Сброс) и в высокоомное состояние
Z
.
Задаваемые сигналами режимы УСАПП приведены в табл. 3.7.7.
Режимы работы УСАПП.
На рис. 3.7.2 приведена блок–схема алгоритма работы УСАПП в различных режимах. Во всех режимах подачей системного сигнала сброса УСАПП устанавливается в исходное состояние. При синхронном обмене с помощью команды
OUT
(вывод) в УСАПП передаются и хранятся до конца сеанса инструкция режима, один или два синхросимвола и инструкция команды, которые предварительно формируются в аккумуляторе процессора. Вид выводимой из процессора информации (управляющие слова, данные) координируется сигналом У/ ?Д. При асинхронном обмене синхросимволы не выводятся. Во всех режимах текущий сеанс обмена завершается выводом инструкции команды, содержащей:
?
D
3 = 1 в разряде конец передачи (или
D
0 = 0 — при передаче и
D
2 = 0 — при приеме), если следующий сеанс обмена данными не потребует изменения режима УСАПП;
?
D
6 = 1 в разряде установка УСАПП в исходное состояние, если следующий сеанс обмена требует изменения режима УСАПП. Рассмотрим особенности отдельных режимов работы УСАПП.
Синхронная и асинхронная передача.
После передачи в УСАПП управляющих слов командой
OUT
из аккумулятора процессора в буфер ввода–вывода записывается первый байт данных (левая часть рис. 3.7.2). В передатчике выводимый байт данных преобразуется в требуемом формате и поступает на ВыхПд, если сигнал готовности приемника ВУ ?ГПмВУ = 0. При асинхронном выводе единственного байта данных сеанс передачи заканчивается и из процессора выводится следующая инструкция режима или (и) команды. При синхронном выводе первый байт данных является пустым (при программировании он может быть задан произвольно), так как ему на выходе передатчика не предшествуют синхросимволы. Поэтому УСАПП всегда выводит массив, по крайней мере, из двух байтов. При выводе массива байтов передача очередного байта из процессора в УСАПП возможна лишь после завершения выдачи предыдущего байта. О завершении выдачи байта данных передатчик извещает сигналом ГПд = 1 на своем выходе и значением
D
0 = 1 слова состояния. При использовании сигнала ГПд = 1 на выходе ГПд микропроцессор переходит на выполнение прерывающей программы вывода данных через УСАПП.
При использовании слова состояния, а именно этот случай представлен на рис. 3.7.2, осуществляется циклический его ввод в процессор из регистра состояния по команде
IN
(ввод) при У/ ?Д = 1 до тех пор, пока в разряде
D
0 не появится единицы, после чего будет выводиться следующий байт данных. После вывода последнего байта данных в аккумуляторе процессора формируется инструкция команды на завершение сеанса передачи.
Как видно из рис. 3.7.2, отличие синхронной передачи состоит в том, что после передачи первого байта начинается опрос разряда
D
0 слова состояния и вывод байтов данных. При асинхронной передаче этой процедуры может не быть.
Синхронный и асинхронный прием.
При синхронном приеме с внутренней синхронизацией в разряде
D
6 (вид синхронизации) инструкции режима записывается нуль, чтобы использовать вывод ВидС для выдачи сигнала в регистр состояния
PC
. Эта операция реализуется после загрузки инструкции команды в регистр управляющих слов (РУС) следующим образом. Из УСАПП в ВУ посылается сигнал запроса готовности передатчика ?ЗПдВУ = 0. После поступления ответного сигнала ?ГПмВУ = 0 на вход ВхПм подаются последовательно синхро–символы и слово данных. При совпадении принятых синхросимволов с синхросимволами инструкции команды слово данных записывается в регистр приемника и на выходе ВидС устанавливается сигнал ВидС = 1, который выводится в разряд
D
6 регистра состояния. Единичные сигналы на входе ГПм приемника и в дублирующем его разряде
D
1 слова состояния свидетельствуют об окончании приема слова данных и готовности выдачи его из УСАПП в процессор.
При синхронном приеме с внешней синхронизацией в инструкции режима
D
6 = 1 и вывод ВидС используется как вход, на который из ВУ подают сигналы разрешения приема данных. При этом байты данных принимаются в УСАПП с тактовой частотой синхроимпульсов, поступающих на вход ?СПм приемника от передатчика ВУ. Для реализации обоих режимов синхронного приема в программе после передачи в УСАПП инструкции команды предусмотрено два цикла ввода в процессор слов состояния (рис. 3.7.2, правая часть) с проверкой в них значений разрядов
D
6 (вид синхронизации) и
D
1 (готовность приемника). При позитивных результатах проверок по команде
IN
в процессор вводится байт данных.
Отличие алгоритма режима асинхронного приема состоит в том, что сразу после загрузки регистра управляющих слов реализуется циклический ввод слова состояния с проверкой в нем содержимого разряда
D
1 готовности приемника УСАПП.