NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

4回路ロジックICで色々な出力パターンを作る!(XOR編)

 
イメージ 1    イメージ 2
         TC74HC86A(XOR)                       TC4030B(XOR)

 ロジックIC(4回路入り)を使うといくつか回路が余ってしまって勿体ないです
 4回路の接続を工夫すれば色々な出力パターンが得られるのではないかと言う事でシミュレートてみました!

1. ロジックICとは

 普段何気なく使っているPCやタブレット・携帯電話などに使われているCPUやメモリー等は、論理回路が組み合わされて出来ています。
 そんなCPUやメモリーの最小単位であるロジック(論理)回路が数個入って汎用IC化された物が各種シリーズとして表1のラインナップで市販されています。
 特に「74HC系」が売れ筋で種類も多く、「4000B系」もそこそこ種類が有り電源電圧範囲が広い(3~18V)、静止消費電流が少ない(0.0075mA)と使い勝手が良いです。
 
表1:ロジックICのファミリー!特性一覧
ロジックIC
(型番)
電源
電圧範囲
(VCC)
V
最大
入力電圧
(Vmax)
V
入力
電圧レベル
(VIH/VIL)
V

出力電流
(IOH/IOL)
mA
静止
消費電流
(ICC)
mA
最大動作
周波数
(Fmax)
MHz
ノーマル 4.75~5.25 5.5 2/0.8 -0.4/16 8 15
LS 4.75~5.25 7 2/0.8 -0.4/8 1.6 25
ALS 4.5~5.5 7 2/0.8 -0.4/8 0.85 34
AS 4.5~5.5 7 2/0.8 -2/20 3.2 105
HC 2~6 Vcc 0.7/0.3Vcc -4/4 0.02 25
4000B 3~18 Vcc 0.7/0.3Vcc -0.42/0.42 0.0075 3.5
4500B 3~18 Vcc 0.7/0.3Vcc -0.42/0.42 0.0075 3.5
HCT 4.5~5.5 Vcc 2/0.8 -4/4 0.02 22
AC 2~6 Vcc 0.7/0.3Vcc -24/24 0.02 125
ACT 4.5~5.5 Vcc 2/0.8 -24/24 0.02 125
VHC 2~5.5 5.5 0.7/0.3Vcc -8/8 0.02 75
LVC 1.65~3.6 5.5 2/0.8 -24/24 0.01 100
LCX 2~3.6 5.5 2/0.8 -24/24 0.01 150
※Vcc=5V(HC/ACはVcc=4.5~6V、LVC/LCXはVcc=3.3V)
※2017.05 NOBのArduino日記!調べ
 
1.1 論理回路の中身
 過去の記事ですが論理回路の中身と動作はこんな感じになっています。
 ロジックICはシンプルな構造をしているので、マイコンに比べれば断然「早い!安い!安定!省電力!」と4拍子揃ってます!
 参考に論理回路1つでも以下の例に示す様な警告灯の点灯・消灯をマイコンの様に制御する事も出来ます。
 
1.2 制御例
 表1の様に「装置A」と「装置B」が共に動作(停止)していたら正常なので「警告灯」は付けない。
しかし「装置A」もしくは「装置B」の片方のみ動作(停止)していたら異常なので「警告灯」を点ける。

表2:装置A・Bの状態と警告灯の動作
装置A 装置B 警告灯
停止(0) 停止(0) 消灯(0)
停止(0) 動作(1) 点灯(1)
動作(1) 停止(0) 点灯(1)
動作(1) 動作(1) 消灯(0)
 
1.3 XOR回路
 表2の動作を良く見ると「0」と「1」で表せる2つの信号が入力し、「0」と「1」で表せる1つの信号が出力されています。
 この様な動作はロジックICの動作に置き換える事が出来、参考にXORロジックICの動作は表3に示す通り全く同じです。
 この為マイコンの代わりにロジックIC(TC74HC86AやTC4030B等)に置き換えて制御する事が出来ちゃいます
 
表3:XOR回路における入力A・Bの状態と出力
入力A 入力B 出力
0 0 0
0 1 1
1 0 1
1 1 0
※XOR:EORともEX-ORとも言われる排他的論理和の論理演算子

 上記制御例の様にピッタリ当てはまる場合は良いのですが、汎用ロジックIC(2入力1出力)で用意されているのは主にAND、ORNAND、NOR、XOR」の5種類です。
 今回例に挙げたON・OFF信号が2つ入力して1つ出力する際のパターンは、4桁の2進数で表される数に相当しますので「20+21+22+23=1+2+4+8=15」で「0」も1パターンとして数える事から全16パターン有ります。
 これでは11パターン足りません

2. シミュレート

 なければ作るしかありません!
 4回路入りロジックIC(XOR)の回路同士を接続すると出力パターンが変わります。
 接続方法の組み合わせは55通り有りましたので、表4の通りシミュレートしてみました!
 足りない11パターンを含めて可能であれば一つのロジックIC(4回路入り)で16パターンの出力が得られたら良いですね
 
2.1 計算式
 論理計算のシミュレートにはEXCELを使用しました。
 因みに表4のD5セルの計算式は以下の通りです。
 これを右4列・下59行迄にオートフィルしています。

=BITXOR(INDIRECT(*$*&$**),INDIRECT(*$*&$**))
 
※*:シートの何処でも良いので行と列の参照先を入力しておきこれに関連付けます
 
表4:4回路入り「XOR」回路による接続全組合せによる出力一覧
XOR
演算回数
入力 出力(パターン)
A B 2進数 (10進数)
0回目 0回目1行目 0 1 0 1 5
0回目2行目 0 0 1 1 3
1回目 0回目1行目 0回目2行目 0 1 1 0 6
2回目 0回目1行目 1回目1行目 0 0 1 1 3
0回目2行目 1回目1行目 0 1 0 1 5
3回目 0回目1行目 2回目1行目 0 1 1 0 6
0回目1行目 2回目2行目 0 0 0 0 0
0回目2行目 2回目1行目 0 0 0 0 0
0回目2行目 2回目2行目 0 1 1 0 6
1回目1行目 2回目1行目 0 1 0 1 5
1回目1行目 2回目2行目 0 0 1 1 3
2回目1行目 2回目2行目 0 1 1 0 6
4回目 0回目1行目 3回目1行目 0 0 1 1 3
0回目1行目 3回目2行目 0 1 0 1 5
0回目1行目 3回目3行目 0 1 0 1 5
0回目1行目 3回目4行目 0 0 1 1 3
0回目1行目 3回目5行目 0 0 0 0 0
0回目1行目 3回目6行目 0 1 1 0 6
0回目1行目 3回目7行目 0 0 1 1 3
0回目2行目 3回目1行目 0 1 0 1 5
0回目2行目 3回目2行目 0 0 1 1 3
0回目2行目 3回目3行目 0 0 1 1 3
0回目2行目 3回目4行目 0 1 0 1 5
0回目2行目 3回目5行目 0 1 1 0 6
0回目2行目 3回目6行目 0 0 0 0 0
0回目2行目 3回目7行目 0 1 0 1 5
1回目1行目 3回目1行目 0 0 0 0 0
1回目1行目 3回目2行目 0 1 1 0 6
1回目1行目 3回目3行目 0 1 1 0 6
1回目1行目 3回目4行目 0 0 0 0 0
1回目1行目 3回目5行目 0 0 1 1 3
1回目1行目 3回目6行目 0 1 0 1 5
1回目1行目 3回目7行目 0 0 0 0 0
2回目1行目 3回目1行目 0 1 0 1 5
2回目1行目 3回目2行目 0 0 1 1 3
2回目1行目 3回目3行目 0 0 1 1 3
2回目1行目 3回目4行目 0 1 0 1 5
2回目1行目 3回目5行目 0 1 1 0 6
2回目1行目 3回目6行目 0 0 0 0 0
2回目1行目 3回目7行目 0 1 0 1 5
2回目2行目 3回目1行目 0 0 1 1 3
2回目2行目 3回目2行目 0 1 0 1 5
2回目2行目 3回目3行目 0 1 0 1 5
2回目2行目 3回目4行目 0 0 1 1 3
2回目2行目 3回目5行目 0 0 0 0 0
2回目2行目 3回目6行目 0 1 1 0 6
2回目2行目 3回目7行目 0 0 1 1 3
3回目1行目 3回目2行目 0 1 1 0 6
3回目1行目 3回目3行目 0 1 1 0 6
3回目1行目 3回目4行目 0 0 0 0 0
3回目1行目 3回目5行目 0 0 1 1 3
3回目1行目 3回目6行目 0 1 0 1 5
3回目1行目 3回目7行目 0 0 0 0 0
3回目2行目 3回目3行目 0 0 0 0 0
3回目2行目 3回目4行目 0 1 1 0 6
3回目2行目 3回目5行目 0 1 0 1 5
3回目2行目 3回目6行目 0 0 1 1 3
3回目2行目 3回目7行目 0 1 1 0 6
3回目3行目 3回目4行目 0 1 1 0 6
3回目3行目 3回目5行目 0 1 0 1 5
3回目3行目 3回目6行目 0 0 1 1 3
3回目3行目 3回目7行目 0 1 1 0 6
3回目4行目 3回目5行目 0 0 1 1 3
3回目4行目 3回目6行目 0 1 0 1 5
3回目4行目 3回目7行目 0 0 0 0 0
3回目5行目 3回目6行目 0 1 1 0 6
3回目5行目 3回目7行目 0 0 1 1 3
3回目6行目 3回目7行目 0 1 0 1 5
※2017.05 NOBのArduino日記調べ
 
※太字部:最も少ない接続回数で出現したパターンを太字にしています
※最初の入力信号:「20+21=1+2=3」で「0」も1パターンとして数える為全4パターン

3. まとめ

 XOR回路による出力パターンは「6」なので、それ以外に「0」,「3」,「5」の3パターンが出来ました!
 「0」パターンは新しいですが何の仕事もしてくれそうにありません
 またパターン「5」と「3」については、入力「A」「B」をXOR計算した結果をさらに「A」(もしくは「B」)でXOR計算すると反対の「B」(もしくは「A」)に戻っちゃいました・・・。
 通信情報の超簡単な暗号化と解読装置に使えるかもしれません
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【4回路ロジックICで色々な出力パターンを作る】目次に戻る