Какъв ток управлява регистърът за смяна? Последователни (изместващи) регистри

Този преглед е посветен всъщност на начинаещите потребители на Arduino или тези, които искат да се включат в този бизнес. Ще говорим за увеличаване на броя на изходите на микроконтролера с помощта на регистър за смяна и това не изисква големи разходи (в сравнение със закупуването на Arduino Mega, например). Най-простото приложение е да мигате светодиодите, така че нека опитаме това на практика.

Когато започнах да се запознавам с микроконтролерите (всъщност все още продължавам да „започвам да се запознавам“), един от първите въпроси беше: как можете да управлявате същите сто хиляди светодиода само с дузина изхода на контролера? Да, можете да използвате мултиплексиране на сигнали, обратно превключване и много други трикове, но все пак максимална сумаСвързваемите светодиоди са ограничени и трябва да се търси друго решение. И те ми предложиха една от опциите - „вземете един, два, десет чипа за сменен регистър и се забавлявайте“. Беше решено незабавно да ги поръчате и в бъдеще дори да сглобите LED куб с тях. Наистина трябваше да се откажа от последното; намерих по-прост вариант, но това е тема на друго ревю.
Поръчах 20 броя 74HC595N наведнъж, за щастие те струват само стотинки. Буквата N в края на маркировката означава, че микросхемата е в корпус DIP-16, много удобен за експерименти на макет; дори не е необходимо да запоявате нищо. Изглежда така:




Каква е тази микросхема? Това е осембитов сериен вход, сериен изход или паралелен изходен регистър за смяна с тригер с ключалка и изход с три състояния.
Казано по-просто, като използвате само 3 изхода на контролера, можете да управлявате 8 изхода на регистъра за преместване. И ако микросхемите са свързани последователно една след друга, тогава броят на контролираните изходи може да се увеличи до всяка разумна граница (не намерих максимален брой, но стотици изглежда се комбинират без проблеми; ако някой знае от какво зависи На ограничено количествомикросхеми, включени в каскадата - би било интересно да разберете в коментарите).
Данните се предават към чипа последователно. Битове 0 и 1 се прехвърлят в регистъра един след друг, битовете се четат, когато пристигне тактов импулс. Предадени 8 бита - получени 8 изходни състояния на изходите на регистъра. Когато 74HC595 е каскадно (ако са необходими 16, 24 и т.н. изхода), данните от първия регистър се прехвърлят към следващия.
Изходът на регистъра може не само да бъде в състояние на логическа 0 или 1, но и да бъде в състояние с висок импеданс, когато изходът е изключен от веригата. Само всички изходи могат да бъдат прехвърлени в това състояние наведнъж. Това се използва рядко, но може да бъде полезно при превключване на управлението към друг контролер, например.

Разпределение на входа/изхода

Q0…Q7 – регистрови изходи, могат да бъдат в състояние 0, 1 или висок импеданс
GND – земя
Q7′ – изход за последователно свързване на регистри.
MR – нулиране на регистъра
SH_CP – вход за часовник
ST_CP – вход за блокиране на данни
OE – вход, преобразуващ изходите от висок импеданс в работно състояние
DS – въвеждане на данни
VCC – захранване 2-6 волта

Остава само да проверим работата; за да направим това, ще съберем верига, която е популярна сред начинаещите. GND (щифт 8) е свързан към маса, Vcc (щифт 16) към 5V захранване, OE (пин 13) към маса, MR (пин 10) към 5V захранване. Регистърът за смяна вече е включен и всички изходи са активни. Сега е време да свържете микросхемата към Arduino: свържете входа за данни DS (щифт 14) към 9-ия цифров изход на Arduino, входа на часовника SH_CP (щифт 11) към 10-ия цифров изход, входа за резе ST_CP (щифт 12 ) към 8-ия щифт на Arduino. Препоръчително е да поставите кондензатор от 0,1 µF между земята и ключалката, за да минимизирате шума.
Остава да свържем светодиодите - чрез резистори 150-300 Ohm ги свързваме от изходите на регистъра към земята. Това е всичко. Ето една диаграма, която намерих за тези, които харесват визуални материали (моля, имайте предвид, че pinout на истинската микросхема и схематичното изображение на тази диаграма са различни!)


Сглобих схемата на макет и се получи така.

сглобена верига








В Arduino е удобно да се използва функцията shiftOut(), която извежда байт информация към входно/изходния порт последователно (бит по бит). . Зареждаме тестовия код в Arduino и получаваме брояч от 0 до 255 в двоична форма:
int latchPin = 8; //ST_CP int clockPin = 10; //SH_CP int dataPin = 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); } }
Ето как се случи при мен, всичко работи според очакванията:


По този начин, с минимално използване на щифтове на контролера, можете да управлявате голям брой светодиоди (или нещо друго). Всичко би било наред, но ще ви кажа и за недостатъците. Както можете да видите, токът за всеки светодиод трябва да бъде ограничен от резистор и при изграждане голям LED матрицитова става доста трудоемко. Има още интересно решениеза управление на светодиоди - драйверът DM13A, който е регистър за смяна и също така ограничава тока на всеки изход. Ще ви разкажа за това следващия път и като бонус - първият ми LED куб, 5x5x5, сглобен на опростена елементна база, без използването на 74HC595.

Смятам да си купя +37 Добави към любими Ревюто ми хареса +35 +61

Регистрирам. Shift регистър

Регистърът е устройство, направено от джапанки за извършване на поредица от действия с двоични числа. За тези, които не знаят какво е тригер, препоръчваме да се запознаете с най-простия RS тригер.

Повечето проста функциярегистрите са запаметяване на номер и дългосрочното му съхранение. Тези устройства се наричат ​​регистри за съхранение. Ето един прост пример.

Номерът, който трябва да бъде записан, се подава на входове D0 - D2. Веднага щом се появи импулс за синхронизация на вход C, числото се записва на тригера, променяйки състоянието им. Фигурата показва трибитов регистър за съхранение. Когато числото 111 2 се подаде на входовете, то ще се появи и на директните изходи на тригерите ( Q0 - Q2). При обратни изходи ( Q0 - Q2) естествено ще бъде 000 2 . Сигнал R ( Нулиране) или нулиране, тригерите се настройват на нулево състояние.

Обикновено се използват регистри, състоящи се от 4, 8 или 16 тригера. Изображение на четирибитов регистър на електрически схемиможе да е така.

Фигурата не показва обратните изходи на тригерите и R регистрите винаги се обозначават с латински букви RG. Ако регистърът се измества, тогава под обозначението се рисува стрелка, насочена наляво, надясно или двойно.

Shift регистри или Shift регистри.

Регистърът за преместване е устройство, състоящо се от няколко последователно свързани тригера, чийто брой определя капацитета на регистъра. Регистрите се използват широко в компютърна технологияза конвертиране на кодове. Паралелно на серийно и обратно.

В допълнение, регистрите за смяна са основата ( ALU) на аритметично-логическо устройство, тъй като когато двоично число, записано в регистър, се измества с една цифра наляво, числото се умножава по две, а когато числото се измества с една цифра надясно, числото се дели на две . Следователно най-разпространените обратимиили двупосоченрегистри.

Помислете за четирибитов преместващ регистър, който преобразува серийния двоичен код в паралелен двоичен код. Използването на сериен код е оправдано от факта, че огромни количества информация могат да бъдат предадени по една линия. Пример за това е универсалният серийна шина - USB портвсяко устройство. Брой задействания в този регистърможе да е всичко. Достатъчно е да свържете директния изход Q3с двъвеждане на следващия тригер и така до достигане на необходимия капацитет.

Регистърът работи по следния начин. Първият информационен бит пристига на входа D0. Едновременно с този бит на входа постъпва тактов импулс СЪС. Входове СЪСвсички тригери, включени в регистъра, се комбинират един с друг. С пристигането на първия тактов импулс, нивото на входа D0записано на първия тригер и от изхода Q0идва на входа на следващия тригер, но записът към втория тригер не се извършва, тъй като тактовият импулс вече е приключил.

Когато пристигне следващият тактов импулс, нивото, присъстващо на входа на втория тригер, се съхранява в него и отива на входа на третия тригер. В същото време следващият информационен бит се съхранява в първия тригер. След пристигането на четвъртия тактов импулс, логическите нива, които са били последователно получени на входа, ще бъдат записани в четирите тригера на регистъра D0.

Да кажем, че това са нива 0110 2. След това това двоично число може да бъде показано чрез свързване на светодиоди към изходите на джапанките. Ето как разглежданият регистър е изобразен на принципна схема.

Вижда се, че на конвенционалното изображение има стрелка - индикатор, че това е сместващ регистър.

Нека да разгледаме как работи четирибитов универсален регистър за преместване. K155IR1(аналог - SN7495N). Ето вътрешната му структура.

Регистърът съдържа четири D-тригера, които са свързани помежду си чрез допълнителни И - ИЛИ логически елементи, които позволяват изпълнението на различни функции. На диаграмата:

    V2 - управляващ вход. Използва се за избор на режим на работа на регистъра.

    Q1 - Q4 изходи на тригери, от които е премахнат паралелният код.

    V1 - вход за подаване на сериен код.

    C1, C2 - тактови импулси.

    D1 - D4 - входове за писане на паралелен код.

Алгоритъмът за работа на регистъра е както следва. Ако към вход V2 се приложи нисък потенциал, към C1 се приложат тактови импулси, а към вход V1 се приложат информационни битове, след което регистърът се измества надясно. След получаване на четири бита на изходите на тригери Q1 - Q4, получаваме паралелен код. По този начин серийният код се преобразува в паралелен.

За обратно преобразуванепаралелен код се записва на входове D1 - D4, с висок потенциал, приложен към вход V2 и тактови импулси към вход C2. След това, чрез прилагане на нисък потенциал към вход V2 и тактови импулси към вход C1, изместваме записания код и серийният код се премахва от изхода на последния тригер.

По своята структура това е един от най-простите регистри за преместване.

Регистрите за преместване в цифровата технология могат да служат като основа, върху която се сглобяват възли с интересни свойства. Това са например пръстеновидните броячи, които се наричат ​​броячи на Джонсън. Такъв брояч има два пъти по-голям брой състояния от броя на съставните му тригери. Например, ако пръстенният брояч се състои от три тригера, тогава той ще има шест стабилни състояния. На входа на брояча не се подава нищо освен тактови импулси. IN оригинално състояниевсички тригери се „нулират“, т.е. директните изходи на тригерите имат логически нули, но входът дпървият тригер от обратния изход на третия тригер е логическа единица. Нека започнем да изпращаме тактови импулси и процесът започва.

Таблицата на истината ясно показва как се променя двоичният код, когато пристигнат шест тактови импулса.

н Въпрос 2 Въпрос 1 Q 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

Сега знаете какво е регистър и как може да се използва на практика. Основата на всеки регистър е тригер. Броят на тригерите в регистъра определя неговия капацитет. Тези, които се интересуват от микроконтролери, знаят, че най-важният елемент на всеки микроконтролер, бил той PIC, AVR, STM или MSP, е регистърът.

1. Съдържание

2. Въведение ………………………………………………………………………………… 2

3. Преглед на литературни източници ………………………………… 3

3.1. Главна информацияотносно регистрите………………………………… 3

3.2. Обща информация за тригерите…………………………….…... 6

3.3. Регистри за смяна…………………………………….. 12

3.4. Универсални регистри…………………………………….. 20

4. Разработване на схема на регистър за смяна ………………………………… 24

4.1. Първоначални данни ……………………………………………… 24

4.2. Процедура за разработване на регистър за смени…………………..……… 24

4.3. Разработване на четирифазен преместващ регистър…………………… 25

5. Заключение……………………………………………………………. 27

6. Списък с литература …………………………………. 28


2. Въведение

Регистри– най-често срещаните възли цифрови устройства. Те оперират с много свързани променливи, които съставят една дума. Извършват се редица операции върху думите: получаване, издаване, съхраняване, преместване в битовата мрежа, побитово логически операции.

За преместване се използват преместващи (последователни) регистри н-битови числа в една посока. В допълнение, те могат да се използват за преместване на нечислова информация.

Регистрите за смяна се използват като устройства за съхранение, като преобразуватели на сериен към паралелен код, като устройства за забавяне и броячи на импулси (все пак използването на регистри за смяна като броячи е доста неикономично).

3. Преглед на литературни източници

3.1. Обща информация за регистрите

Регистрите се състоят от битови вериги, които съдържат тригери и най-често също логически елементи. Те действат като едно цяло.

Според броя на променливите предавателни линии регистрите се разделят на еднофазни и парафазни, а според системата за синхронизация на едноциклични, двутактови и многоциклични. Основният класификационен признак обаче е методът на получаване и издаване на данни. На тази основа те разграничават паралелен (статичен)регистри, последователно (смяна)И паралелно-последователен .

В паралелните регистри думите се получават и извеждат във всички битове едновременно. Те съхраняват думи, които могат да бъдат подложени на побитови логически трансформации.

В последователните регистри думите се получават и извеждат цифра по цифра. Те се наричат ​​преместващи, тъй като сигналите за синхронизиране при въвеждане и извеждане на думи ги преместват в битовата мрежа. Регистърът за преместване може да бъде необратим (с еднопосочни смени) или обратим (с възможност за изместване в двете посоки).

Серийно-паралелните регистри имат входове и изходи от сериен и паралелен тип. Предлагат се варианти със сериен вход и паралелен изход (SIPO, Serial Input – Parallel Output), паралелен вход и сериен изход (PISO, Parallel Input – Serial Output), както и варианти с възможност за произволна комбинация от методи за получаване и издаване думи.

В паралелните (статични) регистри битовите схеми не комуникират помежду си. Общите за битовете обикновено са вериги за часовник, вериги за нулиране/настройване, изход или разрешение за получаване, тоест вериги за управление. Примерна схема на статичен регистър, изграден на D-тип тригери с директни динамични входове, имащи нулиращи входове R и изходи в трето състояние, управлявани от EZ сигнала, е показана в Фигура 1 .

Снимка 1.Диаграма на статичен регистър (а) и неговото конвенционално графично обозначение (б)

Съвременният дизайн на схеми се характеризира с изграждането на регистри на D-тип тригери, главно с динамичен контрол. Много от тях имат изходи с трето състояние. Някои регистри се класифицират като буферни регистри, т.е. те са проектирани да работят с големи капацитивни и/или нискоомни активни товари. Това гарантира тяхната работа директно на магистралата (без допълнителни интерфейсни вериги).

Статичните регистри се използват за създаване на блокове от регистрова памет - регистрови файлове.

Основни функции на регистрите:

1) Съхранение на информация,

2) Приемане на информация,

3) Предоставяне на информация,

4) Информационна промяна,

5) Преобразуване на кодове,

6) Задаване на желаното число на нула или едно,

7) Побитови логически операции: дизюнкция, конюнкция, събиране по модул 2.

3.2. Разбиране на тригерите

Тригери –голям клас електрически устройства, които позволяват да останете в едно от две (или повече) стабилни състояния за дълго време и да ги редувате под въздействието на външни сигнали (поради регенеративния процес ( преходен процес V електрическа верига, обхванати от PIC)).

Тригерът е импулсно логическо устройство с памет (елемент на паметта - резе).

Има повече от дузина различни интегрални тригери. Тяхната класификация се основава на:

Функционален знак

Метод за запис на информация в тригер.

Според техните функционални характеристики биват Т-тригери, JK-тригери, RS-тригери, D-тригери, комбинирани тригери (TV, DV, E, R) и др.

Въз основа на метода на записване (получаване) на информация се разграничават:

8) Асинхронни тригери:

а) с вътрешно закъснение;

б) контролирано от нивото на входния импулс;

9) Синхронни тригери (с тактова честота):

а) с вътрешно закъснение;

б) контролирани от нивото на синхронизиращия импулс:

Едноциклично действие (едноетапно);

Многократно действие.

Информацията се записва на тригери с тактова честота само когато е приложен разрешаващ тактов импулс. Такива тригери се разделят на контролирани по ниво (за работа е необходимо определено ниво на сигнала) и контролирани по фронта (не зависят от нивото на сигнала, неговото присъствие е важно) на синхронизиращия импулс. Тактовите импулси понякога се наричат ​​също синхронизиращи, изпълнителни или командни сигнали (обикновено се обозначават в диаграмите с буквата C - Часовник).

Динамичното въвеждане може да бъде директно или обратно. Директното динамично управление позволява превключване, когато часовниковият сигнал се промени от нула на единица (). Обратно динамично управление - промяна на часовниковия сигнал от едно на нула (). Контрол на фронта на синхронизиращия импулс: Контрол на падането на синхронизиращия импулс: Контрол Най-високо нивовремеви импулс:

Контрол на долното ниво на синхронизиращия импулс:

Тактовите тригери с вътрешно закъснение (задействани, когато сигналът свърши) по правило са с единичен край. Тригерите за много цикли се задействат след това н-ного импулс.

RS тригерът има два информационни входа: S (Set) и R (Reset). Не се допуска едновременно прилагане на S и R сигнали. На Фигура 2показва синхронен RS тригер, задействан от ръба на синхронизиращия сигнал.

Фигура 2.Синхронен RS тригер

В допълнение към входовете, най-простият RS тригер има и два изхода. Изходите показват QИ

. Изход Qнаречено директно, a - обратно. Нивата на напрежение на двата изхода са взаимно инверсни: ако сигналът Q= 1, тогава = 0, или ако Q= 0, след това = 1. Трябва също да се отбележи, че състоянието на тригера, в което Q= 1, a = 0, се нарича единица. Когато тригерът е нула Q= 0 и = 1. Когато сигналите пристигнат на входовете на тригера, в зависимост от състоянието му, или се извършва превключване, или се запазва първоначалното състояние.

Фигура 3. -тригер: неговото конвенционално графично обозначение и схема с два логически елемента И-НЕ

Регистърът за смяна на тригер е набор от тригери с определени връзки между тях, в които те действат като едно устройство. Последователните (изместващи) регистри са верига от битови вериги, свързани чрез пренасящи вериги.

В регистрите с един цикъл с еднобитово изместване надясно (Фигура 7), думата се измества, когато се получи сигнал за синхронизация. Входът и изходът са последователни (DSR - Data Serial Right). Фигура 8 показва схемата на регистър с изместване наляво (вход на данни DSL - Data Serial Left), а фигура 9 илюстрира принципа на изграждане на обратен регистър, в който има връзки между тригерите с двата съседни бита, но съответните сигнали позволяват работата само на една от тези връзки (командите "наляво" и "надясно" не се подават едновременно).

Фигура 7. Регистърна верига с изместване надясно


Фигура 8. Схема на регистър с ляво изместване


Фигура 9. Схема на реверсивния регистър

Съгласно изискванията за синхронизация, в регистри за изместване, които нямат логически елементи в междубитови връзки, не могат да се използват тригери с едностепенно управление на ниво, тъй като някои тригери могат да превключват многократно по време на действието на разрешаващото ниво на часовников сигнал, което е недопустимо. В тези схеми трябва да се използват тригери с динамично управление (двустепенни).

Появата на логически елементи и освен това на логически схеми с неединична дълбочина в междубитовите връзки опростява изпълнението на работните условия на регистрите и разширява обхвата на видовете тригери, подходящи за тези схеми.

Многоцикличните регистри за преместване се управляват от няколко тактови последователности. От тях най-известните са push-pull с основни и допълнителни регистри, изградени върху прости едностепенни тригери, контролирани от нивото. В такт C1 съдържанието на главния регистър се пренаписва в допълнителния регистър, а в такт C2 се връща в главния регистър, но към съседни битове, което съответства на изместване на дума. По отношение на разходите за оборудване и производителност тази опция е близка до едноцикличен регистър с двустепенни тригери.

Свързващият регистър съдържа набор от тригери с определени връзки между тях и организацията на тези връзки е такава, че когато се приложи тактов импулс, общ за всички тригери, изходното състояние на всеки тригер се измества към съседната. В зависимост от организацията на връзките, това изместване може да се случи наляво или надясно:

Преместване наляво

Shift надясно

Може да се направи въвеждане на информация в регистъра различни начини, но най-често се използва паралелен или сериен вход, при който двоично число се въвежда или едновременно във всички битове на регистъра, или последователно във времето в отделни битове. В броячите на импулси се използват регистри за смяна с последователно въвеждане и извеждане на информация и с изместване надясно. Фигура 10а показва диаграма на четирибитов регистър за преместване, направен на RS тригери. В тази схема всеки изход Q на тригера е свързан към входа S на следващата цифра, а всеки изход е свързан към входа R на всички тригери, а сигналът за синхронизация е получен от един общ импулс през NAND порта (DD7). Състоянието на първия тригер се определя от входните сигнали на входовете X1, X2 на логическия елемент И-НЕ (DD5). На вход X1 се подава текуща информация, а на вход X2 - сигнал за предаване. НЕизползваната логическа врата (DD6) се използва за инвертиране входен сигнал, подаден на вход S.

Фигура 10 b показва времедиаграмите на изходните сигнали на тригерите и състоянието на регистрите при запис на единичен сигнал към първата цифра. Ако при пристигането на първия тактов импулс сигналите X1 = X2 = 1 се задават на входовете X1 и X2, които след това се премахват от пристигането на втория тактов импулс, тогава в резултат на това сигналът Q1 = 1 ще се запише на първия тригер С пристигането на втория тактов импулс, първият тригер ще запише сигнал Q1 = 0, а сигналът Q2 = 1 се появява на изхода на втория тригер, който преди това е бил на изхода на вторият тригер. Когато пристигнат последващи тактови импулси, единичен сигнал се премества последователно към третия и четвъртия тригер, след което всички тригери се настройват на нулево състояние.


Фигура 10. Схема на четирифазов регистър за изместване, времеви диаграми на неговите сигнали и състояния на регистъра при запис на единичен сигнал към първата цифра

Регистрите за преместване могат също да бъдат реализирани с помощта на D тригери или JK тригери. Всички регистри за смени имат следните разпоредби:

  • 1) необходимо е предварително да зададете първоначалното състояние и да въведете единица в първия тригер
  • 2) за регистър от n тригера след постъпване на n входни тактови импулса се извежда първоначално въведената единица, в резултат на което директните изходи на всички регистри са в нулево състояние.

Интегрираните чипове на регистъра за преместване са обратими, т.е. извършват преместване във всяка посока: наляво или надясно. Посоката на изместване се определя от стойността на управляващия сигнал.

Фигура 11. Реализиране на регистър за изместване на тригери RS с единичен край

Регистърът за серийно изместване има два недостатъка: той позволява само един бит информация да бъде въведен на всеки тактов импулс и в допълнение, всеки път, когато информацията в регистъра се измества надясно, най-десният информационен бит се губи. Фигура 12 показва система, която позволява едновременно паралелно зареждане на 4 бита информация.

Фигура 12. Блокова диаграма на 4-битов паралелен регистър

Входове 1, 2, 3, 4 в това устройство са информационни входове. Тази система може да бъде оборудвана с друга полезна характеристика - възможността за кръгово движение на информацията, когато данните от изхода на устройството се връщат на неговия вход и не се губят.


Фигура 13. Логическа схемачетирибитов паралелен пръстеновиден регистър

Схемата на 4-битов паралелен пръстенов преместващ регистър е показана на фигура 13. Този преместващ регистър използва четири JK тригера. Благодарение на веригата обратна връзкаинформацията, въведена в регистъра, която обикновено се губи на изхода на четвъртия тригер, ще циркулира през регистъра за смяна. Сигналът за изчистване на регистъра (настройване на неговите изходи в състояние 0000) е логическото ниво 0 на входа на CLR. Входове за паралелно зареждане на данни 1, 2, 3 и 4 са свързани към входове за предварително зададени тригери (PS), което позволява логика 1 да бъде зададена на всеки изход (1, 2, 3, 4). Ако логическа 0 бъде приложена към един от тези входове дори за кратко, тогава логическа 1 ще бъде зададена на съответния изход. Прилагането на тактови импулси към C входовете на всички JK тригери води до изместване на информацията в регистъра към. точно. От четвъртия тригер данните се прехвърлят към първия тригер (кръгово движение на информация).

Линия №

Часовник №

Принципът на работа на паралелен преместващ регистър е описан в таблица 1. Когато захранването е включено, всяка двоична комбинация може да бъде зададена на изходите на регистъра, като например в ред 1 на таблицата. Прилагането на логическа 0 към входовете на CLR тригерите инициира изчистване на регистъра (ред 2). След това (ред 3) двоичната комбинация 0100 се зарежда в регистъра. Последователните тактови импулси карат въведената информация да се измести надясно (редове 4 - 8). В редове 5 и 6: този от най-десния тригер (четвъртият) се прехвърля на най-левия тригер (първият). В този случай можем да говорим за кръгово движение на единица в регистъра. След това (ред 9), изчистването на регистъра отново се инициира с помощта на входа на CLR. Новата двоична комбинация 0110 е заредена (ред 10). Прилагането на 5 тактови импулса (редове 11-15) води до кръгово изместване на информацията 5 позиции надясно. Необходими са 4 тактови импулса, за да върнат данните в първоначалното им състояние.

Ако прекъснем веригата за обратна връзка в регистъра за смяна на фигура 13, ще получим редовен паралелен регистър за смяна: възможността за кръгово движение на информацията ще бъде изключена.

Фигура 14. Трицикличен регистър за смяна на RS тригери

Регистрите за смяна или регистрите за смяна са, както вече беше отбелязано, последователно свързана верига от тригери. Основният режим на тяхната работа е изместване на битове от кода, записан в тези тригери, т.е. въз основа на тактов сигнал, съдържанието на всеки предишен тригер се пренаписва в следващия тригер по реда на веригата. Кодът, съхраняван в регистъра, се измества с един бит към по-високите битове или към по-ниските битове с всеки тактов цикъл, което е, което е дало името на регистрите от този тип.

Често има объркване относно името на посоката на смяна в регистрите за смяна. Има два вида преместване: надясно (основният режим, който имат всички регистри за преместване) и ляво (само някои обратими регистри за преместване имат този режим). Тези имена отразяват вътрешната структура на регистрите за преместване ( ориз. 8.14) и пренаписване на сигнали последователно по верига от тригери. В този случай тригерите, съвсем естествено, са номерирани отляво надясно, например от 0 до 7 (или от 1 до 8) за 8-битови регистри. В резултат на това изместването на информацията чрез регистър надясно е изместване към битове с по-високи числа, а изместването на информацията чрез регистър наляво е изместване към битове с по-ниски числа.

Въпреки това, както знаете, във всяко двоично число най-значимите битове са отляво, а най-малко значимите са отдясно. Следователно изместването на двоично число надясно ще бъде изместване към битовете от нисък ред, а изместването наляво ще бъде изместване към битовете от висок ред. Това е противоречие, а не нечие злонамерено намерение, просто се е случило исторически и разработчикът на цифрово оборудване трябва да помни това.

Ориз. 8.14.Посоката на смяна в регистрите за смяна

Стандартната серия цифрови микросхеми включва няколко типа регистри за смяна, които се различават по възможните режими на работа, режимите на запис, четене и смяна, както и вида на изходните етапи (2C или 3C). Повечето регистри за преместване имат осем бита. На ориз. 8.15Като примери са представени четири вида чипове на регистъра за преместване.

Регистърът IR8 е най-простият от регистрите за смяна. Това е 8-битова линия на забавяне, тоест има само един информационен вход, към който се подава серийно изместена информация (по-точно два входа, комбинирани с помощта на функцията 2I), и осем паралелни изхода. Преместването към изходи с по-високи числа се извършва по нарастващия фронт на тактовия сигнал C. Има и вход за нулиране –R, при нулев сигнал, на който всички изходи на регистъра се нулират до нула.

Ориз. 8.15.Регистри за смяна

Регистърът IR9 изпълнява обратната функция на регистъра IR8. Ако IR8 преобразува входната серийна информация в изходна паралелна, тогава регистърът IR9 преобразува входната паралелна информация в изходна серийна информация. Същността на смяната обаче не се променя, просто в IR9 всички вътрешни тригери имат паралелни входове и само един, последният тригер, има изход (директен и обратен). Входящият код се записва в регистъра въз основа на нулев сигнал на входа -WR. Изместването се извършва по положителния фронт на един от двата тактови входа C1 и C2, комбинирани от функцията 2OR. Има и разширителен вход DR, сигналът от който в режим на смяна се пренаписва в бита от нисък ред на регистъра за смяна.

Ориз. 8.16.Свързване на IR8 регистри за увеличаване на битовия капацитет

Както всички други регистри за преместване, IR8 и IR9 позволяват каскадно включване, тоест съвместно включване за увеличаване на битовия капацитет.

Регистърът IR13 съчетава възможностите на регистрите IR8 и IR9. Има осем входа за паралелен запис и съответни осем изхода за паралелна информация. Изместването се извършва по положителния фронт на тактовия сигнал C, като изместването е възможно както към битовете от висок ред (надясно), така и към битовете от нисък ред (вляво).

Регистърът IR24 осигурява изместване на информацията в двете посоки. Има разширителни входове DR и DL, както и разширителни изходи Q0 и Q7, което ви позволява лесно да увеличите битовия капацитет.

Основната употреба на всички регистри за преместване е за преобразуване на паралелен код в сериен код и обратно. Тази трансформация се използва например при предаване на информация на големи разстояния (в информационни мрежи), при запис на информация на магнитни носители, при работа с телевизионни монитори и видеокамери, както и в много други случаи.

Например на ориз. 8.19показано най-простата схемапредаване на цифрова информация в сериен код по две линии: информация и синхронизация. Такова предаване ви позволява да намалите броя на свързващите проводници, както и да опростите защитата на предаваните данни от външни електромагнитни смущения, макар и с цената на намаляване на скоростта на предаване.

Ориз. 8.19.Серийно предаване на информация с помощта на сменителни регистри

В предавателния край (отляво на фигурата), използвайки регистъра за изместване IR9, входният паралелен 8-битов код се преобразува в последователност от битове данни, които следват честотата на тактовия сигнал. В приемащия край (вдясно на фигурата), използвайки регистъра за изместване IR8, тази последователност от битове данни отново се преобразува в паралелен код. И двата регистъра се тактират от един и същ тактов сигнал, който се предава по комуникационната линия успоредно с последователността от данни. За да се увеличи надеждността на предаването, информационният сигнал допълнително се забавя спрямо фронта на тактовия сигнал, като се използва верига от два инвертора.

Първият бит на серийния вход (от вход 7 на регистър IR9) започва да се предава с началото на сигнала за запис -Rec. Следните битове се предават с всеки следващ положителен фронт на тактовия сигнал C. Сигналът от вход 0 се предава последен. Битовете на серийния код се записват в регистъра IR8 в същия ред, в който са били в регистъра IR9. В края на прехвърлянето първият предаден сигнал за данни ще бъде в бит 7 на шината за данни на регистъра IR8, а последният предаден сигнал за данни ще бъде в бит 0.

Следващото приложение на регистрите за изместване е организирането на всички видове линии за забавяне, особено тези със значителен брой етапи. Използвайки регистри за смяна, можете да забавите всеки входен сигнал с цял брой тактови цикли. Трябва обаче да се има предвид, че продължителността на входния сигнал (и всеки от неговите елементи) също ще бъде предадена по линията на забавяне с точност до един тактов цикъл. Такива линии на забавяне могат да се използват за сравняване на няколко последователни тактови цикъла на входен сигнал, за извършване на аритметични операции върху няколко тактови цикъла на входен сигнал и за други подобни цели. Илюстрирана е работата на линия за забавяне в регистър за изместване ориз. 8.20.

Ориз. 8.20.Линия на забавяне на входа в регистъра за смяна

Регистрите за преместване също могат да се използват за генериране на импулси с дадена продължителност, като продължителността на импулса може да бъде определена от контролния код, тоест може да се управлява софтуерно. На ориз. 8.21Показана е възможна диаграма на такъв драйвер.

Ориз. 8.21.Формировач на импулс с продължителност, определена от контролния код

В първоначалното състояние (преди пристигането на положителния фронт на входния сигнал) тригерът се нулира на нула, всички изходи на регистъра за смяна са нули, а обратният изход на мултиплексора е единица. Мултиплексорът е снабден с контролен код, който определя продължителността на изходния сигнал. Когато пристигне положителен фронт на входния сигнал, тригерът се хвърля към единица (започва изходният сигнал) и този сигнал започва последователно да се измества от регистъра за изместване на всеки фронт на тактовия сигнал.

Нека контролният код е равен на 5. Тогава в момента, когато единица се появи на изход 5 на регистъра за смяна, тя ще бъде предадена на изхода на мултиплексора KP7 с инверсия. В този случай нулев сигнал на входа –R на тригера ще нулира тригера на нула, т.е. изходният сигнал ще приключи.

По този начин продължителността на изходния сигнал ще се определя от контролния код. Грешката при задаване на тази продължителност е равна на един период от тактовия сигнал и зависи от времевата промяна между фронта на входния сигнал и фронта на най-близкия тактов импулс. Колкото по-голяма е продължителността на изходния сигнал, толкова по-малка е относителната грешка при настройка на неговата точност. Например, с контролен код 0, продължителността на изходния сигнал може да бъде от 0 до T, където T е периодът на тактовия сигнал. И с контролен код 7, продължителността на изходния сигнал ще бъде от 7T до 8T. В този случай не вземаме предвид закъсненията на тригера, регистъра за смяна и мултиплексора.

Shift регистрите могат също да се използват за умножаване и деление на двоични числа на 2n, където n е цяло число, по-голямо от нула. Преместването на двоично число надясно (към най-значимите битове) с един бит е еквивалентно на деление на 2. Преместването на двоично число наляво (към най-значимите битове) с един бит е еквивалентно на умножение по 2. В ред за преместващ регистър за умножаване и разделяне на двоичен код, просто трябва да запишете този код в регистъра и да го преместите необходимия брой пъти надясно или наляво. Регистърът IR13 е най-удобен за това. В този случай е необходимо нулите да бъдат преместени в освободените битове, т.е. нулевите сигнали трябва да бъдат подавани към входовете за разширение на регистъра DR и DL.

И накрая, последното приложение на преместващ регистър, което ще разгледаме, е като генератор на произволен сигнал или генератор на произволна кодова последователност. Строго погледнато, последователностите няма да са напълно случайни, а квазислучайни, тоест ще се повтарят периодично, но този период е доста дълъг. Случайни последователности от сигнали и кодове се използват широко в тестово оборудване, генератори на шум и устройства за логически игри.

Целта е изходният сигнал или код да промени състоянието си произволно (или почти произволно). Сигналът трябва произволно да превключва от 0 на 1 и от 1 на 0, а кодът трябва произволно да приема стойности от 0 до (2 N–1), където N е броят битове на кода (например от 0 до 255 за 8-битов код). Псевдослучайните последователности имат предимството пред истински случайните, че са предвидими и периодични, но това е и техният недостатък.

Структурата на генератор на квазипроизволни последователности, използващ регистър за преместване, е много проста ( ориз. 8.22). Това е преместващ регистър с паралелни изходи (например IR8), няколко (най-малко два) изходни сигнала от които се комбинират с помощта на елемент Изключително ИЛИ, от изхода на който сигналът се подава към входа на регистъра, затваряйки веригата в пръстен. Веригата се тактова от сигнал с честота f T .

Ориз. 8.22.Структура на генератор на псевдослучайна последователност

Изборът на номера на битове за връзки за обратна връзка не е лесна задача, но има справочни таблици, които ги показват. Във всеки случай една от точките на свързване е изходът от висок ред.

По-изгодно е да вземете брой битове, които не са кратни на 8, например 7, 15 или 31. В този случай само два изхода се използват за обратна връзка, тоест един двувходов елемент Изключително ИЛИ е достатъчно.

Периодът на изходната последователност на генератора е (2 N -1) тактови цикъла, където N е броят битове на регистъра за смяна. През това време всяка от възможните стойности на изходния код (с изключение на една) се появява веднъж. Броят на единиците в изходния сигнал е по-голям от броя на нулите на единица.

Изходен код 000...0 е забранено състояние, защото деактивира осцилатора, като се възпроизвежда отново и отново. Но в същото време такъв нулев код може да бъде получен само от себе си, така че е достатъчно да се гарантира, че той не съществува, когато веригата е включена.

Честотите в спектъра на изходния сигнал ще следват интервал от (f T /2 N –1), а обвивката на спектъра ще бъде почти постоянна до честота от 0,25f T, т.е. шумът до тази честота може да се считат за бели (спад от 3 dB възниква при честота от 0,45 f T).

Такъв генератор използва известната компания Hewlett-Packard в своя генератор на шум.



Зареждане...
Връх