TC74HC86A(XOR) TC4030B(XOR)
ロジックIC(4回路入り)を使うといくつか回路が余ってしまって勿体ないです
4回路の接続を工夫すれば色々な出力パターンが得られるのではないかと言う事でシミュレートてみました!
1. ロジックICとは
そんな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 論理回路の中身
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に示す通り全く同じです。
表3:XOR回路における入力A・Bの状態と出力
入力A | 入力B | 出力 |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
今回例に挙げた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」)に戻っちゃいました・・・。
通信情報の超簡単な暗号化と解読装置に使えるかもしれません
励みになりますのでよければクリック下さい(^o^)/