Контроллер прерываний К1810ВН59А - Кафедра

advertisement
Министерство образования Российской Федерации
КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ
им. А.Н. ТУПОЛЕВА
А. Н. БОРИСОВ
ПРОГРАММИРУЕМЫЕ БИС
МИКРОПРОЦЕССОРНЫХ СИСТЕМ
Учебное пособие
Казань
УДК 681.3
Борисов А.Н. Программируемые БИС микропроцессорных систем:
Учебное пособие. Казань: Изд-во Казан. Гос. техн. ун-та, 2003.
Рассматриваются особенности построения и функционирования программируемых БИС, применяемых в микропроцессорных системах на базе
микропроцессора К1810. Приведены структурные схемы БИС, режимы работы, излагается методика программирования БИС и особенности применения БИС в МПС.
Предназначено для студентов высших учебных заведений заочного, очного обучения и экстерната по специальностям “Вычислительные машины, комплексы, системы и сети”, “Автоматизированные системы обработки информации и управления”, “Информационные системы и технологии”.
Табл. 5. Ил. 31. Библиогр.: 4 назв.
Рецензенты:
кафедра радиофизики Казанского государственного
университета;
доцент, канд. техн. наук В. Ю. Порфирьев.
Введение
Программируемые большие интегральные схемы (БИС) – это БИС,
выполняющие сложные функции, используемые в аппаратуре микропроцессорных систем (МПС).
Почему они называются программируемыми? Каждая из программируемых БИС может работать в одном из нескольких предназначенных
для этой БИС режимах. Для каждого режима могут быть заданы различные рабочие параметры. В зависимости от типа БИС количество задаваемых режимов и рабочих параметров может быть самым разнообразным.
Перед началом работы МПС, входящие в ее схему БИСы программируют (инициализируют), т.е. задают начальный режим работы БИС и конкретные рабочие параметры для заданного режима. В случае необходимости пользователь в процессе работы МПС может перепрограммировать любую программируемую БИС, входящую в состав МПС
Существенное значение имеет возможность использования в МПС,
построенных на базе микропроцессора К1810, совместимых с микропроцессорным комплектом серии К1810 программируемых БИС серии
К580.
На практике при разработке и отладке МПС перед пользователем
встает задача подсоединения БИС в аппаратуре МПС и создания соответствующего программного обеспечения для правильной работы БИС.
Для этого необходимо знать архитектуру БИС, представлять взаимодействие БИС в системе и овладеть программированием БИС прежде всего
на языке ассемблера.
Типы программируемых БИС.
1.
Интерфейсные БИС. К ним относятся БИС, позволяющие организовать различные режимы обмена между внешними устройствами, подключаемыми к МПС, и центральным процессором
(ЦП) МПС. Из этой группы программируемых БИС отметим:
 параллельный
программируемый
интерфейс
КР580ВВ55А, предназначенный для обмена информацией в параллельном коде;
 последовательный
программируемый
интерфейс
КР580ВВ51А, предназначенный для обмена информацией в последовательном коде.
2.
Большие интегральные схемы, предназначенные для выполнения сложных функций в МПС. Например, для выполнения обработки прерываний при запросах от внешних устройств используется БИС К1810ВН59 – программируемый контроллер прерываний; для организации режима прямого доступа к памяти
(ПДП) – БИС К1810ВТ37 – программируемый контроллер ПДП;
для счета временных интервалов – БИС К1810ВИ54 – программируемый таймер.
Общая структура программируемых БИС.
Организация передачи данных, управляющей информации для программируемых БИС, сигналов квитирования и синхронизации осуществляется ЦП. Обращение ЦП к программируемым БИС осуществляется через программно-доступные элементы БИС (обычно это одно- или
двухбайтовые регистры), логические адреса которых называются портами ввода-вывода. Обращение к ним организуется с помощью команд
ввода-вывода IN, OUT по соответствующим адресам портов.
Регистры программируемых БИС функционально различны. Одни
из них предназначены для буферизации передаваемых данных, другие –
для хранения информации о состоянии самой БИС и состоянии ВУ (эту
информацию может проанализировать ЦП). Третьи – для приема и обработки приказов от ЦП, управляющих действиями БИС. Четвертые – для
восприятия рабочих параметров, конкретизирующих заданные приказы.
У рассматриваемых в данном пособии программируемых БИС есть
одинаковые по назначению выводы. К ним относятся:
 D7-D0 (данные). Эти выводы подключаются к шине данных системного интерфейса МПС. Через них происходит обмен информацией между ЦП и регистрами БИС.
 RD (чтение). На этот вывод подается системный сигнал IOR на
выдачу данных из БИС в ЦП. Сигнал формируется при выполнении команды IN.
 WR (запись). На этот вывод подается системный сигнал IOW ,
по которому данные поступают с шины данных системного интерфейса в адресуемый порт БИС. Сигнал формируется при
выполнении команды OUT.
 CS (выбор БИС). Идентифицирует обращение к БИС путем
дешифрации старших разрядов адреса. При активном сигнале
( CS =0) БИС активна и может обмениваться данными с ЦП.
При CS =1 выводы D7-D0 находятся в третьем состоянии.
 А0, А1,…АN (адресные выводы). Количество этих выводов
определяется количеством адресуемых портов БИС. Информация на этих выводах указывает порт БИС, к которому происходит обращение.
Во всех рассматриваемых программируемых БИС входным блоком
является восьмиразрядный буфер данных, обеспечивающий двунаправленную связь внутренней шины БИС с шиной данных системного интерфейса МПС.
1. Интерфейсные БИС
Для подключения к шинам МПС внешних устройств (ВУ) используются интерфейсные БИС. Эти БИС позволяют организовать различные режимы обмена данными между центральным процессором и ВУ.
Данные могут передаваться от ВУ (ввод) или к ВУ (вывод) в параллельном коде либо в последовательном. В первом случае применяется параллельный интерфейс связи, во втором – последовательный.
1.1. Параллельный периферийный интерфейс
В МПС, построенных на базе микропроцессора К1810, для организации обмена данными между ЦП и ВУ предназначен параллельный периферийный интерфейс (ППИ) БИС КР580ВВ55А. Это программируемое устройство, которое организует обмен 8-разрядными данными через
3 двунаправленных канала А, В и С. Направление обмена и режим работы каждого из каналов задаются программно. Каналы А и В не разделены, а линии канала С могут быть разделены на две четырехбитные группы, представляющие собой два независимых канала.
Структурная схема БИС КР580ВВ55А приведена на рис.1.1. В состав БИС ППИ входят:
 8-разрядный двунаправленный трехстабильный буфер данных
(БД), связывающий ППИ с системной шиной данных;
 блок управления записью-чтением, обеспечивающий управление внешними и внутренними передачами данных, управляющих слов и информации о состоянии ППИ;
 три 8-разрядных канала ввода-вывода А, В и С для обмена информацией с ВУ.
В канале А предусмотрены выходной регистр для приема данных с системной шины и выдачи их в ВУ и входной регистр для приема данных
от ВУ и выдачи их на системную шину. В каналах В и С имеется по одному регистру, который обеспечивает передачу данных между ЦП и ВУ
в требуемом направлении. Все каналы снабжены входными и выходными формирователями с тремя состояниями.
D7-D0
Буфер
данных
РА7-РА0
Канал А
RD
Блок
управления
РВ7-РВ0
Канал В
WR
A1
A0
РС7-РC4
РУС
CS
Канал С
PC3-РC0
RESET
Рис. 1.1. Структурная схема БИС
КР 580ВВ55А
В блоке управления находится регистр, называемый регистром
управляющего слова (РУС). Настройка каждого из каналов ППИ на тре-
буемый режим работы осуществляется засылкой управляющего слова из
ЦП в РУС.
Управляющие сигналы выбора БИС ( CS ), чтения ( RD ) и записи
( WR ) подаются в блок управления ППИ. На выводы А1, А0 подключаются линии с адресной шины системного интерфейса. Информация на
этих линиях определяет внутренний регистр ППИ, коммутируемый на
шину данных:
 00 – канал А,
 01 – канал В,
 10 – канал С,
 11 – регистр управляющего слова.
Управляющие сигналы вместе с адресными сигналами А1 и А0
определяют вид операции, выполняемой ППИ в соответствии с табл.1.1,
где Х – безразличное состояние сигнала.
Таблица 1.1
Операция
CS
Запись управляющего слова из
0
ЦП
Запись в канал А
0
Запись в канал В
0
Запись в канал С
0
Чтение из канала А
0
Чтение из канала В
0
Чтение из канала С
0
Отключение ППИ от шины
1
данных
RD
WR
А1
А0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
X
X
X
X
Отметим назначение выводов ППИ, которые еще не рассматривались:
- RESET – сброс БИС;
- РА7 - РА0 – выводы для соединения канала А с ВУ;
- РВ7 – РВ0 - выводы для соединения канала В с ВУ;
- РС7 – РС0 - выводы для соединения канала С с ВУ;
Каналы ППИ могут работать в разных режимах. Предусмотрено три
режима работы: режим 0, режим 1, режим 2. Канал А может работать в
любом из трех режимов, канал В - в режиме 0 или 1. Канал С может
быть использован для передачи данных только в режиме 0. В других режимах его
регистр используется как своеобразный регистр состояния.
Перед началом использования БИС проводят его инициализацию.
Для этого определяют режим работы и направление передачи данных
для каждого канала. Эту информацию кодируют и в виде управляющего
слова заносят в РУС ППИ.
Формат управляющего слов приведен на рис.1.2. Значение бита
D7=1 указывает, что ЦП посылает информацию в 7-разрядный регистр
РУС ППИ.
Режимы работы каналов можно изменять как в начале, так и в процессе выполнения программы. Это позволяет обслуживать различные
ВУ в определенном порядке одной БИС. При изменении режима работы
любого канала регистры всех каналов сбрасываются.
D7
D6
D5
D4
D3
D2
D1
D0
Признак РУС - 1
Канал А
Режим 0
Режим 1
Режим 2
0
0
1
Канал С
(РС3-РС0)
0 Вывод
1
Ввод
0
1
0
Канал А
Вывод
Ввод
0
1
Канал С (РС7-PС4)
Вывод 0
Ввод 1
0
1
0
1
Канал В
Вывод
Ввод
Канал В
Режим 0
Режим 1
Рис. 1.2. Формат управляющего слова
Режимы работы каналов ППИ.
 Режим 0 (простой ввод-вывод).
В этом режиме может работать любой из каналов ППИ. Каждый канал может работать либо на ввод, либо на вывод данных в зависимости
от указанного в управляющем слове направления передачи данных.
Если производится ввод, то регистр канала по сигналу IOR коммутирует подключенное к каналу ВУ на шину данных системного интерфейса. Если выполняется вывод, то по сигналу IOW информация с шины
данных системного интерфейса появляется на выходах регистра канала.
Канал С дополнительно может быть разделен на два четырехразрядных
канала с выводами (РС7-РС4 и РС3-РС0). Сигналы квитирования в режиме 0 не формируются.
По сигналу сброса RESET регистр управляющего слова ППИ устанавливается в состояние, при котором все каналы настраиваются на работу в режиме 0 для ввода данных.
 Режим 1 (стробируемый ввод-вывод)
В этом режиме могут работать каналы А и В. Выводы канала С используются для приема и выдачи сигналов управления (квитирования)
обменом по каналам А и В, для выдачи сигналов запросов прерывания
INTR в ЦП (для канала А – вывод РС3, для канала В – вывод РС0).
РА7-РА0
Данные
РС4
STB
(режим 1, ввод) РС5
IBF
Канал А
ВУ
а)
ВУ
б)
РС3
INTR
РВ7-РВ0
Данные
РС2
STB
(режим 1, ввод) РС1
IBF
Канал В
РС0
INTR
Рис. 1.3. Схема связи каналов ППИ с ВУ в режиме 1 (ввод):
а) канала А; б) канала В.
Структурные схемы связи ППИ с ВУ для работы каналов А и В в
режиме 1 показаны на рис.1.3. (ввод) и на рис.1.4. (вывод).
Для операции ввода предназначены следующие управляющие сигналы:
- STB (строб ввода) – входной сигнал от ВУ, который загружает данные, поступающие от ВУ, в регистр канала.
- IBF (входной буфер загружен) – выходной сигнал подтверждения
о загрузке данных в регистр канала.
- INTR (запрос прерывания) – сигнал, выдаваемый в ЦП на прерывание.
Операцию вывода характеризуют такие три сигнала:
-
OBF (выходной буфер загружен) – выходной сигнал в ВУ о нали-
чии данных на выходе канала.
-
ACK (подтверждение) – входной сигнал от ВУ, подтверждающий
получение данных из канала ППИ.
- INTR (запрос прерывания) – сигнал, выдаваемый в ЦП на прерывание.
РА7-РА0
Данные
РС7
OFB
(режим 1, вывод) РС6
ACK
Канал А
ВУ
а)
РС3
РВ7-РВ0
INTR
Данные
РС1
OFB
(режим 1, вывод) РС2
ACK
Канал В
ВУ
б)
РС0
INTR
Рис. 1.4. Схема связи каналов ППИ с ВУ в режиме 1 (вывод):
а) канала А; б) канала В
Незадействованные для управляющих сигналов выводы канала С
могут быть использованы для ввода-вывода данных. Направление передачи по этим выводам определяется в управляющем слове.
 Режим 2 (двунаправленная передача информации между ППИ и
ВУ)
Режим 2 предназначен для двунаправленного обмена данными ЦП с
ВУ только через канал А ППИ. При этом пять линий подключаемых к
выводам канала С (РС7-РС3) выполняют функции управляющих сигналов (рис.1.5). В отличие от режимов 0 и 1 в режиме 2 направление передачи между каналом А и ВУ определяется не указаниями в управляющем слове, заносимым в РУС, а сигналами IOW (вывод) или IOR (ввод),
определяющими направление передачи между ЦП и ППИ.
РА7-РА0
РС4
Канал А
(режим 2)
РС5
Данные
STB
IBF
РС7
OFB
РС6
ACK
ВУ
РС3
INTR
Рис. 1.5. Схема связи канала А ППИ в режиме 2 с ВУ
При работе каналов в режимах 1 и 2 при вводе данных по стробирующему сигналу приема ( STB ), равному 0, данные записываются во
входной регистр соответствующего канала. Выходной сигнал подтверждения приема ( IBF), равный 1, свидетельствует о том, что данные записаны в регистр канала. Сигнал запроса прерывания INTR=1 информи-
рует ЦП о завершении приема информации в канале. Сигнал INTR сбрасывается спадом сигнала RD .
При выводе информации стробирующий сигнал записи ( OBF ), равный 0, свидетельствует о том, что ЦП произвел запись данных в выходной регистр канала. Входной сигнал подтверждения записи ( ACK ), равный 0, свидетельствует о том, что ВУ приняло данные. Сигнал INTR=1
информирует ЦП о завершении операции вывода информации из канала
в ВУ. Сигнал INTR сбрасывается спадом сигнала WR .
При вводе или выводе в режимах 1 или 2 важным является определение ЦП момента, когда можно читать или выдавать данные. При вводе
ЦП должен определить наличие данных, переданных ВУ, в регистре канала для того, чтобы их прочитать. При выводе ЦП должен определить
произошла ли передача данных из канала в ВУ, т.е. освободился ли канал для следующей передачи, что позволит ЦП послать в канал очередные данные.
Для определения момента чтения или посылки данных в канал ППИ
ЦП должен определить состояние канала. Определение состояния каналов А и В можно реализовать двумя путями. Первый – схемная реализация. Для этого используется сигнал ППИ INTR (запрос прерывания), вызывающий прерывание работы ЦП для выполнения программы ввода
или вывода данных в ППИ. Практически используется другой вариант –
программная реализация чтения состояния каналов А или В, которое
формируется в соответствующих разрядах регистра канала С (бит С3
для канала А, бит С0 для канала В).
Выработку ППИ сигнала прерывания разрешает бит INTE регистра
канала С: второй разряд этого регистра - для канала В, четвертый и шестой разряды – для канала А в режимах ввода и вывода соответственно.
Путем установки или сброса указанных разрядов программист может
разрешить или запретить обслуживание любого ВУ при работе по прерываниям.
Установка или сброс разряда регистра канала С, в том числе и бита
INTE, осуществляется ЦП засылкой слова по адресу РУС, т.е. при состоянии сигналов А1, А0=1,1. При этом разряд D7 РУС должен быть равен
0 (рис.1.6).
D7
D6
X
0
D5
X
D4
X
X
D3
D2
D1
Номер разряда регистра канала С
D0
0 – сброс разряда
1 – установка в “1”
Рис. 1.6. Формат слова установки разряда регистра канала С
При посылке управляющего слова с D7=0 разряд регистра канала C,
указанный в битах D3-D1, сбрасывается в 0, если D0=0, или устанавливается в 1, если D0=1.
Установка в 1 бита INTE разрешает выработку сигнала прерывания
INTR. Разряды D6-D4 не используются.
Рассмотрим пример ассемблерных команд при работе с ППИ. Пусть
в МПС для портов ППИ выделены адреса в диапазоне (80-83)Н. Линии
адресной шины подключены к выводам А1, А0 ППИ соответственно.
Для инициализации ППИ с параметрами: канал А (режим 1, вывод), канал В (режим 0, ввод), канал С (ввод) и установки бита INTE в 1 для канала А нужно выполнить следующие команды:
mov AL, 10101011B;
инициализация ППИ
out 83H
mov AL, 00001101B;
out 83H
установка бита 6
Для анализа состояния канала А с целью передачи очередного байта
данных ЦП должен прочитать байт по адресу 82Н и определить состояние канала А по биту С3.
Контрольные вопросы и задания.
1.
Сколько каналов ввода-вывода содержит ППИ? В каких режимах могут работать каналы ППИ?
2.
Укажите назначение портов ввода-вывода ППИ.
3.
В чем суть инициализации ППИ? Представьте формат управляющего слова ППИ.
4.
Укажите на особенности во вводе-выводе через канал А в режиме 0 и в режиме 1.
5.
Дайте назначение сигналов управления передачей данных через канал В режиме 1 при вводе и выводе данных.
6.
В чем заключаются особенности работы канала А в режиме 2?
7.
Для чего ЦП должен определять состояния каналов и как эта
функция реализуется практически?
8.
Для ППИ выделен диапазон адресов (84 – 87)H. Что означает
выполнение следующих команд:
mov AL, 00001001B
out 87H
Какую информацию несет передаваемый в ППИ байт?
9.
Дано 12 тумблеров и 12 лампочек, предназначенных для индикации состояния тумблеров. Можно ли организовать с
помощью ППИ ввод данных в МП о состоянии тумблеров
с последующим выводов битов состояния на индикацию.
Каким образом?
10.
Дано 8 тумблеров и 8 лампочек индикации. Напишите ассемблерные команды для чтения состояния тумблеров через
канал В ППИ (режим 0) и вывода байта состояния тумблеров на индикацию через канал А ППИ (режим 0). Перед командами ввода-вывода произвести инициализацию
БИС в соответствии с заданием. Адреса портов БИС ППИ
– (64-67) H.
1.2. Последовательный периферийный интерфейс
Для построения контроллеров, связывающих МПС на базе микропроцессора К1810 с ВУ, принимающими или передающими информацию
в последовательном коде используется БИС КР580ВВ51А, представляющая собой универсальный синхронно-асинхронный приемопередатчик
(УСАПП).
УСАПП преобразует поступающую с шины данных информацию из
параллельного формата в последовательный для передачи в ВУ и преобразует принимаемую из ВУ в последовательном формате информацию в
параллельный формат для выдачи её на шину данных МПС. Обмен информацией между УСАПП и ВУ может производиться в асинхронном
или синхронном режимах.
В асинхронном режиме коды передаваемой информации разделяются
специальными двоичными наборами. Каждое передаваемое слово передатчик сопровождает стартовым и стоповым битами, которыми осуществляется синхронизация запуска работы приемника. Формат передаваемого слова показан на рис. 1.7,а.
До начала передачи слова линия передачи данных находится в состоянии 1. Переход из 1 в состояние 0 отмечает начало передачи слова. Первый бит всегда содержит 0 и называется стартовым битом. Затем следуют
58 информационных бит, первым из которых является младший бит
слова, и необязательный бит четного или нечетного паритета.
Бит паритета используется для контроля ошибок, вызванных помехами на линии связи. При контроле по четности бит паритета устанавливается так, чтобы общее количество единиц в информационных битах и
бите паритета было четным. В случае нечетного паритета количество
единиц должно быт нечетным. Ошибка нечетной кратности в информа-
ционных битах и бите паритета изменяет четность единиц, что обнаруживается схемой контроля УСАПП.
Далее идут стоповые биты. Стоповые биты задают минимальное
время, которое должно пройти перед стартовым битом следующего передаваемого слова, определяющее промежуток времени для обработки приемником принятой информации.
Стартовый
бит
Бит
паритета
5-8 информационных бит
Стоповые
биты
Стартовый
бит
а)
Синхро
слово 1
Синхро
слово 2
Слово 1
Слово 2
..................
Слово
N
б)
Рис 1.7. Формат передаваемой информации:
а) в асинхронном режиме; б) в синхронном режиме.
Передаваемая УСАПП в ВУ информация может иметь разные параметры, которые задаются путем программирования БИС. Отметим эти
параметры и их значения при передаче в асинхронном режиме:
а) количество информационных бит в слове (5; 6; 7; 8);
б) тип паритета (четный; нечетный);
в) количество стоповых бит (1; 1,5; 2).
Кроме того, можно задавать скорость передачи информации. В БИС
УСАПП при передаче данных в ВУ и при приеме данных из ВУ предна-
значены выводы для подключения внешнего генератора синхронизации
для задания интервала каждого бита. Обычно при работе в асинхронном
режиме частота внешних генераторов равна или в 16, или в 64 раза больше скорости передачи или приема (в бит/сек). Если, например, при приеме множитель равен 16, то после обнаружения перехода из 1 в 0 в начале
символа узел приемника данных БИС должен отсчитать 8 импульсов синхронизации и опросить вход. При обнаружении 0 считается, что переход
вызван стартовым битом, а не помехой. Тогда приемник данных БИС
опрашивает вход через интервалы в 16 периодов импульсов синхронизации до ввода всех бит слова, включая и стоповые биты, после чего прекращает опрос и ожидает следующего перехода из 1 в 0 на входе. Величина значения множителя скорости передачи для асинхронного режима
задается при программировании БИС.
В синхронном режиме данные передаются не по одному слову, а целыми массивами слов. Передаваемое слово также состоит из 5-8 информационных бит с необязательным битом паритета, но не имеет стартового
и стопового битов. Число передаваемых информационных бит задается
при программировании БИС и одинаково для всех слов. Передача любого
массива слов всегда начинается с серии слов синхронизации, которые
нельзя спутать с другими словами. Приемник констатирует факт начала
сеанса передачи по совпадению этой серии с эталоном. Количество слов
синхронизации может быть одно или два в зависимости от характера помех в линии передачи. Формат передаваемой информации в синхронном
режиме представлен на рис. 1.7,б. Количество синхрослов задается при
программировании БИС. Для обоих режимов если задается реализация
контроля, то после каждого передаваемого слова добавляется бит паритета.
Структурная схема БИС УСАПП (КР580ВВ51А) приведена на рис.
1.8. Буфер данных является трехстабильным двунаправленным устрой-
ством для обмена данными и управляющими словами между ЦП и
УСАПП. В его состав входят три 8-миразрядных регистра: регистр входных данных (Рвх ), регистр выходных данных (Рвых), регистр состояния
УСАПП (РС).
Буфер данных
Б
D7-D0
У
Ф
РВх
Блок передачи
РПд
TxRDY
TxD
TxE
TxC
РВых
Е
Р
RESET
CLK
RD
WR
СS
C / D( A0)
РС
Блок управления
РР
РСС
Блок приема
РПр
RxRDY
RxC
RxD
SUNDET
РК
DTR RTS DSR CTS
Рис. 1.8. Структурная схема БИС УСАПП
При обмене данными с ВУ возникает необходимость контролировать
состояние УСАПП. Для этой цели используется РС, в разрядах которого
отображаются сбои, ошибки, возникающие при передаче и значения не-
которых управляющих сигналов. ЦП может считывать содержимое РС
УСАПП в любой момент времени.
Блок управления обеспечивает прием и хранение управляющих слов
двух типов: инструкции режима в регистре режима (РР) и команды в регистре команд (РК). Инструкция вводится сразу после установки УСАПП
в исходное состояние и заменяется лишь при смене режима. Команда
осуществляет управление установленным режимом обмена и может многократно задаваться в процессе обмена, управляя различными его этапами.
Блок
передачи
обеспечивает
преобразование
параллельного
8-миразрядного кода, поступившего в УСАПП из ЦП в последовательный
код. Основным узлом блока передачи является регистр передатчика
(РПд), на входы которого поступают данные из РВх. Выдача информации
в последовательном коде на выход передатчика (TxD) осуществляется
путем сдвига данных в РПд.
Блок приема предназначен для преобразования данных, поступающих в последовательном коде на вход УСАПП (RxD) из ВУ, в параллельный восьмиразрядный код и передачи этого параллельного кода в Рвых
буфера данных.
Блок регистров слов синхронизации состоит из двух регистров синхрослов (РСС). В эти регистры при работе УСАПП в синхронном режиме
передачи ЦП записывает коды первого и второго слов синхронизации.
Блок управления принимает управляющие сигналы от ЦП и генерирует внутренние сигналы управления. На входы блока поступают: сигнал
сброса (RESET), импульсы внутренней синхронизации УСАПП (CLK),
сигналы чтения ( RD ), записи ( WR ), выбора микросхемы ( CS ) и сигнал
«управление/данные» (C/ D ). При C/ D =0 выполняется запись данных с
выводов D7-D0 в Рвх или чтение данных из Рвых на выводы D7-D0. При
C/ D =1 - чтение из PС на D7-D0 или запись управляющих слов либо слов
синхронизации одного или двух с D7-D0 в соответствующие регистры.
УСАПП занимает в адресном пространстве ввода-вывода МПС два
адреса: А (четный адрес) и А+1 (нечетный адрес). При этом младший разряд адреса А0 подается на вход C/ D . В табл.1.2 показаны сигналы управления, определяющие направление передачи и тип выполняемой операции. Как видно из табл.1.2 регистр режима, регистр команды, регистры
слов синхронизации имеют один адрес. Выбор этих регистров зависит от
последовательности обращения, схема которой представлена на рис. 1.9.
После аппаратного сброса по сигналу RESET или по команде с установленным в 1 битом сброса следующий вывод по нечетному адресу (с А0=1,
RD =1 и WR =0) выполняется в регистр режима. Форматы регистра режима
и регистра команд рассмотрены ниже. Если режим синхронный, то следующие один или два выводимых байта по нечетному адресу (А0=1) загружаются в регистры слов синхронизации. Количество синхрослов
определяется информацией в регистре режима. Все последующие байты в
синхронном и асинхронном режимах направляются в регистр команды
(если А0=1) или в передатчик (если А0=0). Таким образом, для правильной работы УСАПП инструкция режима и управляющая команда должны
следовать в строго определенном порядке.
Таблица 1.2
Операция
Чтение из РВых
Запись в РВх
Чтение из РС
Запись управляющих слов или слов
синхронизации
CS
RD
WR
C / D( A0)
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
Отключение УСАППа от (D7-D0)
0
1
1
X
1
X
X
X
Загрузка слова
синхронизации 1
в РСС
Операция сброса
Загрузка
инструкции
режима
Задано 2 слова
синхронизации
да
Режим
асинхронный
?
нет
Загрузка слова
синхронизации 2
в РСС
да
А0=1
(адрес нечетный)
нет
да
да
Выполнить
сброс
Загрузка
данных
в РВх
нет
Загрузка
команды
Рис. 1.9. Схема алгоритма вывода байт управления
нет
Важной функцией блока управления является квитирование обменов
с ВУ (терминалом). На выходах блока управления формируются сигналы
запроса передатчика терминала на передачу данных ( DTR ) и запроса приемника на прием данных ( RTS ). На выходы блока управления поступают
сигналы готовности терминала передать данные ( DSR ) и принять данные
( CTS ). При этом квитируется только начало обмена.
Блок передачи предназначен для приема данных из РВх и выдачи их
в последовательном коде на выход (TxD), а также для приема сигнала
синхронизации передатчика (TxC) и формирования сигналов окончания
передачи (TxE) и готовности передатчика (TxRDY).
Блок приема принимает данные в последовательном коде от ВУ
(RxD) и преобразует их в параллельный формат. Кроме этого, блок приема принимает сигналы синхронизации приемника (RxC); формирует сигнал готовности приемника (RxRDY); имеет программируемый двунаправленный вывод SYNDET. В режиме синхронного ввода с внутренней
синхронизацией SYNDET служит выходом, на котором формируется 1
при обнаружении слова (слов) синхронизации во входном двоичном потоке. Если же поиск слов синхронизации осуществляется внешним связным оборудованием, то на вход SYNDET подается единичный сигнал о
фиксации соответствия. В асинхронном режиме SYNDET является выходом, сигнал 1 на котором называется сигналом обнаружения разрыва.
Этот сигнал отмечает прием слова, состоявшего из одних нулей.
Форматы управляющих слов
При программировании УСАПП необходимо закодировать и записать в БИС инструкцию режима и команду управления. Форматы инструкций режима для асинхронного и синхронного режимов работы показаны на рис. 1.10, а формат команды управления на рис. 1.11.
D7
D6
D5
D4
D3
D2
D1
D0
Множитель
скорости
Число стоп - бит
Недопустимо
1 бит
1,5 бита
2 бита
0
0
1
1
0
1
0
1
Разрешение паритета
Паритета нет
Контроль по
нечетности
Контроль по
четности
0
0
0
1
1
1
0
1
Синхронный
режим
1
16
64
Длина символа
x
0
0
1
1
1
0
0
1
1
0
1
0
1
5 бит
6 бит
7 бит
8 бит
D3
D2
0
а)
D7
D6
D5
D4
0
Число символов
синхронизации
0 – 2 символа
1 – 1 символ
Синхронный
режим
Вид синхронизации
1 – внешняя
0 - внутренняя
Разрешение паритета
Паритета нет
Контроль по
нечетности
Контроль по
четности
Длина символа
x
0
0
1
1
1
0
0
1
1
0
1
0
1
5 бит
6 бит
7 бит
8 бит
б)
Рис. 1.10. Формат инструкции режима:
а) для асинхронного режима; б) для синхронного режима.
D7
D6
D5
D4
D3
D2
D1
D0
1 – разрешение
вывода
0 – вывода нет
1 – поиск синхросигналов
1 – сброс БИС
1 – сформировать сигнал RTS  0 (запрос)
1 – сброс всех
бит ошибок в РС
1 – сформировать сигнал DTR  0 (запрос)
1 – разрешить прием
0 – приема нет
1 – конец передачи
(сформировать сигнал TxD=0)
Рис. 1.11. Формат команды управления
Инструкция режима определяет количество информационных бит,
наличие или отсутствие контроля паритета, вид контроля для символа, передаваемого синхронно или асинхронно. При синхронном режиме
два младших бита инструкции равны 0, два старших определяют количество символов синхронизации и режим использования вывода SYNDET –
как входа или выхода. В асинхронном режиме два старших разряда определяют количество стоповых бит, два младших разряда – множитель скорости передачи или приема. В синхронном режиме скорости (в бит/сек)
передачи или приема, т.е. сдвига в регистрах передатчика или приемника,
совпадают с частотами синхронизации по входам ТхС и RхС соответственно. В асинхронном режиме частоты синхронизации на входах ТхС и
RхС равны скорости передачи или приема, умноженной на 1, 16 или 64.
БИС УСАПП содержит регистр состояния РС, позволяющий ЦП читать состояние БИС в любой момент времени в процессе выполнения
операции. Формат слова состояния БИС показан на рис. 1.12.
D7
D6
D5
D4
D3
D2
D1
D0
Готовность передатчика терминала
Готовность
передатчика
(TxRDY)
Вид синхронизации
(SUNDET)
1 – ошибка кадра
1 – ошибка
переполнения
Готовность приемника
(RxRDY)
Конец передачи (TxE)
1 – ошибка четности
Рис. 1.12. Формат слова состояния
В РС биты D6, D2 и D1 отражают состояния соответствующих выводов УСАПП. В отличии от сигнала на выводе TxRDY, на состояние бита
D0 (равного 1, если РВых свободен) не влияет входной сигнал CTS или
бит D0 регистра команд. Биты RxRDY и TxRDY можно использовать для
программного
ввода-вывода, а сигналы с соответствующих выводов
УСАПП можно подключить к линиям запросов прерываний для организации ввода-вывода по прерываниям. Бит TxRDY автоматически сбрасывается, когда имеется символ для передачи, а бит RxRDY – когда установивший его символ введен в ЦП. Бит D2 (TxE) показывает, что регистр
сдвига передатчика ожидает загрузки символа из РВых.
После загрузки инструкции режима, символов синхронизации и команды УСАПП готов к выполнению обмена данными в одном из 5 режимов: асинхронная передача, асинхронный прием, синхронная передача,
синхронный прием с внутренней синхронизацией, синхронный прием с
внешней синхронизацией.
При асинхронной передаче в УСАПП загружается команда с D0=1
(«разрешение передачи») и D5=1, что означает формирование устройством запроса RTS =0 (рис. 1.11). Затем командой вывода OUT ЦП выдает
в УСАПП из аккумулятора первый байт данных. Если далее на вход CTS
поступит сигнал 0, свидетельствующий о готовности приемника терминала принять данные, то принятый в УСАПП байт данных вместе со
стартовым битом, битом паритета и стоповыми битами будет выдаваться
на выход TxD по спаду сигнала синхронизации TxC с периодом, задаваемым инструкцией режима и равным 1, 16 или 64 периодам сигнала TxC.
Завершение выдачи символа УСАПП сигнализирует установкой бита
готовности передатчика в РС (бит D0). Следовательно, окончание процесса выдачи УСАПП байта можно установить, циклически считывая из
УСАПП состояние РС и анализируя значение D0. При D0=1 очередной
подлежащей выдаче байт заносится в аккумулятор и командой OUT передается в УСАПП. После выдачи последнего байта данных в аккумуляторе
формируется команда УСАПП, содержащая либо D0=0 (если следующий
обмен данными с терминалом не потребует изменения режима УСАПП),
либо D6=1 (если следующий обмен потребует иного режима УСАПП).
Если после передачи символа УСАПП не содержит информацию для
передачи, то на входе TxE устанавливается сигнал 1.
При переходе в режим «пауза» (по команде с D3=1) на выходе TxD
устанавливается сигнал 0.
При асинхронном приеме требуется команда УСАПП с D2=1 («разрешение приема») и D1=1, что означает формирование запроса передатчика терминала на передачу данных DTR =0. Асинхронный прием данных
начинается по сигналу готовности терминала передать данные DSR . При
DSR =0 выполняется поиск стартового бита, который устанавливает на
входе RxD сигнал 0. Наличие этого бита вторично проверяется стробированием его середины внутренним строб-импульсом. Если стартовый бит
найден, то запускается внутренний счетчик битов, который определяет
начало и конец информационных битов, бит контроля и стоповые биты.
Прием стоповых бит сопровождается установкой бита готовности приемника RxRDY в РС (бит D1). В программе ЦП предусматривается циклический ввод состояния РС и проверка в нем значения D1. При D1=1 выполняется команда ввода IN принятого в УСАПП байта. После ввода выполняется сброс бита D1 в РС, и УСАПП принимает следующий байт из
терминала. Прекращение ввода данных обеспечивается передачей в
УСАПП команды с D2=0 или D6=1.
При синхронной передаче в УСАПП загружаются инструкция режима, символы синхронизации и команды с D0=1 и D5=1. Затем из аккумулятора передается слово данных. При этом следует иметь в виду, что этому первому слову данных на выходе передатчика УСАПП не предшествуют синхронизирующие слова. Поэтому это слово данных не принимается в приемник ВУ и при программировании оно может быть задано
произвольно. Вывод информации передатчик начинает по сигналу CTS =0.
В остальном программа совпадает с программой асинхронной передачи.
Если ЦП не загрузил очередной символ к моменту передачи, то
УСАПП вставляет в передаваемую последовательность холостые символы и формирует на выходе TxE сигнал 1, означающий пустую передачу.
В режиме синхронного приема с внутренней синхронизацией
УСАПП сравнивает записанные в него синхросимволы с принимаемыми
символами и при совпадении устанавливает сигнал 1 на выходе SYNDET.
При этом в РС бит D6 устанавливается в 1. После записи в регистр приемника принятого символа бит D1 в РС устанавливается в 1. В программе
ЦП предусматривается циклический ввод в ЦП состояния РС и проверка
в нем бита D6. При D6=1, продолжая циклический ввод состояния РC, ЦП
проверяет значение D1. При обнаружении D1=1 байт данных, принятый в
УСАПП, передается в аккумулятор. Дальнейшее в алгоритме аналогично
схеме алгоритма асинхронного приема.
Для установки УСАПП в режим синхронного приема с внешней синхронизацией необходимо в инструкции режима предусмотреть D6=1. Тогда вывод SYNDET интерпретируется как вход, на который подается
сигнал от терминала, разрешающий прием символов данных на входе
RxD со скоростью синхросигналов на входе RxC. Процесс программирования для работы в УСАПП тот же, что и в предыдущем режиме.
В процессе работы УСАПП в РС формируется три флага ошибок.
Они не прерывают работу УСАПП и сбрасываются по команде УСАПП с
D4=1. Разряд ошибки кадра (D5) устанавливается в 1, если в конце посылки не обнаруживается стоповый бит. Разряд ошибки переполнения
(D4) устанавливается в 1, если ЦП не прочитал символ перед приемом в
РВх следующего символа. Установка разряда ошибки паритета (D3) происходит при обнаружении в принимаемом символе ошибки нечетной
кратности.
Контрольные вопросы и задания.
1.
Укажите на различия в передаваемой информации при работе
УСАПП в асинхронном и синхронном режимах.
2.
Укажите назначение портов ввода-вывода УСАПП. Какие операции выполняются при обращении ЦП к УСАПП по четному адресу и по нечетному адресу?
3.
Укажите назначение сигналов квитирования обменов (ввод и вывод) УСАПП с ВУ.
4.
В регистр режима УСАПП введена инструкция режима следующего содержания <11001101>. Расшифруйте эту информацию.
5.
В регистр команд УСАПП введена команда следующего содержания <00100001>. Расшифруйте эту информацию.
6.
Какие ошибки при передаче данных через УСАПП может определить и проанализировать ЦП?
7.
Для УСАПП выделен диапазон адресов (60-61)H. Что означает
выполнение следующих команд:
mov AL, 11101101B
out
61H, AL
mov AL, 00000110B
out
61H, AL
Какую информацию несут передаваемые в УСАПП байты?
8. Для УСАПП выделен диапазон адресов (60-61)H. Что означает выполнение следующей команды:
in
AL, 61H ?
Прочитанный ЦП байт имеет следующее содержание <00000001>..
О чем это сообщение?
9. Как организовать прекращение УСАПП ввода данных из ВУ ?
10. Приведите алгоритм асинхронного вывода данных из УСАПП.
2. Работа по прерываниям
При работе МПС возникают ситуации, которые заставляют МП приостановить выполнение текущей программы. В этом случае программа
останавливается, запоминаются в стеке параметры точки останова (адрес
возврата CS и IP, состояние регистра F и при необходимости значения некоторых регистров МП), и система переходит на выполнение программы
обработки возникшей ситуации. После ее выполнения система возвращается на выполнение основной программы. Восстанавливаются на свои
места параметры точки останова, и программа продолжает свою работу.
Этот процесс называется прерыванием, а программа обработки возникшей ситуации – программой прерывания.
Микропроцессор К1810 может распознать 256 различных прерываний. Программа прерывания вызывается выполнением команды INT type,
входящей в систему команд МП К1810, где type – тип прерывания, принимающий значения от 0 до 255.
Все прерывания можно разделить на 3 группы: внешние, внутренние,
программные.
Внешние прерывания. Внешние прерывания инициируются ВУ путем поступления от ВУ сигнала “Запрос на прерывание”. Информация о
запросах на выполнение программы для внешнего прерывания поступает
в МП по двум входам: INTR или NMI. В зависимости от этого сами прерывания делятся соответственно на маскируемые или немаскируемые
внешние прерывания.
Внешние маскируемые прерывания маскируются в ЦП флагом IF.
Если IF=0, то запрос от ВУ на прерывание ЦП игнорируется, т.е. прерывание не распознается. Если IF=1, то процессор воспринимает и реагирует
на запрос прерывания. Установка флага IF производится командами CLI
(запрет прерывания) и STI (разрешение прерывания). Для организации
внешних маскируемых прерываний в МПС используется узел прерываний, на который поступают запросы от подключаемых к МПС ВУ. Вначале работы МПС узел прерываний программируется. Основными параметрами программирования являются:
 присвоение каждому входу запроса от ВУ типа прерывания,
т.е. параметра «type»;
 б) присвоение каждому входу запроса приоритета обслуживания. Для определения очередности обслуживания нескольких
запросов, поступивших одновременно, устанавливают систему
приоритетов. Первым будет обслуживаться тот запрос, у которого выше приоритет. Запрос с более высоким приоритетом
прерывает выполнение программы обслуживания ВУ с более
низким приоритетом.
Структурная схема соединения МП с узлом прерываний показана на рис.
2.1. При возникновении ситуации, когда ВУ требует важной или срочной
связи с МП, оно посылает запрос в узел прерываний. Узел прерываний
сообщает МП по входу INTR о возникшей ситуации. Если прерывания не
замаскированы
флагом IF, микропроцессор приостанавливает выполне-
ние текущей программы и передает в узел прерываний на вход INTA сигнал о своей готовности перейти к выполнению программы прерывания.
По этому сигналу узел прерываний выдает в МП по шине данных параметр “type” (тип прерывания), соответствующий программе обработки
запроса от этого ВУ. Этот параметр называется вектором прерывания, по которому определяется начальный адрес программы прерывания
обработки данного запроса.
INTR
МП
INTA
Узел
прерываний
…
Запросы
от ВУ
type
Рис. 2.1. Структурная схема соединения МП с узлом прерываний
Внешнее немаскируемое прерывание имеет фиксированный тип равный 2, который автоматически формируется внутри МП. Прерывание
называется немаскируемым потому, что оно не зависит от значения флага
IF, и его нельзя запретить. Запросы на немаскируемое прерывание поступают на вход NMI МП и используются при событиях, требующих немедленной реакции. Например, при аварийном пропадании питания, при обнаружении ошибок при чтении информации из памяти и т.д. В этих случаях выполняется программа прерывания по команде INT 2. Запросы на
прерывание по входу NMI имеют более высокий приоритет, чем прерывания по входу INTR.
Внутренние прерывания. Внутренние прерывания инициируются самим МП. Распознаются и выполняются независимо от состояния флага
IF и не маскируются. Характеризуются тем, что сигналы INTA подтверждения прерывания не формируются. Внутренние прерывания имеют
фиксированный тип и возникают в следующих случаях.
Прерывание по ошибке деления (тип 0) генерируется МП после выполнения команд деления DIV и IDIV, если формат частного превышает
формат получателя или в случае деления на ноль. При переполнении разрядной сетки в результате выполнения математических операций флаг
OF устанавливается в единицу (OF=1). При этом возникает прерывание
по переполнению (тип 4), которое генерируется по однобайтовой команде
INTO. Прерывание контрольной точки или точки останова (тип 3) вызывается однобайтовой командой INT3. Контрольные точки вводятся обычно при отладке программы с целью индикации содержимого регистров,
ячеек памяти и портов внешних устройств в критических местах программы.
Пошаговое прерывание (тип 1) вырабатывается автоматически при
установке флага трассировки TF в единицу (TF=1) после выполнения
каждой команды или пары команд, если первая команда изменяет содержимое сегментного регистра (для МП К1810). Обычно это прерывание
используется в процессе отладки для реализации покомандного выполнения программы. Программа обработки пошагового прерывания обычно
осуществляет индикацию внутренних регистров МП и содержимого некоторых ячеек памяти. В поша1говом режиме МП реагирует на внешние
и внутренние прерывания.
Программные прерывания. Прерывание, определяемое пользователем при составлении программы, осуществляется по двухбайтовой команде INT type, в которой тип прерывания указывается во втором байте
команды. Команда INT type вызывает требуемую программу подобно команде CALL. Отличие в том, что по команде INT type в стеке сохраняется не только адрес возврата (CS и IP), но и содержимое регистра флагов F.
При этом выполняется межсегментный переход, причем адрес программы
прерывания располагается не в формате команды, а в специально сформированной таблице указателей векторов прерываний.
Программные прерывания удобно применять в системах, где допускается динамическое перемещение программ при их выполнении. Поскольку таблица указателей векторов находится в фиксированной области
памяти, программы могут вызывать друг друга через эту таблицу. Этим
достигается устойчивое взаимодействие, не зависящее от адресов про-
грамм, если перемещение программы в памяти сопровождается соответствующей модификацией таблицы векторов.
Процедура обслуживания прерываний
Программы обслуживания всех прерываний находятся в блоке внутренней памяти МПС. Связь между кодом, определяющим тип прерывания, и адресом ячейки памяти первой команды программы прерывания
соответствующей этому типу устанавливается с помощью таблицы указателей векторов прерываний (рис. 2.2.) Полная таблица занимает 1 Кбайт
памяти и содержит 256 элементов, расположенных по адресам (0-3FF)H.
Каждый элемент таблицы содержит два слова (по 2 байта). Слово
с
большим адресом содержит базовый адрес сегмента, а слово с меньшим
адресом – смещение программы прерывания от начала кодового сегмента.
Процессор вычисляет адрес нужного элемента таблицы путем умножения
типа прерывания на 4. При переходе на программу прерывания смещение
загружается в регистр IP, а адрес сегмента - в регистр CS.
При переходе на программу обслуживания прерывания после сохранения в стеке содержимого регистров CS, IF, и F флаги IF и TF сбрасываются. Тем самым автоматически запрещаются внешние прерывания по
входу INT, что необходимо для защиты начального участка программы,
на котором в стеке сохраняется содержимое внутренних регистров МП.
Затем программа может разрешить внешние прерывания командой STI.
Кроме того, она может быть прервана запросом на входе NMI и внутренними прерываниями.
Адрес
00000
Тип 0
Ошибка деления
00004
Тип 1
Пошаговый режим
00008
Тип 2
Прерывания по NMI
IP
CS
IP
мл. байт
ст. байт
мл. байт
ст. байт
CS
IP
CS
………………………
003FC
Тип 255
Пользовательский
IP
CS
Рис. 2.2. Таблица указателей векторов прерываний
В конце программы восстанавливается содержимое регистров, которые ранее были ею сохранены. Этот участок следует также защитить от
прерываний по входу INTR сбросом флага IF (командой CLI). Программа
должна заканчиваться командой возврата из прерывания IRET, которой
предшествует команда STI. Перед выполнением команды IRET стек должен быть в том состоянии, в котором он оказался сразу после вызова программы. Команда IRET извлекает три верхних слова из стека и помещает
их в регистры IP,CS и F. Тем самым обеспечивается возврат к очередной
команде основной программы, перед выполнением которой возникло
прерывание.
Контроллер прерываний К1810ВН59А
В МПС, базирующихся на МП К1810, обработку запросов на прерывание от ВУ выполняет БИС К1810ВН59А – программируемый контроллер прерываний (ПКП). БИС ПКП обеспечивает управление 8-ю приоритетными внешними прерываниями, т.к. имеет 8 выводов для запросов на
прерывание. Имеет возможность организации каскадирования путем подключения нескольких БИС ПКП, один из которых является ведущим, а
остальные ведомыми. При этом число линий запросов на прерывание от
ВУ может быть увеличено до 64-х. Допускается программное маскирование любого запроса на прерывание.
Структурная схема БИС ПКП приведена на рис. 2.3. Ниже приведены назначения выводов контроллера:
- D7-D0 – выводы данных. Для взаимодействия регистров БИС с ЦП
по шине данных МПС.
-
RD – чтение. Сигнал на этом выводе позволяет считывать из кон-
троллера содержимое адресуемого внутреннего регистра на ШД
(IRR, ISR, IMR или наличие приоритетного запроса).
-
WR – запись. Сигнал на этом выводе позволяет загрузить с ШД ин-
формацию в адресуемый регистр контроллера.
-
CS - выбор БИС. Сигнал на этом выводе разрешает связь контро-
лера с ШД, т.е. идентифицирует обращение ЦП к контроллеру.
- А0 – адресный вывод. Поступающий на этот вывод сигнал определяет адресацию внутренних регистров контроллера. Используется
при загрузке приказов инициализации и рабочих приказов и считывании параметров состояния контроллера. Подключается к младшему разряду А0 шины адреса МПС. Для каждого контроллера
необходимо зарезервировать два адреса (четный с А0=0 и нечетный
с А0=1).
#SP/#EN
АS2
Сброс запросов
CАS2
САS1
D7-D0
ISR
Ш
Пр
IRR
IRR
САS0
# CS
А0
ICW1
OCW1
Регистр масок
INT
# INTА
IR0
IR1
ICW2
OCW2
IR2
IR3
ICW3
OCW3
IR4
IR5
IR6
ICW4
# WR
IR7
# RD
Приказы инициализации
Рабочие приказы
Рис.2.3. Структура программируемого контроллера прерываний
- INT – запрос прерывания. Предназначен для выдачи в ЦП сигнала
запроса прерывания.
-
INTA – подтверждение прерывания. Для приема сигналов подтвер-
ждения прерывания от ЦП. При переходе в режим прерывания ЦП
выдает два активных импульса INTA .
- IR7-IR0 – запросы от ВУ. Для приема сигналов запросов от ВУ или
от ведомых контроллеров прерываний.
- CAS2-CAS0 – идентификатор ведомого контроллера. Используются
при наличии в системе нескольких контроллеров прерываний (ведущего и ведомых). Эти выводы являются выходными для ведущего контролера и входными для ведомых.
SP / EN - Вывод выполняет две функции (вход-выход). Как вход опре-
деляет, каким является контроллер: ведущим ( SP / EN =1) или ведомым
( SP / EN =0). Как выход осуществляет запрещение
сигналом 0 всех
подключенных к ШД МПС устройств, когда данные передаются из
контроллера в ЦП.
Для управления контроллером предусмотрены 7
восьмибитовых
программируемых регистра, которые разделены на две группы. Первую
группу образуют регистры (ICW1- ICW4) – регистры приказов инициализации. Вторую группу – регистры (OCW1-OCW3) – регистры рабочих
приказов. Загрузка регистров первой группы выполняется процедурой
инициализации при включении МПС, и в процессе работы содержимое
этих регистров не меняется. Рабочие приказы используются для динамического управления обработкой прерываний.
Обращение ЦП к регистрам контроллера прерываний организовано
следующим образом: Регистры ICW1, OCW2, OCW3 имеют чётный адрес (при А0 = 0), а регистры ICW2, ICW3, ICW4, OCW1 имеют нечётный
адрес (при А0 =1). При записи информации в регистры инициализации
должен быть строгий порядок обращения к регистрам. Сначала нужно
обратиться к регистру ICW1, а затем последовательно к регистрам ICW2,
ICW3, ICW4. Чтобы определить к какому из регистров с чётным адресом
обращается ЦП, контроллер анализирует значения битов D4 и D3 в посылаемом ЦП байте данных. Если D4=1, то данные заносятся в регистр
ICW1. Если D4=0, то данные заносятся в регистр OCW2, если D3=0, либо
в регистр OCW3, если D3=1.
Кроме регистров управляющих контроллером в схему БИС ПКП
входят:
 IRR – регистр запросов;
 ШПр – шифратор приоритетов;
 ISR - регистр обслуживаемых запросов.
Эти узлы предназначены для восприятия и управления очередностью
обработки прерываний на входах запросов IR7-IR0 согласно заданному
правилу приоритетов. Запрос по входу IRi фиксируется установкой в 1 iго разряда регистра IRR. После этого установленный в 1 бит регистра
IRR сравнивается с соответствующим битом регистра масок IMR
(OCW1). Если бит маски содержит 0, запрос передается в ШПр, в противном же случае запрос блокируется. Когда запрос прерывания подается в
ШПр, проверяется его приоритет. При поступлении нескольких запросов
двоичный код номера запроса с наивысшим приоритетом появляется на
выходе ШПр. Этот код сравнивается с номером самого приоритетного
разряда с единичным значением в регистре ISR, где хранятся текущие обрабатываемые запросы. Если приоритет поступившего запроса оказывается более высоким, на выходе INT контроллера прерываний формируется сигнал 1.
Если флаг IF=1, т.е. прерывания разрешены, ЦП по завершению текущей команды реализует затребованный запрос на прерывание. ЦП возвращает в контроллер прерываний два отрицательных импульса по ли-
нии INTA . Первый импульс INTA блокирует входы регистра IRR вплоть до
появления второго импульса INTA , устанавливает бит регистра ISR соответствующий входу запроса в 1 и сбрасывает соответствующий бит регистра IRR. По второму импульсу INTA контроллер передает по линиям D7D0 в ЦП код типа прерывания для данного запроса, сформированный в
регистре ICW2. Если бит автоматического окончания прерывания (AEOI)
в ICW4 установлен в 1, то по окончании второго импульса INTA сбрасывается бит ISR, который был установлен первым импульсам INTA . В противном случае бит ISR не сбрасывается до выдачи в регистр OCW2 соответствующего приказа окончания прерывания (приказа EOI).
Форматы регистров инициализации и рабочих регистров показаны на
рис. 2.3. Биты регистра ICW1 (управление БИС) определяются следующим образом.
 Биты D7-D5, D2 – используются только в том случае, если МПС
построена на базе МП К580.
 Бит D4 всегда установлен в 1. Определяет, что данные, передаваемые ЦП по четному адресу, предназначены для регистра
ICW1.
 Бит D3 (LTIM) определяет режим запуска фронтом (LTIM=0)
или уровнем (LTIM=1). При запуске фронтом i-й бит регистра
IRR сбрасывается при установке соответствующего бита регистра ISR в 1. При запуске уровнем i-й бит регистра IRR не сбрасывается, пока вход запроса IRi=1. Это запрещает переход к обработке менее приоритетных прерываний, пока данное ВУ не
снимет свой запрос.
 Бит D1 (SNGL) показывает, каскадируется ли данный контроллер с другими контроллерами прерываний. Если в системе один
контроллер, то SNGL=1.
 Бит D0 (IC4) устанавливается в 1, если при инициализации используется приказ ICW4. В МПС с МП К1810 приказ ICW4
должен быть всегда, поэтому D0=1.
Регистр ICW2 (тип прерывания) предназначен для формирования параметра type соответствующего поступившему запросу. При инициализации в приказе ICW2 задается тип прерывания, присвоенный запросу IR0.
При этом биты D2-D0 должны содержать нули, т.к. они определяют уровень запроса, т.е. номер входа запроса. При поступлении в контроллер
прерываний первого импульса INTA в биты D2-D0 регистра ICW2 записывается номер обслуживаемого запроса, поступившего с ШФ.
Информация в регистр ICW3 (управление ведомым) заносится только в том случае, если в МПС используется несколько контроллеров прерываний, один из которых является ведущим, остальные – ведомыми. Если в системе один контроллер (в регистре ICW1 бит SNGL=1), то ЦП
приказ ICW3 не выводит. На рис.2.4. показаны связи при каскадировании
ведущего и двух ведомых контроллеров между собой. Запрос на прерывание в ЦП по линии INT выдает только ведущий контроллер. Выход INT
ведомого контроллера подается на один из входов IR ведущего контроллера.
Структура приказа ICW3 для ведущего контроллера и для ведомых
контроллеров различна. Для ведущего контроллера бит i устанавливается
в 1, если к его входу IRi подключен ведомый. Иначе этот бит должен
быть сброшен, т.е. равен 0. Как показано на рис. 2.4., ведомые контроллеры подключены ко входам IR2 и IR6 ведущего. Поэтому для ведущего
контроллера приказ ICW3 будет иметь вид <01000100>. Для ведомого
контроллера три младших бита D2-D0 приказа ICW3 определяет код
идентификации ведомого контроллера. Он должен совпадать с номером iго входа (IRi) ведущего, к которому подключен
SP / EN
2 1 0
CAS
INT
INTA
SP / EN
INT
Ведомый ПКП
7
0
1
2
IR 3
…
…
INTA
2 1 0
CAS
…
…
0
IR 1
6
Ведущий ПКП 7
SP / EN
2 1 0
CAS
INT
Ведомый ПКП
…
…
INTA
0
IR 1
7
Рис. 2.4. Система прерываний с несколькими контроллерами ПКП
вход INT данного ведомого. В соответствии с соединениями на рис. 2.4
для одного ведомого контроллера приказ ICW3 будет иметь вид
<00000010>, для другого ведомого - <00000110>.
При кодировании информации для регистра инициализации ICW4
(управление режимом) назначение битов следующее:
 Биты D7-D5 всегда равны 0.
 Бит D4 (SFNM) устанавливается в 1, если используется специальный вложенный режим, применяемый в МПС с несколькими
контроллерами. Иначе SFNM=0. Процедура реализации специального вложенного режима рассмотрена в [2].
 Бит D3 (BUF) определяет наличие буферов, подключаемых к
ШД системного интерфейса МПС и одновременно способ использования вывода SP / EN . При BUF=1 вывод SP / EN используется для выдачи сигнала для запрещения системных буферов
на время передачи данных из контроллера прерывания в ЦП.
Если BUF=0 (системные буфера отсутствуют), то SP / EN – вход,
на который следует подать 1. Все это имеет смысл только для
ведущего контроллера при каскадировании, либо в системах с
одним контроллером. Для ведомых контроллеров значение BUF
безразлично.
 Бит D2 (M/ S ). Этот бит игнорируется, если
BUF=0. Если
BUF=1, то в системах с одним контроллером бит M/ S =1, а в системах, использующих каскадирование, для ведущего контроллера M/ S =1, для ведомого - M/ S =0.
 Бит D1 (AEOI) определяет автоматический сброс бита регистра
ISR. Если AEOI=1, то в конце второго импульса INTA сбрасывается бит ISR, который вызвал прерывание. Если AEOI=0, то для
сброса бита ISR нужно в программе прерывания выдать приказ
окончания прерывания EOI.
 Бит D0 (  РM) указывает на базовый МП системы, в которой
находится контроллер прерываний. Для систем на базе МП
К1810 состояние
 PM=1.
Рассмотрим пример инициализации, т.е. загрузки данных в регистры
приказов инициализации ICW1 - ICW4 (адреса портов контроллера прерываний 50H и 51H):
mov AL, 13H
out 50H, AL
mov AL, 18H
out 51H, AL
mov AL, 0DH
out 51H, AL
Первые две команды определяют запуск фронтом, наличие в системе
одного контроллера прерываний и необходимость загрузки регистра
ICW4. Следующие две команды задают 5 старших бит типа прерывания
равными 00011, т.е. определяют, что тип прерывания для запроса по входу IR0 равен 18H. Приказ ICW3 не выводится, т.к. SNGL=1. Следовательно, последние две команды определяют загрузку в ICW4 байта 0DH. Эта
величина сообщает следующую информацию: специальный вложенный
режим не применяется; сигнал SP / EN используется для запрещения системных буферов; в системе используется один контроллер прерываний;
для сброса бита ISR необходим приказ EOI; контроллер работает в системе на базе МП К1810.
Кроме приказов инициализации в контроллер заносятся рабочие приказы в регистры OCW1–OCW3. Приказ OCW1 применяется для маскирования запросов прерываний. Если бит маски, соответствующий запросу
прерывания, содержит 1, то запрос по этому входу блокируется. Приказ
OCW1 вводится по нечетному адресу контроллера (при A0=1).
Приказы OCW2 и OCW3 управляют режимами работы контроллера и
обработкой концов прерываний. Рассмотрим назначение битов приказа
OCW2. Биты D2-D0 (L2, L1, L0) определяют уровень IR, т.е. номер входа
запроса от ВУ, биты D3 и D4 равны 0, бит D5 предназначен для задания
приказов EOI, а биты D6 (SL) и D7 ( R ) управляют уровнями IR.
Если в регистре инициализации ICW4 бит D1 (AEOI)=0, это указывает на программный сброс бита ISR, вызвавшего прерывание. Тогда, в тек-
сте программы прерывания необходимо выдать приказ EOI, выполняющий этот сброс, который реализуется посредством установки в 1 бита D5
в OCW2.
Когда выдается приказ OCW2, возможны четыре комбинации бита
D7 (бит R - ротация) и бита D6
(бит SL – установка уровня), кото-
рые приведены в табл. 2.
Рассмотрим эти комбинации. При значении битов R и SL равными
0,0 устанавливается режим обычных приоритетов. В этом режиме запрос
от ВУ, подключенного к выводу IR0, имеет наивысший приоритет. Далее
следуют приоритеты запросов IR1, IR2 и т.д. Поэтому при одном установленном бите ISRn контроллер не реагирует на запросы IR7, …IR(n+1),
но распознает незамаскированные запросы на выводах IR(n-1),…IR0. Запросы с меньшими приоритетами ожидают и обрабатываются по мере
сброса битов ISRj с большими приоритетами. В МПС наиболее часто
применяется режим обычных приоритетов. В этом случае для выдачи
приказа EOI, в регистр OCW2 нужно занести байт в виде <00100000>. Но
бит ISR можно сбросить явно, выдавая приказ OCW2, в котором биты R,
SL и EOI содержат комбинацию 011, а поле L2-L0 идентифицирует
номер сбрасываемого бита. Если, например, в OCW2 посылается байт
<01100011>, сбрасывается бит ISR3.
Таблица 2
ДЕЙСТВИЯ
R
SL
0
0
Режим обычных приоритетов
0
1
Сбрасывает бит ISR, определяемый полем L2-L0
1
0
Циклически изменяет приоритеты влево на 1 позицию
1
1
Назначает позиции, определенной полем L2-L0, низший
приоритет с цикл. Изменением остальных приоритетов
Приказ OCW2 может циклически изменять приоритеты путем сдвига
приоритетов на одну позицию влево при R=1 и SL=0. Например:
IR0, IR1,…….IR6, IR7
IR1, IR2, ……. IR7, IR0.
Приказ OCW2 может изменять приоритеты, назначая низший приоритет любому из входов IR при R=1 и SL=1. Например, для назначения
входу
запроса
IR4
низшего
приоритета,
надо
выдать
приказ
OCW2=<11100100>. При этом получается следующий порядок приоритетов:
IR5, IR6, IR7, IR0, IR1, IR2, IR3, IR4.
Выдача процессором приказа OCW2 с EOI=0 имеет аналогичные последствия, но только без сброса бита регистра ISR.
Приказ OCW2 имеет единичное действие – в момент его поступления
в контроллер. Возможность ротации позволяет динамически корректировать приоритеты ВУ в процессе работы системы без перекоммутации
входов контроллера. Режим, установленный приказом OCW2 (порядок
приоритетов), остается неизменным вплоть до получения от ЦП очередного приказа. Аналогично с приказами OCW3.
Рассмотрим назначение битов рабочего приказа OCW3. Некоторые
биты приказа имеют постоянное значение. Это биты D7=0, D4=0 и D3=1.
- Биты D6 (ESMM) и D5 (SMM) определяют режим специальной
маски. Если ESMM=1 и SMM=1, то при IF=1 незамаскированные
запросы прерываний обрабатываются в порядке их поступления,
приоритеты игнорируются. Выдача приказа OCW3, в котором
ESMM=1, а SMM=0 восстанавливает приоритетное упорядочивание
согласно последнему приказу OCW2. Значение ESMM=0 запрещает
режим специальной маски.
- Бит D2 (P) – бит полинга (опроса). Этот режим используется при
IF=0, когда прерывания запрещены. Но при этом запросы от ВУ
фиксируются в регистре IRR. При установке в OCW3 значения бита
P=0 контроллер переводится в режим опроса со стороны ЦП. В
этом случае при выполнении команды IN AL, PORT, где PORT –
четный адрес контроллера прерываний (A0=0), инициируемый командой сигнал на входе RD , передает в регистр AL процессора
байт, формат которого приведен на рис. 2.5. При этом соответствующий бит регистра ISR устанавливается в 1 (аналогично действию первого импульса INTA ). Значение бита I=1 показывает
наличие запроса прерывания, требующего обработки, а поле <W2,
W1, W0> дает уровень этого запроса, т.е. номер входа запроса.
Пусть, например, приоритеты упорядочены как IR3, IR4, ….. IR7,
IR0, IR1, IR2 и от ВУ поступили запросы на входы IR1 и IR4. Так
как запрос IR4 имеет более высокий приоритет, то в ЦП будет введен байт с I=1 и значениями <W2, W1, W0> = <1, 0, 0>.
ЦП может прочитать содержимое регистра запросов IRR и регистра
обслуживаемых прерываний ISR. Если бит P=0, то состояние битов D1
(RR) и D0 (RIS) указывает, какой из регистров IRR или ISR может прочитать ЦП по команде IN AL, PORT при A0=0. Если RR=1 и RIS=0, в AL
заносится содержимое регистра IRR, а при RR=1 и RIS=1 – регистра ISR.
I
X
X
X
X
W2
W1
W0
Рис. 2.5. Формат байта, передаваемого в ЦП в режиме опроса
Содержимое регистра маски OCW1 (IMR) можно прочитать в любой
момент времени по команде IN AL, PORT при A0=1. Чтение ЦП информации из указанных регистров позволяет проводить текущий контроль
состояния контроллера.
Контрольные вопросы и задания
1. Для инициализации БИС ПКП ЦП вводит следующие ассемблерные команды:
mov AL, 00010011B
out
20H, AL
mov
AL, 00111000B
out
21H, AL
mov
AL, 00000101B
out
21H, AL
mov
AL, 00100101B
out
21H, AL
mov
out
mov
out
AL, 00000000B
20H, AL
AL, 00001000B
20H, AL
По вводимой информации определить:
1.1. Один или несколько контроллеров используются для организации
внешних прерываний в МПС?
1.2. Какой тип прерывания соответствует запросу от ВУ, поступающему на вход IR3 ПКП?
1.3. Для сброса бита ISR необходим приказ EOI или нет?
1.4. Какой уровень (вход запроса от ВУ) обладает наивысшим приоритетом?
1.5. В контроллер ПКП одновременно поступили запросы на входы
IR0, IR1, IR4.
а) Приведите содержимое регистра IRR при действии импульса
INTA 1.
б) Приведите содержимое регистра ISR при действии импульса
INTA 2.
в) Какой код передает импульс INTA 2 на линии D7-D0 ПКП?
1.6. В текст программы прерывания требуется ввести приказ EOI. Составьте содержимое байта для этого приказа.
2. Для чего необходим режим каскадирования ПКП и как он реализуется?
3. Как можно изменять приоритеты уровней (запросов от ВУ)?
4. Как можно реализовать чтение содержимого регистра IRR или регистра ISR?
3. Прямой доступ к памяти
При работе МПС часто возникают ситуации, когда требуется передать данные из ВУ в память или наоборот – из памяти во ВУ. Если скорость приема или передачи данных ВУ невелика, то взаимодействие с
ним организуется с помощью программного ввода-вывода (с помощью
команд IN, OUT).
Некоторые ВУ, такие как накопители на магнитных дисках, алфавитно-цифровые преобразователи, работают со столь высокой скоростью,
что быстродействие ЦП при программном вводе-выводе оказывается недостаточным. В таких случаях скорость передачи данных должна определяться самими ВУ. Для организации быстрой передачи данных между
памятью и ВУ, минуя ЦП, который эту передачу организует медленно,
используется режим прямого доступа к памяти (ПДП).
Для реализации режима ПДП в МПС используется аппаратный узел –
контроллер ПДП. Его назначение – управление обменом информации
между памятью и ВУ. Общая организация контроллера ПДП и его основные связи показаны на рис.3.1. Кроме обычных регистров управления и
состояния должны быть регистры адреса и счетчик слов, предназначенные для цикла передачи. Прежде чем выполнить режим ПДП контроллер
ПДП программируется ЦП путем загрузки параметров режима и параметров передачи в эти регистры.
Шина данных
Запрос захвата
D7-D0
HRQ
Разрешение захвата HLDA
Запись
MEMW
Чтение
MEMR
Вывод
IOW
Ввод
IOR
Шина адреса
A7-A0
Регистр
управления
Регистр состояния
DREQ
Регистр адреса
DACK
Запрос на ПДП
от ВУ
Подтверждение
ПДП
Регистр –
счетчик
Рис. 3.1. Организация контроллера ПДП
Отметим основные параметры программирования:
- цикл обмена (запись (ВУ  память) или чтение (ВУ  память));
- адрес первой ячейки памяти для передачи;
- количество слов, предназначенных для передачи.
Становясь в режиме ПДП ведущим шины, контроллер ПДП помещает
адрес ячейки памяти на системную шину адреса (ША) и посылает в интерфейс необходимые сигналы чтения/записи для управления обменами
по системной шине данных (ШД). Контроллер ПДП может вернуть
управление процессору после передачи одного байта и при готовности
очередного байта вновь запросить шину у ЦП сигналом HRQ (запрос захвата). Но может и непрерывно управлять шиной вплоть до завершения
передачи блока в целом.
На рис. 3.2 приведена структурная схема МПС с контроллером ПДП.
ША
ЦП
ШД
Память
(ОЗУ, ПЗУ)
ШУ
MEMR
MEMW
Адрес
Данные
MW MR IOW IOR
HRQ
Контроллер ПДП
HLDA
IOW IOR
DREQ
ВУ
DACK
Рис. 3.2. Структурная схема МПС с контроллером ПДП
Для осуществления режима ПДП контроллер должен выполнять
ряд последовательных операций:
1. Принять запрос DREQ на выполнение режима ПДП от ВУ.
2. Сформировать запрос HRQ на захват шин и послать его в ЦП.
3. Принять сигнал HLDA (разрешение захвата), выдаваемый ЦП о
том, что ЦП разрешает контроллеру ПДП управлять передачей, т.е.
захват шин. При этом ЦП переходит в z-состояние (отключается от
шин системного интерфейса).
4. Сформировать сигнал DACK, сообщающий ВУ о начале выполнения режима ПДП.
5. Сформировать и выдать на ША адрес ячейки памяти, предназначенной для обмена.
6. Выработать два активных управляющих сигнала в зависимости от
заданного цикла обмена: запись ( IOR и MEMW ) или чтение ( MEMR
и IOW ).
При выполнении этой операции данные либо читаются из ВУ и записываются в память по адресу, выставленному контроллером, либо читаются из памяти и передаются во ВУ.
По окончании передачи цикл ПДП заканчивается либо повторяется,
изменяя адрес ячейки памяти. Циклы ПДП выполняются с последовательно расположенными ячейками памяти, поэтому контроллер ПДП
должен иметь счетчик байт. Для окончания режима ПДП контроллер
снимает запрос HRQ на захват шин.
Контроллер ПДП К1810 ВТ37
В МПС, построенных на базе МП К580, К1810, К1821, для реализации режима ПДП используется БИС К1810ВТ37, называемая контроллером ПДП. Контроллер ПДП реализует режим ПДП по четырем независимым каналам, т.е. позволяет подсоединять четыре ВУ и позволяет реализовать передачу «память – память». Контроллер имеет возможность организации каскадирования, что увеличивает число ВУ, работающих в
режиме ПДП. Суммарный объем обменов с каждым ВУ – до 64 Кбайт.
Это определяется разрядностью регистров адреса и циклов (объема передачи). Для обращения к адресному пространству памяти 1 Мб (20 разрядов адреса) для задания базовых адресов сегмента памяти используется
внешний порт, который программируется отдельно. Запросы ПДП от
разных ВУ удовлетворяются на приоритетной основе.
Структурная схема БИС контроллера ПДП представлена на рис.3.3.
В его состав входят: буфер данных (БД), предназначенный для организа-
ции двунаправленной связи внутренней шины БИС контроллера с ШД
системного интерфейса; блок управления контроллером (БУК), формирующий сигналы управления узлами контроллера при передаче
D7  D0
CS
IOR
IOW
RESET
CLK
A3  A0
Канал 0
БД
CAR
BAR
CWR
WCR
DREQ 0
DACK 0
MR
БУПП
TR
DREQ 1
Канал 1
A7  A4
AEN
ADSTB
MEMR
MEMW
READY
HRQ
HLDA
EOP
DACK 1
БУК
DREQ 2
CR
Канал 2
SR
RR
MASK
DACK 2
DREQ 3
Канал 3
DACK 3
Рис. 3.3. Структурная схема контроллера ПДП
данных в режиме ПДП; блок управления передачей типа «память – память» (БУПП); четыре одинаковых канала. Каждый канал реализует запрограммированный режим ПДП для одного ВУ и работает независимо
от других каналов.
Назначение выводов контроллера ПДП:
 D7 – D0 – выводы данных.
 CLK – вход синхронизации.
 CS – выбор кристалла.
 RESET – сброс.
 READY – готовность. Используется при работе с медленнодействующими ВУ.
 DREQ3 – DREQ0 – входы запросов на ПДП от ВУ.
 DACK3 – DACK0 – подтверждение ПДП. Полярность активных
сигналов DREQ и DACK задается программно.
 HRQ – выход запроса захвата.
 HLDA – подтверждение захвата.
 IOR – чтение (вход/выход). Как вход используется ЦП для чтения содержимого внутренних регистров контроллера ПДП. Как
выход в режиме ПДП разрешает выдачу данных из ВУ.
 IOW
- запись (вход/выход). Как вход используется для за-
грузки данных в регистры контроллера ПДП. Как выход в режиме ПДП разрешает запись данных в регистры ВУ.
 MEMR - чтение из памяти. Выход, используемый в режиме ПДП
для управляющего сигнала чтения из памяти.
 MEMW - запись в память. Выход, используемый в режиме ПДП
для управляющего сигнала, записи в память.
 А3 – А0 – адресные входы/выходы. Как входы используются
для адресации регистров контроллера ПДП. Как выходы в режиме ПДП используются для передачи четырех младших разрядов адреса ОЗУ.
 А7 – А4 – адресные выходы.
 AEN – разрешение адреса.
 ADSTB – строб адреса.
 EOP - окончание процесса (вход/выход). Используется для указания окончания процесса передачи данных в режиме ПДП. Подавая на этот вывод сигнал 0, можно прекращать передачу данных по обслуживаемому в данный момент каналу. По завершении работы в режиме ПДП одним из каналов, контроллер сам
устанавливает сигнал на выводе EOP =0.
Для уменьшения числа выводов в конструкции БИС 16-разрядный
адрес ячейки памяти на ША МПС выдается следующим образом.
(рис.3.4).
ША
А15-А8
–
защелка
Регистр
OE
STB
Контроллер ПДП
AEN
ADSTB
D7-D0
A7-A4
A3-A0
Рис. 3.4. Схема подключения адресных выводов
Выводы А7 – А0 контроллера ПДП подключаются непосредственно к ША. Восемь старших разрядов адреса ячейки памяти А15 – А8 выдаются через выводы D7 – D0 контроллера и поступают в регистрзащелку, где фиксируются сигналом ADSTB (строб адреса). По сигналу
AEN старший байт адреса А15 – А8 выставляется на ША.
Контроллер включает 4 канала, каждый из которых состоит из 4-х
16-разрядных регистров CAR, BAR, CWR, WCR и одного 6-разрядного
регистра MR.
CAR – регистр текущего адреса памяти. При выполнении цикла
ПДП его содержимое увеличивается или уменьшается на единицу. Этот
регистр можно загрузить и прочитать.
CWR – регистр циклов ПДП. Также допускает запись и чтение ЦП.
Хранит число слов, предназначенных для передачи. Загружаемая в него
константа должна быть на единицу меньше объема передаваемых слов.
При выполнении циклов ПДП регистр работает в режиме вычитающего
счетчика. При переходе регистра из нулевого состояния в состояние
FFFFH вырабатывается сигнал окончания передачи, и канал устанавливается в состояние «Конец счета».
BAR и WCR – базовые регистры адреса (BAR) и циклов ПДП
(WCR). Программно не доступны. При загрузке в них дублируется содержимое CAR и CWR соответственно. В процессе режима ПДП их состояние не меняется. Они используются в режиме автоинициализации
для восстановления регистров CAR и CWR по окончании передачи по
данному каналу. Загрузка всех четырех регистров на этапе инициализации выполняется побайтно. При этом в каждый момент может загружаться только один байт – старший либо младший. Поэтому для занесения в эти регистры исходных параметров нужно выполнить две команды
загрузки.
Регистр режима MR определяет режим работы канала. Информация
в регистр режима заносится по команде «Установка режима канала»,
формат которой представлен на рис.3.5. В младших разрядах D1, D0 команды указывается код номера канала. С помощью разрядов D2, D3 задается один из типов передачи – чтение, запись, проверка. Разряд D4 определяет режим автоинициализации. Если D4=1 (условие автоинициализа-
ции), то по окончании режима ПДП канала его регистры CAR и CWR загружаются параметрами регистров BAR и WCR соответственно. Разряд
D5 определяет режим изменения регистра CAR. Если D5=0, то после
каждого цикла ПДП происходит увеличение содержимого CAR; если
D5=1, то – уменьшение. Разряды D6, D7 определяют режимы работы канала: передача по требованию, одиночная передача, блочная передача,
каскадирование.
Блок управления контроллером вырабатывает сигналы управления
узлами контроллером. В БУК входят два 8-разрядных регистра – регистр
команд CR и регистр состояния SR и два 4-разрядных регистра – регистр
запросов RR и регистр маски MASK.
Регистр команд CR определяет основные параметры работы канала.
Загрузка регистра CR осуществляется командой вывода от ЦП, а сброс –
по сигналу RESET или по команде общего сброса. Назначение разрядов
регистра показано на рис.3.6. Разряды D0, D1 используются для задания
режимов работы каналов 0 и 1 в режиме память – память. Разряд D2 инициализирует контроллер для выполнения ПДП. Разряд D3 определяет
режим выполнения циклов ПДП. Если D3=1, циклы ПДП выполняются с
пропуском одного такта. Разряд D4 устанавливает режим приоритетов.
Если D4=1, то запросу обслуженного канала присваивается наинизший приоритет – это
режим
вращения
приоритета.
Если
D4=0,
каналу 0
присваивается высший приоритет с последовательным понижением приоритетов последующих каналов. Разряд D5 устанавливает режим удлиненного цикла записи. Если D5=1, то сигналы IOW и MEMW вырабатываются
с двойной длительностью. Разрядами D6 и D7 программируются активные
уровни сигналов запросов ПДП (DREQ) и сигналы подтверждения ПДП
(DACK).
D7
D6
D5
D4
D3
D2
D1
Режим
обслуживания
Передача по
требованию
Одиночная передача
Блочная передача
Каскадирование
D0
Адрес канала
0
0
0
1
1
0
1
1
Приращение адреса
1 – декремент, 0 – инкремент
Автоинициализация
1 – есть, 0 – нет
0
0
1
1
0
1
0
1
Канал 0
Канал 1
Канал 2
Канал 3
Тип цикла ПДП
0
0
1
1
x
0
1
0
1
x
Цикл проверки
Цикл записи
Цикл чтения
Запрещенный код
Безразлично,
Если D7D6=11
Рис. 3.5. Формат команды ”Установка режима команды”
В регистре состояния RS фиксируются некоторые параметры состояния каналов, которые могут быть прочитаны ЦП для анализа. Формат регистра состояния представлен на рис.3.7. Его поле D3 – D0 показывает
факт окончания счета каналами 3 – 0 соответственно (в разряд Di , i  (0,3) , i
– номер канала, записывается 1 по сигналу окончания TCi ). При подаче
внешнего сигнала в контроллер EOP  0 (окончание процесса) происходит
установка в 1 того из разрядов, номер которого совпадает с номером канала, работающего в режиме ПДП. Все эти разряды сбрасываются по сигналу RESET либо по команде чтения SR. Поле D7 – D4 фиксирует наличие
запросов ПДП по каналам 3 – 0 аппаратных (через DREQi ) либо программных.
D7
D6
D5
D4
Активный
уровень DACK
1 – высокий, 0 – низкий
D3
D2
D1
D0
Передача
“память – память”
1 – есть, 0 – нет
Активный уровень DREQ
1 – высокий, 0 – низкий
Цикл записи
1 – расширенный, 0 – нет
Режим приоритетов
1 – вращение, 0 – обычный
1 – захват канала 0
0 – нет (при D0=0-безразлично)
Разрешение ПДП
1 – нет, 0 – да
1 – сжатие цикла ПДП, 0 - нет
(при D0=0-безразлично)
Рис. 3.6. Формат регистра команд CR
Регистр запросов RR. Контроллер может обслуживать запросы на
ПДП, формируемые как аппаратно – по входам DREQ, так и программно –
по состоянию разрядов регистра запросов RR. Каждый разряд этого регистра соответствует запросу по одному из каналов. Каждый из разрядов регистра RR устанавливается командой установки запросов на ПДП, формат
которой представлен на рис.3.8. Команда выдается ЦП при необходимости
программного запроса по каналу. По окончании обслуживания разряд
сбрасывается сигналом ТС соответствующего канала или сигналом EOP .
Сброс всех разрядов регистра RR осуществляется по сигналу RESET. Программные запросы обрабатываются только в режиме блочной передачи и
не маскируются.
D7
D6
D5
D4
D3
D2
D1
D0
1 – наличие
запроса на ПДП
по каналу 3
1 – конец счета
канала 0
канала 1
канала 2
канала 3
по каналу 2
по каналу 1
по каналу 0
Рис. 3.7. Формат регистра состояния SR
D7
D6
D5
D4
D3
D2
Не используются
1 – установить запрос
0 – сбросить
D1
0
0
1
1
D0
0
1
0
1
Адрес канала
Канал 0
Канал 1
Канал 2
Канал 3
Рис. 3.8. Формат команды установки запросов на ПДП
Регистр маски MASK, с помощью которого могут быть замаскированы сигналы DREQ каждого канала. Разряды регистра MASK могут быть
установлены
специальной
командой установки всех разрядов маски
(рис.3.9) или командой установки одного разряда маски для одного канала
(рис.3.10). Если канал не запрограммирован на режим автоинициализации,
то после поступления сигнала EOP соответствующий каналу разряд регистра MASK устанавливается в 1. Сброс всех разрядов по сигналу RESET.
Контроллер ПДП может управлять передачей «память – память»,
при которой осуществляется перемещение блоков информации из
одного поля оперативной памяти в другое.
D7
D6
D5
D4
D3
D2
D1
D0
канал 0
канал 1
канал 2
канал 3
Не используются
1 – установка маски, 0 - сброс
Рис. 3. 9. Команда установки всех разрядов маски
D7
D6
D5
D4
D3
D2
D1
D0
Адрес канала
Не используются
1 – установить маску
0 – сбросить
0
0
1
1
0
1
0
1
Канал 0
Канал 1
Канал 2
Канал 3
Рис. 3.10. Команда установки разряда маски
Для реализации этого режима используются параметры каналов 0 и 1.
В канале 0 должна быть информация об источнике, т.е. об адресации ячеек
памяти, откуда производится считывание информации. В канале 1 – адрес
получателя и количество циклов передачи (объем передаваемого блока).
Передача инициируется программно установкой запроса в регистре RR
для канала 0.
Блок БУПП контроллера включает регистр временного хранения байта TR, который обеспечивает хранение байта в режиме «память – память»
за время изменения адреса. Дело в том, что в этом режиме выполняются
два цикла ПДП: один – чтение из памяти по адресу, установленному в регистре CAR канала 0, другой – запись в память по адресу, установленному
в регистре CAR канала 1.
Каждый канал контроллера ПДП может быть запрограммирован для
выполнения одного из четырех режимов ПДП.
В режиме одиночной передачи по сигналу запроса DREQ от ВУ осуществляется передача одного байта. При этом содержимое счетчика циклов ПДП (CWR) уменьшается, а содержимое регистра адреса CAR уменьшается или увеличивается на единицу. Сигнал HRQ снимается после передачи каждого байта, даже если сигнал DREQ остается активным, и
управление передается ЦП. Новый цикл передачи возможен с приходом
очередного сигнала HLDA.
В режиме блочной передачи запрос DREQ может быть снят ВУ при
приеме сигнала подтверждения ПДП (DACK). Здесь контроллер не возвращает управление ЦП. Передача данных происходит до конца, т.е.
всем блоком, либо приостанавливается лишь при поступлении внешнего
сигнала EOP .
В режиме передачи по требованию передача происходит блоком, но
сигнал запроса DREQ не должен сниматься ВУ. После окончания очередного цикла ПДП контроллер проверяет состояние сигнала DREQ и как
только ВУ снимает сигнал запроса, то передача по данному каналу приостанавливается. Она возобновляется при активизации сигнала DREQ. Передача прекратится также при поступлении внешнего сигнала EOP .
Для увеличения числа каналов, поддерживающих режим ПДП, в МПС
применяется каскадирование контроллеров ПДП. В этом случае один из
контроллеров является ведущим, а остальные – ведомыми. Выводы HRQ и
HLDA ведомого контроллера подключаются к выводам DREQi и DACKi
канала i ведущего контроллера. Таким образом, к ведущему контроллеру
может быть подключено до 4-х ведомых. Факт каскадирования указывает-
ся только при программировании i-го канала ведущего контроллера в команде «Установка режима канала». Управление шиной осуществляет ведомый контроллер.
Для обращения ЦП к регистрам контроллера ПДП в адресном пространстве ввода-вывода МПС отведено 16 адресов. Выбор регистра определяется кодом на выводах А3 – А0 контроллера. Первые восемь кодов
определяют адреса регистров CAR, BAR, CWK, WCR каналов (табл. 3.1).
Эти регистры двухбайтные. Поэтому, как уже указывалось, для их загрузки нужно выполнить две команды вывода (сначала загрузка младшего
байта, затем – старшего). Загрузка как регистров CAR и BAR, так и регистров CWK и WCR происходит одновременно. Прочитать же ЦП может по
команде ввода только содержимое регистров CAR и CWK.
Коды на входах А3 – А0 для регистров управляющих режимом ПДП,
находящихся в блоках БУК и БУПП приведены в табл. 3.2.
Таблица 3.1
А3
А2
А1
А0
Адресуемый регистр
Канал
0
0
0
0
Загрузка CAR, BAR; чтение CAR
0
0
0
0
1
Загрузка CWR, WCR; чтение CWR
0
0
0
1
0
Загрузка CAR, BAR; чтение CAR
1
0
0
1
1
Загрузка CWR, WCR; чтение CWR
1
0
1
0
0
Загрузка CAR, BAR; чтение CAR
2
0
1
0
1
Загрузка CWR, WCR; чтение CWR
2
0
1
1
0
Загрузка CAR, BAR; чтение CAR
3
0
1
1
1
Загрузка CWR, WCR; чтение CWR
3
Таблица 3.2
А3
А2
А1
А0
Операция
1
0
0
0
Чтение SR
1
0
0
0
Запись в CR
1
0
0
1
Запись в RR
1
0
1
0
Запись в MASK (установка всех разрядов MASK)
1
0
1
1
Запись в MR
1
1
0
0
Установка режима ввода младшего байта
1
1
0
1
Чтение TR
1
1
0
1
Общий сброс
1
1
1
0
Сброс всех разрядов MASK
1
1
1
1
Установка одного разряда MASK
В качестве примера приведем ассемблированные команды загрузки
регистров CAR, BAR канала 1 адресом 1855Н, маскирования канала 2 и
чтение регистра состояния контроллера ПДП, для которого в адресном
пространстве ввода-вывода МПС выделены адреса в диапазоне (80 – 8F)H:
mov AL, 55H
out 82H, AL
mov AL, 18H
out 82H, AL
mov AL, 00000110b
out 8FH, AL
in AL, 88H
При первоначальной инициализации контроллера ПДП производится общий сброс контроллера и установка режима ввода младшего байта. В процессе работы МПС содержимое регистров управления и регистров начала перепрограммируется в зависимости от параметров режима
ПДП каналов.
Контрольные вопросы и задания
1. Для чего в МПС предназначен режим ПДП? Этапы выполнения режима ПДП.
2. Структура канала БИС контроллера ПДП. Назначение и форматы
регистров канала.
3. Регистры блока управления контроллера ПДП. Назначение и форматы регистров блока управления.
4. Организация вывода контроллером ПДП адреса ячейки памяти на
ША МПС в режиме ПДП.
5. Какие функции выполняют сигналы на выводах IOR и IOW БИС
ПДП?
6. Приведите характерные особенности различных режимов передачи
ПДП.
7. В адресном пространстве ввода-вывода МПС для БИС контроллера
ПДП выделен диапазон адресов (10-1F)H.
а) Напишите ассемблерные команды для ввода в регистр адреса канала
2 контроллера ПДП значения 1857H.
б) Укажите номер канала и параметры режима работы канала при
выполнении ЦП следующих команд:
mov
AL, 10001001 B
out
1BH, AL
в) Напишите ассемблерные команды для маскирования запросов на
ПДП для 1-го и 2-го каналов.
4. Программируемый таймер К1810ВИ54
В некоторых применениях МПС встречаются такие функции
управления, как генерация сигналов переменной частоты, формирование временных задержек, подсчет числа внешних событий и др. С целью максимального упрощения реализации таких функций в МПС применяются БИС программируемых счетчиков-таймеров.
Типичная организация таймера показана на рис. 4.1. Основными элементами таймера являются регистр-счетчик и регистр управления. Сам
счетчик прямо ЦП не доступен. Таймер может быть запрограммирован
на работу в одном из нескольких предусмотренных для него режимов
работы. При программировании ЦП загружает в регистр управляющего
слова информацию о режиме работы таймера, а в регистр начального
счета константу пересчета, определяющую заданный временной интервал. Содержимое регистра начального счета автоматически загружается
в счетчик. С приходом тактового импульса на вход CLK при установке
сигнала разрешения счета на входе GATE происходит вычитание счетчика на 1. Когда содержимое счетчика достигнет 0, на выходе OUT
формируется сигнал, указывающий, что истекло заданное время, т.е. заданный константой пересчета временной интервал. В зависимости от
режима работы таймера этот сигнал может быть в виде перепада
потенциала, одиночного импульса, серии импульсов. Состояние счетчика ЦП может считывать путем передачи его содержимого в выходной
регистр счетчика.
В составе микропроцессорного комплекта К1810 для реализации
времязадающих функций предусмотрена БИС К1810ВИ54 (программируемый таймер (ПТ)). Структурная схема БИС представлена на рис. 4.2.
Шина
данных
D7-D0
Чтение
Регистр
начального счета
CLK
Счетчик
RD
Разрешение
счета
Запись
WR
Выбор
Шина
адреса
Тактовые
сигналы
Выходной
регистр счетчика
CS
Регистр состояния
A1, A0
GATE
OUT Выход
Регистр
управляющего слова
Рис. 4.1. Организация таймера
В состав БИС входят: буфер данных, предназначенный для организации двунаправленной связи внутренней шины БИС с ШД системного
интерфейса; блок управления БИС, с помощью которого выбирается
один из трех каналов либо формируется признак загрузки управляющих
слов или команд; три идентичных канала, каждый из которых может
быть запрограммирован на работу в одном из шести режимов. Каналы
работают независимо друг от друга.
Канал 0
OL 0
D7-D0
Буфер
данных
CE 0
CLK 0
GATE 0
OUT 0
CR 0
RS 0
CS
RD
WR
RSW 0
Блок
управления
Канал 1
A1
Канал 2
A0
CLK1
GATE1
OUT1
CLK2
GATE2
OUT2
Рис. 4.2. Структурная схема БИС ПТ
Назначение выводов ПТ.
 D7 – D0 - выводы данных.
 RD – чтение. Используется для чтения содержимого внутренних регистров ПТ.
 WR – запись. Используется для загрузки данных в регистры
ПТ.
 CS – выбор кристалла.
 A1 – A0 – адресные входы, по которым осуществляется адресация к одному их каналов.
 <A1, A0> = <0,0> - адрес канала 0;
 <A1, A0> = <0,1> - адрес канала 1;
 <A1, A0> = <1,0> - адрес канала 2;
 <A1, A0> = <1,1> - признак загрузки управляющих слов и команд.
 CLK2 – CLK0 – входы тактовых импульсов для управления
счетчиком. Срез сигнала на входе CLK приводит к уменьшению содержимого счетчика на единицу.
 GATE2 –GATE0 – входы разрешения счета. Сигнал GATE =1
разрешает счет, а GATE=0 запрещает счет и состояние счетчика при этом не меняется.
 OUT2 – OUT0 – выходы счетчика. При равенстве счетчика 0
вырабатывается сигнал на выходе этого счетчика, сигнализирующий об окончании счета.
Программируемый таймер К1810ВИ54 включает три канала, каждый из которых состоит из трех 16-разрядных регистров CR, CE, OL и
двух 8-разрядных регистров RSW и RS.
CR - регистр пересчета. Служит для хранения констант пересчета.
При программировании ЦП записывает в этот регистр константу, соответствующую времени появления сигнала на выходе счетчика.
CE – регистр – счетчик, работающий в режиме вычитания. Изменение содержимого CE осуществляется по срезу сигнала CLK при
GATE=1. При программировании содержимое регистра CR загружается
в регистр CE для счета.
OL – выходной (буферный) регистр счетчика. Служит для запоминания и хранения мгновенного хранения счетчика CE, которое в любой
момент времени может быть записано командой «Защелка» или «Чтение
состояние канала». После выполнения этих команд содержимое реги-
стра OL может быть прочитано ЦП без остановки дальнейшего счета в
регистре CE.
RS – регистр состояния канала. Содержимое этого регистра является словом состояния канала и его можно считывать в ЦП с помощью
команды «Чтение состояния канала».
RSW – регистр управляющего слова. Предназначен для записи и
хранения управляющего слова, определяющего режим работы канала.
При посылке ЦП в ПТ управляющей информации состояние сигналов на линиях A1,A0 должно быть 1,1. Управляющая информация
может быть следующего содержания: управляющее слово CW, команда
«Защелка», команда «Чтение состояния канала».
Управляющее слово CW. Формат управляющего слова показан на
рис. 4.3. Управляющие слова загружаются в регистры RSW каналов
ПТ по команде OUT PORT, AL.
Адрес канала указывается в са-
мом формате управляющего слова в битах D7, D6 (SC1, SC0). Загрузка
управляющего слова должна предшествовать загрузке константы.
Биты D5, D4 (RW1, RW0) определяют размерность и порядок загрузки констант. Если D5, D4 заданы кодами 0 1 или 1 0, то размер
константы определяется соответственно старшим или младшим байтом. Если <D5, D4>=<1,1>, то размер константы два байта; сначала загружается младший байт, затем – старший.
Биты D3, D2, D1 (M2, M1, M0) задают один из шести режимов работы канала.
Бит D0 (BCD) определяет тип счета. При D0=0 константа
задается в двоичном коде и может принимать значения в диапазоне 0 – 65535. При D0=1 константа задается в двоичнодесятичном коде в диапазоне 0 – 9999.
D7
D6
D5
D4
D3
D2
D1
D0
Счет
0 – двоичный
1 - дв. - десятичный
Канал 0
Канал 1
Канал 2
Команда
“чтение
состояния”
0
0
1
0
1
0
1
1
Команда
“защелка”
Загрузка
старшего байта
Загрузка
младшего байта
Загрузка
младшего, затем
старшего байта
0
0
0
1
1
0
1
1
0
0
x
x
1
1
0
0
1
1
0
0
0
1
0
1
0
1
Режим 0
Режим 1
Режим 2
Режим 3
Режим 4
Режим 5
Рис. 4.3. Формат управляющего слова ПТ
После загрузки управляющего слова необходимо загрузить в каналы константу пересчета. Константа пересчета загружается в ПТ также
по командам OUT PORT, AL, но с адресом, формирующим на входах
A1, A0 код соответствующего канала ( 00, 01, 10 ).
Команда «Защелка». Формат команды показан на рис. 4.4. Команда
«Защелка» позволяет прочитать содержимое счетчика CE в любой момент времени без остановки счета. В формате команды нужно указать в
битах D7, D6 (SC1, SC0) – номер канала, в котором нужно прочитать
состояние счетчика CE, а биты D5, D4 должны быть равны 0,0 (код команды «Защелка»). Значение остальных битов не существенно. Команда
«Защелка» загружается по команде OUT PORT, AL с адресом, формирующем на входах A1, A0 код 1 1.
D7
D6
0
0
D3
D2
D1
D0
Не используются
0
0
1
1
0
1
0
1
Код команды ”Защелка”
Канал 0
Канал 1
Канал 2
Запрещен
Рис. 4.4. Формат команды ”Защелка”
При приеме команды «Защелка» в соответствующем канале
ПТ состояние счетчика CE загружается в регистр OL. После загрузки команды «Защелка» содержимое регистра CL можно прочитать по команде IN AL, PORT с адресом выбранного канала.
Команда “Чтение состояния канала” позволяет в любой момент
времени прочитать слово состояния канала, т.е. содержимое регистра RS, а также выполнить защелку одного или нескольких каналов. Формат команды показан на рис. 4.5. Для организации чтения
состояния канала биты D7, D6 команды должны быть равными 1,1, а
бит D4=0.
1
1
D5
D4
D3
D2
Код команды
“Чтение
состояния”
D1
0
1 – канал 0
1 – канал 1
1 – канал 2
0 – читать состояние
каналов, указанных в D3-D1
0 – защелкнуть каналы,
указанные в D3-D1
Рис. 4.5. Формат команды ”Чтение состояния”
Если одновременно требуется защелкнуть каналы бит D5 также
устанавливается в 0.
D7
D6
D5
D4
D3
D2
D1
D0
Счет
0 – двоичный
1 – дв. десятичный
Код режима
работы
Код порядка загрузки
констант
0 – регистр CR свободен
1 – регистр CR занят
Состояние выхода OUT
Рис. 4.6. Формат слова состояния канала
Биты D3, D2, D1 указывают на выбираемые каналы (1 в соответствующем бите). Бит D0=0.
После подачи команды “Чтение состояния канала” ЦП может прочитать содержимое регистра RS того канала, который указан в команде.
Формат слова состояния показан на рис. 4.6.
Как видно, в процессе работы канала изменяются только два старших бита слова состояния D7 и D6. Остальные разряды соответствуют
разрядам ранее загруженного управляющего слова, что позволяет контролировать правильность его загрузки.
Бит D7 слова состояния несет информацию о состоянии выхода
OUT канала в момент выполнения команды «Чтение состояния канала». Бит D6 показывает, передавалась в CE или нет последняя загружаемая константа в CR (0-передавалась, 1-не передавалась).
Чтение содержимого регистра RS производится по команде IN AL,
PORT с адресом выбранного канала.
Как отмечалось ниже, каналы БИС ПТ независимо друг от друга
могут быть запрограммированы на работу в одном из шести режимов.

Режим 0 (прерывание по концу счета). Сигнал GATE=1 разрешает
счет, а GATE=0 запрещает счет, причем GATE не влияет на выход OUT.
Содержимое CR передается в CE по первому импульсу CLK после того,
как ЦП осуществил запись в CR, независимо от сигнала входа GATE.
Счет в регистре CR начинается со второго тактового импульса CLK. На
выходе OUT сразу после загрузки управляющего слова устанавливается
низкий уровень сигнала, который сохраняется до достижении счетчиком
нуля. Таким образом, сигнал OUT=0 удерживается на время N+1 тактовых импульсов, где N-загруженная константа.
 Режим 1 (программируемый ждущий мультивибратор). При загрузке
управляющего слова выход OUT устанавливается в 1. После загрузки
константы пересчета N в регистр CR переход из 0 в 1 сигнала на входе
GATE вызывает загрузку регистра CR. На выходе OUT происходит переход из 1 в 0 и запускается счет CE. Когда счетчик достигнет 0, на выходе
OUT формируется высокий уровень сигнала. Таким образом, результатом
работы канала в режиме 1 является формирование отрицательного импульса на выходе OUT длительностью равной N периодов синхронизации. Режим 1 является режимом с перезапуском. По каждому фронту
сигнала GATE регистр CE перезагружается содержимым CR.
 Режим 2 (импульсный генератор частоты). После загрузки
управ
ляющего слова на выходе OUT устанавливается единичный сигнал. При
разрешении счета (GATE=1) счетчик CE производит вычитание 1 по импульсу CLK. Когда счетчик достигнет 0, на выходе OUT возникнет переход из 1 в 0. Низкий уровень устанавливается на время одного периода
CLK. Режим 2 является режимом с автозагрузкой, т.е. после цикла счета
регистр CE автоматически перезагружается содержимым CR и счет повторяется. При GATE=0 счет запрещается. Переход из 0 в 1 на выходе
GATE вызывает продолжение счета. Данный режим позволяет реализовать генератор тактовых импульсов.

Режим 3 (генератор импульсов со скважностью два). Режим 3
аналогичен режиму 2, за тем исключением, что на выходе OUT формируется низкий уровень при достижении половины начального счета, т.е.
при достижении счетчиком значения N/2 для четных значений N или (N1)/2 для нечетных значений N. Низкий уровень сохраняется до достижения счетчиком 0. Сигнал на выходе OUT переходит из 1 в 0, регистр CE
перезагружается и работа канала продолжается.

Режим 4 (программно запускаемый одновибратор). Режим 4
аналогичен режиму 0 за тем исключением, что на выходе OUT после загрузки управляющего слова устанавливается высокий потенциал, который действует в процессе счета, а при достижении счетчиком 0 появляет-
ся отрицательный импульс с длительностью равной одному периоду тактового импульса CLK. Если во время счета сигнал GATE снимается, то
счет приостанавливается, текущее значение счетчика CE сохраняется.
Переход GATE из 0 в 1 вызывает продолжение счета. Это режим однократного формирования импульса.

Режим 5 (аппаратно запускаемый одновибратор). Режим 5
аналогичен режиму 4 по способу формирования сигнала на выходе OUT
и режиму 1 по действию сигнала GATE. После загрузки регистра CR переход из 0 в 1 на выходе GATE вызывает передачу содержимого регистра
CR в счетчик CE следующим импульсом CLK. На выходе OUT в процессе счета действует высокий уровень сигнала, а при достижении счетчиком 0 формируется отрицательный импульс с длительностью равной одному периоду тактового сигнала CLK. Таким образом, запуск канала
таймера в работу в этом режиме осуществляется аппаратно путем подачи
на вход GATE перепада из 0 в 1.
Рассмотрим пример программирования ПТ для организации работы
канала 1 в режиме 2 (адреса портов ПТ заданы в диапазоне (40-43)H).
mov AL, 74H
out 43H, AL
mov AL, 35H
out 42H, AL
mov AL, 2BH
mov 42H, AL
Первые две команды указывают, что управляющее слово посылается в канал 1, который должен работать в режиме 2; загрузка младшего и
старшего байтов; счет двоичный. Последние четыре команды загружают
константу пересчета равную 2B35H в канал 1.
Контрольные вопросы и задания
1. Структура канала БИС программируемого таймера. Назначение регистров канала. Формат регистра режима.
2. Назначение управляющих сигналов канала CLK, DATE, OUT.
3. Режимы работы каналов таймера.
а) Приведите временные диаграммы сигналов CLK, GATE, OUT при
работе канала в режиме 0.
б) Приведите временные диаграммы сигналов CLK, GATE, OUT при
работе канала в режиме 1.
в) Приведите временные диаграммы сигналов CLK, GATE, OUT при
работе канала в режиме 2.
г) Приведите временные диаграммы сигналов CLK, GATE, OUT при
работе канала в режиме 3.
д) Приведите временные диаграммы сигналов CLK, GATE, OUT при
работе канала в режиме 4.
е) Приведите временные диаграммы сигналов CLK, GATE, OUT при
работе канала в режиме 5.
4. Для программируемого таймера в МПС выделен диапазон адресов
(40-43)H.
а) Напишите команды ввода в канал 1 управляющего слова с параметрами: режим 3, загрузка старшего и младшего байтов, счет двоичный.
б) Напишите команды для чтения содержимого счетчика канала 2.
в) На вход CLK канала 0 поступают импульсы с частотой F=10 Мгц.
Запрограммируйте канал 0 для работы в режиме одновибратора с формированием импульса через 125 мкс после запуска.
СПИСОК ЛИТЕРАТУРЫ
1. Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов. – М.: Радио и связь, 1987.
2. Лю-Ю-Чжен, Гибсон Г. Микропроцессоры семейства 8086/8088.М.: Радио и связь, 1987.
3. Микропроцессорный комплект К1810. Структура, программирование, применение / Под. Ред. Ю.М.Казаринова. – М.: Высш.шк.,
1990.
4. Райхлин В.А., Борисов А.Н. Основы организации микропроцессорных систем. Учебное пособие для вузов. Казань: Изд-во Казан.
гос. техн. ун-та, 1998.
СОДЕРЖАНИЕ
Введение... …………………………………………………………… 3
1. Интерфейсные БИС ………………………………………………. 6
1.1. Параллельный периферийный интерфейс …………………. 6
1.2. Последовательный периферийный интерфейс ……………..18
2. Работа по прерываниям ……………………………………………33
Контроллер прерываний К1810ВН59А …………………………..39
3. Прямой доступ к памяти …………………………………………..53
Контроллер ПДП …………..………………………………………56
4. Программируемый таймер К1810ВИ54 ………………………….70
Список литературы……… …………………………………….……..82
Download