デジタル回路
出典: フリー百科事典『ウィキペディア(Wikipedia)』
デジタル回路(デジタルかいろ)は、複数の不連続な電圧レベルを用いる電子回路である。ほとんどの場合、二つの電圧レベルが使われる。一つは0ボルトに近いレベル、もう一つは電源電圧に依存する、より高いレベルであり、これらは通常LとHと表現される。
アナログ回路と対称の概念として扱われる。
目次 |
[編集] 概要
デジタル回路は、基本的にはAND(論理積)、OR(論理和)、NOT(論理反転)のブール代数の基本演算を行なう回路が複雑に組み合わされたものである。論理設計の観点におけるデジタル回路に関する基本的な説明は、論理回路の項を参照されたい。
デジタル回路は、その機能に応じて様々な回路が考案されている。以下の代表的なデジタル回路については、それぞれの項目に詳細な説明がある。
[編集] 電圧レベル
デジタル回路では二つの電圧レベルを、二進数または論理レベルの0と1を表すために使う。アクティブ・ハイ(正論理)では、Lは二進数0、Hは二進数1を表し、アクティブ・ロー(負論理)では逆の意味に使われる。たとえば、0から1.5ボルトは論理0、3.5から5ボルトは論理1というようになる。1.5から3.5ボルトの間は無効であり、異常状態か、論理遷移の期間にのみ現れる。論理遷移の期間というのは、ほとんどの回路は純粋な抵抗回路ではないので、電圧レベルがすぐに切り替わらないことによって起こる。このような異常状態を検知できる論理回路もあるが、ほとんどはランダムに0か1として解釈する。
CMOSによるデジタル回路の場合、その内部構造の都合上、この異常状態にある間は回路が大量の電力を消費してしまう。このため、異常状態を長く継続させてしまうと発熱により素子が破壊されるため、異常状態の継続を避ける回路上の工夫が必要となる。
一方、波形の立ち上がりと立ち下がりで論理遷移の値を意図的に異なる値とすること(ヒステリシス、履歴現象)で異常状態を回避する方法があり、シュミット・トリガと呼ばれる。抵抗器の接続により容易に実現可能であるほか、専用の標準ロジックICもある。
二値論理レベルの例
回路素子技術 | Lの電圧 | Hの電圧 | 備考 |
---|---|---|---|
CMOS | 0V ~ 0.3Vcc | 0.7Vcc ~ Vcc | Vcc = 電源電圧 |
TTL | 0V ~ 0.8V | 2V ~ Vcc | Vccは、4.75Vから5.25Vの間 |
初期のデジタル回路では、シリコン基板上へのトランジスタの形成に制限があることなどから、PMOSまたはNMOSにより回路内部を構成していた事があった。この場合、入力が0の時にはあまり電力を消費しないが入力が1の時には大きく電力を消費する、またはその逆であるという特性を持つため、この都合に合わせてアクティブ・ハイで論理回路を設計するか、アクティブ・ローで論理回路を設計するかが重要な意味を持っていた。
[編集] プルアップ・プルダウン
上で述べたように、デジタル回路の入力は原則としてHまたはLの電圧が印加されていなければいけない。HとLの中間の電圧になると、内部状態が不安定になったり、消費電力が著しく増加したりする。また、Lよりも低い電圧やHよりも高い電圧が印加されると、設計外の電流の流れが発生して回路の破壊などが起こりえる。
一般に、デジタル回路の入力端子は内部インピーダンスが高い(電源回路との絶縁性が高い)ため、入力端子がどこにも接続されない状態にあると、近辺の静電気や電磁誘導によって予期せぬ電圧が印加される可能性がある。このため、例えばコネクタなどにより外部の回路と接続される入力端子は、万が一コネクタが外れた状態にある場合でも異常な電圧が加わらないように回路を工夫しておかなければいけない。なお、入力端子がどこにも接続されていない状態は、「浮いている」と表現されることが多い。
このような場合には、数kΩから数百kΩという比較的高い値の抵抗器で、電源電圧または接地電圧を供給している線と入力端子とを接続する。電源線に接続することを「プルアップ」と呼び、しばしば「Vccに吊りあげる」などと表現することもある。また、接地線(グラウンド)に接続することを「プルダウン」と呼び、しばしば「GNDに落とす」などと表現する。
プルアップまたはプルダウンされた入力端子に、出力端子が何も接続されていない状態の時には、プルアップ抵抗またはプルダウン抵抗によって(大きな電磁誘導が起こらない限りは)電源電圧または接地電圧が保たれる。
ここに他のデジタル回路の出力端子が接続された場合、デジタル素子の出力回路は内部インピーダンスが極めて低いことより、プルアップまたはプルダウンに使われた抵抗値がほぼ無視できる状態になる。極めて大きな抵抗と極めて小さな抵抗を並列に接続した場合、そこを流れる電流はほとんど全て小さな抵抗のほうを通り、大きな抵抗があろうが無かろうが現象に大きな差異がない。
プルアップ抵抗の値は、大きすぎると絶縁とあまり変わらない状態になり、電磁誘導などに弱くなってしまう。しかし、小さすぎるとそこに接続される出力素子に大きな電流を流す要因となり、回路の消費電力の増大や最悪の場合出力素子の破損につながることになる。
入力端子につながる信号線が、通信線などのように比較的長い距離を持つものである場合、その線で電磁誘導が起こって電源電圧や接地電圧の範囲外の異常電圧が加わる可能性が高くなる。こういった場合には、プルアップ抵抗に並列にダイオードを挿入し、異常電圧による電流が電源線のほうに逃げてデジタル回路素子内に流れ込まないように工夫をする。この用途のダイオードは「クランプダイオード」と呼ばれる。(デジタル入力の保護目的以外でも、電圧値域を制限する目的のダイオードはクランプダイオードと呼ばれる。)
デジタル回路の設計の都合上、一つのICの中に入っている全てのデジタル回路を使わずに、一部の回路だけを使うということがよく行なわれる。この時、使用しない回路用の入力端子はその状態がHだろうがLだろうが動作に全く関係がないため、ともすればどこにも接続されずに放置されてしまうことがある。論理的には確かにどうでもよいことではあるが、電気的には上記のように異常電圧が加わった時に回路破壊につながることになるので、使用しない入力端子は必ずプルアップもしくはプルダウンされなければいけない。ただしこの場合、他の出力端子の都合を考える必要がないので、抵抗器を介さずに直接電源線または接地線に短絡してよい。
近年の組み込み用CPUなどのICの場合、外部に付けなければいけない部品点数を削減するために、このプルアップ抵抗をICの中に内蔵しているというものが多くなってきている。また、製品によっては、このプルアップ抵抗を使うか使わないかをソフトウェアで選択できるようになっているものもある。
[編集] ファン・アウト
上記のように、デジタル回路では電圧値により情報を素子から素子に伝達するが、この際電気回路であるから当然電流の流れが伴う。具体的には、出力側のレベルをLにする為には、出力端子が後ろの回路から電流を吸い込む動作をし、出力側のレベルをHにする為には、出力端子が後ろの回路に電流を吐き出す動作をする。
ただし、一般にデジタル回路の入力端子は内部インピーダンスが高くつくられている(電源線や接地線に対する抵抗値が高い)ため、この電流値は微々たるものである。特にCMOSによる回路ではほとんど流れていないに等しい。
TTLのように、入力端子に流れ込んだり、入力端子から流れ出したりする電流が比較的大きな素子で回路を組む場合、前段の出力側素子の電流駆動能力によって、後段につなげられる入力端子の個数が制限されてくる。この制限値をファン・アウトと呼ぶ。
TTLの場合、標準タイプ・LSタイプ・ALSタイプなど様々なタイプのシリーズがあるが、そのシリーズ内の規格により出力端子の駆動能力と、入力端子が吸い込む(または吐き出す)電流の最大値が決められているため、同じシリーズのIC同士であれば、ファンアウトの値は同じになる。
ただし、多数の入力に信号を分配する目的のために、同じ論理回路でもファン・アウト値を大きくした回路素子が用意されている。そういう回路素子は論理的には何もしない、または反転するだけの単純なものである事が多く、バッファ、バスバッファ、ドライバなどと呼ばれる。
違ったタイプのシリーズを組み合わせて使う場合には、それぞれのデータシートを調べて、接続出来る個数を決定する必要がある。
CMOS型ロジックの場合は、入力端子に流れ込む電流はきわめて少ないが、たくさんの入力端子を接続すると、それぞれの端子と配線部分の静電容量が並列接続されることにより、出力側から見た容量性負荷が増大する。これを指してファン・アウトと呼ぶ。このため、出力側素子の駆動能力が足りないと、HからL、LからHの状態遷移に時間が掛かることになり、これが回路動作上の制約となるため、やはり後段につなげられる入力端子の個数は制限される。
[編集] ハイ・インピーダンス
一つの信号線に対して信号を出力する素子を複数接続するというバス構造を用いる場合、信号を出力しようとしている素子とその信号を受信しようとしている素子だけがバスと電気的に接合されていなければいけない。回路の制御を誤って複数の出力回路が同時に接続されてしまうと、回路間に異常な電流が流れて素子の破壊につながる。
この破壊を避けるためには、信号を出力しなければいけない出力素子以外の出力は電気的に絶縁しなければいけない。
このように、出力信号線を電気的に切り離した状態をハイ・インピーダンス (high-impedance)と呼び、HでもLでもない第三の状態として扱う。ハイ・インピーダンス状態は記号では"Z"で示される事が多い。
ハイ・インピーダンス出力を利用する場合、とある入力端子につながっている全ての出力端子が同時にハイ・インピーダンス状態になると、電気的には入力端子に何も接続されていないことと同じになってしまい、先に述べた通り素子破壊を伴う危険な状態になってしまう。このため、ハイ・インピーダンス状態を伴う信号線はプルアップまたはプルダウンをするのが常套手段となっている。
ハイ・インピーダンス出力と似たものとして、オープンコレクタ出力がある。これは、出力が論理1の時にはLの電圧を出力するが、論理0の時にはHの電圧を出すのではなくハイ・インピーダンス状態になるという出力素子である。(負論理の出力になっている)
論理0の時にハイ・インピーダンスになるので、複数のオープンコレクタ出力の出力信号を単純に接続してしまった上でプルアップしておけば、出力のどれかが論理1になった時にLになる(全ての出力が論理0の時にはHになる)という回路になり、これは(負論理の)論理和を演算していることになる。このように、論理和用のデジタル回路素子を使うこと無く論理和を実現する回路のことを「ワイアードオア」と呼ぶ。
なお、オープンコレクタ出力の端子は、一般の出力端子よりも多く電流を流すことができるという特性も持つため、アナログ回路による電流増幅器を介すること無く、直接LEDを点灯させるなどの周辺装置の駆動ができる。
[編集] トライステートバッファ
G X | Y |
---|---|
0 0 | Z |
0 1 | Z |
1 0 | 0 |
1 1 | 1 |
出力をハイ・インピーダンスにできる出力回路は「トライステート」(tri-state : 三状態の意味)と呼ばれ、入力信号をそのまま出力するかハイ・インピーダンスにするかを切り替えることができる回路は「トライステート・バッファ」と呼ばれる。回路記号では、バッファを示す三角の印の側面にハイ・インピーダンスにするか否かの入力信号線が入る図形で示される。
出力をハイ・インピーダンスにしないことを指示する入力信号線は、ゲート(gate)の意味で'G'と表記されたり、イネーブル (enable)の意味で'E'または'EN'と表記されることが多い。また、データバスなどのバス構造を持つ部分に使われる場合には、アウトプット・イネーブル ("output enable")の略で'OE'という記号が使われたり、チップ・セレクト ("chip select")の略で'CS'という記号が使われることも多い。
G | X | Y |
---|---|---|
0 | 0(Out) | 0(In) |
0 | 1(Out) | 1(In) |
1 | 0(In) | 0(Out) |
1 | 1(In) | 1(Out) |
トライステート・バッファを2つ組み合わせて、データ通信の方向を切り替えることができるようにした回路もよく使われている。この回路は「双方向バッファ」と呼ばれ、入力GがLの時にはYからXの方向にデータが伝わり、入力GがHの時にはXからYの方向にデータが伝わる。
トライステート・バッファや双方向バッファは、いくつもの回路ブロックが信号線を共用するデータバスやアドレスバスなどに多用される。このため、データバスなどのビット数の単位となりやすい8個のトライステート・バッファを一つにまとめたICが製造されており、よく利用されている。
S X1 X2 | Y |
---|---|
0 0 0 | 0 |
0 0 1 | 1 |
0 1 0 | 0 |
0 1 1 | 1 |
1 0 0 | 0 |
1 0 1 | 0 |
1 1 0 | 1 |
1 1 1 | 1 |
また、同じくトライステート・バッファを複数組み合わせ、ワイアードオアの原理を利用して複数の入力信号の一つだけを出力に伝えるという回路を構成することもできる。これは「データセレクタ」と呼ばれる。データセレクタは、一般の論理素子だけを用いて構成することもできる (Y ← (S AND X1) OR ((NOT S) AND X2)) が、トライステートを利用することによりはるかに簡単な内部回路で実現できる。本例は2入力のデータセレクタであるが、4入力、8入力などのデータセレクタもこの回路の応用で簡単に作れる。