Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Разное / АВС. Обзор структуры ввода-вывода

.pdf
Скачиваний:
12
Добавлен:
23.11.2020
Размер:
167.32 Кб
Скачать

Лекция 8.

Обзор структуры ввода-вывода.

Любая микропроцессорная система предполагает наличие трех основных блоков: процессорного, блока памяти и блока устройств ввода/вывода, к которым относятся интерфейсные схемы различных уровней сложности. Известно, что связка процессор - память по скорости обмена сильно уступает связке процессор - устройства ввода/вывода, поэтому системная шина разделяется на две части, соединенные мостом.

Мы знакомы с основными путями последовательной передачи информации между процессорной системой и периферийными устройствами: шины USB, SPI, I2C, интерфейс UART. Основным способом передачи данных служит пакетная передача. Данные, передаваемые пакетами, формируются через области памяти устройств, структурируемой как FIFO.

В структуре памяти устройств также находятся простые параллельные порты, служащие для внутрисистемных соединений. Такие порты для процессоров ARM7 имеют всего 4 регистра: регистр данных, регистр направления, регистр разрешения прерываний и регистр краевого захвата.

Для микропроцессоров Intel, начиная с Int80, далее Int86/88 широко использовался интерфейс 8255A. Он используется и в настоящее время, но в качестве порта для внутренних соединений. Схема этого параллельного интерфейса включает три 8-разрядных порта, разделяемых на две группы. При этом каналы порта C могут работать как в группе, так и автономно, если это необходимо

Адресация регистров интерфейса производится по двум младшим адресным линиям. Режимы работы, в зависимости от адресации, состояний линий записи и чтения, а также входа выбора кристалла показаны в таблице.

A1

A0

RD

WR

CS

Описание обмена

0

0

0

1

0

Порт A выводит на ШД

0

1

0

1

0

Порт B выводит на ШД

1

0

0

1

0

Порт C выводит на ШД

0

0

1

0

0

С ШД ввод в порт A

0

1

1

0

0

С ШД ввод в порт B

1

0

1

0

0

С ШД ввод в порт C

1

1

1

0

0

C ШД ввод в регистр управления при D7=1,

 

 

 

 

 

при D7=0 по ШД идут уровни установки или

 

 

 

 

 

сброса

Х

Х

Х

Х

1

Линии ШД рассоединены со схемой

1

1

0

1

0

Запрещенная комбинация

Х

Х

1

1

0

Линии ШД рассоединены со схемой

Схема может работать в двух режимах по каналам A и B, 0-м и 1-м. Дополнительно канал A может работать и в дуплексном режиме – 2-м. Формат управляющего слова в регистре состояния показан на рисунке.

Режим 0.

Нетактируемый ввод-вывод.

В этом режиме все каналы могут быть использованы для ввода или для вывода данных. Управляющие биты по каналу C не передаются. Порт C работает как две 4-битовые группы. Направление обмена для каналов задается управляющим словом.

Режим 1.

В данном режиме при вводе с порта A для ввода или вывода в канале C доступны только два бита: PC7 и PC6. Остальные биты поддерживают обмен по каналам A или B.

Для канала A:

PC5 при уровне 1 указывает на заполненность входного буфера. Прием следующего байта будет возможен лишь при PC5=0. (IBFA)

PC4 уровнем 0 передает сигнал синхронизации порта с шиной на ввод данных. (STBA)

PC3 в режиме 1 включен в поддержку канала A. Этот вывод используется как линия запроса на прерывание. Высокий уровень на этом выходе может быть использован для прерывания выполнения основной программы процессора, чтобы обслужить устройство ввода (INTRA). Сигнал INTR устанавливается в лог. 1 по переднему фронту сигнала STB (если установлен сигнал INTE разрешения прерывания) и сбрасывается по заднему фронту сигнала на входе. Аналогично назначение PC2-PC0 для ввода по каналу B:

PC2 - STBB

PC1 - IBFB

PC0 - INTRB

При выводе по каналу A для ввода или вывода по каналу C могут использоваться только PC5 PC4.

PC7 указывает на заполненность выходного буфера (OBFA). PC6 синхронизация приема данных с линии (ACKA).

PC3 – INTRA. Уровень 1 на этом выводе указывает на то, что информация с порта воспринята устройством. При 0 идет загрузка новых данных с процессора.

Для вывода по каналу B:

PC2 - ACKB

PC1 - OBFB

PC0 - INTRB

Режим 2.

В режиме 2 может работать только канал A. Канал становится двунаправленным, бит PC3 так же используется для запросов на прерывание, свободных битов для ввода-вывода в старшей группе C нет.

PC4 – STBA, PC6 - ACKA;

PC5 - IBFA, PC7 - OBFA.

Для расчетов временных интервалов в структуре любой микропроцессорной системы есть несколько таймеров; рассмотрим собственный таймер Cortex A9. Таймер содержит 4 регистра. Начальный адрес обращения к регистрам таймера 0xFFFEC600. Младший адрес принадлежит регистру, в который загружается коэффициент деления. Следующий регистр следит за текущим состоянием счетчика. Третий по счету регистр служит для записи коэффициента предварительного деления частоты и установки контрольных битов. Для запуска таймера в “1” устанавливается бит E, для цикличного счета в “1” устанавливается бит A. Когда счетчик достигает состояния “0”, бит F регистра статуса прерывания устанавливается в “1”. Сбросить этот бит возможно повторной записью в него “1”. Счетчик таймера считает с частотой 200 МГц.