Введение
Буфер в цифровой электронике
В цифровой электронике тристабильный или трехсостоятельный буфер – это тип цифрового буфера, который имеет три устойчивых состояния: высокое выходное состояние, низкое выходное состояние и состояние высокого импеданса. В состоянии высокого импеданса выход буфера отключается от выходной шины, позволяя другим устройствам управлять шиной без помех со стороны трехсостоятельного буфера. Это может быть полезно в ситуациях, когда несколько устройств подключены к одной и той же шине и им необходимо поочередно получать к ней доступ. Системы, реализующие трехсостоятельную логику на своей шине, называются трехсостоятельными шинами. Три- или трехсостоятельные буферы обычно используются в системах с шиной, где несколько устройств подключены к одной и той же шине и должны совместно ее использовать. Например, в компьютерной системе несколько устройств, таких как центральный процессор, память и периферийные устройства, могут быть подключены к одной и той же шине данных. Чтобы обеспечить передачу данных по шине только одним устройством за раз, каждое устройство оснащено трехсостоятельным буфером. Когда устройство хочет передать данные, оно активирует свой трехсостоятельный буфер, который соединяет его выход с шиной и позволяет передавать данные. После завершения передачи устройство деактивирует свой трехсостоятельный буфер, отключая его выход от шины и предоставляя доступ к шине другому устройству. Трехсостоятельные буферы могут быть реализованы с использованием логических элементов, триггеров или других цифровых логических схем. Они полезны для снижения перекрестных помех и шума на шине, а также для обеспечения совместного использования одной и той же шины несколькими устройствами без взаимных помех. ВХОД ВХОД ВХОД А Б С 0 0 Z (высокий импеданс) 1 Z (высокий импеданс) 0 1 0 1 1
Применение
Основная концепция третьего состояния, высокого импеданса (Hi Z), заключается в эффективном исключении влияния устройства на остальную часть схемы. Если к одному устройству электрически подключено несколько других устройств, то перевод выхода в состояние Hi Z часто используется для предотвращения коротких замыканий или ситуации, когда одно устройство выдает высокий уровень (логическая 1), а другое – низкий (логический 0). Буферы с тремя состояниями также могут применяться для реализации эффективных мультиплексоров, особенно с большим количеством входов. Буферы с тремя состояниями необходимы для функционирования общей электронной шины. Логика с тремя состояниями позволяет уменьшить количество проводов, необходимых для управления набором светодиодов (три-состоятельное мультиплексирование или Charlieplexing).
Выходная возможность против выбора чипа
Многие устройства памяти, предназначенные для подключения к шине (такие как микросхемы RAM и ROM), имеют как выводы (выбора чипа), так и выводы (разрешения вывода), которые на первый взгляд кажутся выполняющими одну и ту же функцию. Если вывод (выбора чипа) не активен, выходы имеют высокое сопротивление. Разница заключается во времени, необходимом для выдачи сигнала. Когда (выбор чипа) не активен, микросхема не работает внутри, и между подачей адреса и получением данных будет значительная задержка. (Безусловно, преимущество заключается в том, что в этом случае микросхема потребляет минимальную мощность.) Когда (выбор чипа) активен, микросхема внутренне выполняет доступ, а конечные выходные драйверы отключаются только при деактивации (разрешения вывода). Это можно сделать, пока шина используется для других целей, и когда (разрешение вывода) наконец активируется, данные появятся с минимальной задержкой. Микросхема ROM или статической RAM с выводом (разрешения вывода) обычно имеет два времени доступа: одно – от момента активации (выбора чипа) и подачи действительного адреса, а второе, более короткое – от момента активации (разрешения вывода).
Использование подъемных и опускательных устройств
Когда выходы переводятся в высокое сопротивление (в состояние Hi Z), их влияние на остальную часть схемы снимается, и узел схемы остаётся "плавающим", если ни один другой элемент схемы не определяет его состояние. Разработчики схем часто используют подтягивающие или подтягивающие к земле резисторы (обычно в диапазоне 1–100 кОм) для воздействия на схему, когда выход переводится в высокое сопротивление. Локальная шина PCI предоставляет подтягивающие резисторы, но для установления высокого уровня сигнала потребуется несколько тактовых циклов из-за большой распределённой ёмкости шины. Для обеспечения высокоскоростной работы протокол требует, чтобы каждое устройство, подключаемое к шине, устанавливало важные управляющие сигналы в высокий уровень как минимум на один тактовый цикл перед переходом в состояние Hi Z. Таким образом, подтягивающие резисторы отвечают только за поддержание сигналов шины в условиях тока утечки. Intel называет эту практику "устойчивым три-состоянием" и также использует её в шине Low Pin Count.
Альтернативы тройным автобусам
Открытый коллектор ввода/вывода является популярной альтернативой трехстабильной логике. Например, протокол шины I²C (протокол двунаправленной шины связи, часто используемый между устройствами) предусматривает использование подтягивающих резисторов на двух линиях связи. Когда устройства неактивны, они "отпускают" линии связи и переводят свои выходы в высокое сопротивление, тем самым исключая их влияние на схему. Когда все устройства в шине "отпустили" линии связи, единственное влияние на схему оказывают подтягивающие резисторы, которые поднимают уровень линий в высокое состояние. Когда устройство хочет передать данные, оно выходит из состояния высокого сопротивления и устанавливает низкий уровень на линии. Устройства, использующие этот протокол, либо позволяют линии оставаться в высоком состоянии, либо устанавливают на ней низкий уровень, тем самым предотвращая возникновение конфликта в шине, когда одно устройство устанавливает высокий уровень, а другое – низкий. Ранние микроконтроллеры часто имели некоторые выводы, которые могли работать только как вход, другие выводы, которые могли работать только как выход с открытым коллектором, и несколько выводов, которые могли работать только как выход с разомкнутым эмиттером. Типичный современный микроконтроллер имеет множество трехстабильных выводов общего назначения, которые можно запрограммировать для работы в качестве любого из этих типов выводов. Трехстабильная шина обычно используется для связи между микросхемами на одной печатной плате (PCB) или иногда между платами, подключенными к общей системной шине. Использование трехстабильной логики не рекомендуется для соединений внутри микросхемы, а скорее для соединений между микросхемами. Трехстабильные буферы, используемые для обеспечения связи нескольких устройств по шине данных, могут быть функционально заменены мультиплексором. Это позволяет выбирать выходной сигнал из нескольких устройств и передавать его в шину.