汎用ロジックICを使おう 3/3 順序回路

汎用ロジックICはディジタル回路でよく使われる部分をIC(集積回路)に収めたもの。比較的回路規模が小さく、プログラムを書き込むことなしに使用できる。

[▲上位階層] [前のページ] 2007-10-27 新規作成, 2015-06-17 更新

目次

  1. 型番の見方
  2. アンド・ゲート [論理積回路]
  3. オア・ゲート [論理和回路]
  4. インバータ [否定回路]
  5. シュミットトリガ・インバータ
  6. オープン・ドレイン・インバータ(バッファ)
  7. エクスクルーシブ・オア・ゲート
  8. ナンド・ゲート [否定論理積回路]
  9. ノア・ゲート [否定論理和回路]
  10. 3ステート・バッファ
  11. トランシーバ
  12. レベル・シフタ
  13. トランジスタ・アレイ
  14. デコーダ
  15. エンコーダ
  16. マルチプレクサ
  17. フリップフロップ (D-FF)
  18. カウンタ
  19. シフト・レジスタ
  20. ラッチ
  21. その他 (準備中)
関連項目
⇒ICテスターを作ろう - 汎用ロジックの実験
⇒電子ルーレットを作ろう - 汎用ロジックの応用例
⇒電子部品図鑑
ANDゲートの働きをあらわす模型
ANDゲートの働きをあらわす模型
ほんとうに動作する模型。 入力端子をA,B、出力端子をY、 電圧の'H'/'L'を高さと考えてみてください。

組み合わせ回路 後半

仕様の表し方は「パッケージ / 動作電源電圧 / 遅延(max)@測定条件」とした。

レベル・シフタ Dual-supply Bus Transceiver

74LVCC4245
{TI} SN74LVCC4245APWR \124
SSOP24 / VCCA=4.5〜5.5V VCCB=2.7〜5.5V / 7ns
{TI} SN74LVCC3245APWR \124
TSSOP24 / VCCA=2.3〜3.6 VCCB=3〜5.5V / 7ns
論理的には普通のトランシーバと同様な働きを持ち、 異なる電源電圧で動作しているIC同士を接続可能にするため電圧レベルの変換を行うIC。  普通のトランシーバと異なるのは電源がVCCA,VCCBの2系統あること。  マイコンが5V系で周辺ICが3V系の時は4245、マイコンが3V系で周辺ICが5V系の時は3245を使用する。 
電圧レベルの異なるデバイスの接続
[応用] 電圧レベルの異なるデバイスの接続
最近は電源電圧の異なるディジタル回路が混在しており、それらの電圧レベルの変換のためレベルシフタやトレラント機能付のバッファが必要になる。  一般的なCMOS-ICは電源電圧以上の電圧を入力端子にあたえると過電流が流れる。 そのため電源電圧の高いICから電源電圧の低いICに信号を伝えたい時は振幅を小さくし、かつVIH,VILが正常となる電圧に変換する必要がある。 

トランジスタ・アレイ Transistor Array

2004
{TSH} TD62004APG \100
DIP16 / 50V / 500mA

オープン・コレクタ・インバータとほぼ同じ働きをするIC。  スイッチング用のトランジスタ、ダイオード、抵抗をICに収めている。  出力がオープンコレクタになっているので+12Vなどの高い電圧の制御が可能。  トランジスタアレイは74シリーズではないが良く使うICなのでこのページに分類した。 

4000シリーズなどの比較的高い電圧で動作し、大きな出力電流を流せない場合は62004が適している。 74HCなどで大きな電流が必要な場合は62003が良い。 

[用途] 74シリーズはマイコンのIOポートよりも大きな電流を流すことができるが、それでも電流が不足することがある。  トランジスタ・アレイはマイコンやPLDの弱点である駆動能力を強化するために使用され、個別のトランジスタを使用するよりも部品点数が少なくできる。 

[注意] CMOSでは無いので入力端子に電流が流れる。  アナログ的な用途(増幅器など)には向かない。 

動作

入力に'H'を入れるとトランジスタがONになり出力端子に接続した機器に電流が流れる。 
トランジスタ・アレイの応用 (リレーとLEDの駆動)
[応用] リレーとモータ、LEDの駆動
左にマイコンからリレーとモータ、LEDを駆動する回路を示す。  12V/500mA程度の負荷であれば直接駆動できる。 AC100Vの負荷はリレーを介して駆動する。 

デコーダ Decoder

[74HC138 外観 写真準備中]
{TSH} TC74HC138AP \60
DIP16 / 2〜6V / 38ns

「デコーダ」は、数ビットのデジタル信号を2進法の数字と解釈してある値に一致した時に出力をアサートする回路。あるいはバイナリの信号をワンホット信号や7セグメントLED用の信号に変換する回路。 マイコンが出力するアドレスを解釈して周辺LSIのうちの1つを指定するアドレスデコーダとして使用される。 

74HC138はA,B,Cがセレクト入力(Aが最下位)、G1,G2A,G2Bがイネーブル入力、Y0〜Y7がデコード出力となっている。 


デコーダ 74HC138の動作

代表的なデコーダである74HC138のタイミングチャートを上に示す。   3本のセレクト入力A,B,Cは0〜7までの整数を表現できる。 74HC138はセレクト入力からある数を検出してその値に一致した時に1つのデコード出力をアサートする。  セレクト入力が0の時はY0をアサート(負論理なので'L')、1の時はY1をアサート、7の時はY7をアサートする。 

G2A,G2B,G1はイネーブル入力で3ビット以上のデコーダを構成したい時の拡張用に使う。  イネーブル入力のいずれかがネゲートされるとデコード出力は全てネゲート(非選択状態)。  つまりG2A='H' または G2B='H' または G1='L'で Y0〜Y7が全て'H'になる。  イネーブル入力を使用しないのであればG2A='L', G2B='L', G1='H'にしておく。 

[応用] マイコンのアドレスデコーダ
[応用] マイコンのアドレス・デコーダ

アドレス・デコーダはマイコンがあるアドレス範囲をアクセスしようとしていることを知らせる働きがある。  74HC138をマイコンのアドレス・デコーダとして使用した回路例(74HC541を使用した入力ポート)を上に示す。 

マイコンのアドレスデコーダとして使用する時は「マイコンのチップ・セレクト→イネーブル入力(A,B,C)、マイコンのアドレス→セレクト入力(G2A)、デコード出力(Y0〜Y7)→周辺LSIのチップ・セレクト」と接続する。  残ったストローブ端子はマイコンの上位アドレスに接続すると良い。  メモリーや周辺LSIのチップ・セレクト入力は負論理なのでデコード出力は負論理になっている。 


エンコーダ Encoder

[エンコーダ 写真準備中]
{TSH} 74HC148AP \126 (8ライン→3ビット変換)

「エンコーダ」は、バイナリ以外のデジタル信号をバイナリ信号に変換する回路。 デコーダーと反対の変換をする回路とも言える。 パネルに取り付けてつまみの回転角を検出するセンサー、モーターの回転数を測定するセンサーもエンコーダーと言うので混同しないように注意。 マイコンの割り込み信号の生成やキーボードからの個別信号をキーコードに変換するために使用される。

‘148’は、8ラインのワンホット信号を3ビットのバイナリに変換する。 入力0〜7のうち、どれか1つの端子を'L'にし、それ以外はHとする。 すると出力A0〜A2にバイナリ信号が現れる。 入力0〜7が全て'H'ならば出力A0〜A2は全て'H'となる。 入力/出力共に負論理であることに注意。

EIとEO、GSは、入力幅を拡張するための端子。 使わない場合はEI='L'、EOとGSは出力なのでオープンで良い。


マルチプレクサ Selector/Multiplexer

74HC153
{TSH} TC74HC153AP \70 (4入力 2回路)
DIP16, 2〜6V, 26ns@5V/15pF
{TSH} TC74HC157AP \70 (2入力 4回路)
DIP16, 2〜6V, 21ns@5V/15pF

複数のデジタル信号のうち1つを選んで通過させる、切り替え機能を持つIC。  類似したICにアナログ信号を切り替える、アナログ・マルチプレクサがある。 ⇒アナログ・マルチプレクサ

少ピンマイコンで少しだけ入力ポートを増やしたい時に便利。 

74HC153はセレクト入力(A,B)でデータ入力(C0〜C3)のうちの1つを指定し、選択した信号がデータ出力(Y)に出力する。  74HC153のGはイネーブル入力(負論理)であり、'H'にするとデータ出力を強制的に'L'にする。 使用しないイネーブル入力はアサート状態にしておく。 

74HC157はセレクト入力(SELECT)でデータ入力(A,B)のうちの1つを指定し、選択した信号がデータ出力(Y)に出力する。  74HC157のSTはイネーブル入力であり、'H'にするとデータ出力を強制的に'L'にする。


マルチプレクサの動作
マルチプレクサの動作
74HC153は4チャンネルの切り替えスイッチ。  A,Bで入力すべきチャンネルを指定し、選択された信号がYに出力される。  ロータリースイッチの機能に近く人間が手でつまみを回す代りにディジタル信号で制御するものと言えばわかりやすい。
[注意] 74HC153,74HC157はアナログ信号を扱うことが出来ない

順序回路

フリップフロップ (クリア,プリセット付 D-FF)  D-type Flip-Flops with clear and preset

74HC74
{TSH} TC74HC74AP \50
DIP, 2〜6V, ts=15ns, th=0ns, t=30ns @4.5〜6V/50pF

情報を1ビット単位で記憶する順序回路の基本要素。 あるいはそれを集積したIC。  74HC74は非同期クリア、非同期プリセットを持っている。 

[ワンゲート・74VHC相当] TC7WH74FU

フリップフロップの種類

情報を1ビット単位で記憶することのできる回路として他にラッチがあるが、現代の設計手法である同期回路設計との相性が良いフリップフロップの方が多く使用される。 T-FFとかJK-FFとかさまざまな種類のフリップ・フロップが考案されたが、現代ではほとんどD-FFを使用。  アンド・ゲート、オア・ゲート、インバータといった回路を組み合わせてフリップフロップを作ることも可能だがタイミングの問題が生じやすいのでフリップフロップ専用のICを利用するのが望ましい。 


D-FFの動作

D-FFの動作

クリア(CLR)とプリセット(PR)がアサートされていない時はクロック(CK)の立ち上がりの瞬間のD入力の状態を記憶し、Qに出力する。  CLRは出力Qを強制的に'L'にする端子。 CKの状態に関係なくいつでも有効なので非同期クリアと言いう。 PRはQを強制的に'H'にする端子。 CKの状態に関係なくいつでも有効なので非同期プリセットと言いう。 

ディジタル回路は一般的に 電源投入時、またはリセットスイッチを押した時にフリップフロップの状態を確定させるためにリセット信号を発生する。  クリアとプリセットはこの信号でD-FFの出力を確定するために使用される。 

[注意] CMOSの入力端子を未接続にするのは禁止事項なのでPR、CLRを使わない場合はVCCに接続。 (PR,CLRは負論理であるため)  クリアとプリセットの両方をアサートするのは禁止。 

メタ・ステーブル、セットアップ・タイム、ホールド・タイム

D-FFにおいてクロックが立ち上がる瞬間にD入力が安定していなければならない。 立ち上がりの直前で安定していなければならない時間を「セットアップ・タイム」、直後で安定していなければならない時間を「ホールド・タイム」と言いう。 セットアップタイムまたはホールドタイムを守らなかった場合は「メタ・ステーブル」と言う不安定な状態になり、本来安定する時間である伝搬遅延時間(CK-Q)を超えても出力Qが安定しない。  いつかは安定するがその時間は保証されていない。 
D-FFの動作

[応用] ASICに入力する信号の同期化

ASICのセットアップ・タイムとホールド・タイムを守るために汎用ロジックを追加した例を左に示す。  全てのフリップフロップでセットアップ・タイム、ホールド・タイムを守るのが原則であるが、 任意のタイミングで動作している信号をフリップフロップに取り込まなければならない場合もある。 その場合、重要なフリップフロップの前に1個余分なフリップフロップを入れることで後段のセットアップ、ホールドタイムが守られるようにする。  この前段に汎用ロジックのD-FFを使用する。  このように回路規模の大きなIC同士を接続するため、間に入れる小さな回路をグルーロジックという。 つまり接着をする回路という意味。

クロック共通 D-FF (3ステート出力) D-type Flip-Flop with 3-state output

74HC374
{NXP} 74HC374N \59 (8回路,3ステート出力)
DIP20, 2〜6V, ts=19ns, th=0ns, tco=35ns
{NXP} 74HC574N \62 (8回路,3ステート出力)
DIP20, 2〜6V, ts=12ns, th=5ns, tco=30ns@4.5〜6V
クロックが共通、出力イネーブル付きのDフリップフロップ。  ディジタル回路は2進数の世界なので2進法で切のよい数である8回路となっている。  これらはマイコンの出力ポートの本数を拡張する、あるいはマイコンの外部バスでドライブ能力を補強する目的で使用される。  現代の設計手法である同期回路設計用に適応し、クロックが共通になっている。  574は374と機能的には同じだが、574の方がピン配置が素直になっており、配線がしやすい。 
[応用] マイコンの出力ポート
[応用] マイコンの出力ポート

マイコンの出力ポート拡張用として74HC374を使用した例を左に示す。  拡張するデバイスがわずかであるので左の図では外部アドレス・デコーダを省略している。  1つの74HC374で8ビットの拡張が可能であるが、左の図は4ビットのみを使用しLEDを接続している。 

プログラムの動作でこの出力ポートに書き込みを実行すると、 マイコンのCSとWR信号がアサートし、データをD-FFに書き込む。  するとマイコンのデータを反映してLEDの点灯状態が更新される。 


カウンタ Counter

[カウンタ 写真準備中]
{TI} SN74HC163N \60 (4bit/同期カウント/同期プリセット/同期クリア)

「カウンター」は、パルスの数を数える、または時間を計測する回路。 一般的には、クロック信号の立ち上がり(または立下り)でカウント・アップし、カウント値はバイナリ/パラレルのデジタル信号として出力される。パワーON直後は、カウント値が未確定なのでその値を0に戻す、リセット端子を持つ。

16進カウンタ(バイナリの4ビット)、あるいはBCDのタイプが多いが、それ以外の基数に対応したタイプもある。品種によっては、任意の値をカウンターに設定するプリセット機能を持つタイプ、ダウン・カウントができるタイプもある。

‘163’は16進の同期カウンター。同期カウンターはクロック(CLK,clock)のエッジで出力が変化するが、クロックの変化時刻からカウント出力(QA〜QD)の変化時刻までの遅延がほぼ揃うように設計されている。 カウント値はバイナリで4ビットの出力となっている。 デジタル信号の4ビットは0から15までの数を数えることができ、4ビット・バイナリカウンターは16進カウンターとも言う。 ちなみにカウント値が15(QA〜QD=HHHH)であるときにカウント・アップすると0に戻る。

カウント・イネーブル端子(ENT,ENP)は、どちらかを'L' とすることにより、カウントアップを禁止にすることができる。ENT,ENPを使用しないのであれば双方とも'H'にしておく。

‘163’は同期式のリセット(クリア)端子、同期式のロード(プリセット)端子を持つ。同期式というのは、当該の端子をアサートしたタイミングで即座に状態が変わるわけではなく、クロックのエッジを基準としたタイミングで変化するという意味。クリア、プリセットいずれも負論理となっている(Lがアサート)。

リセット端子(CLR,clear)は、CLKの立ち上がり時にアサート(CLR='L')することによりカウント値を0に戻す。クリア機能は、カウント・アップやプリセットより優先される。

ロード端子(LOAD)は、CLKの立ち上がり時にアサート(LOAD='L')することによりカウント値をA〜Dに示した値を内部FFに設定する。プリセット機能は、カウント・アップより優先される。

キャリー出力端子(CO,carry_output,ripple_carry)は、複数の‘163’をカスケード接続し、より多くの桁数までカウントできるように拡張するために使用する。2個のカスケードでは8ビット・カウンターになるので0〜255までカウントすることができる。使用しない出力端子はオープンで良い。


シフト・レジスタ Shift Register

[シフト・レジスタ 写真準備中]
{TI} SN74HC165N \60 (8bit/並列→直列)
{NXP} 74HC595N \62 (8bit/直列→並列)

「シフトレジスター」はパラレル信号をシリアル信号に変換、またはシリアル信号をパラレル信号に変換 する。またはデジタル信号をnクロック分、遅延させる目的やデータの一時的な記憶のために使われることもある。※nは自然数

‘165’は、パラレル・シリアル入力→シリアル出力、8ビットのシフト・レジスタ。 シリアル入力を使用するのであればクロック(CK)の立ち上がりでデータが内部FFに取り込まれる。

データー入力はシリアルに行う方法とパラレルに行う方法があるが、まずシリアル入力から。 シリアル入力端子(SI,serial input)のデータは1発目のクロックで初段のFFに記録され、 それ以降クロックの立ち上がり毎にデーターは後段のFFにバケツリレーのように移動していく。 8発目のクロックでシリアル出力QHに出力される。

パラレル入力を使用するのであればプリセット端子(LOAD)を使用する。 プリセット端子を'L'にするとクロック端子に関係なく、A〜Hの状態が内部のFFに設定される。 プリセット直後はHの信号がそのままQHに出力される。 その後、クロックが加わる毎に1ビットずつ、G→F→E→D→C→B→Aの順序で、QHに出力される。 シフト機能は同期式だがプリセット機能は非同期式(クロックの影響を受けない)。

クロックイネーブル端子()は、Hにすることにより、シフトを禁止できる。 使用しない場合はLにしておく。なおプリセット機能はクロックイネーブルの影響を受けない。

‘595’はシリアル入力→パラレル出力、8ビットのシフト・レジスタ。 出力には8ビットのFFと8ビットの3ステート・バッファーが付加されている。 シリアル入力SIから入ったデーターはシリアル・クロックSCKの立ち上がりでシフトしながら前段のFF(シフト・レジスタ)に記憶される。

リセット入力SCLRは、'L'にすることにより、クロックに関係なくシフト・レジストの全ビットを0に初期化する。後段のFFはリセットされない。

後段クロックRCKは、立ち上がりでシフトレジスタの値が後段のFF(ストレージ・レジスタ)に転写される。RCLが変化しないならそのデーターが保持される。

出力イネーブルGは、3ステート・バッファーの駆動状態を指定する。 'L'ならば出力QA〜QHにストレージ・レジスタからのデーターが出力され、'H'ならQA〜QHはハイインピーダンスになる。


ラッチ Latch

[ラッチ 写真準備中]
{NXP} 74HC373N \62 (8回路/3ステート・バッファー付)
{TSH} 74VHC373F(F) \132
{TI} SN74LV373ADW \59

「ラッチ」は、データーを記憶する回路で、FF(フリップ・フロップ)と類似の機能がある。 FFとの相違点はラッチ・イネーブル端子の状態によりデーターを筒抜けに出来る点にある。 マイコン・拡張バスのバスバッファー、簡単なIOの増設などに用いられる。

FFに比べて内部回路が単純になるためデジタル回路の黎明期によく使われた。 現在はできるだけFFを使用し、ラッチを使わないのが良い設計と言われている。 同期回路設計となじまず、タイミングの問題を起こしやすいため。

‘373’は3ステート・バッファー付きの8ビット・ラッチ。 ラッチ・イネーブルと出力イネーブルは全てのラッチで共通になっているので8ビット・パラレル信号用として使う。

ラッチ・イネーブル(LE)は、入力Dnを筒抜けで出力Qnに通すか、保持するかの選択。 'H'ならばDnから入力された信号をそのままQnに出力する。 'L'なら前回LE=Hであった直近時刻のDnの値を保持する。

出力イネーブル(OE)は、出力側にある3ステートバッファーの駆動状態を指定する。 'L'ならばFFの状態が出力端子に出る(イネーブル)。'H'ならばハイ・インピーダンス状態となる(ディスエーブル)。使わないならば'L'固定にしておく。


⇒フリップフロップ(D-FF) 

その他 

以下のICは汎用ロジックとしてはあまり使用されなくなったもの。  PLD、マイコンに置き換えを推奨。 
複合ゲート: AOI
演算機能: ALU, アキュムレータ(ACC), コンパレータ, フルアダー(FA)
特殊ドライバ: 7セグメントドライバ
発振回路: マルチ・バイブレータ, VCO, 水晶発振回路

参考文献

*本webは電子工作をされている方が参考とするための「図鑑」です。  電子部品の販売はしておりませんので購入を検討されている方は各販売店のwebを参照ください。 
*{}で囲まれた2〜4文字はメーカを表す記号。
販売店: Digi-Dey, 千石電商

電子工作キットシリーズ【1000円以上送料無料】秋月電子のキットで実用電子工作 拡声器・ドア...

--- Copyright N.Kojima 2007 ---

本webデータに対して許可のない 複製・譲渡はお断りします。 本webにリンクを張る場合 許可は必要ありません。
[ ホーム(総目次) ] → [ 電子工作 ] → [ ディジタル回路 ] → [ 汎用ロジック3/3(本ページの先頭) ]
[前のページ]