[▲上位階層] [前のページ] [次のページ] 2007-10-27 新規作成, 2007-11-03 更新
|
ANDゲートの働きをあらわす模型
ほんとうに動作する模型です。 入力端子をA,B、出力端子をY、
電圧の'H'/'L'を高さと考えてみてください。
|
[ワンゲート・74VHC相当] TC7SH08F,
全てのディジタル回路はアンド、オア、インバータの組み合わせで作ることができる。 アンド・ゲートは基本3大要素のうちの1つだが、 アンド・ゲートだけ沢山あっても実用的な回路は作れない。 3つの基本3大要素がそろって初めて実用的な回路が可能。 3人集まれば文殊の知恵という言葉がある。 パソコンの中に入っている頭脳であるCPUもこの3種類の組み合わせでできる。 アンド・ゲート、オア・ゲート、インバータは1種類では非力であっても3種類集まれば全てをカバーできる万能の存在になるというのがディジタル回路の面白い所。
現代の集積回路は1個の部品の中にゲートの数800万個ぐらい集積されたものが普通に使われている。 それに対し74シリーズはわずかなゲート数しか内蔵されていない。 たとえば74HC00は4つのゲートしかないが基本的な回路設計手法は大規模な回路(PLDやASIC)と共通である。 違うのは極めて膨大なゲートを完全に不具合無く動作するシステムを作れるかどうかだけ。
1つのゲートを砂粒にたとえればASIC、PLDを設計するのは砂で城を作るようなもの。 回路設計をする時は砂の1つぶ1つぶを気にしないでざっくりとつくり、最後の仕上げではある1粒だけに注目してその1粒が「かなめ」になることもある。 大きなゲート数のASIC、PLDを設計する際にも最終的には1粒であるゲートの動きを理解しておくことが必要。 74シリーズを学習することはPLDや大規模なASICを設計する際の足掛りになる。
[ワンゲート・74VHC相当] TC7SH32F,
[ワンゲート・74VHC相当] TC7SH04F,
[ワンゲート・74VHC相当] TC7SH14F,
オープン・ドレイン(コレクタ)・インバータは極性を反対にする働きを持つ回路またはIC。 オープン・ドレイン(コレクタ)・バッファはそのままの極性で伝達する回路またはIC。 出力駆動形式が通常のバッファ(またはインバータ)と異なる。
オープン・コレクタとは出力がNPNトランジスタのコレクタに接続されており、'L'に駆動することは可能だが'H'には駆動しない形式をいう。 オープン・ドレインはオープン・コレクタと同様な動作をするが出力がFETのドレインになっている点が異なる。
オープン・コレクタとオープン・ドレインは通常プルアップ抵抗と共に使用される。
オープン・コレクタはICの電源がOFFの時に出力に電圧をかけたり、電源電圧を超える電圧をかけてもこわれないタフさを持ち、プリンターポートなど どうしても耐圧が必要なインターフェースに使用される。
74LS05/06は 入力が'L'の時、出力はハイインピーダンスになり、'H'の時出力は'L'になる。 74LS07は 入力が'H'の時、出力はハイインピーダンスになり、'L'の時出力は'L'になる。
ハイ・インピーダンスは'Z'で表し、波形を書く場合は'H'と'L'の中間に線を引く。 ハイ・インピーダンス状態をオシロスコープで観測すると電圧が不安定でわずかなノイズがのっている状態に見える。 プルアップ抵抗があればVCCと同じ電圧になっているため波形ではなかなか'Z'になっているかどうか確認が難しい。
昔はディジタル回路のバスなどにオープン・コレクタを使う事があったが、現代ではほとんど使わていない。 パソコンのパラレルポートなど、パソコンの電源がONでプリンタの電源がOFFの状態の時、パソコンからプリンタに過電流が流れるのを防ぐために使用される。
[注意] 電源電圧範囲が他のICより狭いので電源設計に注意!
[ワンゲート・74VHC相当] TC7SH86F,
[ワンゲート・74VHC相当] TC7SH00F,
[ワンゲート・74VHC相当] TC7SH02F,
出力を'H'にも'L'にも駆動しないハイ・インピーダンス状態にできるバッファ。 汎用ロジックでもっとも良く利用され、かつ重要な品種。 マイコンの入力ポート数を増やしたり、駆動能力の強化(特にマイコンの外部バスの補強用)にも使用される。
74VHCタイプ、74LVxxAは+5VのIC出力を+3Vまたは+3.3VのICに接続するためのレベル・シフタとして使用可能。
74HC244と74HC541は8回路でイネーブルが負論理。
[類似品種] 4回路イネーブルが負論理として74HC125,、4回路イネーブルが正論理74HC126がある。
[ワンゲート・74VHC相当] TC7SH125F, TC7SH126F 〜TC7SH125Fはイネーブルが負論理、TC7SH126Fはイネーブルが正論理。
"541"はイネーブル端子G1,G2が共に'L'の時に入力A1から出力Y1に信号を伝達する。 イネーブル端子のどちらかが'H'の時はA1の状態に関係なくY1は'H'にも'L'にも駆動しないハイインピーダンス'Z'になる。 同様の回路が8回路内蔵されており共通のイネーブル端子で制御する。
"244"は"541"と比べて内部配線、ピン配置が異なる。 "244"はイネーブル端子1Gが1A1,1A2,1A3,1A4のイネーブル、イネーブル端子2Gが2A1,2A2,2A3,2A4のイネーブルと2系統に分かれている。 "244"は配線の仕方によってトランシーバとしても使用可能。 ただトランシーバとして使用する場合は"245"の方が便利であり"244"と"541"はアドレス・バッファとして使用するのが良い。 プリント基板設計時に"541"の方が"244"よりも若干デバイスが割高だが素直な配線になる。
左はマイコン(H8/3052)の外部バス(アドレス・バス)をバッファで補強した例。 アドレス・バスについてはマイコンが常に駆動するのでハイ・インピーダンスにする必要がなく常にイネーブルで良く、Gを'L'固定にしている。
[バス・バッファの注意点] バスには目に見えるコンデンサはつながっていなくともCMOSの入力端子は10pFぐらいの静電容量をもっている。 CMOSのICは入力端子に直流としてほとんど電流が流れないが信号が変化した瞬間だけ電流が流れる。この瞬間的に流れる電流がくせものでバスラインなどは多くの信号線が同時に変化するため、VCCやGNDに影響を与える。 また配線自身にもわずかな静電容量があり配線が長い場合にはリンギングが発生する。 これを改善するにはダンピング抵抗とバッファが必要。
[ダンピング抵抗] ダンピング抵抗は小さすぎるとリンギングが残ってしまい、大きすぎると遅延が大きくなってしまう。 バスの波形を確認しながら試行錯誤で決めるのが良い。 ダンピング抵抗内蔵の汎用ロジックもあるが抵抗値が固定であるため、使用する基板と適合しない場合もある。 (ダンピング抵抗を交換するのは工数がかかるのでダンピングの程度を端子設定で可変できるのが理想であるが現在の汎用ロジックでは用意されていない。)
541をマイコン(H8/3052)の入力ポート拡張用に使用する例を左に示す。 541、1個で8本のIOが追加可能。 2個使用で16本、4個使用で32本の入力が追加可能。 左は外部に拡張するデバイスが少ない場合なので外部アドレス・デコーダは省略している。 (マイコン内部のアドレス・デコーダのみ使用) マイコンが読み出ししようとした時にCSとRDがアサートされるのでそのタイミングでデータ・バスに 入力ポートからのデータを乗せる。
CMOSのICは入力をオープンにすることは禁止なので通常、データ・バスをプルアップしておく。 データバスの波形を確認し、リンギングが多い場合は"541"の出力に22〜100Ωのダンピング抵抗を入れると良い。
トランシーバとデータバスの関係なぜマイコンのデータ・バスにトランシーバが使用されるのでしょうか? それは沢山あるIC同士でやりとりをする際の配線の本数を少なくできるからです。 たとえば2つのICの間で1ビットのみの信号をやりとりをするのであればIC1からIC2への通信用、IC2からIC1への通信用とGNDを含めないで2本の配線があれば足ります。 ICが4個の場合にはどうでしょう? 答えは12本です。 ICが10個で全ての相手と通信できるようにするには何本必要でしょうか? このようにICの数が増えると爆発的に配線の本数が増えてしまう。 これらの配線はいつでも使用しているわけではなく、使っていない場合が多く不経済です。 そこで1本の配線を全てのICが共用して使用するようにしたのがバスです。 (風呂のバスではなく、自動車のバスです。) ICは原則として複数の出力端子をショートすると過電流が流れてしまうのですが3ステートの出力端子は例外で複数の出力端子を接続可能です。 ただし 1つの配線に接続されている出力端子のうち1つだけを駆動している状態(イネーブル)にし、それ以外の出力端子は駆動していない状態(ディスエーブル)にしていなければなりません。 |
ICが2個の場合の配線
ICが4個の場合の配線
|
マイコンのバスは3ステートを利用することで配線の本数を削減している。 さらにデータを転送する際に1ビットずつでは効率が悪いので8ビット、または16、32ビットずつまとめて転送するようなっている。 各自が自家用車で移動するのではなく乗合バスに乗るイメージ。 それがマイコンで言うところのデータ・バス。
このようにデータ・バスは配線の省力化ができる。
トランシーバの応用として最も一般的なのはマイコンのデータ・バス・バッファ。 マイコンの外部バスに対して複数の周辺LSIを接続する際、駆動能力が不足する時がある。 その時は間にバス・トランシーバを挿入する。
具体的な回路例を左に示す。 今マイコン(H8/3052)がどの周辺LSIに対してデータを要求しているのかを知らせるのがCS信号、バスにのせるタイミングと方向を示すのがRD信号。 書き込みを表す信号としてHWR,LWRがあるがこの回路では使用していない。
[読み出し] トランシーバ"245"はデータをマイコンのデータ・バスに読み取るタイミング(RD='L'かつCS='L')を確認してデータを乗せる。
[書き込み] トランシーバ"245"はデータを周辺LSIのデータ・バスに書き込むタイミング(RD='H'かつCS='L')を確認してデータを乗せる。
![]() |
![]() |
![]() |
|
--- Copyright N.Kojima 2007 ---