Логическите нива са области, не числа
Цифровата схема разбира само две неща: 0 и 1. В жицата обаче има напрежение, а то никога не е точно 0 V или точно 5 V. Затова всяко ниво е цяла област. При TTL за входа „1“ е всичко над 2,0 V, „0“ е всичко под 0,8 V, а между тях е неопределената област: там елементът може да реши както иска. Това е положителна логика (H = 1, L = 0). При отрицателната е обратно.
Номерът е, че изходът обещава повече, отколкото входът иска. Изходът на TTL дава „1“ поне 2,4 V и „0“ най-много 0,4 V. Разликата от 0,4 V между обещанието и изискването е шумоустойчивостта: толкова смущение може да се добави по пътя, без приемникът да се обърка.
Пращаме 121 = 0111 1001 (старшият бит пръв) с най-лошите нива, които TTL изход още има право да даде. По жицата има шум с връх 0,3 V. Приемникът разбира 01111001 – всичко е наред.
предадено на входа U1вх min 2,0 V U0вх max 0,8 V
Синьото е това, което предавателят дава: 2,4 V и 0,4 V – долната граница на обещанието му. Жълтото е това, което стига до приемника. Докато шумът е до 0,4 V, жълтото не влиза между пунктирите и всички осем бита стигат. При 0,5 V първият връх влиза в неопределената област и се появява „?“. При 0,8 V всички осем бита са „?“: приемникът може да прочете всяко число.
Фронтът и закъснението
Смяната от 0 на 1 също не е мигновена. Изходът на чипа има съпротивление R, а жицата и входовете, които той кара, имат капацитет C. Това е RC веригата от тема 20: напрежението пълзи нагоре по експонента. Времето от 10 % до 90 % се казва фронт (време на нарастване t_r), а за RC то е t_r ≈ 2,2·RC.
Приемникът превключва чак когато линията стигне неговия праг – около половината от захранването. Затова сигналът пристига със закъснение. Закъснението от вход до изход се мери на 50 % и е различно при двата прехода: t10 (изходът пада) и t01 (изходът се вдига). В каталозите пишат средното tзад.ср = (t01 + t10)/2.
Тук изходното съпротивление е R = 200 Ω. Изходът кара m = 4 входа по 5 pF плюс 10 pF жица, общо C = 30 pF. Значи RC = 6 ns и 2,2·RC = 13,2 ns. Симулацията мери фронт 13,3 ns и средно закъснение до изхода на приемника 7,07 ns. Лентата, която такъв фронт иска, е B ≈ 0,35/t_r ≈ 26,4 MHz.
вход линия изход праг Ucc/2
Синьото е идеалният правоъгълник, жълтото е линията, а зеленото е изходът на приемника, обърнат, защото приемникът е инвертор. Изходът се сменя едва когато жълтото пресече пунктира. Сложи 30 входа и виж колко се забавя всичко: затова един изход не може да кара безкрайно много входове.
Импулсът: период и коефициент на запълване
Повтарящият се цифров сигнал (тактът) има период T и честота f = 1/T. Каква част от периода е 1 казва коефициентът на запълване D = tи/T. Импулс 2 μs на всеки 10 μs е D = 20 %. Тактът на процесора е с D = 50 %, а при ШИМ управлението на мотор (тема 16 по СА) D задава колко мощност отива в мотора.
Когато импулсите не се повтарят редовно, вместо честота се говори за интензивност – колко импулса средно идват за единица време.
Параметрите на логическия елемент
Каталогът на всеки логически чип описва едни и същи неща:
| Параметър | Какво казва |
|---|---|
| Статична предавателна характеристика | Uизх(Uвх), снета бавно; от нея са нивата и прагът |
| Шумоустойчивост U1ш, U0ш | колко смущение понася входът |
| Средно закъснение tзад.ср | колко бърз е: свръхбързи < 1 ns, бързи 1–10 ns, средни 10–50 ns, бавни > 50 ns |
| Брой входове n | обикновено 2–8; повече входове правят елемента по-бавен |
| Товароспособност m | колко входа от същата фамилия може да кара (30–40) |
| Мощност Pср = (P0 + P1)/2 | средно между двете състояния на изхода |
Кои числа какви са зависи от фамилията (TTL, CMOS, ECL) – за това е тема 16.
Кодовете: едно число, много записи
С n бита могат да се запишат 2ⁿ числа, а правилата как точно са кодове. Числото тук е 121:
| Код | Запис | Как се получава |
|---|---|---|
| Двоичен | 0111 1001 | всеки бит тежи 1, 2, 4, 8…; старшият (MSB) е вляво |
| Шестнадесетичен | 79 | всяка тетрада (4 бита) става цифра 0–9, A–F |
| BCD (двоично-десетичен) | 0001 0010 0001 | всяка десетична цифра поотделно с 4 бита |
| Грей | 0100 0101 | gᵢ = bᵢ ⊕ bᵢ₊₁ – съседните числа се различават с един бит |
| −121 в допълнителен код | 1000 0111 | обръщаш битовете и добавяш 1 |
От 121 към 122 в двоичен код се сменят 2 бита наведнъж, а в кода на Грей – винаги един. Пробвай 127: всичките 8 бита се обръщат. Ако ги четеш точно докато се сменят, можеш да хванеш всяко число. С кода на Грей грешката е най-много една стъпка.
Къде се ползва всеки код:
- Двоичният е за аритметиката: процесорът събира в него.
- Шестнадесетичният е съкратен запис на двоичния за хора: 0111 1001 = 79₁₆.
- BCD е за дисплеите и часовниците: всяка цифра отива направо на своя индикатор (тема 18).
- Грей е за енкодерите на въртящи се оси, бързите АЦП и картите на Карно (тема 17).
- Допълнителният е за отрицателните числа: събирането и изваждането стават с един и същ суматор (тема 19), а старшият бит е знакът. Правият код (знак + модул) има +0 и −0, затова не се ползва за смятане.
- Има и кодове, при които повече бита пазят по-малко числа, но се четат по-лесно. Унитарен: n бита за n числа, само една единица. Термометричен: единиците се пълнят като живака в термометъра, ползва го бързият АЦП. Джонсън: n бита за 2n числа, ползва се в броячите.
Самопроверка
1. TTL изход дава поне 2,4 V за 1, вход иска поне 2,0 V. Колко шум понася единицата?
U1ш = 2,4 − 2,0 = 0,4 V.
2. R = 1 kΩ, C = 100 pF – колко е фронтът?
t_r ≈ 2,2·RC = 2,2 · 1 kΩ · 100 pF = 220 ns.
3. Импулс 2 μs при период 10 μs – колко е D?
D = 2/10 = 20 %.
4. Запиши 121 в двоичен, шестнадесетичен и BCD код.
121 = 64 + 32 + 16 + 8 + 1 = 0111 1001₂ = 79₁₆ (7·16 + 9 = 121); BCD: 0001 0010 0001.
5. Как се записва −3 в допълнителен код с 4 бита?
+3 = 0011 → обръщаме: 1100 → +1: 1101.
6. Защо енкодерът на въртяща се ос е в код на Грей?
Между две съседни положения се сменя само един бит. Ако датчикът прочете точно на границата, грешката е най-много една стъпка, а не произволно число.