Arus apa yang dikontrol oleh register geser? Register sekuensial (shift).

Ulasan ini sebenarnya didedikasikan untuk pengguna Arduino pemula atau mereka yang ingin terjun dalam bisnis ini. Kita akan membahas tentang menambah jumlah output mikrokontroler dengan menggunakan shift register, dan ini tidak memerlukan biaya yang besar (dibandingkan membeli Arduino Mega misalnya). Penerapan paling sederhana adalah dengan mengedipkan LED, jadi mari kita coba praktiknya.

Ketika saya mulai mengenal mikrokontroler (sebenarnya saya masih terus “mulai berkenalan”), salah satu pertanyaan pertama adalah: bagaimana Anda bisa mengontrol ratusan ribu LED yang sama dengan hanya selusin output pada pengontrol? Ya, Anda dapat menggunakan multiplexing sinyal, peralihan back-to-back dan banyak trik lainnya, tapi tetap saja jumlah maksimum LED yang dapat dihubungkan terbatas dan solusi lain harus dicari. Dan mereka menyarankan salah satu opsi kepada saya - “ambil satu, dua, sepuluh chip register geser dan bersenang-senanglah.” Diputuskan untuk segera memesannya, dan di masa depan bahkan merakit kubus LED dengan menggunakannya. Saya benar-benar harus meninggalkan yang terakhir; Saya menemukan opsi yang lebih sederhana, tetapi ini adalah topik ulasan lain.
Saya pesan 20 buah 74HC595N sekaligus, untung harganya hanya sepeser pun. Huruf N di akhir penandaan berarti bahwa sirkuit mikro berada dalam paket DIP-16, sangat nyaman untuk eksperimen di papan tempat memotong roti; Anda bahkan tidak perlu menyolder apa pun. Ini terlihat seperti ini:




Apa sirkuit mikro ini? Ini adalah register geser serial-in, serial-out, atau parallel-out delapan-bit dengan latch flip-flop dan output tiga keadaan.
Sederhananya, hanya dengan menggunakan 3 output pengontrol Anda dapat mengontrol 8 output register geser. Dan jika sirkuit mikro dihubungkan secara seri satu demi satu, maka jumlah output yang dikontrol dapat ditingkatkan hingga batas yang wajar (saya belum menemukan jumlah maksimum, tetapi ratusan tampaknya digabungkan tanpa masalah; jika ada yang tahu apa itu tergantung pada membatasi kuantitas sirkuit mikro yang termasuk dalam kaskade - akan menarik untuk mengetahuinya di komentar).
Data ditransmisikan ke chip secara serial. Bit 0 dan 1 ditransfer ke register satu demi satu, bit tersebut dibaca ketika pulsa clock tiba. Ditransmisikan 8 bit - menerima 8 status keluaran pada keluaran register. Ketika 74HC595 dialirkan (jika diperlukan keluaran 16, 24, dst.), data dari register pertama ditransfer ke register berikutnya.
Keluaran register tidak hanya dapat berada dalam keadaan logis 0 atau 1, tetapi juga berada dalam keadaan impedansi tinggi ketika keluaran diputuskan dari rangkaian. Hanya semua keluaran yang dapat ditransfer ke keadaan ini sekaligus. Ini jarang digunakan, namun dapat berguna ketika mengalihkan kontrol ke pengontrol lain, misalnya.

Pin keluaran masukan/keluaran

Q0…Q7 – keluaran register, dapat dalam keadaan 0, 1 atau impedansi tinggi
GND – tanah
Q7′ – keluaran untuk koneksi serial register.
MR – daftar ulang
SH_CP – masukan jam
ST_CP – masukan pengunci data
OE – masukan mengubah keluaran dari impedansi tinggi ke kondisi pengoperasian
DS – masukan data
VCC – catu daya 2-6 volt

Yang tersisa hanyalah memeriksa pekerjaannya, untuk melakukan ini, kami akan merakit sirkuit yang populer di kalangan pemula. GND (pin 8) dihubungkan ke ground, Vcc (pin 16) ke power supply 5V, OE (pin 13) ke ground, MR (pin 10) ke power supply 5V. Register geser sekarang dihidupkan dan semua output aktif. Sekarang saatnya menghubungkan rangkaian mikro ke Arduino: sambungkan input data DS (pin 14) ke output digital ke-9 Arduino, input jam SH_CP (pin 11) ke output digital ke-10, input kait ST_CP (pin 12 ) ke pin Arduino ke-8. Disarankan untuk menempatkan kapasitor 0,1 µF antara ground dan kait untuk meminimalkan kebisingan.
Tetap menghubungkan LED - melalui resistor 150-300 Ohm kami menghubungkannya dari output register ke ground. Itu saja. Berikut adalah diagram yang saya temukan untuk mereka yang menyukai materi visual (harap dicatat bahwa pinout dari sirkuit mikro asli dan gambar skema pada diagram ini berbeda!)


Saya merakit sirkuit di papan tempat memotong roti, dan hasilnya seperti ini.

sirkuit rakitan








Di Arduino, lebih mudah menggunakan fungsi shiftOut(), yang mengeluarkan satu byte informasi ke port input/output secara berurutan (sedikit demi sedikit). . Kami memuat kode pengujian ke Arduino dan mendapatkan penghitung dari 0 hingga 255 dalam bentuk biner:
int pin kait = 8; //ST_CP int jamPin = 10; //SH_CP ke dalam PIN data = 9; //DS void setup() ( pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); ) void loop() ( for (int numberToDisplay = 0; numberToDisplay< 256; numberToDisplay++) { // установка синхронизации "защелки" на LOW digitalWrite(latchPin, LOW); // передаем последовательно на вход данных shiftOut(dataPin, clockPin, MSBFIRST, numberToDisplay); //"защелкиваем" регистр, устанавливаем значения на выходах digitalWrite(latchPin, HIGH); delay(500); } }
Inilah yang terjadi pada saya, semuanya berjalan sesuai harapan:


Jadi, dengan penggunaan minimal pin pengontrol, Anda dapat mengontrol sejumlah besar LED (atau yang lainnya). Semuanya akan baik-baik saja, tetapi saya juga akan memberi tahu Anda kekurangannya. Seperti yang Anda lihat, arus untuk setiap LED harus dibatasi oleh resistor, dan ketika membangunnya besar matriks LED ini menjadi cukup padat karya. ada lagi solusi yang menarik untuk mengontrol LED - driver DM13A, yang merupakan register geser dan juga membatasi arus pada setiap output. Saya akan menceritakannya kepada Anda lain kali, dan sebagai bonus - kubus LED pertama saya, 5x5x5, dirangkai pada basis elemen yang disederhanakan, tanpa menggunakan 74HC595.

Saya berencana membeli +37 Tambahkan ke Favorit Saya menyukai ulasannya +35 +61

Daftar. Daftar geser

Register adalah perangkat yang terbuat dari sandal jepit untuk melakukan serangkaian tindakan dengan bilangan biner. Bagi yang belum mengetahui apa itu trigger, sebaiknya kenali RS trigger yang paling sederhana.

Fungsi register yang paling sederhana adalah untuk mengingat suatu nomor dan menyimpannya dalam waktu yang lama. Perangkat ini disebut register penyimpanan. Berikut ini contoh sederhananya.

Nomor yang perlu disimpan disuplai ke input D0 - D2. Segera setelah pulsa sinkronisasi muncul di input C, nomor tersebut ditulis ke pemicu, mengubah statusnya. Gambar tersebut menunjukkan register penahan tiga-bit. Ketika angka 111 2 disuplai ke input, itu juga akan muncul di output langsung dari pemicu ( Q0 - Q2). Pada keluaran terbalik ( Q0 - Q2) secara alami akan menjadi 000 2 . Sinyal R ( Mengatur ulang) atau reset, flip-flop diatur ke keadaan nol.

Biasanya register yang digunakan terdiri dari 4, 8, atau 16 flip-flop. Gambar register empat bit aktif diagram sirkuit mungkin seperti ini.

Gambar tersebut tidak menunjukkan keluaran kebalikan dari pemicu dan sinyal R. Register selalu dilambangkan dengan huruf Latin RG. Jika registernya bergeser, maka panah yang mengarah ke kiri, kanan atau ganda digambar di bawah penunjukannya.

Register geser atau register geser.

Register geser adalah suatu perangkat yang terdiri dari beberapa flip-flop yang dihubungkan secara seri, yang jumlahnya menentukan kapasitas register. Register banyak digunakan di teknologi komputer untuk mengonversi kode. Paralel dengan serial dan sebaliknya.

Selain itu, register geser adalah dasarnya ( ALU) dari perangkat logika aritmatika, karena ketika suatu bilangan biner yang ditulis dalam register digeser satu digit ke kiri, bilangan tersebut dikalikan dua, dan ketika suatu bilangan digeser satu digit ke kanan, bilangan tersebut dibagi dua. . Oleh karena itu, yang paling luas dapat dibalik atau dua arah register.

Pertimbangkan register geser empat-bit yang mengubah kode biner serial menjadi kode biner paralel. Penggunaan kode serial dibenarkan oleh fakta bahwa sejumlah besar informasi dapat dikirimkan melalui satu saluran. Contohnya adalah hal yang universal bus serial - port USB perangkat apa pun. Jumlah pemicu di daftar ini bisa apa saja. Cukup dengan menghubungkan output langsung Q3 Dengan D masukan pemicu berikutnya dan seterusnya hingga kapasitas yang dibutuhkan tercapai.

Register berfungsi sebagai berikut. Bit informasi pertama tiba di input D0. Bersamaan dengan bit ini, pulsa clock tiba di input DENGAN. masukan DENGAN semua pemicu yang termasuk dalam register digabungkan satu sama lain. Dengan kedatangan pulsa clock pertama, level pada input D0 ditulis ke pemicu pertama dan dari output Q0 datang ke input pemicu berikutnya, tetapi penulisan ke pemicu kedua tidak terjadi, karena pulsa jam telah berakhir.

Ketika pulsa clock berikutnya tiba, level yang ada pada input flip-flop kedua disimpan di dalamnya dan menuju ke input flip-flop ketiga. Pada saat yang sama, bit informasi berikutnya disimpan di flip-flop pertama. Setelah kedatangan pulsa clock keempat, level logis yang diterima secara berurutan pada input akan dicatat dalam empat flip-flop register. D0.

Katakanlah ini adalah level 0110 2. Bilangan biner ini kemudian dapat ditampilkan dengan menghubungkan LED ke keluaran sandal jepit. Ini adalah bagaimana register yang dipertimbangkan digambarkan pada diagram skematik.

Terlihat adanya tanda panah pada gambar konvensional yang merupakan indikator bahwa ini adalah register geser.

Mari kita lihat cara kerja register geser universal empat bit. K155IR1(analog - SN7495N). Berikut adalah struktur internalnya.

Register berisi empat D-flip-flop, yang saling berhubungan menggunakan elemen logika AND - OR tambahan, yang memungkinkan implementasi berbagai fungsi. Pada diagram:

    V2 - masukan kontrol. Ini digunakan untuk memilih mode operasi register.

    Q1 - Q4 keluaran pemicu yang kode paralelnya dihapus.

    V1 - input untuk memasok kode serial.

    C1, C2 - pulsa jam.

    D1 - D4 - input untuk menulis kode paralel.

Algoritma operasi register adalah sebagai berikut. Jika potensial rendah diterapkan ke masukan V2, pulsa clock diterapkan ke C1, dan bit informasi diterapkan ke masukan V1, maka register bergeser ke kanan. Setelah menerima empat bit pada output flip-flop Q1 - Q4, kita memperoleh kode paralel. Dengan cara ini, kode serial diubah menjadi paralel.

Untuk konversi terbalik kode paralel ditulis ke input D1 - D4, dengan potensi tinggi diterapkan ke input V2 dan pulsa clock ke input C2. Kemudian, dengan menerapkan potensial rendah ke input V2 dan pulsa clock ke input C1, kita menggeser kode yang direkam, dan kode serial dihapus dari output pemicu terakhir.

Dalam strukturnya, ini adalah salah satu register geser paling sederhana.

Register geser dalam teknologi digital dapat menjadi dasar perakitan rakitan dengan properti menarik. Misalnya, penghitung cincin, yang disebut penghitung Johnson. Pencacah seperti itu mempunyai jumlah keadaan dua kali lebih besar dari jumlah sandal jepit penyusunnya. Misalnya, jika pencacah cincin terdiri dari tiga flip-flop, maka pencacah cincin tersebut akan mempunyai enam keadaan stabil. Tidak ada yang disuplai ke input penghitung kecuali pulsa jam. DI DALAM kondisi asli semua flip-flop adalah “reset”, yaitu keluaran langsung dari flip-flop mempunyai logika nol, tetapi masukannya D pemicu pertama dari keluaran kebalikan dari pemicu ketiga adalah unit logis. Mari kita mulai mengirimkan pulsa jam dan prosesnya dimulai.

Tabel kebenaran dengan jelas menunjukkan bagaimana kode biner berubah ketika enam pulsa clock tiba.

N Pertanyaan 2 Pertanyaan 1 pertanyaan 0
1 0 0 1
2 0 1 1
3 1 1 1
4 1 1 0
5 1 0 0
6 0 0 0

Sekarang Anda tahu apa itu register dan bagaimana penggunaannya dalam praktik. Dasar dari setiap register adalah pemicu. Jumlah flip-flop dalam sebuah register menentukan kapasitasnya. Mereka yang tertarik dengan mikrokontroler tahu bahwa elemen terpenting dari setiap mikrokontroler, baik itu PIC, AVR, STM atau MSP, adalah register.

1. Daftar isi

2. Pendahuluan ................................................................................................................ 2

3. Tinjauan sumber kepustakaan ………………………………… 3

3.1. Informasi Umum tentang register…………………………… 3

3.2. Informasi umum tentang pemicu…………………………….…... 6

3.3. Register geser……………………………………….. 12

3.4. Register universal……………………………………….. 20

4. Pengembangan rangkaian register geser ………………………………… 24

4.1. Data awal .................................................................. 24

4.2. Tata cara pembuatan register geser…………………..……… 24

4.3. Pengembangan register geser empat fase……………… 25

5. Kesimpulan……………………………………………………………. 27

6. Daftar referensi …………………………………. 28


2. Perkenalan

Register– node yang paling umum perangkat digital. Mereka beroperasi pada banyak variabel terkait yang membentuk sebuah kata. Sejumlah operasi dilakukan pada kata-kata: menerima, mengeluarkan, menyimpan, menggeser grid bit, operasi logika bitwise.

Register shift (berurutan) digunakan untuk perpindahan N-bit angka dalam satu arah. Selain itu, mereka dapat digunakan untuk menggeser informasi non-numerik.

Register geser digunakan sebagai perangkat penyimpanan, sebagai pengubah kode serial menjadi paralel, sebagai perangkat penundaan dan penghitung pulsa (namun penggunaan register geser sebagai penghitung cukup tidak ekonomis).

3. Tinjauan sumber literatur

3.1. Informasi umum tentang register

Register terdiri dari rangkaian bit yang berisi flip-flop dan, paling sering, juga elemen logika. Mereka bertindak sebagai satu kesatuan.

Menurut jumlah saluran transmisi variabel, register dibagi menjadi fase tunggal dan parafase, dan menurut sistem sinkronisasi menjadi siklus tunggal, dorong-tarik, dan multi-siklus. Namun, ciri klasifikasi utama adalah metode penerimaan dan pengeluaran data. Atas dasar inilah mereka membedakannya paralel (statis) register, berurutan (bergeser) Dan serial paralel .

Dalam register paralel, kata-kata diterima dan dikeluarkan dalam semua bit secara bersamaan. Mereka menyimpan kata-kata yang dapat mengalami transformasi logis bitwise.

Dalam register berurutan, kata-kata diterima dan dikeluarkan digit demi digit. Mereka disebut pergeseran, karena sinyal pewaktuan ketika memasukkan dan mengeluarkan kata-kata memindahkannya dalam grid bit. Register geser dapat bersifat non-reversibel (dengan pergeseran searah) atau reversibel (dengan kemampuan bergeser ke dua arah).

Register serial-paralel memiliki input dan output tipe serial dan paralel. Terdapat opsi dengan input serial dan output paralel (SIPO, Serial Input – Parallel Output), input paralel dan output serial (PISO, Parallel Input – Serial Output), serta opsi dengan kemungkinan kombinasi metode untuk menerima dan mengeluarkan kata-kata.

Dalam register paralel (statis), rangkaian bit tidak berkomunikasi satu sama lain. Yang umum pada bit biasanya adalah rangkaian jam, rangkaian reset/set, izin keluaran atau penerimaan, yaitu rangkaian kontrol. Contoh rangkaian register statis yang dibangun pada flip-flop tipe D dengan input dinamis langsung, memiliki input reset R dan output keadaan ketiga yang dikendalikan oleh sinyal EZ, ditunjukkan pada Gambar 1 .

Gambar 1. Diagram register statis (a) dan penunjukan grafis konvensionalnya (b)

Sirkuit modern dicirikan oleh konstruksi register pada flip-flop tipe D, terutama dengan kontrol dinamis. Banyak yang memiliki keluaran dengan status ketiga. Beberapa register diklasifikasikan sebagai register buffer, artinya, register tersebut dirancang untuk bekerja dengan beban aktif kapasitif besar dan/atau resistansi rendah. Hal ini memastikan pengoperasiannya langsung di jalan raya (tanpa sirkuit antarmuka tambahan).

Register statis digunakan untuk membuat blok memori register—file register.

Fungsi utama register:

1) Penyimpanan informasi,

2) Penerimaan informasi,

3) Memberikan informasi,

4) Pergeseran informasi,

5) Konversi kode,

6) Mengatur angka yang diinginkan menjadi nol atau satu,

7) Operasi logis bitwise: disjungsi, konjungsi, penambahan modulo 2.

3.2. Memahami Pemicu

Pemicu – kelas besar perangkat listrik yang memungkinkan seseorang untuk tetap berada dalam salah satu dari dua (atau lebih) keadaan stabil untuk waktu yang lama dan bergantian di bawah pengaruh sinyal eksternal (karena proses regeneratif ( proses transisi V rangkaian listrik, dicakup oleh PIC)).

Pemicu adalah perangkat logis pulsa dengan memori (elemen memori – kait).

Ada lebih dari selusin pemicu integral yang berbeda. Klasifikasi mereka didasarkan pada:

Tanda fungsional

Sebuah metode untuk menulis informasi ke pemicu.

Berdasarkan ciri fungsinya, ada pemicu T, pemicu JK, pemicu RS, pemicu D, pemicu gabungan (TV, DV, E, R), dll.

Berdasarkan cara pencatatan (penerimaan) informasi dibedakan:

8) Pemicu asinkron:

a) dengan penundaan internal;

b) dikendalikan oleh level pulsa masukan;

9) Pemicu sinkron (dicatat):

a) dengan penundaan internal;

b) dikendalikan oleh tingkat pulsa waktu:

Aksi satu siklus (single-stage);

Berbagai tindakan.

Informasi ditulis ke pemicu clock hanya ketika pulsa clock diaktifkan diterapkan. Pemicu tersebut dibagi menjadi pulsa waktu yang dikontrol level (level sinyal tertentu diperlukan untuk pengoperasian) dan dikontrol tepi (tidak bergantung pada level sinyal, keberadaannya penting). Pulsa jam kadang-kadang juga disebut sinyal sinkronisasi, eksekutif, atau perintah (biasanya dilambangkan dalam diagram dengan huruf C - Jam).

Masukan dinamis bisa langsung atau terbalik. Kontrol dinamis langsung memungkinkan peralihan ketika sinyal jam berubah dari nol ke satu (). Kontrol dinamis terbalik - mengubah sinyal jam dari satu ke nol (). Kontrol tepi pulsa waktu: Kontrol jatuhnya pulsa waktu: Kontrol level tertinggi pulsa waktu:

Kontrol tingkat pulsa waktu yang lebih rendah:

Pemicu yang di-clock dengan penundaan internal (dipicu ketika sinyal berakhir), biasanya berakhir tunggal. Multi-siklus memicu kebakaran setelahnya N-tidak ada dorongan hati.

Pemicu RS memiliki dua input informasi: S (Set) dan R (Reset). Penerapan sinyal S dan R secara bersamaan tidak diperbolehkan. Pada Gambar 2 menunjukkan pemicu RS sinkron yang dipicu oleh tepi sinyal pewaktuan.

Gambar 2. Pemicu RS sinkron

Selain masukan, pemicu RS paling sederhana juga memiliki dua keluaran. Output menunjukkan Q Dan

. KELUAR Q disebut langsung, a - terbalik. Level tegangan pada kedua output saling berbanding terbalik: jika sinyal Q= 1, maka = 0, atau jika Q= 0, maka = 1. Perlu diperhatikan juga keadaan trigger di mana Q= 1, a = 0, disebut satuan. Saat pemicunya nol Q= 0 dan = 1. Ketika sinyal tiba di input pemicu, bergantung pada statusnya, peralihan terjadi atau status awal dipertahankan.

Gambar 3.- pemicu: penunjukan grafis konvensionalnya dan rangkaian dengan dua elemen logis DAN-TIDAK

Register geser flip-flop adalah sekumpulan flip-flop dengan koneksi tertentu di antara mereka, di mana mereka bertindak sebagai satu perangkat. Register sekuensial (shift) adalah rangkaian rangkaian bit yang dihubungkan oleh rangkaian pembawa.

Dalam register siklus tunggal dengan pergeseran satu bit ke kanan (Gambar 7), kata digeser ketika sinyal sinkronisasi diterima. Input dan output bersifat serial (DSR - Data Serial Kanan). Gambar 8 menunjukkan rangkaian register dengan pergeseran ke kiri (input data DSL - Data Serial Left), dan Gambar 9 menggambarkan prinsip pembuatan register terbalik, di mana terdapat hubungan antara flip-flop dengan kedua bit yang berdekatan, tetapi sinyal yang bersangkutan hanya mengizinkan pengoperasian salah satu koneksi ini (perintah “kiri” dan “kanan” tidak diberikan secara bersamaan).

Gambar 7. Rangkaian register geser kanan


Gambar 8. Rangkaian register geser kiri


Gambar 9. Rangkaian register pembalik

Menurut persyaratan sinkronisasi, dalam register geser yang tidak memiliki elemen logis dalam koneksi antar-bit, flip-flop yang dikontrol level satu tahap tidak dapat digunakan, karena beberapa flip-flop dapat beralih berulang kali selama aksi level pengaktifan dari level tersebut. sinyal jam, yang tidak dapat diterima. Dalam skema ini, pemicu dengan kontrol dinamis (dua tahap) harus digunakan.

Munculnya elemen logika dan, terlebih lagi, rangkaian logika dengan kedalaman non-unit dalam koneksi antar-bit menyederhanakan pemenuhan kondisi operasi register dan memperluas jangkauan jenis flip-flop yang cocok untuk rangkaian ini.

Register geser multi-siklus dikendalikan oleh beberapa urutan jam. Dari jumlah tersebut, yang paling terkenal adalah push-pull dengan register utama dan tambahan, dibangun di atas pemicu satu tahap sederhana yang dikendalikan oleh suatu level. Pada jam C1, isi register utama ditulis ulang ke register tambahan, dan pada jam C2 isi register utama dikembalikan, tetapi ke bit yang berdekatan, yang berhubungan dengan pergeseran kata. Dalam hal biaya dan kinerja peralatan, opsi ini mendekati register siklus tunggal dengan flip-flop dua tahap.

Register geser berisi sekumpulan flip-flop dengan koneksi tertentu di antara mereka, dan pengaturan koneksi ini sedemikian rupa sehingga ketika pulsa clock diterapkan, yang umum untuk semua flip-flop, keadaan keluaran setiap flip-flop digeser ke yang tetangga. Tergantung pada organisasi koneksinya, pergeseran ini dapat terjadi ke kiri atau ke kanan:

Bergeser ke kiri

Geser ke kanan

Memasukkan informasi ke dalam register dapat dilakukan cara yang berbeda, namun, input paralel atau serial paling sering digunakan, di mana bilangan biner dimasukkan secara bersamaan ke semua bit register, atau secara berurutan dari waktu ke waktu dalam bit individual. Dalam penghitung pulsa, register geser dengan input dan output informasi berurutan dan dengan pergeseran ke kanan digunakan. Gambar 10 a menunjukkan diagram register geser empat bit yang dibuat pada flip-flop RS. Dalam rangkaian ini, setiap output Q dari flip-flop dihubungkan ke input S dari digit berikutnya, dan setiap output dihubungkan ke input R. Input clock dari semua flip-flop dihubungkan bersama, dan sinyal sinkronisasi adalah diterima oleh satu pulsa umum melalui gerbang NAND (DD7). Keadaan pemicu pertama ditentukan oleh sinyal input pada input X1, X2 dari elemen logika AND-NOT (DD5). Informasi terkini disuplai ke input X1, dan sinyal untuk memungkinkan transmisi ke input X2. Gerbang logika TIDAK digunakan (DD6) digunakan untuk membalikkan sinyal masukan, dipasok ke masukan S.

Gambar 10 b menunjukkan diagram waktu sinyal keluaran pemicu dan status register saat menulis sinyal tunggal ke digit pertama. Jika, pada kedatangan pulsa clock pertama, sinyal X1 = X2 = 1 diatur pada input X1 dan X2, yang kemudian dihilangkan dengan kedatangan pulsa clock kedua, maka sebagai hasilnya, sinyal Q1 = 1 akan ditulis ke pemicu pertama. Dengan datangnya pulsa clock kedua, pemicu pertama akan merekam sinyal Q1 = 0, dan sinyal Q2 = 1 muncul pada output pemicu kedua, yang sebelumnya pada output dari pemicu kedua. Ketika pulsa clock berikutnya tiba, satu sinyal dipindahkan secara berurutan ke flip-flop ketiga dan keempat, setelah itu semua flip-flop diatur ke keadaan nol.


Gambar 10. Skema register geser empat fase, diagram pengaturan waktu sinyalnya dan status register saat menulis sinyal tunggal ke digit pertama

Register geser juga dapat diimplementasikan menggunakan flip-flop D atau flip-flop JK. Semua shift register mempunyai ketentuan sebagai berikut:

  • 1) perlu untuk mengatur keadaan awal terlebih dahulu dan memasukkan unit ke dalam pemicu pertama
  • 2) untuk register n flip-flop, setelah kedatangan n pulsa clock input, unit yang dimasukkan awalnya adalah output, sebagai akibatnya output langsung dari semua register berada dalam keadaan nol.

Chip register geser terintegrasi bersifat reversibel, yaitu melakukan pergeseran ke segala arah: kiri atau kanan. Arah pergeseran ditentukan oleh nilai sinyal kendali.

Gambar 11. Implementasi register geser pada flip-flop RS berujung tunggal

Register geser serial memiliki dua kelemahan: hanya memungkinkan satu bit informasi untuk dimasukkan pada setiap pulsa clock, dan, sebagai tambahan, setiap kali informasi dalam register digeser ke kanan, bit informasi paling kanan akan hilang. Gambar 12 menunjukkan sistem yang memungkinkan pemuatan 4 bit informasi secara paralel secara simultan.

Gambar 12. Skema struktural register paralel 4-bit

Input 1, 2, 3, 4 pada perangkat ini merupakan input informasi. Sistem ini dapat dilengkapi dengan karakteristik berguna lainnya - kemungkinan pergerakan informasi secara melingkar, ketika data dari keluaran perangkat dikembalikan ke masukannya dan tidak hilang.


Gambar 13. Diagram logika register cincin paralel empat bit

Rangkaian register geser cincin paralel 4-bit ditunjukkan pada Gambar 13. Empat flip-flop JK digunakan dalam register geser ini. Berkat rantainya masukan informasi yang dimasukkan ke dalam register, yang biasanya hilang pada keluaran flip-flop keempat, akan beredar melalui register geser. Sinyal untuk menghapus register (mengatur outputnya ke status 0000) adalah level logika 0 pada input CLR. Input beban data paralel 1, 2, 3 dan 4 dihubungkan ke input trigger preset (PS), memungkinkan logika 1 diatur pada output apa pun (1, 2, 3, 4). Jika logika 0 diterapkan pada salah satu input ini walaupun sebentar, maka logika 1 akan ditetapkan pada output yang bersangkutan.Penerapan pulsa clock pada input C dari semua flip-flop JK menyebabkan pergeseran informasi dalam register ke input C. Kanan. Dari pemicu keempat, data ditransfer ke pemicu pertama (pergerakan informasi melingkar).

Jalur no.

Jam No.

Prinsip pengoperasian register geser paralel dijelaskan pada Tabel 1. Saat daya dihidupkan, kombinasi biner apa pun dapat diatur pada keluaran register, seperti, misalnya, pada baris 1 tabel. Penerapan logika 0 pada input flip-flop CLR akan memulai pembersihan register (baris 2). Selanjutnya (baris 3) kombinasi biner 0100 dimasukkan ke dalam register Pulsa clock yang berurutan menyebabkan informasi yang dimasukkan bergeser ke kanan (baris 4 - 8). Pada baris 5 dan 6: flip-flop paling kanan (keempat) dipindahkan ke flip-flop paling kiri (pertama). Dalam hal ini, kita dapat berbicara tentang gerak melingkar suatu satuan dalam register. Selanjutnya (baris 9), pembersihan register dimulai lagi menggunakan input CLR. Kombinasi biner baru 0110 dimuat (baris 10). Menerapkan 5 pulsa jam (baris 11-15) menghasilkan pergeseran informasi melingkar 5 posisi ke kanan. Dibutuhkan 4 pulsa clock untuk mengembalikan data ke keadaan semula.

Jika kita memutus loop umpan balik dalam register geser pada Gambar 13, kita akan mendapatkan register geser paralel biasa: kemungkinan pergerakan informasi secara melingkar akan dikecualikan.

Gambar 14. Register geser tiga siklus pada sandal jepit RS

Register geser atau register geser, sebagaimana telah disebutkan, adalah rangkaian flip-flop yang terhubung secara berurutan. Mode utama operasinya adalah pergeseran bit kode yang ditulis ke dalam pemicu ini, yaitu berdasarkan sinyal clock, konten dari setiap pemicu sebelumnya ditulis ulang ke pemicu berikutnya secara berurutan dalam rantai. Kode yang disimpan dalam register digeser satu digit ke digit yang lebih tinggi atau ke digit yang lebih rendah pada setiap siklus jam, yang memberi nama pada register jenis ini.

Seringkali terjadi kebingungan mengenai nama arah pergeseran pada register geser. Ada dua jenis shift: kanan (mode utama yang dimiliki semua register geser) dan kiri (hanya beberapa register geser reversibel yang memiliki mode ini). Nama-nama ini mencerminkan struktur internal register geser ( beras. 8.14) dan menulis ulang sinyal secara berurutan sepanjang rantai pemicu. Dalam hal ini, flip-flop secara alami diberi nomor dari kiri ke kanan, misalnya dari 0 hingga 7 (atau dari 1 hingga 8) untuk register 8-bit. Akibatnya, pergeseran informasi dengan register ke kanan merupakan pergeseran ke arah bit dengan angka yang lebih tinggi, dan pergeseran informasi dengan register ke kiri adalah pergeseran ke arah bit dengan angka yang lebih rendah.

Namun, seperti yang Anda ketahui, dalam bilangan biner apa pun, bit paling signifikan ada di sebelah kiri, dan bit paling tidak signifikan ada di sebelah kanan. Oleh karena itu, pergeseran bilangan biner ke kanan berarti pergeseran ke arah bit tingkat rendah, dan pergeseran ke kiri berarti pergeseran ke arah bit tingkat tinggi. Ini kontradiksi, bukan niat jahat seseorang, ini hanya terjadi secara historis, dan pengembang peralatan digital harus mengingatnya.

Beras. 8.14. Pergeseran arah dalam register geser

Seri standar sirkuit mikro digital mencakup beberapa jenis register geser, berbeda dalam kemungkinan mode operasi, mode tulis, baca dan geser, serta jenis tahapan keluaran (2C atau 3C). Kebanyakan register geser memiliki delapan bit. Pada beras. 8.15 Empat jenis chip register geser disajikan sebagai contoh.

Register IR8 adalah register geser yang paling sederhana. Ini adalah jalur penundaan 8-bit, yaitu hanya memiliki satu masukan informasi, yang menerima informasi yang digeser secara serial (lebih tepatnya, dua masukan digabungkan menggunakan fungsi 2I), dan delapan keluaran paralel. Pergeseran ke arah keluaran dengan angka yang lebih tinggi dilakukan sepanjang tepi naik sinyal clock C. Ada juga masukan reset –R, pada sinyal nol di mana semua keluaran register direset ke nol.

Beras. 8.15. Register geser

Register IR9 menjalankan fungsi kebalikan dari register IR8. Jika IR8 mengubah informasi input serial menjadi output paralel, maka register IR9 mengubah informasi input paralel menjadi informasi serial output. Namun esensi pergeserannya tidak berubah, hanya saja pada IR9 semua internal trigger mempunyai input paralel, dan hanya satu trigger terakhir yang mempunyai output (baik direct maupun inverse). Kode masukan ditulis ke register berdasarkan sinyal nol pada masukan -WR. Pergeseran dilakukan sepanjang tepi positif pada salah satu dari dua input clock C1 dan C2, digabungkan dengan fungsi 2OR. Ada juga input ekspansi DR, yang sinyalnya dalam mode shift ditulis ulang ke bit urutan rendah dari register geser.

Beras. 8.16. Menghubungkan register IR8 untuk meningkatkan kapasitas bit

Seperti semua register geser lainnya, IR8 dan IR9 memungkinkan cascading, yaitu penyertaan bersama untuk meningkatkan kapasitas bit.

Register IR13 menggabungkan kemampuan register IR8 dan IR9. Ia memiliki delapan masukan untuk perekaman paralel dan delapan keluaran informasi paralel yang sesuai. Pergeseran dilakukan sepanjang tepi positif sinyal clock C, dan pergeseran dimungkinkan baik ke arah bit orde tinggi (ke kanan) maupun ke arah bit orde rendah (ke kiri).

Register IR24 memberikan pergeseran informasi di kedua arah. Ada input ekspansi DR dan DL, serta output ekspansi Q0 dan Q7, yang memungkinkan Anda meningkatkan kapasitas bit dengan mudah.

Kegunaan utama dari semua register geser adalah untuk mengubah kode paralel menjadi kode serial dan sebaliknya. Transformasi ini digunakan, misalnya, ketika mengirimkan informasi jarak jauh (dalam jaringan informasi), ketika merekam informasi pada media magnetik, ketika bekerja dengan monitor televisi dan kamera video, serta dalam banyak kasus lainnya.

Misalnya pada beras. 8.19 ditampilkan skema paling sederhana transmisi informasi digital dalam kode serial melalui dua jalur: informasi dan sinkronisasi. Transmisi semacam itu memungkinkan Anda mengurangi jumlah kabel penghubung, serta menyederhanakan perlindungan data yang dikirimkan dari interferensi elektromagnetik eksternal, meskipun dengan mengorbankan kecepatan transmisi.

Beras. 8.19. Transmisi informasi secara serial menggunakan register geser

Pada ujung transmisi (di sebelah kiri pada gambar), dengan menggunakan register geser IR9, kode 8-bit input paralel diubah menjadi urutan bit data yang mengikuti frekuensi sinyal clock. Di sisi penerima (di sebelah kanan gambar), dengan menggunakan register geser IR8, urutan bit data ini diubah lagi menjadi kode paralel. Kedua register di-clock oleh sinyal clock yang sama, yang ditransmisikan melalui jalur komunikasi secara paralel dengan urutan data. Untuk meningkatkan keandalan transmisi, sinyal informasi juga ditunda relatif terhadap tepi sinyal clock menggunakan rangkaian dua inverter.

Bit pertama dari input serial (dari input 7 register IR9) mulai ditransmisikan dengan awal sinyal tulis -Rec. Bit-bit berikutnya ditransmisikan dengan setiap sisi positif berikutnya dari sinyal clock C. Sinyal dari input 0 ditransmisikan terakhir.Bit-bit kode serial ditulis ke register IR8 dalam urutan yang sama seperti pada register IR9. Pada akhir transfer, sinyal data yang pertama dikirimkan akan berada di bit 7 bus data register IR8, dan sinyal data yang terakhir dikirimkan akan berada di bit 0.

Penerapan shift register selanjutnya adalah untuk mengatur segala macam jalur tunda, terutama yang memiliki jumlah tahapan yang banyak. Dengan menggunakan register geser, Anda dapat menunda sinyal input apa pun dengan jumlah siklus clock bilangan bulat. Namun, harus diperhitungkan bahwa durasi sinyal input (dan setiap elemennya) juga akan ditransmisikan sepanjang garis tunda dengan akurasi satu siklus clock. Garis tunda tersebut dapat digunakan untuk membandingkan beberapa siklus clock berikutnya dari suatu sinyal masukan, untuk melakukan operasi aritmatika pada beberapa siklus clock dari suatu sinyal masukan, dan untuk tujuan serupa lainnya. Pengoperasian garis tunda pada register geser diilustrasikan beras. 8.20.

Beras. 8.20. Masukkan garis penundaan pada register geser

Register geser juga dapat digunakan untuk menghasilkan pulsa dengan durasi tertentu, dan durasi pulsa dapat ditentukan oleh kode kontrol, yaitu dapat dikontrol secara perangkat lunak. Pada beras. 8.21 Diagram yang mungkin dari driver tersebut ditampilkan.

Beras. 8.21. Pembentuk pulsa dengan durasi yang ditentukan oleh kode kontrol

Pada keadaan awal (sebelum kedatangan tepi positif dari sinyal masukan), pemicu direset ke nol, semua keluaran register geser adalah nol, dan keluaran kebalikan dari multiplekser adalah satu. Multiplekser dilengkapi dengan kode kontrol yang menentukan durasi sinyal keluaran. Ketika tepi positif dari sinyal masukan tiba, flip-flop dilempar ke satu (sinyal keluaran dimulai), dan sinyal yang satu ini mulai digeser secara berurutan oleh register geser pada setiap tepi sinyal clock.

Misalkan kode kendali sama dengan 5. Kemudian pada saat suatu unit muncul pada keluaran 5 register geser, maka akan ditransmisikan ke keluaran multiplekser KP7 dengan inversi. Dalam hal ini, sinyal nol pada masukan –R pemicu akan mengatur ulang pemicu ke nol, yaitu sinyal keluaran akan berakhir.

Dengan demikian, durasi sinyal keluaran akan ditentukan oleh kode kontrol. Kesalahan dalam pengaturan durasi ini sama dengan satu periode sinyal clock dan bergantung pada pergeseran waktu antara tepi sinyal input dan tepi pulsa clock terdekat. Semakin lama durasi sinyal keluaran maka semakin kecil kesalahan relatif dalam pengaturan keakuratannya. Misalnya, dengan kode kontrol 0, durasi sinyal keluaran bisa dari 0 hingga T, di mana T adalah periode sinyal clock. Dan dengan kode kontrol 7, durasi sinyal keluaran akan dari 7T hingga 8T. Dalam hal ini, kami tidak memperhitungkan penundaan flip-flop, register geser, dan multiplekser.

Register geser juga dapat digunakan untuk mengalikan dan membagi bilangan biner dengan 2n, dimana n adalah bilangan bulat yang lebih besar dari nol. Menggeser bilangan biner ke kanan (menuju bit paling signifikan) sebanyak satu bit sama dengan membaginya dengan 2. Menggeser bilangan biner ke kiri (menuju bit paling signifikan) sebanyak satu bit sama dengan mengalikan dengan 2. Secara berurutan agar register geser dapat mengalikan dan membagi kode biner, Anda hanya perlu menulis kode ini ke dalam register dan menggesernya beberapa kali ke kanan atau kiri. Register IR13 paling nyaman untuk ini. Dalam hal ini, nol perlu dipindahkan ke bit yang dikosongkan, yaitu sinyal nol harus disuplai ke input ekstensi register DR dan DL.

Terakhir, aplikasi terakhir dari register geser yang akan kita bahas adalah sebagai pembangkit sinyal acak atau pembangkit urutan kode acak. Tegasnya, rangkaian tersebut tidak sepenuhnya acak, melainkan kuasi-acak, yaitu berulang secara berkala, namun jangka waktunya cukup lama. Urutan sinyal dan kode acak banyak digunakan dalam peralatan pengujian, generator kebisingan, dan perangkat permainan logika.

Tujuannya adalah agar sinyal atau kode keluaran mengubah keadaannya secara acak (atau hampir acak). Sinyal harus beralih secara acak dari 0 ke 1 dan dari 1 ke 0, dan kode harus mengambil nilai secara acak dari 0 hingga (2 N–1), di mana N adalah jumlah bit kode (misalnya, dari 0 hingga 255 untuk kode 8-bit). Urutan acak semu memiliki keunggulan dibandingkan urutan acak karena dapat diprediksi dan periodik, tetapi ini juga merupakan kelemahannya.

Struktur generator barisan kuasi-acak yang menggunakan register geser sangat sederhana ( beras. 8.22). Ini adalah register geser dengan keluaran paralel (misalnya, IR8), beberapa (setidaknya dua) sinyal keluarannya digabungkan menggunakan elemen OR Eksklusif, dari keluarannya sinyal disuplai ke masukan register, menutup rangkaian menjadi sebuah cincin. Rangkaian ini di-clock oleh sinyal dengan frekuensi f T .

Beras. 8.22. Struktur generator urutan pseudorandom

Memilih nomor bit untuk koneksi umpan balik bukanlah tugas yang mudah, namun ada tabel referensi yang menunjukkannya. Bagaimanapun, salah satu titik koneksi adalah keluaran tingkat tinggi.

Lebih menguntungkan untuk mengambil sejumlah bit yang bukan kelipatan 8, misalnya 7, 15 atau 31. Dalam hal ini, hanya dua keluaran yang digunakan untuk umpan balik, yaitu satu elemen OR Eksklusif dua masukan adalah memadai.

Periode rangkaian keluaran generator adalah (2 N -1) siklus clock, dimana N adalah jumlah bit register geser. Selama waktu ini, setiap kemungkinan nilai kode keluaran (kecuali satu) muncul satu kali. Jumlah angka satu pada sinyal keluaran lebih besar dari jumlah angka nol per unit.

Kode keluaran 000...0 adalah keadaan nonaktif karena menonaktifkan generator, mereproduksi dirinya sendiri berulang kali. Namun pada saat yang sama, kode nol tersebut hanya dapat diperoleh dari dirinya sendiri, sehingga cukup dipastikan tidak ada saat rangkaian dihidupkan.

Frekuensi dalam spektrum sinyal keluaran akan mengikuti interval (f T /2 N –1), dan selubung spektrum akan hampir konstan hingga frekuensi 0,25f T, yaitu noise hingga frekuensi ini dapat dianggap putih (penurunan 3 dB terjadi pada frekuensi 0,45 f T).

Generator seperti itu digunakan oleh perusahaan terkenal Hewlett-Packard dalam generator kebisingannya.



Memuat...
Atas