Учебное пособие 2109
.pdfвыходные каскады имеют три состояния и позволяют отключать адаптер от ШД. Как правило, обмен инициируется командами IN, OUT.
2 |
1 |
C/D |
|
|
|
||
ША |
|
|
TxD |
|
0 |
CS |
|
8 |
|
Линии связи |
|
|
|
||
|
|
|
|
ШД |
|
D7-0 |
RxD |
I/O R |
|
RD |
|
I/O W |
|
WR |
|
F |
|
CLK |
Модем |
|
|
||
2 |
|
|
RESET
Рис. 123. Типовое подключение адаптера к системной магистрали
Схема управления воспринимает сигналы с ШУ и генерирует внутренние управляющие сигналы. В ее составе имеются регистр режима и регистр команды, которые хранят управляющие слова функционального определения адаптера.
Ниже рассматриваются только основные моменты функционирования данного адаптера. В частности, не рассматривается взаимодействие адаптера и модема (и соответствующие этому взаимодействию сигналы управления – сигналы блока управления модемом).
В адаптер подаются шесть входных управляющих сигналов:
RESET (сброс) – H-активный сигнал сброса с минимальной длительностью 6 периодов синхронизации. После воздействия этого сигнала адаптер переходит в "холостой" режим и остается в нем до загрузки управляющих слов.
CLK (синхронизация) – подключается ко второй фазе тактового генератора МП (F2). Частота сигнала CLK минимум в 30 раз выше частоты приема или передачи (имеются в виду частоты передачи или приема отдельных бит, а не их блоков).
RD (считывание) – L-активный сигнал, инициирует передачу данных или слова состояния из адаптера на ШД.
WR (запись) – L-активный сигнал загрузки в адресуемый регистр адаптера информации с ШД (собственно данных или управляющих слов). Следует
иметь в виду, что сочетание сигналов RD 0 и WR 0 (т.е. активное состояние обоих сигналов) является запрещенным и приводит к непредсказуемым последствиям.
С/D (управление/данные) – указывает тип вводимой в адаптер с ШД информации (H-уровень – управляющее слово, L-уровень – собственно
310
данные). При выводе слова состояния адаптера на этот вход подается
высокий уровень сигнала С/D .
CS (выбор кристалла) – L-активный сигнал, разрешает связь между адаптером и ШД.
Узел передатчика со схемой управления выполняет все функции, связанные
спередачей последовательных данных, в частности:
-воспринимает параллельные коды символов от МП;
-автоматически вводит необходимые служебные биты и символы синхронизации;
-выдает последовательный поток данных на выход TxD.
К этому узлу относятся следующие внешние сигналы:
TxD (выход передатчика) – подключается к линии связи или модему.
TxC (синхронизация передатчика) – входной сигнал, управляющий
скоростью передачи данных в последовательном коде. Спады TxC "выдвигают" последовательно биты на выход TxD. В синхронном режиме
скорость передачи соответствует частоте сигнала TxC , а в асинхронном
режиме программируется как 1, 1/16, 1/64 частоты сигнала
TxE (пустой передатчик) – H-активный выходной сигнал, обозначающий отсутствие в адаптере символа для передачи (появляется, когда последний бит кода "выталкивается" из регистра сдвига, а в регистре передатчика также ничего нет). Его можно использовать для идентификации в полудуплексном режиме связи окончания передачи и коммутации линии на прием. В синхронном режиме H-уровень TxE указывает, что символ вовремя не загрузили в адаптер и в качестве "заполнения" автоматически передаются сигналы синхронизации.
Сигнал TxE сбрасывается при загрузке символа в адаптер, т.е. в регистр
передатчика. Если регистр сдвига пуст и присутствует сигнал CTS – (разрешение передачи), новый символ сразу же перемещается из регистра передатчика в регистр сдвига и начинает "выдвигаться" в линию связи. Как только регистр передатчика освободился, он готов к загрузке нового символа.
TxRDY (готовность передатчика) – H-активный выходной сигнал, определяющий готовность передатчика к загрузке нового символа с ШД (т.е. он индицирует, что регистр передатчика пуст и готов к загрузке). В это время предыдущий символ может еще находиться в регистре сдвига и постепенно "выдвигаться" в линию связи. Как только он будет полностью "выдвинут", новый символ будет перемещен в регистр сдвига (при наличии
сигнала CTS ) и сразу же начнет "выдвигаться" в линию связи (вплотную к предыдущему).
311
Сигнал TxRDY может быть использован как запрос прерывания процессора. При загрузке в регистр передатчика нового символа сигнал TxRDY сбрасывается. Состояние этого выхода (TxRDY), так же как и TxE, может быть опрошено программным способом, посредством считывания слова состояния.
Узел приемника со схемой управления выполняет все функции, связанные с приемом последовательных данных, в частности:
-воспринимает последовательные данные с входа RxD;
-контролирует и исключает служебные биты и символы синхронизации;
-преобразует последовательные данные в параллельный формат и передает "собранный" символ в процессор.
Кэтому узлу относятся следующие внешние сигналы:
RxD (вход приемника) – подключается к линии связи или модему;
RxC (синхронизация приемника) – определяет скорость приема информации в последовательном коде. В синхронном режиме частота
приема равна частоте сигнала RxC . В асинхронном режиме частота приема задается программным способом и может быть 1, 1/16, 1/64 от частоты сигнала синхронизации. При одинаковой скорости передачи и приема входы
RxC и ТxC запараллеливают и подключают к одному генератору синхронизации. Данные вводятся в регистр сдвига приемника по переднему
фронту RxC .
RxRDY (готовность приемника) – H-активный выходной сигнал, свидетельствующий о готовности приемника к выдаче принятого символа в параллельном коде на ШД (т.е. символ информации полностью "вошел" в регистр сдвига и был перемещен в регистр приемника). Сигнал RxRDY может быть использован как запрос прерывания процессора. После считывания символа из адаптера (из регистра приемника) сигнал RxRDY сбрасывается. Состояние выхода RxRDY может быть опрошено программным способом, посредством считывания слова состояния.
SYNDET (обнаружение синхронизации) – H-активный сигнал синхронного режима, который можно запрограммировать как входной и как выходной. Если он запрограммирован как выходной, то при обнаружении символа SYN, на выходе SYNDET формируется высокий уровень в момент, соответствующий середине последнего бита (если есть SYN1 и SYN2, это относится к SYN2). При считывании слова состояния сигнал сбрасывается. Если он запрограммирован как входной, то подача на него высокого уровня фиксирует момент начала приема символа, т.е. инициализируется ввод слова в приемник в последовательном коде, начиная со следующего за SYNDET
сигнала RxC .
312
Сигналы, связанные с узлом управления модемом, в настоящем разделе не рассматриваются, поскольку требуют достаточно подробного изучения протокола обмена в стандарте RS-232C. Остановимся только на основных моментах процесса программирования (инициализации) адаптера.
Управляющие слова, определяющие функциональную конфигурацию адаптера, должны загружаться сразу после операции сброса. Управляющие слова имеют два формата – слово режима и слово приказа (или команда). Оба слова имеют длину 8 бит.
Слово режима задает общие рабочие характеристики адаптера и загружается первым, так как осуществляет коммутацию схем прибора. В закодированном виде слово режима несет информацию о числе стоп-бит (1, 1.5, 2 бита), виде паритета (четный, нечетный), длине слова данных (5, 6, 7, 8 бит) и скорости передачи (эти же биты определяют режим – синхронный или асинхронный). После слова режима загружаются один или два символа синхронизации, если был определен синхронный режим (SYN1 и SYN2). Если адаптер запрограммирован на синхронный режим с одним символом синхронизации, то SYN2 пропускается. Если определен асинхронный обмен, то пропускаются оба символа SYN. Последним в адаптер загружается слово приказа, определяющее конкретные действия, в соответствии со словом режима.
Загрузка всех управляющих слов производится обычно командой OUT (хотя можно обращаться и как к ячейке памяти) при следующих значениях
управляющих сигналов: С/D 1, CS 0 , RD 1, WR 0 . Типичный блок данных адаптера после поступления сигнала RESET изображен на рис. 124 (следует помнить, что помимо сигнала RESET сброс адаптера можно осуществить также специальным битом D6 в слове приказа).
Слово приказа, как уже отмечалось, задает конкретные операции адаптера. Назначение отдельных разрядов слова приказа в данном разделе не рассматривается. Отметим только, что его разряды задают разрешение передачи или приема, сброс признаков ошибок, сигналы управления модемом, а также несут и некоторую другую информацию.
313
C/ D = 1 |
Слово режима |
|
|||
C/ D = 1 |
|
|
|||
SYN1 |
Только в |
||||
|
|
|
|
|
|
|
|
|
|
|
|
C/ D = 1 |
SYN2 |
синхр. реж. |
|||
C/ D = 1 |
|
|
|||
Слово приказа |
|
||||
|
|
|
|
||
|
|
|
|
||
|
|
|
|
||
|
|
|
|||
C/ D = 0 |
|
Данные |
|
||
|
|
||||
|
|
||||
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C/ D = 1 |
Слово приказа |
|
|||
|
|
|
|
||
|
|
|
|||
C/ D = 0 |
|
Данные |
|
||
|
|
||||
|
|
||||
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 124. Блок данных адаптера
При организации последовательного интерфейса возникает необходимость в анализе состояния адаптера со стороны процессора. Состояние адаптера можно считать в любой момент времени посредством команды IN либо обратившись к регистру состояния как к ячейке памяти. При этом сигнал
С/D должен быть равным 1. Каждый бит слова состояния отражает состояние одного из сигналов. Часть этих сигналов уже была рассмотрена выше. Это TxRDY (D0), RxRDY (D1), TxE (D2) и SYNDET (D6). Кроме них слово состояния содержит еще 4 бита:
D3 (PE) – ошибка паритета – устанавливается при обнаружении в принятом слове данных нарушения паритета;
D4 (OE) – ошибка переполнения – устанавливается в любом режиме, если процессор вовремя не считал символ из регистра приемника (это слово данных теряется).
D5 (FE) – ошибка кадра – устанавливается в асинхронном режиме, если в конце любого слова данных не обнаружен стоповый бит.
D7 (DSR) – готовность модема.
Все флажки ошибок сбрасываются, если бит D4 команды установлен в 1. Следует особо подчеркнуть, что возникновение любого ошибочного условия не останавливает работу адаптера. Он только фиксирует ошибки, а реагировать на них должен сам процессор.
9.12. Адаптер параллельного интерфейса
Передача данных в параллельном формате в общем случае является более высокоскоростной, чем передача в последовательном формате, поскольку
314
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
Х |
|
Х |
|
Х |
|
Х |
|
|
Х |
|
|
Х |
|
Х |
|
|
|
|
|
|
|
Управляющее слово |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Режим 0 |
0 |
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
Ввод |
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Режим 1 |
0 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
Вывод |
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Режим 2 |
1 |
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PC3-0 |
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ввод |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
Ввод |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
|
|
PA7-0 |
|
Вывод |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
Вывод |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PB7-0 |
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PC7-4 |
|
|
|
Ввод |
1 |
|
|
0 |
|
|
|
|
Режим 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
Вывод |
0 |
|
|
|
1 |
|
|
|
|
Режим 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Гр. А |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Гр. B |
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 127. Формат управляющего слова определения режима
При подаче сигнала RESET регистр управления устанавливается в состояние, при котором все каналы настраиваются на работу в режиме 0 для ввода информации. Режим работы портов можно изменить как в начале, так и в процессе выполнения программы, что позволяет обслужить различные ПУ одной БИС в определенном порядке. При изменении режима работы любого порта все входные и выходные регистры портов и триггеры состояния сбрасываются.
В дополнение к основному режиму работы обеспечивается возможность программно-независимой установки 1 или 0 в любой из разрядов порта C. Управляющее слово установки и сброса разрядов порта С идентифицируется состоянием D7 = 0 и имеет формат, приведенный на рис. 128. Приказы данного формата используются, как правило, в режимах 1 и 2. Если микросхема запрограммирована для работы в режимах 1 или 2, то через выводы C0 и C3 порта C выдаются сигналы, которые могут использоваться как сигналы запросов прерывания для МП. Запретить или разрешить формирование этих сигналов в адаптере можно установкой или сбросом соответствующего разряда в регистре порта C. Это позволяет программисту запрещать или разрешать обслуживание любого ПУ без анализа запросов в контроллере прерываний.
318