FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
Garant předmětu: Prof. Ing. Radimír Vrba, CSc. Autoři textu: Doc. Ing. Pavel Šteffan, Ph.D.
BRNO * 2014
Vznik těchto skript byl podpořen projektem č. CZ.1.07/2.2.00/28.0062 Evropského sociálního fondu a státním rozpočtem České republiky.
FEKT Vysokého učení technického v Brně
2
Autor Název Vydavatel
Vydání Rok vydání Náklad ISBN
Doc. Ing. Pavel Šteffan, Ph.D Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO Vysoké učení technické v Brně Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací Technická 12, 612 00 Brno první 2014 elektronicky 978-80-214-5072-1
Tato publikace neprošla redakční ani jazykovou úpravou.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
3
Obsah 1
ÚVOD ................................................................................................................................. 6
2
ZÁKLADNÍ POJMY DIGITÁLNÍ TECHNIKY ........................................................... 7
3
KOMBINAČNÍ LOGICKÉ FUNKCE ............................................................................ 9 3.1 ZPŮSOBY ZÁPISU A ZOBRAZENÍ KOMBINAČNÍCH LOGICKÝCH FUNKCÍ ............................ 12 3.1.1 Zápis kombinační logické funkce pomocí pravdivostní tabulky ................ 12 3.1.2 Zápis kombinační logické funkce logickým výrazem ................................. 14 3.1.3 Zobrazení kombinační logické funkce pomocí mapy ................................. 17 3.1.4 Zobrazení kombinační logické funkce logickými schématy s kombinačními logickými členy .......................................................................................... 18 3.2 ZJEDNODUŠOVÁNÍ ZÁPISU KOMBINAČNÍCH LOGICKÝCH FUNKCÍ ........................................ 18 3.2.1 Minimalizace logických funkcí pomoci Karnaughovy mapy ..................... 18 3.2.2 Minimalizace logických funkcí pomoci Quineho -McCluskeyho ............... 19 3.2.3 Minimalizace logických funkcí s využitím smíšené formy - TANT ............. 20 3.2.4 Další metody minimalizace logických funkcí ............................................. 21
4
REALIZACE KOMBINAČNÍCH LOGICKÝCH FUNKCÍ ...................................... 22 4.1 REALIZACE KOMBINAČNÍ LOGICKÉ FUNKCE ZÁKLADNÍMI KOMBINAČNÍMI DIGITÁLNÍMI OBVODY ......................................................................................................................... 23 4.1.1 Realizace kombinační logické funkce součinovými a součtovými obvody . 23 4.1.2 Realizace kombinační logické funkce pomocí členů AND-OR-INVERT ... 25 4.1.3 Realizace kombinační logické funkce pomocí multiplexorů ...................... 25 4.1.4 Realizace kombinační logické funkce pomocí demultiplexorů .................. 28 4.2 DALŠÍ ZPŮSOBY REALIZACE KOMBINAČNÍ LOGICKÉ FUNKCE ......................................... 31
5
PAMĚŤOVÉ OBVODY ................................................................................................. 33 5.1 PAMĚTI TYPU ROM ....................................................................................................... 34 5.1.1 Paměti PROM ............................................................................................ 36 5.1.2 Paměti EPROM.......................................................................................... 37 5.1.3 Paměti EEPROM ....................................................................................... 38 5.1.4 Paměti FLASH ........................................................................................... 39 5.1.5 Paměti MRAM............................................................................................ 41 5.2 PAMĚTI TYPU RWM ...................................................................................................... 42 5.2.1 Paměti SRAM ............................................................................................. 43 5.2.2 Paměti DRAM ............................................................................................ 43
6
DRUHY DIGITÁLNÍCH INTEGROVANÝCH OBVODŮ........................................ 45 6.1 BIPOLÁRNÍ INTEGROVANÉ OBVODY .................................................................................. 46 6.1.1 Vstupní statická charakteristika................................................................. 48 6.1.2 Výstupní statická charakteristika ............................................................... 49 6.1.3 Převodní statická charakteristika .............................................................. 50 6.1.4 Dynamické vlastnosti ................................................................................. 50 6.1.5 Další varianty obvodů TTL ........................................................................ 51 6.1.6 Shrnutí základních vlastností logických bipolárních IO ............................ 52 6.2 UNIPOLÁRNÍ INTEGROVANÉ OBVODY ................................................................................ 53 6.2.1 Stejnosměrná analýza invertoru CMOS .................................................... 54 6.2.2 Šumová imunita.......................................................................................... 56 6.2.3 Stanovení výstupních úrovní ...................................................................... 57
4
FEKT Vysokého učení technického v Brně 6.2.4 Stanovení vstupních úrovní ....................................................................... 57 6.3 ZPOŽDĚNÍ LOGICKÝCH HRADEL ..................................................................................... 59 6.4 ZNAČENÍ LOGICKÝCH OBVODŮ ...................................................................................... 63 6.5 PŘEHLED VYRÁBĚNÝCH PRODUKTOVÝCH ŘAD .............................................................. 65
7
ZÁSADY NAVRHOVÁNÍ DIGITÁLNÍCH OBVODŮ A SYSTÉMŮ ......................71 7.1 PŘIPOJOVÁNÍ VSTUPŮ DIGITÁLNÍCH OBVODŮ ................................................................ 71 7.1.1 Ošetření nevyužitých vstupů ...................................................................... 71 7.1.2 Připojování vstupů nevyužitých logických obvodů .................................... 73 7.1.3 Přizpůsobování napěťových úrovní ........................................................... 73 7.1.4 Zpracování signálů mechanických kontaktů ............................................. 78 7.2 VÝSTUPY DIGITÁLNÍCH OBVODŮ ................................................................................... 81 7.2.1 Buzení výkonové zátěže úrovní H .............................................................. 82 7.2.2 Buzení výkonové zátěže úrovní L ............................................................... 83 7.2.3 Galvanické oddělení výstupů ..................................................................... 84 7.3 APLIKAČNÍ ZÁSADY....................................................................................................... 85 7.3.1 Rozvod zemního vodiče ............................................................................. 85 7.3.2 Rozvod napájecího napětí ......................................................................... 86 7.3.3 Poznámky k oživování přístroje................................................................. 87
8
ÚPRAVA HRAN LOGICKÝCH SIGNÁLŮ ................................................................88 8.1 SCHMITTŮV KLOPNÝ OBVOD ......................................................................................... 89 8.2 NEAUTONOMNÍ GENERÁTORY IMPULSŮ......................................................................... 90
9
ODOLNOST DIGITÁLNÍCH SYSTÉMŮ NA RUŠENÍ .............................................93 9.1 VAZEBNÍ MECHANISMY PŘENOSU RUŠIVÝCH SIGNÁLŮ .................................................. 97 9.1.1 Induktivní vazba ...................................................................................... 100 9.1.2 Kapacitní vazba ....................................................................................... 101 9.1.3 Galvanická vazba .................................................................................... 105 9.2 ÚTLUM ........................................................................................................................ 106 9.2.1 Útlum odrazem ........................................................................................ 107 9.2.2 Absorpční útlum ...................................................................................... 107 9.2.3 Celková účinnost stínění.......................................................................... 108 9.3 CITLIVOST LOGICKÝCH ČLENŮ NA RUŠENÍ................................................................... 109
10 ARDUINO ......................................................................................................................111 10.1 STRUKTURA PROGRAMU .............................................................................................. 111 10.2 SYNTAXE..................................................................................................................... 112 10.2.1 Proměnné ................................................................................................ 113 10.2.2 deklarace proměnných ............................................................................ 114 10.2.3 platnost proměnných ............................................................................... 114 10.3 DATOVÉ TYPY ............................................................................................................. 115 10.3.1 Konstanty ................................................................................................. 117 10.4 ARITMETICKÉ OPERACE............................................................................................... 117 10.5 FUNKCE ....................................................................................................................... 119 10.6 ŘÍZENÍ TOKU PROGRAMU............................................................................................. 119 10.7 VSTUPY A VÝSTUPY .................................................................................................... 122 10.8 ČASOVÁNÍ ................................................................................................................... 125 10.9 MATEMATICKÉ FUNKCE .............................................................................................. 125 10.9.1 Náhodná čísla .......................................................................................... 125 10.10 KOMUNIKACE ........................................................................................... 126
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
5
SEZNAM POUŽITÉ LITERATURY ................................................................................ 128 SEZNAM OBRÁZKŮ .......................................................................................................... 130
FEKT Vysokého učení technického v Brně
6
1 Úvod Logické obvody zpracovávají nespojité signály, které nabývají jen konečného malého počtu úrovní. Naprostá většina dnes vyráběných IO využívá dvou logických úrovní pracujících s dvojkovou číselnou soustavou. Jejich funkci a vzájemné spojování do soustav lze popsat pomoci Booleovy algebry. Číslicové systémy se dnes realizují několika základními způsoby. Komponenty číslicových systémů se vyrábějí prakticky výhradně ve formě integrovaných obvodů. Z hlediska ekonomičnosti zde hraje prvořadou úlohu možnost výroby těchto komponent ve velkých množstvích. Nabízená řešení jsou proto většinou univerzální, použitelná v širokém spektru zařízení a systémů. Univerzální součástka tedy musí pracovat v různých režimech, a musí být schopna provádět různé činnosti. Digitální systémy tedy nejčastěji můžeme realizovat takto: číslicové integrované obvody základních řad (74.., 4000, ECL 10 000 atd.), mikrokontroléry a mikropočítače, programovatelné logické obvody (PLD - Programmable Logic Devices) a obvody FPGA - Field Programmable Gate Arrays, obě skupiny budeme zahrnovat pod název programovatelné obvody, d) aplikačně specifické integrované obvody (ASIC). a) b) c)
V této části skript se budeme převážně zabývat základními číslicovými obvody, které tvoří podstatnou funkční část dnešních systémů. Pro složité systémy byly vytlačeny programovatelnými logickými obvody a mikrokontroléry, ale i tyto prvky nejsou schopny pracovat bez základních logických obvodů.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
7
2 Základní pojmy digitální techniky V digitální technice se používá abstrakce, kdy se signály pokládají za skokově proměnné, přičemž nabývají v nejjednodušším případě dvou možných hodnot, které označujeme jako logická jednička - log. 1 a logická nula - log. 0. Tam, kde nebude obava z nedorozumění, budeme označení log. vynechávat. Uvedené signály budou popisovány pomocí dvouhodnotových veličin. Ty mohou být interpretovány několika způsoby. Nejčastěji se používá: logická interpretace 1, 0; pravdivostní interpretace výrok pravdivý (1), nepravdivý (0); interpretace formou binárních číslic 1, 0 užívá se zvlášť pro vícebitové skupiny; interpretace vyjadřující aktivní (1) a neaktivní (0) - stav určité řídicí veličiny; další možnosti jsou např. kontaktová reprezentace: sepnuto (1), rozepnuto (0) a podobně. V dalším textu budeme používat nejčastěji logickou interpretaci. V některých případech se však používají jiné interpretace, například v programových prostředcích pro počítačový návrh digitálních systémů se setkáme téměř bez výjimky s interpretací formou binárních číslic. Dvouhodnotové veličiny se v technice digitálních integrovaných obvodů zobrazují nejčastěji těmito způsoby:
zobrazením pomocí úrovně fyzikální veličiny (napětí, proudu) - úroveň H (vyšší hodnota), L (nižší hodnota); zobrazením pomocí změny takové veličiny.
Při vyjadřování dvouhodnotových veličin pomocí elektrických signálů budeme nejčastěji používat úrovňové zobrazení. Přitom je možný dvojí vztah k interpretaci logické: vyjadřuje-li úroveň H hodnotu 1, jde o kladnou logiku (viz. obr. 1b), v opačném případě o logiku zápornou. V digitální technice pracujeme nejčastěji s kladnou logikou. Vyjadřuje-li se přitom aktivní úroveň řídicí veličiny (1) úrovní L, pak se příslušná proměnná zapisuje jako invertovaná - např. u displeje s diodami LED (obr. 1a). Hodnota 𝑎 = 1 odpovídá v kladné logice úrovni L signálu. Tím vlastně převádíme zápornou logiku na kladnou.
a) Obr. 1:
b) Příklad označení proměnné s aktivní úrovní L
Zobrazení změnou úrovně se používá především tam, kde je potřebné vyznačit určitý okamžik, např. pro zápis do registru, pro inkrementaci čítače apod. Pak mluvíme o aktivní hraně (vzestupné nebo sestupné).
8
FEKT Vysokého učení technického v Brně Logické veličiny mohou být logické konstanty (0, 1), logické proměnné, které se označují pomocí identifikátorů.
Logický systém je dynamický a pracuje v čase. Často u těchto systémů používáme diskrétní čas, což jsou pouze určité významné časové okamžiky - změny. Takovýmto systémům říkáme synchronní systémy. Změny jsou akceptovány pouze při náběžných (resp. sestupných) hranách synchronizačního signálu. V dalším textu budeme obvykle slovo logické v popisu veličin, konstant a proměnných vynechávat, pokud nebude nebezpečí nedorozumění. Základní pojmy z oboru logických systémů: logická proměnná - proměnná logického systému, která nabývá pouze hodnot 0 nebo 1, logický signál - druh fyzikálního signálu, který nabývá pouze hodnot patřících do vzájemně se nepřekrývajících množin, logická funkce - vztah závislých a nezávislých logických proměnných, logický člen - zařízení realizující logické funkce, logický systém - model logického obvodu, který matematickým popisem charakterizuje chování logického obvodu Logický obvod - druh fyzikálního systému, u něhož každá veličina nabývá v ustáleném stavu pouze dvou hodnot z dvou vzájemně se nepřekrývajících množin Logický soubor - soubor logických členů a pomocných zařízení pro realizaci logických obvodů. Každý ucelený soubor se skládá z členů umožňujících informaci: o získat - snímače, převodníky, ovládací prvky o zpracovat - funkční část realizující funkční předpis o přenést - kodéry, dekodéry, přenosové kanály o využít akční členy, výkonové prvky Logické systémy (obvody) s pevnou funkcí - navržená struktura je pevná pro řešení určité úlohy. Funkci obvodu jednoznačně určuje jeho struktura (zapojení). Změna funkce znamená změnu struktury. Logické systémy (obvody) s programovanou funkcí -funkce je určena programem uloženým v paměti. Změna funkce obvodu podmiňuje změnu programu. Jednotlivé operace (funkční předpis) odpovídají jednotlivým instrukcím. Digitální systémy se dělí na dvě velké skupiny: systémy kombinační, u nichž hodnoty výstupních veličin závisejí jen na okamžitém stavu vstupních veličin, systémy sekvenční, kde hodnoty výstupních veličin závisejí i na předchozím stavu systému, tyto systémy tedy obsahují paměťový prvek. Většina digitálních systémů jsou systémy sekvenční - typickým příkladem je například čítač. Přesto je užitečné zabývat se nejprve kombinačními systémy, které jsou obecně jednodušší. Jak uvidíme později, mnoho sekvenčních systémů lze vytvořit z kombinačních systémů pouhým přidáním paměťového prvku, registru. Analýza i syntéza sekvenčních systémů pak může být založena na rozkladu těchto systémů na kombinační část a registr, a každá z těchto částí může být zpracována samostatně. [1]
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
9
3 Kombinační logické funkce Elektronické obvody, které realizují logické funkce, dělíme do základních dvou skupin: na tzv. kombinační a sekvenční logické systémy. První skupina kombinační logické systémy (obvykle tvořená z logických hradel) je charakterizována tím, že výstupní stav systému závisí pouze na okamžitých stavech (kombinaci) vstupních logických proměnných; při jejich změně dochází ke změně výstupního stavu se zpožděním, které je dané jen dobou průchodu signálu přes použité elektronické obvody. Sekvenční logické systémy generují výstupní stav na základě hodnoty vstupních logických proměnných a na základě předchozí hodnoty výstupu. Výstup těchto obvodů je tedy definován jen tehdy, je-li definována časová posloupnost (sekvence) změn vstupních hodnot; z toho též plyne jejich název. Základním pojmem při úvahách o kombinačních systémech představuje pojem kombinační logická funkce. Kombinační logická funkce je pravidlo, přiřazující každé kombinaci hodnot 0 a 1 přiřazených vstupním proměnným z definičního oboru funkce jedinou hodnotu výstupní proměnné. Pro daný počet vstupních proměnných je těchto funkcí konečný počet. Kombinační logické funkce mohou být úplně nebo neúplně určené. Úplně určená kombinační logická funkce je taková funkce, jejíž definiční obor zahrnuje všechny kombinace vstupních proměnných. U neúplně určené kombinační logické funkce její definiční obor nezahrnuje některé tyto kombinace. Kombinací se zde rozumí kombinace hodnot 0 a 1 přiřazených jednotlivým vstupním proměnným. Úplně určeným funkcím se někdy říká úplné funkce, funkcím neúplně určeným pak neúplné funkce. Tab. 1: Kombinační logické funkce jedné vstupní proměnné hodnoty vstupní 0 1 zápis funkce název funkce proměnné x 0 0 y = f0(x) = 0 nulová funkce odpovídající 0 1 y = f1(x) = x totožnost, opakování funkční hodnoty 1 0 y = f2(x) = 𝑥 negace, inverze y = f(x) 1 1 y = f3(x) = 1 jednotková funkce Existují čtyři kombinační logické funkce jedné proměnné, které jsou popsány v tab. 1. Ze způsobu sestavení této tabulky lze snadno zjistit počet možných úplně určených kombinačních logických funkcí určitého počtu proměnných. Při sestavování podobné tabulky pro n proměnných postupujeme následujícím způsobem. Do n řádků nad sebou vypíšeme možné hodnoty vstupních proměnných tak, aby v jednotlivých sloupcích vytvořily všechny možné kombinace hodnot těchto proměnných. Například tak, že tyto sloupce budou představovat n-bitová binární čísla odpovídající pořadí každého sloupce. Počet těchto kombinací je m = 2n. Nyní pod těmito řádky představujícími vstupní proměnné vytvoříme řádky odpovídající funkčním hodnotám jednotlivých funkcí tak, že do těchto řádků vypíšeme všechny možné kombinace m funkčních hodnot. Těchto řádků, a tedy možných funkcí, je nyní 𝑛 2m, tedy celkový počet možných funkcí n proměnných je 22 . Úplně určených kombinačních logických funkcí dvou proměnných je tedy 16. V tab. 2 je naznačeno, jak se tyto funkce mohou výše uvedeným způsobem systematicky vypsat.
FEKT Vysokého učení technického v Brně
10
Nejdůležitější kombinační logické funkce dvou proměnných jsou
Tab. 2:
𝑦 = 𝑎. 𝑏
AND
logický součin
𝑦 = 𝑎. 𝑏
NAND
funkce NAND
𝑦 =𝑎+𝑏
OR
logický součet, disjunkce,
𝑦 =𝑎+𝑏
NOR
𝑦 = 𝑎 ⊕ 𝑏 = 𝑎. 𝑏 + 𝑎. 𝑏
EX-OR
nonekvivalence, exklusivní součet
𝑦 = 𝑎 ⊕ 𝑏 = 𝑎. 𝑏 + 𝑎. 𝑏
EX-NOR
ekvivalence
Vybrané kombinační funkce dvou vstupních proměnných zápis funkce výrazem
Hodnoty vstupních proměnných x1, x2
f0(x1, x2)
y = f1(x1, x2)
y = f2(x1, x2)
y = f3(x1, x2)
y= f4-f15(x1, x2)
x1
x2
y=0
𝑦 = 𝑥1. . 𝑥2
𝑦 = 𝑥1 . 𝑥2
𝑦 = 𝑥1
atd.
0
0
0
0
0
0
…
0
1
0
0
0
0
…
1
0
0
0
1
1
…
1
1
0 nulová funkce
1 logický součin
0 inhibice
1 opakování x1
… …
název funkce
Z uvedeného popisu je zřejmé, že počet logických funkcí velmi rychle roste s počtem vstupních proměnných. Při vyjádření logických funkcí jedné proměnné jsme vystačili s pouhou inverzí, pro vyjádření funkcí dvou proměnných bylo třeba zavést funkce logického součtu a součinu. Bylo by možné očekávat, že pro vyjádření logických funkcí většího počtu proměnných bude nutné zavádět další složitější základní logické funkce. Lze však ukázat, že jakoukoliv kombinační logickou funkci libovolného množství proměnných je možné vyjádřit pomocí několika elementárních logických funkcí. Soubor takových funkcí se nazývá úplný soubor logických funkcí. Příklady úplného souboru logických funkcí jsou: funkce NAND - touto jedinou funkcí můžeme vyjádřit všechny kombinační logické funkce libovolného počtu proměnných, funkce NOR - platí pro ni totéž co pro funkci NAND, úplnými soubory funkcí jsou i takové soubory, jimiž lze výše uvedené funkce vyjádřit, tedy například funkce OR spolu s inverzí, funkce AND spolu s inverzí.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
11
Důležitým nástrojem pro práci s logickými funkcemi je Booleova algebra1. V Booleově algebře budeme používat logické reprezentace dvouhodnotových veličin logických proměnných. Základní zákony této algebry mají podobný tvar, jako mají zákony běžné algebry. Tab. 3:
Booleova algebra
Komutativní zákon 𝑎+𝑏 =𝑏+𝑎
duální forma 𝑎. 𝑏 = 𝑏. 𝑎
Asociativní zákon (𝑎 + 𝑏) + 𝑐 = 𝑎 + (𝑏 + 𝑐)
(𝑎. 𝑏). 𝑐 = 𝑎. (𝑏. 𝑐)
Zákon idempotence (tautologie) 𝑎+𝑎 =𝑎
𝑎. 𝑎 = 𝑎
Zákon absorpce 𝑎 + (𝑎. 𝑏) = 𝑎
𝑎. (𝑎 + 𝑏) = 𝑎
Zákon agresivnosti nuly a jedničky 𝑎. 0 = 0
𝑎+1=1
Zákon neutrálnosti nuly a jedničky 𝑎+0=𝑎
𝑎. 1 = 𝑎
Distributivní zákon 𝑎. (𝑏 + 𝑐) = (𝑎. 𝑏) + (𝑎. 𝑐)
𝑎 + (𝑏. 𝑐) = (𝑎 + 𝑏). (𝑎 + 𝑐)
Zákon sporu a vyloučeného třetího 𝑎. 𝑎 = 0
𝑎+𝑎 =1
Zákon involuce neboli dvojí negace 𝑎=𝑎 Zákon absorpce negace 𝑎. (𝑎 + 𝑏) = 𝑎. 𝑏
𝑎 + 𝑎. 𝑏 = 𝑎 + 𝑏
De Morganovy pravidla 𝑎 + 𝑏 + 𝑐+. . +𝑧 = 𝑎. 𝑏. 𝑐 … 𝑧̅ 𝑎 + 𝑏 = 𝑎. 𝑏
1
𝑎. 𝑏 = 𝑎 + 𝑏
George Boole (* 2. listopad 1815, Lincoln, Spojené království – † 8. prosinec 1864, Cork) byl anglický logik a matematik. Vymyslel systém na hodnocení pravdivostních výrazů složených pomoci logických spojek AND, OR, NOT a logických proměnných nabývajících pouze dvou hodnot – 1 (PRAVDA) a 0 (NEPRAVDA).
FEKT Vysokého učení technického v Brně
12
De Morganova pravidla je možno formulovat i obecněji. Hodnota logického výrazu s operátory logického součtu a logického součinu se nezmění, jestliže vzájemně tyto operátory zaměníme (tj. operátory logického součtu nahradíme operátory logického součinu a naopak), invertujeme všechny proměnné a také výsledek. Logickým výrazem zde rozumíme zápis skupiny identifikátorů proměnných, s nimiž jsou prováděny operace logického součtu, logického součinu a inverze naznačené příslušnými operátory, a v případě potřeby je pořadí provádění operací určeno závorkami. Tab. 4:
Zobecněné zákony
1. Zákon o absorpci 𝑎. 𝑓(𝑎, 𝑎, 𝑏, … ) = 𝑎. 𝑓(1,0, 𝑏, … )
𝑎 + 𝑓(𝑎, 𝑎, 𝑏, … ) = 𝑎 + 𝑓(0,1, 𝑏, … )
𝑎. 𝑓(𝑎, 𝑎, 𝑏, … ) = 𝑎. 𝑓(0,1, 𝑏, … )
𝑎 + 𝑓(𝑎, 𝑎, 𝑏, … ) = 𝑎 + 𝑓(1,0, 𝑏, … )
2. Shannonův teorém o rozkladu 𝑓(𝑎, 𝑎, 𝑏, … ) = 𝑎. 𝑓(1,0, 𝑏, … ) + 𝑎. 𝑓(0,1, 𝑏, … ) 𝑓(𝑎, 𝑎, 𝑏, … ) = [𝑎 + 𝑓(1,0, 𝑏, … )]. 𝑎. 𝑓(0,1, 𝑏, … )
3.1 Způsoby zápisu a zobrazení kombinačních logických funkcí Abychom mohli s kombinačními logickými funkcemi pracovat, musíme je nejprve zapsat či zobrazit. Nejčastěji se používají následující způsoby zápisu nebo zobrazení kombinačních logických funkcí: 3.1.1
zápis pomocí pravdivostní tabulky, zápis logickým výrazem, zobrazení pomocí mapy, zobrazení pomocí logického schématu. Zápis kombinační logické funkce pomocí pravdivostní tabulky
Pravdivostní tabulka obsahuje vstupní a výstupní logické proměnné. Velikost tabulky je dána počtem proměnných a počtem výstupních funkcí. Máme-li n proměnných a m výstupních funkcí, bude mít tabulka n + m sloupců. Řádků bude mít tabulka právě 2n, což jsou všechny možné kombinace stavů logických proměnných, které mohou nastat.
13
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
Zápis nejdůležitějších logických funkcí pomoci pravdivostní tabulky
Tab. 5: Vstupní
Výstupní funkce
proměnná a
b
AND
NAND
OR
NOR
EX-OR
EX-NOR
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
logický součin
Schefferova funkce
logický součet
Pierceova funkce
symbol nonekvivalence ekvivalence
Pravdivostní tabulkou lze vyjádřit libovolné funkce, jako příklad složitější pravdivostní tabulky uvedeme popis převodníku čtyřbitového binárního kódu na kód sedmisegmentového displeje s hexadecimálním zobrazením. Princip zapojení převodníku a sedmisegmentového displeje je nakreslen na na obr. 2. U vstupních proměnných je symbolem MSB (Most Significant Bit) a LSB (Least Significant Bit) označen nejvýznamnější a nejméně významný bit. Tab. 6 naznačuje pravdivostní tabulku převodníku. .
B/7seg
a b
r (MSB) a
c s d
f
g
b
t e
e
c
u (LSB) f
d
g
Obr. 2:
Princip zapojení převodníku BCD/7 seg
V pravdivostní tabulce jsou pro všechny kombinace vstupních proměnných (zde r, s, t, u) uvedeny hodnoty výstupních proměnných. Nejobvyklejší je uvádět kombinace vstupních proměnných tak, že při interpretaci formou binárních čísel představují posloupnost přirozených čísel zapsaných v binárním kódu. Při tomto způsobu zápisu vyjadřují uvedená čísla stav jednotlivých vstupních proměnných a označují se jako stavový index. Pravdivostní tabulka představuje nejjednodušší způsob zápisu kombinačních logických funkcí. Při větším počtu vstupních proměnných však může být tento způsob zápisu nepohodlný pro značný počet řádků tabulky.
FEKT Vysokého učení technického v Brně
14
Pravdivostní tabulka převodníku z obr. 2
Tab. 6:
číslo
(stavový index) r s 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3.1.2
výstupy
vstupy
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
t
u
a b c d e
f
g
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1
1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1
0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1
1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0
1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0
1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0
1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1
zobrazená číslice (hex) 0 1 2 3 4 5 6 7 8 9 A B C D E F
Zápis kombinační logické funkce logickým výrazem
Logickým výrazem rozumíme zápis skupiny identifikátorů logických proměnných vzájemně oddělených logickými operátory, přičemž se pro vyjádření pořadí provádění operací v případě potřeby používají závorky. Nejpoužívanější operátory pro základní logické operace (logický součet, součin, inverze, fukce EX-OR) jsme již poznali. V literatuře se setkáme s dalšími operátory pro jiné operace a s alternativními symboly operátorů pro uvedené logické funkce.
Zvláštní důležité typy logických výrazů jsou: součinový term - obsahuje jen operátory logického součinu (nazývaný též implikant, konjunkce), př. 𝑘0 = 𝑠. 𝑡. 𝑢 součtový term - obsahuje jen operátory logického součtu (inhibent, disjunkce), př. 𝑑0 = 𝑠 + 𝑡 + 𝑢 minterm - součinový term obsahující všechny vstupní proměnné (které mohou být přítomny v přímém nebo v inverzním tvaru), Př. 𝑥1 𝑥2 𝑥3 𝑥4 … 𝑥𝑛 maxterm - součtový term obsahující podobně všechny vstupní proměnné, Př. 𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + ⋯ + 𝑥𝑛 úplný term - minterm nebo maxterm.
Z de Morganových pravidel přímo plyne, že součtový term sestavený z určité kombinace vstupních proměnných je roven inverzi součinového termu, sestaveného ze stejných proměnných, které mají opačné znaky inverze, tj. proměnná obsažená v součtovém termu bez inverze je v odpovídajícím součinovém termu invertovaná a naopak. Z definice vyplývá, že logická funkce představovaná mintermem má nulovou hodnotu pro všechny kombinace vstupních proměnných s výjimkou jediné, u níž jsou vstupní proměnné uvedené v zápisu mintermu s inverzí nulové a proměnné uvedené v tomto zápisu bez inverze jsou rovny jedné. Vzhledem k tomu, že při interpretaci zápisu hodnot vstupních proměnných formou binárních číslic představuje číslo vzniklé tímto způsobem hodnotu stavového indexu s, budeme značit příslušný minterm symbolem ks (konjunktivní).
15
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
Podobně funkce představovaná maxtermem má hodnotu rovnou jedné pro všechny kombinace vstupních proměnných s výjimkou té, pro niž je přiřazení hodnot proměnných opačné, než bylo uvedeno u mintermu, tedy proměnná je nulová, je-li v zápisu maxtermu uvedena bez inverze, a má hodnotu 1 v opačném případě. Tento maxterm budeme značit symbolem ds (disjunktivní), přičemž stavový index s je číslo představované binární interpretací uvedených hodnot vstupních proměnných. Význam tohoto označení mintermů a maxtermů bude ještě lépe zřejmý z jejich zobrazení pomocí mapy, jak uvidíme dále. Při uvedeném označení tedy platí 𝑘𝑠 = 𝑑𝑠 .
(1)
Jako příklad uveďme sestavení mintermů a maxtermů pro tři vstupní proměnné s, t, u: 𝑘0 = 𝑠. 𝑡. 𝑢 ,
𝑘1 = 𝑠. 𝑡. 𝑢,
atd., až
𝑘7 = 𝑠. 𝑡. 𝑢 ,
𝑑0 = 𝑠 + 𝑡 + 𝑢,
𝑑1 = 𝑠 + 𝑡 + 𝑢 atd., až
𝑑7 = 𝑠. 𝑡. 𝑢 .
Kombinační logické funkce mohou být zapsány různými způsoby a s použitím různých operátorů. Pro nás budou důležité zejména dva základní způsoby zápisu funkce, a to: zápis výrazem typu součet součinů (Sum of Products, SOP), zápis výrazem typu součin součtů (Product of Sums, POS). První z těchto způsobů zápisu je tvořen součtem součinových termů. Jsou-li všechny tyto termy úplné, tedy jsou-li to mintermy, říká se tomuto způsobu zápisu úplný součtový tvar zápisu. Nejsou-li některé termy v tomto zápisu úplné, jde o zkrácený (zjednodušený) součtový tvar zápisu. Výraz typu součin součtů je naopak tvořen součinem součtových termů a podobně jako u předcházejícího způsobu zápisu to může být úplný součinový tvar zápisu (jsou-li všechny tyto termy úplné, tedy jde-li o součin maxtermů), nebo zkrácený (zjednodušený) součinový tvar zápisu v opačném případě. Pro účely realizace kombinační logické funkce mají význam minimální tvary zápisu (součtový nebo součinový), za které můžeme pokládat způsoby zápisu co nejvíce zjednodušené. O metodách zjednodušování pojednáme v dalším textu. Mezi zápisem kombinační logické funkce pomocí pravdivostní tabulky a zápisem této funkce v úplném součtovém nebo součinovém tvaru je úzká souvislost. Zápis v úplném součtovém tvaru dostaneme z tabulky snadno tak, že funkci zapíšeme jako součet mintermů odpovídajících řádkům tabulky, pro něž tato funkce má hodnotu 1. Např. pro funkci e z tab. 6 dostaneme tímto způsobem zápis v úplném součtovém tvaru takto: e = k0 + k2 + k6 + k8 + k10 + k11 + k12 + k13 + k14 + k15. V tomto případě je 𝑘0 = 𝑟. 𝑠. 𝑡. 𝑢, 𝑘2 = 𝑟. 𝑠. 𝑡. 𝑢 atd. Zápis funkce v úplném součinovém tvaru získáme podobně jako součin maxtermů odpovídajících řádkům tabulky, pro něž má funkce hodnotu 0. Např. pro funkci e je zápis funkce v úplném součinovém tvaru e = d1 . d3 . d4 . d5 . d7 . d9. Zde je 𝑑1 = 𝑠 + 𝑡 + 𝑢 , 𝑑3 = 𝑠 + 𝑡 + 𝑢 atd. Lze snadno ukázat, že je-li počet vstupních proměnných n, je počet N mintermů a maxtermů z těchto proměnných vytvořených právě N = 2n .
(2)
FEKT Vysokého učení technického v Brně
16
Obecně můžeme vyjádřit kombinační logickou funkci f(xn, ..., x1) v úplném tvaru součtu součinů takto f(xn, ..., x1) = f0 . k0 + f1 . k1 + ... + fN-1 . kN-1.
(3)
Zde jsou f0, f1, ..., fN-1 hodnoty funkce f odpovídající jednotlivým řádkům funkční tabulky, tedy její hodnoty pro kombinace vstupních proměnných odpovídající příslušným stavovým indexům. V tomto zápisu nabývají symboly f0, f1, ..., fN-1 hodnot 0 nebo 1 a po vypuštění nulových součinů dostaneme součet mintermů odpovídajících řádkům tabulky, v nichž je hodnota funkce rovna 1. Toto vyjádření platí pro úplně určené funkce. U funkcí neúplně určených zde budou jistě přítomny jen členy s těmi hodnotami stavových indexů, pro něž je funkce definována. Členy s hodnotami stavových indexů, pro něž funkce není definována, mohou a nemusí být v zápisu přítomny, protože na těchto funkčních hodnotách nezáleží. Podobně můžeme funkci f(xn, ..., x1) vyjádřit v úplném tvaru součinu součtů f(xn, ..., x1) = (f0 + d0) . (f1 + d1) . ... . ( fN-1 + dN-1).
(4)
Zde naopak ze součinu zmizí ty závorky, v nichž figuruje hodnota funkce, která je rovna 1 a zůstanou maxtermy odpovídající řádkům tabulky, v nichž je funkce nulová. Posouzení složitosti zápisu kombinační logické funkce těsně souvisí s technickou realizací těchto funkcí. Jak uvidíme dále, existuje více způsobů této realizace. Pro každý z nich může být nejvýhodnějším (minimálním) určitý způsob zápisu, tyto způsoby zápisu však nemusí být stejné pro různé způsoby realizace. Použijeme-li k realizaci například digitální integrované obvody typu NAND nebo NOR, pokládáme obvykle za minimální takový zápis typu součtu součinů nebo součinu součtů, který vyžaduje nejmenší počet potřebných vývodů použitých obvodů, což zhruba odpovídá nejmenšímu počtu symbolů vstupních proměnných použitých v zápisu funkce. Při realizaci pomocí programovatelných logických obvodů se však snažíme vyjádřit realizované funkce pomocí nejmenšího počtu termů (součinových nebo součtových) bez ohledu na počet proměnných obsažených v jednotlivých termech. Výrazy typu součtu součinů odpovídají do značné míry analogickým výrazům z běžné algebry (i co do pravidel pro počítání s nimi), a proto se s nimi pracuje nejčastěji. Výraz typu součinu součtů lze pomocí de Morganových pravidel zapsat jako invertovaný výraz typu součtu součinů, jinak řečeno, jako výraz typu součtu součinů pro inverzi původního výrazu. Oba způsoby zápisu tedy jsou v tomto smyslu ekvivalentní. Pro některé funkce však může být jeden z těchto způsobů jejího zápisu v minimálním tvaru výrazně jednodušší než druhý, zejména, je-li při posuzování rozhodující počet termů. Zápis funkce v úplném součtovém a součinovém tvaru je jednoznačný. Minimálních tvarů však může být pro určitou funkci více. Příklad logické funkce s větším počtem minimálních tvarů bude uveden v kapitole o zjednodušování logických funkcí. Někdy může být potřebné doplnit zkrácený tvar zápisu logické funkce na úplný tvar. Bývá to například při realizaci funkcí pomocí multiplexorů. Úpravu je možno provést tak, že členy, které neobsahují některé proměnné, se doplní činiteli typu (𝑎 + 𝑎), kde a je proměnná chybějící v členu (zákon sporu a vyloučeného třetího viz. tab. 3). Příklad: 𝑎. 𝑏. 𝑐 + 𝑏. 𝑐 = 𝑎. 𝑏. 𝑐 + (𝑎 + 𝑎). 𝑏. 𝑐 = 𝑎. 𝑏. 𝑐 + 𝑎. 𝑏. 𝑐 + 𝑎. 𝑏. 𝑐.
17
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
3.1.3 Zobrazení kombinační logické funkce pomocí mapy Nejpoužívanější typ mapy, Karnaughova2 mapa, může být považován za upravený způsob zápisu pravdivostní tabulky (viz. obr. 3). Buňky mapy odpovídají řádkům tabulky a jsou uspořádány tak, že se stavové indexy sousedních buněk při vyjádření v binární soustavě liší vždy v hodnotě jedné vstupní proměnné. Při nákresu t u mapy na rovinný list je možno tuto podmínku dodržet, není-li počet vstupních proměnných větší než čtyři. 0 1 3 2 Přitom za sousední buňky pokládáme i ty, které jsou 0000 0001 0011 0010 s umístěny proti sobě při okrajích mapy - můžeme si to 4 5 7 6 představit tak, že mapu stočíme, aby se protilehlé strany dotkly, a to postupně ve směru obou os. Při pěti 0100 0101 0111 0110 r vstupních proměnných si můžeme představit dvě vrstvy C D F E takové mapy nad sebou, pro více proměnných je již 1100 1101 1111 1110 taková interpretace obtížnější. 8
9
B
A
1000
1001
1011
1010
Mapa pro čtyři proměnné r, s, t, u má tvar podle obr. 3. Po stranách mapy jsou vyznačeny hodnoty vstupních proměnných, v každé buňce je uveden v hexadecimální soustavě stavový index. V uvedené mapě jsou pro názornost vyznačeny i hodnoty stavového indexu v binárním tvaru. Při zobrazení logické funkce pomocí mapy se místo toho do buněk zapisují odpovídající funkční hodnoty. Pro úsporu psaní se často zapisují jen jedničkové nebo jen nulové hodnoty, a pak se u prázdných buněk předpokládá, že obsahují hodnotu opačnou. Minterm a maxterm se v mapě zobrazí podle obr. 2.3, kde je zobrazen minterm k7 a maxterm d7. Z mapy je zřejmá platnost vztahu (2.1), podle něhož minterm a maxterm označený stejným stavovým indexem jsou veličiny komplementární. Obr. 3: Karnaughova mapa pro čtyři vstupní proměnné
Můžeme také definovat logický součet, resp. součin map, kde výsledná mapa obsahuje v každé buňce logický součet, resp. součin hodnot uvedených v odpovídajících buňkách původních map. Z vyjádření logických funkcí pomocí mintermů a maxtermů je zřejmé, že výsledná mapa představuje součet, resp. součin funkcí představovaných původními mapami. t t u u 0
1
3
2
4
5
7
6
0
1
3
2
4
5
7
6
s 1
0
r
r
C
D
F
E
C
D
F
E
8
9
B
A
8
9
B
A
minterm 𝑘7 = 𝑟. 𝑠. 𝑡. 𝑢, Obr. 4:
2
s
maxterm 𝑑7 = 𝑟 + 𝑠 + 𝑡 + 𝑢,
Zobrazení mintermu a maxtermu v Karnaughově mapě
Maurice Karnaugh (* 4. října, 1924, New York City) je americký fyzik, publikoval K-mapu v roce 1953
FEKT Vysokého učení technického v Brně
18
3.1.4 Zobrazení kombinační logické funkce logickými schématy s kombinačními logickými členy Zápis logické funkce pomocí logického výrazu můžeme snadno převést do grafického tvaru tak, že vstupní a výstupní proměnné naznačíme ve formě vstupních a výstupních signálů logického schématu. Operace prováděné s proměnnými znázorníme pomocí grafických značek logických členů. Každý typ logického členu používá svou vlastní schématickou značku. Nejčastěji používané tvary značek logických členů jsou uvedeny v tab. 5. Většinou se používají značky představující jeden druh logické operace - logický součin, součet, operaci EX-OR a podobně a výstupy příslušných logických členů, které jsou pak vedeny na vstupy dalších, představují vnitřní signály ve schématu. Není to však nezbytně jediný způsob kreslení, známé jsou například značky pro logické členy typu AND-OR-INVERT.
3.2 Zjednodušování zápisu kombinačních logických funkcí Při realizaci logických funkcí některými způsoby (například při jejich realizaci pomocí základních kombinačních digitálních integrovaných obvodů je obvykle výhodné vycházet z minimálního tvaru zápisu funkce, který získáme z jiných tvarů zjednodušením (minimalizací). Ke zjednodušování se používají různé metody, z nichž zde uvedeme metodu algebraických úprav a metodu využívající Karnaughových map. V praxi se dnes, zejména pro složitější funkce používají počítačové metody. Jedna z nejznámějších metod je metoda Quineho-McCluskeyho, která představuje v podstatě převedení metody používající Karnaughovy mapy do algoritmického vyjádření (některé části této metody jsou zde však zobecněny ve větším rozsahu). I na složitější algoritmy, používané v počítačových programech, můžeme však často bez velké újmy na přesnosti pohlížet jako na algoritmy, které aspoň z hlediska uživatele fungují obdobně jako metody založené na použití Karnaughových map. Minimalizace úplně určených funkcí. Při zjednodušování pomocí algebraických úprav využíváme nejčastěji vztahu (𝑎 + 𝑎) = 1, viz. tab. 3. Obsahuje-li logická funkce zapsaná v součtovém tvaru dva termy, které se vzájemně liší jen v jedné proměnné, je možno zbývající proměnné z jejich součtu vytknout. Například lze upravit 𝑟. 𝑠. 𝑡. 𝑢 + 𝑟. 𝑠. 𝑡. 𝑢 = (𝑟 + 𝑟). 𝑠. 𝑡. 𝑢 = 𝑠𝑡𝑢. Tato skutečnost je základem metody zjednodušování logických funkcí pomocí algebraických úprav, která je vhodná pro zjednodušování funkcí, jejichž zápis obsahuje nevelký počet termů. Je-li termů v zápisu více, je obtížné hledat dvojice termů vhodné pro takové zjednodušení. Není-li počet vstupních proměnných příliš velký, bývá výhodnější použít při zjednodušování zobrazení funkce pomocí mapy.
3.2.1 Minimalizace logických funkcí pomoci Karnaughovy mapy Dvojice sousedních buněk v mapě odpovídají mintermům, které se liší jen v jedné proměnné. Při zobrazení v mapě jsou takové dvojice mintermů zřejmé na první pohled a jejich sloučení znamená jejich nahrazení termem s počtem proměnných o jednu menší. Podobně dvě takové dvojice spolu sousedících buněk představují čtveřici, vyjadřující term, u něhož je vyloučena proměnná, která v původních termech měla nestejný znak inverze, tj. v jedné vystupovala přímo a v druhé v inverzi. Algebraicky to opět odpovídá vytknutí společných činitelů těchto termů, přičemž v závorce zůstane výraz typu (𝑎 + 𝑎), který je roven jedničce a v součinu je pak vynechán. Podobným způsobem lze zjednodušit sousedící čtveřice, osmice
19
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
atd. buněk mapy. V mapě je možno najít skupiny buněk (mintermů) vhodné pro zjednodušení mnohem snadněji, než v algebraickém zápisu (pokud počet proměnných není příliš velký). To je základ pro použití map při zjednodušování zápisu logických funkcí či jejich minimalizaci, tj. nalezení minimálního tvaru jejich zápisu, vycházíme-li ze součtového zápisu funkce. Zcela analogický je postup zjednodušování, vycházíme-li ze součinového zápisu, pouze místo s mintermy pracujeme s maxtermy. Při slučování termů v mapě vyznačujeme slučované buňky pomocí smyček. Například funkci e z příkladu pro displej můžeme zobrazit dvěma způsoby podle obr. 5 t t u u 0
1
3
1
1 4
5
7
1
D
6
1 8
F
1 9
1
1
0
s
1 C
0
2
4
r
0
E
3
2
7
6
0 5
0
s
0
r
C
D
F
E
8
9
B
A
1 A
B
1
1
0
Obr. 5:
Zobrazení a minimalizace funkce e z tab. 6
Použijeme-li pro zápis karnaughovy tabulky z obr. 5 součtový tvar, dostaneme (5)
𝑒 = 𝑟. 𝑠 + 𝑡. 𝑟 + 𝑠. 𝑢 + 𝑡. 𝑢 = 𝑟. 𝑠 + 𝑡. 𝑟 + 𝑠. 𝑢 + 𝑡. 𝑢. Z pravé mapy pro zápis v součinovém tvaru máme:
𝑒 = (𝑟 + 𝑢). (𝑠 + 𝑡 + 𝑢). (𝑟 + 𝑠 + 𝑡) = 𝑟 + 𝑢 + 𝑠 + 𝑡 + 𝑢 + 𝑟 + 𝑠 + 𝑡.
(6)
Výsledkem minimalizované funkce mohou být různé funkce. Příklad mapy logické funkce y se dvěma minimálními součtovými tvary je uveden na obr. 6, jde o funkci, v níž jsou smyčky zřetězeny. To umožňuje dvojí výběr smyček. t t u u 0
1
1 4
1
1
3
2
0
1
1 7
5
1
𝑦 = 𝑢. 𝑡 + 𝑢. 𝑠 + 𝑡. 𝑠, Obr. 6:
1
s
1
3
2
7
6
1
1 4
6
1
5
1
1
s
𝑦 = 𝑢. 𝑡 + 𝑡. 𝑠 + 𝑢. 𝑠, Ukázka funkce se dvěma možnými součtovými tvary
3.2.2 Minimalizace logických funkcí pomoci Quineho -McCluskeyho Jedná se o algoritmické vyjádření postupu zjednodušování logických funkcí. Jednotlivé kroky Quineho –McCluskeyho algoritmu však lze mapou vyjádřit. Tato
FEKT Vysokého učení technického v Brně
20
minimalizační metoda vychází z normální úplné součtové formy a slouží k získání normální minimalizované součtové formy. Princip metody spočívá v aplikovaní modifikovaného zákonu absorpce se zákonem sporu a vyloučeného třetího. Vzhledem ke svému jednoznačnému algoritmu je vhodná pro počítač. Je využitelná zejména pro funkce velkého počtu proměnných, kde "ruční" minimalizace je neúnosná. Metoda umožňuje skupinovou minimalizaci logických funkcí. Postup: 1.
Vytvoření standardní (plné) boolské funkce (rozklad funkce na mintermy) – všechny implikanty obsahují všechny proměnné v přímé nebo negované formě,
2.
Systematické zjednodušování 𝑓 = 𝑓𝑎 + 𝑓𝑎 (každý implikant s každým implikantem) – tvoří strom s několika úrovněmi zjednodušení (t.j. výsledek prvé úrovně zjednodušení se opět zjednodušuje metodou "každý s každým" a vzniká druhá úroveň zjednodušení, která se opět zjednodušuje stejným způsobem). V každé úrovni zůstávají členy, které nelze dále zjednodušit přímé implikanty.
3.
Nalezení přímých implikantů funkce (implikanty, které se nedají dále zjednodušit z jednotlivých úrovní stromu). Sestavuje se tabulka, ve které se označuje, které přímé implikanty (řádky) pokrývají které mintermy plné booleovské funkce (sloupce). Některé mintermy booleovské funkce mohou být pokryty několika přímými implikanty (nepodstatné přímé implikanty), některé mintermy booleovské funkce mohou být pokryty pouze jedním přímým implikantem (podstatný přímý implikant).
4.
Nalezení podstatných přímých implikantů - jádro řešení (implikanty, které se nedají nahradit jinými z množiny nalezených přímých implikantů). Výběr minimálního množství nepodstatných přímých implikantů. Sestavuje se opět tabulka pokrytí mintermů plné booleovské funkce tentokráte bez podstatných přímých implikantů funkce (jejich řádky se vynechávají) a bez všech mintermů, které tyto implikanty pokrývají (vynechávají se příslušné sloupce. Existují optimalizační postupy pro výběr vhodných tak, aby pokryly ostatní.
5.
3.2.3 Minimalizace logických funkcí s využitím smíšené formy - TANT Metoda TANT (Tree-level AND-NOT logic with True imputs) vychází z metody minimalizace Quine – McCluskey, generuje tříúrovňové logické sítě (maximálně 3 členy v serii) se členy NAND. Základem metody TANT je doplnění některých implikantů smíšenou formou, která umožní jednodušší výslednou realizaci než původní metoda Quine - McCluskey (čistě disjunktivní forma):
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
21
Př.: 𝑥1 𝑥3 𝑥0 𝑥3 𝑥0 𝑥1 𝑥3 𝑥3 (𝑥1 + 𝑥0 )
eventuální možnost vyloučení většího počtu implikantů jedním doplňujícím členem
S takto doplněnou množinou implikantů se pracuje dál podobným způsobem jako u metody Quine- McCluskey. Výběr implikantů se provádí opět přes tabulky pokrytí. Opět existují optimalizační postupy pro výběr vhodných implikantů tak, aby pokryly ostatní.
3.2.4 Další metody minimalizace logických funkcí Kromě uvedených metod minimalizace existuje celá řada dalších, které využívají odlišné formy popisu logické funkce. Jednou z nich je minimalizace z 1 a 0 bodů funkce, která využívá tabulkový popis logické funkce a je založena na algebraickém zápisu odlišujících charakteristik 1 bodů (funkce 𝑓 = 1) od všech 0 bodů (funkce 𝑓 = 0) s následující úpravou pomocí zákonů Booleovy algebry. Další metodou minimalizace je Svobodova metoda, která využívá kombinaci zobrazení logické funkce na vícerozměrné krychli. Metoda má jednoznačný algoritmus a vede na disjunktivní tvar logické funkce. V některých nových publikacích se pro označení nedefinované hodnoty funkce místo symbolu X používá jiných symbolů. To je obvyklé zejména v literatuře zabývající se počítačovou podporou návrhu digitálních systémů a jejich simulací, kde se rozlišuje několik dalších typů hodnot logických proměnných. Například v jazyku VHDL je navíc definována „hodnota“ logické proměnné odpovídající konfliktní situaci, kdy dva či více výstupů logických obvodů jsou propojeny paralelně a každý z nich vnucuje tomuto uzlu jinou hodnotu. Tato hodnota se zde značí symbolem X a v angličtině se označuje termínem unknown. Nedefinované hodnotě ve smyslu, který jsme zavedli výše, se zde říká don’t care a pro její označení se užívá pomlčka. Další podrobnosti můžeme nalézt v literatuře [2, 3]
FEKT Vysokého učení technického v Brně
22
4 Realizace kombinačních logických funkcí Realizací kombinační logické funkce rozumíme sestavení schématu zapojení obvodu, který ze vstupních proměnných vytvoří výstupní proměnné v souhlasu se zadanou logickou funkcí. Při použití moderních mikroelektronických součástek k této realizaci často postačí jediný integrovaný obvod z katalogu nebo můžeme použít programovatelných prostředků (pamětí PROM, obvodů PLD), které programováním nakonfigurujeme tak, aby realizovaly požadovanou funkci. Přesto základním způsobem zůstává realizace kombinační logické funkce pomocí kombinačních logických obvodů představujících realizaci základních logických členů v integrované podobě, kdy se vychází ze zápisu logické funkce v některém z výše uvedených tvarů součtu součinů nebo součinu součtů. Jak uvidíme, z tohoto způsobu zápisu funkce se vychází i při použití některých moderních součástek s vysokým stupněm integrace. Nejčastěji se v digitální technice setkáme s následujícími způsoby realizace kombinační logické funkce:
pomocí digitálních integrovaných obvodů typu NAND, NOR (popřípadě AND, OR) a dalších obvodů realizujících základní kombinační logické funkce – např. AND-ORINVERT, EX-OR atd.,
pomocí multiplexorů a demultiplexorů,
pomocí speciálních kombinačních integrovaných obvodů (převodníky kódů, generátory parity, sčítačky, násobičky a podobně - sem patří i použití multiplexorů a demultiplexorů),
pomocí pamětí PROM a EPROM,
pomocí programovatelných logických obvodů (PLD).
Ve zvláštních případech lze k realizaci kombinační logické funkce využít i jiných prostředků (např. tranzistorů a diod), což může být vhodné například tam, kde nemáme k dispozici vhodný napájecí zdroj pro digitální obvody a jeho vytvoření by bylo složitější než realizace kombinační logické funkce uvedeným způsobem.
23
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
4.1 Realizace kombinační digitálními obvody
logické
funkce základními
kombinačními
4.1.1 Realizace kombinační logické funkce součinovými a součtovými obvody Při realizaci lze využít zápis realizované funkce v součtovém nebo součinovém tvaru. Obvykle bývá výhodné použít pro realizaci logické členy téhož typu, tj. buď součinové nebo součtové členy. Pokud nepoužijeme všechna logická hradla v prvním stupni, můžeme je pak využít ve druhém stupni. To však nelze chápat jako dogma, v některých případech může být vhodné použít i jiných typů integrovaných obvodů. t u 0
0
1
1 4
0 Obr. 7:
3
1 5
0
2
0 7
1
6
0
s
Mapa realizované funkce y
Jako příklad uvažujme funkci y, která je dána mapou podle obr. 18. Budeme předpokládat, že jsou k dispozici vstupní veličiny v přímém i inverzním tvaru. Zápis funkce y v součtovém tvaru je 𝑦 = 𝑢. 𝑠 + 𝑢. 𝑡. Pro realizaci součinovými členy převedeme pomocí de Morganova pravidla součet na součin 𝑦 = 𝑢. 𝑠. 𝑢. 𝑡 . Při realizaci součtovými členy převedeme součiny na součty: 𝑦 = 𝑢 + 𝑠 + 𝑢 + 𝑡. Těmto výrazům odpovídají logická schémata podle obr. 8. Při realizaci funkce pouze logickými členy NOR dostaneme inverzi realizované funkce. Proto je v tomto případě na výstupu zapojen ještě invertor. Místo toho můžeme použít ve druhém stupni člen OR místo NOR, vyjde-li to výhodněji z hlediska celkového počtu použitých integrovaných obvodů.
Obr. 8:
Realizace funkce y na základě součtového tvaru zápisu
FEKT Vysokého učení technického v Brně
24
V součinovém tvaru je funkce y podle obr. 18 zapsána ve tvaru 𝑦 = (𝑢 + 𝑡). (𝑡 + 𝑠). (𝑢 + 𝑡) Při realizaci součtovými členy zápis upravíme 𝑦 = (𝑢 + 𝑡) + (𝑡 + 𝑠) + (𝑢 + 𝑡). Chceme-li použít součinové členy, vyjdeme ze zápisu: 𝑦 = (𝑢. 𝑡). (𝑡. 𝑠). (𝑢. 𝑡). Tomu odpovídají schémata podle obr. 9.
Obr. 9:
Realizace funkce y na základě součinového tvaru zápisu
V případě, že se má realizovat současně několik funkcí týchž proměnných, je někdy možné využít termy vytvořené v prvním stupni pro více funkcí, pokud tyto funkce obsahují společné termy. Mluvíme pak o skupinové minimalizaci několika funkcí týchž proměnných. Z uvedeného příkladu můžeme učinit obecnější závěr. Vycházíme-li při realizaci ze součtového tvaru zápisu, je funkce realizována strukturou NAND-NAND nebo NOR-OR. Vyjdeme-li ze součinového tvaru, dostaneme strukturu NOR-NOR nebo NAND-AND. Obě zapojení vycházející z téhož tvaru jsou topologicky stejná, tj. obsahují stejný počet logických členů, které mají stejný počet vstupů. To plyne ze skutečnosti, že při realizaci součinovými nebo součtovými členy na základě určitého tvaru zápisu, byly pouze operace jednoho druhu převedeny pomocí de Morganova pravidla na operace druhého druhu (například logický součet na součin), počet operací potřebný ve funkci však zůstal nezměněn. V konkrétních případech se zapojení vyžadující nejmenší množství spotřebovaných součástek, i s ohledem na vyráběné typy obvodů najde tak, že vyzkoušíme všechny varianty a vybereme z nich nejvhodnější. Po krátké praxi není tento způsob optimalizace nesnadný ani zdlouhavý, jak by se mohlo na první pohled zdát, aspoň pro nepříliš složité funkce, pro něž je tento způsob realizace vhodný. Složitější funkce se pak realizují způsoby uvedenými dále, například pomocí programovatelných logických obvodů nebo pamětí PROM, EPROM a EEPROM. V předcházející úvaze jsme předpokládali, že máme k dispozici přímé i invertované hodnoty vstupních proměnných. Někdy tomu tak není a například invertované hodnoty musíme vytvořit z přímých hodnot vstupních proměnných pomocí invertorů, což zvyšuje spotřebu součástek. Existují metody minimalizace, pomoci kterých lze najít minimální tvar funkce i v tomto případě. Takovou metodou je právě metoda minimalizace struktury TANT (Minimalizace logických funkcí s využitím smíšené formy - TANT). Podobně metodou minimalizace struktury TONT (Three-stage Or-Not structure with True inputs) lze vytvořit
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
25
optimální strukturu analogickou struktuře NOR-NOR. Uvedené metody jsou složitější než ty, které jsme vyložili výše a jsou popsány například v [3], [4].
4.1.2 Realizace kombinační logické funkce pomocí členů AND-OR-INVERT Tyto logické členy se vyrábějí v několika provedeních, která se vzájemně liší počtem součinových sekcí a počtem vstupů v těchto sekcích. Jejich použití je výhodné tam, kde má realizovaná funkce tvar odpovídající těmto počtům. Například obvod 74LS51 [5] je vhodný pro realizaci funkcí, které při vyjádření v součinovém tvaru obsahují dva součtové termy o dvou proměnných (funkce 1y) a dva součtové termy o třech proměnných (funkce 2y). Funkce y1 a y2, které obvod realizuje, je možno psát ve tvaru 1𝑦 = 1𝑎. 1𝑏. 1𝑐 + 1𝑑. 1𝑒. 1𝑓, 2𝑦 = 2𝑎. 2𝑏 + 2𝑐. 2𝑑.
Obr. 10:
Schéma zapojení obvodu 74LS51
Výhodou je, že signál ze součinové části postupuje do součtové části uvnitř pouzdra, takže je zde menší zpoždění, než kdyby musel procházet přes vývody. Také se zjednoduší obrazec spojů a dále je možné ušetřené vývody použít pro další vstupy, jak je popsáno v posledním odstavci této kapitoly. Má-li se však realizovat více funkcí týchž proměnných, nelze užít dílčí součiny z prvního stupně pro několik funkcí. V současné době není použití tohoto typu obvodů příliš časté. 4.1.3 Realizace kombinační logické funkce pomocí multiplexorů Digitální multiplexor (Multiplexer) je kombinační logický obvod, který funguje podobně jako obyčejný vícepolohový přepínač. Ve schématech bývá označován zkratkou „MUX“ nebo „MPX“, schématická značka multiplexoru je uvedena na obr. 11. Má určitý počet datových vstupů a jeden výstup (popř. dva komplementární výstupy). Obecně lze říci, že multiplexor zpravidla obsahuje n adresových vstupů, 2n datových vstupů a jeden výstup. Na adresové vstupy (A0 až An-1) se přivádějí adresové signály tvořící binárně zakódovanou adresu. Datové vstupy jsou očíslovány a jejich počet se shoduje s počtem možných adresových kombinací. Signál z datového vstupu s číslem odpovídajícím dekadické hodnotě adresy je multiplexorem převeden na výstup. Signály z ostatních datových vstupů nejsou respektovány. Multiplexor bývá často doplněn výběrovým vstupem S (z anglického Select), který hradluje procházející signál. Je-li na tomto vstupu signál s aktivní úrovní, pak signál z vybraného datového vstupu prochází na výstup. V opačném případě je výstupní signál y neaktivní. Výběrový vstup se používá nejčastěji pro sestavování větších multiplexorů z několika menších.
FEKT Vysokého učení technického v Brně
26
Obr. 11:
Příklady schématických značek multiplexoru pro různá provedení
a) dva vstupy/1výstup, b) čtyři vstupy/1 výstup, c) dva dvouvstupové multiplexory /2 výstupy Multiplexor lze snadno zrealizovat pomoci hradel NAND, jak je ukázáno na obr. 12. Pokud se podíváme na pravdivostní tabulku, vidíme, že při logické hodnotě L na adresovacím vstupu A jsou blokovány data na vstupu D0 a na výstupu y dostáváme informaci ze vstupu D1. Analogicky při logické hodnotě H na adresovacím vstupu A jsou blokovány data na vstupu D1 a výstupu y kopíruje vstup D0.
A 0 0 0 0 1 1 1 1
Obr. 12:
Vstupy D1 0 0 1 1 0 0 1 1
D0 0 1 0 1 0 1 0 1
y 0 0 1 1 0 1 0 1
Multiplexor
Zobrazenou funkci lze popsat pomoci výrazu 𝑦 = 𝐴. 𝐷0 𝐷1 + 𝐴. 𝐷0 𝐷1 + 𝐴. 𝐷0 𝐷1 + 𝐴. 𝐷0 𝐷1 , po zjednodušení dostaneme výraz 𝑦 = 𝐴. 𝐷1 + 𝐴. 𝐷0 . Nyní se podíváme na funkci multiplexoru se třemi adresovacími bity a výběrovým vstupem S. Ten multiplexor můžeme popsat vztahem 𝑦 = 𝑠. (𝑘0 . 𝑖0 + 𝑘1 . 𝑖1 + ⋯ + 𝑘7 . 𝑖7 ),
(7)
kde 𝑘0 = 𝑎2 . 𝑎1 . 𝑎0, 𝑘1 = 𝑎2 . 𝑎1 . 𝑎0 , …, 𝑘7 = 𝑎2 . 𝑎1 . 𝑎0 . V kapitole 3 byl uveden zápis kombinační logické funkce v rovnici (3) v úplném součtovém tvaru, který pro tři vstupní proměnné x3, x2, x1 můžeme přepsat do tvaru f(x3, x2,x1) = f0 . k0 + f1 . k1 + ... + f7 . k7.
(8)
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
27
kde k0, k1, …, k7 jsou mintermy složené z proměnných x3, x2, x1. Tento výraz je formálně shodný s výrazem v závorce v popisu funkce multiplexoru, ztotožníme-li adresové proměnné a2, a1, a0 multiplexeru s proměnnými x3, x2, x1 (součiny těchto proměnných představují mintermy k0 až k7) a hodnoty i0, i1, ..., i7 s hodnotami f0, f1, ..., f7. Pomocí multiplexoru můžeme tedy realizovat jakoukoliv funkci tří proměnných f(x3, x2, x1), přivedeme-li na jeho vstupy D0, D1, …, D7 signály s hodnotami f0, f1, ..., f7 (vstupy uzemníme nebo připojíme přes vhodný rezistor ke zdroji napájecího napětí podle toho, je-li příslušná hodnota funkce logická nula nebo logická jednička). Z vyjádření funkce jsme tak proměnné x3, x2, x1 eliminovali. Podobným způsobem můžeme postupovat i při eliminaci části proměnných u funkcí většího počtu proměnných. Zapíšeme-li funkci f(xn, ..., x1) v úplném součtovém tvaru (mámeli zkrácený tvar jejího zápisu, doplníme jej na úplný podle postupu uvedeného na konci kapitole 3, můžeme všechny mintermy seřadit do skupin tak, aby v každé skupině byly např. proměnné x3, x2, x1 ve stejném vyjádření co do přímého nebo inverzního tvaru, a tyto proměnné pak vytknout. Dostaneme zápis této funkce ve tvaru f(xn, ..., x1) = f0 . k0 + f1 . k1 + ... + f7 . k7, kde nyní f0, f1, ..., f7 jsou tzv. zbytkové funkce proměnných xn, ..., x4 (neobsahují již poměrné x3, x2, x1). Jsme-li nyní schopni funkce f0, f1, ..., f7 snadno realizovat, pak z nich funkci f(xn, ..., x1) získáme pomocí multiplexoru stejně jako jsme pomocí něho realizovali funkci f(x3, x2, x1), tj. na jeho vstupy D0, D1, …, D7 přivedeme signály s hodnotami zbytkových funkcí f0, f1, ..., f7 a na jeho adresové vstupy přivedeme proměnné x3, x2, x1. Při použití multiplexoru se třemi adresovými vstupy je tento způsob výhodný zejména pro realizaci funkcí čtyř proměnných (obecně u multiplexoru s n adresovými vstupy pro realizaci funkcí n + 1 proměnných), protože pak bude na každém ze vstupů D0, D1, …, D7 multiplexoru některá z těchto hodnot: zbývající proměnná, její inverze, 1, 0, které jsou bezprostředně k dispozici. Jako příklad uveďme realizaci funkce e pro odpovídající segment převodníku kódu BCD na kód sedmisegmentového displeje tab. 6. Vyjděme např. z minimálního tvaru zápisu této funkce odvozeného v kap. 3 𝑒 = 𝑟. 𝑠 + 𝑡. 𝑟 + 𝑠. 𝑢 + 𝑡. 𝑢. Eliminujeme odtud pomocí adresových vstupů multiplexoru např. proměnné s, t a u. Výraz pro funkci e doplníme tak, aby každý sčítanec obsahoval všechny eliminované proměnné 𝑒 = 𝑟. 𝑠 + 𝑟. 𝑡 + 𝑠. 𝑢 + 𝑡. 𝑢 = = 𝑟. 𝑠(𝑡 + 𝑡). (𝑢 + 𝑢) + 𝑟. (𝑠 + 𝑠). 𝑡. (𝑢 + 𝑢) + (𝑟 + 𝑟)𝑠. (𝑡 + 𝑡)𝑢 + (𝑟 + 𝑟). (𝑠 + 𝑠)𝑡. 𝑢 Po roznásobení dostaneme výraz, v němž sčítance seskupíme tak, aby bylo možno vytknout součiny eliminovaných proměnných. Toto seskupení je možno nejlépe provést formou tabulky zbytkových funkcí (tab. 7), kde vypíšeme všechny kombinace eliminovaných proměnných (v prvním řádku) a k nim napíšeme, co z jednotlivých sčítanců zbylo po vytknutí (druhý řádek). Roznásobený výraz zde není uveden, ale do tabulky jsou vypsány všechny zbylé proměnné z tohoto výrazu a tam, kde je možné zápis zjednodušit, je připsán i zjednodušený tvar.
FEKT Vysokého učení technického v Brně
28 Tab. 7: 𝑠. 𝑡. 𝑢 1
Tabulka zbytkových funkcí 𝑠. 𝑡. 𝑢 r+1+1=1
𝑠. 𝑡. 𝑢 0
𝑠. 𝑡. 𝑢 r
𝑠. 𝑡. 𝑢 r
𝑠. 𝑡. 𝑢 r
𝑠. 𝑡. 𝑢 r+r+1=1
𝑠. 𝑡. 𝑢 r+r=r
Výsledný výraz pro realizaci funkce pomocí multiplexoru tedy je 𝑒 = 𝑠. 𝑡. 𝑢. 1 + 𝑠. 𝑡. 𝑢. 0 + 𝑠. 𝑡. 𝑢. 1 + 𝑠. 𝑡. 𝑢. 𝑟 + 𝑠. 𝑡. 𝑢. 𝑟 + 𝑠. 𝑡. 𝑢. 𝑟 + 𝑠. 𝑡. 𝑢. 1 + 𝑠. 𝑡. 𝑢. 𝑟 Tento způsob realizace kombinačních logických funkcí s použitím integrovaných multiplexorů byl svého času značně oblíbený. V dnešní době jeho význam poklesl, protože existují způsoby realizace, které jsou často výhodnější, např. realizace s využitím programovatelných logických obvodů. Často se však s multiplexory tímto způsobem použitými setkáme ve strukturách složitějších integrovaných obvodů. Uvedený způsob realizace logické funkce pomoci multiplexoru lze také názorně ukázat pomoci zobrazení funkce v pravdivostní tabulce. Pokud jako adresovací vstupy multiplexoru zvolíme proměnné rst, lze tabulku zbytkových tříd sestavit tak, že hledáme závislost mezi zbylou proměnnou (v našem případě u) a výstupem (v našem případě e). Seskupení proměnných je v tabulce přímo patrné. Tab. 8:
Pravdivostní tabulka pro funkci e z obr. 2 s vyznačením zbytkových funkcí
číslo (stavový index) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
r 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
vstupy s t 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1
u 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
výstup e 1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1
Vstup MUX
𝑢 𝑢 𝐿 𝑢 𝑢 𝐻 𝐻 𝐻
Obr. 13: Obvodové zapojení funkce e pomoci multiplexoru
4.1.4 Realizace kombinační logické funkce pomocí demultiplexorů Demultiplexor je kombinační logický obvod provádějící opačnou operaci než multiplexor, tzn., má jeden vstup, několik adresovacích vstupů a n výstupů. Stejnou funkci vykonává obvod zvaný dekodér, u něj však výstupy chápeme jako signál kódovaný ve zvoleném kódu. Demultiplexor má jednu skupinu vstupů, které označujeme jako adresové vstupy a ty vybírají výstup, na nějž se vede signál z datového vstupu. Součástí demultiplexoru může být i dekodér, který umožní snížení počtu adresovacích vstupů.
29
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
Obr. 14:
Schématická značka demultiplexoru
A1 0 0 0 0 1 1 1 1
Obr. 15:
Vstupy A0 0 0 1 1 0 0 1 1
D0 0 1 0 1 0 1 0 1
Y3 0 0 0 0 0 0 0 1
Výstupy Y2 Y1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0
Y0 0 1 0 0 0 0 0 0
Vnitřní zapojení demultiplexoru 1 ze 4, pravdivostní tabulka
Binární dekodér je kombinační logický obvod, který převádí binárně kódované n bitové číslo na (obvykle) 2n výstupů kódovaných jako 1 z 2n. Binární dekodér má tedy n vstupů a 2n výstupů, z nichž je v daném okamžiku vždy aktivní pouze jeden, přičemž číslo aktivního výstupu odpovídá hodnotě vstupního binárního čísla. Binární dekodér použijeme např. v případech, kdy potřebujeme zobrazit hodnotu binárního čísla pomocí samostatných LED, vybrat sloupec nebo řádek maticového displeje apod. Možné vnitřní zapojení dekodéru 1z4 je uvedeno na obr. 16., a to včetně pravdivostní tabulky. Stejný typ dekodéru může být použit například v demultiplexoru, jako je znázorněno na obr. 15.
FEKT Vysokého učení technického v Brně
30
Vstupy A1 A0 0 0 0 1 1 0 0 1
Obr. 16:
Y3 0 0 0 1
Výstupy Y 2 Y1 0 0 0 1 1 0 0 1
Y0 1 1 0 0
Vnitřní zapojení dekodéru 1 ze 4, pravdivostní tabulka
Je-li počet výstupů roven celistvé mocnině čísla 2, můžeme považovat proměnné y0 až y7 za mintermy vytvořené z proměnných na jeho vstupech. To je podstata použití dekodéru pro realizaci kombinačních logických funkcí. Při ní vycházíme z úplného součtového tvaru zápisu realizované funkce, nebo z pravdivostní tabulky. Ty výstupní signály dekodéru, které odpovídají mintermům obsaženým v realizované funkci, sečteme logickými členy připojenými k výstupům dekodéru. Má-li dekodér inverzní výstupy, přejde jejich součet podle de Morganova pravidla v součin. Je přitom výhodné, můžeme-li využít vytvořené mintermy pro více současně realizovaných funkcí. Jako příklad realizujme funkci y pomocí dekodéru. 𝑦 = 𝑥3 . 𝑥2 . 𝑥1 + 𝑥3 . 𝑥2 . 𝑥1 + 𝑥3 . 𝑥2 . 𝑥1 K realizaci zadané funkce můžeme použít dekodér 1 z 8. Každý z výstupů dekodéru je aktivní pro hodnoty vstupních proměnných odpovídající jednomu řádku pravdivostní tabulky. Součinové členy připojené k jeho výstupům dávají na svých výstupech hodnotu 1, je-li některý z výstupů dekodéru, které jsou připojeny k jejich vstupům, v aktivním stavu. Podle pravdivostní tabulky můžeme nyní snadno vybrat výstupy dekodéru, které mají být připojeny k jednotlivým součinovým členům vytvářejícím funkce x1 až x3.
x3 0 0 0 0 1 1 1 1
x2 0 0 1 1 0 0 1 1
x1 0 1 0 1 0 1 0 1
y0 1
y1
y2
y3
y4
y5
y6
y7
1 1 1 1 1 1 1 Obr. 17:
Realizace zadané funkce y pomoci dekodéru 1 z 8
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
31
4.2 Další způsoby realizace kombinační logické funkce Pro mnoho často se vyskytujících funkcí se vyrábějí speciální integrované obvody. Tyto obvody se vyrábějí ve velkých sériích, jsou proto levné a dokonale propracované z hlediska funkčních vlastností. Patří mezi ně ve skutečnosti i multiplexory, demultiplexory a dekodéry. Zvláště zaslouží zmínku logický člen s funkcí exklusivního součtu EX-OR, dále jsou k dispozici různé enkodéry s funkcí opačnou k funkci dekodérů, generátory parity, sčítačky, aritmeticko-logické jednotky atd. Některé z nich jsou vybaveny speciálními vstupními a výstupními obvody, např. výstupy s větším přípustným proudovým nebo napěťovým zatížením, s otevřeným kolektorovým výstupem, s třístavovým výstupním zesilovačem, s hysterezní charakteristikou (obvody jsou vybavené Schmittovým obvodem na vstupu) atd. V některých případech je účelné realizovat dodatečnou logickou funkci pomocí obvodů s otevřeným kolektorovým výstupem. Tyto obvody jsou výhodné zejména tam, kde potřebujeme vytvořit logický součin (nebo s využitím de Morganova pravidla logický součet) signálů, jejichž počet předem neznáme - může být např. dán počtem použitých zásuvných jednotek v mikropočítači. Vývody na určité pozici konektoru buzené otevřeným kolektorovým výstupem mohou být vzájemně propojeny a odpovídající signály tak budou logicky vynásobeny. Paměti ROM, PROM a jejich různé varianty (EPROM, EEPROM atd.) v naprogramovaném stavu můžeme rovněž pokládat za kombinační logické obvody. Jejich význačnou vlastností je univerzálnost, tj. schopnost vytvořit bez omezení jakoukoliv kombinační logickou funkci svých vstupních proměnných. Jsou proto vhodné tam, kde potřebujeme realizovat složité funkce mnoha proměnných, zejména odpovídá-li počet realizovaných funkcí počtu výstupů vyráběných pamětí. Přístroje pro naprogramování pamětí PROM patří dnes již ke standardní výbavě elektronických laboratoří. Nevýhodou těchto pamětí pro účely realizace kombinační logické funkce je především jejich omezený dostupný sortiment. Vyráběné paměti jsou pro obvyklé kombinační logické funkce většinou příliš velké, takže se zřídka využijí z více než z několika procent své kapacity. Běžné paměti PROM jsou také zhruba o řád pomalejší než jiné kombinační integrované obvody. Nejčastěji se používají paměti tohoto typu mazatelné ultrafialovým světlem (EPROM), které jsou charakteristické křemenným okénkem pro možnost ozáření čipu při mazání, nebo paměti OTP (One Time Programmable - jednou programovatelné) se stejným čipem v levnějším pouzdru bez okénka. Stále více se také prosazují paměti mazatelné elektricky (EEPROM), jejichž výhodou je mimo jiné výrazně kratší doba potřebná pro jejich vymazání. Přehled způsobů realizace kombinační logické funkce. Základní kombinační obvody NAND, NOR a jejich neinvertované verze jsou vhodné pro ty případy, kdy jde o jednoduché funkce, pro jejichž realizaci vystačíme s jedním či dvěma pouzdry. V případě potřeby je možno při tomto způsobu realizace snadno odstranit hazardy, jak bude uvedeno dále. Výhodou je jednoduchost, nízká cena, malé zpoždění signálu. Nevýhodou je omezený rozsah funkcí a nutnost změny zapojení včetně spoje při změně funkce. Podobné výhody a nevýhody jsou i při použití obvodů AND-OR-INVERT. Realizace pomocí multiplexerů je vhodná pro jednu funkci (nebo malý počet funkcí) s nevelkým počtem vstupních proměnných (čtyři až pět, kde lze vystačit s jedním pouzdrem multiplexeru). Mezi výhody patří jednoduchost návrhu, nízká cena, malé zpoždění, možnost změny realizované funkce přestavitelnými propojkami, pokud na ně myslíme při návrhu plošného spoje. Dnes tato výhoda ustupuje při možnosti použít programovatelné logické obvody). Tento způsob realizace se často používá ve vnitřní struktuře integrovaných obvodů.
32
FEKT Vysokého učení technického v Brně
Dekodéry se rovněž používají k realizaci kombinační logické funkce především v integrovaných obvodech, jsou základním stavebním prvkem pamětí PROM a programovatelných logických obvodů. Použití dekodérů může být efektivní při realizaci více funkcí týchž proměnných, pokud jejich tvar je takový, že nevyžaduje příliš mnoho dalších pouzder integrovaných obvodů. Speciální obvody pro realizaci často se vyskytujících funkcí představují obvykle nejvýhodnější řešení, pokud jde právě o funkce, pro něž jsou navrženy. Je-li však nutno doplňovat je dalšími kombinačními obvody, bývá často výhodnější použít programovatelné logické obvody. Paměti typu PROM jsou nepostradatelné tam, kde se jedná o realizaci funkcí mnoha vstupních proměnných a je žádána možnost dodatečné změny těchto funkcí zcela libovolným způsobem, pokud není na závadu jejich větší zpoždění. To je zejména případ pamětí programu pro mikropočítače, ale i dalších aplikací, kde se vyskytují velmi složité kombinační logické funkce. Programovatelné logické obvody PLD a FPGA, společně zde označované názvem programovatelné obvody, představují řešení podobné, které je realizováno na jednom čipu. Jejich funkce se může změnit naprogramováním. Rychlost reakce těchto obvodů je podobná jako v prvním případě, ve srovnání s procesory však mají nižší univerzálnost, což platí hlavně pro malé a pro středně velké obvody PLD. V obvodech FPGA je dnes možno vytvořit procesory softwarově, u velkých obvodů FPGA jsou často procesory vytvořeny jako hardwarová jádra. Tam, kde požadovaná rychlost reakce navrhovaného systému vyžaduje při použití procesoru připojení dalších podpůrných obvodů, je výhodné realizovat tento celek v obvodu FPGA. Standardní obvody PLD měly vyšší spotřebu z napájecího zdroje ve srovnání například s obvody řady HC. Novější typy tuto nevýhodu již většinou nemají. Programování v systému je s výjimkou nejjednodušších typů těchto obvodů standardem. Velkou předností obvodů PLD je, že v nich lze realizovat současně bloky kombinačního i sekvenčního charakteru, což přispívá ke zmenšení potřebného počtu pouzder. [1]
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
33
5 Paměťové obvody V současné době se u digitálních systémů převážně používají polovodičové paměti. Základní dělení polovodičových pamětí je na ROM (Read Only Memory) a RWM (Read Write Memory): a) ROM - Paměť s neměnným zápisem dat neboli paměť konstant. Z těchto pamětí je možno pouze číst binární data, udržují informaci i při vypnutém napájení. b) RWM - Paměti, jejichž obsah jde jednoduše měnit zápisem. Paměti RWM jsou známy v několika provedeních, například jako paměti RAM (Random Access Memory) u kterých můžeme adresovat libovolnou buňku nebo paměti se sekvenčním přístupem SAM (Sequential Access Memory), FIFO (First In First Out) nebo paměti SARAM (Sequential Access Random Access Memory), které kombinují výhody obou typů. Z hlediska energetické závislosti na napájecím napětí můžeme paměti rozdělit: a) energeticky závislé (Volatile) - paměti, které uložené informace po odpojení od zdroje napájení ztrácejí, b) energeticky nezávislé (Non-volatile) - paměti, které uchovávají informace i po dobu, kdy nejsou připojeny ke zdroji elektrického napájení. Volatilita je schopnost paměťové buňky udržet si informaci i bez napájení. Dále lze paměti rozdělit z hlediska destruktivnosti při čtení. a) Destruktivní čtení - přečtení informace z paměti vede ke ztrátě uložené informace, proto po přečtení musí být informace do paměti zapsána zpět, např. paměti DRAM. b) Nedestruktivní čtení - přečtení informace žádným negativním způsobem tuto informaci neovlivní, např. paměti SRAM, MRAM a další. Polovodičové paměti lze také dělit na: a) Statické (SRAM) - uchovávají informaci po celou dobu, kdy je paměť připojena ke zdroji elektrického napětí. b) Dynamické (DRAM) - zapsanou informaci mají tendenci ztrácet i v době, kdy jsou připojeny ke zdroji elektrického napájení. Uloženou informaci je nutné neustále oživovat, aby nedošlo k jejich ztrátě.
FEKT Vysokého učení technického v Brně
34
5.1 Paměti typu ROM Paměti typu ROM jsou paměti konstant, ve kterých jsou data trvale uložena. Data jsou v nich uložena buď přímo výrobcem nebo u paměti typu PROM (Programable Read Only Memory) je možné data jednou zapsat. Paměti typu ROM jsou obvykle uspořádány v maticovém tvaru s organizací označovanou jako počet slov (bytů) x počet bitů ve slově. Principiální zapojení je na následujícím obrázku, kde je znázorněna 8-bitová paměť, každá elementární buňka obsahuje jeden bit. Paměťová buňka
adresa Dekodér 1zN
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
Slovo
-
Řízení výstupu
Výstupní obvod
Data Obr. 18:
Základní princip paměti
Vstupní slovo dekodéru typu 1 z N tvoří adresu, na základě této adresy dekodér vybírá slova, tj. jednotlivé řádky paměti. Paměťová matice o větší velikosti by se v základním uspořádání podle obr. 18 špatně umísťovala na polovodičový čip, protože se jedná o obdélník s velkým rozdílem v poměru stran se složitým adresovým dekodérem. Adresovací dekodér musí zpracovávat současně velké množství signálů. Paměťové buňky se proto umísťují do matice, v níž se každá buňka adresuje koincidenčně pomoci vybraného sloupce a řádku. Adresování buňky tak probíhá ve dvou fázích – adresace řádku a adresace sloupce. Adresní piny čipu jsou společné pro řádek i sloupec a jejich význam se určuje signály RAS (Row Address Select) a CAS (Column Address Select). V případě pamětí s vícebitovým výstupem, například s organizací N x 8, je na čipu umístěno vedle sebe větší množství paměťových matic M7 – M0 s koincidenčním adresováním, z nichž každá má vlastní datový výstup. Ukázka paměti
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
35
s organizací Nx8 je na obr. 19. Jednotlivé matice M7 až M0 pak nejsou čtvercové. Počet adresovacích signálů, které se využívají pro dekódování sloupců, většinou určuje také velikost stránky (page), a to u pamětí, u nichž se používá stránkový pětistup (např. FLASH, EEPROM). Dále se budeme věnovat jen popisu polovodičových pamětí v technologii MOS (NMOS a PMOS). Paměťové matice M0
M1
M2
M3
M4
M5
M6
M7 Adresovací slovní vodič
adresa Dekodér řádků
Bitové vodiče
Dekodér sloupců + výstupní budiče
Výstupní obvod
O0
O1
O2
O3
O4
O5
O6
O7
Data Obr. 19:
Paměť s organizaci N x 8
Paměti ROM v technologii MOS mají obsah pevně dán maskami použitými při výrobě polovodičového čipu v počáteční fázi výroby, kdy se pomocí masek určují místa pro růst tlusté vrstvy SiO2. V těchto místech se nevytvoří funkční paměťové MOS tranzistory, protože mezi kanálem a řídící elektrodou G je velká vzdálenost. V místech, kde nedojde k takovému růstu vrstvy SiO2 naopak vznikne tranzistor s malou tloušťkou vrstvy, která umožňují jeho sepnutí. Takovéto paměti jsou označovány jako maskou programovatelné ROM (mask programmable) a jejich výroba se vyplatí až při sériích větších než 10 tis. kusů. Ukázka paměťové buňky ROM v MOS je na obr. 20. Přivedením signálu na vodič výběru sloupce C a řádku W, vybraný MOS paměťový tranzistor TP sepne a na bitovém vodiči B generuje úroveň L. Tato úroveň se přes spínací tranzistor TC přenese na výstup obvodu. Pokud nelze tranzistor TP sepnout (např. z důvodu větší vrstvy SiO2), bude na bitovém vodiči B úroveň H. Nevýhodou pamětí ROM je doba nutná pro proběhnutí zákaznických čipů všemi technologickými operacemi. Tuto dobu lze zkrátit přípravou pamětí se všemi funkčními tranzistory a jejichž funkčnost se omezí až několika zákaznickými maskami v konečné fázi výroby. [6]
FEKT Vysokého učení technického v Brně
36
a) Uložení úrovně L Obr. 20: 5.1.1
b) Uložení úrovně H Paměťová buňka MOS ROM
Paměti PROM3
Alternativou k pamětem ROM jsou programovatelné paměti PROM (Programmable ROM) nebo také OTP (anglicky One Time Programmable) je elektricky "jednorázově" programovatelná permanentní paměť. Tato paměť se používá obdobně jako paměť ROM. Každý bit paměti PROM je při programování možné přepsat z logické úrovně H na hodnotu L, avšak tato změna je nevratná. Využívá se toho, že MOS tranzistory v paměťové matici mají mimo řídicího hradla ještě tzv. plovoucí hradlo - floating gate (FG), které je izolováno od kanálu a řídící elektrody. Přítomnost náboje elektronů na plovoucím hradle ovlivňuje svým polem kanál, což modifikuje prahové napětí tranzistoru.
a) VA charakteristika Obr. 21:
3
b) tranzistor s plovoucím hradlem Tranzistor s plovoucím hradlem
Uložení informace – Řídicí elektroda G (Gate) je připojena na vybraný adresovací slovní vodič W se zvýšeným napětím obvykle okolo 12 V. Pokud je na elektrodě D, která je připojena na vybraný bitový vodič B kladné napětí
Paměť PROM vynalezl v roce 1956 Wen Tsing Chow, který pracovat pro vojenskou divizi amerického Bosch Arma Corporation Garden City, New York. Výzkum byl placen letectvem Spojených států, které potřebovalo pružný a bezpečný způsob ukládání konstant u střel.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
37
(řádově okolo 5 až 6 V), protéká indukovaným kanálem typu N od elektrody S k elektrodě D velký proud, elektrony mají velkou energii a působením elektrického pole mezi kanálem a řídicí elektrodou G dojde k přeskočení tzv. horkých elektronů z kanálu přes izolační bariéru na plovoucí hradlo, kde zůstanou. Pokud je na elektrodě D nulové napětí, kanálem neteče proud a nedojde k přeskoku elektronů a naprogramování paměťové buňky. Čtení informace – Při normálním režimu čtení paměťové buňky je na elektrodě D napětí řádově 1 V a na elektrodě G ve vybraném řádku 5 V. Přítomnost náboje na plovoucím hradle ovlivňuje indukovaný kanál a je potřeba větší napětí na elektrodě G (mezi 7 – 9 V), aby kanálem protékal proud podle obr. 21a. Toto napětí způsobí u nenaprogramovaných buněk větší proud. Ten se vyhodnocuje jako uložený stav H, malý proud indikuje uložený stav L.
Obr. 22:
Programování tranzistoru s plovoucím hradlem
Dnes je vzhledem k nízké ceně mazatelných pamětí použití tohoto typu paměti méně časté. Paměť se vyráběla jen v malých kapacitách paměti (cca. 32byte až několik kilobyte) jako levná varianta paměti proti (tehdejším) cenám mazatelných pamětí EPROM/EEPROM. Starší technikou programování pamětí PROM bylo přepalování elektronických propojek, novější paměťové buňky PROM jsou technologicky velmi podobné pamětem EPROM/EEPROM, pouze neobsahují části dovolující mazání. U nových zařízení se spíše než termín PROM používá označení OTP (One Time Programable). OTP buňky jsou v podstatě paměti EPROM umístěné do levného pouzdra bez možnosti mazání. [6] 5.1.2 Paměti EPROM EPROM (Erasable Programmable Read-Only Memory) – jedná se o energeticky nezávislou polovodičovou paměť typu ROM, jejíž obsah je mazatelný ultrafialovým zářením (UV). Dopadem záření o vlnové délce 257,3 nm a energii >15Ws/cm2 na polovodičový čip s tranzistory s plovoucím hradlem získají elektrony na plovoucím hradle Obr. 23: Ukázka pouzdra paměti EPROM velkou energii a dojde k jejich odvedení z plovoucího hradla. V mazacím zařízení se obvykle při hustotě výkonu 12 mW/cm2 během 20 minut odstraní z plovoucího hradla celý náboj a uložená informace je tak vymazána. Operaci mazání je možné opakovat řádově 100 krát. Doba programování se pohybuje okolo 100 µs/byte.
FEKT Vysokého učení technického v Brně
38
Obr. 24:
Blokové schéma paměti EPROM
Paměti PROM a EPROM se vyrábějí s organizací N x 8, N x 16 bitů a obvykle mívají obě verze shodné označení. Jako příklad si můžeme uvést paměť M27C4001, která má organizaci 512k x 8, tedy 4 Mbit. Dodává se ve verzi OTP i EPROM, o kterou verzi se jedná, poznáme podle kódu součástky. Paměti EPROM mají v kódu písmeno W (Window). Součástí katalogového listu je popis programovacího algoritmu, který se může u jednotlivých výrobců lišit. Ukázka pouzdra s mazacím okénkem je na obr. 23. Blokové schéma paměti EPROM je na obr. 24. Programování – z výroby mají všechny paměťové buňky nastavenu logickou úroveň H, data se programují selektivně zápisem log úrovně L do požadovaných bitů. Změna stavu z L do H je možná pouze pomoci ultrafialového záření. Paměť přejde do programovacího režimu přivedením napětí 12,75 V na programovací pin VPP. Data se programují po 8 bitech, které jsou zaráz přivedeny na datový výstup. Důležité je také dodržet pořadí a úrovně řídících pinů 𝑂𝐸 (Output Enable) a 𝐶𝐸 (Chip Enable). Mazání – paměť EPROM se maže pomoci ultrafialového záření o vlnové délce 257,3 nm, o definované hustotě záření a energii a po definovanou dobu. V běžném pokojovém světle v rozsahu 3000 – 4000 K by mazání paměťového čipu trvalo až tři roky, na přímém slunečním světle dojde ke smazání paměti přibližně do jednoho týdne. Dnes se paměti EPROM používají v nových konstrukcích pouze výjimečně, a to hlavně ve verzi OTP. Z důvodu klesání vodivosti kanálu paměťového tranzistoru je omezená také živostnost paměťových buněk. 5.1.3
Paměti EEPROM
EEPROM (Electrically Erasable Programmable Read-Only Memory) – jedná se o energeticky nezávislou polovodičovou pamět typu ROM s možností zápisu, smazání a přepisu dat. Pro tyto paměti se také někdy používají zkratky E2PROM, specifickým druhem těchto pamětí jsou paměti FLASH, které jsou levnější na výrobu. Další výhodou paměťových buněk EEPROM je nejmenší velikost sektoru, kterou je možné vymazat. Například u rodiny pamětí S12G firmy Freescale je možné mazat sektor o velikosti 4 byty.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
39
Základ pamětí EEPROM tvoří tranzistor s plovoucím hradlem viz. obr. 21, který je možné programovat/mazat/přepisovat pomoci elektrických signálů. Používá se několik forem paměťové buňky, např. tranzistor vyroben v technologii MNOS (Metal Nitrid Oxide Semiconductor). Jedná se o tranzistory, kde plovoucí hradlo tvoří vrstva nitridu křemíku (Si3N4) nanesená na tenké vrstvě oxidu křemičitého (SiO2). Snížením tloušťky dielektrika pod plovoucím hradlem a změnou tvaru sktruktury u elektrody drain se dosáhne toho, že lze odsávat elektrony z plovoucího hradla. Změna Obr. 25: Buňka EEPROM náboje se pak provádí zvýšením napětí na řídící elektrodě CG (Control Gate), elektrony se přenášejí Fowler-Nordheimovým tunelováním z elektrody drain na řídící elektrodu CG (viz. obr. 25). Protože k tunelování dochází při velké intenzitě elektrického pole mezi těmito elektrodami, není nutný žádný proud kanálem. Proces tunelování je relativně pomalý a pomalé je tedy i programování paměťových buněk. Čas zápisu jednoho slova do paměti se pohybuje okolo 100 µs. Při opačné polaritě pole dochází tunelováním k odstranění elektronů a vymazání paměťové buňky. Mazání sektoru se pohybuje u stejného typu paměti okolo 10 µs. EEPROM paměti jsou obvykle považovány za paměti pomalé, protože převážně podporují pouze jedno bajtové (single byte) operace. Vzhledem k relativně dlouhé době programování je nutná kontrola ukončení programovacího cyklu. Algoritmus kontroly se liší podle výrobce a konkrétního typu paměti. Životnost paměťových buněk je omezená, obvykle se pohybuje okolo 500 tisíc přepisů. [6] 5.1.4 Paměti FLASH Flash paměti se stejně jako paměti EEPROM mohou programovat i mazat přímo v zařízení bez nutnosti používat externí programátor. Jednotranzistorová buňka vychází z pamětí EPROM a využívá se tranzistor s plovoucím hradlem. Mazání je umožněno změnou tvaru elektrody S (Source). Programování probíhá injekcí horkých elektronů z kanálu při přivedeném zvýšeném napětí na řídicím hradle. Elektrické mazání probíhá při uzemněném řídicím hradle a zvýšeném napětí na elektrodě Source, které způsobí tunelování elektronů z paměťového tranzistoru. Tranzistor se tak uvede do původního stavu. Na rozdíl od pamětí EEPROM se u pamětí flash provádí mazání nikoliv po jednotlivých buňkách, ale po celých blocích. V současné době se využívají víceúrovňové tranzistory MLC (Multi Level Cell), které jsou schopny uložit více než jeden bit. Princip je založen na zjišťování úrovně nabití plovoucího hradla, na rozdíl od předchozích generací, kdy se detekovala pouze přítomnost náboje.
a) Programování
b) mazání Obr. 26:
Paměť flash
FEKT Vysokého učení technického v Brně
40
Pro uložení/mazání informace z/do paměťové buňky je zapotřebí napětí okolo 12 V, přesto pro napájení paměťových čipů je vyžadováno pouze jedno napájecí napětí, často na úrovni 3,3 V nebo 1,8 V. Většina paměťových čipů proto v sobě obsahuje nábojovou pumpu (charge pump), která zajistí vygenerování potřebného programovacího napětí. Nábojová pumpa ale spotřebovává více než polovinu dodávané energie do paměťového čipu, proto se v komplexních paměťových zařízeních, jako jsou například disky SSD (Solid-state drive), využívá samostatný čip, generující programovací napětí pro všechny obvody. V tomto případě lze využít měničů typu Boost, které jsou výrazně účinnější. Pro svou činnost ale potřebují napájecí napětí ∓𝑈𝐷𝐷 . Obecně lze programovat jednotlivý byte paměti, ale mazat lze jen celá paměť (bulk erase), popřípadě její sektor nebo blok. Je to dáno konstrukcí jednotlivých paměťových tranzistorů, protože elektrody S, na které se připojuje zvýšené kladné napětí, jsou v daném sektoru propojeny. Obvykle se tyto sektory nazývají jako stránky (Page).
a) NAND
b) NOR Obr. 27:
NAND x NOR flash
Paměti Flash dělíme na dvě základní skupiny, a to NOR a NAND flash: NOR Flash, které poskytují rozhraní s vyhrazenými adresovými a datovými vodiči, tzn., že umožňují přímý přístup k dané paměťové buňce. Chovají se tedy jako paměti, které jsou mapované do určité části adresového prostoru. Díky tomu mají menší hustotu paměťových buněk, jsou pomalejší při zápisu, ale mají vyšší rychlost při čtení než paměti NAND Flash. Název je odvozen podle uspořádání tranzistorů, které odpovídá struktuře hradla NOR. NAND Flash, využívají jednoduchého připojovacího rozhraní, takže nevyžadují plnou šířku adresové a datové sběrnice. Data jsou multiplexována do osmi
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
41
vstupních/výstupních linek. Práce s NAND flash pamětí probíhá typicky v následujících krocích: o zaslání příkazu (např. read nebo write), o zaslání 4bytové adresy, vyjadřující odkud budou data čtena, resp. kam budou zapisována, o vyčkání, až flash paměť umístí požadovaná data do výstupního registru nebo zaslání zapisovaných dat, o přečtení, resp. zapsání dat. 5.1.5 Paměti MRAM Při použití klasických polovodičových paměťových buněk bojujeme s jejich nevýhodami a to převážně u Flash pamětí s jejich životností a rychlostí, u pamětí tapu SRAM nebo DRAM s principem jejich energetické závislosti. Výrobci se proto snaží o vyvinutí nových paměťových buněk, založených na jiném principu uložení informace. V posledních letech se hodně rozšířily integrované paměťové čipy MRAM (Magnetoresistance Random Access Memory), které využívají k uložení informace magnetického pole. Jedná se o nový typ paměťových buněk, které mají výhody pamětí Flash, ale rychlostí jsou srovnatelné s pamětmi SRAM. Mají odlišný postup čtení a zápisu logického stavu. Stav bitu ukládají pomocí změny orientace magnetického pole speciální paralelní struktury feromagnetického a dielektrického materiálu, pro čtení se využívá měření příčného elektrického odporu struktury. Odpor struktury se mění díky jevu magnetorezistence, a to podle uložené orientace magnetického pole při zápisu bitu (obr. 28).
Obr. 28:
Struktura tunelového přechodu MTJ
Základem každé paměťové buňky (bitu) je speciální vertikální struktura dvou feromagnetických materiálů oddělených tenkou dielektrickou vrstvou oxidu hliníku. Tato struktura je označovaná jako magnetický tunelový přechod MTJ (Magnetic Tunnel Junction). Využívá se zde efektu tunelové magnetorezistence TMR (Tunnel Magnetoresistance Effect), kde v závislosti na vzájemné orientaci magnetického pole obou feromagnetických látek volné magnetické vrstvy (Free Magnetic Layer) a pevné magnetické vrstvy (Fixed Magnetic Layer) se natáčí spin procházejících elektronů elektrického proudu. Tak se mění i příčný elektrický odpor celé této struktury. Magnetické pole proměnné magnetické vrstvy je tedy řízené vybuzeným magnetickým polem při zápisu logického stavu bitu. Pokud je směr magnetického pole proměnné feromagnetické vrstvy stejný s pevně daným směrem spodní magnetické vrstvy, je odpor kladený elektrickému proudu malý. Pokud naopak je vzájemná orientace polí opačná (proti sobě), je vertikální elektrický odpor struktury velký.
FEKT Vysokého učení technického v Brně
42
Obr. 29:
Struktura buňky MRAM
Z pohledu čtení a zápisu se tedy jedná o dva různé pochody, kdy při zápisu se vnějším elektromagnetickým polem mění orientace (natočení) magnetických dipólů, zatímco při čtení se měří vertikální elektrický odpor struktury buňky. Struktura buňky MRAM je tedy o něco složitější než struktura buňky SRAM. Zatímco u klasických buněk pamětí RAM dochází s časem a se zjišťováním stavu bitu k úbytku náboje a je nutné po čase buňky tzv. regenerovat, u pamětí MRAM není nic takového nutné. Magnetická polarizace (orientace dipólů) není časem ani čtením stavu ovlivňována.
Zápis do paměti - respektive změna logického stavu z L na H, nebo z H do L se provádí přivedením sekvence dvou vzájemně posunutých proudových obdélníkových pulsů na dva zápisové vodiče paměťové buňky. Tento princip se nazývá Savtchenkovo spínání (Savtchenko switching) a jedná se o tzv. přepínací zápisovou funkci (toggle function), kdy přesun z jednoho stavu do druhého se provádí pomocí úplně stejného zápisového signálu, viz. obr. 30. Použitím této přepínací funkce se odstraňují vzájemné rušící efekty mezi buňkami při zápisu úrovně L a H, které by vznikaly při jednovodičovém zápisu.
Obr. 30:
5.2
Struktura buňky MRAM
Čtení paměti - čtení stavu bitu se provádí prostřednictvím horní společné elektrody a menší speciální čtecí elektrody napojené na protější stranu vertikální struktury. Princip čtení je založen na sepnutí izolačního tranzistoru (Isolation Transistor) čtené buňky a měření protékajícího proudu touto buňkou. Měřený proud je porovnáván s referenční hodnotou proudu protékajícího strukturou při stavu L. Pokud je zapsaný stav H, má buňka větší elektrický odpor a teče přes ni tedy menší proud. [7]
Paměti typu RWM
Paměti RWM (Read Write Memory) jsou paměti určené pro opakované čtení i zápis. Paměti RWM jsou známy v několika provedeních, například jako poměti RAM (Random Access Memory), u kterých můžeme adresovat libovolnou buňku, nebo paměti se sekvenčním přístupem SAM (Sequential Access Memory), FIFO (First In First Out) nebo paměti SARAM
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
43
(Sequential Access Random Access Memory), které kombinují výhody obou typů. Základem těchto pamětí bývá bistabilní klopný obvod. 5.2.1 Paměti SRAM Paměti SRAM (Static Random Access Memory) uchovávají informaci v sobě uloženou po celou dobu, kdy jsou připojeny ke zdroji elektrického napájení. Paměťová buňka SRAM je realizována jako bistabilní klopný obvod, tj. obvod, který se může nacházet vždy v jednom ze dvou stavů, které určují, zda v paměti je uložena úroveň 1 nebo 0.
Obr. 31:
Buňka SRAM v technologii MOS
U SRAM pamětí se používá dvou datových vodičů. Vodič 𝐷𝑎𝑡𝑎 (Bit line) je určený k zápisu do paměti. Vodič označený jako 𝐷𝑎𝑡𝑎 se používá ke čtení. Hodnota na tomto vodiči je vždy opačná než hodnota uložená v paměti, proto na konci paměťového bloku musíme uloženou informaci ještě negovat. Při zápisu se na adresový vodič umístí hodnota H. Tranzistory T1 a T2 se otevřou. Na vodič 𝐷𝑎𝑡𝑎 se přivede zapisovaná hodnota (např. 1). Tranzistor T1 je otevřen, takže jednička na vodiči 𝐷𝑎𝑡𝑎 je přivedena na vstup invertoru tvořeného tranzistory T4 a T3. Výstup invertoru (T4, T3) tvoří vstup invertoru tvořeného tranzistory T5 a T6. Tento stav obvodu představuje uložení hodnoty 0 do paměti. Zcela analogicky tato buňka pracuje i při zápisu hodnoty 1. Rozdíl je pouze v tom, že výstup invertoru (T4, T3) je v logické úrovni H. Při čtení je opět na adresový vodič přivedena hodnota logická 1, což opět způsobí otevření tranzistorů T1 a T2. Jestliže byla v paměti zapsána hodnota 1, je na výstupu invertoru (T4, T3) hodnota 0. Tuto hodnotu obdržíme na vodiči 𝐷𝑎𝑡𝑎. Opět zcela analogicky v případě uložené hodnoty 0, kdy tranzistor T4 je uzavřen (tj. na jeho výstupu je hodnota 1). 5.2.2 Paměti DRAM V paměti DRAM (Dynamic Random Access Memory) je informace uložena pomocí elektrického náboje na „kondenzátoru“. Vzhledem k velikosti paměťového kapacitoru CP je tento náboj velmi malý a má tendenci se vybíjet i v době, kdy je paměť připojena ke zdroji elektrického napájení. Aby nedocházelo k vybití, a tím i ke ztrátě uložené informace, je nutné informaci periodicky obnovovat tzv. refresh buňky. Tato funkce je realizována jako součást paměťového čipu. Jedná se o paměťovou buňku, která je destruktivní při čtení a přečtenou hodnotu je nutné opět do paměti zapsat.
FEKT Vysokého učení technického v Brně
44
Obr. 32:
Buňka DRAM v technologii MOS
Zápis do paměti – obecně si lze zápis představit tak, že na adresový vodič přivedeme hodnotu 1. Tím se otevře tranzistor T, na datovém vodiči je umístěna zapisovaná hodnota (např. 1). Tato hodnota projde přes otevřený tranzistor a nabije kapacitor. V případě zápisu nuly dojde pouze k případnému vybití kapacitoru (pokud byla v paměti uložena hodnota 1). V reálných podmínkách musíme vycházet z velmi malé kapacity paměťového kapacitoru. Proto se před každou operací zápisu všechny datové vodiče přednabijí (precharge) do definovaného stavu. Snímací zesilovače jsou nastaveny do nestabilního stavu a fungují jako komparátory. Ty se následně podle čtené informace překlopí do stabilního stavu, a tím obnoví uloženou informaci. Tato informace je pak snímána R/W zesilovačem, který zajišťuje její další zpracování. Čtení paměti - při čtení je na adresový vodič přivedena hodnota logická 1, která způsobí otevření všech tranzistorů připojených na adresový vodič W a připojení paměťových kapacitorů CP na datové vodiče B. Jestliže byl kondenzátor nabit, zapsaná hodnota přejde na datový vodič. Kapacita CP je velmi malá (menší než parazitní kapacita datového vodiče), proto i změna napětí je velmi malá a je nutné ji vyhodnotit pomoci snímacích zesilovačů. Snímací zesilovač je velmi podobný bistabilnímu klopnému obvodu viz. obr. 31. Tímto čtením dojde k vybití kondenzátoru a zničení uložené informace.
Buňka paměti DRAM je velmi jednoduchá a dovoluje vysokou integraci, a má nízké výrobní náklady. Díky těmto vlastnostem je používána k výrobě operačních pamětí. Její nevýhodou je však vyšší přístupová doba (60 - 70 ns), způsobená nutností provádět refresh a časem potřebným k nabití a vybití kondenzátoru.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
45
6 Druhy digitálních integrovaných obvodů Logický návrh číslicových systémů končí vypracováním logického schématu obvodu nebo zařízení. K vlastnímu návrhu je možné přistoupit až po vykonání dalších kroků, které se souhrnně nazývají fyzický návrh. V rámci fyzického návrhu se provádí statický i dynamický návrh obvodu, popřípadě větších celků. Fyzický návrh zpětně ovlivňuje návrh logický. Např. pokud při dynamickém návrhu zjistíme, že zvolené zapojení nevyhovuje zadaným dynamickým parametrům, nebo že je obvod navržen nevhodně z hlediska diagnostiky. Konečné zapojení získané po korekcích původního logického schématu musí nejen splňovat požadovanou logickou funkci, ale musí vyhovovat i požadavkům fyzického návrhu. Fyzický návrh vychází z možností pracoviště a ze zavedených zvyklostí. Při fyzickém návrhu postupujeme většinou s ohledem na nejméně příznivé podmínky. Cílem fyzického návrhu je bezpečná funkce navržených zařízení a jednoduchost návrhu. Většinu úkolů fyzického návrhu lze svěřit počítači vybavenému vhodným systémem automatizovaného návrhu. Některé úkoly ale vždy zůstanou pro návrháře. Prvním úkolem, který vyplývá z logického návrhu a předchází fyzický návrh, je stanovení použitého sortimentu integrovaných obvodů. Návrh použitých typů musí umožnit hospodárnou konstrukci zařízení, ale nesmí být příliš rozsáhlý. Důvod je zcela praktický, např. velký počet typů použitých součástek znamená rozsáhlou skladovou agendu. Především je ale nutné vygenerovat větší počet testů a připravit odpovídající testovací programy. Při výběru použitého sortimentu musíme brát v úvahu nejen výhodnost vybraného typu, ale také jeho reálnou dostupnost a aktuálnost. Základním stavebním blokem digitálních systémů je logický člen (hradlo). U daného typu logického členu je jeho logická funkce jednoznačně dána, ale jeho jednotlivé fyzické realizace se mohou i velmi podstatně lišit vnitřní strukturou a výrobní technologií. Obecně lze digitální obvody rozdělit na dvě velké skupiny, a to bipolární integrované obvody, unipolární integrované obvody. Bipolární technologie je nejstarší, do hloubky propracovaná a dříve hodně používaná skupina logických obvodů. Je založena na využití struktur, sestavených z bipolárních tranzistorů, které v zapnutém stavu pracují v saturaci nebo na mezi saturace (diodovětranzistorová logika DTL, tranzistorově-tranzistorová logika TTL4, integrovaná injekční logika IIL, včetně rychlých a Schottkyho variant). Druhou významnou skupinu logických obvodů tvoří struktury s unipolárními spínacími tranzistory s izolovaným hradlem (logické obvody typu CMOS). Technologie CMOS5 (Complementary Metal–Oxide–Semiconductor) je dnes používaná na převážnou většinu integrovaných obvodů. Používá se na výrobu čipů včetně mikroprocesorů, jednočipových počítačů a elektronických pamětí, ale také například na obrazové senzory. Výraz complementary nebo někdy také complementary-symetric se vztahuje k symetricky se doplňujícím tranzistorům MOSFET typu n a p obvykle používaných pro logické funkce v této technologii.
4
Obvody TTL byly vynalezeny v roce 1961 CMOS obvody byly vynalezeny roku 1967 Frankem Wanlassem ze společnosti Fairchild Semiconductor. První integrované obvody s touto technologií byly vyrobeny v roce 1968. 5
FEKT Vysokého učení technického v Brně
46
Úspěšnou realizaci logických celků podmiňuje dobrá vzájemná spolupráce a kompatibilita logických členů i složitějších integrovaných obvodů. Spolupráci a návaznost jednotlivých integrovaných obvodů zajišťují základní parametry, udávané výrobci pro nejnepříznivější podmínky: UIH min - minimální hodnota vstupního napětí úrovně H, UIL max - maximální hodnota vstupního napětí úrovně L, UOHmin - minimální hodnota výstupního napětí úrovně H při proudové zátěži IOHmax, UOLmax - maximální hodnota výstupního napětí úrovně L při proudové zátěži IOLmax, IILmax - maximální hodnota vstupního proudu při úrovni L, IIHmax - maximální hodnota vstupního proudu při úrovni H. IOLmax - maximální hodnota výstupního proudu při úrovni L, IOHmax - maximální hodnota výstupního proudu při úrovni H.
Obr. 33:
6.1
Definice základních parametrů
Bipolární integrované obvody
Základem každého typu digitálních integrovaných obvodů je možnost realizace logických funkcí. Nejjednodušší vstupní obvod součinového a součtového logického členu v bipolární technologii lze vytvořit pomoci dvou diod, zapojených podle obr. 34. Pokud budeme napětí blízké nule považovat za logický stav L a dostatečně velké napětí za logický stav H, pak napětí Uout bude v úrovni L, pokud alespoň jeden ze vstupů bude v úrovni L. Logická úroveň H bude dosažena pouze v případě, kdy na obou vstupech bude logická úroveň H.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
a) součinový
47
b) součtový
Obr. 34:
Realizace log. fce pomoci diod
Nevýhodou realizace logických funkcí pomoci diod je neexistence prvku negace a zesílení, proto na obvod logického součinu navazuje tranzistorový zesilovač. Principiálně stejné je potom zapojení obvodů TTL. Základní stavební jednotkou obvodů TTL je logický člen NAND s několika vstupy. Z obr. 35 je zřejmá vnitřní stavba dvouvstupového členu NAND. Jedná se pouze o principiální zapojení, zjednodušené do základní funkční podoby. Zapojení můžeme analyzovat buď z hlediska logické funkce obvodu (víme, že jde o funkci NAND, tedy o negovaný logický součin 𝑌 = 𝐴. 𝐵 vstupních signálů) nebo z hlediska elektrického chování obvodu při změně napěťových úrovní vstupních signálů A a B.
Uc = +5 V R1 4K
7400
R2 1K6
uBE
R4 130R
T4
T1
ivst A
T2
D
ivýst
B
uA
uB
Obr. 35:
DA
T3
DB R3 1K
uvýst
Vnitřní zapojení TTL hradla typu 7400
Statické (stejnosměrné) vlastnosti daného logického členu lze dobře posoudit z průběhu jeho vstupních, převodních a výstupních charakteristik. K výkladu o charakteristikách je ještě nutné si uvědomit, že ve skutečném zapojení členu podle obr. 35 jsou k oběma vstupům úmyslně zapojeny ochranné omezovací diody D A, DB, které ochraňují jeho vstupní obvod před nežádoucím účinkem případného záporného napětí přivedeného na vstup. Bez těchto ochranných diod by totiž záporné napětí otevřelo substrátové diody, které
FEKT Vysokého učení technického v Brně
48
by se prorazily a obvod by se zničil. V obvodu však je nutno brát v úvahu ještě další substrátové diody, které v normálním provozním režimu izolují systém logického členu od podložky a které vznikají při technologickém zpracování integrovaného obvodu. Existují mezi kolektorem každého tranzistoru a substrátem, ke kolektorům jsou připojeny katodou, ke společnému vodiči anodou. Z těchto substrátových diod se z hlediska vnějšího chování obvodu projevuje zejména dioda vytvořená mezi výstupem logického členu a substrátem, která se otevírá při nestandardním zatěžování výstupu ze zdroje záporného napětí přes zatěžovací rezistor. [1,6,8,9,11,12,13]
6.1.1 Vstupní statická charakteristika Vstupní statická charakteristika ivst=f(uvst) běžného jednovstupového logického členu (invertoru) je uvedena na obr. 36. Tutéž charakteristiku můžeme naměřit pro vícevstupová hradla, budíme-li pouze jeden vstup a ostatní připojíme na potenciál logické jedničky, přičemž zanedbáváme vstupní proudy, tekoucí těmito vstupy. ivst ivýst
2 mA
50 mA
1 -1
0
1
2
3
4
5V
40
uvst
stav 0 na výstupu
30
-1
20 -2
10 -1
-3
0
1
2
3
4
5V uvýst
-10
-4
-20
-5
-30
stav 1 na výstupu
-6
-40 -7
-50
Obr. 36:
a)Vstupní a b) výstupní charakteristika hradla TTL [1,12]
Je-li sledovaný vstup členu, tj. emitor tranzistoru T1 spojen se společným vodičem, bude tranzistor T2 uzavřen a kolektorem vstupního tranzistoru neprotéká proud, tedy 𝑖𝑖1 ≈ 0. Na tvorbě vstupního proudu se v tomto případě podílí pouze proud tekoucí do báze tranzistoru T1. Pro jeho velikost platí 𝑖𝑣𝑠𝑡 = 𝑖𝐵1 ≈ (𝑈𝐶 − 𝑢𝐵𝐸1 )/𝑅1
(9)
a odpovídající část vstupní charakteristiky má proto přibližně přímkový charakter se směrnicí 𝑖𝑣𝑠𝑡 1 ≈ . Odklon od lineárního průběhu pak nastává při zvyšování vstupního napětí, při němž 𝑢 𝑅 𝑣𝑠𝑡
1
se tranzistor T2 začíná otevírat, protože do jeho báze začíná vtékat proud. Při 𝑖𝑣𝑠𝑡 = 0 veškerý proud rezistorem R1 teče do báze tranzistoru T2. V tomto případě jsou tranzistory T2 a T3 v
49
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
saturaci, napětí 𝑢𝐵2 = 1,3 𝑎ž 1,5 𝑉. Při dalším zvyšování vstupního napětí přechází vstupní tranzistor T1 do inverzního režimu, a při jeho nulovém emitorovém proudu 𝑖𝑣𝑠𝑡 = 0, bude mezi jeho kolektorem a sledovaným emitorem minimální napětí 𝑢𝐶𝐸𝑆1 = −𝑈𝑇 . 𝑙𝑛
(1+ℎ21𝐸 ) ℎ21𝐸
1
(10)
= −𝑈𝑇 . 𝑙𝑛 𝛼
𝑁
kde ßi je proudový zesilovací činitel v inverzním režimu. Pro 𝑈𝑇 ≈ 25 𝑚𝑉 a 𝑁 = 0,98 bude 𝑢𝐶𝐸𝑆1 ≈ −0,5 𝑚𝑉. Rozhodovací vstupní napětí je tedy rovněž asi 1,3 až 1,5 V. Další zvyšování vstupního napětí logického členu se projeví v inverzně pracujícím tranzistoru T1 tokem proudu 𝑖𝑣𝑠𝑡 ≈ 𝛽𝑖 . 𝑖𝐵1 = 𝛽𝑖
(𝑈𝑐 −3𝑢𝐵𝐸 ) 𝑅1
≈ 18 𝜇𝐴.
Při dalším zvětšování vstupního napětí se vstupní proud téměř nemění, až při vstupním napětí 7 až 8 V se prorazí přechod emitor-báze tranzistoru T1. Proto výrobce nepřipouští vstupní napětí hradla větší než 5,5 V. Budeme-li naopak přivádět vstupní napětí záporná, bude až do napětí asi -0,7 V tvar 𝑖 1 charakteristiky lineární, sklon odpovídá hodnotě 𝑢𝑣𝑠𝑡 ≈ 𝑅 . Při zápornějších napětích se 𝑣𝑠𝑡
1
otevírá vstupní dioda DA, nebo DB a určuje spolu s otevřeným tranzistorem T1 tvar vstupní charakteristiky. Z hlediska přípustného ztrátového výkonu musí být velikost vstupního proudu omezena na 10 až 15 mA. 6.1.2 Výstupní statická charakteristika Výstupní charakteristika ivýst=f(uvýst) logického členu TTL je rozdílná pro dva možné logické stavy L a H na výstupu. Na obr. 36 jsou uvedeny obě křivky tvořící výstupní charakteristiku. Má-li být na výstupu napětí odpovídající logické nule, je tranzistor T3 nasycen a v oblasti kladných výstupních napětí určuje jeho charakteristika iC3(uCE3) průběh výstupní charakteristiky členu. Při malých výstupních proudech je 𝑢𝑣ý𝑠𝑡 = 𝑢𝐶𝐸3 ≈ 0,1 𝑉 uVÝST. Se zvětšováním výstupního proudu roste i výstupní napětí. Výstupní dynamický odpor hradla je tedy určen odporem nasyceného tranzistoru T3. Jeho hodnota je asi 10 až 15 Ω. V oblasti výstupního proudu 𝑖𝑣ý𝑠𝑡 ≈ 140 𝑚𝐴 výstupní napětí prudce vzrůstá, neboť tranzistor T3 přechází z nasyceného stavu do aktivního režimu. V oblasti záporných napětí závisí průběh charakteristiky na vlastnostech substrátové diody, která je katodou připojena ke kolektoru T3 a anodou na společný vodič. Tato dioda je významná také z hlediska odrazů na nepřizpůsobených vedeních a z hlediska odolnosti vůči rušení. Má-li být na výstupu logická jednička, je tvar výstupní charakteristiky logického členu určen charakteristikou tranzistoru T4. Při velkých napětích na výstupu teče výstupem nepatrný proud, tranzistor T4 je uzavřen. S klesajícím napětím 𝑢𝑣ý𝑠𝑡 se velikost výstupního proudu zmenšuje a při výstupním napětí 3,3 až 3,5 V je proud nulový, protože zbytkový proud tranzistoru T4 se kompenzuje proudem tekoucím z tranzistoru T3. Při dalším snižování výstupního napětí se tranzistor T4 dostává do aktivního režimu a výstupní dynamický odpor hradla klesá z několika megaohmů asi na 70 až 80 Ω. V oblasti menších výstupních napětí je tranzistor T4 v nasyceném stavu a dynamický výstupní odpor je asi 160 Ω. Při nulovém výstupním napětí teče obvodem zkratový proud a při záporných napětích se opět uplatňuje substrátová dioda na výstupu.
FEKT Vysokého učení technického v Brně
50
Obr. 37: 6.1.3
Převodní charakteristika bipolárního hradla
Převodní statická charakteristika
PŘEVODNÍ CHARAKTERISTIKA 𝑢𝑣ý𝑠𝑡 = 𝑓(𝑢𝑣𝑠𝑡 ) vystihuje závislost mezi vstupním a výstupním napětím logického členu a její typický průběh pro hradlo NAND TTL je uveden na obr. 37. Tvar charakteristiky závisí zejména na velikosti napájecího napětí obvodu, na charakteru připojené zátěže a na pracovní teplotě obvodu. Na obr. 37 jsou šrafováním vyznačeny oblasti, do kterých pro daná vstupní napětí (𝑢𝑣𝑠𝑡 < 0,8 𝑉 𝑎 𝑢𝑣ý𝑠𝑡 > 2 𝑉(uVSTL < 0,8 V) nesmí výstupní napětí 𝑢𝑣ý𝑠𝑡 zasáhnout. Na převodní charakteristice jsou zřetelné čtyři typické oblasti. Pro malá vstupní napětí do 0,6 až 0,8 V jsou tranzistory T 2 a T3 uzavřeny a výstupní napětí je konstantní v úrovních logické jedničky, 𝑢𝑣ý𝑠𝑡 = 3,3 𝑎ž 3,7 𝑉. Při zvětšování vstupního napětí se otevírá tranzistor T2 a jeho napěťovým zesílením –
𝑅2 𝑅3
≈ −1,4
je přibližně určen sklon převodní charakteristiky v oblasti klesajícího výstupního napětí. Při vstupním napětí přibližně 1,3 V se začíná otevírat i výstupní tranzistor T3. Protože je připojen paralelně k rezistoru R3 a jeho vstupní odpor RVST klesá, zvětšuje se zesílení tranzistoru T2 𝑅 úměrně poměru – (𝑅 ||𝑅2 ). Charakteristika je proto od napětí 𝑢𝑣𝑠𝑡 = 1,3 𝑉 strmá, absolutní 3
𝑣𝑠𝑡3
hodnota napěťového zesílení členu je velká. Další zvětšování vstupního napětí způsobí rychlý pokles výstupního napětí na hodnotu saturačního napětí výstupního tranzistoru T3, takže na výstupu členu je zaručena přibližně konstantní úroveň napětí logické nuly s typickým napětím 𝑢𝑣ý𝑠𝑡 ≈ 0,2 𝑉. 6.1.4
Dynamické vlastnosti
Rychlá změna výstupního napětí členu při zpětném snižování vstupního napětí v okolí hodnoty 𝑢𝑣𝑠𝑡 = 1,3 𝑉 je dynamickým jevem, kdy se tranzistor T4 otevírá dříve, než stačí přejít tranzistor T3 ze stavu nasycení do stavu zahrazení. Po určitou dobu tedy vedou tranzistory T3 a T4 současně a výstupním obvodem protéká zkratový proud, jehož špičková hodnota dosahuje u standardní řady 54/74 TTL až 25 mA. Doba trvání tohoto proudového impulsu, který má tu výhodu, že se jím intenzivně odvádí prostorový náboj z předtím saturovaného tranzistoru T3, závisí na velikosti kapacitní zátěže výstupu a strmosti hrany budícího vstupního napětí. Tyto proudové impulsy mohou však vyvolat v připojených obvodech přídavné rušení. Proto je nutno opatřit rozvod napájecího napětí dostatečným
51
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
počtem filtračních kapacitorů, které pokryjí impulsní nároky na dodávanou energii a zabrání dalšímu šíření těchto proudových špiček. Dynamické parametry obvodů TTL udává výrobce nepřímo, a to pomocí typických časových zpoždění reakce výstupu logického členu při skokové změně logické hodnoty vstupního signálu. Např. pro řadu 74 obvodů TTL udává výrobce dobu zpoždění reakce logického členu při přechodu z úrovně L na úroveň H hodnotou 𝑡𝑃𝐿𝐻 < 22 𝑛𝑠 a při přechodu z úrovně H na úroveň L hodnotou 𝑡𝑃𝐿𝐻 < 15 𝑛𝑠. 6.1.5 Další varianty obvodů TTL Další varianty obvodů byly vyvinuty s cílem buď zmenšit příkon nebo zmenšit zpoždění signálu nebo v optimálním případě zmenšit i příkon i zpoždění. Tak vznikly v řadě 54/74 varianty L, LS, ALS, H, S, AS. Podstatné omezení rychlosti obvodů TTL vyplývá z časového zpoždění, které je nutné pro přechod tranzistoru z nasyceného stavu do stavu zahrazení. Rychlé logické obvody TTL proto používají ke zvýšení rychlosti Schottkyho tranzistory, což jsou tranzistory mající mezi kolektor a bázi připojenu Schottkyho desaturační diodu, která zabraňuje přechodu tranzistoru do nasycení. Rychlost členu je také zvýšena zmenšením odporu jeho pracovních rezistorů. Typické parametry hradla TTL jsou zpoždění okolo 10 ns a výkonová ztráta hradla okolo 10 mW. Většina bipolárních obvodů TTL je v dnešní době nahrazena obvody v technologii unipolární, pro přehled zde ale uvedeme ukázky v rozdílech parametrů jednotlivých obvodových řad. Následující tabulka udává výkonové parametry logických hradel TTL na jeden logický člen a průměrného časového zpoždění 𝑡𝑑 [ns]. Maximální kmitočet 𝑓𝑚 se zpravidla uvádí pro hodinový pravoúhlý signál klopného obvodu realizovaného danou technologií. Při změně pracovního kmitočtu se částečně mění i odebíraný příkon Pd. Hodnoty v tabulce jsou pouze orientační, konkrétní hodnoty vždy závisí na konkrétním výrobci (výrobní technologii). Tab. 9: Srovnání vlastností používaných řad obvodů TTL a CMOS TTL
S
AS
LS
ALS
FAST
CMOS
HCMOS
2
1,2
5,5
1µW (100µW)
3nW (75µW)
100
60
190
1µW (120µW)
5nW (125µW)
Příkon hradla
[mW]
10
19
Příkon čítače
[mW]
300
500
Zpoždění hradla při CL = 15pF tPHL tPLH Průměrné zpoždění hradla tP - typické - minimální
[ns] 7 11
3 3
1,7 1,7
10 9
5 4,5
2,6 2,9
100 100
10 10
10 20
3 5
1,5 2,5
9,5 15
4 7
1,5 2,5
90 190
8 14
Součin zpoždění a příkonu při 100kHz
[pJ]
100
57
13
19
4,8
16,5
9
0,52
Mezní hodinový kmitočet Klopný obvod D - typický - minimální
[MHz] 25 15
100 75
160
33 25
60 40
125 100
12 6
55 30
32 25
70 40
32 25
45
125 100
6 3
45 25
8,5
[ns]
Čítač - typický - minimální
FEKT Vysokého učení technického v Brně
52 Vstupní proud pro UIL = 0,4V
[mA]
Výstupní proud pro UOL = 0,4V – běžné hradlo – výkonové hradlo Logický zisk pro zátěž LS – běžné hradlo – výkonové hradlo
[mA]
1,6
2
0,5
0,4
0,1
0,6
1µA
1µA
16 48
20 64
20 48
8 24
8 24
20 64
0,8 1,6
4 6
40 120
50 160
50 120
20 60
20 60
50 160
2 4
10 15
Ve sloupci CMOS je uvažována řada s hliníkovým hradlem 4000B, ve sloupci HCMOS je uvažována řada 74HCT. Napájecí napětí 5 V. Údaje v závorkách se týkají příkonu při kmitočtu vstupního signálu 100kHz. Tab. 10: Logický zisk pro různé kombinace jednotlivých řad obvodů TTL Řada Počet buzených hradel řady 74… 74… výkonové
74. 10 30
74S. 8 24
74LS. 20 60
74S… 74S… výkonové
12 37
10 30
50 150
74LS… 74LS… výkonové 74ALS… 74ALS… výkonové
5 15
4 12
20 60
74ALS… 20 60
20
Je uvažována diodová varianta vstupu hradla řady LS. Uváděné hodnoty jsou pouze orientační. Odolnost proti rušení je pouze zdánlivě rozdílná: při úrovni H je výstupní odpor větší než při úrovni L. Zůstává ovšem skutečností, že obvody řady LS jsou citlivější na rušení než standardní řada, a to v důsledku vyšších vstupních a výstupních odporů. [1,11,12,13] 6.1.6
Shrnutí základních vlastností logických bipolárních IO
Základní vlastnosti logických bipolárních IO lze stručně shrnout takto: 1. Jednoduchý digitální model bipolárního tranzistoru představuje spínač, který je buď sepnutý, nebo rozepnutý a je ovládán bázovým proudem nebo napětím. Když je spínač rozepnutý, je odpor mezi kolektorem a emitorem vysoký a může být považován za rozpojený obvod. Když je spínač sepnutý a tranzistor pracuje v aktivním módu, tranzistor je nahrazen ekvivalentním proudovým zdrojem. Když tranzistor pracuje v saturaci, je nahrazen stejnosměrným (saturačním) napěťovým zdrojem v sérii se saturačním rezistorem. 2. Napětí přikládané na bázi tranzistoru potřebné k jeho sepnutí není závislé ani na technologických parametrech ani na vnějších provozních parametrech. Typická hodnota napětí potřebná k jeho sepnutí se pohybuje v rozmezí 600 až 800 mV. 3. Z hlediska činnosti bipolárního tranzistoru je významné především to, zda tranzistor pracuje v aktivním nebo saturačním módu. Za předpokladu, že vstup logického obvodu je tvořen bází tranzistoru, pak je aktivní mód charakterizován tak, že vstupní proud je právě postačující k tomu, aby bázový proud byl schopen udržovat kolektorový proud právě na
53
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
𝐼
hodnotě odpovídající vztahu 𝐼𝐵 = 𝛽𝑐 . Když bipolární tranzistor pracuje v saturaci, vstupní 𝐹
𝐼
proud je v tomto případě podstatně vyšší, takže pro bázový proud platí: 𝐼𝐵 = 𝛽𝑐 + 𝐼𝑋 . 𝐹
4.
5.
6.
7.
8.
6.2
Zvýšení bázového proudu o složku IX přináší další náboj do tranzistoru, důsledkem čehož je snížení spínací rychlosti. Základní spínací součástkou v bipolárních IO je tranzistor NPN. Komplementární tranzistor PNP se využívá pouze ve funkci proudového zdroje, pro vytvoření požadovaného předpětí nebo jako zatěžovací prvek. Tranzistor PNP ve funkci spínače je v porovnání s tranzistorem NPN po všech stránkách podstatně horší a proto se jako spínač nevyužívá. Tranzistor NPN lze využít i jako přenosové hradlo, podobně jako tranzistory MOS. Jeho přenosová charakteristika je však silně nesymetrická. Tranzistor NPN ve funkci přenosového hradla je např. využit v logickém hradle TTL u jeho výstupního tranzistoru. S růstem počtu horních difúzních oblastí N+ ve struktuře tranzistoru se zvětšuje i jeho funkční logická schopnost, přičemž se s růstem počtu oblastí N+ výrazně nezvyšují nároky na plochu tranzistoru. Toto se s výhodou využívá např. v logice TTL, kde vstupní tranzistor má více emitorů. Minimální hodnota požadovaného napětí UCE pro činnost tranzistoru se pohybuje v rozsahu spínacího napětí UON emitorového přechodu ( 600 až 800 mV), proto mohou být všechny druhy bipolárních logik navrhovány na pracovní napětí v okolí 1V, což je samozřejmě velice výhodné. Bipolární logické obvody mohou pracovat v dynamickém režimu podobně jako obvody MOS. Tato možnost se prakticky nevyužívá, protože tento režim nutně vyžaduje pro svoji činnost kapacitory, které se v bipolární technologii realizují relativně obtížně.
Unipolární integrované obvody
Z obecného pohledu existují dvě skupiny unipolárních digitálních obvodů. První využívá tranzistory MOSFET na křemíku, druhá tranzistorů MESFET na GaAs. První skupina využívá tranzistory s kanálem jednoho typu vodivosti, jsou to tranzistory NMOS nebo PMOS. Jednoznačnou převahu z hlediska využití v IO mají však tranzistory NMOS, protože jsou v porovnání s tranzistory PMOS až dvakrát rychlejší. Ve druhé skupině se využívají komplementární dvojice tranzistorů CMOS. V současné době jsou digitální obvody v unipolární technologii vyráběny převážně ve struktuře s komplementárními tranzistory, tedy CMOS. V obou případech jsou základními stavebními prvky invertory skládající se ze dvou součástek s tzv. obvodovou konfigurací „pull-up, pull-down“ (PUD). Spodní součástkou v obou skupinách je tranzistor NMOS, horní součástkou je v první skupině rovněž tranzistor NMOS nebo i rezistor a ve druhé skupině (CMOS) je touto součástkou tranzistor PMOS.
a)
A
T1
T2
Y
0 V (L)
VYP
ZAP
Udd (H)
5 V (H)
ZAP
VYP
0 (L)
b) Obr. 38:
Invertor CMOS a) zapojení b) náhradní schéma
FEKT Vysokého učení technického v Brně
54
Integrované obvody CMOS mají v etapě VLSI (Very-large-scale integration) velmi významné zastoupení. Mají velkou výhodu v tom, že nespotřebovávají prakticky žádný příkon, když je obvod ve stavu L nebo v H. Invertor CMOS je na obr. 37. Obvody CMOS odebírají minimální energii na udržení stavu. Významným rysem těchto obvodů je skutečnost, že vstupní signál budí aktivní i zatěžovací tranzistory (každý aktivní tranzistor má svůj zatěžovací tranzistor). Úspora energie jde tedy na úkor plochy čipu, která je přibližně dvojnásobná než u obvodů NMOS. Invertor CMOS je tvořen sériovým spojením NMOS a PMOS tranzistorů obohacovacího typu. Jejich kolektory jsou spojeny a tvoří výstupní elektrodu. Vstup je vytvořen spojením obou hradel obr. 37 Když A = 0 V, pak UGS1 = 0 V (tj. na hradle tranzistoru NMOS je nulové napětí) a T1 je uzavřen. Ovšem na hradle tranzistoru T2, tj. PMOS je záporný potenciál vůči jeho emitoru, tj. UGS2 = -UDD a proto je tranzistor T2 otevřen. Uvažujme, že A = UDD, pak UGS1 = UDD , tzn. tranzistor T1 je otevřen. Na hradle tranzistoru T2 je potenciál vzhledem k jeho emitoru UGS2 = 0 a proto je T2 zavřen. Když A = L, pak UGS1 = 0 T1 je uzavřen UGS2 = -UDD T2 je otevřen, to znamená, že UDS2 = 0 a proto na výstupu Y bude Y = UDD, tj. logická úroveň H (ID1 = -ID2 = 0). Když A = UDD, tj. logická úroveň H, pak UGS1 = UDD T1 je otevřen (UGS1 = 0 T2 je uzavřen), to znamená, že UDS1 = 0 a proto na výstupu bude u0 = 0, tj. log 0 (ID1 = -ID2 = 0). V obou logických stavech H nebo L je vždy jeden z tranzistorů uzavřen, (T1 je otevřen, T2 uzavřen nebo obráceně), proto neteče invertorem žádný proud a spotřeba je teoreticky nulová. V reálných podmínkách, kdy hradlo CMOS je v L nebo v H, tečou hradlem pouze parazitní proudy (v závěrně polarizovaných přechodech pn), které jsou řádově 10 -9 až 10-10A a spotřeba je řádově nW/hradlo. 6.2.1
Stejnosměrná analýza invertoru CMOS
Při analýze budeme vycházet z převodní charakteristiky invertoru CMOS znázorněné na obr. 39.
Obr. 39:
Převodní charakteristika invertoru CMOS
1. Když je na vstupu invertoru log 0, tj. uvst = UIL a UIL UTN, bude tranzistor T1 (NMOS) nevodivý. Když dále platí, že UIL - UDD UTP, bude tranzistor T2 (PMOS) otevřen. Napětí na výstupu invertoru CMOS bude na vysoké úrovni (log 1). 𝑈0 = 𝑈𝑂𝐻 = 𝑈𝐷𝐷 − 𝑈𝑃
(11)
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
55
kde UP je úbytek napětí na tranzistoru T2 (PMOS), který lze vyjádřit vztahem: 1
𝑈𝑃 = 𝐼𝐷2 . 𝑅𝑃 ≅ 𝐼𝐷2 . 𝛽
𝑃 .[(𝑈𝐷𝐷 −𝑈𝐼𝐿 )−|𝑈𝑇𝑃 |]
,
(12)
kde ID2 je proud tekoucí tranzistorem T2 (PMOS) do tranzistoru T1 (NMOS) a do zátěže na výstupu invertoru. Když je invertor zatížen hradlem MOS, lze proud ID2 zanedbat (protože v tomto případě tečou pouze svodové proudy) a 𝑈𝑂𝐻 ≅ 𝑈𝐷𝐷 . Když proud ID2 nelze zanedbat, lze zvýšením hodnoty P pomocí rozměrů kanálu tranzistoru PMOS dosáhnout, že bude platit UP UDD a proto i 𝑈𝑂𝐻 ≅ 𝑈𝐷𝐷 . 2. Když je vstupu invertoru log 1, tj. ui = UIH a UIH UTN, bude tranzistor T1 (NMOS) otevřen. Když platí, že UIH - UDD UTP, bude tranzistor T2 (PMOS) zavřen. Napětí na výstupu invertoru bude na nízké úrovni 𝑈𝑂 = 𝑈𝑂𝐿 = 𝑈𝑁 ,
(13)
kde UN je úbytek napětí na tranzistoru T1 (NMOS) a lze jej vyjádřit vztahem: 𝑈𝑁 = 𝐼𝐷1 . 𝑅𝑁 ≅ 𝐼𝐷1 . 𝛽
1
𝑁 .[(𝑈𝐼𝐻 −𝑈𝑇𝑁 )]
,
(14)
kde ID1 je proud tekoucí tranzistorem T1. Když je invertor zatížen hradlem MOS, pak lze proud ID1 prakticky zanedbat (protože v tomto případě tečou pouze svodové proudy). Když je však na výstup invertoru CMOS připojeno např. bipolární hradlo, proud ID1 již nelze jednoduše zanedbat. V tomto případě napětí na výstupu invertoru U0L lze snížit zvýšením hodnoty N. Z uvedeného rozboru plyne, že logické úrovně u invertoru CMOS jsou blízké úrovni napájecího napětí UDD a úrovni země. Logický rozkmit hodnoty napětí dosahuje v tomto případě až velikosti srovnatelné s hodnotou UDD. To je jedna z velkých předností hradel CMOS. Hodnoty šumových imunit dosahují rovněž vysokých hodnot a pohybují se ≈ 𝑈𝐷𝐷 /2, což je další velká výhoda hradel CMOS. V průběhu ustáleného stavu (log 1 nebo log 0) teče hradlem CMOS pouze svodový proud ISV a stejnosměrný ztrátový příkon je roven: 𝑃𝐷𝐶 = 𝑈𝐷𝐷 . 𝐼𝑆𝑉
(15)
Minimální hodnota napájecího napětí UDD, při které hradlo CMOS může pracovat ve funkci logického členu je určena hodnotami prahových napětí tranzistorů NMOS a PMOS. 𝑈𝐷𝐷𝑚𝑖𝑛 = 𝑈𝑇𝑁 + |𝑈𝑇𝑃 |.
(16)
Co se týká převodní charakteristiky, snažíme se, aby měla co největší strmost a pravoúhlé ohyby. Takový tvar zaručuje dobrou stabilitu invertoru v klidových bodech a velkou šumovou imunitu. Při 𝑢𝑖 = 𝐿 je aktivní tranzistor nevodivý a zatěžovací tranzistor je vodivý, v důsledku toho výstupní napětí 𝑢0 = 𝑢𝑜𝑑 ≅ 𝑈𝐷𝐷 . Při 𝑢𝑖 = 𝐻 je tomu naopak. Proud I protéká přes invertor (přes oba pootevřené tranzistory) pouze v čase přechodů vstupního napětí mezi úrovněmi H a L. Šumová imunita invertoru CMOS se rovná prahovému napětí. Strmá část charakteristiky není lineární, nýbrž je složena ze dvou parabolických úseků. Rozkmit logického signálu je prakticky roven napájecímu napětí. Z principiálního hlediska mohou obvody CMOS pracovat v širokém rozmezí napájecího napětí (např. 3 až 15 V).
FEKT Vysokého učení technického v Brně
56 6.2.2
Šumová imunita
Šum u digitálních obvodů nebo systémů vyjadřuje nechtěné změny napětí na místech, kde je požadována určitá logická úroveň. Šum je do příslušných uzlů přenášen pomoci nežádoucích kapacitních a induktivních vazeb. U IO jsou jedním z nejčastějších zdrojů šumu sériové indukčnosti a rezistence v přívodech země a napájení. Příliš velké šumové napětí způsobuje chyby v logické funkci obvodu. U IO obvodů je tedy zaveden pojen šumová imunita NM (Noise Margin), která je definována takto: 𝑁𝑀𝐿 = 𝑈𝐼𝐿 − 𝑈0𝐿 , (17) 𝑁𝑀𝐻 = 𝑈0𝐻 − 𝑈𝐼𝐻 ,
(18)
a) Pro nasycený invertor je: šumová imunita log. 0 rovna 𝑁𝑀𝐿 = 𝑈𝐼𝐿 − 𝑈0𝐿 = 2,5 − 2,0 = 0,5𝑉,
šumová imunita log. 1 𝑁𝑀𝐻 = 𝑈0𝐻 − 𝑈𝐼𝐻 = 3,8 − 4,0 = −0,2𝑉.
b) Pro nenasycený invertor: 𝑁𝑀𝐿 = 2,5 − 1,7 = 0,8𝑉 𝑁𝑀𝐻 = 5,7 − 4,7 = 1,0𝑉.
c) Pro ochuzený invertor: 𝑁𝑀𝐿 = 2,6 − 0,5 = 2,1𝑉 𝑁𝑀𝐻 = 5,8 − 3,4 = 2,4𝑉.
Hodnoty napětí U0H, U0L, UIH, UIL se určí pro jednotlivé invertory z převodních charakteristik na obr. 40 v bodech A a B, ve kterých má tečna směrnici= –1. Z uvedených hodnot lze stanovit šumovou imunitu.
Obr. 40:
Převodní charakteristika
Vzhledem ke kvantifikaci napětí je zřejmé, že se šum na výstup vůbec nepřenese, pokud bude šumové napětí na vstupu hradla menší než NML respektive NMH. Tato vlastnost je jedna ze základních odlišností digitálních systémů od systému analogových, kde je naopak šum akumulován. V dobře fungujícím digitálním systému je šum při průchodu jednotlivými stupni utlumen, zatímco logické hodnoty jsou vždy obnoveny do původní hodnoty. Pro určení
57
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
šumové imunity stačí znát maximální a minimální vstupní a výstupní úrovně U IL, UIH, UOH, UOL. 6.2.3 Stanovení výstupních úrovní Pro invertor CMOS platí, že vzhledem ke spojení řídicích elektrod obou tranzistorů (typu N a P) bude vždy jeden z tranzistorů uzavřen. Jelikož druhý tranzistor, u kterého existuje plně vodivý kanál, je spojen do série s tranzistorem v nevodivém stavu, znamená to, že touto kombinací může téci pouze zanedbatelný svodový proud. Jednou ze základních vlastností logických hradel v technologii CMOS je, že u nich v klidovém stavu neexistuje vodivé spojení mezi napájením a zemí. Jelikož úbytek napětí způsobený svodovým proudem je opravdu zanedbatelný, můžeme předpokládat, že platí UOL = 0 a UOH = UDD (19) 𝑈𝑂𝐿 = 0 𝑎 𝑈𝑂𝐻 = 𝑉𝐷𝐷 Uvažujme konkrétní případ. Napájecí napětí UDD = 5 V, prahové napětí NMOS tranzistoru UTN = 2 V; PMOS tranzistoru UTP = -2 V. Předpokládejme, že i proudové faktory K a poměr W/L jsou pro oba tranzistory stejné. Z převodní charakteristiky na obr. 39 je patrné, že pro ui 2 V je T1 uzavřen, napětí UGS2 -3 V T2 je otevřen, výstupní napětí pro tento případ je u0 = UDD = 5 V. Podobně pro ui 3, V UGS2 -2 V (UGS2 -2 V) T2 je uzavřen, ovšem UGS1 3V T1 je otevřen a napětí na výstupu u0 = 0. Převodní charakteristika je podobná ideální charakteristice při ui = 2,5 V, u0 = UDD/2 = 2,5 V.
Obr. 41:
Závislost proudu ID na vstupním napětí Uvst
Tranzistory T1 a T2 teče proud pouze v rozsahu vstupních napětí (2 ui 3), tj. při přepínání tranzistorů, tj. v dynamickém režimu, jak je patrné z obr. 41, který znázorňuje závislost napájecího proudu na vstupním napětí uvst. 6.2.4 Stanovení vstupních úrovní Napětí UIL a UIH jsou definována jako body na převodní charakteristice, pro které platí 𝑑𝑈𝑂 = −1 . 𝑑𝑈𝐼
(20)
Při vstupním napětí UIL nebo UIH je CMOS invertor ve stavu, kdy jeden z tranzistorů je v lineární oblasti a druhý v saturaci. Můžeme tedy použít náhradní zapojení na obr. 42. Maximální a minimální úroveň vstupního napětí určíme ze skutečnosti, že proudy oběma tranzistory se musí rovnat.
FEKT Vysokého učení technického v Brně
58
Pro vyjádření proudu IDS ve třech oblastech činnosti tranzistoru můžeme napsat zjednodušené odvození následujících vztahů: 0 UGS − UTR ≤ 0 2 𝑈𝐷𝑆 IDS (21) 0 < 𝑈DS < (UGS − UTR ) , )𝑈𝐷𝑆 − 𝛽 [(𝑈 − 𝑈 ] 𝐺𝑆 𝑇𝑅 = 2 𝛽 0 < (UGS − UTR ) < UDS ∗ (𝑈𝐺𝑆 − 𝑈𝑇𝑅 )2 2 kde UTR je prahové napětí a UDS a UGS jsou napětí mezi elektrodami tranzistoru Drain – Source a Gate-Source. Zesilovací činitel závisí na parametrech výrobního procesu a rozměrech tranzistoru a pro jeho výpočet platí 𝜇𝜀 𝑊 𝛽= , (22) 𝑇𝑂𝑋 𝐿 kde L je délka a W šířka kanálu tranzistoru, je pohyblivost nosičů náboje v kanále tranzistoru (elektronů pro NMOS nebo děr pro PMOS) a je dielektrická konstanta (=ro), která pro Si je r=3,9. Použijeme-li pro proud tranzistoru v lineární oblasti a v saturaci výraz (21), můžeme pro UIL psát −𝛽𝑃 [(𝑈GSP − UTP ) 𝑈DSP −
UDSP 2 𝛽𝑁 ] = (𝑈𝐺𝑆𝑁 − 𝑈𝑇𝑁 )2 , 2 2
(23)
po substitucích za UGSP= (UIN-UDD), UGSN=UIN, UDSN=UO a UDSP = UO-UDD) lze vyjádřit UO ve tvaru 1
𝑈𝑂 = (𝑈IN − UTP ) + [(𝑈IN − UTP
)2
2 𝑈𝐷𝐷 𝛽𝑁 (𝑈𝐼𝑁 − 𝑈𝑇𝑃 )2 ] − 2 (𝑈𝐼𝑁 − − 𝑈𝑇𝑃 ) 𝑈𝐷𝐷 − 2 𝛽𝑃
Po derivaci podle rovnice (20) a zavedení substituce 𝑥 =
βN βP
(24)
, dostaneme pro konkterétní
zadané hodnoty UTN = 1 V, UTP = -1 V a UDD = 5 V x UIL x − 4 + 6√x + 3 (25) pro x > 0, x 1 = x−1 17 pro x = 1 8 Vzhledem k tomu, že podle (19) je UOL = 0, bude podle (17) NML = UIL. Velikost šumové imunity NML tedy určíme přímo z výrazu (25). Pro druhé náhradní zapojení na obr. 42 platí rovnice 2 𝛽𝑃 𝑈𝐷𝑆𝑁 (𝑈𝐺𝑆𝑃 − 𝑈𝑇𝑃 )2 = −𝛽𝑁 [𝑈𝐷𝑆𝑁 (𝑈𝐺𝑆𝑁 − 𝑈𝑇𝑁 ) − ] 2 2
(26)
po stejných substitucích dostáváme 1
2 𝛽𝑁 (𝑈𝐼𝑁 − 𝑈𝐷𝐷 − 𝑈𝑇𝑃 )2 ] 𝑈𝑂 = (𝑈IN − UTN ) − [(𝑈𝐼𝑁 − 𝑈𝑇𝑁 )2 − 𝛽𝑃
(27)
po derivaci podle vztahu (20), substituci za x a dosazením stejných hodnot za UTN, UTP a UDD jako u UIL můžeme pomoci vztahu (17) a (18) přímo určit hodnotu šumové imunity.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
59
1 1 x x − 4 + 6√ 1 pro x > 0, x 1 (28) UMH x+3 = 1 x−1 17 pro x = 1 8 Závislost šumové imunity na parametru x je znázorněna na obr. 42. Jelikož tranzistorů závisí podle (22) také na rozměrech tranzistorů, lze z této závisloti přímo určit změnu šumové imunity, nebo případné elektrické nesymetrie logických hradel.
Obr. 42:
Obr. 43:
Náhradní zapojení invertoru CMOS
Závislost šumové imunity na parametru X
6.3 Zpoždění logických hradel Modely, na které se obvykle odvoláváme v zadáních pro logické simulátory, musí obsahovat údaje o zpoždění. Zpoždění je ovšem syntetická veličina, která v sobě zahrnuje vliv mnoha parametrů. Údaje o zpoždění musí být do simulátoru zadány návrhářem pro každý typ technologie a při každé změně rozměrů tranzistorů.
FEKT Vysokého učení technického v Brně
60
Jedním ze způsobů určení hodnot zpoždění je elektrická simulace. Z výsledků časové analýzy lze pro každý typ hradla velmi dobře odečíst potřebná zpoždění. Tímto způsobem je zpoždění určováno zejména při vytváření knihoven součástek. Při elektrické simulaci lze také jednoduše modelovat vliv změn. Můžeme tak získat i hodnoty zpoždění v závislosti na strmosti náběžné hrany vstupního pulzu, na celkové zátěži logického hradla atd. V mnoha případech, jako je vytváření schématu a ověřování jeho úprav, slouží logický simulátor jako nástroj pro orientační zjišťování funkce. Při takovémto vícenásobném opakování analýz je nutná zejména rychlost a jednoduchost. Určování velikosti zpoždění logických hradel elektrickou simulací by proto tyto práce značně zpomalilo. Navíc nejsou při vytváření schématu většinou známy konečné velikosti tranzistorů. Použití elektrické simulace při velmi nepřesných vstupních údajích potom ztrácí svoje opodstatnění. Proto je nutné, aby návrhář na základě znalostí funkce logických hradel dovedl určit hodnoty zpoždění pomocí jednoduchých vztahů. Určení náběžné a sestupné hrany Na obr. 46 je znázorněno, jak jsou definovány základní časové údaje používané při práci s pulzními signály. Jedná se o sestupnou a náběžnou hranu, jejichž doby tr a tf jsou určovány mezi úrovněmi signálu 10 % a 90 % a doby zpoždění tPHL a tPLH mezi dvěma signály, které se měří při úrovni 50 %. Určení tf lze ukázat na příkladu invertoru, který je nejjednodušším logickým hradlem v technologii CMOS. Elektrické schéma invertoru s kapacitní zátěží CL je na obr. 44.
a)
Obr. 44: Elektrické schéma invertoru
b)
Obr. 45: Náhradní zapojení invertoru
Ve výchozím stavu je tranzistor T2 otevřen a kapacitor CL je nabit na plnou hodnotu napájecího napětí VDD. Při změně vstupního napětí dojde k otevření tranzistoru T1 a postupnému vybíjení kapacity zátěže. Na obr. 45 jsou dvě náhradní zapojení, kde tranzistor T1 je nahrazen zdrojem proudu pro oblast saturace a rezistorem při činnosti v lineární oblasti.
61
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
Obr. 46: Definice pulzních parametrů Na obr. 47 je znázorněna voltampérová charakteristika tranzistoru T1, na které je bodem A znázorněn výchozí klidový stav (UO = UDD, UGS = 0 a IDS = 0). Po skokové změně vstupního napětí přeskočí pracovní bod do bodu B na charakteristiku, která odpovídá VGS = VDD. Počátek vybíjení probíhá ve směru šipek z bodu B do hod u C. V tomto bodě je již pokles výstupního napětí takový, že je splněna podmínka UO = UDS = (UGS - UT) a při dalším vybíjení bude tranzistor T1 v lineární oblasti.
Obr. 47: Voltampérová charakteristika tranzistoru T 1
Vzhledem ke dvěma oblastem činnosti tranzistoru je nutné rozdělit i čas tf na dva úseky: b) tf1 – napětí U0 poklesne z 0,9UDD na hodnotu (UDD – UT) c) tf2 – napětí U0 klesne z hodnoty (UDD – UT) na 0,1UDD Pro obě náhradní zapojení na obr. 45 platí, že proud z kapacitní zátěže se rovná proudu tranzistorem T1 𝑑𝑈0 𝐼𝐷𝐶 = 𝐶𝐿 . (29) 𝑑𝑡 Integrací (29) dostaneme pro výpočet zpoždění vztah 𝐶𝐿 𝑡𝑓 = ∫ 𝑑𝑈 𝐼𝐷𝑆 0
(30)
FEKT Vysokého učení technického v Brně
62
Dosadíme-li do (30) příslušný výraz pro IDS v saturační oblasti, určíme tf1 řešením integrálu 0,9𝑈𝐷𝐷 2𝐶𝐿 2𝐶𝐿 (𝑈𝑇𝑁 − 0,1𝑈𝐷𝐷 𝑡𝑓 = ∫ 𝑑 𝑈0 = (31) 2 𝛽𝑁 (𝑈𝐷𝐷 − 𝑈𝑇𝑁 ) 𝑈𝐷𝐷−𝑈𝑇𝑁 𝛽𝑁 (𝑈𝐷𝐷 − 𝑈𝑇𝑁 )2 Použijeme-li výraz pro IDS v lineární oblasti, můžeme po jeho dosazení do (30) získat řešením integrálu vztah pro tf2 𝐶𝐿 𝑈𝐷𝐷 −𝑈𝑇𝑁 𝑑𝑈0 𝑡𝑓2 = ∫ 𝛽 0,1𝑈𝐷𝐷 𝑈2 [𝑈0 (𝑈𝐷𝐷 − 𝑈𝑇𝑁 ) − 20 ] (32) 2𝐶𝐿 𝑈𝑇𝑁 − 0,1𝑈𝐷𝐷 1 19𝑈𝐷𝐷 − 20𝑈𝑇𝑁 = [ + 𝑙𝑛 ( )] 𝛽𝑁 (𝑈𝐷𝐷 − 𝑈𝑇𝑁 ) (𝑈𝐷𝐷 − 𝑈𝑇𝑁 ) 2 𝑈𝐷𝐷 U většiny technologií CMOS můžeme předpokládat, že platí 𝑈𝑇𝑁 = 0,2. 𝑈𝐷𝐷 Pro celkovou délku sestupné hrany potom platí vztah 3,7𝐶𝐿 𝑡𝑓 = 𝑡𝑓1 + 𝑡𝑓2 = 𝛽𝑁 𝑈𝐷𝐷 Stejným postupem lze odvodit obdobný vztah i pro délku náběžné hrany 3,7𝐶𝐿 𝑡𝑟 = 𝛽𝑁
(33)
(34)
(35)
Určení doby zpoždění tPLH nebo tPLH rozložíme do dvou kroků: Nejprve budeme předpokládat, že tvar vstupního signálu se blíží ideálnímu pulzu a jeho náběžné a sestupné hrany tedy budou zanedbatelně krátké. Pro stanovení tPHL můžeme potom použít stejný postup jako pro tf s tím rozdílem, že meze při integraci budou od 𝑈𝐷𝐷 do (𝑈𝐷𝐷 − 𝑈𝑇𝑁 ) pro saturaci a od (𝑈𝐷𝐷 − 𝑈𝑇𝑁 ) do 0,5𝑈𝐷𝐷 pro lineární oblast. Za předpokladu (33) potom dostaneme 1,62𝐶𝐿 = (36) 𝛽𝑁 𝑈𝐷𝐷
a)
𝑡𝑃𝐻𝐿
Vstupní signál má ve skutečnosti vždy určitou náběžnou hranu tr, jejíž délka bude zvětšovat hodnotu zpoždění z (36). Toto zvětšení je obtížné určit analyticky. Výsledky simulací ukázaly, že pro vyjádření vlivu náběžné hrany můžeme výraz (36) upravit takto 1,62𝐶𝐿 = + 0,257𝑡𝑟 (37) 𝛽𝑁 𝑈𝐷𝐷
b)
𝑡𝑃𝐻𝐿
Obdobný vztah bude platit i pro druhou dobu zpoždění 1,62𝐶𝐿 𝑡𝑃𝐿𝐻 = + 0,257𝑡𝑟 𝛽𝑁 𝑈𝐷𝐷
(38)
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
63
6.4 Značení logických obvodů Každý logický obvod má přesně dané kódové označení, ze kterého je patrná nejen jeho základní funkce, ale také jeho typické parametry. V dnešní době se můžete setkat s následujícím značením logických obvodů (barevně jsou vyznačeny parametry určující základní funkci obvodu). Jako příklad uvádíme značení obvodu SN74LVC1G00DBVR SN
74
LVC
1
2
3
1G 4
5
00 6
7
8
DBV
R
9
10
1. Standartní prefix (Standart Prefix) obvykle daný konkrétním výrobcem, 2. teplotní rozsah (Temperature Range) 54 – Vojenský průmysl, 74 – běžné použití, 3. typ produktové řady (Family) - LVC, HC, HCT atd., komplexní výčet je uveden v následující kapitole, 4. speciální funkce (Special Features) C – nastavitelné napětí UDD (Configurable VCC) umožňuje propojení systémů pracujících na různých napěťových úrovních, většinou obousměrně, D – úrovňové diody (Level-Shifting Diode - CBTD) umožňuje jednosměrné propojení systémů pracujících na různých napěťových úrovních, H – Bus Hold (ALVCH) zajišťují definovanou úroveň u nezapojených (plovoucích) vstupů, K – Ochranné obvody (Undershoot-Protection Circuitry) - eliminují nežádoucí pokles signálu pod definovanou úroveň, R – Tlumící rezistory (Damping Resistor on Inputs/Outputs - LVCR) – omezují proud při poklesu napětí a zvyšují šumovou imunitu a kvalitu přenášeného signálu, S – Schottkyho upínací diody (Schottky Clamping Diode - CBTS) – eliminují nežádoucí pokles signálu pod definovanou úroveň, podobně jako ochranné obvody (K), Z – bezpečné zapnutí (Power-Up 3-State - LVCZ) – zajišťuje platné výstupní úrovně během zapnutí nebo vypnutí napájení. 5. Počet hradel v pouzdře (Bit Width) 1G – jedno hradlo, 2G – dvě hradla, 3G – tři hradla, 8 – Octal IEEE 1149.1 (JTAG), 16 – Widebus™ (16, 18 a 20 bitů), 18 – Widebus IEEE 1149.1 (JTAG), 32 – Widebus+™ (32 a 36 bitů). 6. Rozšíření (Options) – doplňkové funkce Neuvedeno – bez rozšíření, 2 – Series Damping Resistor on Outputs,
64
FEKT Vysokého učení technického v Brně 4 – Level Shifter, 25 – 25-Ω Line Driver. 7. Funkce (Function) 00 – 4x dvouvstupové hradlo NAND, 244 – Neinvertující budič, 374 – klopný obvod D (Flip-Flop), Atd. 8. Revize obvodu (Device Revision) Neuvedeno – bez dalších revizí, A-D. 9. Pouzdra (Packages) komerční D, DW – Small-Outline Integrated Circuit (SOIC), DB, DBQ, DCT, DL – Shrink Small-Outline Package (SSOP), DBB, DGV – Thin Very Small-Outline Package (TVSOP), DBQ – Quarter-Size Small-Outline Package (QSOP), DBV, DCK, DCY, PK – Small-Outline Transistor (SOT), DCU – Very Thin Shrink Small-Outline Package (VSSOP), DGG, PW – Thin Shrink Small-Outline Package (TSSOP), FN – Plastic Leaded Chip Carrier (PLCC), GGM, GKE, GKF, ZKE, ZKF – MicroStar BGA™, Low-Profile Fine-Pitch Ball Grid Array (LFBGA), GQL, GQN, ZQL, ZQN – MicroStar Jr.™, Very-Thin-Profile Fine-Pitch Ball Grid Array (VFBGA), N, NT, P – Plastic Dual-In-Line Package (PDIP), NS, PS – Small-Outline Package (SOP), PAG, PAH, PCA, PCB, PM, PN, PZ – Thin Quad Flatpack (TQFP), PH, PQ, RC – Quad Flatpack (QFP), PZA – Low-Profile Quad Flatpack (LQFP), RGY – Quad Flatpack No Lead (QFN), YEA, YZA – NanoStar™ and NanoFree™, Die-Size Ball Grid Array (DSBGA†), vojenské, FK – Leadless Ceramic Chip Carrier (LCCC), GB – Ceramic Pin Grid Array (CPGA), HFP, HS, HT, HV – Ceramic Quad Flatpack (CQFP), J, JT – Ceramic Dual-In-Line Package (CDIP), W, WA, WD – Ceramic Flatpack (CFP). 10. Balení (Tape and Reel)
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
65
6.5 Přehled vyráběných produktových řad V dnešní době se logické obvody vyrábí ve velkém množství různých technologických variant. Je to dáno tím, že některé technologie musí podporovat zpětnou kompatibilitu s již stávajícími obvody, jiné jsou naopak zaměřeny na nízký příkon hradla, malé napájecí napětí nebo malé zpoždění signálu při průchodu hradlem. V následujícím přehledu jsou uvedeny často používané technologie: Logické obvody HC/HCT Obvody CMOS rychlé řady HC a HCT jsou bezesporu nejrozšířenějšími používanými obvody posledních let. Spojují výhody klasické řady obvodů TTL a CMOS. Vyznačují se vysokou rychlostí (pro většinu běžných aplikací dostačující), nízkým příkonem, vysokou šumovou imunitou a v neposlední řadě také nízkou cenou. Proto jsou velmi hojně využívány jako dokonalejší náhrada obvodů TTL logiky (HCT – vstupy kompatibilní s TTL) a obvodů CMOS (HC – vstupy kompatibilní s logikou CMOS). Příkon obvodů 74HC je významný především v dynamickém provozu. Ve statickém režimu je příkon v průměru 10 µW pro elementární hradlo. Změna teploty má také velký vliv na potřebný příkon obvodu. Například při zvýšení teploty z 25 na 85 oC se napájecí proud při UCC = 6 V zvětší z 2 µA na 20 µA (příkon se zvětší z 12 µW na 120 µW). Další zvýšení na maximální přípustnou teplotu 125 oC se projeví napájecím proudem 40 µA a odpovídajícím ztrátovým výkonem 240 µW. Obvody řady 74HCT jsou určeny k přímé návaznosti na obvody TTL. Jejich vstupní díl je navržen tak, aby respektovaly vstupní napětí uIL < 0,8 V a uIH > 2 V pro obě napěťové vstupní úrovně. V obou případech vstupní proudy nepřesáhnou hodnotu 1 µA. Proto mohou obvody 74HCT snadno nahradit obvody 74LS pouhou záměnou v objímce, přitom se ztrátový výkon redukuje až na pětinu. Je nutno upozornit, že se mění poněkud dynamické parametry a v kritických aplikacích je nutná kontrola. b) Logické obvody AC/ACT – Advanced CMOS Logic jsou vyrobeny v technologii CMOS 1 µm. Obvody typu ACL vynikají nízkou spotřebou, ale zároveň jsou schopné pracovat s výstupním proudem až 24 mA. Vstupy technologie AC jsou kompatibilní s CMOS logikou a ACT umožňuje navázání obvodů v klasické logice TTL. Řada 74AC představuje skupinu rychlých obvodů CMOS se vstupními úrovněmi CMOS a posílenými výstupy CMOS, které mohou budit zátěž proudy až ± 24 mA. Doba zpoždění signálu tp je stejná nebo kratší než u obvodů ALS TTL, avšak mají až trojnásobně vyšší hodinový kmitočet. Tyto obvody se vyznačují velkou odolností vůči parazitní kapacitě zátěže a)
Typické vlastnosti těchto obvodů jsou c)
velmi nízká spotřeba, typické zpoždění 5 ns, napájecí napětí 1,5 V až 5,5 V (AC) a 4,5 V až 5,5 V (ACT), výstupní proud (max.) 24 mA, HC/HCT – High-Speed CMOS Logic.
Logické obvody AHC Advanced High-speed CMOS. Nabízí rovněž výbornou šumovou imunitu, ale navíc má pouze poloviční statický příkon oproti obvodům HC.
Typické vlastnosti těchto obvodů jsou
velmi nízká spotřeba, typické zpoždění 10 ns, vhodná náhrada za LS-TTL s menší spotřebou,
FEKT Vysokého učení technického v Brně
66
napájecí napětí 2,0 až 6,0 V.
d)
Logické obvody AHC/AHCT – Advanced High-Speed CMOS představují vylepšení obvodů HC a HCT, jejich typické vlastnosti jsou přibližně poloviční spotřeba než u HCMOS, maximální statický proud je asi 40 µA, vyniká nízkým šumem (malými proudovými špičkami) při přepínání, zpoždění je asi 5 ns, výstupní proud asi 8 mA (pro napájecí napětí 5V), může pracovat pro napájecí napětí 3,3 i 5 V, při použitém napájecím napětí 3,3 V je vstup díky ochranným diodám odolný vůči napětí přesahující 3,3 V.
e)
Logické obvody řady ALVC – Advanced Low-Voltage CMOS Technology Logic mohou pracovat při nízkém napájecím napětí, až 3,3 V. Vynikají vysokou rychlostí a nízkou spotřebou. Využívány jsou zejména pro obvody v technice PC a periférií.
Typické vlastnosti technologie ALVC jsou velmi nízká spotřeba, statický proud v režimu standby je 40 mA, typické zpoždění 2 ns, výstupní proud až 24 mA, rozsah napájecích napětí 1,2 až 3,6 V, vstupy jsou odolné vůči napětí až 5 V. f) Obvody AVC – Advanced Very-Low-Voltage CMOS Logic umožňují dosáhnout velmi malého zpoždění (2 ns) při nízkém napájecím napětí 2,5 V. Typické vlastnosti obvodů AVC jsou napájecí napětí 1,2 až 3,6 V, zpoždění 1,7 ns pro napájecí napětí 3,3 V a 3,2 ns pro 1,8 V, nízký statický a dynamický příkon, vstup je odolný vůči napětí do 3,6 V, standardní maximální výstupní proud (24 mA), funkce snížené spotřeby. Dalším vylepšením technologie AVC jsou logické obvody AUC - Advanced UltraLow-Voltage CMOS Logic, které dále umožňují zmenšit napájecí napětí až na 0,8 V. g)
Logické obvody řady LV – Low-Voltage CMOS Technology Logic technologie CMOS s nízkým napájecím napětím umožňuje pracovat při napájecím napětí 3,3 V i 5 V.
Typické vlastnosti obvodů LV jsou široký rozsah napájecího napětí 1,0 až 5,5V, typické zpoždění 9 ns pro Ucc = 3 V, pro napájecí napětí 4,5 V umožňují dosáhnout dvojnásobné rychlosti, než řada HCMOS, výstupní proud je asi 8 mA pro Ucc = 3 V a 12 mA pro Ucc = 4,5 V, snadná náhrada obvodů HCMOS, umožňují snížení napájecího napětí z 5 V na 3,3 V při zachování rychlosti. Číslicové obvody, které mají ve zkratce písmeno T (např. 54HCT/74HCT) jsou konstruovány tak, aby mohly přímo nahradit obvody TTL a bez problémů s nimi
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
67
spolupracovat, mají shodné rozložení vývodů na objímce jako odpovídající typy TTL, mají malé napájecí napětí UCC = 2 až 6 V, jejich výstupní úrovně odpovídají požadavkům na buzení obvodů jak CMOS tak i TTL, avšak z hodnot pro vstupní napětí uIL < 0,2 UCC a uIH > 0,7 UCC je zřejmé, že se dají bez potíží budit z obvodů CMOS, ale že zaručované výstupní napětí obvodů TTL, uOH > 2,4 V nebude stačit ke správnému vybuzení obvodu CMOS, u něhož se při stejném napájecím napětí UCC = 5 V požaduje vstupní napětí uIH ≥3,5 V. Tato potíž se však dá u řady 54HC/74HC odstranit jednoduše tím, že se výstup předřazeného členu TTL připojí přes pomocný rezistor s odporem přibližně 10 k na +5 V a zvýší se tak jeho uOH. Jinou možností je použít obvod z řady 54HCT/74HCT, u níž jsou vstupy vybaveny převodníkem napěťových úrovní, který umožňuje přímé buzení těchto obvodů z výstupů TTL. [1,6,8,9,11,12,13] ZVLÁŠTNÍ ZACHÁZENÍ S OBVODY CMOS. Tranzistory MOS v logických obvodech CMOS mají tenkou vrstvičku izolantu mezi řídicí elektrodou a kanálem. Průrazné napětí této izolační vrstvy se pohybuje kolem 100 V. Jeho překročení vede vždy k nevratnému průrazu tranzistoru a tím ke zničení integrovaného obvodu. Výskyt nebezpečného napětí na vstupu integrovaného obvodu je zpravidla vázán na přivedení náboje statické elektřiny z objektu, s nímž přijde integrovaný obvod do styku, ať již během manipulace nebo při funkci. Proto se všechny unipolární obvody jistí na všech vstupech proti zničení speciálními ochrannými elementy. Avšak ani složitá opatření proti výskytu statické elektřiny nemohou v praxi zajistit spolehlivou ochranu unipolárních integrovaných obvodů. Navíc je známo, že výboj statické elektřiny nemusí integrovaný obvod viditelně poškodit, přitom však může podstatně ohrozit jeho spolehlivost v dalším provozu. Při montáži, oživování i zahořování elektronických zařízení, obsahujících integrované obvody CMOS, je potřeba dodržet určitá specifická pravidla. Opatřit podlahy a pracovní stoly vodivým povlakem, vodivou uzemněnou podložkou, používat vodivou obuv a nesyntetické oblečení, připojit na zem i pracovní zásobníky, které musí být vyrobeny z vodivých materiálů a uzemnit dokonce i obsluhu, a to kovovým náramkem spojeným přes rezistor s odporem 50 až 100 kΩ se zemí. Všechny zemnicí spoje mají jít krátkou cestou do společného zemnícího bodu. Současně je nutno zajistit, aby k manipulaci s deskami osazenými obvody CMOS docházelo pouze při odpojeném napětí. Musí-li být realizována výměna desek pod napětím, je nutno zajistit, aby zemní vodič byl odpojen jako poslední a připojen jako první. Při montáži integrovaných obvodů CMOS pájením přímo do desek je nutno dodržovat zásady výrobce a nepřekračovat dobu ani teplotu pájení, používat neagresivní doporučená tavidla, zavést řádné mytí po pájení a používat ochranné lakování (i v těchto případech však pozor na možnost vzniku statické elektřiny). Pájení je dovoleno jen na dolní zúžené části vývodu. Při ručním pájení je třeba používat uzemněnou páječku na malé napětí. Při teplotě hrotu páječky 300° C je doba pájení maximálně 10 s, při teplotě hrotu páječky 300 až 400° C se zkracuje na 5 s. Při vypájení obvodů má být teplota hrotu páječky 260° C a doba pájení maximálně 5 s. Při vkládání a vyjímání obvodů CMOS z desek s plošnými spoji musí být odpojeny všechny napájecí zdroje. Měřicí přístroje používané při oživování, či při opravách, musejí být také uzemněny. Při uvádění desek osazených obvody CMOS do chodu je nutno zajistit, aby nebylo pájeno na vývodech při připojeném napětí, neboť vlivem tepla i jiných vlivů dojde většinou ke zničení obvodu nebo ke zhoršení jeho vlastností. Kromě možnosti bezprostředního zničení obvodu přetížením diod vstupních ochran (snesou proud do 100 mA) je zde nebezpečí vyvolání tzv. tyristorového jevu, při němž obvod přestane fungovat a jeho odběr prudce stoupne. Pokud se obvod zvýšeným odběrem nezničí, např. přepálením některých vývodů na
FEKT Vysokého učení technického v Brně
68
čipu, je po vypnutí a opětovném zapnutí napájecího napětí jeho činnost obnovena, ovšem nelze již zaručit jeho spolehlivost. Zde je též třeba připomenout zásadu, že všechny vstupy obvodu, tedy i jeho nepoužitých částí musejí být ošetřeny připojením na definovanou úroveň vstupního signálu L nebo H (tj. na napětí 0 V nebo UDD). Na rozdíl od obvodů TTL, které většinou vyhodnotí nepřipojený vstup jako by byl připojen na úroveň H, se u obvodů CMOS nastaví na nepřipojeném vstupu nedefinované napětí z intervalu mezi USS a UDD, takže za nepříznivých okolností může dokonce dojít k přetížení obvodu nadměrným příčným proudem dvojice spínacích tranzistorů, který teče ze zdroje napájecího napětí. Tab. 11: Přehled vyráběných logických řad v bipolární i unipolární technologii TTL (74xx) True TTL 74L
Low power
74S
Schottky
74H
High speed
74LS
Low power - Schottky
74AS
Advanced - Schottky
74ALS
Advanced - Low power - Schottky
74F(AST)
Fast - (Advanced - Schottky)
74C CMOS...................check
Vcc levels
74HC (U)
High speed - CMOS (Unbuffered output)
74HCT
High speed - CMOS - TTL inputs
74AHC
Advanced - High speed - CMOS
74AHCT
Advanced - High speed - CMOS - TTL inputs
74FCT (-A)
Fast - CMOS - TTL inputs (speed variations)
74FCT (-T, -AT)
Fast - CMOS - TTL inputs (speed variations)
74AC
Advanced - CMOS
74ACT
Advanced - CMOS - TTL inputs
74FACT
AC, ACT (Q) series
74ACQ
Advanced - CMOS - Quiet outputs
74ACTQ
Advanced - CMOS - TTL inputs - Quiet outputs
Bus Driver Families 74ABT
Advanced - BiCMOS - Technology
74ABTE
ABT - Enhanced Transceiver Logic
74ABTH
Advanced - BiCMOS - Technology - bus Hold
74BCT
BiCMOS - TTL inputs
74BTL
Backplane - Transceiver - Logic
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
74GTL
Gunning - Transceiver - Logic
74GTLP
GTL (Motorola)
69
Low Voltage Families 74ALB
Advanced - Low Voltage - BiCMOS
74LV (U)
Low - Voltage (Unbuffered output)
74LVC (R) (U)
LV - CMOS (damping Resistor)(Unbuffered output)
74LVCH
Low - Voltage - CMOS - bus Hold
74ALVC
Advanced - Low - Voltage - CMOS
74LVT (R) (U)
LV - TTL (damping Resistor(Unbuffered output)
74LVTZ
Low - Voltage - TTL - High Impedance power-up
74ALVC (R)
ALV - CMOS (bus Hold) (damping Resistor)
74ALVCH
Advanced - Low - Voltage - CMOS - bus Hold
74LCX
LV - CMOS (operates with 3v & 5v supplies)
74VCX
LV - CMOS (operates with 1.8v & 3.6v supplies
4000
True CMOS (non-TTL levels)
Nejčastěji používané technologie dle [13] AC, ACT, AHC, AHCT, ALVC, AUC, AUP, AVC, FCT, HC, HCT, LV-A, LV-AT, LVC, TVC
ABT, ABTE, ALB, ALVT, BCT, HSTL, LVT
BTA, CB3Q, CB3T, CBT, CBT-C, CBTLV, FB, FIFOs, GTL, GTLP, JTAG, I2C, VME
ALS, AS, F, LS, S, TTL
Obr. 48: Zpoždění hradla tpd v závislosti na použité technologii a napájecím napětí
70
FEKT Vysokého učení technického v Brně
Obr. 49: Snižování napájecího napětí vlivem technologického pokroku [13]
Obr. 50: Vývojové řady integrovaných obvodů
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
71
7 Zásady navrhování digitálních obvodů a systémů Při návrhu digitálních systémů i standardních obvodů, z nichž jsou tyto systémy vytvořeny, je nutné logický návrh zapojení podřizovat vlastnostem použitých integrovaných obvodů. Pro úspěšný návrh není v mnoha případech postačující znát pouze logickou funkci, kterou logický obvod vykonává. Často je totiž žádoucí zvládnout a znát obvodovou činnost použitého integrovaného obvodu. Znalost obvodové funkce elementárních stavebních členů po logické i po elektrické stránce nám umožní snáze proniknout do činnosti složitějších digitálních integrovaných obvodů a systémů. V praxi se může často stát, že integrovaný obvod chceme použít v neobvyklé aplikaci, a ani katalogové údaje neposkytnou postačující informace. Pak nezbývá, než důkladně analyzovat činnost celého obvodu. Znalost elektrické funkce je užitečná i při diagnostice poruch v digitálních systémech. Je proto velkou chybou, že někteří návrháři digitálních systémů považují logický integrovaný obvod pouze za jakýsi blok, u kterého stačí znát jeho vstupní a výstupní chování. Celkový návrh a uspořádání navrhovaného celku však okamžitě jejich nevědomost prozradí. Úspěšně používat integrované obvody znamená osvojit si velmi obsáhlé spektrum vědomostí a rozsáhlé poznatky z praxe. Praktické zkušenosti spolu s pochopením fyzikální podstaty jevů v jednotlivých stavebních prvcích a jejich vzájemných interakcí pak ukáží, které obvykle doporučované aplikační zásady je nutné v dané situaci dodržet, a které lze obejít, popřípadě, které vlastnosti obvykle uváděné jako nevýhodné je možné s výhodou využít k dosažení potřebného efektu. Tento přístup se zpravidla odrazí v hospodárnosti návrhu, protože bezmyšlenkovité aplikování zásad vede sice téměř vždy k úspěchu, málokdy však k optimálnímu řešení.
7.1 Připojování vstupů digitálních obvodů Při návrhu elektronických přístrojů s logickými obvody je nutno dodržet požadované napěťové úrovně vstupních signálů a při větších vstupních proudech některých logických obvodů (až iIL = 2 mA) respektovat také omezení velikosti vnitřního odporu zdroje signálu. Kromě statických parametrů je rovněž potřeba respektovat minimální přípustnou strmost hran vstupního logického signálu a další parametry.
7.1.1 Ošetření nevyužitých vstupů U vícevstupových logických obvodů se musí věnovat péče vstupům, které nejsou funkčně využity. Nepoužité vstupy zásadně nelze ponechávat nepřipojené, neboť za těchto podmínek není přesně definována jejich vstupní logická úroveň. U standardních digitálních obvodů realizovaných v bipolární technologii se sice nepřipojený vstup nejčastěji chová jako by byl nastaven na úroveň H, ale má v tomto případě velmi nízkou odolnost proti rušení. U požadavků na rychlost odezvy těchto obvodů se navíc může projevit nežádoucím způsobem i zpoždění, způsobené nabíjecím procesem, vázaným na parazitní kapacitu nepřipojeného vstupu (např. emitoru víceemitorového vstupního tranzistoru T1 bipolárního obvodu). Časové zpoždění reakce výstupu činí u bipolárních obvodů přibližně 1 ns na každý nepřipojený vstup. Proto platí zásada neponechávat nevyužité vstupy logických obvodů nepřipojeny. Na obr. 51 jsou nakresleny základní způsoby ošetření nevyužitých vstupů. V podstatě připojíme nevyužitý vstup na zdroj napětí definované úrovně L nebo H tak, aby nebyla narušena logická funkce ošetřovaného obvodu. U vícevstupového obvodu NAND nebo AND musíme tedy nevyužité vstupy budit úrovní H. Můžeme to udělat např. tak, že připojíme
FEKT Vysokého učení technického v Brně
72
nevyužité vstupy přes rezistor na napájecí napětí. Velikost rezistoru RS je potom nutné volit s ohledem na použité součástky 𝑅𝑆𝑚𝑖𝑛 =
𝑈𝐷𝐷𝑃 −5,5
𝑅𝑆𝑚𝑎𝑥 =
𝑈𝐷𝐷𝑚𝑖𝑛 −2,4
1 𝑚𝐴 𝑛.𝐼𝐼𝐻
,
(39) ,
(40)
kde n je počet spojených vstupů, IIH je vstupní proud, UDDmin je minimální napájecí napětí, UDDP je maximální napětí. Nevyužitý vstup lze také připojit přímo na rozvod napájecího napětí UDD = 5 V, pokud je zaručeno, že toto napětí v žádném případě nepřekročí mezní hodnotu 5,5 V (tedy ani při zapínání a vypínání). Můžeme je však připojit i k výstupu nepoužitého invertoru, jehož vstup jsme připojili na společný vodič. V nejjednodušším případě můžeme spojit nevyužité vstupy se vstupy použitými. U obvodů NOR nebo OR je to jinak: aby nebyla narušena jejich logická funkce, je nutno jejich nepoužité vstupy připojit na úroveň L, obvykle tak, že je připojíme na společný vodič. Můžeme ovšem stejně jako v předchozím případě připojit jednoduše nevyužité vstupy paralelně k použitým.
𝐲 = 𝐀. 𝐁
𝐲=𝐀+𝐁
Obr. 51: Ošetřování nevyužitých vstupů logických obvodů Nevyužité vstupy však musíme ošetřovat nejen u vícevstupových hradel, ale i u ostatních logických obvodů, jako jsou například různé druhy čítačů, monostabilních klopných obvodů a podobně. Správné ošetření nevyužitých vstupů je důležité i u obvodů CMOS, pro které je typická velká vstupní impedance (např. 1012 Ω) a do jejichž nepřipojených vstupů se proto snadno může indukovat rušivý signál. Nevyužité vstupy se připojují na napájecí napětí UDD, na společný vodič nebo na použitý vstup, jinak by výstup mohl mít nedefinovanou úroveň nebo by se dokonce mohl několikanásobně zvýšit proudový odběr z napájecího zdroje (viz. obr. 41 závislost napájecího proudu obvodu CMOS pro napětí blízké rozhodovací úrovni). Určení, kam připojit nevyužitý vstup není zcela libovolné, protože se jím dá ovlivnit zatížitelnost výstupu obvodu. Můžeme si uvést příklad, kdy je čtyřvstupový logický člen NAND použit jako dvouvstupový (obr. 52). Nechť vstupy A a D jsou nevyužity. U členu NAND můžeme nevyužité vstupy připojit buď na rozvod napájecího napětí UDD (u hradel NOR na společný vodič) nebo je připojit paralelně k použitým vstupům. Připojíme-li vstupy A, D na UDD, budou tranzistory TA' a TD' trvale otevřeny, kdežto tranzistory TA a TD budou naopak trvale uzavřeny. Přivedeme-li na zbylé vstupy logické proměnné v kombinaci C = L, B = H, bude z horní čtveřice tranzistorů otevřen pouze jediný, a to TCP. Je zřejmé, že z výstupu obvodu můžeme v tomto případě odebírat proud odpovídající proudové vydatnosti jednoho spínacího
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
73
tranzistoru, tedy jmenovitý výstupní proud členu v úrovni H. Spojíme-li však vstupy A a B paralelně a podobně C a D podle obr. 52, zdvojnásobí se sice vstupní kapacita takto vytvořených dvojic, ale při stejné vstupní kombinaci C = L, B = H budou v tomto případě z horní čtveřice tranzistorů otevřeny dva, TCP a TDP. Proudová zatížitelnost výstupu takto zapojeného obvodu se tím zvětší na dvojnásobek.
Obr. 52: Ošetřování nevyužitých vstupů logických obvodů Připojení nevyužitých vstupů u obvodů CMOS na UCC u hradel NAND nebo na společný vodič u hradel NOR tedy pouze umožní správnou logickou funkci zbývajících vstupů, proudová zatížitelnost výstupu se však přitom nezmění. Připojením nevyužitých vstupů k použitým se patřičně zvětšuje proudová zatížitelnost výstupu obvodu CMOS (přesněji se zvětšuje iOH u členů NAND a iOL u členů NOR) a z výstupu vícevstupých hradel lze budit i větší zátěže. Proudová zatížitelnost výstupu, jemuž je dodáván proud přes sériově zapojené tranzistory TAN až TDN (tj. iOL u členů NAND a iOH u členů NOR) se však tímto způsobem nezvyšuje. [9] 7.1.2 Připojování vstupů nevyužitých logických obvodů Při návrhu elektronického přístroje se může stát, že na desce s plošnými spoji zůstane nevyužit jeden nebo dokonce více logických členů. V tomto případě je vhodné připojit vstupy těchto nevyužitých obvodů na takovou úroveň, aby spotřeba těchto obvodů byla minimální. Například obvod NAND v bipolární technologii může mít proudovou spotřebu až 1 mA při výstupní úrovni H a spotřebu asi 3 mA při výstupní úrovni L. Proto je vhodné vstupy nevyužitých obvodů NAND připojit na zem, čímž šetříme 2 mA na každý logický člen. U nevyužitých logických obvodů CMOS jsou takové úvahy zbytečné, protože ať připojíme vstupy na společný vodič (zem), nebo na rozvod napájecího napětí UDD, vždy je aspoň jeden z řetězce spínacích tranzistorů zahrazen, takže obvodem teče jen nepatrný klidový proud a logické členy pracující takto ve statickém režimu mají proto zanedbatelně malý příkon. 7.1.3 Přizpůsobování napěťových úrovní V některých aplikacích potřebujeme logickými obvody zpracovat signály, jejichž napěťové úrovně pro 0 a 1 nesplňují požadavky na napětí L a H, definovaná v katalogovém listu daného logického obvodu. Teoreticky může mít vstupní signál následující úrovně: vstupní signál má větší rozkmit, než jaký je požadován,
FEKT Vysokého učení technického v Brně
74
vstupní signál nemá dostatečnou velikost, vstupní signály ležící v jiné napěťové oblasti.
Pokud má vstupní signál větší rozkmit, stačí jej pouze okrojit. Jednoduché okrajovače použitelné pro obvody v bipolární technologii jsou na obrázku obr. 53, kde jsou uvedeny dva takové okrajovače. U prvního z nich (obr. 53a) se k omezení vstupního napětí U > 5 V na přípustnou hodnotu uIH < 5,5 V používá okrajovací obvod s rezistorem R a Schottkyho diodou D1, připojenou na napájecí napětí. Schottkyho dioda D2 zabezpečí svým malým úbytkem napětí v propustném směru správnou funkci při vstupním signálu v úrovni L. U druhého okrajovače (obr. 53b) je použita referenční dioda D1, která umožňuje zpracovat i budicí signál se záporným napětím U1 < 0 V. Rezistor R v zapojení s referenční diodou smí mít odpor nejvýše 𝑅<
𝑈𝐼𝐿 −𝑢𝑖𝑛 𝑖𝐼𝐿
.
(41)
Konkrétně u obvodů v bipolární technologii může hodnota rezistoru být 𝑅 =
0,8−𝑢𝑖𝑛 0,0016
.
Tato velikost odporu však nemusí být vždy v souladu s požadavky na velikost proudu, dodávaného ze zdroje budicího signálu v úrovni H.
a)
b)
Obr. 53: Příklady řešení přizpůsobovacích obvodů [1] Zapojení podle obr. 54a používá k převodu úrovní 𝑢𝐼𝑁 < 𝑈𝐷𝐷 𝑎 𝑢𝐼𝑁 > 𝑈𝐷𝐷 tranzistor v zapojení SE. Čárkovaně naznačená dioda D se musí použít při U1.R2/(R1 + R2) < 5 V, neboť by mohlo dojít k proražení emitorového přechodu tranzistoru při malých hodnotách odporu R1. Tranzistorový spínač invertuje vstupní napětí a transformuje je do úrovní 0 až 5 V. Musíme-li navázat bipolární digitální obvody na část digitálního systému se zápornými logickými úrovněmi (např. s úrovněmi -5 V a 0 V), můžeme použít zapojení podle obr. 54b. Spínací tranzistor T má emitor připojen na vztažné napětí -5 V. Rezistorový dělič R2, R3 v jeho kolektoru je navržen tak, aby napětí na výstupu děliče odpovídalo při zapnutém tranzistoru T úrovni L, a to při respektování skutečnosti, že dělič je zatížen reálným proudem iIL obvodu hradla. V některých případech zapojujeme i ochrannou diodu D pro omezení záporných napětí na vstupu hradla. Tranzistor T invertuje procházející signál.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
a)
75
b)
Obr. 54: Příklady řešení přizpůsobovacích obvodů Unipolární integrované obvody CMOS jsou schopny pracovat v širokém rozmezí napájecích napětí UDD = 3 až 18 V, popř. u moderních řad UDD = 2 až 6 V. Lze je tedy provozovat i při napájecím napětí UDD = 5 V a dalo by se očekávat, že budou schopny v tomto případě přímé spolupráce s bipolárními obvody. Avšak odlišné elektrické vlastnosti a provozní vlastnosti tuto spolupráci ztěžují. U přenosů signálu z bipolárních obvodů na obvody CMOS může být příčinou potíží také rozpor mezi napěťovými úrovněmi na výstupu bipolárních členů a napěťovými úrovněmi vyžadovanými pro vstupy členů CMOS. Ty totiž mají k zajištění správné funkce logického členu předepsány požadavky uIL < 0,3 UDD (tj. pro UDD = 5 V je požadováno uIL < 1,5 V) a uIH > 0,7 UDD až 0,8 UDD (pro UDD = 5 V tedy uIH > 3,5 až 4 V). Přitom logické členy v bipolární technologii mají zaručeno výstupní napětí uOL < 0,4 až 0,5 V a uOH > 2,4 až 2,7 V. Z toho je zřejmé, že uOL zvolených obvodů vyhovuje, protože je v tolerančním poli hodnot uIL obvodů CMOS, avšak uOH těchto obvodů nepostačí ke správnému vybuzení vstupu obvodů CMOS. Máme zde opět několik možností, jak obvody v různých technologiích spojit. Nejjednodušší možností je připojit výstup standardního obvodu např. v technologii TTL s dvojčinným koncovým stupněm podle obr. 35 přes pomocný rezistor na napájecí napětí +5 V (obr. 55) a dosáhnout tak zvýšení jeho výstupního napětí na hodnotu blízkou UDD nebo použít pro buzení logický člen TTL s otevřeným kolektorem, doplněný samozřejmě příslušným pracovním rezistorem (v podstatě stejné zapojení jako na obr. 5.4, jen ve schématické značce logického členu by byl navíc symbol používaný k označení výstupu s otevřeným kolektorem). Z hlediska návrhu nejčistší řešení tohoto problému poskytují obvody CMOS ve verzích xxT (HCT, AHCT). Ty jsou totiž konstruovány tak, aby jejich vstupní napětí uIL, uIH byla v tolerancích platných pro obvody TTL. Jejich vstupy se proto dají připojovat k výstupům logických členů TTL přímo a bez jakýchkoli doplňujících úprav. Pro buzení obvodů CMOS, které mají pracovat s různými napájecími úrovněmi, např. UDD > 5 V, je možno použít logický člen TTL, jehož koncový stupeň je tvořen jediným spínacím tranzistorem s volným (otevřeným) kolektorem, dimenzovaným na větší napájecí napětí (obvykle 15 V nebo 30 V). Potřebného posunutí napěťových úrovní se dosáhne tím, že zatěžovací rezistor tohoto tranzistoru je připojen na sběrnici UDD, jak je to naznačeno na obr. 5.4b.
FEKT Vysokého učení technického v Brně
76
a)
b)
Obr. 55: Ukázky propojení obvodů v různých technologiích Při propojení digitálních obvodů v různých technologických verzích (např. TTL na obvody CMOS) je příčinou potíží rozpor mezi napěťovými úrovněmi na výstupu členů TTL a napěťovými úrovněmi vyžadovanými pro vstupy členů CMOS. Ty totiž mají k zajištění správné funkce logického členu předepsány požadavky uIL < 0,3 UDD (tj. pro UDD = 5 V je požadováno uIL < 1,5 V) a uIH > 0,7 UDD až 0,8 UDD (pro UDD = 5 V tedy uIH > 3,5 až 4 V). Přitom logické členy TTL mají zaručeno výstupní napětí uOL < 0,4 až 0,5 V a uOH > 2,4 až 2,7 V. Z toho je zřejmé, že uOL obvodů TTL vyhovuje, protože je v tolerančním poli hodnot uIL obvodů CMOS, avšak uOH obvodů TTL nepostačí ke správnému vybuzení vstupu obvodů CMOS. Zde je odpomoc snadná: připojit výstup standardního obvodu TTL s dvojčinným koncovým stupněm podle obr. 4.1 přes pomocný rezistor na napájecí napětí +5 V (obr. 5.4a) a dosáhnout tak zvýšení jeho výstupního napětí na hodnotu blízkou UDD nebo použít pro buzení logický člen TTL s otevřeným kolektorem, doplněný samozřejmě příslušným pracovním rezistorem (v podstatě stejné zapojení jako na obr. 55, jen ve schématické značce logického členu by byl navíc symbol používaný k označení výstupu s otevřeným kolektorem). Z hlediska návrhu nejčistší řešení tohoto problému poskytují obvody CMOS ve verzích HCT a ACT. Ty jsou totiž konstruovány tak, aby jejich vstupní napětí uIL, uIH byla v tolerancích platných pro obvody TTL. Jejich vstupy se proto dají připojovat k výstupům logických členů TTL přímo a bez jakýchkoli doplňujících úprav. Pro buzení obvodů CMOS, které mají pracovat s napájecím napětím UDD > 5 V (např. 10 nebo 15 V) je možno použít logický člen TTL, jehož koncový stupeň je tvořen jediným spínacím tranzistorem s volným (otevřeným) kolektorem, dimenzovaným na větší napájecí napětí (obvykle 15 V nebo 30 V). Potřebného posunutí napěťových úrovní se dosáhne tím, že zatěžovací rezistor tohoto tranzistoru je připojen na sběrnici UDD, jak je to naznačeno na obr. 55. Vážeme-li vstupy členů TTL na výstupy členů CMOS při společném napájecím napětí UC = UDD = 5 V, je z hlediska napěťové slučitelnosti vše v pořádku. Obvody CMOS řady 4000 však mají malou proudovou vydatnost, a proto je u nich potřeba ověřit, zda jsou schopny dodat vstupům následně připojených obvodů TTL požadovaný proud. Situace v tomto směru je beze zbytku vyřešena použitím moderních obvodových prvků CMOS řad HC, HCT, AC a ACT. Ty se vyznačují velkou proudovou vydatností výstupů. Nejsou-li napájecí napětí propojovaných obvodů stejná, můžeme v některých jednoduchých aplikacích použít buď neinvertující vazební obvod podle obr. 56a nebo invertující vazební obvod se spínacím tranzistorem NPN v zapojení podle obr. 56b.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
a)
77
b)
Obr. 56: Ukázky propojení obvodů v různých technologiích Úrovňová dioda Některé produktové řady mají kompatibilní vstupní úrovně pro signály s různou velikostí. Jako příklad můžeme uvést např. řadu 74AHC… . Pokud hradlo v technologii AHC napájíme napětím UDD= 5 V, můžeme na jeho vstup přivést digitální signál o úrovní H reprezentovaný jak napěťovou úrovní 3 V, tak také 5 V. V obou případech obvod vstupní napětí vyhodnotí správně jako logickou úroveň H, výstupní úroveň napětí bude mít hodnotu Uout= 5 V. V anglické literatuře se tato funkce nazývá Up Level Shifting. Naopak pokud obvod napájíme napětím 3,3 V, na jeho vstupy můžeme přivést signál o úrovních 3,3 V nebo i 5 V. Výstupní úroveň signálu bude potom Uout= 3,3 V. V anglické literatuře se tato funkce nazývá Down Level Shifting. Obě varianty jsou ukázány na obr. 57. Vždy je ale nutné v katalogovém listu zjistit, jestli použitý obvod tuto možnost nabízí.
Obr. 57: Příklady přizpůsobení úrovně u řady AHC [10] Konfigurovatelné napájecí napětí UDD V produktových řadách výrobců můžeme také najít speciální obvody, které slouží pro spojení elektronických systémů pracujících na různých technologiích. Jako příklad si můžeme uvést obvod SN74AVC2T45, který je dvoubitový obousměrný převodník úrovní s třístavovým výstupem. Levá strana je napájena napětím UDDA a může zpracovávat signály o úrovních daných napětím UDDA, pravá strana je napájena jiným napájecím napětím a logické úrovně odpovídají napětí UDDB. Tyto obvody jsou velmi užitečné a převážně se vyrábějí i ve velmi malých pouzdrech. [15]
Obr. 58: Logické schéma obvodu SN74AVC2T45
78
FEKT Vysokého učení technického v Brně
Přidržení sběrnice - Bus-Hold (H) Jedná se o další možnou úpravu vstupu digitálních obvodů, kterou obsahují vybrané produktové řady. Jejím cílem je ošetření plovoucích vstupů digitálních obvodů. Důsledkem přizpůsobení, znázorněného na obr. 51 nebo obr. 55, může být zpomalení náběžné hrany digitálního systému. Obvody typu Bus-hold proto udržují poslední známý stav vstupu obvodu. Další výhodou je, že odpadá nutnost použití pullup nebo pulldown rezistorů. Viz. obr. 59.
Obr. 59: Výhody obvodu Bus-Hold
7.1.4 Zpracování signálů mechanických kontaktů Celá řada digitálních systémů musí zpracovávat signály, které dodávají zařízení s mechanickými kontakty (spínače, přepínače, tlačítka, relé, klávesnice apod.). Výstupní signál logického členu s mechanickým kontaktem může být v okamžiku zapnutí nebo vypnutí kontaktu doprovázen po dobu až několika milisekund zákmity mechanického původu, které se pochopitelně dostávají na vstup připojených logických obvodů. Vzhledem k vysoké rychlosti digitálních obvodů je zřejmé, že tato série krátkých impulsů pronikne do logických obvodů a může mít nežádoucí důsledky. Proto je nutno v kritických případech signál z mechanických kontaktů ošetřit speciálními obvody. Zapojení podle obr. 60a používá za spínačem integrační článek RC k časovému překlenutí přechodného děje při zapnutí nebo vypnutí kontaktu. Časová konstanta se volí několik milisekund. Výstupní napětí členu RC zpracovává invertor s hysterezí. Na obr. 60b je nakresleno zapojení klasického korekčního obvodu pro ošetření signálu z mechanických kontaktů. Vstupní přepínač pak střídavě připojuje na společný vodič vstupy klopného obvodu RS sestaveného ze dvou logických obvodů NAND (lze pochopitelně použít i jiný klopný obvod, (např. typ 74HC173, 74LS74) s vyvedenými vstupy pro nulování a nastavování). Oba vstupy obvodu RS reagují na sestupnou hranu přiváděného signálu za předpokladu, že druhý vstup má konstantní klidovou úroveň H. Odskoky kontaktů při přepínání nejsou naprosto na závadu, neboť signál na výstupu Q se jednoznačně změní na požadovanou úroveň při prvním dotyku kontaktů přepínače při jeho přeložení do druhé polohy a případné další dotyky téhož kontaktu nemají na stav klopného obvodu žádný vliv. Stav klopného obvodu se změní teprve tím, že vrátíme přepínač do jeho původní polohy a také v tomto případě reaguje klopný obvod pouze na prvý dotyk kontaktů, kdežto na impulsy vzniklé odskakováním kontaktů do mezipolohy už nereaguje.
79
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
+5 V +5 V 4k7
R1 1k
4k7
74AS00
74132
& H
R2 390R
Q
Q &
C
L Q
a a)
bb)
Obr. 60: Ošetření signálu mechanických kontaktů +5 V
1k
ALS1005
Na obr. 61a a b jsou uvedeny dvě varianty korekčního obvodu s klopným obvodem 7404 z invertorů. U prvního obvodu se při přepnutí přepínače uzemní1 výstup odpovídajícího H invertoru, který byl 1doposud v úrovni H. Zpětnou vazbou se však okamžitě naQtomto výstupu 1 nastaví úroveň L. Zkratový proud tedy teče pouze mžikově. U druhého zapojení se používají H Q L Q k přepínáníL výstupů1 𝑄 a 𝑄 dvě tlačítka H a L, jejichž střídavým stlačováním můžeme klopný +5 V obvod na výstupu 𝑄 nastavovat nejen že nereaguje na Q (𝑄 = 𝐻), resp. nulovat (𝑄 = 𝐿). Obvod +5 V +5 V zákmity vznikající odskakováním tlačítek, ale nezmění svůj stav ani při opakovaném stisknutí 4k7 74AS00 R 1k 4k7 1k téhož tlačítka. Kromě ručního obvod vynulován i T 74132 ovládání tlačítky může být klopný elektricky. Aktivujeme-li tranzistor T přivedením H logické úrovně& H na vstupu NUL, Q NUL simulujeme tak stlačení tlačítka L,Qtakže klopný obvod se překlopí &do stavu 𝑄 = 𝐿. Tento R C 390R způsob ovládání klopného obvodu může být například L použit při inicializaci celého zařízení po zapnutí, kdy je třeba nastavit definovaný počáteční stav celého systémuQ vynulováním všech jeho funkčních bloků. Místo diskrétního tranzistoru T může být použit i logický obvod ca db s otevřeným kolektorovým výstupem. 1
2
+5 V
7404
1k
ALS1005
1
H
Q
1 H
1
Q L
1
L
Q
Q
+5 V 1k T NUL
c
a)
d
b)
Obr. 61: Ošetření signálu mechanických kontaktů Logické členy CMOS mají elektrické vlastnosti v mnoha směrech odlišné od obvodů TTL. Přesto jsou u nich zásady ošetřování signálů dodávaných z kontaktových logických členů zcela obdobné. Na obr. 88a je nakresleno schéma obvodu pro ošetření signálu se zákmity z mechanických tlačítek S1 a S2. Při stlačení tlačítka S1 se hned při prvním dotyku obou jeho kontaktů klopný obvod RS s členy NOR vynuluje, 𝑄 = 𝐿. Přechodný děj se zákmity ani případné opakované stisknutí tohoto tlačítka se na výstupu neuplatní. Ke změně stavu klopného obvodu dojde
FEKT Vysokého učení technického v Brně
80
teprve při stlačení tlačítka S2, kdy se obvod nastaví do stavu 𝑄 = 𝐻. Ani v tomto případě se přechodné děje na tlačítku S2 nebo jeho opakované stisknutí nijak neuplatní. Rezistory R1 a R2 mohou mít velký odpor díky nepatrnému vstupnímu proudu členů CMOS. Přechodné děje na mechanických přepínačích a tlačítkách mohou být eliminovány pomocí integračního článku, jehož časová konstanta je delší, než doba trvání přechodného děje se zákmity. Možné řešení ukazuje obr. 88b. V klidu je na vstupu invertoru napětí odpovídající úrovni L. Po stlačení tlačítka se vstupní napětí invertoru přibližně exponenciálně zvětšuje až na hodnotu potřebnou k překlopení logického členu s hysterezní převodní charakteristikou z původní úrovně H do úrovně L. Při uvolnění tlačítka dochází k vybíjení kapacitoru C1 přes rezistor R2 a při dosažení dolní rozhodovací úrovně invertoru dojde k jeho překlopení z výstupní úrovně L zpět do klidové úrovně H. Díky nepatrnému vstupnímu proudu použitého obvodu CMOS je dimenzování článku R1, C1, R2 s časovými konstantami řádu desítek milisekund snadné. Použité rezistory mohou mít odpor desítky až stovky kΩ, u kapacitoru vystačíme s kapacitou kolem 100 nF. Pokud je potřeba obvod s inverzními vlastnostmi (tj. v klidu má být na vstupu invertoru úroveň H), stačí prohodit přívody UDD a země u časovacího článku R1, C1, R2 podle údajů v závorce. Dimenzování tohoto článku se nemění. UDD
S1
74HC02 4001 1
R
Q UDD (0 V)
1
S2
1
C1 100n
R2 1M
Q
S
R1 100k
0V (UDD) R2 100k
a
a)
74ACT14 CMOS
R1 100k
b
b)
Obr. 62: Ošetření signálu mechanických kontaktů pro unipolární obvody Vynikající vstupní parametry obvodů CMOS dovolují vytvářet i jednoduché aplikace. Jako příklad můžeme uvést zapojení bezkontaktního senzorového spínače a přepínače. Na obr. 63 je uveden příklad senzorového tlačítka. V klidu je na vstupu invertoru s hysterezní převodní charakteristikou (např. 40106, 74HC14) úroveň H, protože řetězec rezistorů R1 a R2 je připojen na UDD. Člen R2, D1 a D2 chrání vstup invertoru před případným překročením přípustných napětí použitého členu CMOS při dotyku aktivní plošky senzorového tlačítka. Kapacitor C s kapacitou 33 až 47 nF tvoří spolu s rezistorem R2 dolní propust, jejímž úkolem je potlačit nadměrná šumová a brumová napětí, která by mohla způsobit nežádoucí chybnou změnu výstupní úrovně logického členu. Při přiložení prstu na senzorové tlačítko se jeho dotykové plošky propojí přes kožní odpor prstu, tím se sníží vstupní napětí invertoru na úroveň L a na jeho výstupu se nastaví logická úroveň H. Hystereze invertoru spolu se setrvačnými vlastnostmi článku C, R1, R2 omezí zákmity, které přitom mohou vzniknout např. v důsledku neurčitosti přitisknutí prstu. Pro náročnější účely se doporučuje doplnit toto senzorové tlačítko ještě klopným obvodem, podle některého z výše uvedených principů. Zabrání se tak totiž možnosti chybné interpretace při náhodné opakované aktivaci téhož tlačítka.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
74HC14
2 x 1N4148 R1 1...5M
D1
R2 56k
D2
81
1 C 39n
Obr. 63: Zapojení senzorového tlačítka
7.2 Výstupy digitálních obvodů Při připojování výstupních zařízení nebo dalších logických obvodů k výstupům logických obvodů jsme vždy vázáni mezními hodnotami výstupních napětí a proudů, jak je uvedeno v kapitole 6.2.3. Při buzení dalších logických obvodů ze sledovaného výstupu nesmíme překročit povolené zatížení výstupu, které se dříve udávalo logickou zatížitelností N (někdy také nazývanou jako logický zisk). Logická zatížitelnost určuje největší počet logických vstupů v dané technologii, které můžeme budit z daného výstupu. Např. z hradla 74ALS (N = 20) obr. 64b můžeme dodávat výstupní logický signál do dvaceti vstupů logických obvodů ALS. U většiny současných řad logických obvodů jsou výstupní parametry definovány maximálním výstupním/vstupním proudem a napětím pro úroveň L a H.
a)
b) Obr. 64: Logická zatížitelnost obvodu
FEKT Vysokého učení technického v Brně
82 7.2.1
Buzení výkonové zátěže úrovní H
a)
b)
Obr. 65: Buzení výkonové zátěže Zapojení podle obr. 65a používá k zabezpečení většího proudového odběru pomocný 𝑖 vnější tranzistor T, tranzistor se otevírá při výstupní úrovni H. Budicí proud 𝑖𝐵 ≈ ℎ 𝐶 je 21𝑒
dodáván do báze tranzistoru T z výstupu logického obvodu. Pokud proud do báze nedosáhne hodnoty IOHmax můžeme k výstupu připojovat další logické obvody. Potřebujeme-li z výstupu digitálního obvodu odebírat logický signál, můžeme zvětšit zatěžovací proud |𝑖𝑣ý𝑠𝑡 | = 𝑖𝐵 nestandardně i nad hodnotu IOHmax. Podle výstupní charakteristiky obvodu se patřičně zmenší výstupní napětí obvodu případně až pod 2 V. Jestliže je proud zátěží iC tak velký, případně proudový zesilovací činitel ℎ21𝑒 tak malý (u tranzistorů pracujících jako spínače v saturaci bývá ℎ21𝑒 malé, jen asi 10 až 20, u výkonových tranzistorů mnohdy i méně), že bude 𝑖𝐵 > 𝐼𝑂𝐻𝑚𝑎𝑥 , musíme zavést do obvodu báze posilovací proud tekoucí rezistorem Rp. Je nutné dbát na to, aby při přepnutí do logické úrovně L nebyl překročen výstupní proud IOLMAX. Při návrhu obvodu postupujeme tak, že pro předepsaný proud 𝑖𝐶 zátěží a napětí UDD vybereme vhodný typ tranzistoru. Pro jeho zesilovací činitel ℎ21𝑒 určíme proud 𝑖𝐵 . Odpor RB rezistoru v bázi T vypočítáme ze vztahu 𝑅𝑍 ≈
𝑢𝑂𝐻𝑚𝑖𝑛 −𝑢𝐵𝐸 𝑖𝐵
.
(42)
Pro případ, že 𝑖 𝐵 > 𝐼𝑂𝐻𝑚𝑎𝑥 požadujeme možnost buzení vstupů logického obvodu ze sledovaného výstupu, určíme odpor Rp z přibližného vztahu 𝑅𝑃 =
𝑈𝐷𝐷 −𝑢𝑂𝐻 𝑖𝐵
,
(43)
Přitom kompenzujeme proud iB tak, že výstup obvodu k tvorbě proudu iB prakticky nepřispívá. Na obr. 65b je nakresleno zapojení pro spínání velkých proudů i o velikosti jednotek ampérů dodávaných odporové zátěži RZ. Jako budicí obvod může být použita libovolná součástka, která ve spolupráci s pracovním rezistorem R1 zahradí Darlingtonovu dvojici tranzistorů T2, T3, má-li na výstupu úroveň L, kdežto při výstupu v úrovni H dodává do báze tranzistoru T2 přes rezistor R1 proud 𝑖𝐵 = 15 𝑚𝐴, který stačí uvést tranzistory T2 a T3 do saturace. Protože 𝑢𝑜𝑢𝑡𝐻 ≈ 𝑢𝐵𝐸2𝑠 + 𝑢𝐵𝐸3𝑠 ≈ 0,7 𝑉 + 2,4 𝑉 = 3,1 𝑉 není při provozu nikdy překročeno dovolené výstupní napětí logického členu, i když je rezistor R 1 napájen ze
83
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
sběrnice +30 V. Tranzistory T3 a T2 musí být vybrány s ohledem na dostatečnou proudovou vydatnost a na předpokládané provozní napětí. Protože budou pracovat ve spínacím režimu, budou mít při provozu v saturaci jen malý zesilovací činitel, menší než minimální hodnota udávaná v katalogu. Odpor R1 vypočítáme na základě znalosti parametrů tranzistorů a zadaných provozních podmínek 𝑅1 ≈
(𝑈𝑝 −𝑢𝐵𝐸2𝑠 −𝑢𝐵𝐸3𝑠 ).ℎ21𝑒2𝑠 .ℎ21𝑒3𝑠 𝑖
.
Obr. 66: Řízení výkonové zátěže tranzistorem MOS Velmi používaným řešením pro ovládání výkonových zátěží představuje zapojení podle obr. 66 s výkonovým tranzistorem MOS. Pro představu je použit tranzistor s N-kanálem pro napětí až 100V (IRF540N) a pro proudy až 30 A. U tranzistorů MOS je potřeba uvažovat relativně velkou vstupní kapacitu hradla, u tohoto typy tranzistoru je typicky 1,9 nF, proto je na obr. 66 zapojen rezistor R omezující nárazový proud při přepínání. 7.2.2 Buzení výkonové zátěže úrovní L Při buzení výkonové zátěže z výstupu logického obvodu při aktivní úrovni L použijeme poněkud odlišná zapojení. V nejjednodušších případech můžeme připojit zátěž mezi sběrnici napájecího napětí a výstup logického obvodu. Jako příklad je uvedeno na obr. 67a připojení budicí cívky relé k výstupu výkonového logického členu NAND. Největší proud tekoucí zátěží nesmí být větší než mezní hodnota 𝑖𝑂𝑈𝑇𝐿 (𝑖𝑂𝑈𝑇𝐿 > 𝑖𝑍 ). Pokud má zátěž induktivní charakter, zapojujeme paralelně k indukční zátěži ještě ochrannou diodu D, která ochrání výstup logického obvodu proti nebezpečným napěťovým špičkám, vznikajícím při odpojení zátěže.
a)
b) Obr. 67: Řízení výkonové zátěže tranzistorem MOS
c)
FEKT Vysokého učení technického v Brně
84
Na obr. 67b je uvedeno schéma s tranzistorem PNP a zátěží napájenou ze zdroje záporného napětí. Tranzistor T je v klidovém stavu 𝑢𝑜𝑢𝑡 = 𝐻 zahrazen a zátěží neprotéká proud. Po přepnutí výstupu obvodu na úroveň L teče rezistorem R1 proud iB, který otevírá tranzistor a zátěží teče proud 𝐼𝑍 =
𝑈𝐷𝐷 −𝑈𝑁 −𝑢𝐶𝐸𝑠 𝑅𝑍
.
(44)
Odpor R1 vypočítáme podle vztahu 𝑅1 ≈
(𝑈𝐷𝐷 −𝑈𝐸𝐵𝑠 −𝑢𝑂𝑈𝑇𝐿 ).ℎ21𝑒𝑠 𝐼𝑍
≈ 3,9
ℎ21𝑒𝑠 𝑖𝑍
.
(45)
Na obr. 67c je uveden jiný příklad řízení výkonového tyristoru z výstupu logického členu CMOS. Proud IG do řídicí elektrody tyristoru je dodáván přes proudový posilovač se spínacím tranzistorem PNP. Tranzistor je uveden do saturace, je-li na výstupu členu CMOS logická úroveň L. Použijeme-li např. tranzistor BC179, může mít řídicí proud IG velikost až 100 mA. Požadovanou velikost řídicího proudu nastavíme odporem rezistoru R2, který můžeme vypočítat ze vztahu 𝑅2 ≈
(𝑈𝐷𝐷 −𝑈𝐸𝐶𝑠 −𝑢𝑔 ) 𝑖𝐺
.
(46)
kde saturační napětí 𝑢𝐸𝐶𝑠 ≈ 0 𝑉, 𝑢𝐺 je řídicí napětí tyristoru při proudu iG. Pro buzení větších zátěží jsou prakticky ve všech technologiích digitálních obvodů k dispozici součástky pro buzení sběrnic, jejichž proudová zatížitelnost výstupu je několikanásobně větší než u běžných typů. Jako příklad si můžeme uvést obvod 74LVC07, který slouží jako budič (Buffer/driver) s otevřeným kolektorem s šesti vstupy a výstupy. Pracuje v rozsahu napájecího napětí od 1,65 V do 5 V. 7.2.3
Galvanické oddělení výstupů
Pro galvanické oddělení zátěže od digitálního systému můžeme využít klasické zapojení pomoci optočlenu. Optočlen je elektronická součástka, která slouží ke galvanickému oddělení dvou obvodů. Je tvořen optickým vysílačem a fotocitlivým přijímačem, nejčastěji ve formě fototranzistoru (obr. 68a). Fototranzistor může být v různých provedeních (PNP, NPN, nebo i v Darlingtonově zapojení). Na vstup optočlenu přivádíme proud IF (Forward current) potřebný pro aktivaci optického vysílače (např. LED diody), který budí fototranzistor a otevírá jej podle proudu procházejícího. Otevřený přechod tranzistoru mezi emitorem a kolektorem způsobí sepnutí obvodu na výstupu. Díky galvanickému oddělení lze ovládat obvody, které se mezi sebou liší napěťovou úrovní v řádech stovek voltů. Toto použití je časté tam, kde potřebujeme mít úplně oddělená zařízení – včetně zemních (nulových) propojení. Příklad zapojení na obr. 68b, který znázorňuje galvanické propojení dvou digitálních systémů pracujících na rozdílných napětích. Důležité pro správnou funkci galvanického oddělení je dodržet také rozdělení zemí. Hodnoty UF a IF důležité pro výpočet předřadného rezistoru RD odečteme z katalogového listu. Např. pro optočlen 4N35 je IF = 10 mA, UFmax = 1,5 V, hodnota předřadného rezistoru je pak 𝑅𝐷 ≈
(𝑈𝑂𝑈𝑇𝐻𝑚𝑖𝑛 −𝑈𝐹 ) 𝐼𝐹
.
(47)
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
85
b) Ukázka galvanického oddělení
a) Princip funkce
Obr. 68: Galvanické oddělení pomoci optočlenu Další možností je využití speciálních digitálních oddělovačů (isolátorů), které umožňují vytvořit galvanické oddělení i na datových sběrnicích s vysokou přenosovou rychlostí. Výhodou specializovaných obvodů je právě nižší příkon a vyšší přenosové rychlosti, než u klasického zapojení s optočleny. Ukázka takovéhoto typu obvodu je na obr. 69. Jako příklad můžeme uvést obvod ISO7310C. Jedná se o nízkopříkonový jednokanálový oddělovací obvod, schopný přenášet data až rychlostí 25 Mbps. [1,7,9,10,12,13,14]
a) Zapojení pinů
b) Principiální schéma
Obr. 69: Galvanické oddělení pomoci obvodu ISO7310
7.3 Aplikační zásady 7.3.1 Rozvod zemního vodiče Rozvod společného vodiče (zemního vodiče) je v mnoha případech podceňován, ale špatně navržený rozvod může být zdrojem mnoha nečekaných závad při uvádění zařízení do chodu. V zásadě by měl být společný vodič realizován tak (ať už drátem nebo měděnou fólií na desce s plošnými spoji), aby měl co nejmenší odpor a zanedbatelnou indukčnost. Těmto požadavkům vyhoví vodiče s velkým průřezem. Při návrhu plošných spojů se proto vždy snažíme navrhovat rozvody zemí co nejširší. Pokud se v zařízení kromě logických obvodů vyskytují také další typy obvodů, např. lineární integrované obvody, výkonové členy s relé apod., je nutné každý typ těchto obvodů propojovat samostatným společným (zemním) vodičem. Tyto skupinové vodiče zemí pak propojíme v jediném místě zařízení, nejčastěji u zemnicí svorky nejkritičtěji provozovaného operačního zesilovače (který zpracovává nejmenší úrovně signálu) nebo u napájecích zdrojů. Při dimenzování společného vodiče musíme uvažovat i maximální proudy, které jím mohou protékat. Nejsou vzácností desky plošných spojů s odběry až několik ampérů. Ze stejných důvodů jsou kladeny přísné nároky také na minimální přechodové odpory použitých konektorů a na spoje zemí mezi jednotlivými konektory v přístrojové skříni.
FEKT Vysokého učení technického v Brně
86 7.3.2
Rozvod napájecího napětí
Rozvod napájecího napětí vyžaduje stejnou péči při návrhu jako rozvod společného zemnícího vodiče. Přívod napájecího napětí na desku s číslicovými obvody je nutno hned za konektorem filtrovat nejlépe tantalovým elektrolytickým kapacitorem s kapacitou alespoň 10 µF. Navíc se doporučuje blokovat napájecí napětí bezindukčními keramickými kapacitory přímo u integrovaných obvodů. Doporučená kapacita se pohybuje okolo 10 až 100 nF, jejichž úkolem je pokrýt špičkově zvýšené proudové odběry logických obvodů při přepínání. Pokud je použita deska s oboustrannými plošnými spoji, je vhodné jednu stranu využít pro signálové spoje a druhou stranu pro rozvod země a napájecího napětí. Je-li deska hustěji osazena obvody, rozvádí se někdy napájecí napětí a zem dalšími vrstvami vícevrstvého plošného spoje. Při návrhu plošných spojů je vhodné respektovat následující základní zásady. Signálové spoje je vhodné navrhovat co nejkratší. Délka spoje do 40 cm je ještě považována za přípustnou, zejména na velkých deskách používajících celou zemnicí a celou napájecí vrstvu. Rovněž tato délka vyhoví u malých desek, kde je zemnicí vrstva tvořena mřížkou nebo síťkou. Je-li přenášen signál s vyššími pracovními kmitočty (vf), je potřeba zkrátit spoje a vyloučit ostré ohyby. Běžné spoje a použité zátěže na desce nevyžadují přizpůsobené vedení. Přechodný děj odezvy na buzení více zátěží zejména kapacitního charakteru může být zlepšen zakončením vedení děličem R1 = 600 Ω a R2 = 300 Ω. Šířka vodiče plošného spoje musí být alespoň 0,35 mm a alespoň stejná musí být šířka mezery. Je vhodné volit větší mezeru, zejména u rovnoběžně vedených dlouhých spojů. Zejména je nutno věnovat pozornost dostatečné mezeře od vodičů řídicích hodinových signálů a jiných citlivých signálů. Tloušťka izolačního materiálu u vícevrstvých spojů není kritická, obzvláště jsou-li některé vrstvy vymezeny rozvodu napájení a společné země. Snižuje se tak i počet potřebných kapacitorů pro filtraci napájecího napětí. Zvlnění napájecího napětí většiny digitálních obvodů může být nejvýše 10 % jmenovité hodnoty. Následující výčet zásad můžeme použít k návrhu, kontrole a zhodnocení zkonstruovaného zařízení: zabezpečení dostatečného chlazení součástek vhodným umístěním výkonově namáhaných součástek a chladičů, vyloučení přeslechů vhodným prostorovým umístěním vodičů nebo jejich stíněním, kvalitní rozvod zemí a napájecích napětí, spojování zemí různých zdrojů a částí obvodu, spojení zemí s kostrou a propojení zemí se spolupracujícím zařízením, ochrana zdrojů proti zkratu a ochrana integrovaných obvodů proti přepětí, dostatečná filtrace napájecích napětí tantalovými elektrolytickými kapacitory a ve skupinách integrovaných obvodů bezindukčními rychlými keramickými kapacitory, ochrana konektorů proti chybnému připojení označením nebo mechanickými klíči, snadná výměna součástek s kratší dobou života (pojistky), ošetření signálů z mechanických kontaktů proti vlivu odskakování kontaktů, zpracování pomalu se měnících signálů logickými obvody s hysterezní charakteristikou Schmittova klopného obvodu, ošetření nepoužitých vstupů logických obvodů a vstupů nepoužitých obvodů, k výstupům digitálních obvodů nepřipojovat přímo kapacitory s kapacitou větší než 0,5 nF, ochrana logických obvodů a tranzistorů s indukční zátěží (relé) paralelně zapojenou ochrannou diodou, ochrana vstupů a výstupů obvodů proti přepětí, zaručit, aby nemohlo být na vstupy obvodů CMOS přivedeno napětí, pokud obvody nemají připojeno svoje napájecí napětí,
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
87
správný návrh delších přenosových vedení a jejich správné impedanční zakončení (zkroucený dvojvodič a koaxiální kabely), zajistit snadnou diagnostiku zařízení, zabránění výskytu hazardních impulsů a stavů, nastavení definovaného stavu po zapnutí přístroje, dodržení bezpečnostních předpisů, obsluha zařízení musí být za všech okolností bezpečná, kvalitní, úplná a jednoznačná dokumentace pro případné opravy nebo zhotovení dalšího kusu, ochrana proti vnějšímu rušení, zabránit generování rušivých signálů, nepřekročit povolené mezní parametry použitých součástek.
7.3.3 Poznámky k oživování přístroje Při oživování digitálních zařízení je vhodné používat logickou sondu s indikací úrovně logické nuly a jedničky a možností zjišťovat i nanosekundové impulsy, případně s možností zachytit a načítat několik impulsů. Vynikající pomůckou je osciloskop, pro nejnáročnější případy paměťový. Budicí impulsy dodáváme z generátoru impulsů většinou s měnitelným kmitočtem a případně z generátoru slov. Jinak pochopitelně využijeme i běžné přístroje (voltmetr, miliampérmetr, ohmetr atd.). Můžeme použít i speciální výkonové sondy, kterými můžeme v daných místech zapojení vnucovat impulsy L nebo H, aniž bychom museli obvod rozpojit. Nejčastěji začínáme oživovat tak, že krok za krokem identifikujeme a kontrolujeme signály logickou sondou a osciloskopem podle schématu. Výsledky zaznamenáváme a na základě logické úvahy pak buď měříme v dalších bodech, nebo zapojení upravujeme tak, aby správně pracovalo. Je samozřejmé, že postupujeme od nejjednodušších funkcí ke složitějším. V některých případech musíme rozpojit některé složitější vazby (např. přerušením plošného spoje), abychom obvod pro diagnostiku dostatečně zjednodušili. Oživování si můžeme již při návrhu usnadnit tím, že umožníme některé sekvence krokovat, zhotovíme si vhodné přípravky (pole s přepínači a výstupy v potřebných napěťových úrovních apod.) nebo simulátory. Pokud v zájmu oživení upravujeme zapojení, neděláme dvě úpravy najednou, neboť bychom nemohli posoudit individuální vliv každé z nich. Podaří-li se závadu odstranit, analyzujeme všechny uskutečněné zásahy a úpravy tak, abychom zjistili, kde byla chyba. Všechny úpravy a změny průběžně zaznamenáváme do schématu. Pro oživování složitějších zařízení s mikroprocesory a mikrokontroléry se většinou neobejdeme bez logického nebo alespoň příznakového analyzátoru. Nejvhodnější však je mikroprocesorový vývojový systém, kterým také odlaďujeme programy.
FEKT Vysokého učení technického v Brně
88
8 Úprava hran logických signálů Většina logických CMOS, BiCMOS a TTL obvodů vyžaduje na své vstupy přivedení signálu s rychlými hranami, tedy krátkým náběžným a sestupným časem. Pokud tomu tak není a hrany signálu jsou příliš pomalé, hrozí nám v obvodu tok nadměrného proudu, kmitání obvodů a v krajním případě i jejich nevratné poškození. Bohužel, v celé řadě případů se pomalým hranám jen těžko vyhneme. Jedná se především o zapnutí spínačů či stisk tlačítka, které mají na svých pinech z důvodu odstranění zákmitů umístěné filtrační kondenzátory. Ovšem i výstupy jiných logických obvodů, pokud jsou zatížené například indukcí a kapacitou připojených vodičů, mohou představovat vážný problém. Strmost hran pravoúhlých nebo přesněji řečeno lichoběžníkových impulsů může tedy být kritickým parametrem správného logického zpracování signálů, neboť logické obvody jsou schopny bezchybně zpracovat jen ty logické signály, jejichž strmost hran je obvykle větší než 1 V/µs (přesná hodnota záleží na použité řadě logických obvodů). Hrany s menší strmostí mohou způsobit, že vstupní signál při průchodu rozhodovací oblasti na vstupu logického obvodu TTL vyvolá na jeho výstupu jeden nebo několik zákmitů než přejde výstupní napětí na odpovídající ustálenou úroveň. Při pomalém průchodu vstupního napětí přes rozhodovací 4V úroveň se totiž může uplatnit okamžitá kombinace šumu, indukovaného rušení a teplotní u1 nestability rozhodovací úrovně UR tak, že může dojít k zákmitům výstupního napětí. Mezní 2 přípustné hodnoty strmosti vstupního signálu jsou u standardních obvodů řady 74HC 1,6 V/µs pro vzestupnou hranu a -3,3 V/µs pro sestupnou hranu. 0
u2
2
4
6 s
t
2
4
6 s
t
2
4
6 s
t
4V
2 0
4V
u3
u1
2
2
0
0 2
u2
4V
4
6 s
t
Obr. 70: Zlepšení strmosti hran
4V
2 Pro zlepšení strmosti hran impulsů se často používá kaskáda logických obvodů (např. invertorů) podle obr. 70. Každý z invertorů má v rozhodovací oblasti 1,3 až 1,5 V napěťová 0 zesílení přibližně 2 4 6 s t
4V
|𝐴u3𝑈 | =
∆𝑢𝑜𝑢𝑡 ∆𝑢𝑖𝑛
2
≈ 0,2 = 10
(48)
2
neboť výstupní napětí se odpovídajícím způsobem mění mezi hodnotami 𝑢𝐿 ≈ 0,4 𝑉 a 0 𝑢𝐻 ≈ 2,4 𝑉. Kaskádou invertorů tdosáhneme zesílení 𝐴𝑢 ≈ 100 v rozhodovací oblasti 2 4dvou6 s 1,3 až 1,5 V vstupního napětí. V důsledku toho se zvětší i strmost hran výstupního signálu ve srovnání se vstupním signálem, a to v poměru 𝐴𝑢 :1. Obvod však není nijak chráněn proti vzniku zákmitů, pracuje v podstatě jako napěťový komparátor s jednou rozhodovací úrovní, u
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
89
něhož jsou jedinou ochranou proti vzniku zákmitů jeho vlastní setrvačné vlastnosti (integrátor). I v tomto případě proto musí mít vstupní signál u1(t) hrany strmější než 1,5 V/µs u vzestupné hrany a -3,3 V/µs u sestupné hrany. Průběhy napětí u1, u2, u3 jsou pro tento mezní případ strmosti nakresleny na obr. 80.
8.1 Schmittův klopný obvod U standardních logických vstupů dochází k překlopení ve stejném bodě jak v případě náběžné, tak i sestupné hrany. Pokud se napětí hrany mění jen pomalu, je pravděpodobné, že dojde k otevření obou výstupních tranzistorů zároveň, čímž v obvodu vznikne požadavek na větší napájecí proud ze zdroje (UDD). Pokud však takový proud není k dispozici (například vlivem nedostatečných či nevhodně navržených blokovacích kondenzátorů), dojde ke krátkodobému poklesu napětí. Tím však dojde také k posunu rozhodovacích úrovní vstupů a daný logický prvek se přepne zpět do předchozího stavu. V tu chvíli napětí opět stoupne a celý proces se opakuje. Výsledkem je kmitání obvodu, které se samozřejmě přenese i do rozvodu napájení. Pro zpracování pomalu se měnících napětí (strmost až 1 V/s) je nezbytné použít logické obvody s hysterezí, často nazývané jako Schmittův klopný obvod. Jsou to v podstatě komparátory s kladnou zpětnou vazbou a se dvěma rozhodovacími úrovněmi, které se přepínají podle okamžitého stavu na výstupu. Ta, přesto že nemusí být nijak zvlášť velká, dokáže zajistit jednoznačné překlopení vstupu a odstranění nežádoucího šumu. Velikost vstupní hystereze je obvykle součástí technické dokumentace obvodu, stejně jako mezní hodnoty napětí a proudu. Dnes mají tento typ vstupu celé řady logických součástek a mikrokontrolérů.
Obr. 71: Schmittův klopný obvod [11] Pokud přivedeme na vstup obvodu rostoucí vstupní napětí k horní rozhodovací úrovni URH (viz. obr. 71), změní se stav výstupu obvodu a současně s tím přejde obvod na svou dolní rozhodovací úroveň URL. Jestliže v této situaci vstupní napětí poklesne na hodnotu URL, vrátí se výstup obvodu do původního stavu a spolu s tím se vrátí obvod i na původní rozhodovací úroveň URH. Tento mechanismus přepínání rozhodovacích úrovní v okamžiku aktivace kterékoli z nich účinně brání tomu, aby se nějakým nežádoucím způsobem uplatnily rušivé
FEKT Vysokého učení technického v Brně
90
složky superponované na užitečný vstupní signál. Pro rozhodovací úrovně platí URH > URL, rozdílové napětí 𝑈𝑅 = 𝑈𝑅𝐻 − 𝑈𝑅𝐿 , označujeme stručně jako hysterezi obvodu. Technická realizace logických členů s hysterezí spočívá nejčastěji v tom, že do cesty logického signálu je vložen Schmittův klopný obvod. Hysterezní převodní charakteristiku tohoto druhu má např. obvod typu SN74LVC1G14 (jednoduchý invertor) s hysterezí 0,56 V při napájení 3 V. Velmi často jsou takto upravenými vstupy vybaveny i mikrokontroléry, jako příklad si můžeme uvést MSP430F5172. Vynikající výhodou těchto obvodů s hysterezní převodní charakteristikou je, že dávají díky použití kladné zpětné vazby vždy tu největší strmost hran výstupních logických signálů, s níž je možné u dané řady obvodů počítat. Další předností je naprostá jednoznačnost odezvy. Ke vzniku zákmitů může dojít jen tehdy, přesáhne-li rozkmit rušivého napětí hodnotu URH, a to nepřichází v normálních provozních podmínkách snad nikdy v úvahu. Praktická ukázka využití Schmittova KO je na obr. 72., kde je využit obvod 74LVC1G14 pro ošetření zákmitů tlačítka.
Obr. 72: Ošetření vstupního tlačítka pomoci Schmittova KO [11]
8.2 Neautonomní generátory impulsů Při navrhování digitálních obvodů a systémů je častou úlohou vyrobit na nestandardní podnět, např. na stisknutí tlačítka, nebo naopak na uvolnění tlačítka, na podnět z koncového spínače či ze světelné závory standardní logický signál ve tvaru jediného impulsu v logických úrovních, obvykle pravoúhlého a s konstantní dobou trvání. Teprve takto standardizovaný logický signál je předmětem zpracování v dalších logických obvodech systému. K výrobě těchto impulsů se v převážné míře používají monostabilní klopné obvody, tedy neautonomní generátory, spouštěné vnějším podnětem, konkrétně vzestupnou, popř. sestupnou hranou řídicího signálu.
a)
b)
Obr. 73: zapojení monostabilních klopných obvodů
91
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
Na obr. 73 jsou nakreslena dvě základní zapojení monostabilních klopných obvodů s logickými obvody NAND. V obou případech se generuje výstupní impuls přechodem do úrovně L, vyvolaným již sestupnou hranou vstupního signálu. Zapojení uvedené na obr. 73a je vhodné k prodlužování vstupního impulsu, při zkracování impulsu je závěrná vzestupná hrana výstupního impulsu málo strmá (to platí zejména pro impulsy větší šířky). Šířka impulsu je přibližně 𝑇𝑖 ≈ 0,7𝑅𝐶 a při opakovaném buzení kolísá přibližně o ± 1,5 %. Pro katalogově zaručený vstupní proud invertoru 𝑖𝐼𝑁𝐿 ≈ −1,6 𝑚𝐴 v klasické bipolární technologii TTL a nejvyšší povolenou vstupní úroveň napětí 𝑢𝐼𝑁𝐿 = 0,8 𝑉 standardního obvodu TTL musí být odpor R < 500. Pro většinu aplikací však můžeme volit až 𝑅 = 1𝑘Ω. Změní-li se napájecí napětí UDD o ± 6 %, změní se šířka impulsu až o ± 12 % při 𝑅 = 220 Ω a o ± 8 % při 𝑅 = 1𝑘Ω. Mezi jednotlivými impulsy při opakovaném buzení musí být prodleva TP>3TI při 𝑅 = 220 Ω a Tp > 2Ti při 𝑅 = 1𝑘Ω, aby se časovací kapacitor stačil dostatečně vybít. Při použití obvodů z řad 74ALS a 74HCT musíme vzít v úvahu, že tyto obvody mají podstatně menší vstupní proudy, takže je možné odpovídajícím způsobem zvětšit odpor R. Jinak však platí pro dimenzování obvodu obdobné závěry jako v předchozím případě. V zapojení podle obr. 73b nastavuje rezistorový dělič R1, R2 vstupní napětí pro logický člen 1, o velikosti asi 2,3 V a odpor R = R1||R2 paralelní kombinace rezistorů určuje spolu s kapacitou C zpětnovazebního kapacitoru časovou konstantu RC. Šířka impulsu pak je 𝑇𝑖 ≈ 𝑅𝐶 až 𝑇𝑖 ≈ 1,2𝑅𝐶. Změní-li se napájecí napětí o ± 6 %, změní se šířka impulsu Ti o ± 6 %. Většímu napájecímu napětí odpovídá menší šířka impulsu. Zotavovací doba mezi opakovanými impulsy TP musí být delší než 5 Ti. Správná funkce tohoto klopného obvodu je podmíněna tím, že budicí impuls musí mít menší šířku než vyráběný impuls. V opačném případě totiž bude stav logického členu 1 určen nikoli situací na rozhodovacím vstupu, na který je připojen časovací článek R1, R2, C, ale přetrvávající úrovní L na vyžadovacím vstupu a výstupní impuls proto skončí až při skončení budicího impulsu. Nedodrží-li se zotavovací doba TP > 5 RC po ukončení impulsu, zkracuje se předčasně vyžádaný následující impuls.
u1
UDD
0
t
u3
UDD UP 0
t u2
UDD
0
t
a)
b)
Obr. 74: : Monostabilní klopný obvodů CMOS Na obr. 74 je nakresleno schéma základního monostabilního obvodu CMOS s hradly NOR. Klidová úroveň vstupního signálu je u1 = L. Klidový stav obvodu je určen tím, že po ukončeném nabíjení kapacitoru C je na vstupu výstupního invertoru logická úroveň H (je připojen přes rezistor R na sběrnici napájecího napětí UDD), a proto je klidové výstupní napětí invertoru u2 = L. Protože na obou vstupech logického členu NOR je úroveň L, je na jeho
FEKT Vysokého učení technického v Brně
92
výstupu úroveň H a kapacitor C je vybit. Změna u1 z úrovně L na H se projeví přechodem výstupu členu NOR do úrovně L Tato změna v podobě napěťového skoku o velikosti téměř UDD se ihned kapacitorem C přenese na vstup druhého hradla, jehož výstupní signál se změní z úrovně L do úrovně H. V tuto chvíli již může skončit spouštěcí impuls u1. Napětí u3 na vstupu invertoru mezitím exponenciálně narůstá s časovou konstantou RC z 0 V do rozhodovacího napětí UP invertoru. Při překročení této úrovně se vrátí výstupní stav invertoru z aktivní úrovně H zpět do klidové úrovně L. Celý proces generování impulsu potom ještě vnitřně doznívá: výstup členu NOR přejde do úrovně H a kapacitor C nabitý přibližně na 𝑈 napětí 𝐷𝐷 se vybíjí přes rezistor R za účinné spolupráce ochranných diod na vstupu invertoru. 2 Tím se ukončí kyv monostabilního klopného obvodu. Bude-li spouštěcí impuls u1 delší než je doba kyvu monostabilního klopného obvodu, projeví se to pozvolnější závěrnou hranou impulsu u2. Na rozdíl od předchozího případu se totiž neuplatní kladná zpětná vazba přes člen NAND. Doba kyvu je dána dobou potřebnou k nabití kapacitoru C přes rezistor R přibližně na polovinu napájecího napětí, a proto je přibližně 𝑇𝑖 ≈ 𝑅𝐶. 𝑙𝑛2 ≈ 0,7. 𝑅𝐶.
(49)
Díky zanedbatelným vstupním proudům můžeme snadno dosáhnout doby kyvu řádu jednotek až desítek sekund. Častějším řešení využívaným pro generování impulsů konstantní šířky na vyžádání spouštěcím signálem je použití monolitických integrovaných obvodů. Jako příklad zde můžeme uvést obvod 74LV123. Tyto obvody se vyznačují velmi dobrou stabilitou parametrů při změně teploty (teplotní koeficient šířky impulsu je asi 10-4/°C) a jsou tedy zárukou stability při aplikacích ve zpožďovacích obvodech. Obvod 74LV123 obsahuje dvojici monostabilních klopných obvodů s možností nulování, u kterého je doba trvání impulsu nastavitelná vnějšími prvky R a C, a u něhož se dá vyžádat výroba impulsu jedním ze tří řídicích signálů 𝐶𝐿𝑅, 𝐴, 𝐵. Charakter vstupních obvodů je zřejmý ze schématické značky obvodu obr. 75a. Všechny řídící vstupy jsou ošetřeny hysterezí, nejmenší šířka vstupního pulzu je 6,5 ns (Pulse duration). Časovací prvky R1 a C1 se připojují k vývodům C, CR a k napájecímu napětí UDD. Doba impulsu je dána přibližným vztahem (50) 𝑇𝑊 = 𝐾. 𝑅𝑇 . 𝐶𝑇 , kde, K je koeficient, RT je externí rezistor v kΩ, CT je externí kapacita v pF. Koeficient je nutné zjistit z katalogového listu příslušného výrobce obvodu. Obvykle je nutné jej odečíst z grafu a jeho velikost je dána velikostí CT a RT. Například pro zvolený obvod SN74LV123A je pro CT = 1000 pF K = 1, CT < 1000 pF musíme K odečíst z grafu 𝐶𝐿𝑅 L X X H H ↑
a)
Vstup 𝐴 X H X L ↓ L
Výstup 𝐵 X X L ↑ H H
b)
Obr. 75: Monostabilní klopný obvodů 74LV123
𝑄 L L L _∏_ _∏_ _∏_
𝑄 H H H └┘ └┘ └┘
93
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
9 Odolnost digitálních systémů na rušení Odolnost elektrických systémů na rušení je známa jako elektromagnetická kompatibilita (EMC) je mezioborová disciplína, která se zabývá otázkami nežádoucího ovlivňování činnosti různých technických i biologických systémů účinky elektromagnetického pole. Vznik EMC souvisí s rozšiřováním elektroniky v nejrůznějších oborech lidské činnosti. Jedna z prvních aplikací se objevila v letectví a námořnictví, protože právě v letadlech a na lodích se soustřeďuje v malém prostoru velké množství rádiových prostředků současně s celou řadou elektronických a elektrických zařízení (vč. silových). Přitom bylo nutné zajistit jejich spolehlivou činnost bez vzájemného rušení a nepříjemného ovlivňování, neboli vytvořit stav jejich elektromagnetické kompatibility [16,17]. Jakožto mezioborová disciplína má EMC značně široký záběr zahrnující řadu oblastí. Z praktického hlediska v digitálních systémech je vhodné uvažovat elektromagnetickou kompatibilitu: na čipu integrovaného obvodu,
uvnitř jednoho přístroje,
ve složitějších systémech.
Ve všech těchto případech problematika EMC zahrnuje: 1. zdroje rušivých signálů, 2. cesty přenosu rušivých signálů, 3. přijímače rušivých signálů, 4. snižování úrovně rušivých (interferenčních) signálů, 5. zlepšování odolnosti zařízení vůči rušivým signálům. atmosférické poruchy přirozené kosmické záření
přeslechy Vnější regulérní
el. rozvody a stroje
generované
Rušení
úmyslné rušení
(vyplývající z lidské činnosti) šumy (rezistory, PN přechody apod.)
náhodné
Vnitřní rušivé vazby
Obr. 76: Rozdělení elektromagnetického rušení
jiskření el. strojů, výbojky, rentgeny, motory
FEKT Vysokého učení technického v Brně
94
Zdroje rušivých signálů. V oblasti zdrojů rušivých signálů se zkoumají zejména obecné otázky mechanismů vzniku rušení, jeho charakteru a intenzity. Z přehledu na obr. 76 vidíme, že rušivé signály mimo jiné vznikají všude tam, kde dochází k rychlým změnám napětí nebo proudu [16,17].. Mezi přirozené zdroje rušení patří hlavně elektrické výboje v ovzduší, prudké změny zemského magnetického i elektrického pole (elektromagnetické bouře, polární záře apod.) a elektromagnetická vlnění produkovaná kosmickými tělesy.
Zdroj rušení
Omezování velikosti a účinku nežádoucích elektromag. vazeb
prostřední elektromagne tická vazba
Měření rušivých polí a rušivých napětí
Objekt příjímač rušení
Analýza a prognostika složitých systémů z hlediska EMC
Tvorba norem a předpisů EMC
Vývoj a projektování nových systémů s respektováním zásad EMC
Obr. 77: Základní členění oblastí elektromagnetické kompatibility a jejich návaznost
95
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
Tab. 12: Kmitočtový rozsah některých zdrojů rušivých signálů Kmitočtové pásmo poruch Kmitočtové pásmo šířících se po vedení šířících se prostorem 0,1 Hz až 3 MHz 100 Hz až 3 MHz zářivka 0,1 Hz až 1 MHz rtuťová výbojka 2 Hz až 4 MHz 10 Hz až 400 kHz kolektorové motory 0,5 Hz až 25 MHz síťové vypínače 10 Hz až 25 MHz 0,1 Hz až 20 MHz výkonové spínače 0,1 Hz až 30 MHz 0,1 Hz až 30 MHz spínačové zdroje 0,1 Hz až 10 MHz korónový výboj 15 kHz až 400 MHz klopné obvody 30 Hz až 1000 MHz kontakty termostatů 10 Hz až 10 MHz kovové skříně přístrojů neuzemněné Zdroj
poruch
Pro velkou rozmanitost umělých zdrojů rušení lze uvést pouze typické příklady. V elektrických provozech jde hlavně o generátory, vypínače, odpojovače a transformátory velkých elektrických výkonů, vedení velmi vysokého a vysokého napětí, ale také o náhodné zdroje jako sršení na znečištěných izolátorech a uvolněných připojovacích svorkách, korona, různá jiskření apod. V průmyslových provozech k tomu přistupují usměrňovače, obloukové pece, zařízení pro vf ohřev, stykače, svářecí agregáty a zvláště výkonové polovodičové měniče [16,17].
Obr. 78: Typy poruch šířících se po napájecí síti Z dalších zdrojů můžeme jmenovat některé lékařské přístroje, zářivkové osvětlení, spalovací motory, elektrickou trakci, ale i domácí elektrické spotřebiče a některá zařízení spotřební elektroniky. Řadí se k nim také zdroje vytvářející magnetostatická i elektrostatická pole. Všechny zmíněné zdroje je pak možno třídit podle různých hledisek, jako je kmitočtová oblast, časový průběh rušivého napětí, doba trvání, aj. Kmitočtový rozsah některých zdrojů je uveden v
tab. 12., obr. 79 znázorňuje typy poruch, které se šíří po napájecí síti [16,17].
96
FEKT Vysokého učení technického v Brně
Obr. 79: Rušení způsobené spínáním transformátoru Závažné mohou být i vnitřní zdroje rušení. Jako "vysílací antény" slouží veškeré dlouhé přívody, podlouhlé konstrukční díly zařízení, ale i dlouhé vodiče na deskách plošných spojů. Jsou-li na deskách rychlé integrované obvody, potom proudové impulsy na takové desce vyzařují signály se spektrem až v oblasti GHz. Dalším zdrojem rušení jsou spínané napájecí zdroje používané běžně pro napájení digitálních obvodů. Obr. 80 ilustruje vliv tvaru pulsů na spektrální hustotu.
Obr. 80: Kmitočtové spektrum pro různé tvary pulsů
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
97
Zcela zvláštní zdroj rušení by představoval nukleární elektromagnetický impuls (EMP, častěji NEMP = Nuclear Electromagnetic Pulse). Každý jaderný výbuch je kromě běžně známých účinků provázen i vznikem intenzivního elektromagnetického impulsu. Jeho parametry jsou závislé především na velikosti nálože a místě výbuchu vůči zemskému povrchu. Při pozemním jaderném výbuchu je nutno počítat s rušivými i destruktivními účinky na elektrická i elektronická zařízení v okruhu 10 až 100 km od epicentra. Strmost vzrůstu NEMP je 20krát až 100krát vyšší než strmost nárůstu elektromagnetického pole vyvolaného bleskem. Indukované proudy, ať již v pláštích letadel či dlouhých pozemních vedeních, mohou dosáhnout i stovky, ba dokonce i několika tisíc ampérů. [16,17]
9.1 Vazební mechanismy přenosu rušivých signálů Podle základního řetězce EMC na obr. 81 závisí přenos interferenčních signálů z jejich zdroje do přijímače rozhodující měrou na elektromagnetickém vazebním prostředí, tedy na druhu a způsobu vazby mezi zdrojem a přijímačem rušení.
Zdroj elektromagnetického rušení •Motory, spínače, relé, energetické rozvody, polovodičové měniče, zářivky, obloukové pece, svářečky, oscilátory, počítače, číslicové systémy, elektrostatické výboje
Přenosové prostředí, elektromagnetická vazba •vzdušný prostor, energetické kabely, napájecí vedení, zemnění, stínění, signálové vodiče, datové vodiče
Rušený objekt, přijímač rušení •číslicová technika, počítače, měřicí přístroje, automatizační prostředky, systémy přenosu dat, rozhlasové přijímače, TV přijímače Obr. 81: Základní řetězec EMC s příklady pro jednotlivé oblasti řetězce
Tyto vazby můžeme dělit podle různých hledisek. Např. podle technické realizace může být vazební prostředí tvořeno vzdušným prostorem, stínicími či absorpčními materiály, kmitočtovými filtry, signálovými či napájecími kabely, zemnícími systémy, elektroenergetickými soustavami a dalšími druhy systémových vazeb. Z hlediska fyzikálního principu (který je obvykle pro možnost potlačení parazitních vazeb nejdůležitější) rozlišujeme vazbu galvanickou, kapacitní, induktivní a vazbu vyzařováním (vazbu elektromagnetickým polem). Jejich základní principy působení mezi dvěma vodiči nebo obvody 1 a 2 jsou schematicky naznačeny na obr. 82. [16,17, 20]
FEKT Vysokého učení technického v Brně
98
a)
b)
galvanická
c)
kapacitní
d)
induktivní
vyzařováním
Obr. 82: Druhy elektromagnetických vazeb
Galvanické vazby se uplatňují na společných vodičích, kterými jsou nejčastěji vodiče napájecí nebo uzemňovací. Průtokem proudu, který je zdrojem rušení (např. impulsy ze spínaného zdroje, z hodinového oscilátoru, apod.), vzniká na odporu a při vyšších kmitočtech i na indukčnosti vodiče parazitní napětí, které se dostává do rušeného obvodu, má-li tento obvod s rušícím obvodem část společného vedení. Kapacitní vazby vznikají mezi vodiči vedenými blízko sebe, hlavně pak mezi vodiči vedenými ve větší délce paralelně, např. ve svazcích vodičů, v kabelech nebo na deskách plošných spojů. Induktivní vazbu můžeme pozorovat tam, kde rušící proud protéká smyčkou a rušený obvod obsahuje také prostorově blízkou smyčku. Induktivní vazba je tím silnější, čím je větší plocha smyček. Induktivní vazba také vzniká tehdy, pokud přijímací smyčkou prochází rozptylové magnetické pole transformátoru nebo tlumivky. Elektromagnetickou vazbu působí šíření elektromagnetické vlny buď po vedení, nebo volným prostorem. Jako vedení slouží elektromagnetické vlně elektrovodná síť, napájecí vodiče a někdy i vodiče uzemňovací nebo signálové (které přenášejí žádaný signál z jedné části do jiné). Jako anténa fungují jednak vodiče, jednak proudové smyčky. Elektromagnetická vazba je typická pro přenos rušivých signálů mezi prostorově oddělenými zařízeními, zatímco vazba galvanická je spíše typická pro přenos rušivých signálů v rámci jednoho zařízení.
Na cesty přenosu rušivých signálů úzce navazuje problematika přijímačů rušení. Jde především o klasifikaci jednotlivých typů a podrobnou specifikaci rušivých účinků. To spolu s rozborem konstrukčních a technologických parametrů umožňuje např. objevovat příčiny malé odolnosti. Nejcitlivější na rušení jsou elektronická zařízení, která zpracovávají malé analogové signály. Jedná se především o rozhlasové a televizní přijímače, jejichž antény zachycují vedle žádaných signálů i signály poruchové, které se šíří prostorem ve formě elektromagnetických vln. Poruchy se šíří i po elektrorozvodné síti a pronikají do vf a nf obvodů elektronických zařízení, které jsou ze sítě napájeny (především elektroakustická zařízení a měřicí přístroje). Méně citlivé na rušení jsou zařízení digitální techniky. Tato odolnost byla jedním z hlavních důvodů digitalizace v elektronice (přístrojů i přenosových cest). Intenzivní zdroje rušení však mohou rušit i digitální přístroje tím, že silná jednorázová porucha změní hodnotu některého přenášeného bitu. [20] Oblast zabývající se způsoby snižování úrovně (omezování) rušivých napětí a polí produkovaných zdroji rušení se často označuje jako odrušování zdrojů rušení. Zmíněná
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
99
činnost se prakticky projevuje ve dvou hlavních směrech. Prvním z nich je snaha omezit vznik parazitních produktů přímo vhodnou konstrukcí. Ukazuje se, že v řadě případů se při zachování požadované funkce může docílit podstatného snížení rušivých produktů jen za cenu poměrně jednoduchých úprav a nepatrně zvýšených výrobních nákladů. Tato opatření závisí na druhu odrušovaného zařízení. V napájecích obvodech může pomoci použití spínačů spínajících v nule, změna režimu fázového řízení výkonových měničů, použití síťového transformátoru s toroidním jádrem (který má malé rozptylové pole) apod. Startéry zářivek jsou přemostěny odrušovacími kondenzátory, které zkratují vysokofrekvenční složky, vznikající při rozpojení startérového kontaktu. Další šíření do sítě pak omezuje tlumivka, jejíž hlavní funkcí je udržování stabilního výboje. Obdobně potlačujeme rušení od komutátorových motorků (jiskření kartáčů) zapojením kondenzátoru přímo mezi kartáče, další dva kondenzátory spojují kartáče s rušivým signálem s ochranným vodičem, statorové vinutí bývá rozděleno na dvě části, které svou indukčností dále brání šíření poruch. I jiné spínací kontakty přemosťujeme kondenzátory nebo členy RC. Přístroje rozdělujeme na zóny s různou úrovní rušení (často navzájem stíněné). Druhým směrem je doplnění již vyráběných zařízení vhodnými filtry. Největším problémem bývá samotný návrh filtru, vzhledem k obvyklému širokopásmovému charakteru zdroje rušení a značně se měnící impedanci zátěže a i vlastní realizace, v důsledku nedostatku vhodných součástek. Zvláštní pozornost se věnuje hospodaření spektrem (spectrum management) a otázkám spektrální čistoty signálu (kmitočtová syntéza a analýza, šum oscilátorů, synchronizace, filtrace). Snížení vzájemného rušení může vést i ke snižování vysílaných výkonů u sdělovacích systémů. Nezbytný je také pečlivý návrh spojů a desek plošných spojů. Rušivé signály, pronikající galvanickými vazbami od zdroje k přijímači, se omezí nejlépe tím způsobem, že uspořádáme vodiče tak, aby rušící a rušený okruh neměly žádnou společnou část. Jedná se nejčastěji o okruhy napájecí a zemnicí. Když není úplné oddělení okruhů možné, musí mít společná část minimální impedanci, tj. ohmický odpor a indukčnost. Odpor vodiče snížíme zvětšením jeho průřezu, přičemž na tvaru průřezu příliš nezáleží. Indukčnost se sníží použitím vodiče většího průměru. Lepšího efektu však dosáhneme použitím třeba i tenkého, ale širokého vodiče s obdélníkovým průřezem. Kapacitní přenosové cesty se omezí jednak umístěním rušeného okruhu co nejdále od okruhu rušícího, jednak použitím kovového stínění. Vestavění stínící přepážky z mědi nebo hliníku představuje účinné přerušení cesty rušivého signálu, ale bývá prostorově náročné. Použití stínících krytů nebo stíněných vodičů je z hlediska účinnosti rovnocenné, avšak zpravidla dochází ke zvýšení kapacit stíněných prvků proti zemi, což může nepříznivě ovlivňovat funkci zařízení. Zdrojem induktivních vazeb jsou jednak rozptylová pole transformátorů nebo tlumivek, jednak magnetická pole generovaná proudovými smyčkami. Pole smyček se omezí zmenšením jejich plochy. To platí pro smyčku "vysílací" i "přijímací". Při hledání přijímacích smyček si musíme uvědomit, že každý proud teče uzavřeným okruhem, tedy zpětné vodiče mají vést v těsné blízkosti vodičů přívodních. Z hlediska parazitní zpětné vazby by zemní část smyčky měla být samostatná, neměl by tu protékat žádný jiný proud. Na DPS se napájecí vodiče navrhují co nejširší, vedou se planparalelně nebo těsně vedle sebe, jejich součástí jsou blokovací kondenzátory. Rozptylová pole transformátorů a tlumivek se dají potlačit např. použitím hrníčkových nebo ještě lépe toroidních jader. Magnetickou vazbu lze omezit rovněž vhodným natočením zdroje rušivého pole tak, aby napětí indukované tímto polem do rušeného obvodu bylo minimální. Konečně je možné i magnetické stínění. Pro nízké kmitočty vyhovuje stínění z materiálu s velkou permeabilitou, pro kmitočty vysoké je často účinnější stínění měděné, které brání průniku vysokofrekvenčního magnetického pole tím, že se ve stínění indukují
FEKT Vysokého učení technického v Brně
100
vířivé proudy. Nejdokonalejší stínění pro magnetické pole je pak vícenásobné stínění pomocí přepážek či krytů, sestavených z několika vrstev střídavě vodivých a magnetických [16,17]. 9.1.1
Induktivní vazba
Prochází-li obvodem elektrický proud, vzniká v okolním prostoru magnetické pole, a to konstantní nebo proměnné, v závislosti na časovém průběhu proudu. Ve vodičích, které jsou v časově proměnném magnetickém poli se indukuje napětí, jehož velikost roste se zvyšováním kmitočtu, příp. s rostoucí rychlostí časových změn proudu v primárním obvodu. Při časové změně magnetického toku Φ se v obvodu indukuje rušivé napětí dané Faradayovým indukčním zákonem jako dΦ ΔΦ ΔB ΔH 𝑈𝑟 = ≈− = −S ∙ = −μr ∙ S ∙ , (51) dt Δt Δt Δt kde S je plocha smyčky, v níž je rušivé napětí indukováno. Je-li magnetické pole vytvářeno průtokem proudu I vodičem přibližně kruhového průřezu, lze pro jeho intenzitu H ve vzdálenosti r podle Ampérova zákona celkového proudu psát I 𝐻= , (52) 2πr takže indukované rušivé napětí 𝜇0 𝑆 ΔI 𝑈𝑟 ≈ − . (53) 2𝜋𝑟 Δt Parazitní induktivní vazba je nebezpečná zejména v případech rychlých změn primárního (rušivého) proudu velké velikosti. Tyto situace nastávají typicky při elektrostatických výbojích, ať již přírodních (blesk) či umělých lokálních výbojích (ESD). Proudové impulzy bleskového výboje dosahují strmosti jednotek až stovek kA/ms, impulzy lokálních výbojů ESD mají typickou strmost jednotek až desítek A/ns. Dle vztahu (53) tak v řadě případů dochází k indukování nepřípustně velkých rušivých napětí v parazitně vázaných elektronických obvodech. [20] Pro minimalizaci parazitní induktivní vazby mezi obvody je třeba, aby: délka souběžně probíhajících vodičů obou obvodů byla minimální;
vzdálenost obou obvodů byla co největší;
velikost proudové smyčky rušeného obvodu (obvodu přijímače) byla co nejmenší.
Další způsoby omezení parazitní induktivní vazby dvou obvodů či přívodů jsou na obr. 83.
a) pomoci závitu nakrátko
b) kolmým natočením vazebních smyček
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
c) zkroucením vodičů obvodu přijímače
101
d) stíněním obvodu přijímače
Obr. 83: Způsoby omezení induktivní vazby Jak plyne z předchozích rozborů, dochází k významným parazitním induktivním, ale i kapacitním vazbám zejména při souběžném vedení energetických silových kabelů s datovými a signálovými kabely či s kabely řídicích obvodů a systémů. K této situaci přitom dochází téměř ve všech běžných budovách, kde všechny druhy kabelových rozvodů bývají na dlouhých úsecích paralelně vedeny společnými šachtami a stavebními rozvody. Z hlediska maximálního omezení parazitních vazeb mezi kabely je nezbytně nutné jejich rozdělení do samostatných vzájemně elektromagneticky stíněných rozvodných sekcí. Dva obvyklé způsoby konstrukce jsou uvedeny na obr. 84. [20]
Obr. 84: Omezení parazitních vazeb mezi souběžnými kabely jejich separátním vedením ve stíněných sekcích
9.1.2 Kapacitní vazba Kapacitní vazba je způsobena existencí parazitních kapacit mezi vodiči (rušicím a rušeným) nebo mezi jednotlivými částmi obvodů či konstrukce zařízení. Parazitní kapacitou modelujeme elektrické pole, které existuje mezi každými dvěma vodiči (vodivými částmi) s různým potenciálem. Tato situace typicky nastává např. při souběžném vedení energetických a signálových či datových kabelů a linek, příp. při paralelním vedení vodivých drah plošných spojů.
FEKT Vysokého učení technického v Brně
102
V technické praxi existuje velké množství různých variant parazitních kapacitních vazeb mezi různými typy obvodů. Kapacitní vazba galvanicky oddělených obvodů je zobrazena na obr. 85a. Vodiče 1 a 2 představují rušicí vedení, vodiče 3 a 4 rušené vedení. V případě, že délka obou vedení l je podstatně kratší než vlnová délka rušivého signálu o nejvyšším uvažovaném kmitočtu, lze obvod a vazby v něm popsat náhradním schématem podle obr. 85b. V něm je náhradní impedance Zi závislá na impedančních parametrech rušicího obvodu 1-2 a náhradní impedance Zi závisí na impedančních parametrech rušeného obvodu 3 - 4. Ze schématu je zřejmé, že výstupní rušivé napětí Ur rušeného obvodu bude nejmenší při vyvážení příslušného kapacitního můstku, tedy např. při C13 C23 a C14 C24 . Toho lze dosáhnout zkroucením obou párů vodičů (vodiče 1 a 2 a také vodiče 3 a 4), příp. aspoň rušeného vedení, tj. vodičů 3 a 4. Touto úpravou se rovněž sníží parazitní induktivní vazba obou vedení. [20]
a)
b)
Obr. 85: Parazitní kapacitní vazba galvanicky oddělených obvodů
b)
a)
Obr. 86: Snížení kapacitní vazby stíněním galvanicky oddělených obvodů Kapacitní vazbu lze také snížit použitím stíněných vodičů dle obr. 86a, jejichž dobře vodivá stínění S1 a S2 jsou galvanicky spojena s jedním (vztažným) vodičem každého páru vedení (obvodu). Z náhradního obvodu na obr. 86b je patrné, že velikost přeneseného rušivého napětí 𝐶 𝐶 Ur je úměrná poměru kapacit𝐶13 a 𝐶24 podle vztahu (54), ze kterého vyplývá, že stínicí účinek 34
34
je tím lepší, čím větší je kapacita C34 mezi živým vodičem rušeného obvodu a jeho stíněním ve srovnání s kapacitami C13 a C24.
103
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
𝑈𝑟 =𝑈12 *
1 𝐶 𝐶 1 + 𝐶34 + 𝐶34 13
.
(54)
24
S parazitní kapacitní vazbou se nejčastěji setkáváme v analogových a digitálních obvodech, kde se vytváří mezi obvody se společným (vztažným) vodičem, jak je uvedeno obr. 87. Parazitní kapacita C13 ovlivňuje signálový výstup obvodu A, a tím i vstup nesouvisejícího invertoru D. Oba obvody mají společný vztažný vodič 2. Analýzou náhradního schématu lze zjistit kmitočtový průběh parazitního kapacitního přenosu mezi vodičem 1 (rušícím) a 3 (rušeným). Stejný typ vazby také nastává mezi vodiči ve vícežilovém kabelu. [20]
a) možný vznik v číslicových obvodech
b) náhradní schéma
Obr. 87: Kapacitní vazba mezi obvody se společným vodičem Velikost přeneseného rušivého napětí s rostoucím kmitočtem nejprve roste (obr. 88), až na vysokých kmitočtech zůstává konstantní s maximální hodnotou 𝐶13 𝑈𝑟𝑚𝑎𝑥 =𝑈1 * . (55) 𝐶13 + 𝐶23 Parazitní přenosový obvod dle schématu na obr. 87b v podstatě představuje derivační článek. Tato jeho vlastnost se projevuje zejména právě v číslicových obvodech, kde funkční signály mají pulzní charakter. Přenesené rušivé napětí má pak podobu úzkých impulzů, pro jejichž maximální velikost lze odvodit přibližný vztah ∆𝑢1 𝑈𝑟𝑚𝑎𝑥 ≈𝑅23 *𝐶13 , (56) ∆𝑡 ∆𝑢1⁄ kde R23 představuje výsledný odpor mezi vodiči 3 a 2 a ∆𝑡 vyjadřuje časovou změnu napětí výstupu obvodu A na obr. 87a.
FEKT Vysokého učení technického v Brně
104
Obr. 88: Kmitočtová závislost přeneseného rušivého napětí Ze vztahů (54) a (55) plynou potřebná opatření pro snížení tohoto druhu kapacitní vazby: Zmenšit vazební kapacitu C13, čehož lze dosáhnout maximálním vzájemným oddálením obou vodičů 1 a 3 jejich co nejkratším souběžným vzájemným vedením, příp. zamezením jejich souběžnému vedení, volbou co nejmenších průřezů obou vodičů a co nejmenší hodnotou permitivity izolace mezi vodiči, příp. permitivity materiálu desky plošného spoje. Realizovat co největší kapacitu C23, která na vstupu ovlivňovaného obvodu omezuje velikost přeneseného rušivého napětí dle vztahu (54). To lze provést např. vzájemným těsným přiblížením, případně zkroucením vodiče 3 se vztažným vodičem 2. Zajistit nízkoohmové impedanční poměry v navázaném (ovlivňovaném) obvodu, tedy hodnotu R23 udržovat na co nejmenší velikosti. Rychlost časových změn všech signálů v obvodu ∆𝑢⁄∆𝑡 omezit na minimální možnou hodnotu postačující ke správné činnosti daného obvodu. To znamená, že digitální obvody by měly pracovat se signály jen o takových opakovacích kmitočtech, jež jsou nezbytně nutné pro jejich správnou funkci, nikoli se zbytečně vyššími. Vzájemně elektricky odstínit oba ovlivňující se vodiče buď stíněním vodiče, nebo zavedením pomocného stínicího spoje s nulovým potenciálem na desce plošného spoje mezi vodiče 1 a 3, viz obr. 89.
a) stíněním ovlivňovaného vodiče
b) vložením pomocného stínění S na desku plošných spojů
Obr. 89: Omezení kapacitní vazby
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
105
Účinkem stínění S vodiče 3 se zmenší parazitní vazební kapacita C13 a současně se zvětší kapacita C23, což obojí má za následek zmenšení přeneseného rušivého napětí na výstupu vodiče 3. Stínění přitom musí být z dobře vodivého materiálu, aby i na vysokých kmitočtech představovalo dokonalý zkrat. Nebude-li tato podmínka dostatečně splněna, vzniká na vlastní impedanci stínění dle obr. 89a průtokem rušivého proudu napětí, které se přenáší na vstup chráněného obvodu a účinek stínění je nedostačující. Na desce s plošnými spoji lze stínění realizovat pomocí vodivého spoje naneseného mezi vodiče 1 a 3 podle obr. 89b spojeného se vztažným vodičem o nulovém potenciálu. [20] 9.1.3 Galvanická vazba Galvanická vazba, neboli vazba společnou impedancí, je vazbou dvou elektrických systémů či bloků, jejichž proudové smyčky se uzavírají společnými úseky spojovacích vedení, tedy přes společnou impedanci. Tato impedance, která má nejčastěji charakter sériového obvodu RL, může být tvořena např. vnitřní impedancí společného napájecího zdroje obvodu (obr. 90a), společného přívodu řídicích obvodů (obr. 90b) nebo impedancí společného zemnícího systému (obr. 91). Společnou impedancí tečou proudy všech bloků, takže napětí Ur vznikající na této impedanci průtokem proudu prvního bloku představuje pro druhý blok rušivé napětí. Na nízkých kmitočtech (v pásmu kHz) je rozhodující část společné impedance tvořena odporovou složkou R. [20]
a) impedance v napájecím vedení
b) impedance v zemnícím vedení
Obr. 90: Galvanická vazba V oblasti vyšších kmitočtů se uplatňuje především induktivní složka, na níž i poměrně malý proud prvního bloku může při rychlé časové změně vyvolat velké napětí, které je rušivé pro druhý blok zařízení. Indukčnost L společné impedance a kapacity spojů i součástí tvoří navíc rezonanční obvody, jejichž vlivem může být společná impedance (a tím i galvanická vazba) na některých vyšších kmitočtech dosti velká.
Obr. 91: Galvanická vazba společného zemnícího systému
106
FEKT Vysokého učení technického v Brně
Častým případem parazitní galvanické vazby je vzájemná vazba dvou systémů či zařízení zapříčiněná tzv. zemní smyčkou, která vzniká v případě jejich separátního zemnění ve dvou různých bodech. Vlivem nahodilých zemních proudů (tzv. bludných proudů) vzniká mezi těmito body nahodilé rušivé zemní napětí Uz. Podle obr. 92 pak toto napětí přes uzavřenou zemní smyčku vyvolává na vstupu zařízení 2 (spotřebiče) rušivé napětí Ur. Základním principem zmenšení tohoto rušivého napětí je zvětšit celkovou impedanci zemní smyčky, zvýšit její útlum, případně ji elektricky zcela rozpojit. Nízkofrekvenční přerušení zemní smyčky lze realizovat jednobodovým uzemněním celého systému. Zemní smyčka je tak galvanicky rozpojena malou zemní kapacitou zařízení 2 (přijímače) vůči společné zemi. Celkový přenosový útlum takto rozpojené smyčky je na nízkých kmitočtech velmi vysoký, s rostoucím kmitočtem se však zmenšuje až na hodnotu galvanicky uzavřené smyčky. Na vysokých kmitočtech útlum smyčky (i galvanicky uzavřené) nejprve opět roste se vzrůstem její vysokofrekvenční impedance vlivem povrchového jevu, dále však její hodnota periodicky klesá a opět roste tak, jak se zde uplatňuje periodická změna impedance spojovacích vedení obou systémů na velmi vysokých kmitočtech. [20]
Obr. 92: Galvanická vazba společného zemnicího systému Pro minimalizaci galvanických vazeb společnou impedancí napájecích, signálových či zemních obvodů je zejména nutné dostatečně dimenzovat společný zemnicí vodič, zemní plochu a jednotlivé bloky k němu propojovat přímou cestou masivním vodičem. Těmito kroky se sníží velikost vstupního rušivého zemního napětí Uz zemní smyčky. U signálových vodičů je třeba neslučovat společný vodič a nevytvářet společné části napájecích přívodů k jednotlivým blokům, dále také elektronická zařízení různých technologií vybavit samostatnými napájecími zdroji, a pokud je to možné, tak zcela vzájemně galvanicky oddělit např. funkčně související signálové a výkonové obvody jednoho zařízení [20].
9.2 Útlum Pro porozumění dané problematice je nejprve nutné definovat základní parametry, které jsou pro stínicí vlastnosti důležité [20]. Hlavním parametrem je pro nás účinnost stínění SE. Vztah pro účinnost stínění SE [dB] ve vzdáleném elektromagnetickém poli lze definovat následujícím tvarem, který odpovídá fyzikálním mechanismům vzniku stínicího efektu jako SE [dB] = R [dB] + A [dB] + M [dB], (57) kde R je útlum odrazem, A je absorpční útlum a M je útlum mnohonásobnými odrazy. Vliv jednotlivých složek je patrný z obrázku obr. 93.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
107
Obr. 93: Vliv jednotlivých složek na účinnost stínění [20]
9.2.1 Útlum odrazem Útlum odrazem R vzniká vlivem částečného odrazu energie vlny na impedančním rozhraní mezi vzduchem (dielektrikem) s impedancí Z0 a kovovou stěnou přepážky s impedancí ZM a rovněž na "výstupním" rozhraní mezi kovovou stěnou ZM a dielektrikem (vzduchem) Z0. Jeho velikost R v[dB] je (𝑍0 + 𝑍𝑀 )2 𝑅 = 20 ∙ 𝑙𝑜𝑔 | | [dB] , (58) 4𝑍0 𝑍𝑀 přičemž lze zřejmě psát (𝑍0 + 𝑍𝑀 )2 (𝑍0 + 𝑍𝑀 )2 𝑅 = 20 ∙ 𝑙𝑜𝑔 | ∙ | = 𝑅1 + 𝑅2 [dB] (59) 2𝑍𝑀 4𝑍0 Zde R1 (R2) vyjadřuje útlum odrazem vlny na "vstupním" rozhraní vzduch - kompozit ("výstupním" rozhraní kompozit - vzduch). Je-li stínicí stěna vytvořena z dobrého vodiče, kdy Z0 >> ZM , je celkový útlum odrazem (59) přibližně roven 𝑍0 𝑍0 𝑅 ≈ 20 ∙ 𝑙𝑜𝑔 | | [dB] , neboli 𝑅1 ≈ 20 ∙ 𝑙𝑜𝑔 | | (60) 4𝑍𝑀 2𝑍𝑀 Z rovnice (60) je zřejmé, že hlavní útlum odrazem elektrického pole vzniká na "vstupním" rozhraní (elektrické pole je na dobrém vodiči přibližně "nakrátko") a pouze malá část energie vlny postoupí až k "výstupnímu" rozhraní, jehož přenos je přibližně konstantní. Útlum odrazem tedy nezávisí na tloušťce t stínicí stěny, takže účinné elektrické stínění lze vytvořit i z tenké, avšak vysoce vodivé (Z0 >> ZM) přepážky [17, 20]. 9.2.2
Absorpční útlum
Tento útlum vzniká pohlcením části energie elektromagnetické vlny při jejím průchodu stínicí přepážkou o tloušťce t vlivem tepelných ztrát. Účinnost stínění SE (útlum stínění) je rovna
FEKT Vysokého učení technického v Brně
108
𝑆𝐸 = 20 ∙ 𝑙𝑜𝑔
1 𝐸𝑖 =20∙log | | , |𝐾𝑆 | 𝐸𝑡
𝑆𝐸 = 20 ∙ 𝑙𝑜𝑔 |
𝐻𝑖 | [dB] 𝐻𝑡
(61)
kde KS je koeficient stínění, který je definován poměrem intenzity elektrického pole Et (nebo magnetického pole Ht) v určitém bodě stíněného prostoru k intenzitě Ei (Hi) pole dopadajícího na stínicí přepážku (neboli pole v témže bodě bez stínicí stěny) 𝐸𝑡 𝐻𝑡 𝐾𝑆 = , nebo 𝐾𝑆 = (62) 𝐸𝑖 𝐻𝑖 Absorpční útlum A kovové přepážky je roven 𝑡
𝐴 = 20 ∙ 𝑙𝑜𝑔|𝑒 𝛾𝑡 | = 20𝑙𝑜𝑔𝑒 ∆𝑡 = 20 ∙ 𝑙𝑜𝑔𝑒 𝛿 , [dB] kde značí hloubku vniku elektromagnetického pole do kovového materiálu 2 𝛿=√ [dB] 𝜔𝜇𝜎
9.2.3
(63)
(64)
Celková účinnost stínění
Pro celkovou účinnost stínění jsou obvykle nejdůležitější útlum odrazem a absorpční útlum stínicí přepážky [20]. Dosazením 𝜇0 𝑗𝜔𝜇 𝑍0 = √ = 120𝜋 [dB] a 𝑍𝑀 = √ 𝜀0 𝜎
(65)
dostaneme z výrazu (60) pro útlum odrazem 1 𝜎 𝑅 ≈ 20 ∙ 𝑙𝑜𝑔 ( ∙ √ ) [dB] 4 𝜔𝜇𝑟 𝜀0
(66)
když jsme pro kovovou přepážku dosadili = 0r a =0. Je zřejmé, že útlum odrazem je vyšší na nízkých kmitočtech a pro vysoce vodivé materiály. Jeho hodnota s rostoucím kmitočtem klesá se směrnicí -10 dB/dekádu. Nemagnetické stínicí materiály (r=1) vykazují přitom vyšší útlum než feromagnetické materiály (r >> 1). Pro absorpční útlum stínicí přepážky platí vztah 𝑡 𝐴 = 8,69 ∙ = 0,0069 ∙ 𝑡 ∙ √𝜔𝜇𝑟 𝜎 [dB] (67) 𝛿 Absorpční útlum tedy roste s druhou odmocninou kmitočtu na dB stupnici. Vodivé feromagnetické materiály ( r >> 1) mají přitom větší absorpční útlum než stejně vodivé nemagnetické materiály [20]. Útlum odrazem tvoří dominantní složku stínicího účinku na nízkých kmitočtech jak pro magnetické, tak i pro nemagnetické kovové materiály. Na vysokých kmitočtech vzrůstá absorpční útlum a vysoce převyšuje (klesající) útlum odrazem. Tento vzrůst účinnosti stínění na vysokých kmitočtech je přitom výraznější u magnetických kovových materiálů s r >> 1.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
109
Tyto závěry jsou dokumentovány kmitočtovými průběhy obou složek účinnosti stínění útlumu odrazem R a útlumu absorpcí A - na obr. 94.
Obr. 94: Kmitočtový průběh jednotlivých složek účinnosti stínění [20]
9.3 Citlivost logických členů na rušení Jednotlivé logické členy a z nich sestavené logické obvody jsou řešeny tak, aby v případě, že se sejdou všechny nejnepříznivější vlivy (nejhorší případ - worst case), byl zachován ještě statický odstup mezi úrovní 0 a 1, zabraňující chybnému spínání. Jsou-li informační vodiče signálního zařízení vázány indukční nebo kapacitní vazbou s elektrickými obvody, které do nich indukují rušivé signály, pak jen v případě, že indukované rušivé signály jsou menší než zmíněný odstup, zůstávají bez rušivého účinku. Mírou dynamické bezpečnosti nebo odolnosti proti rušení se stává velikost přípustné rušivé kapacity Cs, která váže spojovací vedení mezi dvěma logickými stupni a definovaným zdrojem rušení, aniž se mění napětí na výstupu druhého spínacího obvodu více, než je přípustný odstup. Jako rušivé signály rušivého zdroje se zpravidla používají sledy impulsů, jejichž amplitudy a strmosti čela a týlu odpovídají impulsům, které jsou charakteristické pro danou soustavu logických členů. Převážně jsou takto definovány údaje o odolnosti proti rušení u jednotlivých soustav logických členů. Např. pro soubor logických členů D11, který je středně rychlý a který je založen na využití základního členu NOR, je rušivá kapacita Cs definována jako kapacita, která v zapojení mezi zdrojem rušení a vstupem třístupňového řetězce se členy NOR způsobí na výstupu třetího obvodu stejné rušivé napětí, jaké je na výstupu prvního obvodu. Určení kapacity zde odpovídá nejhoršímu případu. Kapacita vedení se považuje za nulovou. Zároveň předpokládáme, že první a třetí člen je zatížen maximálně a druhý člen minimálně. V krajním případě se tedy předpokládá, že rušivý signál dodávaný přes kapacitu Cs je právě takový, aby dvěma stupni, tj. druhým a třetím, byl zesílen právě jednou. Zapojení určené ke stanovení kapacity CS, pro obvody NOR a NAND ukazuje obr. 95.
110
FEKT Vysokého učení technického v Brně
Obr. 95: Zapojení pro měření vlivu rušivé kapacity na vstupech logických obvodů Jako rušivé signály se používají přechody ze stavu 1 do stavu 0 o amplitudě obvyklé, v soustavě logických členů a o proměnné strmosti. Kapacita Cp slouží k respektování vstupní kapacity a nastavuje se tak, aby spolu se vstupní kapacitou měřeného členu byla 20 pF. Pokud by byl rušivý impuls při průchodu řetězcem zesilován, mohl by vést k chybnému rozhodování logických členů. Jestliže naopak je zesílení těchto zesilovačů, zapojených v kaskádě, pro daný rušivý impuls menší než jedna, je zřejmé, že impuls bude dále zeslabován a nepovede k chybnému spínání členů. Mezním případem, který se při měření vyhledává je zesílení právě rovné jedné, podle něho se určuje hodnota Cs.
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
111
10 Arduino Arduino je open-source platforma založená na mikrokontroleru ATMega od firmy Atmel a grafickém vývojovém prostředí, které vychází z prostředí Wiring. Projekt vznikl v roce 2005 v Itálii ve městě Ivrea. Jeho cílem bylo vytvořit jednoduchou prototypovací platformu pro studenty, která umožní rychlý vývoj a jednoduché používání. Projekt zaznamenal velký úspěch a později začaly vznikat jeho další verze. Software Arduino funguje v operačních systémech Windows, Macintosh OSX a Linux. Jedná se o jednoduché a čisté programovací prostředí vhodné jak pro začátečníky, tak je také zároveň dostatečně flexibilní, čehož využijí i zkušení uživatelé. Celá platforma je postavena jako Open source projekt, takže zkušení programátoři jej můžou snadno rozšířit. Jazyk může být rozšířen přes knihovny C++, techničtí uživatelé mají možnost přepnout z Arduino do programovacího jazyka AVR C, na kterém je založen. Hardware – Arduino je založeno na mikroovladačích ATMEGA8 a ATMEGA168 od Atmelu. Návrhy těchto modulů jsou vydávány pod licencí Creative Commons, takže zkušení designéři obvodů si mohou vytvořit svoji vlastní verzi modulu, rozšiřovat a vylepšovat ji. [18, 19]
10.1 Struktura programu Základní struktura jazyka je vcelku jednoduchá a skládá se nejméně ze dvou funkcí (částí). Pro oddělení bloků příkazů se používají složené závorky. void setup() { příkazy; } void loop() { příkazy; } Funkce setup() je přípravná a provádí se jen jednou na začátku programu a používá se k nastavení pinů (vstup, výstup), nastavení parametrů sériové komunikace apod. Po této funkci následuje funkce loop(). Funkce loop() je výkonná a provádí se stále dokola ve smyčce (čtení vstupů, nastavování výstupů, výpočty apod.). Proto, aby program správně fungoval, musí se použít obě tyto funkce. Funkci setup() použijeme až po deklaraci všech proměnných. setup() Tato funkce musí být v programu obsažena vždy, i když neobsahuje žádné inicializační příkazy. Př. void setup() { pinMode(pin, OUTPUT); }
// nastav 'pin' na výstup
loop() Příkazy, obsažené v těle této funkce, jsou určeny k provádění veškeré činnosti Arduina.
FEKT Vysokého učení technického v Brně
112
Př. void loop() { digitalWrite(pin, HIGH);
// nastav 'pin' na log. 1
delay(500);
// čekej půl sekundy
digitalWrite(pin, LOW );
// nastav 'pin' na log. 0
delay(500); }
// čekej půl sekundy
10.2 Syntaxe {} složené závorky Složené závorky definují začátek a konec bloku kódu. Používají se ve funkcích i ve smyčkách. type function() { příkazy; } Nesmíme zapomenout, že složené závorky musí být párovány! Pokud se uvede pouze jedna závorka, dostaneme se k chybě. V programovacím prostředí lze kliknutím na závorku najít druhou párovací závorku. ; středník Středníkem slouží k tomu, aby ukončil deklaraci i jednotlivé prvky programu a také odděluje prvky ve smyčce. int a = 1;
// proměnná 'a' jako datový typ integer s hodnotou 1
/*… */ blokové komentáře Blokové komentáře slouží pro okomentování kódu a nejsou při spuštění programu viditelné. Komentáře je vhodné používat, abychom pochopili funkci programu, nebo pokud bude používat kód někdo cizí, aby pochopil, co jste zápisem mysleli. Komentáře začínají / * a končí * / a mohou obsahovat více řádků textu. /* Toto je blokový komentář. Znaky musí být vždy v páru! */
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
113
Poznámka: Vzhledem k tomu, že komentáře jsou programem ignorovány, nezabírají žádný paměťový prostor; mohou tedy být hojně používány. Mohou být použity k dočasnému vyřazení celých bloků kódu pro účely ladění. // jednořádkový komentář Jednotlivé řádky komentáře začínají // a končí na konci řádku. Taktéž nezabírají žádný paměťový prostor. // jednořádkový komentář 10.2.1 Proměnné Do proměnné se ukládají číselné hodnoty pro pozdější použití v programu. Proměnné jsou čísla, jejichž hodnota může být průběžně změněna na rozdíl od konstant, jejichž hodnota se nikdy nemění. Následující kód deklaruje proměnnou s názvem inputVariable a přiřadí jí hodnotu, získanou čtením analogové hodnoty vstupního pinu 2: int inputVariable = 0;
// deklaruje proměnnou // a přiřadí jí hodnotu 0
inputVariable = analogRead(2);
// přiřadí proměnné hodnotu // podle analogové hodnoty pinu 2
Proměnnou pojmenujeme 'InputVariable'. První řádek kódu deklaruje, že proměnná bude obsahovat datový typ int (zkratka pro název integer) a nastaví její hodnotu na 0. Druhý řádek nastaví hodnotu proměnné podle analogové hodnoty napětí na pinu 2, která je dostupná jinde v programovém kódu. Jakmile byla proměnné přiřazena nebo změněna hodnota, můžete použít její hodnotu přímo nebo testovat, zda tato hodnota splňuje určité podmínky. Příklad ukazuje tři užitečné operace s proměnnými. Následující kód testuje, zda hodnota proměnné inputVariable je menší než 100, je-li to pravda, pak proměnné inputVariable přiřadí hodnotu 100, a pak nastaví na základě hodnoty proměnné inputVariable prodlevu, která je nyní minimálně 100: if (inputVariable < 100) { inputVariable = 100; } delay(inputVariable);
// testuje, zda je hodnota proměnné méně než 100 // je- li to pravda, je jí přiřazena hodnota 100 // použije hodnotu proměnné jako parametr // funkce delay
FEKT Vysokého učení technického v Brně
114
Poznámka: Proměnným bychom měli pro lepší orientaci v programovém kódu dávat popisné názvy, aby programátor věděl, k čemu je proměnná určena. Proměnná může být pojmenována libovolným jménem, které nepatří mezi klíčová slova v jazyce Arduino. 10.2.2 deklarace proměnných Všechny proměnné musí být deklarovány ještě před jejich prvním použitím a může být deklarována kdekoliv v programu a je použitelná od místa deklarace dále. Deklarace proměnné znamená, že definujete její typ (int, long, float, atd.), nastavíte její jméno a případně přiřadíte počáteční hodnotu. Tyto deklarace postačí v programu provést jen jednou, hodnotu proměnné ale můžete v programu kdykoliv změnit. Následující příklad deklaruje, že proměnná inputVariable je typu integer, a že její počáteční hodnota je rovna nule. To se nazývá jednoduché přiřazení. int inputVariable = 0; 10.2.3 platnost proměnných Globální proměnná je taková proměnná, ke které mají přístup a mohou jí používat všechny funkce a deklarace v programu. Pokud chceme použít globální proměnnou, musíme jí deklarovat na začátku programu ještě před funkcí void setup(). Lokální proměnná je ta, která je definována uvnitř funkce nebo jako součást smyčky. Je dostupná a může být použita pouze uvnitř funkce, uvnitř které byla deklarována. Je tedy možné mít v různých částech téhož programu umístěné dvě nebo více proměnných stejného jména, které obsahují různé hodnoty. To, že přístup ke svým lokálním proměnným má pouze daná funkce zjednodušuje program a snižuje možnost programových chyb. Následující příklad ukazuje, jakým způsobem můžeme deklarovat různé typy proměnných. int value; void setup(){} void loop() { for (int a=0; a<5;) { a++; } float b; }
// proměnná 'value' je viditelná pro všechny funkce // funkce neobsahuje žádné inicializační příkazy // proměnná 'a' je viditelná // jen uvnitř této smyčky // proměnná 'b' je viditelná // jen uvnitř této smyčky
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
115
10.3 Datové typy byte Tento datový typ byte ukládá hodnoty jako 8-bitové číselné hodnoty v rozsahu 0-255, ale bez desetinných míst. byte someVariable = 200; // deklaruje proměnnou 'someVariable' // typ byte int Tento datový typ integer je nejběžnějším způsobem ukládání celých čísel. Ukládá 16bitovou hodnotu v rozsahu -32 768 až 32 767. int someVariable = 2500; // deklaruje proměnnou 'someVariable' //typ integer
Poznámka: Celočíselná proměnná přeteče (podteče), pokud dojde k překročení její maximální nebo minimální hodnoty. Například, je-li x = 32 767 a následná operace zvětší hodnotu o 1, například x = x + 1 nebo x ++, hodnota x je po přetečení rovna -32 768. long Datový typ long je určen pro velká čísla bez desetinných míst. Ukládá hodnotu jako 32-bitovou v rozsahu -2 147 483 648 až 2 147 483 647. long someVariable = 80000; // deklaruje proměnnou 'someVariable' //typ long float Datový typ float je určen pro operace s čísly s plovoucí desetinnou čárkou. Čísla s plovoucí desetinnou čárkou mají větší rozlišení než celá čísla a jsou uložena jako 32bitové hodnoty s rozsahem -3,4028235E38 až 3,4028235E38. float someVariable = 3,14; // deklaruje proměnnou 'someVariable' //typ float Poznámka: Čísla tohoto datového typu mají omezenou přesnost, díky ním může dojít k problémům při porovnávání dvou takových čísel. Matematické operace s plovoucí desetinnou čárkou jsou také mnohem pomalejší než celočíselná aritmetika a je vhodné se jim vyhýbat. pole Polem je množina prvků, ke kterým se přistupuje pomocí indexace. Libovolná hodnota v poli může být zpřístupněna uvedením názvu pole a indexu hodnoty. Indexace začíná od nuly, přičemž první hodnota v poli má index 0. Pole musí být deklarována a můžeme jim přiřadit hodnoty dříve, než je použijeme.
FEKT Vysokého učení technického v Brně
116
int myArray[ ] = {hodnota0, hodnota1, hodnota2...} Stejně tak je možné deklarovat pole tak, že mu určíme datový typ a velikost a později mu přiřadíme hodnoty na pozice dané indexem: int myArray[6]; // deklaruje pole typu integer se sedmi prvky myArray[4] = 7; //přiřadí pátému prvku pole hodnotu 7 Chcete-li načíst do proměnné hodnotu z pole, přiřadíme proměnné název pole a index pozice: x = myArray[3]; // 'x' se nyní rovná 10 Pole jsou často používána v cyklech for, kde přírůstek čítače je zároveň použit jako index pozice pro každou hodnotu pole. V následujícím příkladu definujeme pole pro blikání LED. Použijeme smyčku, jejíž čítač začíná na 0. Hodnota indexu na pozici 0 z pole 'flicker[]' se zapíše do proměnné 'ledPin' (v tomto případě 180), na pinu 10, který je nastaven do analogového módu se objeví PWM modulace s parametry, určenými proměnnou 'ledPin', pozastaví se běh programu na 200 ms. Pak se smyčka znovu opakuje, vybere se další prvek pole podle hodnoty proměnné čítače atd. int ledPin = 10; // LED na pinu 10 byte flicker[] = {180, 30, 255, 200, 10, 90, 150, 60}; // pole 8 prvků void setup() { pinMode(ledPin, OUTPUT); // nastav pin jako výstupní } void loop() { for(int i=0; i<7; i++) {
analogWrite(ledPin,flicker[i]); delay(200); } }
// smyčka pokračuje, dokud // se proměnná 'i' nerovná // počtu // prvků v poli // zapiš do proměnné hodnotu // indexu // z pole // pauza 200 ms
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
117
10.3.1 Konstanty Konstanty se používají k tvorbě přehlednějších programů a jsou rozděleny do několika skupin. true / false Jsou logické konstanty a definují logické úrovně. FALSE je jako 0 (nula), TRUE je 1, ale může nabývat hodnotu různou od 0. if (c == TRUE); { příkazy; } high / low Jsou to konstanty, které definují logickou úroveň pinů. Logická úroveň může být vysoká (high), nebo nízká (low) a jsou používány při čtení nebo zápisu na digitální piny. HIGH - logická úroveň 1, ON, nebo 5 voltů LOW je logická úroveň 0, OFF nebo 0 voltů digitalWrite(13, HIGH); input / output Jsou to konstanty používané ve funkci pinMode() pro přepnutí funkce digitálního pinu na vstup (INPUT) nebo výstup (OUTPUT). pinMode(13, OUTPUT);
10.4 Aritmetické operace Aritmetické operátory jsou: +; -, *, / Vrací součet, rozdíl, součin nebo podíl dvou operandů. y = y + 3; x = x – 7; i = j * 6; r =r/5; Výsledek aritmetické operace je stejného datového typu, jako jsou operandy. Například 11/5 poskytne výsledek 2 namísto 2,2, protože operandy 11 a 5 jsou typu int, výsledek bude taktéž celé číslo. To také znamená, že u aritmetické operace může dojít k přetečení. Jsou-li operandy různých typů, je pro výpočet použit vždy větší typ. Např., jestliže jeden z operandů je typu float a druhý typu int, bude výpočet probíhat v typu float. Zvolte vždy takový datový typ, který dokáže uložit dostatečně velká čísla jako výsledky výpočtů. Mějte na paměti, v kterém okamžiku vaše proměnná přeteče a také to, co se stane při přechodu v opačném směru, např. (0 -1) nebo (0 -32768). Pro matematiku, která vyžaduje
FEKT Vysokého učení technického v Brně
118
zlomky, zvolte proměnné typu float, ale buďte si vědomi jejich nedostatků: zabírají více místa v paměti a výpočet je pomalejší. Poznámka: Pomocí operátoru přetypování např. (int) myFloat lze převést jeden typ proměnné na jiný. Například, n=(int) 4,6 nastaví n=4. složené přiřazení Složené přiřazení kombinuje aritmetické operace s přiřazením hodnoty proměnné.
x ++ x -x += y x-=y x *= y x /= y
// totéž jako x = x + 1, tedy zvětšení hodnoty x o +1 // totéž jako x = x – 1, tedy zmenšení hodnoty x o - 1 // totéž jako x = x + y, tedy zvětšení hodnoty x o hodnotu +y // totéž jako x = x – y, tedy zmenšení hodnoty x o hodnotu - y // totéž jako x = x * y, tedy vynásobení x y // totéž jako x = x / y, tedy podělení x y
relační operátory Porovnání se běžně používá uvnitř příkazu if , kdy se porovnává, zda zadaná podmínka platí. Znak '??' zastupuje v dalším textu některou z následujících podmínek: x == y x != y x
y x <= y x >= y
// x je rovno y // x není rovno y // x je menší než y // x je větší než y // x je menší nebo rovno y // x je větší nebo rovno y
logické operátory Logické operátory se používají při porovnávání dvou výrazů. Tyto operátory vrací hodnotu TRUE nebo FALSE. K dispozici jsou tři logické operátory, AND, OR a NOT, které jsou často používané v příkazu 'if': Logické AND: if (x > 0 && x < 5) Logické OR: if (x > 0 || y > 0) Logické NOT: if (!x > 0)
// Vrací hodnotu TRUE, když oba výrazy jsou TRUE // Vrací hodnotu TRUE, když kterýkoli z prvků je TRUE // Vrací hodnotu TRUE, když oba prvky jsou FALSE
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
119
10.5 Funkce Funkce je část kódu, který je pojmenován, a jenž ve svém těle obsahuje blok příkazů, které jsou provedeny při spuštění této funkce. Činnosti funkcí void setup() a void loop() již byly popsány výše a další vestavěné funkce budou popsány dále. Vlastní funkce mohou vykonávat opakující se úkony a slouží také k udržení přehlednosti programu. Funkce musí být před použitím nejprve deklarovány – určení jakého typu jsou. To je datový typ hodnoty, kterou bude funkce vracet jako výsledek své činnosti, například 'int' (zkratka pro integer), pokud funkce vrací celočíselnou hodnotu. Pokud se nemá vracet žádná hodnota, deklarujeme funkci typu void (prázdná). Po uvedení typu následuje název funkce a v závorce seznam parametrů, předávaných funkci. type functionName(parameters) { příkazy; } Následující funkce delayVal() typu integer slouží v programu k nastavení velikosti zpoždění čtením hodnoty napětí z potenciometru. Nejprve deklarujeme lokální proměnnou 'v', vložíme do ní hodnotu, přečtenou z potenciometru, která může nabývat hodnoty v rozsahu mezi 0 a 1023, pak podělíme tuto hodnotu 4, abychom získali číslo v rozsahu mezi 0 a 255, a nakonec vrátíme tuto hodnotu zpět do hlavního programu.
int delayVal() { int v; v = analogRead(pot); v /= 4; return v; }
// vytvoří dočasnou proměnnou 'v' // přečte hodnotu potenciometru // konverguje číslo z rozsahu 0 až1023 na 0 až 255 // vrátí finální hodnotu 'v'
10.6 Řízení toku programu if Pokud chceme otestovat nějakou podmínku, použijeme příkaz if. Pokud je tvrzení pravdivé (TRUE), program vykoná příkazy uvnitř závorek. Pokud tvrzení pravdivé není (FALSE), program přeskočí příkazy uvnitř závorek. if (someVariable ?? value) { příkazy; } Tento příklad porovnává hodnotu proměnné someVariable s jinou hodnotou, kterou
FEKT Vysokého učení technického v Brně
120
může být opět buď proměnná, nebo konstanta. Pokud je výsledek porovnání hodnot v závorce pravda (TRUE), jsou vykonány příkazy uvnitř složených závorek. Pokud ne, program je přeskočí a pokračuje za nimi. Poznámka: Dejte si pozor na náhodné použití '=' místo '==' v příkazu if (x = 10), zápis je syntakticky správný, ale nastavuje hodnotu proměnné x na hodnotu 10 a výsledkem je tedy vždy pravda (TRUE). Místo '=' je nutno použít výraz '==', tedy (x == 10), který jen testuje, zda x se rovná hodnotě 10, nebo ne. Myslete na '=' jako na "rovná se" na rozdíl od '==' které znamená "se rovná". if .. else Operace 'if .. else' umožňuje rozhodování stylem 'buď – nebo' a větvení programu podle výsledku operace. Například, pokud chcete otestovat stav digitálního vstupu a pak provést nějakou činnost, pokud je vstupní pin ve stavu HIGH nebo naopak provést něco jiného, pokud je vstupní úroveň nízká, můžete to zapsat tímto způsobem: if (inputPin == HIGH) { doThingA; } else { doThingB; } nebo může také předcházet jiné 'if', pokud testujeme více vzájemně se vylučujících podmínek. Testy lze spustit současně. Pamatujte si však, že je možno vždy spustit v závislosti na podmínkách testů jen jednu část kódu: if (inputPin < 500) { doThingA; } else if (inputPin >= 1000) { doThingB; } else { doThingC; } for Příkaz for se používá k několikanásobnému opakování bloku příkazů, uzavřených do složených závorek. Záhlaví smyčky se skládá ze tří částí, oddělených středníkem(;): for (inicializace; podmínka; výraz)
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
121
{ příkazy; } Nejprve je deklarována lokální proměnná 'i' ve funkci přírůstkového čítače. Tato proměnná se deklaruje jen jednou. Za deklarací proměnné následuje podmínka, která se testuje při každém průchodu smyčkou. Dokud je podmínka pravdivá, provedou se příkazy a výrazy, uzavřené ve složených závorkách a podmínka je znovu testována. Když se podmínka stane nepravdivou, smyčka se ukončí. Následující příklad testuje hodnotu proměnné 'i' typu integer, nastavené na 0 a zjišťuje, zda je její hodnota stále menší než 15. Je-li to pravda, zvětší hodnotu proměnné 'i' o 1 a provede příkazy, uzavřené ve složených závorkách: for (int i=0; i<15; i++) // deklaruje proměnnou 'i', testuje, zda je // menší než 15 a pokud ne, zvětší ji o 1 { digitalWrite(13, HIGH); delay(250); digitalWrite(13, LOW); delay(250); }
// nastaví pin 13 na HIGH // čeká 250 ms // nastaví pin 13 na LOW // čeká 250 ms
Poznámka: Programovací jazyk C má smyčky mnohem flexibilnější, než jsou podobné smyčky v jiných programovacích jazycích, včetně BASICu. Některé z prvků záhlaví nebo i všechny tři mohou být vynechány, středníky ale zůstávají povinné. Také pro inicializaci, podmínku výrazu může být použit jakýkoli platný příkaz jazyka C s nezávislými proměnnými. Takto definované záhlaví příkazu if může nabídnout řešení některých neobvyklých programových problémů. while Smyčka while nekonečně cyklicky opakuje, dokud výraz uvnitř závorek nebude nepravdivý (FALSE). Pokud se hodnota testované proměnné nezmění, program smyčku while neopustí. Změnou může být ve vašem programu například inkrementace proměnné, nebo změna podmínky, jakou může být výsledek testu senzoru. while (someVariable ?? value) { příkazy; } Tento příklad testuje, zda je hodnota proměnné 'someVariable' menší než 100 a je-li to pravda, provede příkazy uzavřené mezi závorkami. Tak se bude tato smyčka opakovat až do doby, kdy proměnná 'someVariable' nabyde hodnoty 100 nebo větší. while (someVariable < 100) // test, zda je proměnná menší než 100 { příkazy; // vykonání příkazů
FEKT Vysokého učení technického v Brně
122
// zvětšení proměnné o 1
someVariable++; } do .. while
Tato smyčka pracuje stejně jako smyčka while, jen je rozdíl v tom, že podmínka je testována až na konci smyčky, takže smyčka proběhne vždy alespoň jednou. do { příkazy; } while (someVariable ?? value); Následující příklad přiřadí funkci readSensors() hodnotu proměnné 'x', zastaví činnost na 50 milisekund, poté bude smyčku opakovat, dokud nebude 'x' menší než 50: do { x = readSensors(); delay (50); } while (x < 50);
// přiřaď funkci readSensors() // hodnotu proměnné 'x' // čekej 50 milisekund // znovu na začátek dokud 'x' // není menší než 50
10.7 Vstupy a výstupy Digitální vstupy a výstupy pinMode(pin, mode) Tato konstanta se používá ve funkci void setup() a nastavuje určitý pin na vstup (INPUT) nebo výstup (OUTPUT). pinMode(pin, OUTPUT);
// nastav 'pin' jako výstupní
Digitální piny Arduina jsou standardně nastaveny jako vstupní, takže je není nutno do tohoto stavu znovu nastavovat pomocí funkce pinMode(). Piny nakonfigurované jako vstupní jsou ve stavu vysoké impedance. Na piny ale mohou být připojeny zdvihací (pull-up) rezistory o velikosti 20 až 50 kΩ, které jsou obsaženy v interní struktuře mikrokontroléru. Ve výchozím nastavení mikrokontroléru jsou tyto zdvihací rezistory odpojeny, ale je možno je programově připojit. Provádí se to následujícím způsobem: pinMode(pin, INPUT);
// nastav 'pin' jako vstupní
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
digitalWrite(pin, HIGH);
123
// zapni pull-up rezistory
Všimněte si, ve výše uvedeném příkladu se nepřepíná pin na výstup, je to jen způsob aktivace vnitřního pull-up rezistoru. Poznámka: Piny, nakonfigurované jako výstup, mohou poskytnout proud až 40 mA do jiných za řízení či obvodů. Takový proud postačí pro jasné rozsvícení LED (nezapomeňte na předřadný rezistor), ale není to dostatečný proud pro sepnutí většiny relé, solenoidů nebo motorů. Zkraty na pinech Arduina nebo jejich zatížení nadměrným proudem může obvod výstupního pinu poškodit nebo zničit, případně poškodit celý čip ATmega. Proto je vhodné při připojování výstupního pinu k externímu zařízení použít rezistor s odporem 470 Ω nebo 1 kΩ, zapojeným v sérii s připojovaným zařízením. digitalRead(pin) Funkce digitalRead(pin) přečte hodnoty z určeného digitálního pinu. Výsledkem je vysoká nebo nízká úroveň. Pin může být zadán buď jako proměnná nebo jako konstanta (0-13). value = digitalRead(pin);
// nastav proměnnou 'value' do stejného // stavu, jako má vstupní pin
digitalWrite(pin, value) Nastaví zadaný digitální pin na vysokou (H) nebo nízkou (L) úroveň. Číslo pinu může být zadáno buď jako proměnná nebo jako konstanta (0-13). digitalWrite(pin, HIGH);
// nastav 'pin' na HIGH
Následující příklad čte stav tlačítka, připojeného na digitální vstup, a pokud je sepnuto, rozsvítí LED, připojenou k digitální výstup. int led = 13; int pin = 7; int value = 0; void setup() { pinMode(led, OUTPUT); pinMode(pin, INPUT); } void loop() { value = digitalRead(pin); digitalWrite(led, value); }
// připoj LED na pin 13 // připoj tlačítko na pin 7 // proměnná pro uložení přečtené hodnoty // nastav pin 13 jako výstup // nastav pin 7 jako vstup
// vlož do proměnné 'value' stav // vstupního pinu // nastav hodnotu proměnné 'led' podle // stavu tlačítka
Analogové vstupy a výstupy analogRead(pin) Přečte hodnotu napětí z určeného analogového pinu v 10-bitovém rozlišením. Tato
FEKT Vysokého učení technického v Brně
124
funkce pracuje pouze s analogovými piny (0-5). Výsledné hodnota je celo číselná s rozsahem od 0 do 1023. value = analogRead(pin);
// nastav hodnotu proměnné 'value' // na hodnotu proměnné 'pin'
Poznámka: Analogové piny – na rozdíl od těch digitálních, nemusí být nejprve deklarovány jako vstupní nebo výstupní. analogWrite(pin, value) Zapíše pseudo-analogové hodnoty, generované pomocí hardwarově řízené pulsní šířkové modulace (PWM) na výstupní piny, označené jako PWM. Na novějších Arduinech s čipy ATmega168, tato funkce pracuje na pinech 3, 5, 6, 9, 10 a 11. U starších Arduina s čipy ATmega8 jsou k dispozici pouze piny 9, 10 a 11. Hodnota v rozsahu 0-255 může být zadána jako proměnná nebo konstanta. analogWrite(pin, value);
// zapíše 'value' analogově na 'pin'
Hodnota 0, zapsaná do 'value' nastavuje na zadaném výstupním pinu napětí 0 voltů (log.0), hodnota 255 nastavuje na zadaném výstupním pinu napětí 5 voltů (log.1). Aby bylo možno dosáhnout hodnot napětí mezi 0 a 5 volty, střídá se na výstupním pinu hodnota 0 a 1. Poměr tohoto střídání je určen hodnotou 'value' (0 až 255) – čím vyšší hodnota, tím déle je na pinu vysoká logická úroveň (5 V). Například, pro hodnotu 64 je na pinu úroveň 0 tři čtvrtiny času, a 1 čtvrtinu času, pro hodnotu 128 bude na pinu úroveň 0 polovinu času a 1 druhou polovinu, a hodnota 192 znamená, že na pinu bude hodnota 0 čtvrtinu času a 1 tři čtvrtiny času. Protože se jedná o hardwarovou funkci, bude pin po zavolání funkce analogWrite na pozadí běhu programu generovat nastavenou PWM až do příštího volání funkce analogWrite (nebo do zavolání funkce digitalRead či digitalWrite na stejném pinu). Poznámka: Analogové piny – na rozdíl od těch digitálních, nemusí být nejprve deklarovány jako vstupní nebo výstupní. Následující příklad čte analogovou hodnotu ze vstupního pinu, upraví její hodnotu vydělením čtyřmi a výstupy PWM signál na pinu PWM: int led = 10; int pin = 0; int value; void setup(){} void loop() { value = analogRead(pin); value /= 4; analogWrite(led, value); }
// LED s rezistorem 220 ohm na pinu 10 // potenciometr na analogový pin 0 // definice proměnné value // žádné nastavení není potřebné // přepiš hodnotu 'value' do 'pin' // konvertuj rozsah 0 - 1023 na 0- 255 // vyšli výstupní PW M signal na pin led
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
125
10.8 Časování delay(ms) Pozastaví program na dobu určenou v milisekundách, hodnota 1000 tedy odpovídá jedné sekundě. delay(2000);
// čekej dvě sekundy
millis() Vrací počet milisekund od okamžiku rozběhu aktuálního programu na desce Arduino ve formátu unsigned long. value = millis(); // nastav 'value' shodně s millis() Poznámka: Hodnota této proměnné přeteče (vynuluje se) přibližně po 9 hodinách nepřetržitého běhu Arduina.
10.9 Matematické funkce min(x, y) Vypočítá poměr dvou čísel jakéhokoli datového typu a vrátí menší z nich. value = min(value, 200);
// nastaví 'value' na menší z hodnot // 'value' nebo 200, čímž zajistí, že // proměnná 'value' nepřekročí 200
max(x, y) Vypočítá poměr dvou čísel jakéhokoli datového typu a vrátí větší z nich. value = max(value, 200);
// nastaví 'value' na větší z hodnot //'value' nebo 200, čímž zajistí, že //proměnná 'value' neklesne pod 200
10.9.1 Náhodná čísla randomSeed(seed) Nastavuje hodnotu nebo semínko jako výchozí bod pro funkci random(). randomSeed(value);
// použij hodnotu proměnné 'value' jako semínko
Vzhledem k tomu, Arduino není schopno vytvořit skutečně náhodné číslo, funkce randomSeed umožňuje umístit proměnnou, konstantu, nebo jinou funkci do funkce random. Tento postup pomáhá vytvořit náhodnější "náhodná" čísla. Existuje celá řada různých semínek nebo funkcí, které
FEKT Vysokého učení technického v Brně
126
mohou být použity jako základ funkce random, včetně funkce Millis() nebo dokonce funkce analogRead(), která může číst elektrický šum přes analogový pin. Poznámka: Random seed („náhodné semínko“) je náhodné číslo (nebo pole), které se používá při inicializaci generátoru pseudonáhodných čísel. Generátor při použití jiného semínka vrací jinou sekvenci pseudonáhodných dat. random(max), random(min, max) Funkce random vrací pseudo-náhodná čísla v rozsahu stanoveném hodnotami min a max. value = random(100, 200);
// zapiš do 'value' náhodné // číslo mezi 100-200
Poznámka: Nejprve použijte funkci randomSeed(). Následující příklad vytvoří náhodnou hodnotu mezi 0-255 a použije ji pro řízení úrovně PWM signálu pinu PWM: int randNumber; // proměnná pro uložení náhodného čísla int led = 10; // LED s rezistorem 220 ohm na pin 10 void setup() {} / / nic se nenastavuje void loop() { randomSeed(millis()); // použij funkci millis() jako semínko randNumber = random(255); // ulož náhodné číslo mezi 0 - 255 do proměnné analogWrite(led, randNumber); // zapiš hodnotu proměnné na výstup delay(500); // čekej 0,5 sekundy }
10.10
Komunikace
Serial.begin(rate) Otevře sériový port a nastaví komunikační rychlost pro přenos dat. Typická přenosová rychlost pro komunikaci s počítačem je 9600 bps, ale jsou podporovány i jiné přenosové rychlosti. void setup() { Serial.begin(9600); }
// otevři sériový port // nastav přenosovou rychlost na 9600 bps
Poznámka: Při použití sériové komunikace nelze použít piny 0 (RX) a 1 (TX) současně jako digitální. Serial.println(data) Odešle data na sériový port a přidá k nim automaticky znak CR a LF. Tento příkaz má stejný tvar jako Serial.print(), ale jednodušeji se s ním pracuje, pokud zobrazujeme
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
127
data v programu Serial Monitor. Serial.println(analogValue); // odešli hodnotu proměnné 'analogValue' Poznámka: Další informace o různých možnostech funkcí Serial.println() a Serial.p rint() naleznete na webových stránkách Arduino.cc. Následující jednoduchý příklad čte data z analogového pinu 0 a odesílá tato data je dnou za sekundu do počítače. void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(0)); delay(2000); }
// nastav komunikační rychlost na 9600bps
// odešli analogovou hodnotu // čekej 2 sekundy
FEKT Vysokého učení technického v Brně
128
Seznam použité literatury [1]
Vrba, R., Legát, P., Fujcik, L., Háze, J., Kuchta, R., Mikel, B., Skočdopole, M.: Digitální obvody a mikroprocesory: skripta Brno: Vysoké učení technické v Brně, 2004. 245 s.
[2]
Ercegovac, M., Lang, T., Moreno, J.: Introduction to Digital Systems. USA 1999, 512 s., 978-0471527992
[3]
Laipert, M., Kolář, M., Horčík, Z. Systémový návrh zakázkových integrovaných obvodů. ČVUT Praha : OT Valašské Meziříčí, 1992.
[4]
Kang, S., Leblebici, Y., Z. CMOS Digital Integrated Circuits – Analysis and Design. McGraw-Hill 2002, 654s, 063-9785503910
[5]
Texas Instruments, 74LS51 [online]. 1988 [cit. 28. 1. 2014]. Dostupné na internetu: .
[6]
Vedral J., Fischer M. Elektronické obvody pro měřicí techniku. ČVUT Praha :, 1999, 80-01-01950-0.
[7]
Vojáček A., MRAM - beznapěťové paměti s vlastnostmi SRAM [online]. 2007 [cit. 4. 5. 2014]. Dostupné na internetu: .
[8]
Texas Instruments, Input and Output Characteristics of Digital Integrated Circuits [online]. 1996 [cit. 5. 5. 2014]. Dostupné na internetu: .
[9]
Texas Instruments, Implications of Slow or Floating CMOS Inputs [online]. 1998 [cit. 10. 6. 2014]. Dostupné na internetu: http://www.ti.com/lit/an/scba004c/scba004c.pdf .
[ 10 ] Texas Instruments, Designing With Logic [online]. 1997 [cit. 5. 5. 2014]. Dostupné na internetu: . [ 11 ] Texas Instruments, Understanding Schmitt Triggers [online]. 2011[cit. 10. 6. 2014] Dostupné na internetu: http://www.ti.com/lit/an/scea046/scea046.pdf [ 12 ] Texas Instruments, Understanding and Interpreting Standard-Logic Data Sheets [online]. 2003 [cit. 15. 7. 2014] Dostupné na internetu: http://www.ti.com/lit/an/szza036b/szza036b.pdf [ 13 ] Texas Instruments, SN54/74HCT CMOS Logic Family Applications and Restrictions [online]. 1996 [cit. 10. 7. 2014] Dostupné na internetu: http://www.ti.com/lit/an/scla011/scla011.pdf [ 14 ] Texas Instruments, Logic Guide [online]. 2014 [cit. 5. 5. 2014] Dostupné na internetu: http://www.ti.com/lit/an/scla011/scla011.pdf [ 15 ] Texas Instruments, SN74AVC2T45 [online]. 2014 [cit. 5. 5. 2014] Dostupné na internetu: http://www.ti.com/lit/ds/symlink/sn74avc2t45.pdf [ 16 ] Svačina, J. Electromagnetic Compatibility, Principles and Methods. Volume 2. Brno: Brno University of Technology. (published in Czech), 2001 [ 17 ] Kováč D., Kováčová I., Kaňuch J. EMC z hlediska teorie a aplikace. Praha : BEN, 2006. 80-7300-202-7
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
129
[ 18 ] Arduino, Language Reference [online]. 2014 [cit. 20. 7. 2014] Dostupné na internetu: http://arduino.cc/en/Reference/HomePage [ 19 ] Arduino, [online]. 2014 [cit. 20. 7. 2014] Dostupné na internetu: http://arduino.cz/ [ 20 ] Dřínovský J., Frýza T., Svačina J. Elektromagnetická kompatibilita [online]. 2014 [cit. 7. 7. 2014] Dostupné na: http://www.radio.feec.vutbr.cz/emc/index.php?src=home
FEKT Vysokého učení technického v Brně
130
Seznam obrázků
OBR. 1: OBR. 2: OBR. 3: OBR. 4: OBR. 5: OBR. 6: OBR. 7: OBR. 8: OBR. 9: OBR. 10: OBR. 11: OBR. 12: OBR. 13: OBR. 14: OBR. 15: OBR. 16: OBR. 17: OBR. 18: OBR. 19: OBR. 20: OBR. 21: OBR. 22: OBR. 23: OBR. 24: OBR. 25: OBR. 26: OBR. 27: OBR. 28: OBR. 29: OBR. 30: OBR. 31: OBR. 32: OBR. 33: OBR. 34: OBR. 35: OBR. 36: OBR. 37: OBR. 38: OBR. 39: OBR. 40: OBR. 41: OBR. 42: OBR. 43: OBR. 44: OBR. 45:
PŘÍKLAD OZNAČENÍ PROMĚNNÉ S AKTIVNÍ ÚROVNÍ L .......................................... 7 PRINCIP ZAPOJENÍ PŘEVODNÍKU BCD/7 SEG...................................................... 13 KARNAUGHOVA MAPA PRO ČTYŘI VSTUPNÍ PROMĚNNÉ ..................................... 17 ZOBRAZENÍ MINTERMU A MAXTERMU V KARNAUGHOVĚ MAPĚ ........................ 17 ZOBRAZENÍ A MINIMALIZACE FUNKCE E Z TAB. 6 .............................................. 19 UKÁZKA FUNKCE SE DVĚMA MOŽNÝMI SOUČTOVÝMI TVARY ............................ 19 MAPA REALIZOVANÉ FUNKCE Y ........................................................................ 23 REALIZACE FUNKCE Y NA ZÁKLADĚ SOUČTOVÉHO TVARU ZÁPISU .................... 23 REALIZACE FUNKCE Y NA ZÁKLADĚ SOUČINOVÉHO TVARU ZÁPISU ................... 24 SCHÉMA ZAPOJENÍ OBVODU 74LS51 ................................................................. 25 PŘÍKLADY SCHÉMATICKÝCH ZNAČEK MULTIPLEXORU PRO RŮZNÁ PROVEDENÍ . 26 MULTIPLEXOR ................................................................................................... 26 OBVODOVÉ ZAPOJENÍ FUNKCE E POMOCI MULTIPLEXORU ................................. 28 SCHÉMATICKÁ ZNAČKA DEMULTIPLEXORU ....................................................... 29 VNITŘNÍ ZAPOJENÍ DEMULTIPLEXORU 1 ZE 4, PRAVDIVOSTNÍ TABULKA ............ 29 VNITŘNÍ ZAPOJENÍ DEKODÉRU 1 ZE 4, PRAVDIVOSTNÍ TABULKA ....................... 30 REALIZACE ZADANÉ FUNKCE Y POMOCI DEKODÉRU 1 Z 8 .................................. 30 ZÁKLADNÍ PRINCIP PAMĚTI................................................................................ 34 PAMĚŤ S ORGANIZACI N X 8 .............................................................................. 35 PAMĚŤOVÁ BUŇKA MOS ROM......................................................................... 36 TRANZISTOR S PLOVOUCÍM HRADLEM ............................................................... 36 PROGRAMOVÁNÍ TRANZISTORU S PLOVOUCÍM HRADLEM .................................. 37 UKÁZKA POUZDRA PAMĚTI EPROM ................................................................. 37 BLOKOVÉ SCHÉMA PAMĚTI EPROM ................................................................. 38 BUŇKA EEPROM ............................................................................................. 39 PAMĚŤ FLASH .................................................................................................... 39 NAND X NOR FLASH ....................................................................................... 40 STRUKTURA TUNELOVÉHO PŘECHODU MTJ ...................................................... 41 STRUKTURA BUŇKY MRAM ............................................................................. 42 STRUKTURA BUŇKY MRAM ............................................................................. 42 BUŇKA SRAM V TECHNOLOGII MOS .............................................................. 43 BUŇKA DRAM V TECHNOLOGII MOS .............................................................. 44 DEFINICE ZÁKLADNÍCH PARAMETRŮ ................................................................. 46 REALIZACE LOG. FCE POMOCI DIOD ................................................................... 47 VNITŘNÍ ZAPOJENÍ TTL HRADLA TYPU 7400 .................................................... 47 A)VSTUPNÍ A B) VÝSTUPNÍ CHARAKTERISTIKA HRADLA TTL [1,12] ................. 48 PŘEVODNÍ CHARAKTERISTIKA BIPOLÁRNÍHO HRADLA ...................................... 50 INVERTOR CMOS A) ZAPOJENÍ B) NÁHRADNÍ SCHÉMA ...................................... 53 PŘEVODNÍ CHARAKTERISTIKA INVERTORU CMOS ............................................ 54 PŘEVODNÍ CHARAKTERISTIKA ........................................................................... 56 ZÁVISLOST PROUDU ID NA VSTUPNÍM NAPĚTÍ UVST ............................................ 57 NÁHRADNÍ ZAPOJENÍ INVERTORU CMOS .......................................................... 59 ZÁVISLOST ŠUMOVÉ IMUNITY NA PARAMETRU X .............................................. 59 ELEKTRICKÉ SCHÉMA INVERTORU ..................................................................... 60 NÁHRADNÍ ZAPOJENÍ INVERTORU ...................................................................... 60
Návrh systémů s digitálními integrovanými obvody a mikroprocesory pro integrovanou výuku VUT a VŠB-TUO
OBR. 46: OBR. 47: OBR. 48: OBR. 49: OBR. 50: OBR. 51: OBR. 52: OBR. 53: OBR. 54: OBR. 55: OBR. 56: OBR. 57: OBR. 58: OBR. 59: OBR. 60: OBR. 61: OBR. 62: OBR. 63: OBR. 64: OBR. 65: OBR. 66: OBR. 67: OBR. 68: OBR. 69: OBR. 70: OBR. 71: OBR. 72: OBR. 73: OBR. 74: OBR. 75: OBR. 76: OBR. 77: OBR. 78: OBR. 79: OBR. 80: OBR. 81: OBR. 82: OBR. 83: OBR. 84: OBR. 85: OBR. 86: OBR. 87: OBR. 88: OBR. 89: OBR. 90: OBR. 91: OBR. 92:
131
DEFINICE PULZNÍCH PARAMETRŮ ....................................................................... 61 VOLTAMPÉROVÁ CHARAKTERISTIKA TRANZISTORU T1 ...................................... 61 ZPOŽDĚNÍ HRADLA TPD V ZÁVISLOSTI NA POUŽITÉ TECHNOLOGII A NAPÁJECÍM NAPĚTÍ ............................................................................................................... 69 SNIŽOVÁNÍ NAPÁJECÍHO NAPĚTÍ VLIVEM TECHNOLOGICKÉHO POKROKU [13] .... 70 VÝVOJOVÉ ŘADY INTEGROVANÝCH OBVODŮ ..................................................... 70 OŠETŘOVÁNÍ NEVYUŽITÝCH VSTUPŮ LOGICKÝCH OBVODŮ ............................... 72 OŠETŘOVÁNÍ NEVYUŽITÝCH VSTUPŮ LOGICKÝCH OBVODŮ ............................... 73 PŘÍKLADY ŘEŠENÍ PŘIZPŮSOBOVACÍCH OBVODŮ [1] .......................................... 74 PŘÍKLADY ŘEŠENÍ PŘIZPŮSOBOVACÍCH OBVODŮ................................................ 75 UKÁZKY PROPOJENÍ OBVODŮ V RŮZNÝCH TECHNOLOGIÍCH ............................... 76 UKÁZKY PROPOJENÍ OBVODŮ V RŮZNÝCH TECHNOLOGIÍCH ............................... 77 PŘÍKLADY PŘIZPŮSOBENÍ ÚROVNĚ U ŘADY AHC [10] ....................................... 77 LOGICKÉ SCHÉMA OBVODU SN74AVC2T45 .................................................... 77 VÝHODY OBVODU BUS-HOLD ............................................................................ 78 OŠETŘENÍ SIGNÁLU MECHANICKÝCH KONTAKTŮ ............................................... 79 OŠETŘENÍ SIGNÁLU MECHANICKÝCH KONTAKTŮ ............................................... 79 OŠETŘENÍ SIGNÁLU MECHANICKÝCH KONTAKTŮ PRO UNIPOLÁRNÍ OBVODY ..... 80 ZAPOJENÍ SENZOROVÉHO TLAČÍTKA .................................................................. 81 LOGICKÁ ZATÍŽITELNOST OBVODU .................................................................... 81 BUZENÍ VÝKONOVÉ ZÁTĚŽE ............................................................................... 82 ŘÍZENÍ VÝKONOVÉ ZÁTĚŽE TRANZISTOREM MOS ............................................. 83 ŘÍZENÍ VÝKONOVÉ ZÁTĚŽE TRANZISTOREM MOS ............................................. 83 GALVANICKÉ ODDĚLENÍ POMOCI OPTOČLENU .................................................... 85 GALVANICKÉ ODDĚLENÍ POMOCI OBVODU ISO7310 .......................................... 85 ZLEPŠENÍ STRMOSTI HRAN ................................................................................. 88 SCHITTŮV KLOPNÝ OBVOD [11] ......................................................................... 89 OŠETŘENÍ VSTUPNÍHO TLAČÍTKA POMOCI SCHITTOVA KO [11] ......................... 90 ZAPOJENÍ MONOSTABILNÍCH KLOPNÝCH OBVODŮ .............................................. 90 MONOSTABILNÍ KLOPNÝ OBVODŮ CMOS ........................................................ 91 MONOSTABILNÍ KLOPNÝ OBVODŮ 74LV123...................................................... 92 ROZDĚLENÍ ELEKTROMAGNETICKÉHO RUŠENÍ ................................................... 93 ZÁKLADNÍ ČLENĚNÍ OBLASTÍ ELEKTROMAGNETICKÉ KOMPATIBILITY A JEJICH NÁVAZNOST ....................................................................................................... 94 TYPY PORUCH ŠÍŘÍCÍCH SE PO NAPÁJECÍ SÍTI ...................................................... 95 RUŠENÍ ZPŮSOBENÉ SPÍNÁNÍM TRANSFORMÁTORU ............................................ 96 KMITOČTOVÉ SPEKTRUM PRO RŮZNÉ TVARY PULSŮ .......................................... 96 ZÁKLADNÍ ŘETĚZEC EMC S PŘÍKLADY PRO JEDNOTLIVÉ OBLASTI ŘETĚZCE ...... 97 DRUHY ELEKTROMAGNETICKÝCH VAZEB .......................................................... 98 ZPŮSOBY OMEZENÍ INDUKTIVNÍ VAZBY ........................................................... 101 OMEZENÍ PARAZITNÍCH VAZEB MEZI SOUBĚŽNÝMI KABELY JEJICH SEPARÁTNÍM VEDENÍM VE STÍNĚNÝCH SEKCÍCH .................................................................... 101 PARAZITNÍ KAPACITNÍ VAZBA GALVANICKY ODDĚLENÝCH OBVODŮ ............... 102 SNÍŽENÍ KAPACITNÍ VAZBY STÍNĚNÍM GALVANICKY ODDĚLENÝCH OBVODŮ .... 102 KAPACITNÍ VAZBA MEZI OBVODY SE SPOLEČNÝM VODIČEM ............................ 103 KMITOČTOVÁ ZÁVISLOST PŘENESENÉHO RUŠIVÉHO NAPĚTÍ ............................ 104 OMEZENÍ KAPACITNÍ VAZBY ............................................................................ 104 GALVANICKÁ VAZBA ....................................................................................... 105 GALVANICKÁ VAZBA SPOLEČNÉHO ZEMNÍCÍHO SYSTÉMU ................................ 105 GALVANICKÁ VAZBA SPOLEČNÉHO ZEMNICÍHO SYSTÉMU ................................ 106
132 OBR. 93: OBR. 94: OBR. 95:
FEKT Vysokého učení technického v Brně VLIV JEDNOTLIVÝCH SLOŽEK NA ÚČINNOST STÍNĚNÍ [20] ............................... 107 KMITOČTOVÝ PRŮBĚH JEDNOTLIVÝCH SLOŽEK ÚČINNOSTI STÍNĚNÍ [20] ......... 109 ZAPOJENÍ PRO MĚŘENÍ VLIVU RUŠIVÉ KAPACITY NA VSTUPECH LOGICKÝCH OBVODŮ........................................................................................................... 110