エンコーダーは、その名前が示すように、大きなビットの情報を小さなビット値にエンコードします。入力と出力の数とその動作に基づいて、エンコーダには多くの種類があり ます。ただし、すべてのエンコーダーには1つの基本的なルールがあり、エンコーダーの出力行の数は常に入力行の数より少なくなります。この記事では、エンコーダー、エンコーダーとは何か、デジタル回路でエンコーダーが使用される方法と理由について詳しく説明します。
エンコーダの基本原理:
以下に示すように、エンコーダーがブラックボックスであると想像してみてください。これにより、入力ラインの数が4から2つの出力ラインに魔法のように減少しますが、データを失うことなく同じ情報を提供します。
まず、このエンコーダーの名前を決定しましょう。 4つの入力と2つの出力があるため、このエンコーダーの名前は4:2エンコーダーになります。エンコーダの出力ライン数が「n」の場合、入力ライン数は2になります。 n、この場合、出力ラインの数は2(n = 2)であるため、入力ラインの数は(2 2 = 4)4である必要があります。これはまさにその通りです。 4つの入力ピンにはI0からI3のラベルが付けられ、2つの出力ピンにはO0からO1のラベルが付けられています。
では、エンコーダーはどのようにして4つの信号を2つに変換するのでしょうか。以下の真理値表を見ると、理解できます。ここに示されているような通常のエンコーダには、特定の時間に1つの入力ピンのみがハイになるという規則があるため、次の真理値表では1つの入力のみがハイになることを知っておくことも重要です。
入力と出力のすべての可能な条件は、上記の真理値表に示されています。たとえば、O1のみがハイ(1)で、他のすべての入力がロー(0)の場合、両方の出力ピンがロー(0)になります。同様に、それぞれの場合について、出力ピンもそのステータスを変更します。この出力ビットステータスを使用することにより、ユーザーはエンコーダに与えられた入力信号までさかのぼることができます。
さて、4行を2行に変換することについて何が空想ですか?なぜそれが必要なのですか?
理解するために4:2エンコーダーについて説明しましたが、8:3エンコーダー、16:4エンコーダーなど、より多くの入力を取り、それらをより少ない出力数に変換できるエンコーダーが他にもあります。 of Encoderは、MCU / MPUで使用されるピンの数を減らしたり、スイッチやLEDのアレイがあるPLCやその他のシステムで信号伝送ワイヤの数を減らしたりする必要がある場合に非常に役立ちます。また、より少ない配線を使用してデータを効率的に送信するためにも使用されます。一部のアプリケーションでは、複数の入力が高くなる可能性がある状況が発生する可能性があります(1)。その場合、プライオリティエンコーダーと呼ばれるものを使用します。これについては、この記事で詳しく説明します。
組み合わせ論理設計を使用したエンコーダの構築
これで、エンコーダーがどのように機能し、どこで使用されるかがわかりました。単純な論理ゲートを使用して構築する方法を学びましょう。8:3のようなエンコーダーはSN74LS148のようなきちんとした単一パッケージICとして利用できますが、必要な真理値表に基づいてプロジェクトのカスタムエンコーダーを作成できるように、それらがどのように構築されているかを知ることが重要です。
ブール式:
組み合わせ論理デバイスを設計する最初の方法は、真理値表のブール式を見つけることです。それは非常に簡単で、真理値表を見るだけで簡単に判断できます。以前に見たのと同じ真理値表を、理解を深めるためにいくつかの図とともに以下に示します。
式の数は出力行の数と等しくなります。ここでは2つの出力があるため、2つの式があります。最初の出力O0については、どの条件でハイになっているのかを確認し(1)、対応する入力ピン番号をトレースします。これもハイのままです(1)。同様に、O0のすべての高い値について、どの入力ピン番号が高いかをメモし、ピンを追加します。出力ピンO0に対応する入力ピンは上で赤で強調表示され、O1の場合は青で強調表示されます。したがって、O0とO1の式は次のようになります。
O 1 = I 3 + I 2 O 0 = I 3 + I 1
4:2エンコーダ回路図:
ブール式を取得したら、それをGatesの形式で描画する必要があります。ここでは、加算(+)演算があるため、回路の構築にORゲートを使用します。必要に応じて、ブール式を簡略化または変更することもできます。上記式の回路図を以下に示します。
回路は7432ORゲートICを使用して簡単に構築できます。以下に示すように、ブレッドボード上にエンコーダ回路を構築しました
4つの入力ライン(I0、I1、I2、およびI3)は、4つのプッシュボタンによって提供されます。ボタンが押されると、+ 5Vがピンにリンクされてロジック1になり、ボタンが押されない場合、ピンはグランドに保持されます。 10kのプルダウン抵抗を介して論理ゼロにします。出力(O0およびO1)は、1対の赤色LEDを使用して表されます。 LEDが点灯している場合は、出力ロジックが1であることを意味し、オフになっている場合は、出力ロジックが0であることを意味します。エンコーダ回路の完全な動作を以下のビデオに示します。
ご覧のとおり、最初のボタンを押すと入力I0がハイになり、両方の出力がローのままになります。2番目のボタンを押すと、入力I1がオンになり、1つのLEDがハイになり、O0がハイであることを示します。最後に、4番目のボタンが押されると、入力I3がハイになり、両方のLEDがハイになります。これは非常に単純な回路であるため、ブレッドボード上に簡単に構築できますが、実際のエンコーダーの場合、回路は少し複雑になります。ただし、エンコーダーは、プロジェクトに適している場合に購入できるICパッケージとしても入手できます。
8:3エンコーダー:
8:3エンコーダーの動作と使用法も、入力ピンと出力ピンの数を除いて、4:2エンコーダーと同様です。8:3エンコーダーは、オクタルからバイナリーエンコーダーとも呼ばれます。8:3エンコーダーのブロック図を以下に示します。
ここで、エンコーダには8つの入力と3つの出力があります。ここでも、常に1つの入力のみがハイ(1)である必要があります。入力が8つあるため、8進入力と呼ばれ、出力が3つあるため、バイナリ出力とも呼ばれます。エンコーダの真理値表を以下に示します。
8:3エンコーダの真理値表:
ブール式:
3つの出力があるので、次のように3つの式があります。
O 2 = I 7 + I 6 + I 5 + I 4 O 1 = I 7 + I 6 + I 3 + I 2 O 0 = I 7 + I 5 + I 3 + I 1
8:3エンコーダ回路図:
いつものようにブール式が得られたら、以下に示すように、ORゲートを使用して回路図を作成できます。
この回路は4入力ORゲートICを使用しますが、ブール式を簡略化して他の通常の2入力ゲートICを使用することもできます。
通常のエンコーダの欠点:
これらのタイプのエンコーダには、次の大きな欠点があります。
- どの入力もハイでない場合、出力はすべてゼロになりますが、この条件は最初のビットがハイ(MSB)と競合します。したがって、少なくとも任意の1ビットが常にオンのままになるように常に注意する必要があります。
- 複数の入力がハイの場合、出力は折りたたまれ、いずれかの入力に対して結果が得られ、混乱を招く可能性があります。
これらの問題を克服するために、プライオリティエンコーダと呼ばれる別のタイプのエンコーダを使用します。これは、追加の出力を使用して出力が有効かどうかを判断します。複数の入力が助けになる場合は、LSDから始まる入力が単独で考慮されます。他の入力を無視します。
プライオリティエンコーダ:
例として4:2プライオリティエンコーダーを分析して、通常のエンコーダーとどのように異なり、上記の2つの欠点を克服できるかを理解しましょう。4:2プライオリティエンコーダのブロック図を以下に示します。
優先度4:2エンコーダーにも4つの入力と2つの出力がありますが、有効なビットを表すVと呼ばれる別の出力を追加します。この有効なビットは、4つの入力ピンすべてがロー(0)であるかどうかをチェックし、ローの場合、ビット自体もローになり、出力が無効であることを示します。したがって、上記の最初の欠点を克服できます。
4:2プライオリティエンコーダの真理値表:
次の欠点は、MSBビットを優先することで回避できます。エンコーダーは、MSBからチェックし、最初のビットがハイ(1)であると検出すると、それに応じて出力を生成します。したがって、他のピンがハイかローかは関係ありません。したがって、以下の真理値表では、1に達すると、ドントケア値は「X」で表されます。
ブール式:
ここで、O0、O1、Vの3つの式を導出する必要があります。真理値表には項目が関係ないため、K-mapメソッドを使用してこのブール式を導出する必要があります。Kマップはこの記事の範囲外であるため、Kマップを使用して解決する方法については説明しません。ただし、自分で干渉して学習できるように、マップを以下に示します。
上記のマップで、左側はO1用、右側はO0用です。出力ラインはyで示され、入力ラインはxで示されます。したがって、それに応じて方程式を整理すると、次のようになります。
O 1 = I 3 + I 2 O 0 = I 2 I 1 '+ I 3
同様に、有効なビット「V」の場合、ブール式は次のように指定できます。
V = I 3 + I 2 + I 1 + I 0
回路図:
このプロジェクトの回路図は、ブール式を使用して作成できます。
回路は、基本的なNOT、AND、およびORゲートを使用して構築できます。ここでは、ビットO0とO1が出力と見なされ、ビットVが出力の検証に使用されます。ビットVがハイの場合にのみ、Vの値がロー(0)の場合に出力が考慮されます。これは、すべての入力ピンがゼロであることを意味するため、出力を無視する必要があります。