Logikai szintek és áramkörök összekapcsolása

Dr. Mingesz RóbertSzerzők: Dr. Mingesz Róbert, Mellár János, Makan Gergely és Somogyi Anikó

Tananyag elsajátításához szükséges idő: 60 perc.

Az olvasólecke röviden bemutatja a logikai jelszintekkel kapcsolatos legfontosabb ismereteket. Először szóba kerül, hogy mik is a logikai jelszintek, hogyan felelnek meg a logikai értékek a konkrét feszültségértékeknek különböző áramkörcsaládok esetén, majd megismerjük, hogy az adatlapokból ez az információ hogyan nyerhető ki. Fontos téma, hogy a különböző jelszintekkel dolgozó áramkörök hogyan köthetők össze egymással.

Tartalom

  • Logikai jelszintek
  • Logikai jelszintek konverziója
  • Jelváltozási sebesség

Logikai jelszintek

Amikor digitális áramkörökkel dolgozunk, leginkább hamis és igaz, 0-ás és 1-es értékekben gondolkozunk. Az áramkörök megvalósítása az áramkörökben azonban folytonosan változó feszültségértékekről beszélhetünk. Így, a digitális áramkörök megvalósítása során ezek közötti megfeleltetésre is figyelnünk kell. Első körben az alábbi táblázatban megfogalmazott megfeleltetés jut eszünkbe.

IgazTrue1H5 V
HamisFalse0L0 V
A logikai jelek különböző megnevezése, valamint megfeleltetése konkrét feszültségértékekhez. Utóbbi megfeleltetés, bár gyakran használjuk, de nem pontos, kissé pongyola.

A táblázat egy erős pongyolaságot is tartalmaz: bár gyakran mondjuk azt, hogy a logikai 0 az 0 V, a logikai 1 pedig 5 V, ez a valóságban sosem fog teljesülni, a mért feszültségértékek ezektől az ideális értékektől el fog térni. Számos áramkörcsalád létezik, eze eltérő jelszintekkel dolgoznak.

TTL típusú logikai áramkörök esetén az áramkör bemenetén logikai 0 értéknek tekintjük a jelet, hogy ha az 0 és 0,8 V közötti értékeket vesz fel, logikai 1 értékűnek, hogy ha az 2 V és az 5 V-os tápfeszültség közötti értékeket vesz fel. A kettő között a tiltott tartomány foglal helyet, a bemeneten 0,8 V és 2 V közötti feszültség nem lehet (tartósan, lásd később). A kimeneten szűkebbek a sávok, logikai egynek számít a kimenet, hogy ha az 0 és 0,4 V közötti értéket vesz fel, logikai 1 esetén pedig legalább 2,4 V kell legyen a kimenet. Azért szűkebbek a sávok, mert így van valamekkora tartalék a rendszerben, ha a vezetékeken feszültség esne, vagy lennének zavarjelek, a túloldal továbbra is helyesen fogja értelmezni a logikai értékeket. A TTL logikai szintek a következő ábrán vannak szemléltetve.

TTL áramkörök esetén érvényes logikai szintek a bemeneten és a kimeneten

Számos áramkörcsalád terjedt el, valamint a tápfeszültség csökkentésével folyamatosan új feszültségszintekkel fogunk találkozni. A következő ábra néhány elterjedtebb családot mutat be.

Példák különböző áramkörcsaládok esetén mért jelszintekre

A logikai jelszintek határozzák meg, hogy egy logikai érték (igaz vagy hamis) milyen feszültségtartománynak felel meg a bemeneten vagy a kimeneten.

A gyakorlatban rendszeresen előfordul, hogy különböző áramkörcsaládok tagjait kell felhasználnunk, ezeknek az integrált áramköröknek pedig egymással kell kommunikálniuk. Ilyen esetben két fő kérdés merül fel:

  • Helyes lesz-e a logikai jelek értelmezése
  • Történhet-e fizikai, tartós károsodás az áramkörök összekötése esetén

A következő példában 5 voltos tápfeszültségű TTL és CMOS áramkörök kompatibilitása van összehasonlítva. Az ábrából látható, hogy a CMOS áramkör kimeneti feszültségszintjei tökéletesen megfelelők a TTL áramkör számára, az helyesen fogja értelmezni a logikai jeleket. Fordítva, ha TTL áramkör kell meghajtsa a CMOS áramkört, akkor a TTL által előállított, akár 2,4 V-os logikai 1-et a CMOS áramkör már nem fogja helyesen értelmezni, hiszen az az ő tiltott tartományában van. Lehetséges, hogy a TTL áramkör olyan kimeneti jelszintet állít elő, ami nagyobb, mint a 3,5 V-os alsó küszöb, de erre semmilyen garancia nincs.

TTL-CMOS áramkörök kompatibilitása.

Egyre gyakrabban találkozunk kisebb, pl. 3,3 V-os tápfeszültséggel dolgozó áramkörökkel. Az alábbi ábrán vannak ábrázolva a feszültségszintek. A 3,3 V-os logikai áramkör olyan kimeneti feszültségeket állít elő, melyek tökéletesen megfelelnek a TTL áramkör számára. Azonban fordítva már lehetnek problémák. A TTL áramkör a kimenetén akár 5 V-os feszültséget is előállíthat, míg a 3,3 V-os logika tápfeszültsége csak 3,3 V. Az áramkörök jó része nem képes elviselni a tápfeszültségnél nagyobb bemeneti feszültségeket, tehát ez az irány a 3,3 V-os áramkör meghibásodásához is vezethet. Sőt, mivel a bemenetek és a tápfeszültség között gyakran egy védődióda van kiépítve, az 5 V-os bemenet gyakorlatilag a 3,3 V-os logika tápfeszültségére is rákerül, módosítva azt, további meghibásodásokat eredményezve. Vannak ugyanakkor olyan 3,3 V-os digitális áramkörök, melyek bemenete 5 V toleráns, tehát üzemszerűen elviseli a 3,3 V-nál nagyobb bemeneti feszültséget. Ebben az esetben mindkét irányba kompatibilis lesz a jelek átvitele.

TTL és 3,3 V-os áramkörök kompatibilitása

5 V-os CMOS áramkörök és a 3,3 V-os áramkörök, az alábbi ábrának megfelelően nem kompatibilisek egymással, az 5 V-os logika csak akkor hajthatja meg a 3,3 V-os logikát, hogy ha az 5 V toleráns, fordított irányba pedig mindenképp gondok lesznek.

Az 5 V-os CMOS és a 3,3 V-os áramkörök kompatibilitása. Alapvetően nem kompatibilisek egymással.

I2C kommunikáció esetén az áramkörök kimenetei Open Collectoros üzemmódba vannak konfigurálva, a logikai egyes szintet a felhúzó ellenállások biztosítják. Hogy ha a logikai szintek egyébként egymással kompatibilisek, akkor gyakori, hogy a felhúzó ellenállásokat a kisebbik tápfeszültségű áramkör tápfeszültségéhez kötjük be, így a kommunikáció akadálytalan.

A különböző jelszintekkel dolgozó áramkörcsaládok esetén külön figyelmet igényel azok kompatibilitásának ellenőrzése. Ennek elmulasztása akár az áramkörök maradandó károsodásához is vezethet.

Logikai jelszintek konverziója

Lehetőség van a logikai szintek konverziójára is, tehát egy extra áramkör gondoskodik arról, hogy a jelszintek megfelelők legyenek. A jelszint-konverzió legegyszerűbb megvalósítása a feszültségosztó, tehát egy nagyobb feszültségű kimenetet egy egyszerű feszültségosztóval kisebbé alakítunk. Itt kritikus lehet az ellenállások értéke, hogy ha azok túlságosan nagyok, akkor a jelátvitel sebessége csökkenni fog. Alacsonyabb feszültségszínekről nagyobbra már aktív, általában tranzisztoros megoldásokat alkalmazunk.

Példa egyszerű logikai szintkonverterre

Az egyszerű diszkrét megoldások mellett erre a célra készített integrált áramköröket is használhatunk szintkonverzióra. Ezek között vannak egyirányú szintkonverterek, és kétirányú szintkonverterek, utóbbiakra példa a TXB0108-as szintkonverter.

Példa TXB0108-as szintkonverter alkalmazására

A jelszintkonverterek befolyásolhatják a jelek terjedését, körültekintően kell megválasztani az alkalmazott megoldást.

Logikai jelszintek ellenőrzése

A logikai áramkörök jelszintjeit az adatlapokból tudjuk biztosan ellenőrizni. Az adatlapok meghatározzák, hogy pontosan milyen körülmények között (tápfeszültség, hőmérséklet, terhelés) érvényesek a megadott paraméterek. A következő táblázatban foglaljuk össze a legfontosabb kifejezéseket. A konkrét paraméterek általában tartalmaznak egy átlagos értéket, valamint maximum és minimum korlátokat is

SzimbólumParaméter angolulJelentés
Vcc, VddSupply VoltageTápfeszültség
Input VoltageBemeneti feszültségre vonatkozó feltételek (pl. abszolút maximum értéke
VIHHigh Level Input VoltageMagas értéknek számító bemeneti feszültség (min)
VILLow Level Input VoltageAlacsony értéknek számító bemeneti feszültség (max)
VOHHigh Level Output VoltageMagas értékhez tartozó kimeneti feszültség (minimum és tipikus érték)
VOLLow Level Output VoltageAlacsony értékhez tartozó kimeneti feszültség (maximum és tipikus érték)
Adatlapokban használt legfontosabb kifejezések

Jelváltozási sebesség

A logikai jelek időben változnak, ezt a változást követi az áramkörben lévő feszültségek változása is. Azonban a feszültség, az egy folytonos fizikai mennyiség, nem változhat ugrásszerűen, időbeli függvénye folytonos. Miközben a logikai jel hamisról igazra vált, a feszültség átmegy a tiltott tartományon. Az áramkör akkor fog helyesen viselkedni, hogy ha ez az átmenet elegendően gyors. Hogy mi számít gyorsnak, az az adott áramkörtől fog függeni, erre vonatkozó részletes adatok az adatlapokban vannak.

Példa jelváltozásra logikai áramkör esetén (pl. egy ponált kimenetű bufferkapú esetén)

Amennyiben a jelváltozás lassú, az hibás eredményre vezethet, a kimeneten több jelváltozás is történhet közben, valamint a kimeneti érték is lehet érvénytelen, a tiltott tartományban lévő feszültség.

Lassú jelváltozás hibás működésre vezethet

Amennyiben a bemeneti jelek lassan változnak, a tiltott tartományban tartózkodnak, az hibás működéshez vezethet.

A digitális áramkörök bemenetének egy része egy extra Schmitt-trigger fokozatot is tartalmaz. Ennek a fokozatnak két küszöbszintje is van: a kimenet akkor válik egyesé, amikor a bemenet meghaladja a felső küszöbszintet, és akkor válik nullává, ha az alsó küszöbszint alá csökken (hiszterézis). Így egy lassú változás nem okoz hamis, extra változásokat a kimeneten. Ezen felül, a küszöbszintek általában eléggé pontosan, determinisztikusan viselkednek, nagyon precízen váltanak egy adott küszöb elérésekor. A mikrovezérlők (pl. Arduino) bemenetei ilyen bemeneti fokozattal rendelkeznek, így nem érzékenyek a bemeneti jelek minőségére.

Schmitt-trigger bemeneti fokozattal rendelkező áramkör viselkedése lassan változó jel esetén

A Schmitt-trigger bemeneti fokozattal rendelkező áramkörök kevésbé érzékenyek a bemeneti jelek minőségére.

Results

#1. TTL áramkörök esetén mely számít logikai "1" értéknek?

#2. TTL áramkörök esetén mely számít logikai "0" értéknek?

#3. Melyik irány esetén kompatibilis a jelátvitel?

#4. Melyik állítás igaz a Schmitt-trigger bemenetekre?

Kész

Ajánlott irodalom

  • David Money Harris, Sarah L. Harris: Digital Design and Computer Architecture (elérhető elektronikusan a SZTE Klebesberg Könyvtárban)

Jelen tananyag a Szegedi Tudományegyetemen készült az Európai Unió támogatásával. Projekt azonosító: EFOP-3.4.3-16-2016-00014