ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6730
Скачиваний: 8
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 от устройства к компьютеру. Пакет АСК сообщает
Средства сопряжения 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А различ-
ными способами, загружая регистры состояния микросхемы, и мы остановимся на
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 может быть выбрана одним из двух способов: как устрой-
ство ввода-вывода или как часть памяти. Если микросхема нам нужна в качестве
Средства сопряжения
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,
а).
Схемы МИС стоят очень
дешево, поэтому неэффективное использование одной из них вполне допустимо.
По соглашению неиспользуемые входы на схемах не показываются.
2 2 2 Глава 3. Цифровой логический уровень
Ао
Адресная шина
CS
Стираемое
программирование
ПЗУ 2К х8
CS
ОЗУ 2Кх8
Ао
Адресная шина
V
cs
Стираемое
программирование
ПЗУ 2К х8
CS
ОЗУ 2Кх8
Рис. 3.53. Полное декодирование адреса (а); частичное декодирование адреса (б)
Тот же принцип можно применить и для ОЗУ. Однако ОЗУ должно отвечать
на бинарные адреса типа ЮОООххххххххххх, поэтому необходим дополнительный
инвертор (он показан на схеме). Декодирование адреса микросхемы PIO несколь-
ко сложнее, поскольку данная микросхема выбирается с помощью 4 адресов типа
11111111111111хх. Один из возможных вариантов схемы, которая устанавливает