Шрифт:
8.11. Элементы с тремя состояниями и с открытым коллектором
Вентили ТТЛ и КМОП, которые мы сейчас рассматриваем, имеют двухтактные выходные схемы: высокий или низкий уровень подается на выход через открытый биполярный или МОП-транзистор. Такую схему, называемую активной нагрузкой, а в ТТЛ называемую также столбовым выходом, используют почти все логические элементы. Схема обеспечивает низкое выходное сопротивление в обоих состояниях, имеет малое время переключения и обладает более высокой помехоустойчивостью по сравнению с одиночным транзистором, который использует пассивный резистор в качестве коллекторной нагрузки. В случае КМОП применение активного выхода, кроме всего прочего, позволяет понизить рассеиваемую мощность.
Но существуют ситуации, при которых активный выход оказывается неудобным. Представим себе компьютерную систему, в которой несколько функциональных блоков должны обмениваться данными. Центральный процессор (ЦП), память и различные периферийные устройства должны иметь возможность передавать и получать 16-разрядные слова. И, мягко говоря, было бы неудобно использовать для соединения каждого устройства с каждым индивидуальный 16-жильный кабель. Для разрешения этой проблемы используется так называемая шина (или магистраль) данных, т. е. один 16-жильный кабель, доступный для всех устройств. Такая структура аналогична телефонному каналу коллективного пользования: в каждый момент времени «говорить» («передавать данные») может только одно устройство, а остальные могут только «слушать» («принимать данные»).
Если используется шинная система, то необходимо иметь соглашение о том, кому разрешено «говорить». В связи с этим употребляются такие термины, как «арбитр шины», «задатчик шины» и «управление шиной».
Для возбуждения шины нельзя использовать вентили (или другие схемы) с активным выходом, так как их нельзя отключить от общих информационных линий (в любой момент времени выходы устройств, подключенные к шине, будут находиться в состоянии высокого или низкого уровня). В этом случае необходим вентиль, выход которого может находиться в «обрыве», т. е. быть отключенным. Такие устройства выпускаются промышленностью и имеют две разновидности, которые носят названия «элементы с тремя состояниями» и «элементы с открытым коллектором».
Логические схемы с тремя состояниями. Логические элементы с тремя состояниями, также называемые TRI-STATE (товарный знак National Semiconductors Corp., создавшей их) представляют элегантное решение. Название этих схем может ввести в заблуждение, поскольку на самом деле они не являются логическими элементами с тремя уровнями напряжений. Это обычные логические схемы, которые имеют третье состояние выхода — «обрыв» (рис. 8.19).
Рис. 8.19. – вентиль И-НЕ с 3-м состоянием: а — поясняющая схема; б — реализация с использованием внутренних КМОП-вентилей.
Они имеют отдельный вход разрешения, с помощью которого могут устанавливаться либо в состояние обычных активных выходов, либо переходить в «третье» (обрыва) состояние независимо от того, какие сигналы присутствуют на других входах. Выходы с тремя состояниями имеются во многих ИМС: счетчиках, защелках, регистрах и т. п., а также в вентилях и инверторах.
Устройство с выходом на 3 состояния функционирует подобно обычной логике с активным выходом, когда подан сигнал разрешения, при этом на выходе существует либо высокий, либо низкий уровень. Когда на входе разрешения пассивный уровень, схема отключает свой выход, так что другие устройства могут работать на ту же самую линию. Давайте рассмотрим это на примере.
Взгляд вперед: шины данных. Драйверы с тремя состояниями широко используются для возбуждения шины данных компьютера. Каждое устройство (память, периферия и т. п.), которому необходимо выставить данные на шину, связывается с ней через вентили с тремя состояниями (или через более сложные элементы, такие, как регистры). Дела так умно устраиваются, что только одно устройство выдает разрешение своим драйверам (формирователям), все другие устройства, получив запрет, переходят в третье состояние. Обычно выбранное устройство «узнает» о том, что оно должно выдавать данные на шину, опознав свой адрес на адресных и управляющих шинах (рис. 8.20).
Рис. 8.20. Шина данных.
В этом наипростейшем случае устройство подключается как порт 6. Получив свой адрес (например, 6) и импульс чтения, устройство выводит данные на шину D0– D3. Такой шинный протокол используется для многих простых систем. Нечто подобное имеет место в большинстве микрокомпьютеров, как мы увидим в гл. 10 и 11.
Заметим, что должна быть некоторая внешняя логика, которая обеспечивала надежность того, что устройства с тремя состояниями, подключенные к одним и тем же выходным линиям, не будут пытаться передавать в одно и то же время (что равносильно условию, официально называемому «соглашение шины»). В этом случае все хорошо, когда каждому устройству соответствует свой адрес.
Логика с открытым коллектором. Предшественником логики с 3 состояниями была логика с открытым коллектором, которая позволяет вам подключиться к одиночной линии среди других выходов нескольких формирователей. Выход с открытым коллектором просто не включает транзистор активной нагрузки в выходном каскаде (рис. 8.21).