Искусство схемотехники. Том 2 (Изд.4-е)
Шрифт:
Вентиль ИЛИ. Выход вентиля ИЛИ имеет ВЫСОКИЙ уровень, если хотя бы на одном из его входов присутствует ВЫСОКИЙ уровень. Это можно выразить с помощью «таблицы истинности», представленной на рис. 8.2, где показан вентиль ИЛИ на 2 входа. В общем случае число входов не ограничено, однако в стандартном корпусе микросхемы обычно размещаются четыре 2-входовых вентиля, три 3-входовых или два 4-входовых. Например, на выходе 4-входового вентиля ИЛИ ВЫСОКИЙ уровень будет присутствовать в том случае, если он подан на любой из его входов. Для обозначения операции ИЛИ в булевой алгебре используется символ +. Функция «А ИЛИ В» записывается как А + В.
Рис. 8.2.
Вентиль И.
Рис. 8.3.
Инвертор (функция НЕ). Иногда бывает нужно получить дополнение (инверсию) логического сигнала. Эту функцию выполняет инвертор — вентиль, который имеет только один вход (рис. 8.4). Для обозначения операции НЕ в булевой алгебре используется черта над символом или апостроф; «НЕ А» записывается как А или А'. Для удобства вместо " для указания отрицания часто используются символы /, *, —, '; таким образом, НЕ А можно записать любым из следующих способов: А', —А, *А, /А, А*, А/. Мы используем в этой книге запись А'.
Рис. 8.4.
И-НЕ и ИЛИ-НЕ. Вентили могут совмещать инвертирование с выполнением функций И и ИЛИ. Далее будет показано, что такие вентили имеют более широкое распространение, чем просто И и ИЛИ (рис. 8.5).
Рис. 8.5.
Исключающее ИЛИ. Большой интерес представляет логическая функция «Исключающее ИЛИ», хотя она не относится к числу основных (рис. 8.6). На выходе вентиля «Исключающее ИЛИ» ВЫСОКИЙ уровень сформируется в том случае, если он будет подан на один из его входов (но не на оба одновременно). Другими словами, ВЫСОКИЙ уровень действует на выходе тогда, когда входы имеют различное состояние. Этот вентиль может иметь только два входа. Операция «Исключающее ИЛИ» подобна сложению двух бит по модулю 2.
Рис. 8.6.
Упражнение 8.5. Покажите, как вентиль «Исключающее ИЛИ» может быть использован в качестве «модифицируемого инвертора», который в зависимости от уровня на управляющем входе, может либо инвентировать входной сигнал, либо передавать его на выход без инверсии (буферировать).
Упражнение 8.6. Проверьте, действительно ли схемы, изображенные на рис. 8.7, преобразуют двоичный код в код Грея и наоборот.
Рис. 8.7. Параллельные преобразователи двоичного, кода в код Грея (а) и кода Грея в двоичный (б).
8.05. Схемы вентилей на дискретных элементах
Прежде чем перейти к вопросу использования вентилей, рассмотрим, как они строятся с помощью дискретных элементов. На рис. 8.8 показан диодный вентиль И.
Рис. 8.8.
Если на каком-либо его входе действует НИЗКИЙ уровень, то он будет действовать и на выходе, а ВЫСОКИЙ уровень на выходе возникает только в том случае, если он будет присутствовать на обоих входах. Эта схема обладает рядом недостатков: а) НИЗКИЙ уровень на выходе выше НИЗКОГО уровня на входе на величину падения на диоде. Естественно, слишком много диодов ставить нельзя, б) отсутствует «разветвление по выходу», т. е. возможность питать одним выходом несколько входов, так как выходная нагрузка действует на входной сигнал, в) низкое быстродействие, обусловленное резисторной нагрузкой. Вообще логические схемы, построенные на дискретных элементах, не обладают теми свойствами, которые присущи ИМС. Преимущества логических схем на ИМС связаны отчасти с применением специальной технологии (например, ионная имплантация), которая позволяет получать хорошие характеристики.
Простейшая схема транзисторного вентиля ИЛИ-НЕ показана на рис. 8.9.
Рис. 8.9.
Эта схема использовалась в семействе логических элементов РТЛ (резисторно-транзисторная логика), которые из-за низкой стоимости были популярны в 1960-х годах, но в настоящее время они совершенно не употребляются. ВЫСОКИЙ уровень, действующий по любому входу (или по обоим одновременно), откроет хотя бы один транзистор и на выходе возникнет НИЗКИЙ уровень. Поскольку по своей сути такой вентиль является инвертирующим, то для того, чтобы получить из него вентиль ИЛИ, к нему нужно добавить инвертор, как показано на рисунке.
8.06. Пример схемы с вентилями
Теперь попробуйте создать схему, которая решала бы логическую задачу, приведенную в качестве примера в гл. 1 и 2: гудок автомобиля должен включаться, когда открыта любая дверь, а водитель сидит в машине. Ответ будет очевидным, если сформулировать эту задачу таким образом: «На выходе действует ВЫСОКИЙ уровень, если открыта левая ИЛИ правая дверь И водитель сидит в машине», т. е. Q = (L + R)S. Как решать эту задачу с помощью вентилей, показано на рис. 8.10.
Рис. 8.10.
Выход ИЛИ имеет ВЫСОКИЙ уровень, когда одна ИЛИ другая дверь (или обе вместе) открыты. Если это так И водитель сидит в машине, Q имеет высокий уровень. Добавив транзистор, можно сделать так, чтобы эта схема включала гудок или замыкала контакт реле.
В реальных устройствах ключи, которые вырабатывают входные сигналы, обычно замыкают цепь на землю. (Это делается для сокращения монтажных связей, а также по другим причинам, которые, в частности, связаны с использованием широко распространенных логических элементов типа ТТЛ и вскоре будут рассмотрены.) Это означает, что при открывании дверей сигналы на входах будут иметь НИЗКИЙ уровень, т. е. мы будем иметь входы, использующие отрицательную логику. С учетом этого построим для данного примера новую схему, обозначим ее входы через L', R' и S'. Сначала здесь нужно определить, действует ли НИЗКИЙ уровень на каком-либо из входов (L', R'), связанных с дверцами автомобиля, т. е. состояние «оба входа имеют ВЫСОКИЙ уровень» нужно отличать от остальных. Это выполняется с помощью схемы И, следовательно, сигналы L и R' нужно подать на входы вентиля И. Выход будет иметь НИЗКИЙ уровень, когда любой из входов имеет НИЗКИЙ уровень. Назовем эту функцию ЛЮБОЙ'.