Skip to content
АЦУ · Тема 21 · Време и памет

Бутонът, който подскача – най-малката памет

Натискаш бутона веднъж, а броячът отброява четири. Металният контакт подскача и за милисекунда се затваря и отваря няколко пъти. Лекарството е най-малката памет – тригер, който помни един бит. В урока го сглобяваме от два елемента И-НЕ, после срещаме D, T и JK тригерите, от които са направени регистрите, броячите и процесорите.

≈ 5 мин четене∿ 3 живи уредаСамопроверка: 5 въпроса

Тригерът: един бит, който помни ​

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

Най-простият е RS тригерът от два елемента И-НЕ, вързани кръстосано. Изходът на всеки е вход на другия, затова двата се подпират взаимно в едно от двете положения. Входовете тук са с активно ниво 0: S̅ (set) установява Q = 1, R̅ (reset) нулира Q = 0, а при S̅ = R̅ = 1 тригерът пази каквото е имал. Двата едновременно (00) са забранени: тогава и Q, и Q̅ стават 1, а когато се отпуснат заедно, никой не знае кой ще спечели.

Сега тригерът е пази: Q = 1.

RS тригер от две И-НЕ
S̅R̅&&QQ̅
Фигура 1.

Свали S̅ в 0: Q светва. Върни S̅ в 1: Q остава да свети – тригерът помни. Свали R̅: Q изгасва и пак остава така. Свали и двата: светват и Q, и Q̅ – това е забраненото състояние.

Подскачащият бутон ​

Механичният контакт при натискане не се затваря чисто: пружинката отскача и за около милисекунда той се отваря и затваря няколко пъти. За човека това е едно натискане. За брояч, който реагира за наносекунди, са няколко.

Лекарството е RS тригер. Бутонът е с превключващ контакт: в покой държи R̅ = 0, а натиснат – S̅ = 0. При първото докосване на S̅ тригерът се установява. Отскоците отварят контакта, т.е. S̅ = R̅ = 1, а при 11 тригерът пази. Колкото и пъти да подскочи, Q се сменя веднъж.

Контактът подскача 4 пъти за 2,18 ms. Брояч, вързан направо за контакта, отброява 5 натискания. След RS тригера – 1.

Отскоците и RS тригерът
0123456S̅Qt – време, ms
S̅ Q
Фигура 2.

Синьото е контактът. При натискането пада в 0, после няколко пъти отскача в 1, всеки път по-кратко. Жълтото е изходът на тригера: качва се при първото докосване и повече не мърда. Същото може и с RC филтър плюс тригер на Шмит (тема 9), или програмно: микроконтролерът изчаква 10–20 ms.

Синхронните тригери: D, T и JK ​

В голямата схема тригерите трябва да се сменят заедно, по команда, а не когато им дойде вход. Затова синхронните тригери имат вход за такт C. Според това как реагират на такта са:

  • по ниво (статични) – следват входа, докато C = 1;
  • по фронт (динамични) – гледат входа само в мига, в който C се качва (или слиза);
  • главен-подчинен (master-slave, двустъпални) – докато C = 1, „главният“ приема входа, а „подчиненият“ е заключен. При спадането на C резултатът минава в подчинения, а главният се заключва. Така изходът никога не се връща навреме обратно към входа.

Видовете:

ТригерКакво правиQt+1Защо е важен
D (delay)при фронта „снима“ D и го пазиDосновата на регистрите (тема 23)
T (toggle)при T = 1 се обръща на всеки фронтT ⊕ Qдели честотата на 2 – основата на броячите (тема 24)
JKкато RS (J – set, K – reset), но при 11 се обръща вместо да е забраненоJQ̄ + K̄Qуниверсален: с J = K е T, с K = J̄ е D

JK има обратна връзка от изхода към входа. При 11 като тригер по ниво би се обръщал непрекъснато, докато C = 1. Затова JK е винаги синхронен, по фронт или master-slave. Тук J = 1 и K = 1: JK тригерът обръща се на всеки фронт.

D, T и JK на един такт
02468CDQ (D)Q (T=1)Q (JK)t – време, μs
C D Q (D) Q (T=1) Q (JK)
Фигура 3.

Всички се сменят само при предния фронт на C (синьо). D-тригерът копира D от този миг. Краткият импулс на D около 3,8 μs е между два фронта и изобщо не стига до Q. T-тригерът се обръща на всеки фронт, затова изходът му е с половината честота на такта. JK при J = K = 1 прави същото като T. Пробвай 10, 01 и 00.

Самопроверка ​

1. Защо при RS тригера R = S = 1 е забранено?

Тогава и двата изхода стават еднакви (при И-НЕ – и двата 1), а когато входовете се отпуснат заедно, крайното състояние зависи от това кой елемент е по-бърз – не е определено.

2. Напиши характеристичните уравнения на D, T и JK.

D: Qt+1 = D; T: Qt+1 = T ⊕ Qt; JK: Qt+1 = J·Q̄t + K̄·Qt.

3. Как се прави T тригер от JK? А D?

T: J = K = T. D: J = D, K = D̄.

4. Какво прави T тригерът с честотата на такта при T = 1?

Дели я на 2 – изходът се обръща на всеки фронт, значи един негов период е два такта.

5. Защо JK тригерът е само синхронен (по фронт или master-slave)?

Има обратна връзка от изхода към входа: при J = K = 1 и такт по ниво изходът би се обръщал непрекъснато, докато C = 1 (състезание). По фронт или master-slave обръщането е точно веднъж на такт.