Podstawy techniki mikroprocesorowej dla elektroenergetyków



Podobne dokumenty
Cyfrowe Elementy Automatyki. Bramki logiczne, przerzutniki, liczniki, sterowanie wyświetlaczem

LEKCJA. TEMAT: Funktory logiczne.

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Funkcje logiczne X = A B AND. K.M.Gawrylczyk /55

płytka montażowa z tranzystorami i rezystorami, pokazana na rysunku 1. płytka montażowa do badania przerzutnika astabilnego U CC T 2 masa

Cyfrowe układy scalone c.d. funkcje

PRZERZUTNIKI: 1. Należą do grupy bloków sekwencyjnych, 2. podstawowe układy pamiętające

WSTĘP. Budowa bramki NAND TTL, ch-ka przełączania, schemat wewnętrzny, działanie 2

Tranzystor JFET i MOSFET zas. działania

dwójkę liczącą Licznikiem Podział liczników:

Podstawowe układy cyfrowe

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH

Cyfrowe układy sekwencyjne. 5 grudnia 2013 Wojciech Kucewicz 2

Podstawy elektroniki cz. 2 Wykład 2

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Zapoznanie się z podstawowymi strukturami funktorów logicznych realizowanymi w technice RTL (Resistor Transistor Logic) oraz zasadą ich działania.

UKŁADY CYFROWE. Układ kombinacyjny

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Układy cyfrowe. Najczęściej układy cyfrowe służą do przetwarzania sygnałów o dwóch poziomach napięć:

Ćw. 7: Układy sekwencyjne

WSTĘP DO ELEKTRONIKI

Technika Mikroprocesorowa

Ćwiczenie 24 Temat: Układy bramek logicznych pomiar napięcia i prądu. Cel ćwiczenia

Katedra Przyrządów Półprzewodnikowych i Optoelektronicznych Laboratorium Przyrządów Półprzewodnikowych. Ćwiczenie 4

BADANIE PRZERZUTNIKÓW ASTABILNEGO, MONOSTABILNEGO I BISTABILNEGO

CYFROWE UKŁADY SCALONE STOSOWANE W AUTOMATYCE

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Statyczne badanie przerzutników - ćwiczenie 3

Temat: Pamięci. Programowalne struktury logiczne.

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY

Układy TTL i CMOS. Trochę logiki

Architektura komputerów Wykład 2

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

Ćwiczenie 25 Temat: Interfejs między bramkami logicznymi i kombinacyjne układy logiczne. Układ z bramkami NOR. Cel ćwiczenia

Krótkie przypomnienie

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

Cyfrowe układy scalone

Opracowane przez D. Kasprzaka aka 'master' i D. K. aka 'pastakiller' z Technikum Elektronicznego w ZSP nr 1 w Inowrocławiu.

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

Przykładowe pytania DSP 1

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Proste układy sekwencyjne

Automatyzacja i robotyzacja procesów produkcyjnych

Podział układów cyfrowych. rkijanka

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. Wydział Informatyki, Elektroniki i Telekomunikacji LABORATORIUM.

Cyfrowe układy scalone

LICZNIKI PODZIAŁ I PARAMETRY

Politechnika Białostocka

UKŁAD SCALONY. Cyfrowe układy można podzielić ze względu na różne kryteria, na przykład sposób przetwarzania informacji, technologię wykonania.

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

Projekt Układów Logicznych

Badanie działania bramki NAND wykonanej w technologii TTL oraz układów zbudowanych w oparciu o tę bramkę.

a) dolno przepustowa; b) górno przepustowa; c) pasmowo przepustowa; d) pasmowo - zaporowa.

Cyfrowe układy scalone

Wzmacniacze operacyjne

U 2 B 1 C 1 =10nF. C 2 =10nF

LICZNIKI Liczniki scalone serii 749x

ĆWICZENIE 15 BADANIE WZMACNIACZY MOCY MAŁEJ CZĘSTOTLIWOŚCI

Politechnika Białostocka

SWB - Wprowadzenie, funkcje boolowskie i bramki logiczne - wykład 1 asz 1. Plan wykładu

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

Statyczne i dynamiczne badanie przerzutników - ćwiczenie 2

Zbudować 2wejściową bramkę (narysować schemat): a) NANDCMOS, b) NORCMOS, napisać jej tabelkę prawdy i wyjaśnić działanie przy pomocy charakterystyk

4. Karta modułu Slave

LABORATORIUM. Technika Cyfrowa. Badanie Bramek Logicznych

Państwowa Wyższa Szkoła Zawodowa

Przerzutnik (z ang. flip-flop) jest to podstawowy element pamiętający każdego układu

PoniŜej zamieszczone są rysunki przedstawiane na wykładach z przedmiotu Peryferia Komputerowe. ELEKTRONICZNE UKŁADY CYFROWE

LABORATORIUM ELEKTRONIKI. Jakub Kaźmierczak. 2.1 Sekwencyjne układy pamiętające

Technika Cyfrowa 2 wykład 4: FPGA odsłona druga technologie i rodziny układów logicznych

Wykład Mikroprocesory i kontrolery

Podstawy Informatyki Elementarne podzespoły komputera

Ćw. 8 Bramki logiczne

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

TEST KONKURSOWY CZAS TESTU 40 MIN ILOŚĆ MAKSYMALNA PUNKTÓW 20 INSTRUKCJA:

Układy sekwencyjne. 1. Czas trwania: 6h

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

Automatyka. Treść wykładów: Multiplekser. Układ kombinacyjny. Demultiplekser. Koder

UKŁADY SEKWENCYJNE Opracował: Andrzej Nowak

BADANIE UKŁADÓW CYFROWYCH. CEL: Celem ćwiczenia jest poznanie właściwości statycznych układów cyfrowych serii TTL. PRZEBIEG ĆWICZENIA

WPROWADZENIE Mikrosterownik mikrokontrolery

PODSTAWY TEORII UKŁADÓW CYFROWYCH

Cel. Poznanie zasady działania i budowy liczników zliczających ustaloną liczbę impulsów. Poznanie kodów BCD, 8421 i Rys. 9.1.

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej

Budowa. Metoda wytwarzania

Ćwiczenie 6. Przerzutniki bistabilne (Flip-Flop) Cel

Logiczne układy bistabilne przerzutniki.

Wykład nr 1 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Bramki logiczne. 2. Cele ćwiczenia Badanie charakterystyk przejściowych inwertera. tranzystorowego, bramki 7400 i bramki

Podstawy układów mikroelektronicznych

TEST KONKURSOWY CZAS TESTU 40 MIN ILOŚĆ MAKSYMALNA PUNKTÓW 20 INSTRUKCJA:

4. Funktory CMOS cz.2

LABORATORIUM ELEKTRONIKA I ENERGOELEKTRONIKA BADANIE GENERATORÓW PRZEBIEGÓW PROSTOKĄTNYCH I GENERATORÓW VCO

Ćwiczenie 27C. Techniki mikroprocesorowe Badania laboratoryjne wybranych układów synchronicznych

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych.

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Transkrypt:

Podstawy techniki mikroprocesorowej dla elektroenergetyków Dane kanału 1 Dane kanału 2 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 0 Multipleksacja Zwielokrotnienie czasowe Dane kanałów szczelina szczelina szczelina czasowa czasowa czasowa 1 2 3 001101001101100010010010 Demultipleksacja 0 0 1 1 0 1 0 0 1 1 0 1 1 0 0 0 Dane kanału 1 Dane kanału 2 Dane kanału 3 1 0 0 1 0 0 1 0 kierunek transmisji 1 0 0 1 0 0 1 0 Dane kanału 3 U10 LED D0 D1 D2 D3 D4 D5 D6 D7 34 33 32 31 30 29 28 27 RD 5 WR 36 A0 9 A1 8 RESET 35 CS 8255 6 U1 D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 RESET CS 8255 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 1 2 3 4 5 6 7 8 U2 16 15 14 13 12 11 10 9 1K 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 U2 10K S1 S2 S3 S4 S5 S6 S7 S8 VCC U11 U12 U13 U14 U15 U16 U17 LED LED LED LED LED LED LED VCC R.Kowalik

Informacje Wykładowca: dr inż. Ryszard Kowalik Tel. wew. PW: 5608 Email: Ryszard.Kowalik@ien.pw.edu.pl Konsultacje: GM-213 Literatura: 1. TIETZE U., SCHENK CH.: Układy półprzewodnikowe, Warszawa, WNT, 1996 2. Pełka R.: Mikrokontrolery architektura, programowanie, zastosowania, Warszawa, WKŁ, 1999 3. Daca W.: Mikrokontrolery od układów 8 do 32-bitowych, ZNI MIKOM. Warszawa 2000 4. GAŁKA P., GAŁKA P.: Podstawy programowania mikrokontrolerów 8051, Warszawa, ZNI MIKOM, 1995 5. Z.Czaja: Materiały do wykładu Mikrokontrolery i mikrosystemy 2003, Politechnika Gdańska, 2003 www.pg.gda.pl/~zbczaja/mk.html 2

Spis tematów INFORMACJE...2 SPIS TEMATÓW...3 WSTĘP...6 1. ALGEBRA BOOLE'A...8 1.1. PODSTAWOWE FUNKCJE LOGICZNE...9 1.2. INNE FUNKCJE LOGICZNE...10 2. OPIS FUNKCJI LOGICZNYCH UKŁADY KOMBINACYJNE...11 3. REALIZACJA UKŁADOWA FUNKCJI LOGICZNYCH...13 3.1. REALIZACJA UKŁADOWA FUNKCJI LOGICZNYCH - PRZEGLĄD WŁAŚCIWOŚCI...17 4. UKŁADY LOGICZNE WYKORZYSTYWANE W TECHNICE MIKROPROCESOROWEJ...20 4.1. BRAMKI O WYJŚCIACH Z OTWARTYM KOLEKTOREM...20 4.2. BRAMKI O WYJŚCIACH TRÓJSTANOWYCH...20 4.3. PROSTE UKŁADY KOMBINACYJNE...21 4.3.1. Proste układy kombinacyjne dekoder 1 z n...22 4.3.2. Proste układy kombinacyjne demultiplekser...22 4.3.3. Proste układy kombinacyjne multiplekser...23 4.3.4. Proste układy kombinacyjne dekoder priorytetowy...24 4.4. PROSTE UKŁADY SEKWENCYJNE...25 4.4.1. Przerzutniki FLIP-FLOP...25 4.4.1. Proste układy sekwencyjne przerzutnik FLIP-FLOP...25 4.4.2. Proste układy sekwencyjne przerzutnik RS-kluczowany...26 4.4.3. Proste układy sekwencyjne przerzutnik D-kluczowany...26 4.4.4. Proste układy sekwencyjne przerzutnik wyzwalany impulsem...27 4.4.5. Przerzutniki wyzwalane zboczem (single-edge-triggered flip flops)...28 4.4.6. Liczniki dwójkowe...30 4.4.7. Asynchroniczne Liczniki dwójkowe...31 4.4.8. Synchroniczne Liczniki dwójkowe...32 4.4.9. Rejestry przesuwające...34 4.4.10. Rejestr przesuwający z wpisem równoległym...35 4.5. PAMIĘCI...36 4.5.1. Pamięci statyczne RAM...37 4.5.1. Pamięci statyczne RAM parametry dynamiczne...39 4.5.2. Pamięci dynamiczne RAM...41 4.5.3. Pamięci dynamiczne RAM układ sterowania (kontroler)...43 4.5.4. Pamięci dwubramowe RAM...44 4.5.5. Pamięci RAM jako rejestr przesuwający...46 4.5.6. Pamięci FIFO...47 4.5.7. Pamięci stałe (ROM)...49 4.5.8. Pamięci ROM programowane maską...49 4.5.9. Pamięci programowane w sposób trwały (PROM)...49 4.5.9. Pamięci stałe - PROM...50 4.5.10. Pamięci stałe kasowane promieniami UV - EPROM...51 4.5.11. Pamięci stałe kasowane elektrycznie - EEPROM...54 4.5.12. Pamięć błyskowa - FLASH...55 4.5.13. Układy logiki programowalnej PLD...61 4.6. UKŁADY WSPÓŁPRACY Z WEJŚCIAMI ORAZ WYJŚCIAMI BINARNYMI...71 4.7. UKŁAD WSPÓŁPRACY Z WYŚWIETLACZEM 7 SEGMENTOWYM LED...76 4.8. UKŁAD WSPÓŁPRACY Z KLAWIATURĄ...79 4.9. UKŁAD WSPÓŁPRACY Z WYŚWIETLACZEM LCD...81 4.10. PRZETWORNIKI ANALOGOWO-CYFROWE...86 4.10.1. Konwersja analogowo-cyfrowa przetwornik SAR...88 4.10.2. Konwersja analogowo-cyfrowa przetwornik SS...89 3

4.10.3. Konwersja analogowo-cyfrowa przetwornik SigmaDelta (Σ )...90 4.10.4. Błędy konwersji w przetwornikach A/C...94 4.11. UKŁADY PRÓBKUJĄCO-PAMIĘTAJĄCE (S/H)...96 4.12. UKŁADY KLUCZY I MULTIPLEKSERÓW ANALOGOWYCH...99 4.13. UKŁADY PRZETWORNIKÓW C/A...104 5. BUDOWA I ZASADA DZIAŁANIA MIKROKONTROLERÓW O ARCH. STANDARDOWEJ...107 5.1. STANDARDOWA ARCHITEKTURA MIKROKONTROLERA...109 5.2. UKŁAD WYKONAWCZY...111 5.2.1. Jednostka ALU...111 5.2.2. Rejestry...113 5.3. Tryby adresowania argumentów...115 5.3.1. Formaty instrukcji...116 5.3.2. Podstawowe tryby adresowania...118 5.3.3. Przykładowa lista instrukcji - mikrokontroler 80C51...124 5.4. UKŁAD STEROWANIA...125 5.4.1. Układ oscylatora...125 5.4.2. Układ resetu...129 5.4.3. Cykl wykonania rozkazu...131 5.4.4. Przerwania i sytuacje wyjątkowe...135 5.4.5. Tryby redukcji mocy mikrokontrolera...140 5.5. ARCHITEKTURA SYSTEMU PAMIĘCI MIKROPROCESORA...141 5.5.2. Segmentacja pamięci...146 5.5.3. Stos...147 6. DODATKOWE BLOKI FUNKCJONALNE MIKROKONTROLERÓW...149 6.1. PORTY WEJŚCIA WYJŚCIA...149 6.2. UKŁADY LICZNIKOWE/CZASOWE...153 6.2. UKŁADY LICZNIKOWE/CZASOWE CD. (80C51)...159 6.3. UKŁADY NADZORUJĄCE UKŁAD WATCHDOG...159 6.4. SPECJALIZOWANE UKŁADY KOMUNIKACJI SZEREGOWEJ...161 6.4.1. Interfejs UART...162 6.4.2. Interfejs SPI...172 6.4.3. Interfejs I2C...177 6.4.4. Interfejs CAN...180 6.4.5. Interfejs USB...180 7. WSPÓŁPRACA Z UKŁADAMI ZEWNĘTRZNYMI...182 7.1. STEROWANIE SZYNAMI...184 7.2. WSTRZYMANIE DOSTĘPU DO SZYNY...186 7.3. PRZYŁĄCZENIE ZEWNĘTRZNYCH PAMIĘCI RAM/ROM/EPROM...188 7.4. WSPÓŁPRACA Z PAMIĘCIAMI EEPROM I BŁYSKOWYMI...192 7.5. PRZYŁĄCZANIE PAMIĘCI EEPROM Z DOSTĘPEM SZEREGOWYM...193 7.6. WSPÓŁPRACA Z PAMIĘCIAMI BŁYSKOWYMI...196 7.7. BEZPOŚREDNI DOSTĘP DO PAMIĘCI...202 8. MIKROKONTROLERY DSP...203 8.1. STAŁOPRZECINKOWE DSP NA PRZYKŁADZIE ADSP 2181...203 8.2. ZMIENNOPRZECINKOWE DSP NA PRZYKŁADZIE ADSP-21061 SHARC...209 9. PROGRAMOWANIE MIKROKONTROLERÓW...212 9.1. PROGRAMOWANIE W JĘZYKU ASEMBLERA...212 9.1.1. Asemblery i makroasemblery...214 9.1.2. Przykłady Makroasemblerów...218 9.1.3. Przykłady programów asemblera...220 9.2. PROGRAMOWANIE W JĘZYKU C...223 9.2.1. Kompilatory języka C...223 9.2.2. Przykłady programów w języku C przykład 1...224 9.2.3. Przykłady programów w języku C przykład 2...225 9.2.4. Przykłady programów w języku C przykład 3...227 4

9.2.5. Przykłady programów w języku C przykład 4...229 9.3. NARZĘDZIA WSPOMAGAJĄCE URUCHAMIANIE SYSTEMÓW MIKROPROCE-SOROWYCH...231 9.3.1. Monitory i programy śledzące...231 9.3.2. Symulatory...233 9.3.3. Zintegrowane programy wspomagające uruchamianie...236 10. LITERATURA...238 11. DOKUMENTACJA STEROWNIKA DSM-51 WYK. W LABORATORIUM...239 5

Wstęp Poniżej przedstawiono schemat blokowy oraz ideowy układu mikroprocesorowego, który będzie przez Państwa wykorzystywany w zajęciach laboratoryjnych w semestrze letnim. 6

Jak widać, aby przeanalizować działanie tego układu nie wystarczy poznanie jedynie zasady działania mikroprocesora, trzeba także znać działanie innych układów, które z nim współpracują. Z tego względu, naukę techniki mikroprocesorowej należy rozpocząć od przypomnienia podstawowych wiadomości z zakresu algebry, elektroniki i techniki cyfrowej. Te dziedziny wiedzy legły u postaw działania układów mikroprocesorowych. 1. ALGEBRA BOOLE A 1.1. Podstawowe funkcje logiczne 1.2. Inne funkcje logiczne 2. OPIS FUNKCJI LOGICZNYCH UKŁADY KOMBINACYJNE 3. REALIZACJA UKŁADOWA FUNKCJI LOGICZNYCH 4. UKŁADY LOGICZNE WYKORZYSTYWANE W TECHNICE MIKROPROCESOROWEJ 7

1. Algebra BOOLE'A Budowa układów cyfrowych opiera się na idei wielokrotnego stosowania niewielkiej liczby podstawowych rodzajów układów logicznych. Sposób połączenia tych układów można uzyskać za pomocą algebry Boole a zwanej też algebrą łączeń. W przeciwieństwie do zmiennej w zwykłej algebrze zmienna logiczna może przyjmować dwie wartości dyskretne: - zero logiczne - jedynkę logiczną Rozróżniamy trzy podstawowe działania na zmiennych logicznych: - iloczyn (koniunkcja) y = x1 x2 = x1 x2 = x1x2 - suma (dysjunkcja) y = x1 x2 = x1 + x2 - negacja y = x Dla tych działań obowiązuje szereg praw: - prawo przemienności: y = x1 x2 = x2 x1 y = x1 + x2 = x2 + x1 - prawo łączności: y = x ( x x ) = ( x x x - prawo rozdzielczości: - prawo pochłaniania: - prawo tautologii: - własności negacji: - podwojona negacja: - prawo De Morgana: 1 2 3 1 2 ) 1 + x2 + x3) = ( x1 + x2 ) y = x ( + x y = x - szereg praw dla działań z 0 i 1: ( x x x x x x 1 2 + 3) = 1 2 + 1 3 1 + x2 x3 = ( x1 + x2 ) ( x1 x3 y = x + y = x = y = = 1 ( x1 + x2) x1 x1 + x1 x2 x1 y = x x = x y = x + x = x y = x x y = x + x = 0 = 1 y = ( x) = x y = x + y = x 1 x2 = x1 x2 1 + x2 = x1 x2 y = x 1 = x y = x + 0 = x y = x 0 = 0 y = x +1 = 1 3 3 ) 8

y = 0 = 1 y =1 = 0 Zauważmy, że w przedstawionych prawdach obowiązuje zasada dualności, mówiąca o tym, że jeżeli w którejś z tożsamości zamienimy znaki na + a 0 na 1, to również otrzymamy tożsamość. 1.1. Podstawowe funkcje logiczne Bardzo często przy opisywaniu funkcji logicznych będziemy korzystać z tzw. tablicy prawdy. Tablica 1.1 Tablica prawdy funkcji AND X1 X2 Y 0 0 0 0 1 0 1 0 0 1 1 1 y =1 wtedy i tylko wtedy, gdy x 1i x 2 = 1 1 = Tablica 1.2 Tablica prawdy funkcji OR X1 X2 Y 0 0 1 0 1 1 1 0 1 1 1 0 y =1 wtedy, gdy x 1 = 1 lub x 2 = 1 Przejdźmy do prezentacji fizycznej wspomnianych funkcji. Ze względu na to, że zmienne logiczne przyjmują jedynie dwa stany pracy pod uwagę można brać tylko urządzenia o podobnych właściwościach. Urządzeniami takimi są np. zestyki. W tej reprezentacji funkcji logicznej OR odpowiada obwód przedstawiony na rysunku 1.1 (równoległe połączenie zestyków), natomiast funkcji AND połączenie szeregowe zestyków (rysunek 1.2). x1 x2 Rysunek 1.1. Realizacja funkcji OR na zestykach x1 x2 Rysunek 1.2. Realizacja funkcji AND na zestykach Prawo tautologii przybierze w tej reprezentacji następującą postać: x1 x2 x Rysunek 1.3. Przedstawienie prawa tautologii Innym sposobem reprezentacji zmiennych logicznych mogą być poziomy napięć elektrycznych. Jeżeli wyróżnimy dwa poziomy: 9

- H wysoki, L niski i przypiszemy im stany logiczne w następujący sposób H=1 i L=0, to otrzymamy logikę dodatnią. Przy przyporządkowaniu odwrotnym tzn.: - H wysoki, L niski, ale wartość stanów H=0 i L=1, otrzymamy logikę ujemną. Przy takiej reprezentacji podstawowe funkcje logiczne można realizować za pomocą odpowiednich układów elektronicznych posiadających jedno lub wiele wejść oraz jedno wyjście (rysunek 1.4). x1 x2 F(x) y xn Rysunek 1.4. Układ elektryczny realizujący funkcję logiczną Ponieważ istnieje wiele rozwiązań układowych wspomnianego układu, dla uproszczenia wprowadzono symbole oznaczające funkcję logiczną realizowana przez układ, a nie mówiące nic o jego budowie wewnętrznej. x1 x2 & y=x1+x2 x1 x2 >1 y=x1+x2 x1 x2 1 y=x x1 x2 y=x1+x2 x1 x2 y=x1+x2 x1 x2 y=x x1 x2 y=x1+x2 x1 x2 y=x1+x2 x1 x2 y=x Rysunek 1.5. Symbole podstawowych funkcji logicznych Zauważmy, że pomimo pewnej realizacji układowej opis wejść i wyjść układu pozostał zgodny z opisem logicznym i nie odzwierciedla poziomów napięć występujących w układach. 1.2. Inne funkcje logiczne Poprzednio pokazano, że dowolną funkcję logiczna można przedstawić za pomocą odpowiedniej kombinacji funkcji OR, AND i NOT. Istnieją jednak funkcje złożone, które w technice występują na tyle często, że nadano im własne nazwy. Funkcjami tymi są: - funkcja równoważności, przyjmuje wartość y = 1wówczas, gdy obie zmienne wejściowe są sobie równe: y = EQUIV ( x1, x2) = x1 x2 + x1x2 - funkcja nierównoważności, jest negacją równoważności; y = 1gdy zmienne wejściowe są różne. y = ANTIV ( x1, x2) = x1x2 + x1 x2 Z tablicy prawdy wynika jeszcze inna interpretacja funkcji nierównoważności; funkcja ta jest zgodna z funkcja OR dla wszystkich wartości z wyjątkiem przypadku, gdy wszystkie zmienne wejściowe są równe jeden. Dlatego nosi ona nazwę EXCLUSIVE OR (EXOR) lub sumy modulo 2 (MOD 2) y = EXOR( x1, x2) = x1x2 + x1 x2 Zgodnie z tym funkcję równoważności można nazwać funkcją EXCLUSIVE NOR (EXNOR) y = EXNOR( x, x = x x + x x 1 2 ) 1 2 1 2 10

2. Opis funkcji logicznych układy kombinacyjne Zwykle opis funkcji logicznej podany jest w postaci wspomnianej tablicy prawdy. W celu znalezienia funkcji logicznej spełniającej daną tablicę prawdy należy: - w tablicy prawdy wyszukać wiersze, których wartość zmiennej wyjściowej wynosi 1 - dla każdego z wierszy utworzyć iloczyn tworzących go zmiennych wejściowych w ten sposób, że jeżeli wartość danej zmiennej wynosi 1, to piszemy x i, jeżeli 0 piszemy x i. - poszukiwaną funkcję otrzymujemy tworząc sumę wszystkich znalezionych iloczynów. Przykład: Tablica 2.1. Przykład tablicy prawdy W wierszach 3,5,7 jest y = 1 - wiersz 3 I 3 = x1x2 x3 - wiersz 5 I 5 = x1 x2x3 Wiersz x1 x2 x3 y 1 0 0 0 0 2 0 0 1 0 3 0 1 0 1 4 0 1 1 0 5 1 0 0 1 6 1 0 1 0 7 1 1 0 1 8 1 1 1 0 - wiersz 7 I 7 = x1x2 x3 poszukiwana funkcja jest sumą iloczynów: y = I + I +. Najpierw musimy więc utworzyć iloczyn dla tych wierszy: 3 5 I 7 y = x + + 1x2 x3 x1 x2 x3 x1x2 x3 Po znalezieniu funkcji przystępujemy do jej uproszczenia stosując podane wcześniej prawa algebry Boole a. [ x1x2 + x1 ( x2 + x2 )] x3 = ( x1x2 + x1 ) x3 = ( x1 + x2 )( x1 x1 x3 y = x + 1 x2 x3 + x1 x2 x3 + x1x2 x3 = ) y = ( x1 + x2 ) x3 Jeżeli w tablicy prawdy zmienna wyjściowa częściej przybiera wartość 1 wygodniej jest wstępnie zanegować tablicę, a następnie po znalezieniu funkcji opisującej poddać ją negacji. Innym sposobem znalezienia funkcji opisującej jest zastosowanie tzw. tablicy Karnaugha. Tworzy się ją następująco: - wartości zmiennych wejściowych wpisuje się na brzegach tablicy w taki sposób, aby przy przejściu do kolejnej kratki wartość zmieniała się co najwyżej na jednej pozycji - w kratki wpisuje się wartość zmiennej wyjściowej dla wartości zmiennych wejściowych znajdujących się na brzegach - dla każdej kratki zawierającej wartość 1 tworzymy iloczyn zmiennych wejściowych wg przykładu - sumujemy otrzymane iloczyny otrzymując szukaną funkcję (Jeżeli w kwadracie lub prostokącie o parzystej liczbie kratek są same jedynki, iloczyn całej grupy można otrzymać bezpośrednio, uwzględniając tylko zmienne wejściowe, dla wszystkich kratek grupy mają stałą wartość.) Przykład: 11

Tablica 2.2. 1.4. Przykład tablicy Karnaugha Szukana funkcja to: x 3 x 1 x 2 0 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 x ( + x 1 x3 + x2 x3 = x1 x2 ) 3 12

3. Realizacja układowa funkcji logicznych W dotychczasowych rozwiązaniach zajmowaliśmy się elementami logicznymi nie troszcząc się o ich budowę wewnętrzną. Ma to swoje uzasadnienie w technice, bowiem współczesne układy scalone mają zaznaczone jedynie zaciski zasilania oraz wejść i wyjść. Do realizacji poszczególnych podstawowych funkcji logicznych istnieje wiele technik układowych, które różnią się między sobą: - poborem mocy - P - poziomami L i H - czasem propagacji - t - obciążalnością wyjścia (Termin obciążalność wyjścia bramki określa, ile wejść bramek tej samej rodziny można dołączyć do jednego wyjścia bez zmniejszania jej odporności na zakłócenia.) W ciągu kilkudziesięciu lat historii układów logicznych mieliśmy do czynienia z wieloma technikami układowymi, z których duża część nie jest już stosowana. Do technologii, które odeszły w zapomnienie możemy zaliczyć: - układy RTL (resistor transistor logic) - P = 5mW t = 25ns - układy DTL (diode transistor logic) - P = 180mW t = 175ns - układy TTL (transistor transistor logic) - P = 10mW t = 10ns - układy ECL (emitter coupled logic) - P = 25mW t = 2ns Obecnie używane technologie to: - TTL-LS (coraz mniej) - P = 2mW t = 10ns - HC, HCT, ACT (high speed cmos) - P = 0,3µ W / khz t = 10ns Wyjaśnijmy zasadę działania przykładowych bramek z obu grup, zaczynając od TTL i TTL LS. +5V +5V +5V R1 4k R2 1,6k R4 130 T1 T2 T4 D U1 U2 R3 1k T3 Uwy Rysunek 3.1. Standardowa bramka NAND TTL W standardowej bramce TTL przedstawionej na rysunku 3.1, jeżeli wszystkie wejścia są w stanie H, prąd płynie przez rezystancję R1 i złącze baza-kolektor tranzystora wejściowego spolaryzowane jest w kierunku przewodzenia do bazy tranzystora T2, powodując jego przewodzenie. Jeżeli na jedno z wejść doprowadzimy niskie napięcie, odpowiednie złącze bazaemiter zaczyna przewodzić i przejmuje prąd bazy T2. powoduje to zatkanie tranzystora T2 i przejście wyjścia do stanu H. Wzmacniacz w układzie TTL składa się z tranzystora sterującego T2 i przeciwsobnego wzmacniacza wyjściowego. Gdy tranzystor T2 przewodzi, przewodzi również T3, a T4 jest zatkany. Na wyjściu jest poziom L, a tranzystor T3 może przyjmować duże prądy, pochodzące np. z dołączonych wejść bramek (w stanie L prąd wypływa z wejść). Gdy tranzystor 13

T2 jest zatkany, zatkany jest również T3. W tym przypadku T4 przewodzi i daje poziom H na wyjściu. Tranzystor T4 pracujący jako wtórnik emiterowy może teraz dostarczać dużego prądu wyjściowego i dzięki temu szybko ładować pojemności obciążenia. Standardowe układy TTL tego rodzaju, jak pokazane na rysunku 3.1, są obecnie spotykane rzadko z powodu dużego czasu propagacji wywołanego nasyceniem tranzystorów. Nasyceniu można zapobiec przez dołączenie diody Schottky ego równolegle do złącza kolektor-baza (rysunek 3.2). dzięki napięciowemu sprzężeniu zwrotnemu przy przewodzeniu tranzystora uniemożliwia ona spadek napięcia kolektoremiter poniżej wartości ok. 0,3V. C C B B E Rysunek 3.2.Tranzystor z diodą Schottky ego przeciwdziałającą nasyceniu i jego symbol graficzny Bramka TTL zbudowana z takich tranzystorów Schottky'ego" (bramka TTL-S) jest przedstawiona na rys. 3.3. Jest to uproszczony schemat bramki TTL-S małej mocy, tzw. bramki TTL-LS (Iow power Schottky). Z porównania ze standardową bramką TTL z rys. 3.1 widać, że ma ona rezystancje kolektorowe pięć razy większe, dzięki czemu pobór mocy jest pięć razy mniejszy i wynosi tylko 2 mw. Mimo to czas propagacji bramki nie jest większy i wynosi 10 ns. Wejściowy zespół diod jest zbudowany tak, jak w układzie DTL, z oddzielnych diod. Dioda D (rys. 3.1) w stopniu wyjściowym, służąca do przesunięcia potencjału, została tu zastąpiona układem Darlingtona T3. + 5V + 5V + 5V 20kΩ 8kΩ 120Ω E P t p str = 2mW = 10ns D 1 T 3 T 1 U 1 U 2 D 2 3kΩ T 2 U wy Rysunek 3.3. Bramka NAND TTL LS (74LS00) Charakterystykę przejściową inwertera TTL-S małej mocy przedstawiono na rys. 3.4. Nietrudno zauważyć, że poziom przełączania wynosi ok. 1,1 V. Charakterystyczne dla układów TTL tolerancje są tu zachowane z dużym zapasem. Przy najwyższym dopuszczalnym poziomie L na wejściu, równym 0,8 V, na wyjściu musi być poziom H wynoszący co najmniej 2,4 V. Przy najniższym poziomie H na wejściu, równym 2,0 V, poziom L na wyjściu może wynosić najwyżej 0,4 V. 14

4,8 U wy [V ] 3,2 2,4 1,6 0,8 0 0, 4 0, 8 1, 2 1, 6 2, 0 U we [V ] 2, 8 Rysunek 3.4. Charakterystyka przejściowa bramki TTL LS (Zakreskowane granice tolerancji) Bramki CMOS są rodziną układów logicznych odznaczającą się szczególnie niskim poborem mocy. Układ inwertera pokazany jest na rysunku 3.5. USS G D T2 typu P S Uwe G typu N S D T1 Uwy Rysunek 3.5. Inwerter CMOS Zwraca uwagę fakt, że układ ten składa się wyłącznie z tranzystorów polowych MOS z kanałem wzbogaconym. Źródło tranzystora z kanałem typu n jest połączone z masą, a tranzystora typu p z napięciem zasilania USS. Oba tranzystory pracują więc w układzie ze wspólnym źródłem i wzmacniają napięcie wejściowe, odwracając jego fazę. Każdy z tranzystorów stanowi równocześnie rezystancję obciążenia drugiego tranzystora. Napięcie progowe obu tranzystorów wynosi około 1,5V. Dlatego też przy napięciu zasilania równym 5V przynajmniej jeden z tranzystorów przewodzi. Jeżeli przyjmiemy UWE = 0, przewodzi tranzystor T2 z kanałem typu p, a tranzystor T1 z kanałem typu n jest zatkany. Napięcie wyjściowe jest równe USS. Dla UWE = USS tranzystor T2 jest zatkany, a T1 przewodzi. Napięcie wyjściowe jest równe zeru. Nietrudno zauważyć, że w stanie ustalonym przez układ nie płynie żaden prąd. Niewielki prąd płynie tylko podczas przełączania. Poziomy logiczne zależą od wybranego napięcia zasilania. Dopuszczalny zakres napięcia zasilania układów CMOS jest bardzo duży. Dla układów z bramką krzemową wynosi od 3 do 6V, a dla układów z bramką metalową od 3 nawet do 15V jak pokazano na rysunku 3.6. 15

5 U wy [V ] 4 3 Uss 2 1 I ss Tablica 3.1. 0 1 2 3 4 U we [V ] 5 Rysunek 3.6. Charakterystyki przejściowe bramki CMOS przy napięciu 5V USS = 5V Układ standardowy Układ szybki Typ 74C04 74HC04 Moc strat 0,3µW/kHz 0,5µW/kHz Czas propagacji 90ns 10ns Prąd pobierany przez bramkę CMOS ma trzy składowe: 1. Gdy napięcie wejściowe jest stałe i równe zeru lub Uss, płynie bardzo mały prąd upływu bramek rzędu kilku mikroamperów. 2. Gdy sygnał wejściowy zmienia stan, przez oba tranzystory przepływa prąd przewodzenia. 3. Największy wpływ ma jednak przeładowywanie pojemności tranzystora CT. Przy ładowaniu jest magazynowana energia CTUgS; równocześnie taka sama energia jest przekształcana w tranzystorze na ciepło. Przy rozładowaniu energia zmagazynowana w kondensatorze jest również przetwarzana, na ciepło. W cyklu L-H-L przetworzona zostaje energia W=- CTC/js. Wynika stąd moc strat Pdiss = W/ 1 = W-f= CTUlsf. Ze względu na fakt, że straty wywołane przez prąd przewodzenia są również proporcjonalne do częstotliwości, można je uwzględnić, definiując pojemność mocy strat. Jest ona nieco większa od pojemności CT samego tranzystora. Potencjał rozwartego wejścia układu CMOS jest nieokreślony. Dlatego też wejścia układów CMOS muszą być połączone z masą lub napięciem Uss. Jest to zalecane także w przypadku nieużywanych bramek, gdyż w przeciwnym razie na ich wejściach może ustalić się taki potencjał wejściowy, przy którym przez oba tranzystory popłynie prąd przewodzenia, co pociągnie za sobą wzrost strat. Elektrody bramek tranzystorów polowych z izolowaną bramką są bardzo wrażliwe na ładunki statyczne. W celu uniknięcia uszkodzeń wejścia układów scalonych MOS są zabezpieczone diodami w sposób pokazany na rys. 3.7. Mimo to należy zachować ostrożność. Diody zabezpieczające powodują również dalsze ograniczenie, które należy uwzględnić przy stosowaniu bramek CMOS. U SS U SS U SS D 4 D 2 R 1 T 2 D 3 D 1 T1 U wy Rysunek 3.7. Zabezpieczenie bramek CMOS od wpływu ładunków statycznych 16

Wskutek izolacji złączowej obu tranzystorów polowych T1 i T2, między zaciskami napięcia zasilania powstaje pasożytniczy tyrystor, jak to pokazano na rys. 3.8. Rysunek 3.8. Pasożytniczy tyrystor w bramce CMOS W normalnych warunkach tyrystor ten nie wpływa na pracę układu, ponieważ tranzystory T3 i T4 są zatkane, a ich prądy zerowe płyną przez rezystancję R2 lub R3. Jeżeli jednak jedna z działających jako dodatkowe emitery diod zabezpieczających zostanie spolaryzowana w kierunku przewodzenia, może to spowodować włączenie tyrystora T3, T4. Oba tranzystory przechodzą wtedy w stan przewodzenia i powodują zwarcie napięcia zasilania. Występujące przy tym prądy o dużej wartości powodują zniszczenie układu scalonego. Dla uniknięcia tego zjawiska, zwanego zatrzaskiwaniem, napięcie wejściowe nie powinno być niższe od potencjału masy, ani wyższe od napięcia zasilania. Jeżeli nie da się tego wykluczyć, należy przynajmniej ograniczyć prąd płynący przez diody zabezpieczające do wartości wynoszącej w zależności od technologii od 1 do 100mA. Wystarcza do tego najczęściej zwykła rezystancja szeregowa. Załączanie pasożytniczego tyrystora również nastąpić po podaniu na wyjście napięcia przekraczającego zakres napięć zasilania. 3.1. Realizacja układowa funkcji logicznych - przegląd właściwości W tablicy 3.2 przedstawiono przegląd najczęściej używanych rodzin układów cyfrowych. Podane dane techniczne odnoszą się do pojedynczej bramki. Nietrudno zauważyć, że każda technika realizacyjna istnieje w różnych wykonaniach, różniących się od siebie poborem mocy i czasem propagacji bramek. Wskaźnikiem jakości rodziny układów logicznych jest iloczyn czasu propagacji i strat mocy bramki (wskaźnik energetyczny). Mówi on, czy bramka oprócz małych strat mocy ma również mały czas propagacji. Można więc zauważyć, że nowsze rodziny, jak 74AS, 74ALS, 74F, 10H100 i 100.100 mają bardzo mały wskaźnik energetyczny. Jest to spowodowane zastosowaniem izolacji dielektrycznej i związaną z tym mniejszą wartością pojemności obciążających elementy przy przełączaniu, niż ma to miejsce w przypadku starszych rodzin z izolacją złączową.. Dużym postępem technologicznym są również układy CMOS z bramką krzemową. Przy takich samych właściwościach, są one dziesięć razy szybsze od typów z bramką metalową. Większość rodzin układów cyfrowych oferowanych przez różnych producentów jest oznaczana symbolami różniącymi się tylko częścią literową umieszczoną na początku symbolu. Moc pobierana przez elementy z różnych rodzin układów cyfrowych jest bardzo różna. Z wykresu na rys. 3.9 widać, że układy CMOS są bardzo korzystne przy małych częstotliwościach. Powyżej l MHz różnice mocy strat między układami TTL-S małej mocy i układami CMOS są niewielkie. Godnym podkreślenia jest fakt, że w tym zakresie częstotliwości rośnie również pobór mocy przez układy TTL. Przyczyną tego jest prąd płynący przez przeciwsobny stopień wyjściowy podczas każdego procesu przełączania, powodujący znaczne zwiększenie poboru mocy przy większych częstotliwościach. 17

Tablica 3.2. Przegląd najbardziej rozpowszechnionych rodzin układów TTL, ECL i CMOS Wady tej nie mają układy ECL. Dlatego też przy częstotliwościach powyżej 30 MHz układy ECL odznaczają się samymi zaletami z wyjątkiem ich wysokiej ceny. Rysunek 3.9. Zależność mocy strat od częstotliwości pracy układu 18

Warunkiem wstępnym prawidłowej pracy cyfrowych układów scalonych jest poprawne doprowadzenie napięć zasilających. Wszystkie rodziny układów cyfrowych wytwarzają przy przełączaniu impulsy prądowe w przewodach doprowadzających prąd zasilania. Ponieważ wszystkie sygnały mają za punkt odniesienia potencjał masy, jest wymagane wykonywanie we wszystkich układach scalonych połączeń masy o małej rezystancji i indukcyjności. Na płytce drukowanej warunek ten można spełnić najlepiej przez wykonanie masy w postaci siatki. Przy częstotliwościach powyżej 50 MHz należy raczej wykonać masę w postaci metalizacji całej jednej strony płytki. Aby impulsy prądowe powstające przy przełączaniu nie zakłócały zasilania, musi być ono doprowadzone do układów scalonych w sposób niskorezystancyjny i bezindukcyjny. Jeśli masa jest dobra, zakłócenia impulsowe mogą być odfiltrowane kondensatorami blokującymi. Stosuje się do tego kondensatory ceramiczne o pojemności 10... 100 nf. Nie nadają się do tego celu kondensatory elektrolityczne, ze względu na złe właściwości przy wielkich częstotliwościach. Przeciętnie jeden kondensator powinien przypadać na 2... 5 układów scalonych. 19

4. Układy logiczne wykorzystywane w technice mikroprocesorowej 4.1. Bramki o wyjściach z otwartym kolektorem Niekiedy występuje problem logicznego połączenia wyjść dużej liczby bramek. Przy np. dwudziestu wyjściach byłaby potrzebna do tego bramka o dwudziestu wejściach, do których musiałoby prowadzić dwadzieścia oddzielnych przewodów. Kłopotu tego można uniknąć, stosując bramkę z otwartym kolektorem. Jej stopień wyjściowy stanowi tranzystor npn którego emiter jest połączony z masą. Takie wyjścia można w odróżnieniu od stosowanych zazwyczaj przeciwsobnych stopni wyjściowych bez obaw łączyć równolegle i zaopatrzyć we wspólny rezystor kolektorowy (rysunek 4.1).Potencjał wyjścia przyjmuje stan H tylko wówczas, gdy wszystkie wyjścia są w stanie H. W logice dodatniej otrzymamy więc funkcję AND. Jednakże wiadomo, że wyjście przechodzi w stan L wówczas, gdy jedno lub więcej wyjść ma stan L. W logice ujemnej otrzymamy więc funkcję OR. Ponieważ funkcja logiczna została zrealizowana przez zewnętrzne połączenia galwaniczne, mówimy wówczas o iloczynie galwanicznym lub sumie galwanicznej. Ponieważ wyjścia bramek mają małą rezystancję tylko w stanie L, można je nazwać również wyjściami z aktywnym stanem niskim. Symbol bramki z otwartym kolektorem przedstawia rysunek 4.2. za pomocą wyjść z otwartym kolektorem możemy też zrealizować funkcję OR, stosując iloczyn galwaniczny dla zmiennych zanegowanych. Zgodnie z prawem de Morgana mamy: y * 1 + y2 +... + yn = y1 * y2 *... y n + Rc B1 B2 Bn Uwy Rysunek 4.1. Łączenie wyjść bramek z otwartym kolektorem x1 y x2 Rysunek 4.2. Symbol bramki z otwartym kolektorem Wadą układów z otwartym kolektorem jest wolniejsze narastanie napięcia wyjściowego niż w przypadku elementów z wyjściem przeciwsobnym, ponieważ przełączane pojemności mogą się naładować tylko przez rezystancję R c. 4.2. Bramki o wyjściach trójstanowych Istnieje jeszcze jeden ważny przykład zastosowania, w którym równoległe połączenie wyjść bramek prowadzi do uproszczenia układu: jest to przypadek, gdy jedna z wielu bramek ma decydować o stanie linii sygnałowej w tzw. Magistrali. Zadanie to można rozwiązać przy użyciu bramek z otwartym kolektorem ustawiając w wysoko-impedancyjny stan H wszystkie wyjścia z wyjątkiem jednego. Zasadniczej wady tego rozwiązania, małej szybkości narastania napięcia 20

wyjściowego, można w tym specyficznym zastosowaniu uniknąć, stosując zamiast bramek z otwartym kolektorem tzw. bramki z wyjściem trójstanowym. Jest to typowe wyjście przeciwsobne z tym, że za pomocą dodatkowego sygnału sterującego można je przełączyć w stan tzw. wysokiej impedancji. Stan ten nosi również nazwę stanu Z. Zasadę realizacji takiego układu przedstawiono na rysunku 4.3, na rysunku widać też jego symbol graficzny. + 5V EN & T 2 y X & T 1 EN X EN1 y Rysunek 4.3. Inwerter z wyjściem trójstanowym i jego symbol graficzny Jeśli sygnał zezwolenia EN=1, układ działa jak zwykły inwerter: dla x=1 mamy z 1 =0 i z 2 =1, tzn. T 1 jest zatkany, a T 2 przewodzi. Jeżeli jednak zmienna sterująca EN=0, to z 1 =z 2 =0 i oba tranzystory wyjściowe są zatkane. Jest to stan wysokiej impedancji Z. 4.3. Proste układy kombinacyjne Przez pojęcie układu kombinacyjnego rozumie się układ cyfrowy nie zawierający pamięci. Zmienne wyjściowe są określone jednoznacznie przez zmienne wejściowe. Stanowi to kryterium odróżniające układy kombinacyjne od układów sekwencyjnych, w których zmienne wyjściowe zależą dodatkowo od stanu układu, czyli od jego przeszłości. W układach kombinacyjnych zmienne wyjściowe można przyporządkować zmiennym wejściowym za pomocą tabel prawdy lub funkcji logicznych. Do realizacji technicznej układów kombinacyjnych można stosować pamięci stałe ROM (read only memory), w których zapisuje się tabele prawdy. Zmienne wejściowe są wówczas adresami. Druga możliwość polega na użyciu bramek lub ukladów logiki programowalnej PLD (programmable logic devices), za pomocą których realizuje się funkcje logiczne. W dalszym ciągu zajmiemy się kilkoma prostymi układami. Układy kombinacyjne są często stosowane do przeliczeń i przekodowywania liczb. Aby te liczby móc przedstawić za pomocą zmiennych logicznych, należy je przekształcić w ciąg informacji dwuwartościowych (binarnych). Jedna taka pozycja binarna nosi nazwę bitu. Specjalnym przypadkiem binarnego przedstawienia liczb jest kod dwójkowy, w którym poszczególne pozycje są uszeregowane według rosnących potęg liczby 2. Cyfra 1 jest wtedy identyfikowana z logiczną jedynką, a cyfra 0 - z zerem logicznym. Zmienną logiczną przypisaną poszczególnym pozycjom będziemy oznaczać małymi literami, a całą liczbę - wielką literą. N- pozycyjna liczba ma więc w kodzie dwójkowym postać X N = x N-1 2 N-1 + x N-2 2 N-2 +... + x 1 2 1 + x 0 2 0 Należy oczywiście zawsze rozróżniać, czy chcemy przeprowadzić działanie arytmetyczne na cyfrach, czy też zrealizować funkcję zmiennych logicznych. Różnicę tę wyjaśnimy jeszcze raz na przykładzie. Załóżmy, że chcemy dokonać obliczeń odpowiadających wyrażeniu 1 + 1. Jeżeli znak +" potraktujemy jako rozkaz dodawania w systemie dziesiętnym, otrzymamy zależność: 1+1=2 21

Natomiast dodawanie w systemie dwójkowym daje: 1 + 1 = 10B (czytaj: jeden zero). Jeżeli znak +" potraktujemy jako sumę zmiennych logicznych, otrzymamy: 1+1=1 4.3.1. Proste układy kombinacyjne dekoder 1 z n Dekoder 1 z n jest układem o n wyjściach i log 2 n wejściach. Wyjścia y 1 są ponumerowane od 0 do (n - 1). Wyjście jest w stanie jeden wtedy, kiedy wprowadzona liczba dwójkowa A jest równa numerowi tego wyjścia. W poniższej tablicy przedstawiono tablicę prawdy dekodera 1 z 4. Zmienne a 0 i a 1 przedstawiają liczbę A w kodzie dwójkowym. Można z niej bezpośrednio odczytać postać normalną sumy dla funkcji konwersji kodu. Odpowiednią realizację przedstawiono na rysunku 4.4. a 0 a 1 1 1 & & & & y 0 y 1 y 2 y 3 A a 1 a 0 y 3 y 2 y 1 y 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 2 1 0 0 1 0 0 3 1 1 1 0 0 0 Rysunek 4.4. Realizacja funkcji dekodera Przy realizacji scalonej w postaci układu monolitycznego, zamiast bramki AND używa się często bramki NAND. Zmienne wyjściowe są więc najczęściej zanegowane. Tablica 4.1. Najczęściej używane typy dekoderów 1 z n Typy układów scalonych: TTL CMOS dziesięciowyjściowe 74LS42 4028 4.3.2. Proste układy kombinacyjne demultiplekser Za pomocą demultipleksera można doprowadzać informację wejściową do różnych wyjść. Stanowi on rozszerzenie dekodera 1 z n. Zaadresowane wyjście nie przechodzi do stanu jeden, lecz przyjmuje wartość zmiennej wejściowej d. Na rysunku 4.5 pokazano zasadę jego pracy, posługując się bramkami logicznymi. Jeżeli x = const. = 1, demultiplekser pracuje jako dekoder 1 z n. Najczęściej używane typy demultiplekserów zebrano w tablicy poniżej. 22

a 0 a 1 1 1 & y 0 & y 1 & y 2 d & y 3 A a 1 a 0 y 3 y 2 y 1 y 0 0 0 0 0 0 0 1 1 0 1 0 0 d 0 2 1 0 0 d 0 0 3 1 1 d 0 0 0 Rysunek 4.5. Realizacja funkcji demultipleksera Tablica 4.2. Najczęściej używane typy demultiplekserów Typy układów scalonych: TTL CMOS 16 wyjściowe 74LS154 5414 8 wyjściowe 74LS138 74HC138 4.3.3. Proste układy kombinacyjne multiplekser Układ działający odwrotnie do demultipleksera nazywa się multiplekserem. Wykorzystując schemat ideowy z rys. 4.5 można go zrealizować przez zamianę wyjścia z wejściem. Powstaje wówczas układ przedstawiony na rys. 4.6. Na tej podstawie można w bardzo prosty sposób wytłumaczyć jego działanie: dekoder 1 z n wybiera to z n wejść, którego numer jest zgodny z wprowadzoną liczbą, i łączy je z wyjściem. Na rysunku 4.6. przedstawiono także odpowiednią realizację multipleksera za pomocą bramek logicznych. Rysunek 4.6. Zasada działania multipleksera i jego układ logiczny W technice CMOS multiplekser można zrealizować zarówno za pomocą bramek, jak i kluczy analogowych (bramek transmisyjnych transmission gates). Jak widać z porównania rys. 4.5 i 4.6, 23

multiplekser zbudowany przy zastosowaniu kluczy analogowych staje się identyczny z demultiplekserem. W tym przypadku układ nosi nazwę analogowego multipleksera / demultipleksera. Rysunek 4.7. Multiplekser z bramkami z otwartym kolektorem Rysunek 4.8. Multiplekser z bramkami trójstanowymi Potrzebną w multiplekserach funkcję OR można zrealizować w postaci sumy galwanicznej, np. wykorzystując bramki z otwartym kolektorem (rys. 4.7). Ponieważ w logice dodatniej otrzymuje się w tym przypadku funkcję AND, należy - tak jak na rys. 4.1 - przejść na sygnały zanegowane. Jeżeli chcemy uniknąć wady związanej z otwartym kolektorem, tzn. wzrostu czasu propagacji t plh, możemy połączyć równolegle wyjścia bramek trójstanowych, z których zawsze tylko jedna jest włączona. To rozwiązanie przedstawiono na rys. 4.8. Możliwości realizacji funkcji OR przedstawione na rys. 4.7 i 4.8 nie są stosowane w scalonych rnultiplekserach. Mają one jednak znaczenie wówczas, gdy źródła sygnałów wejściowych multipleksera są rozmieszczone w różnych miejscach. Najczęściej używane typy multiplekserów zestawiono w tabl. 4.3. Tablica 4.3. Scalone multipleksery. CMOS analogowy oznacza multiplekser/demultiplekser z bramkami transmisyjnymi 4.3.4. Proste układy kombinacyjne dekoder priorytetowy Do zamiany kodu 1 z n na kod dwójkowy można zastosować dekoder priorytetowy. Na jego wyjściach pojawia się liczba dwójkowa odpowiadająca najwyższemu numerowi wejścia, na którym jest jedynka. Wartość zmiennych wejściowych o niższych numerach nie jest istotna. Nazwa dekoder priorytetowy wzięła się stąd, że za pomocą tego układu można zdekodować nie tylko kod 1 z n, lecz także kod, w którym jedynki występują we wszystkich pozycjach położonych niżej. Tablica prawdy kodera priorytetowego jest przedstawiona tablicy 4.4. 24

Tablica 4.4. Tablica prawdy kodera priorytetowego J x9 X8 X6 X6 X5 X4 X3 X2 X1 y1 y1 y1 yo 0 0 0 0 0 0 0 0 0 0 0 0 0 0! 0 0 0 0 0 0 0 0 1 0 0 0 1 7 0 0 0 0 0 0 0 1 x 0 0 1 0 3 0 0 0 0 0 0 1 x x 0 0 1 1 4 0 0 0 0 0 1 x x x 0 1 0 0 5 0 0 0 0 1 x x x x 0 1 0 1 6 0 0 0 1 x x x x x 0 1 1 0 7 0 D 1 x x x x x x 0 1 1 1 8 0 1 x x x x x x x 1 0 0 0 9 1 x x x x x x x x 1 0 0 1 Tablica 4.5. Najczęściej używane dekodery priorytetowe Typy układów scalonych: TTL CMOS Kod 1 z 10 SN 74147 5414 Kod 1 z 8 z możliwością rozszerzenia SN74148 MC 14532 4.4. Proste układy sekwencyjne Przez pojęcie układu.sekwencyjnego rozumie się taki układ elementów cyfrowych służący do realizacji zależności logicznych, który może zapamiętywać poszczególne stany zmiennych. W odróżnieniu od układów kombinacyjnych zmienne wyjściowe y zależą więc nie tylko od zmiennych wejściowych x, lecz dodatkowo od przeszłości, która jest reprezentowana przez stan przerzutników (wewnętrzny stan układu). 4.4.1. Przerzutniki FLIP-FLOP Jeżeli dwie bramki NOR połączymy w sposób pokazany na rys. 4.9, to otrzymamy przerzutnik (FLIP-FLOP). Ma on dwa dopełniające się wyjścia Q i Q oraz dwa wejścia S (set) i R (reset). Jeżeli na wejścia podamy S = 1 i R = 0, otrzymamy: Q = S + Q = 1 + Q = 0, Q = R + Q = 0 + 0 = 1 Oba wyjścia przyjmują więc rzeczywiście stany dopełniające się. Rysunek 4.9. Przerzutnik RS zbudowany z bramek NOR i jego tablica praejść 4.4.1. Proste układy sekwencyjne przerzutnik FLIP-FLOP W analogiczny sposób dla R = 1 i S = 0 otrzymamy odwrotny stan wyjść. Jeżeli R = S = 0, zostaje zachowany poprzedni stan wyjść. Na tym właśnie polega zastosowanie przerzutnika RS jako elementu pamięci. Dla R = S = 1 oba wyjścia są równocześnie równe zeru, jeżeli jednak w następnej chwili R i S staną się równocześnie równe zeru, stan wyjść jest nieokreślony. Dlatego stan wejść R = S = 1 jest w zasadzie niedozwolony. Zestawienie stanów przerzutnika zamieszczono w tablicy przejść na rys. 4.9. 25

Rysunek 4.10. Przerzutnik RS zbudowany z bramek NAND i jego tablica przejść Równanie logiczne nie ulega zmianie, jeżeli zanegujemy wszystkie zmienne i zamienimy między sobą operacje (+) i (*). Jeżeli zasadę tę zastosujemy w tym przypadku, otrzymamy przerzutnik RS zbudowany z bramek NAND (rys. 4.10) o takiej samej tablicy przejść, jak podana na rys. 4.9. Należy jednak pamiętać, że teraz mamy do czynienia ze zmiennymi wejściowymi S i R. Jego tablicę przejść dla zmiennych wejściowych R i S przedstawia rys. 4.10. 4.4.2. Proste układy sekwencyjne przerzutnik RS-kluczowany Często jest potrzebny przerzutnik RS, który reaguje na stan wejść tylko w określonym czasie. Czas ten ma określać dodatkowa zmienna taktująca C. Na rysunku 4.11 przedstawiono taki kluczowany przerzutnik RS (clocked RS flip flop). Dla C = 0 mamy R = S = 1. W tym przypadku przerzutnik pamięta poprzedni stan. Dla C = 1 mamy R=R' i S=S', czyli przerzutnik zachowuje się jak normalny przerzutnik RS. Rysunek 4.11. Przerzutnik RS kluczowany 4.4.3. Proste układy sekwencyjne przerzutnik D-kluczowany W dalszej kolejności zbadamy, jak w przerzutniku z rys. 4.11 można zapamiętać wartość zmiennej logicznej D. Stwierdziliśmy, że Q = S, jeśli na wejścia podamy dopełniające się stany i jeśli C = 1. Aby zapamiętać wartość zmiennej D, należy tylko spełnić warunek S = D i R = D. Do tego służy inwertor B5 na rys. 4.12. W powstałej w ten sposób komórce pamięci mamy Q = D tak długo, jak długo sygnał zegarowy C = 1. Wynika to również z tablicy przejść pokazanej na rys. 4.12. Ze względu na tę właściwość taka kluczowana komórka pamięci nosi nazwę przerzutnika D typu zatrzask" (data latch). Rysunek 4.12. Przerzutnik D typu zatrzask i jego tablica przejść 26

Jeżeli C = 0, aktualny w danej chwili stan wyjść zostaje zapamiętany. Nietrudno zauważyć, że bramka NAND B 4 na rys. 4.12 dla C = 1 jest inwertorem zmiennej D. Umożliwia to zaoszczędzenie inwertora B5 i prowadzi do praktycznej realizacji przerzutnika D przedstawionej na rys. 4.13. Na tym rysunku przedstawiono także jego symbol graficzny. Rysunek 4.13. Realizacja praktyczna przerzutnika D typu zatrzask i jego symbol graficzny Tablica 4.6. Najczęściej używane przerzutniki D typu zatrzask Typy układów scalonych: TTL CMOS Zatrzask 74L575 4042 4.4.4. Proste układy sekwencyjne przerzutnik wyzwalany impulsem Do wielu zastosowań, jak np. liczniki i rejestry przesuwające, przerzutniki proste nie nadają się. W tych zastosowaniach są potrzebne przerzutniki zapamiętujące stany wejściowe i przekazujące je na wyjścia dopiero po ponownym zablokowaniu wejść. Składają się one z dwu przerzutników prostych: przerzutnika głównego (master) na wejściu i przerzutnika pomocniczego (slave) na wyjściu. Na rysunku 4.14 pokazano przerzutnik wyzwalany impulsem (two-edge triggered flip-flop) typu master-slave zbudowany z dwu kluczowanych przerzutników RS z rys. 10.5. Oba przerzutniki są blokowane na przemian sygnałem zegarowym C. Do inwersji sygnału zegarowego służy bramka B15. Gdy sygnał zegara C = 1, informacja wejściowa jest wczytywana do przerzutnika głównego. Stan wyjść nie ulega zmianie, gdyż przerzutnik pomocniczy jest zablokowany. Rysunek 4.14. Przerzutnik RS master-slave 27

Rysunek 4.14. Przerzutnik RS master-slave Gdy impuls zegara zmieni swój stan na C = 0, przerzutnik główny zostaje zablokowany i w ten sposób zostaje zamrożona" informacja, która była na wejściu bezpośrednio przed ujemnym zboczem impulsu zegara. Równocześnie zostaje odblokowany przerzutnik pomocniczy i tym samym stan przerzutnika głównego zostaje przekazany na wyjście. Przesyłanie danych następuje więc przy ujemnym zboczu sygnału zegara, nie ma jednak takiego stanu zegara, przy którym dane wejściowe oddziaływałyby bezpośrednio na wyjście, jak to ma miejsce w przerzutnikach prostych (transparent flip flnps). Kombinacja zmiennych wyjściowych R=S=1 prowadzi do nieokreślonego zachowania się przerzutnika, ponieważ wejścia S 1 i R 1 w części głównej równocześnie zmieniają się z 00 na 11 przy przejściu zegara do stanu C = 0. 4.4.5. Przerzutniki wyzwalane zboczem (single-edge-triggered flip flops) Przerzutniki złożone można realizować również łącząc szeregowo dwa przerzutniki D typu zatrzask" (rys. 10.8) i sterując je dopełniającymi się sygnałami zegarowymi. Otrzymuje się wtedy układ przedstawiony na rys. 10.16. Jeżeli zegar jest w stanie C = 0, przerzutnik główny śledzi sygnał wejściowy i Q 1 = D. W tym czasie przerzutnik pomocniczy pamięta poprzedni stan. Gdy zegar zmienia swój stan na 1, istniejąca w tym momencie informacja D zostaje zamrożona w przerzutniku głównym i przeniesiona do przerzutnika pomocniczego, a tym samym na wyjście Q. Informacja istniejąca na wejściu D w chwili pojawienia się dodatniego zbocza impulsu zegarowego zostaje więc natychmiast przeniesiona na wyjście Q. W pozostałym czasie stan wejścia D nie odgrywa roli, co widać również na rys. 4.16. W przerzutniku z rys. 4.15wartość wczytana pojawia się na wyjściu natychmiast, a nie dopiero przy ujemnym zboczu impulsu zegarowego. Rysunek 4.15. Przerzutnik D wyzwalany zboczem Stanowi to zaletę, ponieważ dla utworzenia nowych sygnałów D mamy do dyspozycji cały czas trwania okresu zegara. 28

Rysunek 4.16. Przebiegi czasowe sygnałów wejściowych i wyjściowych w przerzutniku D wyzwalanym zboczem Rysunek 4.17. Symbol graficzny przerzutnika D wyzwalanego zboczem Symbol graficzny przerzutnika D wyzwalanego zboczem przedstawiono na rys. 4.17. Tablica 4.7. Najczęściej używane przerzutniki D wyzwalane zboczem Typy układów scalonych: TTL CMOS Przerzutnik wyzwalany 74L74 4013 zboczem Przerzutniki D wyzwalane zboczem mogą pracować również jako przerzutniki T (toggle). Należy w tym celu zrealizować zależność D = Q, jak to pokazano na rys. 4.18. W chwili wystąpienia dodatniego zbocza impulsu zegarowego stan wyjścia zmienia się na przeciwny. Przedstawiono to na rys. 4.19. W przypadku zastosowania przerzutników D typu zatrzask", zamiast dzielenia częstotliwości w czasie, gdy C = 1, otrzymalibyśmy generację drgań, ponieważ ze względu na nie zablokowane przejście sygnału, po upływie czasu opóźnienia następowałoby odwrócenie jego fazy. Rysunek 4.18. Przerzutnik D wyzwalany zboczem jako dzielnik częstotliwości Rysunek 4.19. Przebiegi czasowe w dzielniku częstotliwości Odwracanie fazy można uzależnić również od zmiennej sterującej, łącząc zgodnie z wyborem wyjście Q lub Q z wejściem D przez multiplekser. Multiplekser jest sterowany z wejścia T, jak pokazano na rys. 4.20. Rysunek 4.20. Budowa przerzutnika T i jego symbol graficzny Jeszcze bardziej uniwersalne przerzutniki można otrzymać przez stworzenie dodatkowej możliwości synchronicznego wprowadzania danych. W tym celu należy wykorzystać multiplekser o dodatkowym - poza wejściem D - wejściu, które jest wybierane za pomocą wejścia wpisującego L (load) w sposób przedstawiony na rys. 4.21. Dla L = 1 mamy y = D, a w następnym takcie Q = D. Dla L = 0 układ pracuje dokładnie tak, jak układ na rys. 4.20. Symbol oraz tablicę przejść tego przerzutnika przedstawiono na rys. 4.22. 29

Rysunek 4.21. Przerzutniki wielofunkcyjne Rysunek 4.22. Symbol graficzny i tablica przejść przerzutnika wielofunkcyjnego 4.4.6. Liczniki dwójkowe Ważną grupę układów sekwencyjnych stanowią liczniki. Licznikiem może być każdy układ, w którym w pewnym zakresie istnieje jednoznaczne przyporządkowanie liczbie wprowadzonych impulsów stanu zmiennych wyjściowych. Ponieważ każda zmienna wyjściowa może przyjmować tylko dwie wartości, w przypadku n wyjść istnieje 2 n możliwych kombinacji (często wykorzystuje się jednak tylko część możliwych kombinacji). Wybór kombinacji, która ma odpowiadać danej liczbie, jest w zasadzie obojętny. Celowe jest jednak dobranie takiego sposobu przedstawienia liczb, który umożliwia łatwe ich dekodowanie. Najprostsze układy otrzymuje się w przypadku naturalnego kodu dwójkowego. Na rysunku 4.23 przedstawiono odpowiednie przyporządkowanie liczbie impulsów wejściowych Z wartości zmiennych wyjściowych zi dla 4-bitowego licznika dwójkowego. Jeżeli czytamy tę tablicę od góry do dołu, możemy zauważyć dwie prawidłowości: - zmienna wyjściowa z i zmienia swoją wartość wtedy, kiedy najbliższa zmienna z i-1 przechodzi z 1 na 0; - zmienna wyjściowa z i zmienia zawsze swoją wartość wtedy, kiedy wszystkie niższe zmienne z i-1... z 0 mają wartość 1 i pojawi się nowy impuls zliczany. Prawidłowości te można odczytać również z wykresu czasowego przedstawionego na rys. 4.24. Pierwsza prawidłowość prowadzi do realizacji licznika asynchronicznego, a druga - licznika synchronicznego. 30

Rysunek 4.23. Tablica stanów licznika dwójkowego Rysunek 4.24. Przebiegi czasowe na wyjściach licznika dwójkowego liczącego w przód Niekiedy są potrzebne liczniki, których stan po każdym impulsie zliczanym zmniejsza się o jeden. Prawidłowości charakteryzujące taki licznik liczący w tył (odejmujący - down counter) można również dostrzec w tablicy na rys. 4.23, czytając ją od dołu do góry: - w liczniku odejmującym zmienna wyjściowa z i zmienia swą wartość zawsze wtedy, kiedy najbliższa niższa zmienna z i-1 przechodzi z 0 na 1; - w liczniku odejmującym zmienna wyjściowa zi zmienia swą wartość zawsze wtedy, kiedy wszystkie niższe zmienne z i-1... z 0 mają wartość 0 i pojawi się nowy impuls zliczany. 4.4.7. Asynchroniczne Liczniki dwójkowe Asynchroniczny licznik dwójkowy można zrealizować, tworząc łańcuch przerzutników i łącząc wejście zegarowe C każdego przerzutnika z wyjściem Q poprzedniego, jak to pokazano na rys. 4.25. Można np. zastosować przerzutniki wyzwalane dodatnim zboczem impulsu zegarowego, czyli np. przerzutniki D wyzwalane zboczem. Jeżeli połączymy je tak, jak na rys. 4.25, otrzymamy licznik odejmujący. Aby zrealizować zliczanie w przód, należy dokonać inwersji sygnału 31

zegarowego. W tym celu wejście zegarowe łączymy po prostu z wyjściem Q poprzedniego przerzutnika. Z0 Z1 Z2 Z3 CLK C1 Q C1 Q C1 Q C1 Q Q Q Q Q Rysunek 4.25. Asynchroniczny licznik dwójkowy Każdy licznik jest równocześnie dzielnikiem częstotliwości. Częstotliwość na wyjściu przerzutnika Po jest równa połowie częstotliwości impulsów zliczanych. Na wyjściu P1 występuje jedna czwarta częstotliwości wejściowej, na wyjściu P2 jedna ósma, itd. Ta właściwość dzielenia częstotliwości jest dobrze widoczna na rys. 4.25. Typy scalonych asynchronicznych liczników dwójkowych przedstawiono w tabl. 10.2. Tablica 4.8. Najczęściej używane asynchroniczne liczniki dwójkowe Typy układów scalonych: TTL CMOS Licznik 4 bitowy 74L93 Licznik 8 bitowy 74LS93 Licznik 24 bitowy 4521 4.4.8. Synchroniczne Liczniki dwójkowe Cechą liczników asynchronicznych jest to, że zliczane impulsy są podawane tylko na wejście zegarowe pierwszego przerzutnika, podczas gdy pozostałe przerzutniki są sterowane w sposób pośredni. W następstwie tego sygnał wejściowy dociera do ostatniego przerzutnika dopiero wówczas, gdy przerzucą wszystkie poprzednie przerzutniki. Stany kolejnych wyjść z 0 do z n zmieniają się z opóźnieniem równym czasowi przerzutu. W przypadku długiego łańcucha przerzutników i dużej częstotliwości liczenia może się zdarzyć, że z n zmienia się dopiero po pojawieniu się następnego impulsu zliczanego. Dlatego po ostatnim impulsie należy odczekać czas opóźnienia całego łańcucha przerzutników, a dopiero potem odczytywać stan licznika. Jeżeli jest potrzebny odczyt stanu licznika w trakcie liczenia, to okres impulsów zliczanych nie może być krótszy od czasu opóźnienia łańcucha przerzutników tworzących licznik. Wad tych nie mają liczniki synchroniczne. Rysunek 4.26. Synchroniczny licznik dwójkowy Charakteryzują się one tym, że zliczane impulsy są podawane równocześnie na wszystkie wejścia zegarowe C. Aby każdy impuls zegarowy nie przerzucał wszystkich przerzutników, stosuje się sterowane przerzutniki T (rys. 4.20), które zmieniają stan tylko wówczas, gdy zmienna sterująca T= 1. Zgodnie z tabl. z rys. 4.23 warunek przerzutu brzmi: przerzutnik wchodzący w skład licznika dwójkowego może zmienić stan tylko wtedy, kiedy wszystkie przerzutniki poprzednie są w stanie 32