トライステートバッファ
概要
- 目的: トライステートバッファは、信号を通過させるか、または出力を回路から電気的に分離できるデジタルコンポーネントです。ハイ (1)、ロー (0)、ハイインピーダンス (Z) の3つの出力状態を持ち、複数のデバイスが干渉なしに共通のバスラインを共有できるようにします。
- シンボル: トライステートバッファは、追加のイネーブル入力を持つバッファシンボル(三角形)で表され、通常は三角形の下部または側面に表示されます。
- DigiSim.ioでの役割: バスシステムと共有データラインの基本的な構成要素として機能し、デジタル回路における共通の通信経路への制御されたアクセスを可能にします。

機能説明
論理動作
トライステートバッファは、有効化されている場合に入力値を出力に渡し、無効化されている場合に出力を切断(ハイインピーダンス状態)します。
真理値表:
| Input | Enable | Output |
|---|---|---|
| 0 | 0 | Z |
| 1 | 0 | Z |
| 0 | 1 | 0 |
| 1 | 1 | 1 |
注:Zはハイインピーダンス状態を表し、出力が回路から事実上切断されていることを意味します。
入力と出力
入力:
- データ入力: バッファが有効化されている場合に出力に渡される1ビット入力信号。
- イネーブル: バッファをアクティブ(Enable=1)または非アクティブ(Enable=0)にする1ビット制御信号。
出力:
- データ出力: 入力信号を反映する(有効化時)か、ハイインピーダンス状態に入る(無効化時)1ビット出力。
設定可能なパラメータ
- アクティブレベル: イネーブル入力がアクティブハイかアクティブローか。
- 伝搬遅延: 入力またはイネーブルの変化後に出力が変化するまでの時間。
- 出力駆動強度: 有効化時にソースまたはシンクできる電流の能力。
DigiSim.ioでの視覚的表現
トライステートバッファは、通常シンボルの下部に表示されるイネーブル入力ラインを持つ三角形(バッファシンボル)として表示されます。回路に接続すると、入力から出力への信号の通過を通じてアクティブ状態を視覚的に示し、切断された出力を示すことで無効化状態を表します。接続ワイヤの色の変化は、現在の信号状態とハイインピーダンス状態を視覚化するのに役立ちます。
教育的価値
主要概念
- バスアーキテクチャ: 複数のデバイスが共通の通信経路をどのように共有できるかを実証します。
- 信号分離: コンポーネントを回路から電気的に切断する概念を説明します。
- ハイインピーダンス状態: デジタルエレクトロニクスにおけるバイナリ0と1を超えた第3の状態を紹介します。
- 信号競合の防止: 複数のデバイスが同じラインに接続されている場合に競合がどのように回避されるかを示します。
- デジタルスイッチング: デジタルシステムにおける制御された信号ルーティングを実証します。
学習目標
- トライステートバッファが複数のデバイスに共通バスの共有をどのように可能にするかを理解する。
- ハイインピーダンス状態とデジタルシステム設計におけるその役割を学ぶ。
- 適切に調整されたイネーブル信号を使用してバス競合を防止する方法を認識する。
- 双方向通信システムの設計にトライステートバッファを適用する。
- デジタル回路における電気的分離の概念を理解する。
使用例/シナリオ
- データバス制御: 特定のデバイスが共有データバスにアクセスできるようにし、他のデバイスを切断したままにする。
- メモリインターフェース: メモリチップが共通のデータバスに書き込みまたは読み取りできるタイミングを制御する。
- 双方向I/O: 入力と出力モードを切り替えることができる入出力ピンの作成。
- マルチプレクスディスプレイ: 任意の時点でアクティブなディスプレイセグメントを制御する。
- ロジックアナライザ: 通常の動作に影響を与えずに回路ノードに接続してテストする。
- マイクロプロセッサシステム: アドレスバスとデータバスを共有する複数の周辺デバイスの管理。
技術ノート
- 複数のトライステートバッファが共通の出力ラインを共有する場合、バス競合を防ぐために同時に1つだけが有効化されるよう注意が必要です。
- ハイインピーダンス状態では、出力ノードが他に接続されていない場合「フロート」する可能性があり、予測不能な動作につながる可能性があります。定義された状態を提供するためにプルアップまたはプルダウン抵抗がよく使用されます。
- アクティブ状態とハイインピーダンス状態間の遷移は瞬時ではなく、切り替え中にバス上に短いグリッチを引き起こす可能性があります。
- トライステートバッファをラッチやフリップフロップと組み合わせて、データを格納してバスに選択的に接続できるトライステートレジスタを作成できます。
- DigiSim.ioでは、ハイインピーダンス状態が視覚的に表現されており、実際のハードウェアでは視覚化が困難なバス共有の概念を理解するのに役立ちます。
特性
- 3つの出力状態:ハイ (1)、ロー (0)、ハイインピーダンス (Z)
- イネーブル入力がデバイスのアクティブまたはハイインピーダンス状態を制御
- 複数のデバイスが共通のバスラインを共有可能
- 適切に制御された場合にバス競合を防止
- 有効化時は通常非常に低い出力インピーダンス(良好な駆動能力)
- 無効化時は非常に高い出力インピーダンス(事実上切断)
- 一部の実装では入力または出力ラッチを含む場合がある
- 反転および非反転構成の両方が利用可能
アプリケーション
- マイクロプロセッサおよびマイクロコントローラでのデータバス管理
- メモリアドレスおよびデータバスインターフェース
- 共有ラインへの信号のマルチプレクシング
- デジタルシステムにおけるI/Oポート制御
- 双方向通信ライン
- 適切なバッファタイプ使用時の論理レベル変換
- より長い距離での伝送用ラインドライバ
- 必要に応じた回路セクションの分離
- ロジックアナライザおよびテスト機器
実装
トライステートバッファは通常、以下を使用して実装されます:
- イネーブル制御付きCMOSトランスミッションゲート
- イネーブル制御付きプッシュプル構成のバイポーラトランジスタ
- 論理ゲートとトランジスタの組み合わせ
- 一般的なICパッケージ:
- 74125/74126:トライステート出力付きクワッドバッファ
- 74HC125/74HC126:高速CMOSバージョン
- 74LS125/74LS126:低消費電力ショットキーバージョン
- 特定のアプリケーション用の特殊バスドライバIC
回路実装
簡略化されたCMOS実装:
graph TB
VDD[VDD Power Supply]
Input[Input Signal]
Enable[Enable Control]
Output[Output]
PMOS[P-MOS Transistor]
NMOS[N-MOS Transistor]
GND[GND Ground]
EnableInv[Enable* Inverted]
VDD --> PMOS
Input --> PMOS
Enable --> PMOS
PMOS --> Output
Input --> NMOS
NMOS --> GND
Output --> NMOS
EnableInv --> GND
Enable*は反転されたイネーブル信号を表します。イネーブルがHIGHの場合、両方のトランジスタペアが入力値に基づいて導通します。イネーブルがLOWの場合、両方のトランジスタパスが無効化され、ハイインピーダンス出力が作成されます。
関連コンポーネント
- 反転トライステートバッファ: 有効化時に入力信号を反転するバリアント
- バストランシーバ: いずれの方向にも信号を駆動できる双方向バッファ
- ラッチ付きバッファ: データを格納するための内蔵ラッチを持つトライステートバッファ
- レベルシフタ: 異なる電圧レベル間の変換用に設計されたトライステートバッファ
- ラインドライバ: より長い距離での信号駆動用に設計された高電流トライステートバッファ