Тригерът: един бит, който помни
Досега всичко беше комбинационно: изходът зависеше само от входовете в момента. Тригерът е различен. Той има две устойчиви състояния и остава в последното, докато не му кажем друго. Това е най-малката памет: 1 бит. Отвътре е входна комбинационна схема плюс запомняща клетка, т.е. елементарен автомат на Мур с две състояния (тема 22).
Най-простият е RS тригерът от два елемента И-НЕ, вързани кръстосано. Изходът на всеки е вход на другия, затова двата се подпират взаимно в едно от двете положения. Входовете тук са с активно ниво 0: S̅ (set) установява Q = 1, R̅ (reset) нулира Q = 0, а при S̅ = R̅ = 1 тригерът пази каквото е имал. Двата едновременно (00) са забранени: тогава и Q, и Q̅ стават 1, а когато се отпуснат заедно, никой не знае кой ще спечели.
Сега тригерът е пази: Q = 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.
S̅ Q
Синьото е контактът. При натискането пада в 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 тригерът обръща се на всеки фронт.
C D Q (D) Q (T=1) Q (JK)
Всички се сменят само при предния фронт на 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 обръщането е точно веднъж на такт.