- Що таке Shift Register:
- Типи реєстрів у цифровій електроніці
- 1. Послідовний вхід - Серійні регістри зсуву
- 2. Послідовний вхід - паралельний вихідний регістр зсуву
- 3. Паралельний вхід - Серійний вихідний регістр зсуву
- 4. Паралельний вхід - паралельний вихідний регістр зсуву
- 5. Двонаправлені регістри зсуву
- 6. Лічильники
- Застосування регістрів Shift
Що таке Shift Register:
Регістри зсуву - це послідовні логічні схеми, здатні зберігати та передавати дані. Вони складаються з тригерів, які з'єднані таким чином, що вихід одного триггера може служити входом для іншого тригера, залежно від типу створюваних регістрів зсуву.
Регістри зсуву - це, в основному, тип реєстру, який має можливість передавати («зсувати») дані. Регістри - це загалом пристрої зберігання, які створюються шляхом з'єднання послідовно певної кількості тригерів, а обсяг даних (кількість бітів), які можуть зберігатися в реєстрі, завжди прямо пропорційний кількості тригерів, оскільки кожен фліп-флоп flop здатний зберігати лише один біт за раз. Коли триггери в регістрі з'єднані таким чином, що вихід одного триггера стає входом іншого, створюється регістр зсуву.
Фліп-флоп - це пристрої з операцією, подібною до засувки. Його можна називати бістабільним вібратором, який може переміщатися між двома станами (0 або 1) і здатний зберігати дані в бітах. Нові дані зчитуються у тригер з кожним тактовим циклом та попередніми даними, що надсилаються на вихід.
Змінні регістри Склад яких фліп-флоп?
Однак це залежить від виду тригера, оскільки співвідношення вхідного, вихідного та тактового циклів між триггерами різниться. Існують різні види тригерів, але найбільш часто використовуваними при створенні регістрів зсувів є тригери D (Delay).
Для роботи тригерів D, що робить їх настільки бажаними для регістрів зсуву, всякий раз, коли відбувається зміна годинника D тригера (або піднімається, або падає, залежно від специфікацій триггера). Дані на виході “Q” стають тими ж даними, що і на вході “D”. Вихід “Q” тригера залишатиметься на цьому значенні до наступного тактового циклу, де потім знову зміниться на значення (Високе або низьке, 1 або 0) на вході.
Тепер, коли ми знаємо, що таке регістри Sift, ми продовжимо глибше заглиблюватися у типи тригерів та їх застосування. Але перед цим, щоб отримати більш практичне уявлення про те, де використовуються регістри зсуву, давайте поглянемо на популярний регістр зсуву 74HC595, який ми використовували з різними мікроконтролерами для взаємодії з дисплеєм або послідовністю світлодіодів.
- Реєстрація зсуву за допомогою 74HC595 за допомогою Arduino для управління послідовністю світлодіодів
- Змінити регістр за допомогою ESP32 для інтерфейсу 7-сегментного дисплея
- Змінити реєстрацію за допомогою Raspberry Pi для управління кількома світлодіодами
- Реєстр зсуву за допомогою PIC для управління послідовністю світлодіодів
Типи реєстрів у цифровій електроніці
Регістри зсуву класифікуються на типи в основному за їх режимом роботи, послідовний або паралельний.
Існує шість (6) основних типів регістрів зсуву, які перелічені нижче, хоча деякі з них можна додатково розділити на основі напрямку потоку даних або зсуву вправо, або зсуву вліво.
1. Послідовний вхід - Реєстр зсуву послідовного виходу (SISO)
2. Послідовний вхід - Регістр зсуву паралельного виходу (SIPO)
3. Паралельний вхід - Регістр зсуву паралельного виходу (PIPO)
4. Паралельний вхід - Реєстр зсуву послідовного виходу (PISO)
5. Двонаправлені регістри зсуву
6. Лічильники
1. Послідовний вхід - Серійні регістри зсуву
Послідовний вхід - Змінні регістри послідовного виходу - це регістри зсуву, які послідовно передають дані (один біт за тактовий цикл) і також передають дані таким же чином, один за одним.
Простий послідовний вхідний - послідовний вихідний 4-бітовий регістр зсуву показаний вище, регістр складається з 4 тригерів, і розподіл того, як він працює, пояснюється нижче;
При запуску регістр зсуву спочатку очищається, примушуючи виводи усіх тригерів до нуля, а вхідні дані потім послідовно застосовуються до входу, по одному біту.
Є два основних способи переміщення даних через регістр зсуву SISO;
- Неруйнівний показ
- Деструктивне читання
- Неруйнівний показ
Регістри зсуву на основі неруйнівного зчитування завжди мають режим зчитування / запису з додаванням додаткового рядка, що дозволяє перемикатися між режимами зчитування та запису.
Коли пристрій перебуває в робочому режимі "запис", регістр зсуву зміщує кожні дані по одному біту за раз, поводячись точно так само, як і версія руйнівного зчитування, і дані таким чином втрачаються, але коли робочий режим перемикається на "читання", дані які зміщені на вході, повертаються в систему і служать вхідними даними до регістру зсуву. Це допомагає забезпечити збереження даних довше (поки вони залишаються в режимі читання)
- Деструктивне читання
При руйнівному зчитуванні дані повністю втрачаються, оскільки тригер просто переміщує інформацію. Припускаючи для 4-бітового регістру зсуву вище, ми хочемо надіслати слово “1101”. Після очищення регістру зсуву вихід всіх тригерів стає 0, тому протягом першого тактового циклу, коли ми послідовно застосовуємо ці дані (1101), виходи тригерів виглядають як у таблиці нижче.
Перший тактовий цикл:
FF0 |
FF1 |
FF2 |
FF3 |
1 |
0 |
0 |
0 |
Другий тактовий цикл:
FF0 |
FF1 |
FF2 |
FF3 |
0 |
1 |
0 |
0 |
Третій тактовий цикл:
FF0 |
FF1 |
FF2 |
FF3 |
1 |
0 |
1 |
0 |
Четвертий цикл годинника:
FF0 |
FF1 |
FF2 |
FF3 |
1 |
1 |
0 |
1 |
2. Послідовний вхід - паралельний вихідний регістр зсуву
Другим типом регістру зсуву, який ми розглянемо, є серійний вхідний і паралельний зсувний регістр, також відомий як SIPO Shift Register. Ці типи регістрів зсуву використовуються для перетворення даних із послідовних у паралельні. Дані надходять одна за одною за тактовий цикл і можуть бути зміщені та замінені, або зчитуватися на кожному виході. Це означає, що коли дані зчитуються, кожен зчитуваний біт стає доступним одночасно на відповідному вихідному рядку (Q0 - Q3 для 4-бітового регістру зсуву, показаного нижче).
4-бітний послідовний вхід - регістр зсуву паралельного виходу показано на малюнку нижче.
Таблиця, що показує, як дані зсуваються з послідовного входу - паралельного виходу 4-бітового регістру зсуву, показана нижче, а дані мають значення 1001.
Ясно |
FF0 |
FF1 |
FF2 |
FF3 |
1001 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
|
0 |
1 |
0 |
0 |
|
0 |
0 |
1 |
0 |
|
1 |
0 |
0 |
1 |
Хорошим прикладом послідовного вхідного - паралельного зсувного регістру є регістр зсуву 74HC164, який є 8-бітовим регістром зсуву.
Пристрій має два послідовних входи даних (DSA та DSB), вісім паралельних виходів даних (Q0 - Q7). Дані вводяться послідовно через DSA або DSB, і будь-який вхід може бути використаний як активний ВИСОКИЙ дозвол для введення даних через інший вхід. Дані переміщуються при переходах НИЗЬКО-ВИСОКО на вхід синхронізатора (CP). LOW на вході головного скидання (MR) очищає регістр і примушує всі виходи LOW незалежно від інших входів. Входи включають затискні діоди. Це дозволяє використовувати струмові обмежувальні резистори для взаємодії входів до напруг, що перевищують VCC.
3. Паралельний вхід - Серійний вихідний регістр зсуву
У регістрі зсуву паралельного входу - послідовний вихід дані подаються паралельно, наприклад, розглянемо 4-бітовий регістр, показаний нижче.
Цей регістр може бути використаний для зберігання та зсуву 4-бітового слова, за допомогою входу управління записом / зсувом (WS), що контролює режим роботи регістру зсуву. Коли лінія керування WS низька (режим запису), дані можна записувати та синхронізувати через D0 до D3. Для послідовного зсуву даних лінія управління WS виводиться ВИСОКО (режим зсуву), а регістр потім зміщує дані на вхід годин. Паралельний послідовний наш регістр зсуву також називається регістром зсуву PISO.
Хорошим прикладом паралельного вхідного - послідовного регістру зсуву є 8-бітний регістр зсуву 74HC165, хоча він також може працювати як послідовний вхідний - зсувний регістр зсуву.
Пристрій має послідовний вхід даних (DS), вісім паралельних входів даних (D0 до D7) і два додаткових послідовних виходи (Q7 і Q7 '). Коли паралельний вхід навантаження (PL) НИЗКИЙ, дані від D0 до D7 завантажуються в регістр зсуву асинхронно. Коли PL дорівнює HIGH, дані послідовно надходять до реєстру в DS. Коли вхід для активації годинника (CE) має значення LOW, дані переходять на переходи LOW-HIGH на вході CP. HIGH на CE вимкне вхід CP. Входи мають толерантне перенапруження до 15 В. Це дозволяє використовувати пристрій у програмах з перемиканням рівня ВИСОКОГО-НИЗЬКОГО.
Функціональна схема регістру зсуву показана нижче;
Часова діаграма для системи така, як показано на малюнку нижче;
4. Паралельний вхід - паралельний вихідний регістр зсуву
Для паралельного паралельно паралельного зсувного регістру вихідні дані на паралельних виходах з'являються одночасно, коли вхідні дані надходять. Цей тип зсувного регістру також називається регістром зсуву PIPO.
Вхідні дані на кожному з вхідних штифтів від D0 до D3 зчитуються одночасно, коли пристрій синхронізується, і одночасно дані, зчитувані з кожного з входів, передаються на відповідний вихід (з Q0 до Q3).
74HC195 регістразсуву є багатоцільовий регістр зсуву, який здатний працювати в більшості режимів, описаних усіма типами, які ми обговорювали до сих пір, особливо в якості паралельно в - паралельно з регістра зсуву.
5. Двонаправлені регістри зсуву
Регістри зсуву можуть виконувати зсув даних вправо або вліво, або обидва, залежно від виду регістру зсуву та їх конфігурації. У операціях зсуву вправо двійкові дані діляться на два. Якщо цю операцію змінити, двійкові дані помножуються на два. За допомогою відповідного застосування комбінаційної логіки послідовний регістр зсуву можна налаштувати для виконання обох операцій.
Розглянемо 4-бітовий регістр на зображенні нижче. Кілька воріт NAND налаштовані як АБО і використовуються для управління напрямком зсуву, праворуч або ліворуч.
Контрольна лінія вліво / запис використовується для визначення напрямку, в який переміщуються дані, вправо чи вліво.
Хорошим прикладом є регістр зсуву бічного напрямку 74HC194. Регістр може працювати у всіх режимах та варіаціях послідовного та паралельного введення або виведення. Функціональна схема 74HC194, що виділяє лінію управління, годинник, вхідні та вихідні штифти, показана нижче.
Часова діаграма пристрою також показана нижче. Це краще допоможе вам зрозуміти, як лінія управління контролює дії реєстру.
6. Лічильники
Лічильники, які іноді називають поворотними регістрами зсуву, в основному є регістрами зсуву, їх виходи подаються назад у пристрій як входи таким чином, що він створює певний шаблон. Такі типи регістрів називаються лічильниками через шаблон та послідовність, яку вони демонструють. Найпопулярніший тип лічильників зсувних регістрів - це кільцеві лічильники.
Кільцевий лічильник
Кільцеві лічильники - це, в основному, тип лічильника, в якому вихід найбільш значущого біта повертається назад як вхід для найменш значущого біта. 4-бітний лічильник кільця проілюстрований на схемі нижче із використанням тригерів D.
Коли подається тактовий імпульс, вихід кожного етапу зміщується на наступний, і цикл продовжується. Коли рівень чистоти стає високим, усі тригери, крім першого (який встановлюється в 1), скидаються на нуль.
Застосування регістрів Shift
Регістри зсуву використовуються у багатьох додатках, деякі з яких є;
1. Паралельне послідовне перетворення, де вони використовуються для зменшення кількості проводів або ліній, необхідних для зв'язку між двома пристроями, оскільки для послідовного зв'язку зазвичай потрібні лише два дроти в порівнянні з паралельними, що залежить від кількості відправлених бітів.
2. Розширення вводу-виводу для мікроконтролерів. У сучасній електроніці мікроконтролери IO-шпильки називаються нерухомістю, і потрібно якомога більше для певних додатків, таких як включення 100 світлодіодів або зчитування 100 герконових комутаторів чимось на зразок Arduino або мікроконтролера Atmeg328p. Наприклад, наведена нижче принципова схема ілюструє, як послідовно-паралельний регістр зсуву можна використовувати для управління 8 світлодіодами, використовуючи лише три штифти вводу-виводу мікроконтролерів.
3. Вони використовуються в державних реєстрах, які використовуються в послідовних пристроях. Як і машина з кінцевою пам'яттю, наступний стан пристрою завжди визначається шляхом зміщення та вставки нових даних у попереднє положення.
4. Ще одне основне застосування можна знайти у затримках часу. Регістри зсуву використовуються для затримки часу в пристроях, час регулюється годинником, або збільшується каскадними регістрами зсуву, або зменшується, приймаючи вихід з нижчого значущого біта.
Час затримки зазвичай обчислюється за формулою;
t = N * (1 / fc)
N - кількість каскадів тригера, на якому приймається вихід, Fc - частота тактового сигналу, а t, значення якого визначається, - це кількість часу, на який вихід затримається.
Вибираючи регістр зсуву для конкретного завдання через широкий діапазон і тип, важливо вибрати той, який відповідає вашим конкретним потребам, враховуючи такі речі, як режим роботи, розмір біта (кількість тригерів), праворуч або ліворуч або двонаправлений тощо
Одними з найпопулярніших регістрів змін є:
- 74HC 194 4-бітний двонаправлений універсальний регістр зсуву
- 74HC 198 8-бітний двонаправлений універсальний регістр зсуву
- 74HC595 Послідовний-в-паралельний-вихідний регістр зсуву
- 74HC165 Регістр зсуву паралельного входу в послідовний вихід
- IC 74291 4-бітний універсальний регістр зсуву, двійковий лічильник вгору / вниз, синхронний.
- IC 74395 4-розрядний універсальний регістр зсуву з триступеневими виходами.
- IC 74498 8-бітний двоспрямований регістр зсуву з паралельними входами і триступеневими виходами.
- IC 74671 4-розрядний двонаправлений зсувний регістр.
- IC 74673 16-розрядний послідовний вхідний послідовний вихідний регістр зсуву з вихідними регістрами зберігання.
- IC 74674 16-розрядний паралельно-послідовний зсувний регістр зсуву з триступеневими виходами.
Є ще кілька, вам просто потрібно знайти, який найбільше відповідає вашій заявці.
Дякуємо за читання, до наступного разу.