ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.12.2021

Просмотров: 6730

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

2 1 8 Глава 3. Цифровой логический уровень

Рассмотрим рис. 3.50. В кадрах 0 и 2 не происходит никаких действий, поэтому

в них содержится только пакет SOF (Start of Frame — начало кадра). Этот пакет
всегда посылается всем устройствам. Кадр 1 — упорядоченный опрос (например,
сканеру посылается запрос на передачу битов сканированного им изображения).

Кадр 3 состоит из отсылки данных какому-нибудь устройству (например, принтеру).

Шина USB поддерживает 4 типа кадров: кадры управления, изохронные кад-

ры, кадры передачи больших массивов данных и кадры прерывания. Кадры управ-

ления используются для конфигурации устройств, передачи команд устройствам

и запросов об их состоянии. Изохронные кадры предназначены для устройств ре-
ального времени (микрофонов, акустических систем и телефонов), которые долж-
ны принимать и посылать данные через равные временные интервалы. Задержки
хорошо прогнозируются, но в случае ошибки такие устройства не производят по-
вторной передачи. Кадры следующего типа используются для передач большого
объема от устройств и к устройствам без требований реального времени (напри-
мер, принтеров). Наконец, кадры последнего типа нужны для того, чтобы осуще-
ствлять прерывания, поскольку шина USB не поддерживает прерывания. Напри-
мер, вместо того чтобы вызывать прерывание всякий раз, когда происходит нажатие
клавиши, операционная система может вызывать прерывания каждые 50 млс и

«собирать» все задержанные нажатия клавиш.

Кадр состоит из одного или нескольких пакетов. Пакеты могут посылаться в

обоих направлениях. Существует четыре типа пакетов: маркеры, пакеты данных,
пакеты квитирования и специальные пакеты. Маркеры передаются от концентра-
тора к устройству и предназначены для управления системой. Пакеты SOF, IN и

OUT на рис. 3.50 — маркеры. Пакет SOF (Start of Frame — начало кадра) является

первым в любом кадре и показывает начало кадра. Если никаких действий выпол-

нять не нужно, пакет SOF единственный в кадре. Пакет IN — это запрос. Этот пакет
требует, чтобы устройство выдало определенные данные. Поля в пакете IN содер-
жат информацию, какой именно канал запрашивается, и таким образом устрой-
ство определяет, какие именно данные выдавать (если оно обращается с несколь-

кими потоками данных). Пакет OUT объявляет, что далее последует передача

данных для устройства. Последний тип маркера, SETUP (он не показан на рисун-

ке), используется для конфигурации.

Кроме маркеров существует еще три типа пакетов. Это пакеты DATA (использу-

ются для передачи 64 байтов информации в обоих направлениях), пакеты квити-
рования и специальные пакеты. Формат пакета данных показан на рис. 3.50. Он
состоит из 8-битного поля синхронизации, 8-битного указателя типа пакета (PID),

полезной нагрузки и 16-битного

 CRC (Cyclic Redunduncy Code — циклический

избыточный код)

 для обнаружения ошибок. Есть три типа пакетов квитирования:

АСК (предыдущий пакет данных был принят правильно), NAC (найдена ошибка

CRC) и STALL (подождите, пожалуйста, я сейчас занят).

А теперь давайте снова посмотрим на рис. 3.50. Центральный концентратор дол-

жен отсылать новый кадр каждую миллисекунду, даже если не происходит ника-
ких действий. Кадры 0 и 2 содержат только один пакет SOF, что говорит о том, что
ничего не происходит. Кадр 1 представляет собой опрос, поэтому он начинается
с пакетов SOF и IN, которые передаются от компьютера к устройству ввода-выво-
да, а затем следует пакет DATA от устройства к компьютеру. Пакет АСК сообщает


background image

Средства сопряжения 219

устройству, что данные были получены без ошибок. В случае ошибки устройство
получает пакет NACK, после чего данные передаются заново (отметим, что изо-
хронные данные повторно не передаются) Кадр 3 похож по структуре на кадр 1,

но в нем поток данных направлен от компьютера к устройству.

Средства сопряжения

Обычная компьютерная система малого или среднего размера состоит из микро-
схемы процессора, микросхем памяти и нескольких контроллеров ввода-вывода.

Все эти микросхемы соединены шиной Мы уже рассмотрели память, централь-

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

Микросхемы ввода-вывода

В настоящее время существует множество различных микросхем ввода-вывода.
Новые микросхемы появляются постоянно Из наиболее распространенных мож-
но назвать UART, USART, контроллеры CRT (CRT — электронно-лучевая труб-
ка), дисковые контроллеры и

 PIO. UART (Universal Asynchronous Receiver

Transmitter

 —

 универсальный асинхронный приемопередатчик)

 — это микросхе-

ма, которая может считывать байт из шины данных и передавать этот байт по би-
там на линию последовательной передачи к терминалу или получать данные от
терминала. Скорость работы микросхем UART различна: от 50 до 19 200 бит/с;
ширина знака от 5 до 8 битов; 1,1,5 или 2 стоповых бита. Микросхема может обес-
печивать проверку на четность или на нечетность, контроль по четности может
также отсутствовать, все это находится под управлением программ Микросхема

USART (Universal Synchronous Asynchronous Receiver Transmitter— универ-
сальный синхронно-асинхронный приемопередатчик)

 может осуществлять син-

хронную передачу, используя ряд протоколов. Она также выполняет все функции

UART. Поскольку микросхемы UART мы уже рассматривали в главе 2, сейчас в
качестве примера микросхемы ввода-вывода мы возьмем параллельный интерфейс.

Микросхемы PIO

Типичным примером микросхемы

 PIO (Parallel Input/Output — параллельный

ввод-вывод)

 является Intel 8255A (рис. 3.51). Она содержит 24 линии ввода-вы-

вода и может сопрягаться с любыми устройствами, совместимыми с TTL-схемами

(например, клавиатурами, переключателями, индикаторами, принтерами) Про-
грамма центрального процессора может записать 0 или 1 на любую линию или
считать входное состояние любой линии, обеспечивая высокую гибкость Микро-

схема PIO часто заменяет целую плату с микросхемами МИС и СИС (особенно во
встроенных системах).

Центральный процессор может конфигурировать микросхему 8255А различ-

ными способами, загружая регистры состояния микросхемы, и мы остановимся на


background image

220

Глава 3. Цифровой логический уровень

некоторых наиболее простых режимах работы. Можно представить данную мик-
росхему в виде трех 8-битных портов А, В и С. С каждым портом связан 8-битный
регистр. Чтобы установить линии на порт, центральный процессор записывает
8-битное число в соответствующий регистр, и это 8-битное число появляется на

выходных линиях и остается там до тех пор, пока регистр не будет перезаписан.
Чтобы использовать порт для входа, центральный процессор просто считывает со-

ответствующий регистр.

CS

А0-А1

WR

RD

RESET

D0-D7

2

8

 i

 *-

Микросхема

параллельного

ввода-вывода

8255А

8

8

Порт А

Порт В

*- Порт С

Рис.

  3 . 5 1 . Микросхема 8255А

Другие режимы работы предусматривают квитирование связи с внешними

устройствами. Например, чтобы передать данные устройству, микросхема 8255А

может представить данные на порт вывода и подождать, пока устройство не вы-

даст сигнал о том, что данные получены и можно посылать еще. В данную микро-

схему включены необходимые логические схемы для фиксирования таких импуль-
сов и передачи их центральному процессору.

Из рис. 3.51 мы видим, что помимо 24 выводов для трех портов микросхема

8255А содержит восемь линий, непосредственно связанных с шиной данных,
линию выбора элемента памяти, линии чтения и записи, две адресные линии и
линию для переустановки микросхемы. Две адресные линии выбирают один из

четырех внутренних регистров, три из которых соответствуют портам А, В и С.
Четвертый регистр — регистр состояния. Он определяет, какие порты использу-

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

Декодирование адреса

До настоящего момента мы не останавливались подробно на том, как происхо-
дит выбор микросхемы памяти или устройства ввода-вывода. Пришло время это

узнать. Рассмотрим простой 16-битный встроенный компьютер, состоящий из цен-
трального процессора, стираемого программируемого ПЗУ объемом 2Кх8 байт для

хранения программы, ОЗУ объемом 2Кх8 байт для хранения данных и микросхе-
мы PIO. Такая небольшая система может встраиваться в дешевую игрушку или

простой прибор. Вместо стираемого программируемого ПЗУ может использоваться

обычное ПЗУ.

Микросхема PIO может быть выбрана одним из двух способов: как устрой-

ство ввода-вывода или как часть памяти. Если микросхема нам нужна в качестве


background image

Средства сопряжения

2 2 1

устройства ввода-вывода, мы должны выбрать ее, используя внешнюю линию шины,

которая показывает, что мы обращаемся к устройству ввода-вывода, а не к памяти.

Если мы применяем другой подход, так называемый

 ввод-вывод с распределени-

ем памяти,

 мы должны присвоить микросхеме 4 байта памяти для трех портов и

регистра управления. Наш выбор в какой-то степени произволен. Мы выбираем

ввод-вывод с распределением памяти, поскольку этот метод наглядно иллюстри-

рует некоторые интересные проблемы сопряжения.

Стираемому программируемому ПЗУ требуется 2 К адресного пространства,

ОЗУ требуется также 2 К адресного пространства, а микросхеме РЮ нужно 4 бай-

та. Поскольку в нашем примере адресное пространство составляет 64 К, мы долж-

ны выбрать, где поместить данные три устройства. Один из возможных вариантов
показан на рис. 3.52. Стираемое программируемое ПЗУ занимает адреса до 2 К,

ОЗУ занимает адреса от 32 К до 34 К, а РЮ — 4 старших байта адресного про-

странства, от 65532 до 65535. С точки зрения программиста не важно, какие имен-
но адреса использовать, однако для сопряжения это имеет большое значение. Если
бы мы обращались к РЮ через пространство ввода-вывода, нам не потребова-
лись бы адреса памяти (зато понадобились бы четыре адреса пространства ввода-

вывода).

Стираемое

программируемое

 ПЗУ

в адресе О

ОЗУ в адресе 8000Н

\

РЮ в адресе FFFCH

\

О 4К 8К 12К 16К 20К 24К 28К 32К 36К 40К 44К 48К 52К 56К 60К 64К

Рис. 3.52.

 Расположение стираемого ПЗУ, ОЗУ и РЮ на адресном пространстве в 64 К

При таком распределении адресов (рис. 3.52) стираемое ПЗУ нужно выбирать

с помощью 16-битного адреса памяти ОООООххххххххххх (в двоичной системе).
Другими словами, любой адрес, у которого пять старших битов равны 0, попадает

в область памяти до 2 К и, следовательно, в стираемое ПЗУ. Таким образом, сигнал
выбора стираемого ПЗУ можно связать с 5-разрядным компаратором, у которого

один из входов всегда будет соединен с 00000.

Чтобы достичь того же результата, лучше было бы использовать пятивходовый

вентиль ИЛИ, у которого пять входов связаны с адресными линиями от А11 до А15.

Выходной сигнал будет равен 0 тогда и только тогда, когда все пять линий равны 0.
В этом случае устанавливается сигнал US. К сожалению, в стандартных сериях
МИС не существует пятивходовых вентилей ИЛИ. Однако мы можем использо-
вать восьмивходовый вентиль НЕ-ИЛИ. Заземлив три входа и инвертировав вы-

ход, мы можем получить нужный нам сигнал (рис. 3.53,

 а).

 Схемы МИС стоят очень

дешево, поэтому неэффективное использование одной из них вполне допустимо.

По соглашению неиспользуемые входы на схемах не показываются.


background image

2 2 2 Глава 3. Цифровой логический уровень

Ао

Адресная шина

CS

Стираемое

программирование

ПЗУ 2К х8

CS

ОЗУ 2Кх8

Ао

Адресная шина

V

cs

Стираемое

программирование

ПЗУ 2К х8

CS

ОЗУ 2Кх8

Рис. 3.53. Полное декодирование адреса (а); частичное декодирование адреса (б)

Тот же принцип можно применить и для ОЗУ. Однако ОЗУ должно отвечать

на бинарные адреса типа ЮОООххххххххххх, поэтому необходим дополнительный

инвертор (он показан на схеме). Декодирование адреса микросхемы PIO несколь-
ко сложнее, поскольку данная микросхема выбирается с помощью 4 адресов типа

11111111111111хх. Один из возможных вариантов схемы, которая устанавливает