オープンコレクタを用いたバス接続の有用性今岡通博の俺流!組み込み用語解説(6)(2/2 ページ)

» 2024年09月25日 08時00分 公開
[今岡通博MONOist]
前のページへ 1|2       

オープンコレクタはオープンドレインに読み替えられる

 図2は、一般的なトランジスタで構成する出力回路とオープンコレクタによる出力回路を比較しています。

図2 図2 プッシュプル回路(左)とオープンコレクタ回路(右)の比較[クリックで拡大]

 先述したように、トランジスタとしてバイポーラ型トランジスタを用いる場合はオープンコレクタですが、CMOS回路がベースのFETを用いる場合はオープンドレインになります。本稿では、バイポーラ型トランジスタを用いる場合のオープンコレクタについて解説します。

 オープンコレクタの仕組みが分かれば、FETを用いるオープンドレインであってもオープンコレクタをオープンドレインと読み替えてもらえば大体話は通じると思います。ただし、バイポーラ型トランジスタが電流駆動なのに対して、CMOS回路がベースのFETは電圧駆動である点が異なります。

プッシュプル回路

 図2の左側の回路はプッシュプル回路あるいはトーテンポール回路、またはコンプリメンタリーなどと呼ばれています。プッシュプルとは押したり引いたりすることを意味します。入力の電位によって出力がグランドに引き込まれたり、VCCから押し出されたりする様子を表しています。

 また、この回路がコンプリメンタリーといわれているゆえんは、極性のみが異なりそれ以外の特性は同じトランジスターのペアのことを指す「コンプリメンタリー」を用いて回路を構成しているためです。なお、トーテンポールあるいはトーテムポールは、北米の太平洋側の先住民族が建てた柱のことを指しますが、それがなぜこの回路の名前になったのかについて筆者は定かではありません。ご存じの方は編集部までお知らせください。

 それではプッシュプル回路の動作を見ていきましょう。入力が低電位の場合はNPN型のトランジスタは動作せず、PNP型のトランジスタのみが動作します。すると出力はPNP型トランジスタのエミッタからクランドが導通し出力は低電位に引っ張られます。一方、入力が高電位の場合はNPN型のトランジスタのみが動作し、VCC(高電位)がコレクタからエミッタに導通し出力は高電位となります。というわけで、プッシュプル回路回路では、入力に高電位あるいは低電位を印加することで出力は必ず高電位か低電位のいずれかの出力となります。

オープンコレクタとプッシュプル回路の比較

 これに対して図2の右側の回路がオープンコレクタ回路になります。ここではプッシュプル型の出力回路との比較についてのみ言及することにします。オープンコレクタの詳細については連載第4回を参照してください。

 このプッシュプル回路は前回の連載第5回で取り上げたマイコンのGPIOの出力回路などに多く用いられています。図2ではバイポーラ型トランジスタで回路を構成していますが、今どきのマイコンではCMOS回路で構成するのが一般的です。原理は同じで、マイコンの出力に対する値が0の場合はグランド電位は短絡します。また1を出力するとVCCに近い電位になります。

 これに対してオープンコレクタの出力回路は、トランジスタのベースからエミッタに電流が流れた時のみ、コレクタがグランドに短絡します。図2ではプルアップ抵抗を介してVCCに接続されていますが、これはオープンコレクタの出力を受け取る側の都合と責任で回路を構成します。要はオープンコレクタの出力回路はマイコンからの入力が1の時のみグランドに短絡しますが、それ以外は出力であるコレクタの電位は不定となります。

オープンコレクタとバス接続

 図3はオープンコレクタのノードを単一のバスに複数つないだものです。

図3 図3 複数のオープンコレクタのノードを単一のバスにつないだ状態[クリックで拡大]

 バスにノード1、ノード2そしてノードNまでぶら下がっています。バスのどこか1カ所で+電源のVCCに適切な抵抗でプルアップします。抵抗の値については先ほど述べた通りです。また、バスのどこからでもマスターへの入力を取り出せます。

 ノード1〜Nまで、全て入力が低電位の時はバスの値は高電位(VCCの電位)です。全てのノードのコレクタとエミッタ間は導通していませんので高電位、1に保たれています。一方、ノード1〜Nまでどれか一つでも高電位の入力があると、そのノードのコレクタとエミッタ間が導通しますので、バスの値は低電位、すなわち0となります。このようにオープンコレクタは一つのバスに複数のノードをつなぐには適したドライブ方法といえるでしょう。

おわりに

 連載第4回の記事では、外部機器との接続において入出力間での電位差を解決する手段としてオープンコレクタを紹介しましたが、今回は単一バスで信号をやりとりする方法としてもオープンコレクタが有効であることを解説しました。

 本稿はこれで終わりです。今後はこのバス接続の基本を押さえてもらっていることを前提にI2Cなどマイコンの接続インタフェースの解説記事を展開していく予定です。

⇒MONOist編集部へのご意見はこちらまで

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.