Pierwsze kroki w cyfrówce – część 1
Zaczniemy od podstaw, a skończymy… cóż, właściwie nie sposób tego przewidzieć, bo w szeroko pojętej dziedzinie układów cyfrowych wciąż dzieje się coś nowego, coś interesującego. Zaczynamy więc kurs, a może raczej korepetycje z techniki cyfrowej. Przedstawiony materiał pozwoli nadrobić ewentualne zaległości oraz zrozumieć zasady działania i budowy współczesnych cyfrowych układów scalonych.
Czy nie boisz się, drogi Czytelniku, nowoczesnych układów cyfrowych? Czy nie peszą Cię trochę określenia w rodzaju: „GAL20V8”, „74125 w wersji ACT”, albo „latch 573 LVC w wersji SMD”?
Jestem przekonany, że wielu Czytelników bardzo chciałoby poznać piękną dziedzinę cyfrowych układów scalonych. Inni trochę się zgubili, przestali nadążać za rozwojem układów cyfrowych i czują się trochę nieswojo w dżungli nowych określeń i pojęć.
Co prawda istnieje sporo literatury na ten temat, wiele szkolnych podręczników obszernie omawia technikę cyfrową, jednak trzeba ze smutkiem stwierdzić, że większość dostępnych źródeł omawia temat od strony czysto teoretycznej. Poza tym nierzadko są to informacje, delikatnie mówiąc, nieświeże. Publikacje takie zawierają zazwyczaj ogromną ilość szczegółowych informacji, jednak początkujący adept elektroniki czuje się zagubiony, nie jest bowiem w stanie stwierdzić, które z podanych wiadomości są mu naprawdę potrzebne, a co jest wypełniaczem − bezwartościową „watą” zupełnie niepotrzebną w jego amatorskiej praktyce. Na domiar złego wielu autorów podręczników lubuje się w grafach, wzorach, tablicach Karnaugha (czytaj Karnafa) i obliczeniach wykorzystujących algebrę Boola (czytaj: bula).
Myślę, że Ty nie jesteś entuzjastą takiej „rozrywki”. Ja w każdym razie nie jestem, i jeśli chcesz, spróbuję ci pokazać układy logiczne od strony praktycznej. Wcześniej powinieneś jednak przyswoić sobie nieco wiadomości ogólnych, które pozwolą szerzej, jakby z dystansu, spojrzeć na całą „cyfrówkę” i we właściwych proporcjach ujrzeć związaną z tym matematykę. Takiemu szerszemu spojrzeniu poświęcony jest pierwszy odcinek cyklu.
Skąd się wzięła technika cyfrowa?
Na początek przypuśćmy, że nic nie wiesz o układach cyfrowych, nazywanych też logicznymi. Zacznę więc od zamierzchłej historii. Rozwój szeroko pojętej elektroniki cyfrowej zaczął się od prób przesyłania informacji na odległość.
Wiesz przecież, co to jest alfabet Morse’a: za pomocą kresek i kropek można przesłać dowolną informację tekstową.
Z czasem pomysłowy pan Bell wynalazł telefon. Rozwój telegrafu i telefonu wiązał się z powstawaniem central − miejsc, gdzie następowało łączenie poszczególnych abonentów i torów transmisyjnych. Najpierw były to centrale ręczne obsługiwane przez miłe i młode telefonistki, później jakiś niepoprawny smutas wykombinował, że opłaci się zastąpić te miłe i ładne panienki jakimiś bezdusznymi urządzeniami, które automatycznie będą łączyć rozmowy, w takt impulsów powstających w tarczy aparatu telefonicznego.
W telegrafie interesują nas tylko dwa stany: jest prąd, albo go nie ma. Podobnie jest z centralą telefoniczną, zbudowaną z przekaźników. W zależności od stanów linii i impulsów nadawanych przez tarcze telefoniczne, centrala bez udziału człowieka podejmuje decyzje, realizuje potrzebne połączenia, wysyła i przepuszcza sygnały. Pomimo, że centrala taka może spełniać dość skomplikowane funkcje, jej działanie opiera się na tej samej podstawowej prostej zasadzie: dany przekaźnik albo zadziała, albo pozostaje w spoczynku, zależnie od układu połączeń styków i stanów innych przekaźników.
Mamy więc przykład urządzenia, które wyposażone jest w pewną miarę inteligencji, czyli realizuje funkcje logiczne, a przy tym jego działanie w sumie opiera się tylko na dwóch stanach: załącz, wyłącz, inaczej mówiąc: jest, nie ma.
Wyobraź sobie jeszcze dyspozytornię dużego węzła kolejowego. Na pewno ogromne znaczenie mają tam wskaźniki informujące o stanie semaforów, ustawieniu zwrotnic itp. Dobrze zaprojektowana dyspozytornia powinna charakteryzować się sporą miarą inteligencji − musi zasygnalizować, lub nawet nie dopuścić do takiego ustawienia zwrotnic, które groziłoby zderzeniem dwóch pociągów na jednym torze.
Zauważ, iż większość, jeśli nie wszystkie urządzenia takiej dyspozytorni, też są przykładem urządzeń dwustanowych. Semafor może być podniesiony lub opuszczony, zwrotnica może być ustawiona na dwa sposoby. Nie ma tu stanów pośrednich. Te dwa podstawowe stany przyjęto oznaczać 0 i 1, albo też L i H. Oznaczenia L, H, wywodzą się od angielskich słów Low − niski i High − wysoki. W technice komputerowej używa się też oznaczeń true i false (prawdziwe, fałszywe), które z grubsza biorąc są odpowiednikami stanów 1 i 0.
Na rysunku 1 znajdziesz przykład realizacji obwodu najprostszego zabezpieczenia w dyspozytorni kolejowej. Powiedzmy, że dany przekaźnik zadziała, gdy otwarty jest wjazd na dany odcinek linii kolejowej. Przekaźniki REL1 i REL2 współpracują z semaforami i zwrotnicami umieszczonymi z dwóch stron tego samego odcinka torów. Jeśli nieuważny dyspozytor przypadkowo otworzyłby wjazd na ten odcinek z obu stron, oba przekaźniki zadziałają i w dyspozytorni rozlegnie się ostrzegawczy dźwięk dzwonka.
Działanie jest oczywiste − dzwonek ma dzwonić, gdy zadziałają oba przekaźniki. Ale można też powiedzieć, że układ realizuje pewną funkcję logiczną − być może wiesz, iż jest to funkcja zwana AND (po polsku I). Do zrealizowania takiego „inteligentnego” układu wystarczy odrobina intuicji.
Jeśli jednak dyspozytornia ma obsługiwać duży węzeł kolejowy, potrzebne funkcje będą znacznie bardziej skomplikowane, a układ połączeń przekaźników będzie niewątpliwie bardzo złożony. Przy projektowaniu i analizie takich skomplikowanych sieci podejście intuicyjne może nie wystarczyć, trudno bowiem objąć myślą wszystkie szczegóły działania całego wielkiego systemu. Co zrobić?
A może pomocne byłoby potraktowanie dyspozytorni, czy też centrali, jako przysłowiowej czarnej skrzynki, która ma pewną ilość wejść i określoną ilość wyjść? Czy można w jakiś względnie prosty sposób opisać jej działanie i czy pomogłoby to później w praktycznej realizacji układu?
tu inżynierowie zajmujący się automatyką poprosili o pomoc matematyków.
Matematycy to dziwny naród. Rasowy matematyk to oderwany od rzeczywistości teoretyk, któremu w głowie lęgną się jakieś dziwne teorie i który wymyśla dziwaczne, nikomu niepotrzebne liczby (tak!), działania na tych liczbach i prawa nimi rządzące. Całą radością matematyka jest to, że wymyślone przez niego liczby, działania na tych liczbach i wszystkie związane z tym zależności dobrze „trzymają się kupy”, czyli tworzą pewien zwarty system.
Najczęstszym problemem jest jednak fakt, że całe te piękne i harmonijne zależności matematyczne… nie są nikomu potrzebne w praktyce.
Taka sytuacja zdarzała się wielokrotnie w historii nauki − matematycy wymyślali jakieś dziwaczne teorie, odkładali je na półkę, a po jakimś czasie po pomoc przychodzili praktycy i pytali: czy nie moglibyście nam pomóc? Czy potrafilibyście opisać językiem matematyki tego, czym my się zajmujemy? Wtedy moglibyśmy znacznie łatwiej poradzić sobie z naszymi skomplikowanymi zadaniami.
Najczęściej okazywało się, iż potrzebne zależności matematyczne zostały już dawno opracowane przez jakiegoś nawiedzonego teoretyka. Tak było z wieloma odkryciami z zakresu fizyki cząstek elementarnych, tak było z teorią względności Einsteina, tak było również z problemami z dziedziny automatyki.
Stało się jasne, że działanie nawet najbardziej skomplikowanych układów automatyki opiera się pewnych matematycznych zasadach. Ich działanie można opisać i rozumieć jako przepływ i przetwarzanie informacji. A informacje można przedstawić w postaci liczb.
Co więcej, wykazano, że wszystkie przedmioty, zjawiska i procesy, jakie występują we wszechświecie, można opisać za pomocą liczb. Na przykład stało się jasne, że zamiast przetwarzać sygnały dźwiękowe, można je przedstawić za pomocą liczb, wykonać działania na tych liczbach i na koniec niejako zamienić otrzymane liczby z powrotem na sygnały. Najróżniejsze przebiegi, choćby sygnały dźwiękowe, również można przedstawić w postaci liczb, odpowiednio zakodować, przesłać na odległość i na powrót zamienić na pierwotne sygnały.
Czy taka skomplikowana procedura ma jednak sens? Przed laty, gdy dostępne środki techniczne były bardzo niedoskonałe, nie stosowano takich cyfrowych metod. Z czasem postępy techniki umożliwiły ich stosowanie, i co ważniejsze, zapewniły znacznie lepsze parametry i właściwości, niż stosowane wcześniej rozwiązania bezpośrednie, analogowe.
Przykładami z życia codziennego są płyta kompaktowa, telefonia cyfrowa, czy nowoczesne elektroniczne instrumenty muzyczne.
Z czasem nauczyliśmy się przetwarzać cyfrowo nie tylko dźwięk, ale i obraz − przykładem niech będą zadziwiające efekty wizualne w teledyskach, grach komputerowych i tzw. wirtualnej rzeczywistości komputerowej. Jeszcze nie tak dawno zadziwiały nas płyty kompaktowe wideo czyli DVD, zawierające pełnometrażowe filmy, CD i DVD−romy, czyli komputerowe pamięci na „kompaktach”, magazynujące ogromne ilości informacji, cyfrowe instrumenty muzyczne i cyfrowe procesory dźwięku. Dzisiaj nie możemy się nadziwić, jakie możliwości mają współczesne komputery, sprzęty powszechnego użytku takie jak telewizory, cyfrowe dekodery satelitarne, a także smartfony. Wszystkie te urządzenia posiadają ogromną moc obliczeniową dzięki której potrafią zdekodować obraz o ogromnej rozdzielczości oraz dźwięk wielokanałowy, a tak naprawdę to tylko ułamek ich realnych możliwości dotyczących przetwarzania informacji…
Nie zapominaj, iż działanie tych wszystkich cudów techniki oparte jest na wykonywaniu ogromnej ilości operacji matematycznych na liczbach.
I oto od telegrafu i przekaźników przeszliśmy do najnowocześniejszych systemów cyfrowej obróbki sygnałów.
Elementarne cegiełki
Co prawda w tym miejscu należałoby się przyznać, że operacje logiczne i arytmetyczne, wrzuciliśmy niejako do tego samego worka − w ramach naszego przyspieszonego kursu możemy jednak pozwolić sobie na takie uproszczenie.
Przedstawiona część rozważań miała ci uświadomić, że działanie wielu współczesnych urządzeń elektronicznych jest nierozerwalnie związane z matematyką. Od tego nie da się uciec. Tylko w prostszych układach możemy szukać rozwiązań kierując się intuicją. Przypuszczam jednak, że ty nie fascynujesz się matematyką. Być może wyobrażasz sobie, iż teraz dopiero wpuściłem cię w przysłowiowy kanał. Przecież ty nie masz ochoty grzebać się w skomplikowanych rachunkach.
Nie martw się! Nawet zaawansowany elektronik−hobbysta wcale nie musi być dobrym matematykiem − przekonasz się, iż do większości twoich opracowań wystarczy znajomość działania układów scalonych z rodzin TTL i CMOS, a tego dowiesz się z najbliższych odcinków tego cyklu. W swoich rozwiązaniach będziesz stosował podejście czysto intuicyjne i nie musisz znać matematyki.
Ale elektronika rozwija się błyskawicznie i powinieneś mieć przynajmniej ogólne pojęcie o mikroprocesorach i tak zwanych układach PLD. Wykorzystanie tych skomplikowanych podzespołów nie jest wcale trudne, ponieważ na nasze wielkie szczęście w tych dziedzinach, gdzie w grę wchodzi bardziej zaawansowana matematyka, opracowano wiele swego rodzaju sprzętowych i programowych narzędzi. Dzięki tym narzędziom nawet niezbyt zaawansowany amator może z powodzeniem wykorzystać ogromne możliwości, jakie oferuje współczesna technika cyfrowa.
Zanim jednak zapoznasz się z mikroprocesorami i układami PLD, powinieneś wiedzieć, jak realizuje się wspomniane operacje matematyczne.
Z funkcjami logicznymi sprawa jest prostsza, bo tam, niejako naturalnie występują dwa „stany” − prawda i fałsz, które łatwo wyobrazić sobie w bardziej konkretnej postaci (przekaźnik przyciąga lub pozostaje w spoczynku; jest napięcie lub brak napięcia). Gorzej z obliczeniami arytmetycznymi − jak przedstawić liczby?
Zapewne jest dla ciebie jasne, że używany przez nas system dziesiętny nie jest jedynym możliwym systemem liczenia. Na pewno słyszałeś o systemie dwójkowym. Nie będę go omawiał, bo wyczerpujące informacje znajdziesz w licznych książkach. Dlaczego jednak system dwójkowy znalazł tak szerokie zastosowanie w elektronice? W uproszczeniu można powiedzieć, iż w systemie dziesiątkowym musimy rozróżnić aż dziesięć cyfr, a ponadto żeby przeprowadzić dowolnie skomplikowane obliczenia, należy znać tabliczkę mnożenia i tabliczkę dodawania, czyli umieć mnożyć i dodawać liczby z przedziału 0…9 (nie zdziwiłbym się, jeślibyś do tej pory miał kłopoty z tabliczką mnożenia).
Tymczasem w systemie dwójkowym, gdzie liczby składają się z cyfr 0 i 1, również można przeprowadzać dowolnie skomplikowane obliczenia, a wszystko to przy użyciu tylko dwóch cyfr (0 i 1)! A jak prosta jest wtedy tabliczka mnożenia i tabliczka dodawania − mają one po dwie kolumny i dwa rzędy. Oczywiście w systemie dwójkowym obliczenia są jakby mniej skomplikowane, i można je wykonywać przy użyciu różnych, względnie prostych urządzeń.
Nie będę ci tego udowadniał, przyjmij na wiarę, że dla zrealizowania dowolnych zależności logicznych czy obliczeń arytmetycznych w systemie dwójkowym, wystarczy mieć do dyspozycji elementarne dwustanowe „cegiełki”? Takie cegiełki nazywają się funktorami logicznymi, ale my praktykujący elektronicy nazywamy je bramkami. Istnieje tylko kilka typów elementarnych bramek.
Zapewne spotkałeś się już z określeniami: AND, OR, NAND, NOR.
Bramkami zajmiemy się szczegółowo trochę później, na razie przejdźmy do kolejnego ważnego zagadnienia.
Metody realizacji
Jeśli zetknąłeś się już z cyfrowymi układami scalonymi, być może utożsamiasz stany logiczne i cyfry systemu dwójkowego z napięciem: brak napięcia to stan 0, czyli niski; napięcie bliskie 5 V to stan 1 − wysoki.
Celowo opowiadałem ci przed chwilą o matematykach − teraz chyba lepiej rozumiesz, że układy logiczne, czy cyfrowe realizują pewne funkcje matematyczne, więc nie są nierozłącznie związane z elektroniką − można je realizować różnymi metodami.
Przykładowo w warunkach grożących wybuchem lub pożarem, gdzie niedopuszczalne jest użycie urządzeń elektrycznych, od dawna stosowano i jeszcze się stosuje pneumatyczne lub hydrauliczne układy logiczne. W takich systemach również możemy mówić o dwóch podstawowych stanach: zawór zamknięty lub otwarty, tłok w cylindrze lub wysunięty z cylindra, jest ciśnienie lub nie ma ciśnienia.
Czy jest dla ciebie jasne, iż nawet najnowocześniejszy superkomputer, teoretycznie rzecz biorąc, mógłby być zbudowany z przekaźników, bramek lampowych, diodowo−tranzystorowych, a nawet pneumatycznych lub hydraulicznych elementów logicznych? Problem tylko w ilości potrzebnych bramek.
Oczywiście na miejscu jest pytanie jaką objętość i masę miałby odpowiednik współczesnego komputera, takiego z procesorem Pentium, w wersji powiedzmy, hydraulicznej. Jak wprowadzać dane do takiego komputera? Jaką postać miałyby wyniki?
A ile elektrowni potrzebne byłoby do zasilania procesora Pentium w wersji lampowej? (Pamiętaj jednak, że pierwsze prawdziwe komputery jakie pojawiły się w latach 40−tych, zbudowane były na lampach i pobierały wiele kilowatów mocy.)
Ale jakoś nie widzę entuzjazmu w Twych oczach na myśl, że funkcje logiczne można realizować na drodze pneumatycznej, hydraulicznej czy mechanicznej. Masz rację: dopiero rozwój elektroniki umożliwił realizację naprawdę skomplikowanych układów logicznych i cyfrowych w tani i relatywnie prosty sposób.
Stopniowy rozwój
Rozumiesz teraz, że tak naprawdę, układy logiczne przesyłają i przetwarzają coś tak niematerialnego i ulotnego jak informacje.
Wiesz już, że do realizacji najbardziej złożonych układów logicznych wystarczy odpowiednia ilość elementarnych „cegiełek” − bramek.
Pożądane są jednak takie cegiełki, które potrafiłyby to zrobić pobierając jak najmniej energii i zajmując jak najmniej miejsca. Ponieważ do skomplikowanych zadań potrzeba ogromnej ilości takich cegiełek, powinny one być bardzo tanie.
Jak Ci mówiłem, na początku podstawowymi elementami realizującymi funkcje logiczne były przekaźniki. Przekaźniki są jednak duże, drogie, pobierają znaczną moc. Ponadto jako elementy mechaniczne zawierające styki, są dość powolne i zawodne. Z podobnych względów lampy elektronowe także nie są tu dobrym rozwiązaniem.
Dlatego prawdziwy wyścig w produkcji układów logicznych zaczął się po wynalezieniu elementów półprzewodnikowych. Z diod i tranzystorów też można zbudować układy spełniające elementarne funkcje logiczne.
Tak więc najpierw bramki i inne nieco bardziej złożone elementy logiczne budowano z pojedynczych tranzystorów, rezystorów i diod. Były to pudełka o objętości przynajmniej kilku centymetrów sześciennych, zalane żywicą, zawierające wewnątrz kilka, kilkanaście pojedynczych podzespołów. Dla potrzeb przemysłu opracowano pewne standardy. Pojawiły się układy RTL (młodszym Czytelnikom zapewne skojarzy się to z satelitarnym programem telewizji Luksemburg), tymczasem RTL to skrót angielskiej nazwy Resistor−Transistor−Logic. Oprócz tej rezystorowo−tranzystorowej logiki były też układy diodowo−tranzystorowe: DTL. Starsi Czytelnicy zapewne z łezką w oku przypomną sobie rodzinę LOGISTER.
Z czasem opanowano produkcję kilku, kilkunastu tranzystorów w jednym płatku półprzewodnika i pojawiły się wreszcie układy TTL (Transistor−Transistor−Logic). Układy TTL wytwarzano w postaci prawdziwych, monolitycznych układów scalonych i umieszczano w używanych do dziś, typowych plastikowych obudowach z dwoma rzędami wyprowadzeń, nazywanych DIL (Dual In Line).
Już w momencie wprowadzenia układów TTL, oprócz elementarnych bramek zaczęto produkować kostki zawierające urządzenia logiczne złożone z kilku−kilkunastu bramek, spełniające bardziej skomplikowane funkcje logiczne i arytmetyczne. Pojawiły się scalone przerzutniki, liczniki, rejestry, proste pamięci, sumatory i inne układy arytmetyczne.
Klasyczne układy TTL zbudowane były z tranzystorów bipolarnych NPN.
Później, wraz z opanowaniem technologii produkcji tranzystorów polowych, pojawiły się logiczne „cegiełki” wykonane jako układy scalone zawierające tranzystory MOS (Metal Oxide Semiconductor − polowe z izolowaną bramką).
Szybko opanowano produkcję w jednym płatku krzemu tranzystorów komplementarnych MOS, czyli zarówno tranzystorów z kanałem N, jak i z kanałem P. Pojawiły się wtedy układy logiczne w wersji CMOS (Complementary MOS).
Z czasem na rynku ostały się tylko układy logiczne zbudowane w technologii bipolarnej, oraz w technologii CMOS. I tak pozostało.
Na czym więc dziś polega wyścig technologiczny?
Po pierwsze problem w tym, że rzeczywiste układy, przy wykonywaniu operacji logicznych, czyli matematycznych, pobierają jakąś moc i zamieniają ją na ciepło. Póki co, nie potrafimy wykonywać operacji matematycznych bez zużywania energii. Wyścig technologiczny ma na celu między innymi zmniejszenie ilości mocy, wydzielanej w postaci ciepła. Nie chodzi tu o oszczędność prądu, ale o nagrzewanie się struktury półprzewodnika. Umieszczenie wielu bramek w jednym układzie scalonym powoduje wydzielanie znacznych ilości ciepła. Tymczasem awaryjność przyrządów półprzewodnikowych gwałtownie rośnie ze wzrostem temperatury, i w praktyce elementy krzemowe nie powinny pracować w temperaturze powyżej +150°C. Ilość wydzielanego ciepła ogranicza więc liczbę bramek, które teoretycznie można upakować w jednym układzie scalonym.
Gdy jednak pojedyncza bramka pobiera i rozprasza niewiele energii, możliwe jest zbudowanie układów scalonych składających się z ogromnej ilości bramek.
I tu doszliśmy do drugiej przyczyny nieustannego wyścigu technologicznego: pojedyncza bramka to naprawdę mała „cegiełka” i żeby zrealizować bardziej złożone układy i zależności logiczne potrzebne są tysiące, miliony, a nawet miliardy bramek. Z wielu względów nie opłaci się budować skomplikowanych urządzeń z układów scalonych zawierających pojedyncze bramki. Powstają więc coraz bardziej złożone układy scalone, składające się z milionów tranzystorów czyli setek tysięcy bramek.
Pierwsze proste układy zawierające kilka…kilkadziesiąt bramek nazywa się układami o małej skali integracji (ang. SSI). Z czasem postęp technologiczny umożliwił produkcję układów zawierających w jednej strukturze kilkaset bramek − układów o średniej skali integracji (ang. MSI). Dziś produkuje się powszechnie kostki zawierające miliony, a nawet miliardy bramek − mówimy tu o dużej i bardzo dużej skali integracji (ang LSI i VLSI). Tymi skrótami informującymi o stopniu złożoności układu scalonego (SSI…VLSI) epatują Cię autorzy niektórych podręczników − dla Ciebie skróty te nie mają dosłownie żadnego znaczenia praktycznego. Nie obciążaj sobie tym głowy. Dziś zdarza się, że mikroprocesor o wielkiej skali integracji (LSI lub VLSI), kupisz taniej niż kostkę zawierającą kilka bramek (SSI).
Dwie drogi
Wiesz już, że układ logiczny przetwarza sygnały, czyli w sumie informację. Jakieś sygnały podawane są na wejścia, a po ich przetworzeniu pojawiają się odpowiednie stany na wyjściach. Jeszcze raz wyobraź sobie dyspozytornię węzła kolejowego. System logiczny dyspozytorni musi przyjąć sygnały informujące o stanie zwrotnic i semaforów, przetworzyć je, zapalić odpowiednie lampki sygnalizacyjne i ewentualnie włączyć dzwonek alarmowy.
Można to zrealizować przy użyciu przekaźników. Można też zbudować układ elektroniczny składający się na przykład z pojedynczych bramek TTL.
Pomyśl jednak, że nie ma dwóch identycznych węzłów kolejowych, więc w każdej dyspozytorni musiałby pracować system o indywidualnie dobranych funkcjach. Co prawda są elementy wspólne − rodzaj sygnałów wejściowych i wyjściowych, jednak niewątpliwie spełniane funkcje logiczne muszą być w każdym przypadku inne.
Czy jednak nie można wymyślić sposobu, żeby układ sterujący dyspozytorni był budowany jednakowo dla wszystkich węzłów kolejowych i potem tylko dostosowywany do lokalnych warunków? Byłoby to bardzo pożądane, choćby ze względów ekonomicznych i serwisowych.
I właśnie tu mamy dwie główne możliwości: sposób programowy i sposób sprzętowy.
Sposób programowy
Zamiast budować sieć bramek spełniających indywidualnie określone zadania, można postawione zadania rozwiązać w sposób programowy.
Mikroprocesor to nic innego jak bardzo skomplikowany układ cyfrowy realizujący jakieś funkcje logiczne. Każdy mikroprocesor może jednak realizować najróżniejsze zadania, ponieważ o jego pracy decyduje program, umieszczony w pamięci.
Wykorzystując mikroprocesor, pamięć i pewną ilość układów pomocniczych, można zbudować system, który mógłby obsłużyć dyspozytornię dowolnego węzła kolejowego.
Takie programowe rozwiązanie ma ogromne zalety, bowiem w przypadku zmian, związanych np. z rozbudową węzła, wystarczy tylko zmodyfikować program, nie trzeba natomiast przebudowywać całego systemu.
Przez lata mikroprocesory ze względu na swą elastyczność i możliwość zmiany programów, czyli spełnianych funkcji, wydawały się niezastąpione w systemach automatyki, sterowania, itp. Ale ostatnio, w związku z postępami technologii, do łask wracają sposoby sprzętowe. Czy słyszałeś o układach PLD?
Układy PLD
W wielu przypadkach potrzebne są skomplikowane systemy logiczne przeznaczone do specyficznych zastosowań do których budowy należałoby użyć kilkudziesięciu, kilkuset, czy nawet tysięcy bramek. Systemy takie zawsze można zbudować z pojedynczych bramek, ale jest to sposób drogi i dość zawodny. Jest też inna możliwość: od lat znane firmy produkujące układy cyfrowe wykonują złożone systemy logiczne na zamówienie klienta. Problem w tym, że klient musiał zamówić co najmniej kilka tysięcy, a nawet kilkadziesiąt tysięcy takich układów, żeby cała zabawa była opłacalna.
Z czasem opracowano układy scalone, zawierające standardowe struktury logiczne w dobrze przemyślanej konfiguracji, które klient może zaprogramować u siebie na biurku. Programowanie polega tym razem na wykonaniu lub przerwaniu odpowiednich połączeń dla uzyskania potrzebnych funkcji.
Ogólnie biorąc, układy tego typu określa się mianem PLD (Programmable Logic Devices).
Programowanie tych układów nie ma nic wspólnego z programowaniem mikroprocesora − ustala się tu po prostu sieć połączeń między poszczególnymi bramkami, przerzutnikami itp.
Najwcześniej, bo w drugiej połowie lat 70−tych pojawiły się układy typu PAL (Programmable Array Logic). Ich programowanie polegało na przerwaniu połączeń (takich miniaturowych bezpieczników) pomiędzy poszczególnymi bramkami czy przerzutnikami zawartymi w strukturze układu. Operacja ta przypomina programowanie pamięci PROM.
Dużym postępem w tej dziedzinie było wprowadzenie układów programowalnych, wykonanych w technologii CMOS. Jak zapewne się domyśliłeś, układy takie mogą być elektrycznie programowane i kasowane wielokrotnie, podobnie jak pamięć EPROM czy EEPROM. Obecnie na rynku dostępnych jest wiele typów takich układów, o różnych możliwościach. Jednak największą popularnością cieszą się stosunkowo proste, tanie, a mimo wszystko mające znaczne możliwości, elektrycznie programowane i kasowane układy GAL16V8 i GAL20V8.
Nie pomyl się jednak − układy PLD nie są pamięciami − jest to zespół podstawowych bramek i przerzutników, który może być skonfigurowany w różnorodny sposób.
Układów takich nie programuje się ręcznie − wykorzystuje się do tego komputer i odpowiedni program. Choć może nie rozumiesz jeszcze szczegółów działania układów PLD, przyjmij do wiadomości, iż przy ich programowaniu wykorzystuje się wspomniane wcześniej prawa i zasady matematyczne. Na szczęście nie musi tego robić użytkownik, czarną robotę wykonuje program komputerowy.
Podsumowanie
W dzisiejszym pierwszym odcinku prześledziłeś historię układów logicznych, nazywanych też cyfrowymi.
Rozumiesz, że realizują one pewne funkcje matematyczne.
Wiesz, że występują tam tylko dwa stany: 1 i 0 (prawda, fałsz; wysoki, niski). Dowiedziałeś się, że ta cała fantastycznie rozbudowana technika cyfrowa tak naprawdę opiera się na kilku podstawowych bramkach.
Wiesz, że dana funkcja logiczna może być zrealizowana różnymi metodami. Spośród różnorodnych realizacji układów logicznych, my jako elektronicy, najbardziej będziemy interesować się cyfrowymi układami scalonymi.
W następnych odcinkach zapoznam cię z bramkami, przerzutnikami, licznikami, rejestrami i innymi podstawowymi składnikami układów cyfrowych. Prześledzimy też wspólnie, jak poszczególne technologie produkcji wpływają na właściwości układów logicznych.
A kolejny odcinek cyklu znajdziesz tutaj.
Piotr Górecki