Адресация микросхемы 8255А
Так как биты порта С иногда используются как биты управления, 8255А спроектирован так, что в них можно выводить по отдельности, пользуясь командой установки/сброса. Когда 8255А принимает байт, направляемый в его регистр управления, он анализирует бит 7 данных. Если этот бит содержит 1, данные передаются в регистр управления; если же бит 7=0, данные считаются командой установки/сброса и применяются для установки или сброса определяемого командой бита порта С. Биты 3-1 дают номер изменяемого бита, а бит 0 показывает сброс или установку. Остальные биты не используются.
Биты трех портов выведены на контакты, которые подключаются к устройству ввода-вывода. Они разделены на группы А и В, причем группу А образуют биты порта А и 4 старших бита порта С, а группу В - порт В и 4 младших бита порта С. Группа А может работать в трех режимах (0, 1, 2), а группа В - в двух режимах (0 и 1). Режимы определяются содержимым регистра управления, формат которого приведен на рис. 9.22.
Рис. 9.21. Схема интерфейса 8255А
Режим 0.В этом режиме группа разделяется на два набора. В группе А этими наборами являются порт А и старшие 4 бита порта С, а в группе В - порт В и младшие биты порта С. Каждый набор можно использовать для ввода или вывода, но не для двунаправленных передач. Биты D4, D3, D1 и DO в регистре управления определяют, какие наборы предназначены для ввода, а какие - для вывода. Эти биты ассоциируются с наборами следующим образом:
Рис. 9 22. Формат регистра управления микросхемы 8255А
D4 порт A
D3 старшая половина порта С,
D1 - порт В,
DO - младшая половина порта С
Если бит содержит 0, соответствующий набор применяется для вывода, а в противном случае для ввода
Режим 1. Когда в этом режиме работает группа A, порт А используется для ввода или вывода в соответствии с битом D4 (D4 = 1 указывает ввод), а старшая половина порта С применяется для сигналов квитирования и управления.
При вводе старшим битам пота С назначены следующие названия и определения:
РС4 STBA - сигнал 0 на этом контакте заставляет РА7-РАО "стробироваться" в порт А.
РС5 IВFA — показывает, что входной буфер заполнен. Устанавливается в 1, когда порт А содержит данные, которые еще не введены в процессор. Когда действует сигнал 0, устройство может вводить в интерфейс новый байт.
РС6, РС7 - применяются для вывода сигналов управления в устройство или ввода состояния из устройства. Если бит D3 в регистре управления содержит 0, эти линии выходные; в противном случае - входные.
При выводе:
РС4, РС5 - выполняют те же функции, что и РС6, РС7 при вводе.
РС7 ОВFA - показывает, что выходной буфер заполнен. Формирует сигнал 0 в устройство, когда порт А выводит в устройство новые данные.
РС6 АСКA - устройство подает 0 на этот вход, когда оно восприняло данные из порта А.
В режиме 1 с группой А ассоциируется РСЗ, обозначаемый INTRA. Этот сигнал применяется как линия запроса прерывания и подключается к одной из линий IR системной шины. При вводе в порт А на этом выходе формируется сигнал 1, когда новые данные помещаются в порт А (т. е. им управляет РС4), и сигнал 0, когда процессор считывает данные. При выводе на выходе INTRA формируется сигнал 1, когда содержимое порта А воспринято устройством, и сигнал 0, когда процессор загружает новые данные. Если группа В находится в режиме 1, порт В является входным или выходным в зависимости от состояния бита D1 регистра управления (D1 = 1 определяет порт В входным). При вводе РС2 и РС1 обозначаются STBB и IBFB; они выполняют для группы В те же функции, что и сигналы STBA и IВFA для группы А. Аналогично при выводе РС1 и РС2 обозначаются OBFB и АСКB. Выход РС0 превращается в INTRB и используется аналогично INTRA. Разрешением прерываний для группы А управляют РС4 в режиме ввода и РС6 в режиме вывода. Например, в режиме ввода прерывание для группы А разрешается установкой РС4 и запрещается сбросом РС4 с помощью команды установки/сброса. Аналогично разрешением прерываний для группы В управляет установка/сброс РС2.
Режим 2. В данном режиме может работать только группа А, хотя в ней для генерирования запросов прерываний используется РСЗ. В режиме 2 порт А становится двунаправленным, а 4 старших бита порта С определяются следующим образом:
РС4 STBA сигнал 0 на этой линии заставляет данные с РА7-РАО стробироваться в порт А.
РС5 IВFA - формируется сигнал 1, когда в порт А загружаются новые данные 1 с линий РА7-РАО, и сигнал 0, когда процессор считывает данные.
РС6 АСКA - показывает, что устройство готово воспринимать данные с линий РА7-РАО.
PC7 OBFA – формирует сигнал 0, когда процессор загружает в порт A новые данные, а сигнал 0, когда данные принягы устройством.
Когда гpyппа А находится в режиме 2, группа В может работать в peжиме 0 или 1. Если группа В находится в режима 0 только РС2 - РC0 можно использовать для ввода или вывода, так как PC3 служит запросом прерываний для группы A. Обычно если группа A работает в режиме 2, РС2 – РC0 подгключаются к контактам управления и состояния устройства, которое подсоединено к линиям порта A. Для этих же целей может применяться порт B.
Во всех тех режимах порт С отражает сигналы на линиях РС7-РСО и его можно считать командой IN.
9 2.2 Пример использования
На рис. 9.23 показано возможное подключение микросхемы 8255А к аналого-цифровой и цифро-аналоговой подсистемам. Так во время аналого-цифрового преобразования аналоговое напряжение должно оставаться неизменным, необходима схема выборки и сохранения. Группа А работает на ввод в режиме 1. Преобразование инициируется сигналом на выходе РС7, это стимулирует преобразователь выдать сигнал занятости. Линия занятости подключена на .вход управления выборкой и сохранением (S/H) и на вход одновибратора, запускаемого спадающим фронтом. Пока сигнал занятости имеет высокий уровень, схема выборки и сохранения поддерживает постоянный выход, а когда в конце преобразования сигнал занятости снимается, запускается одновибратор. Его выход инвертируется и подается на вход SТВA (РС4) микросхемы 8255А. Он заставляет цифровой отсчет стробироваться в порт А. В цифро-аналоговой части подсистемы порт В работает как выходной в режиме 0; он подключен непосредственно на двоичный вход цифро-аналогового преобразователя. Квитирование здесь не применяется.
Предположим, что порты А, В и С и регистр управления имеют адреса FFF8, FFF9 FFFA и FFFB. Тогда команды
MOV AL, 10110000В
OUT DX, AL
заставляют порт А работать в режиме 1, порт В - в режиме 0, а РС7 быть выходом. Следующий фрагмент формирует импульс на входе запуска аналого-цифрового преобразователя.
MOV DX, OFFFBH
MOV AL, 00001111B
OUT DX, AL
MOV AL, 00001110B
OUT DX, AL
Здесь первая команда загружает в регистр DX адрес, ассоциируемый с командой установки/сброса, который coвпадает с адресом регистра управления Следующие две команды формируют сигнал PC7 = 1, а последние две - сигнал РС7 = 0. Фрагмент программного ввода преобразованных данных имеет вид
MOV DX.OFFFAH
AGAIN; IN AL,DX
TEST AL.,001OOOOOB
JZ AGAIN
MOV DX. OFFF8H
IN AL, DX
Рис. 9.23. Интерфейс аналого-цифровой и цифро-аналоговой подсистем с применением микросхемы 8255А
Для вывода байта из регистра AL в цифро-аналоговый преобразователь требуются только две команды.
MOV DX, OFFF9H
OUT DX, AL
Как только байт появляется в порту В, его биты сразу подаются на входы цифро-аналогового преобразователя, который в свою очередь сразу же преобразует их в аналоговый сигнал.
В данном примере предполагается, что синхронизация преобразований осуществляется программой и что коэффициенты усиления входного и выходного аналоговых усилителей регулируются. Чтобы получить от программы равномерное распределение входных и выходных отсчетов, необходимо учитывать времена выполнения команд.
Между отсчетами выполняются одни и те же команды и общее время их выполнения точно известно Прерывания необходимо запретить, так как они случайным образом вводят выполнение разного числа команд. Интервал между отсчетами можно скорректировать с помощью цикла "ничего-не-делания", например:
MOV CX, N
IDLE NOP
LOOP IDLE
между вводами или выводами. Схема ввода с программной синхронизацией отсчетов аналого-цифрового преобразования представлена на рис. 9.24
Часто в аналого-цифровой и цифро-аналоговой подсистеме применяются программируемые генераторы синхронизации и усилители, что позволяет более точно управлять расположением отсчетов и цифро-аналоговых выходов, а также динамически изменять усиление. Кроме того, в такую подсистему часто вводят контроллер ПДП для увеличения скорости ввода и вывода.
На рис 9.23 показаны только 8-битные преобразователи, имеющие разрешающую способность 1 из 256. Если диапазон входного или выходного напряжений равен -10 . . . +10 В, разрешающая способность составляет
20/256= 0,078В.
Для улучшения разрешающей способности применяются 10-, 12- или 14-битные преобразователи. В этом случае приходится пользоваться комбинацией портов А и С или В и С или параллельно включать две микросхемы 8255А.