А0
|
А1
|
¬{\displaystyle {\neg}}RD
|
¬{\displaystyle {\neg}}WR
|
¬{\displaystyle {\neg}}CS
|
Операции
|
Операции ввода
|
0
|
0
|
0
|
1
|
0
|
Канал А → Шина данных
|
0
|
1
|
0
|
1
|
0
|
Канал В → Шина данных
|
1
|
0
|
0
|
1
|
0
|
Канал С → Шина данных
|
Операции вывода
|
0
|
0
|
1
|
0
|
0
|
Шина данных → Канал А
|
0
|
1
|
1
|
0
|
0
|
Шина данных → Канал В
|
1
|
0
|
1
|
0
|
0
|
Шина данных → Канал С
|
1
|
1
|
1
|
0
|
0
|
Шина данных → Регистр управления
|
X
|
X
|
X
|
X
|
1
|
Шина данных в высокоомном состоянии
|
1
|
1
|
0
|
1
|
0
|
Недопустимое состояние
|
X
|
X
|
1
|
1
|
0
|
Шина данных в высокоомном состоянии
|
Операционные режимы
Существует два основных операционных режима Intel 8255:
Режим оперирования битами (BSR mode)
Режим ввода/вывода (I/O mode)
Эти два режима выбираются на основе значения, присутствующего на выводе D7 регистра управляющего слова. При D7=1 контроллер работает в первом режиме, а при D7=0 – во втором.
Режим установки/сброса битов (BSR mode)
Данный режим применим только к каналу С. Каждая линия канала C (PC0-PC7) управляется путём соответствующего бита регистра управляющего слова. Режим BSR и режим ввода/вывода независимы друг от друга, поэтому выбор режима BSR не влияет на работу других каналов в режиме ввода /вывода.
Выбор вывода канала C определяется следующим образом:
B3
|
B2
|
B1
|
Выбранный вывод канала С
|
0
|
0
|
0
|
PC0
|
0
|
0
|
1
|
PC1
|
0
|
1
|
0
|
PC2
|
0
|
1
|
1
|
PC3
|
1
|
0
|
0
|
PC4
|
1
|
0
|
1
|
PC5
|
1
|
1
|
0
|
PC6
|
1
|
1
|
1
|
PC7
|
Например, если необходимо установить PC3, то в управляющем слове:
Так как режим BSR, то D7 = '0'.
Так как D4, D5, D6 не используются, считаем их равными '0'.
PC5 должен быть выбран, следовательно, D3 = '0', D2 = '1', D1 = '1'.
PC5 должен быть установлен, следовательно, D0 = '1'.
Таким образом, в регистр управляющего слова буде загружены следующие значения: "00001011"
Режим ввода/вывода (I/O mode)
Этот режим выбирается, когда бит регистра управляющего слова D7=1. Есть три режима ввода/вывода:
Режим 0 – простой ввод/вывод
Режим 1 – тактируемый ввод/вывод
Режим 2 – двунаправленный тактируемый ввод/вывод
Формат управляющего слова
Разряды D0, D1, D3, D4 предназначены для младшей тетрады С, канала В, а старшей тетрады канала С и канала А соответственно. Когда на эти выводы подаётся единичный сигнал, то соответствующий ему канал работает как входной. Если на эти входы подать 0, то соответствующий канал работает как выходной.
D2 используется для выбора режима работы группы В (канал В и младшая тетрада С). При D2=0, выбирается режим 0, в противном случае – режим 1.
Разряды D5 и D6 используются для выбора режима работы группы А (канал А и старшая тетрада канала C).
Например, если канал B и старшая тетрада канала C должны быть использованы в качестве входных каналов, а младшая тетрада канала C и канал А в качестве выходных каналов (всё в режиме 0):
Выберем режим ввода/вывода подачей единицы на разряд D7
Разряды D2=D5=D6=0
Канал B и старшая тетрада канала С должны работать в качестве входных каналов, следовательно D1=D3=1.
Канал А и младшая тетрада канала C должны работать в качестве выходных каналов, следовательно D4=D0=0.
Значит для нашей операции в регистр управляющего слова должно быть записано "10001010".
Режим 0 (простой ввод/вывод)
В этом режиме каналы могут быть использованы для операций простой ввода/вывода без сигналов подтверждения связи. Каналы A и B обеспечивают простую операцию ввода/вывода. Обе тетрады канала C могут быть либо использованы вместе в качестве дополнительного 8-битного канала, либо в качестве отдельных 4-разрядных каналов. Так как две тетрады канала C независимы, то они могут быть использованы таким образом, что одна половина используется в качестве входного канала, а другая половина используется в качестве выходного канала. Таким образом, основные особенности функционирования микросхемы в режиме 0 следующие:
Выходные каналы защёлкиваются;
Входные каналы буферизуются, не защёлкиваясь.
Каналы не имеют синхронизации между интерфейсом и периферийным оборудованием, а также возможности прерывания.
С 4 каналами возможны 16 различных комбинаций ввода/вывода.
Режим 1 (тактируемый ввод/вывод)
Управляющие сигналы для различных режимов работы.
Когда мы хотим использовать канал A или B для однонаправленного обмена данными по выбранному каналу с периферийным устройством, мы инициализируем этот канал в режиме 1 (каналы A и B могут работать в различных режимах, т.е. для например, канал А может работать в режиме 0, а В в режиме 1). Для канала B в этом режиме (независимо от того, выступает он в качестве входного канала или выходного) контакты PC0, P C1 и PC2 функционируют для синхронизации интерфейса и периферийного оборудования. Если канал А работает в режиме 1 входного канала, тогда PC3, PC4 и PC5 функционируют для синхронизации интерфейса и периферийного оборудования. Выводы PC6 и PC7 доступны для использования в качестве входных/выходных линий. Основные особенности работы в данном режиме:
Два канала, т.е. А и В могут быть использованы в качестве 8-разрядных каналов ввода/ вывода.
Каждый канал использует три линии канала С как сигнал квитирования и оставшиеся два сигнала могут быть использованы в качестве портов ввода/вывода.
Поддерживается логика прерывания.
Входные и выходные данные фиксируются.
Cигналы для управления операцией ввода
¬{\displaystyle {\neg}}STB (STROBE) – по низкому уровню на этом входе входные данные записываются в буферную память.
¬{\displaystyle {\neg}}IBF (INPUT BUFFER FULL) – высокий уровень на этом выходе показывает, что данные загружены в буферную память. Задний фронт сигнала ¬{\displaystyle {\neg}}STB устанавливает этот выход в уровень лог. 1, передний фронт сигнала на входе ¬{\displaystyle {\neg}}RD сбрасывает его в лог. 0.
Do'stlaringiz bilan baham: |