一般に、レジスタはバイナリ データを格納するために使用されるデバイスとして定義できますが、複数のデータ ビットを格納する場合は、直列に接続された一連のフリップフロップが使用されます。レジスタに格納されたデータは、CLK パルスを提供することにより、右側または左側のシフト レジスタを使用してシフトできます。 シフトレジスタ のグループです ビーチサンダル 複数ビットのデータを格納するために使用されます。同様に、n ビットのシフト レジスタは、n 個のフリップフロップを単に接続するだけで形成できます。各フリップフロップは、単一のデータ ビットを格納するだけです。レジスタがビットを右側にシフトすると右シフトレジスタになりますが、左側にシフトする場合は左シフトレジスタと呼ばれます。この記事では、シフト レジスタのタイプの 1 つ、つまりシリアル イン パラレル アウト シフト レジスタまたは SIPOシフトレジスタ .
SIPO シフト レジスタとは何ですか?
シリアル入力パラレル出力を可能にするシフトレジスタは、SIPOシフトレジスタとして知られています。 SIPO レジスタでは、SIPO という用語はシリアル入力パラレル出力を表します。このタイプのシフト レジスタでは、入力データはビット単位でシリアルに与えられます。クロック パルスごとに、すべての FF の入力データを 1 つの位置だけシフトできます。各フリップフロップの o/p は、並列に受信できます。
回路図
の SISOシフトレジスタ回路図 を以下に示します。この回路は、図に示すように接続された4つのDフリップフロップで構築できます。CLR信号は、すべてのFFにCLK信号に加えて与えられ、それらをリセットします。上記の回路では、1 番目の FF の出力が 2 番目の FF の入力に与えられます。これら4つのDフリップフロップは全て直列に接続されているが、それは全てのフリップフロップに同じCLK信号が与えられるからである。
SIPO シフト レジスタの働き
SIPO シフト レジスタの動作は次のとおりです。左側の最初のフリップフロップからシリアル データ入力を受け取り、パラレル データ出力を生成します。 4 ビット SIPO シフトレジスタ回路を以下に示します。このシフト レジスタの動作は、最初に FF1 から FF4 までの回路のすべてのフリップフロップをリセットする必要があるため、QA から QD などの FF のすべての出力が論理ゼロ レベルになり、パラレル データ出力がなくなります。
SIPO シフト レジスタの構造を上に示します。図では、最初のフリップフロップ出力「QA」が 2 番目のフリップフロップ入力「DB」に接続されています。 2 番目のフリップフロップの出力「QB」は 3 番目のフリップフロップの入力 DC に接続され、3 番目のフリップフロップの出力「QC」は 4 番目のフリップフロップの入力「DD」に接続されます。ここで、QA、QB、QC、QD はデータ出力です。
最初は、すべての出力がゼロになるので、CLK パルスはありません。すべてのデータがゼロになります。 1101 のような 4 ビットのデータ入力の例を見てみましょう。最初のフリップフロップに最初のクロック パルス「1」を入力すると、FF と QA に入力されるデータは「1」になり、QB のようなすべての出力が残ります。 、QC と QD はゼロになります。したがって、最初のデータ出力は「1000」です
2 番目のクロック パルスを「0」として最初のフリップフロップに適用すると、QA は「0」になり、QB は「0」になり、QC は「0」になり、QD は「0」になります。そのため、2 番目のデータ出力は、右シフト プロセスにより「0100」になります。
3 番目のクロック パルスを「1」として最初のフリップフロップに適用すると、QA は「1」になり、QB は「0」になり、QC は「1」になり、QD は「0」になります。したがって、3 番目のデータ出力は、右シフト プロセスにより「1011」になります。
4 番目のクロック パルスを「1」として最初のフリップフロップに適用すると、QA は「1」になり、QB は「1」になり、QC は「0」になり、QD は「1」になります。したがって、3 番目のデータ出力は、右シフト プロセスにより「1101」になります。
SIPO シフト レジスタの真理値表
SIPO シフトレジスタの真理値表を以下に示します。
タイミング図
の SIPOシフトレジスタのタイミング図 を以下に示します。
ここでは、立ち上がりエッジの CLK i/p 信号を使用しています。最初のクロック パルスで、入力データは QA = 「1」になり、QB、QC、QD などの他のすべての値は「0」になります。したがって、出力は「1000」になります。 2 番目のクロック パルスで、出力は「0101」になります。 3 番目のクロック パルスで出力は「1010」になり、4 番目のクロック パルスで出力は「1101」になります。
SIPO シフト レジスタ Verilog コード
SIPO シフト レジスタの Verilog コードを以下に示します。
モジュール sipomod(clk,clear,si,po);
入力 clk, si,clear;
出力 [3:0] po;
reg [3:0] tmp;
reg [3:0] po;
常に @(posedge clk)
始める
もし(クリア)
tmp <= 4’b0000;
そうしないと
tmp <= tmp << 1;
tmp[0] <= はい;
po = tmp;
終わり
エンドモジュール
74HC595 IC SIPO シフト レジスタ回路とその動作
74HC595 IC は 8 ビット シリアル イン パラレル アウト シフト レジスタであるため、入力をシリアルに使用し、パラレル出力を提供します。この IC には 16 ピンが含まれており、SOIC、DIP、TSSOP、SSOP などのさまざまなパッケージで入手できます。
74HC595 のピン構成を以下に示します。各ピンについては以下で説明します。
ピン 1 ~ 7 & 15 (QB から QH & QA): これらは、7 セグメント ディスプレイや LED などの出力デバイスを接続するために使用される o/p ピンです。
Pin8 (GND): この GND ピンは、単にマイコンの電源の GND ピンに接続されています。
Pin9 (QH): このピンは、異なる IC の SER ピンに接続するために使用され、16 出力を含む単一の IC のように機能するように、両方の IC に同じ CLK 信号を与えます。
Pin16 (Vcc): このピンは、5VロジックレベルのICであるため、マイクロコントローラまたは電源に接続するために使用されます。
ピン 14 (BE): データがこのピン全体にシリアルに入力されるのは、シリアル i/p ピンです。
Pin11 (SRCLK): CLK 信号がこのピン全体に与えられるため、シフト レジスタの CLK のように機能するのはシフト レジスタ CLK ピンです。
Pin12 (RCLK): これらの IC に接続されているデバイスの o/ps を観察するために使用されるのはレジスタ CLK ピンです。
Pin10 (SRCLR): シフト レジスタの CLR ピンです。このピンは主に、レジスタのストレージをクリアする必要がある場合に使用されます。
ピン 13 (OE): これは、o/p イネーブル ピンです。このピンが HIGH に設定されると、シフト レジスタは高インピーダンス状態に設定され、o/ps は送信されません。このピンをローに設定すると、o/ps を得ることができます。
74HC595 IC 作動中
LED制御用IC 74HC595の回路図を以下に示します。シフト レジスタの 3 ピンは、ピン 11、12、14 のように Arduino に接続する必要があります。8 つの LED はすべて、このシフト レジスタ IC に簡単に接続されます。
この回路を設計するために必要なコンポーネントには、主に 74HC595 シフト レジスタ IC、Arduino UNO、5V 電源、ブレッドボード、8 個の LED、1KΩ 抵抗器 (8 個)、および接続ワイヤが含まれます。
まず、シフト レジスタのシリアル i/p ピンを Arduino Uno のピン 4 に接続する必要があります。その後、ICのピン11と12のようなCLKピンとラッチピンの両方をArduino Unoのピン5と6にそれぞれ接続します。 LED は、1KΩ の電流制限抵抗を使用して IC の 8-o/p ピンに接続されます。 Arduinoから5Vを供給する前に、Arduinoに共通のGNDを持つ74HC595 ICに別の5V電源が使用されます。
コード
8 個の LED を連続してオンにする簡単なコードを以下に示します。
int ラッチピン = 5;
int clkPin = 6;
int dataPin = 4;
バイト LED = 0;
ボイドセットアップ()
{
Serial.begin(9600);
pinMode(latchPin、出力);
pinMode(dataPin、出力);
pinMode(clkPin、出力);
}
空ループ()
{
int i=0;
LED = 0;
シフトLED();
遅延(500);
for (i = 0; i < 8; i++)
{
bitSet(LED, i);
Serial.println(LED);
シフトLED();
遅延(500);
}
}
ボイドシフトLED()
{
digitalWrite(latchPin、LOW);
shiftOut(dataPin, clkPin, MSBFIRST, LED);
digitalWrite(latchPin、HIGH);
}
このシフトレジスタ回路の働きは、バイト変数LEDがゼロに設定されているため、最初は8個のLEDがすべてオフになります。これで、すべてのビットが「bitSet」関数で 1 に設定され、「shiftOut」関数でシフトアウトされます。同様に、同じシリーズのすべての LED がオンになります。 LEDを消したい場合は「bitClear」機能を利用できます。
74HC595 シフト レジスタ IC は、サーバー、LED 制御、産業用制御、電子機器、ネットワーク スイッチなどのさまざまなアプリケーションで使用されます。
アプリケーション
の シリアル入力パラレル出力シフトレジスタの応用 を以下に示します。
- 一般に、シフトレジスタは一時的なデータを格納するために使用され、リング&ジョンソンとして使用されます リングカウンター .
- これらは、データの転送と操作に使用されます。
- これらのフリップフロップは、主に、データ ラインを多数のパラレル ラインに逆多重化する必要がある通信ライン内で使用されます。これは、このシフト レジスタがデータをシリアルからパラレルに変更するために使用されるためです。
- これらは、データの暗号化と復号化に使用されます。
- このシフト レジスタは、PN コードまたは疑似ノイズ シーケンス番号を生成するために CDMA 内で使用されます。
- それらを使用してデータを追跡できます!
- SIPO シフト レジスタは、さまざまなデジタル アプリケーションでデータ変換に使用されます。
- 場合によっては、このタイプのシフト レジスタをマイクロプロセッサに接続するだけで、さらに GPIO ピンが必要になることがあります。
- この SIPO シフト レジスタの実際の用途は、マイクロプロセッサの出力データをリモート パネル インジケータに与えることです。
したがって、これは SIPO の概要です。 シフトレジスタ – アプリケーションを含む回路、動作、真理値表、およびタイミング図。最も頻繁に使用される SIPO シフト レジスタ コンポーネントは、74HC595、74LS164、74HC164/74164、SN74ALS164A、SN74AHC594、SN74AHC595、および CD4094 です。これらのレジスタは非常に高速に使用でき、データはシリアルからパラレルに非常に簡単に変換でき、その設計は単純です。 PISO シフト レジスタとは何かという質問があります。