Jaka Albreht
Upravljanje s PROGRAMIRLJIVIMI NAPRAVAMI Učbenik za poučevanje strokovnih modulov v programih Tehnik računalništva, Tehnik mehatronike in Elektrotehnik
2
Jaka Albreht
Upravljanje s PROGRAMIRLJIVIMI NAPRAVAMI 2 Učbenik za poučevanje strokovnih modulov v programih Tehnik računalništva, Tehnik mehatronike in Elektrotehnik
PIPINOVA KNJIGA
UPRAVLJANJE S PROGRAMIRLJIVIMI NAPRAVAMI 2 Učbenik za strokovne module Upravljanje s programirljivimi napravami v programu Tehnik računalništva, Digitalna tehnika v programu Tehnik mehatronike in Programirljive naprave v programu Elektrotehnik Avtor Jaka Albreht Strokovni in metodično-didaktični pregled dr. Uroš Ocepek, univ. dipl. prof. matematike in računalništva Peter Vrčkovnik, dipl. inž. elektrotehnike Jezikovni pregled Majda Degan Kapus Tehnične ilustracije Jaka Albreht, Ksenija Konvalinka Uredila Tamara Mušinović Zadravec Oblikovanje in prelom Ksenija Konvalinka Izdala PIPINOVA KNJIGA, d. o. o. Za založbo Tamara Mušinović Zadravec Podsmreka, 2021 Prva izdaja Prvi natis Naklada 1200 Tisk Present d. o. o.
© Ministrstvo za izobraževanje, znanost in šport, 2021. Fotokopiranje in razmnoževanje dela po Zakonu o avtorskih in sorodnih pravicah ni dovoljeno. © PIPINOVA KNJIGA, d. o. o., Podsmreka, 2021. Vse pravice pridržane. Brez pisnega dovoljenja založbe Pipinova knjiga, d. o. o. je prepovedano reproduciranje, distribuiranje, dajanje v najem, javna priobčitev, dajanje na voljo javnosti (internet), predelava ali vsaka druga uporaba tega avtorskega dela ali njegovih delov v kakršnem koli obsegu ali postopku, vključno s fotokopiranjem, tiskanjem ali shranitvijo v elektronski obliki. Odstranitev tega podatka je kazniva. Na podlagi 26. člena Zakona o organizaciji in financiranju vzgoje in izobraževanja je Strokovni svet Republike Slovenije za poklicno in strokovno izobraževanje na svoji 181. seji, dne 23.10.2020, sprejel sklep št. 013-28/2020/5 o potrditvi učbenika UPRAVLJANJE S PROGRAMIRLJIVIMI NAPRAVAMI 2 za poučevanje strokovnih modulov Upravljanje s programirljivimi napravami v programu Tehnik računalništva, Digitalna tehnika v programu Tehnik mehatronike in Programirljive naprave v programu Elektrotehnik.
_________________________________________________
CIP - Kataložni zapis o publikaciji Narodna in univerzitetna knjižnica, Ljubljana 004.31:681.527.7(075.3) 681.5.015(075.3) ALBREHT, Jaka Upravljanje s programirljivimi napravami 2 : učbenik za strokovne module Upravljanje s programirljivimi napravami v programu Tehnik računalništva, Digitalna tehnika v programu Tehnik mehatronike in Programirljive naprave v programu Elektrotehnik / [avtor, tehnične ilustracije Jaka Albreht]. - 1. izd., 1. natis. - Podsmreka : Pipinova knjiga, 2021 ISBN 978-961-94987-6-7 COBISS.SI-ID 37995011
Vsebina Predgovor �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 1 Številski sestavi �������������������������������������������������������������������������������������������������������������������������������������������������������������������� 2 Desetiški ali decimalni številski sestav ������������������������������������������������������������������������������������������������������������������������ 2 Dvojiški ali binarni številski sestav �������������������������������������������������������������������������������������������������������������������������������� 2 Šestnajstiški ali heksadecimalni številski sestav ������������������������������������������������������������������������������������������������������ 3 Osmiški ali oktalni sestav �������������������������������������������������������������������������������������������������������������������������������������������������� 3 Pretvarjanje med številskimi sestavi ���������������������������������������������������������������������������������������������������������������������������� 3 Pretvarjanje v desetiški sestav ������������������������������������������������������������������������������������������������������������������������������ 3 Pretvarjanje iz desetiškega sestava �������������������������������������������������������������������������������������������������������������������� 4 Direktna pretvorba ���������������������������������������������������������������������������������������������������������������������������������������������������� 5 Utrjevanje znanja ���������������������������������������������������������������������������������������������������������������������������������������������������������������� 6 Kombinacijska vezja �������������������������������������������������������������������������������������������������������������������������������������������������������� 7 Boolova algebra ������������������������������������������������������������������������������������������������������������������������������������������������������������������ 7 Logične funkcije ������������������������������������������������������������������������������������������������������������������������������������������������������������������ 8 Logična funkcija IN (AND) �������������������������������������������������������������������������������������������������������������������������������������� 8 Logična funkcija ALI (OR) ���������������������������������������������������������������������������������������������������������������������������������������� 9 Logična funkcija NE (NOT) ������������������������������������������������������������������������������������������������������������������������������������10 Logična funkcija NEIN (NAND) ����������������������������������������������������������������������������������������������������������������������������11 Logična funkcija NEALI (NOR) ������������������������������������������������������������������������������������������������������������������������������12 Logična funkcija XOR (ANTIVALENCA, EKSKLUZIVNI ALI) ��������������������������������������������������������������������������13 Logična funkcija XNOR (EKVIVALENCA, EKSKLUZIVNI NEALI) ������������������������������������������������������������������14 Pregled logičnih funkcij ����������������������������������������������������������������������������������������������������������������������������������������15 Pravila Boolove algebre ��������������������������������������������������������������������������������������������������������������������������������������������������16 Analiza logičnih vezij ������������������������������������������������������������������������������������������������������������������������������������������������������19 Sinteza logičnih vezij ������������������������������������������������������������������������������������������������������������������������������������������������������21 Zapis pravilnostne tabele na podlagi besedila ��������������������������������������������������������������������������������������������21 Zapis logične funkcije na podlagi besedila ����������������������������������������������������������������������������������������������������22 Zapis logične funkcije na podlagi pravilnostne tabele ������������������������������������������������������������������������������22 Logično vezje ����������������������������������������������������������������������������������������������������������������������������������������������������������23 Uporaba integriranih vezij ����������������������������������������������������������������������������������������������������������������������������������24 Poenostavljanje logičnih funkcij ��������������������������������������������������������������������������������������������������������������������������������27 Uporaba pravil Boolove algebre ������������������������������������������������������������������������������������������������������������������������27 Veitchev diagram ����������������������������������������������������������������������������������������������������������������������������������������������������28 Pretvarjanje logičnih funkcij ����������������������������������������������������������������������������������������������������������������������������������������35 Utrjevanje znanja ��������������������������������������������������������������������������������������������������������������������������������������������������������������38 III
Sekvenčna vezja ����������������������������������������������������������������������������������������������������������������������������������������������������������������41 Spominske celice ��������������������������������������������������������������������������������������������������������������������������������������������������������������41 Celica SR brez proženja ����������������������������������������������������������������������������������������������������������������������������������������41 Celica SR s statičnim proženjem ������������������������������������������������������������������������������������������������������������������������44 Celica D s statičnim proženjem ��������������������������������������������������������������������������������������������������������������������������45 Spominske celice z dinamičnim proženjem ��������������������������������������������������������������������������������������������������46 Spominske celice z asinhronskimi vhodi ��������������������������������������������������������������������������������������������������������50 Pregled spominskih celic ��������������������������������������������������������������������������������������������������������������������������������������50 Števci ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������51 Delilnik frekvence ����������������������������������������������������������������������������������������������������������������������������������������������������51 Števec po modulu N ����������������������������������������������������������������������������������������������������������������������������������������������51 Registri ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������52 Časovne funkcije ����������������������������������������������������������������������������������������������������������������������������������������������������������������54 Skrajševanje dolgih impulzov �����������������������������������������������������������������������������������������������������������������������������54 Podaljševanje kratkih impulzov ��������������������������������������������������������������������������������������������������������������������������54 Časovni premik impulzov ��������������������������������������������������������������������������������������������������������������������������������������55 Zakasnjen vklop ������������������������������������������������������������������������������������������������������������������������������������������������������55 Zakasnjen izklop ������������������������������������������������������������������������������������������������������������������������������������������������������55 Utrjevanje znanja ��������������������������������������������������������������������������������������������������������������������������������������������������������������56 Mikrokrmilnik ��������������������������������������������������������������������������������������������������������������������������������������������������������������������57 Osnovna zgradba mikrokrmilnika ������������������������������������������������������������������������������������������������������������������������������57 Procesor ��������������������������������������������������������������������������������������������������������������������������������������������������������������������57 Pomnilnik ������������������������������������������������������������������������������������������������������������������������������������������������������������������58 Vhodno-izhodni sistem ����������������������������������������������������������������������������������������������������������������������������������������58 Sistem vodil ��������������������������������������������������������������������������������������������������������������������������������������������������������������59 Generator urinega signala ����������������������������������������������������������������������������������������������������������������������������������59 Analogno-digitalni pretvornik ��������������������������������������������������������������������������������������������������������������������������59 Digitalno-analogni pretvornik ����������������������������������������������������������������������������������������������������������������������������61 Vhodno-izhodni elementi ��������������������������������������������������������������������������������������������������������������������������������������������63 Digitalni vhod ����������������������������������������������������������������������������������������������������������������������������������������������������������63 Digitalni izhod ����������������������������������������������������������������������������������������������������������������������������������������������������������64 Analogni vhod ��������������������������������������������������������������������������������������������������������������������������������������������������������65 Razvojna plošča Arduino ������������������������������������������������������������������������������������������������������������������������������������������������66 Programiranje ��������������������������������������������������������������������������������������������������������������������������������������������������������������������67 Podajanje algoritmov ��������������������������������������������������������������������������������������������������������������������������������������������67 Zbirni jezik ����������������������������������������������������������������������������������������������������������������������������������������������������������������68 Arduino programiranje ������������������������������������������������������������������������������������������������������������������������������������������69 Primeri programiranja Arduino ��������������������������������������������������������������������������������������������������������������������������78 Utrjevanje znanja ��������������������������������������������������������������������������������������������������������������������������������������������������������������83
IV
Krmilja ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������84 Vrste krmilij ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������84 Trajno ožičena krmilja ������������������������������������������������������������������������������������������������������������������������������������������84 Programirljiva krmilja ��������������������������������������������������������������������������������������������������������������������������������������������84 Kombinacijska in sekvenčna krmilja ����������������������������������������������������������������������������������������������������������������85 Načini opisovanja krmilja ����������������������������������������������������������������������������������������������������������������������������������������������85 Besedni opis krmilja ����������������������������������������������������������������������������������������������������������������������������������������������85 Časovni diagram ����������������������������������������������������������������������������������������������������������������������������������������������������85 Pravilnostna tabela in logična funkcija ������������������������������������������������������������������������������������������������������������86 Krmilni in kontaktni načrt ������������������������������������������������������������������������������������������������������������������������������������87 Funkcijski načrt ��������������������������������������������������������������������������������������������������������������������������������������������������������89 Koračna veriga ����������������������������������������������������������������������������������������������������������������������������������������������������������90 Programirljivi logični krmilnik ��������������������������������������������������������������������������������������������������������������������������������������90 Zgradba PLK ��������������������������������������������������������������������������������������������������������������������������������������������������������������91 Delovanje PLK ����������������������������������������������������������������������������������������������������������������������������������������������������������94 Načini programiranja PLK ������������������������������������������������������������������������������������������������������������������������������������95 Utrjevanje znanja ����������������������������������������������������������������������������������������������������������������������������������������������������������� 101 Rešitve ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 103 Številski sestavi ��������������������������������������������������������������������������������������������������������������������������������������������������������������� 103 Kombinacijska vezja ����������������������������������������������������������������������������������������������������������������������������������������������������� 103 Sekvenčna vezja ������������������������������������������������������������������������������������������������������������������������������������������������������������� 111 Mikrokrmilnik ������������������������������������������������������������������������������������������������������������������������������������������������������������������� 112 Krmilja ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 113 LITERATURA ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 118
V
Predgovor
Predgovor Učbenik Upravljanje s programirljivimi napravami 2 je namenjen srednješolskemu strokovnemu izobraževanju (SSI). Vključuje vsebine modulov Digitalna tehnika, Upravljanje s programirljivimi napravami (2. sklop – programirljive naprave) in Programirljive naprave. Modul Digitalna tehnika (DGT) se poučuje v izobraževalnem programu Tehnik mehatronike, modul Upravljanje s programirljivimi napravami (UPN) v programu Tehnik računalništva in modul Programirljive naprave (PRN) v programu Elektrotehnik. V prvem poglavju Številski sestavi obravnavamo številske sestave in pretvarjanje med njimi. Drugo poglavje Kombinacijska vezja nam podaja osnove Boolove algebre, logične funkcije in vezja ter poenostavljanje logičnih funkcij. Sledi poglavje Sekvenčna vezja, v katerem so predstavljene spominske celice, števci, registri in časovne funkcije. V poglavju Mikrokrmilnik je prikazana osnovna zgradba mikrokrmilnika in njegova uporaba, razvojna plošča Arduino in njeno programiranje. V zadnjem poglavju Krmilja sledi celosten pregled krmilij z različnimi načini opisovanja. Na kratko je predstavljen tudi programirljivi logični krmilnik (PLK) in njegovo programiranje. Vsako poglavje vsebuje naloge in vprašanja za utrjevanje znanja, na koncu učbenika so posameznim poglavjem dodane še ustrezne rešitve. Avtor
1
Upravljanje s programirljivimi napravami 2
Številski sestavi Številski sestav ali sistem je množica števk, s katerimi lahko zapišemo število. To množico označimo s S. Vsebuje števke, ki jih imamo na voljo za zapis števila. Osnovo ali bazo številskega sestava označimo z B; pove nam, koliko števk je v množici S. Števila lahko predstavimo v različnih številskih sestavih. Spoznali bomo najpogosteje uporabljane.
Desetiški ali decimalni številski sestav Desetiški številski sestav vsebuje 10 števk od 0 do 9. S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} B = 10
Število zapišemo tako, da iz množice S vzamemo nekaj števk in jih zapišemo skupaj - zato ime sestav. Število 23710 smo na primer zapisali tako, da smo števke 2, 3 in 7 sestavili skupaj. V zapisu dodamo indeks 10, ki označuje bazo sistema. Na ta način vemo, v katerem sestavu je število zapisano. Najpogosteje se uporablja desetiški številski sestav.
Dvojiški ali binarni številski sestav V računalništvu in krmilni tehniki se največ uporablja dvojiški ali binarni sestav. Ta vsebuje zgolj števki 0 in 1. Primer zapisa v dvojiškem sestavu je 1102. S = {0, 1} B=2
V nadaljevanju bomo pri obravnavi digitalnih vezij uporabljali predvsem dvojiški sestav. Logična vrata, ki so osnovni gradnik digitalnih vezij, so zgrajena iz tranzistorjev, ki delujejo kot stikala. Stikalo je lahko sklenjeno ali razklenjeno. Če imamo na bazi tranzistorja napetost, je tranzistor odprt, sicer pa zaprt. Imamo torej samo dve stanji. Nizko (low) stanje predstavlja 0, visoko (high) stanje pa 1. Osnovno enoto binarne informacije imenujemo bit (binary digit) in jo predstavljata binarni vrednosti 0 in 1. Z enim bitom lahko podamo samo dve stanji (0 in 1), z dvema bitoma štiri stanja (00, 01, 10, 11), s tremi biti osem (000, 001, 010, 011, 100, 101, 110, 111) in tako naprej. V splošnem velja, da je število stanj enako 2n, pri čemer je n število bitov. Skupino osmih bitov imenujemo bajt (byte). Pri zapisu števila v dvojiškem sestavu posamezne števke imenujemo tudi biti. Bit, ki je na desni strani, se imenuje najmanj pomemben bit (LSB – Least Significant Bit), bit na levi strani pa najbolj pomemben bit (MSB – Most Significant Bit). Primer: MSB
LSB
10110
2
Številski sestavi – Šestnajstiški ali heksadecimalni številski sestav
Šestnajstiški ali heksadecimalni številski sestav Osnova šestnajstiškega sestava je 16. Vendar v primerjavi s prejšnjima sestavoma vsebuje tudi črke. S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} B = 16
Opazimo lahko, da so števke od 10 do 15 zamenjane z ustreznimi črkami. A = 10, B = 11, C = 12, D = 13, E = 14, F = 15
Šestnajstiški sestav je primeren za uporabo v mikrokrmilniških sistemih, v katerih običajno obdelujemo informacije velikosti 4, 8, 16, 32 bitov. Če bi uporabljali dvojiški sistem, bi za večja števila zapis postal nepregleden. Zato bite združujemo, kar bomo v nadaljevanju videli pri pretvarjanju iz dvojiškega v šestnajstiški sestav. Pri programiranju označujemo zapis v šestnajstiškem sistemu z dodajanjem predpone (npr. 0x3F5 ali $3F5).
Osmiški ali oktalni sestav Ta sestav vključuje števke od 0 do 7. S = {0, 1, 2, 3, 4, 5, 6, 7} B=8
Primer zapisa števila v osmiškem sestavu je 5408.
Pretvarjanje med številskimi sestavi Za procesiranje informacij z mikrokrmilniškimi sistemi moramo števila podajati predvsem v dvojiškem in šestnajstiškem sestavu. Zato je treba znati pretvarjati med različnimi sestavi.
Pretvarjanje v desetiški sestav Pretvorimo število 1002 iz dvojiškega v desetiški sestav. Število lahko v desetiškem sestavu zapišemo s polinomom: N = CnBn + … + C2B2 + C1B1 + C0B0 + C-1B-1 + C-2B-2 + …
Koeficient polinoma B je osnova sestava, iz katerega pretvarjamo, Cn je posamezna števka, stopnja polinoma n pa nam pove število mest, pri čemer mesta označujemo z desne proti levi z indeksi od 0 naprej. V našem primeru bo postopek pretvorbe tak: N = C0B0 + C1B1 + C2B2 = 0 . 20 + 0 . 21 + 1 . 22 = 0 + 0 + 4 = 410
Podobno lahko storimo pri pretvarjanju iz osmiškega v desetiški sestav. 378 = N10 N = C0B0 + C1B1 = 7 . 80 + 3 . 81 = 7 + 24 = 3110
3
Kombinacijska vezja
Kombinacijska vezja Boolova algebra V prejšnjem poglavju smo spoznali različne številske sestave. Izmed vseh obravnavanih ima dvojiški sestav največjo uporabno vrednost v digitalni tehniki, katere osnovno matematično orodje je Boolova algebra. V Boolovi algebri lahko vsako izjavo obravnavamo kot spremenljivko. Izjava je lahko: zz zz
pravilna oz. resnična (true); spremenljivka ima vrednost 1 ali nepravilna oz. neresnična (false); spremenljivka ima vrednost 0.
Pravimo, da gre za Boolov (Boolean) tip spremenljivke, ki zavzame zgolj dve vrednosti/stanji. Primer: Izjava A »Tipka je pritisnjena.« je lahko resnična (A = 1) ali neresnična (A = 0). V matematiki poznamo npr. realna števila, nad katerimi lahko izvajamo matematične operacije (množenje, kvadriranje, deljenje itd.). Tudi nad Boolovim tipom spremenljivk lahko izvajamo določene operacije. Vendar so v tem primeru možne zgolj tri osnovne logične operacije: zz zz zz
logično množenje ali disjunkcija, logično seštevanje ali konjunkcija, logično zanikanje ali negacija.
V spodnji tabeli so prikazane tri osnovne logične operacije in njihov zapis z različnimi operatorji. Spremenljivke Boolovega tipa bomo označevali z velikimi tiskanimi črkami (A, B, C …); zaradi boljše preglednosti bomo v nadaljevanju uporabljali logične operatorje {+, ∙, A}. Logično seštevanje (konjunkcija)
Logično množenje (disjunkcija)
Logično zanikanje (negacija)
A+B
A.B
A
AÚB
AÙB
ØA
A || B
A && B
!A
Tabela 1: Osnovne logične operacije
Rezultat logičnega množenja bo 1, če bodo vse spremenljivke enake 1. Torej v primeru dveh spremenljivk velja 1 . 1 = 1. V vseh ostalih primerih je rezultat enak 0. Pri logičnem seštevanju je rezultat enak 1, če ima vsaj ena spremenljivka vrednost 1 (npr. 1 + 0 = 1). Rezultat logičnega zanikanja oz. negacije bo negirana vrednost spremenljivke (npr. 0 = 1).
7
Upravljanje s programirljivimi napravami 2
Logične funkcije Funkcija vhodni vrednosti priredi izhodno vrednost. V nadaljevanju se bomo ukvarjali z logičnimi funkcijami, zato bodo vhodne spremenljivke in izhodna imele vrednost 0 ali 1. Lahko tudi rečemo, da sta definicijsko območje in zaloga vrednosti logične funkcije enaki {0, 1}. Funkcijo lahko zapišemo Y = f(A, B …) in ponazorimo z blokom (Slika 1). Bloku, ki ponazarja določeno logično funkcijo, pravimo logična vrata (logic gate). Na levi strani logičnih vrat so vhodi, na desni pa izhod. Vhode oziroma vhodne spremenljivke bomo označevali z velikimi tiskanimi črkami (A, B, C …), izhod oziroma izhodno spremenljivko pa z Y. VHODI A B C D
IZHOD LOGIČNA VRATA
Y
Slika 1: Logična vrata
V nadaljevanju si bomo ogledali tri osnovne (IN, ALI, NE) in štiri sestavljene logične funkcije (NEIN, NEALI, XOR, XNOR).
Logična funkcija IN (AND) Izhod IN (AND) logične funkcije bo enak 1, če bodo vsi vhodi enaki 1. Predpostavimo, da ima naša logična funkcija dva vhoda. Označili ju bomo z A in B, izhod pa z Y. Na vsakem vhodu imamo lahko le vrednost 0 oziroma 1, enako velja tudi za izhod. Oglejmo si vse možne kombinacije, ki se lahko pojavijo na vhodih. Za prikaz bomo uporabili pravilnostno tabelo. V njej so podane vse možne vhodne kombinacije in ustrezna izhodna vrednost. Glede na to, da smo se omejili zgolj na dve vhodni spremenljivki (A, B), bo imela tabela štiri možne vhodne kombinacije. V splošnem velja, da je vseh možnih kombinacij 2n, pri čemer je n število vhodnih spremenljivk. Vhod
Vhod
Izhod
A
B
Y
0
0
0
0
1
0
1
0
0
1
1
1
Tabela 2: Pravilnostna tabela funkcije IN
V primeru več vhodnih spremenljivk bi bila tabela obsežnejša. Na izhodu bi torej dobili logično vrednost 1, če bi bile vse vhodne spremenljivke enake 1. V nadaljevanju se bomo pri obravnavi logičnih funkcij omejili le na dve vhodni spremenljivki (A, B). Simbole logičnih vrat najpogosteje prikazujemo po »evropskem« standardu IEC ali »ameriškem« standardu ANSI. Na začetku bomo pri obravnavi logičnih funkcij navedli simbola po obeh standardih. V nadaljevanju pa bomo pri analizi in sintezi logičnih vezij uporabljali simbole IEC. 8
Sekvenčna vezja
Sekvenčna vezja Vezja, ki smo jih predhodno obravnavali, se imenujejo kombinacijska vezja. Pri takih vezjih je izhod odvisen le od trenutne vrednosti vhodov. Vsaki kombinaciji vhodnih vrednosti pripada izhodna vrednost. Pri sekvenčnih vezjih pa izhod ni odvisen le od trenutnih, temveč tudi od preteklih vhodnih vrednosti. Sekvenčna vezja vsebujejo elemente, ki omogočajo shranjevanje podatkov o prejšnjem stanju. Takim elementom pravimo spominske ali pomnilne celice. V primerjavi s kombinacijskimi vezji bomo pri sekvenčnih vezjih izhod označevali s Q in ga imenovali tudi (notranje) stanje Q.
Spominske celice Spominske celice delimo na celice brez proženja ter celice s statičnim in dinamičnim proženjem. Najdemo jih v najrazličnejših vezjih, kot so pomnilnik, delilnik frekvence, števci, registri in vezja za izvedbo časovnih funkcij. V nadaljevanju bomo videli, da so tudi spominske celice sestavljene iz logičnih vrat, ki smo jih spoznali v prejšnjem poglavju.
Celica SR brez proženja Do najosnovnejše celice bomo prišli postopoma. Naš cilj je doseči shranjevanje podatka velikosti enega bita. Dvoje vrat NE bomo povezali zaporedno, na vhod vezja pa priključili preklopno stikalo, kot prikazuje Slika 28. A 1
1
Slika 28: Vezje za shranjevanje 1-bitnega podatka
Ko je stikalo v zgornjem položaju, smo v vezje zapisali 1-bitni podatek A(0, 1). Pri preklopu stikala v spodnji položaj pa se zapisani podatek ohrani v vezju. Povratna zveza z izhoda na vhod vezja je ključna za omogočanje shranjevanja podatka. Vezje lahko tudi preoblikujemo, tako da vrata NE izvedemo z vrati NEALI (Slika 29). A
³1
³1
Slika 29: Preoblikovano vezje z vrati NEALI
Vezje lahko še dodatno preoblikujemo tako, da ne uporabljamo več stikala (Slika 30). Prek vhodov S in R lahko shranimo želeno vrednost (0, 1). 41
Upravljanje s programirljivimi napravami 2
S
R
³1
³1
Slika 30: Spominska celica SR z vrati NEALI
Vezje na Sliki 30 prikazujemo na naslednji način. Logična vrata so postavljena ena nad drugo. Opazimo lahko, da sta izhoda vrat NEALI povezana na vhoda drugih vrat NEALI. Prav ta povratna zveza z izhoda na vhod nam omogoča, da se logična vrednost ohrani. Na ta način torej dosežemo spominsko delovanje, kar je najpomembnejša lastnost spominskih celic. +U S ³1 R
Q R D(Q)
³1
R
Q
R
R D(Q)
Slika 31: Spominska celica SR
Celica SR je torej osnovna spominska celica. Deluje tako, da shrani 1-bitni podatek, dokler je ne resetiramo. Ima dva vhoda (R – reset, S – set) in dva izhoda (Q, Q). Celico lahko zgradimo z uporabo logičnih vrat NEALI oz. NEIN. Analizirajmo delovanje celice SR z vrati NEALI. Za vrata NEALI velja pravilo A + 1 = 0. Predpostavimo, da je S = 1 in R = 0. V tem primeru bo Q = 0 in Q = 1. Celica je tedaj postavljena (SET). Lahko tudi rečemo, da smo shranili logično 1. Spremenimo sedaj S na 0. Ker gre Q, ki je enak 1, prek povratne povezave na vhod zgornjih vrat NEALI, bo Q ostal 0 oz. Q bo ohranil logično 1. Vidimo, da je celica ostala postavljena oz. stanje Q = 1 se je ohranilo. Naj bo R = 1 in S = 0. Izhod Q bo v tem primeru enak 0 in celica je pobrisana (RESET). Na ta način smo shranili logično 0. Vrnimo se zopet v izhodišče (R = 0, S = 0). Celica bo ostala pobrisana oz. stanje Q = 0 se ohrani. Poglejmo, kaj se zgodi, če imamo na vhodih R in S istočasno logično 1. Na izhodu vrat NEALI dobimo logično 0, če je vsaj eden izmed vhodov enak 1. Q in Q sta tako oba enaka 0, kar pa je protislovno. Ne moremo hkrati postaviti in pobrisati izhoda. Pri izvedbi celice SR z vrati NEIN bi prav tako nastalo protislovje, le da bi bila takrat Q in Q enaka 1.
42
Mikrokrmilnik
Mikrokrmilnik Mikrokrmilnik (microcontroller - MCU, uC, mC) je integrirano vezje oz. čip, ki ga lahko sprogramiramo, da opravlja določeno nalogo. Običajno je vgrajen v večjo napravo, zato mu pravimo tudi vgradni sistem (embedded system). Najdemo ga v avtomobilih, pametnih telefonih, gospodinjskih napravah idr. Razlogi za njegovo množično uporabo so nizka cena, univerzalnost uporabe, majhna poraba energije, možnost razširitve sistema in nadgradnja programa. Z razvojem postajajo mikrokrmilniki zmogljivejši, manjši in cenejši.
Osnovna zgradba mikrokrmilnika Centralna procesna enota, pomnilnik in vhodno-izhodni sistem so glavni elementi mikrokrmilnika. Zgrajeni so iz več tisoč tranzistorjev, ki so integrirani na eni ploščici silicija. Tranzistorji, ki delujejo kot stikala, so osnovni gradniki sekvenčnih in kombinacijskih vezij, ki sestavljajo mikrokrmilnik. Mnogi proizvajalci realizirajo znotraj enega integriranega vezja vse navedene elemente. Vhodno-izhodni (I/O) sistem
Centralna procesna enota (CPE)
Pomnilnik
Slika 68: Osnovna zgradba mikrokrmilnika
Slika 69: Mikrokrmilnik (integrirano vezje)
Procesor Procesor oz. centralna procesna enota - CPE (central processing unit - CPU) jemlje iz pomnilnika ukaze in jih izvršuje. Znotraj procesorja so: zz aritmetično logična enota (ALE), ki izvaja osnovne aritmetične, logične in primerjalne operacije, zz krmilna enota, ki vodi in nadzira delovanje mikrokrmilnika, zz registri, ki jih sestavljajo pomnilne celice (npr. programski števec, akumulatorji, statusni register idr.), zz notranje vodilo, ki povezuje vse navedene elemente. Pomembna podatka procesorja sta hitrost oz. frekvenca delovanja (npr. 16 MHz) in velikost podatkov, ki jih procesor obdeluje (npr. 8-bitni, 32-bitni). CPE se torej poleg ostalih elementov nahaja 57
Upravljanje s programirljivimi napravami 2
znotraj mikrokrmilnika. Najdemo pa ga tudi kot samostojno integrirano vezje, ki mu pravimo mikroprocesor (microprocessor – uP, mP).
Pomnilnik Pomnilnik (memory) hrani program in podatke. Sestavljen je iz pomnilniških besed, te pa iz spominskih celic, izmed katerih vsaka hrani 1 bit informacije. Pomnilniška beseda ima svoj naslov, ki se med delovanjem mikrokrmilnika ne spreminja, medtem ko se vsebina lahko. Dolžina pomnilniške besede nam pove, iz koliko spominskih celic je le-ta sestavljena. Največkrat je dolžina pomnilniške besede 8 (bitov). Pomembna podatka pomnilnika sta torej naslov (npr. 16-bitni) in vsebina (npr. 8-bitna). Procesor med delovanjem naključno dostopa do pomnilnika. Naslov (16-bitni) Vsebina (8-bitna) $0000 $0001 $0002 $0003
00001011
… $FFFF
…
11011010 10000111 10101011 10100001
Slika 70: Prikaz zgradbe pomnilnika
Vrste pomnilnikov zz
zz
Bralno-pisalni pomnilnik (random access memory - RAM) Njegova vsebina se lahko spreminja (bere ali piše). Primer bralno-pisalnega pomnilnika je statični RAM (sRAM) oz. delovni pomnilnik. Njegova vsebina se ob prekinitvi napajanja izgubi. V njem so shranjene vrednosti spremenljivk. Bralni pomnilnik (read only memory - ROM) Vsebino bralnega pomnilnika se lahko le bere. Primeri bralnih pomnilnikov so EPROM, EEPROM in FLASH. Vsebina bralnega pomnilnika se ob prekinitvi napajanja ne izgubi. V FLASH-u je shranjen uporabniški program, v EEPROM-u pa sistemski program. Pri EPROM-u se vsebina zapiše s pomočjo ultravijolične svetlobe, pri EEPROM-u pa s pomočjo električnih signalov.
Vhodno-izhodni sistem Vhodno-izhodni (I/O – input/output) sistem mikrokrmilniku omogoča povezljivost z okoljem oz. drugimi elementi. Večino pinov lahko programsko določimo kot vhodne ali izhodne. Če je pin vhod ni, bomo na njem odčitali signal, na izhodnem pinu pa postavili signal. Več pinov, običajno 8, sestavlja vrata (port).
58
Upravljanje s programirljivimi napravami 2
Krmilja Krmilja so sistemi, s katerimi lahko vplivamo na velikost in časovni potek izhodne veličine. Izhodno veličino imenujemo krmiljena, vhodno pa krmilna veličina, saj z njo vplivamo na krmiljeno. V nadaljevanju bodo predstavljeni različne izvedbe krmilja in načini za opisovanje krmilij. Nekatere smo spoznali že v prejšnjih poglavjih.
Vrste krmilij Krmilja lahko delimo glede na izvedbo in delovanje. Glede na izvedbo delimo krmilja na trajno ožičena in programirljiva krmilja.
Trajno ožičena krmilja Zanje je značilno to, da lahko spremenimo delovanje le s spremembo ožičenja. Potreben je torej poseg v ožičenje krmilja in sprememba povezave elementov. zz
zz
Elektromehanska krmilja (relejska vezja) Z vidika razvoja krmilnih sistemov je bil to prvi način izvedbe. Pri tej izvedbi uporabljamo stikala, tipke, releje, ki jih ustrezno povežemo, da opravljajo določeno logično funkcijo. Elektronska krmilja (digitalna elektronska vezja) S pojavom polprevodniških elementov je stikalo zamenjal tranzistor. Krmilja sestavljajo integrirana vezja z logičnimi vrati, spominskimi celicami, števci, registri idr.
Programirljiva krmilja Pri tej izvedbi krmilij je delovanje določeno s programom, ki je zapisan v pomnilniku. Če želimo spremeniti delovanje krmilij, le spremenimo program. To je bistveno enostavneje kot pri ožičenih krmiljih, pri katerih je treba posamezne elemente povezati na drugačen način. Poleg enostavne spremembe delovanja so prednosti programirljivih krmilij še: zz
Zmanjšano ožičenje. V primerjavi z elektromehanskimi krmilji je večina povezav izvedena znotraj programirljive naprave. Treba je le priključiti vhodno-izhodne elemente.
zz
Majhna poraba energije. Mikroprocesor porabi manj energije kot množica relejev pri elektromehanskih krmiljih.
zz
Programirljiva krmilja zavzamejo manj prostora. Krmilje, izvedeno z več 10 releji, enostavno nadomesti mikroprocesorsko vezje, izhodne enote pa ostanejo enake.
84
Krmilja – Načini opisovanja krmilja
zz
Možnost komunikacije z drugimi sistemi. Programirljivo napravo lahko povežemo z drugimi napravami, s katerimi komuniciramo po različnih standardnih protokolih.
zz
Programiranje prek računalnika. V programskem okolju napišemo program in ga naložimo na programirljivo napravo.
Med programirljiva krmilja lahko umestimo mikrokrmilnik, ki smo ga spoznali v prejšnjem poglavju, in programirljivi logični krmilnik (PLK), ki si ga bomo ogledali v nadaljevanju. Tega se najpogosteje uporablja pri vodenju industrijskih procesov.
Kombinacijska in sekvenčna krmilja Krmilja lahko razdelimo tudi glede na delovanje oziroma glede na to, kakšna je povezava med vhodom in izhodom. Ločimo kombinacijska in sekvenčna krmilja. Pri kombinacijskih ali logičnih krmiljih so izhodne vrednosti odvisne le od trenutnih vhodnih vred nosti. Pri sekvenčnih krmiljih pa so izhodne vrednosti odvisne ne le od trenutnih, ampak tudi od preteklih vrednosti. Sekvenčna krmilja vsebujejo tudi elemente s spominskim delovanjem. Med sekvenčna krmilja uvrščamo koračna krmilja. Izhodne spremenljivke se pri koračnih krmiljih spreminjajo po korakih iz enega v drugo stanje. Prehod iz enega v drugo stanje se zgodi, če je izpolnjen pogoj, ki ga določa logična ali časovna funkcija.
Načini opisovanja krmilja Preden se lotimo načrtovanja in izdelave krmilja, je treba imeti jasno definiran in splošno razumljiv opis problema. Uporabljamo lahko različne načine opisovanja krmilij.
Besedni opis krmilja Pri besednem opisu moramo jasno, nedvoumno opisati problem. Gre za tehniški opis delovanja krmilja (opišemo, kaj predstavljajo vhodne in izhodne spremenljivke ter kakšna je funkcija, ki jih povezuje).
Časovni diagram Časovni diagrami prikazujejo časovne poteke posameznih vhodnih in izhodnih spremenljivk ter njihove medsebojne časovne odnose. Z uporabo časovnega diagrama lahko prikažemo, kako se stanja oz. dogodki časovno spreminjajo. Časovne diagrame smo uporabljali pri obravnavi spominskih celic, števcev in časovnih funkcij. V Tabeli 29 so prikazani časovni diagrami logičnih funkcij.
85
Upravljanje s programirljivimi napravami 2
LITERATURA Harb, Robert: Krmilna tehnika, Tehniška založba Slovenije, Ljubljana, 2008. Štandeker, Cveto: Krmilna in regulacijska tehnika, Tehniška založba Slovenije, Ljubljana, 1983. Hvasti, Aleš: Upravljanje s programirljivimi napravami 1, Pipinova knjiga, Podsmreka, 2017. Bartenschlager, Jörg idr.: Mehatronika, Pasadena, Ljubljana, 2009. Glamnik, Andro; Mladenović Jerman, Helena: Zbirka nalog za poklicno maturo, Samozaložba, Ljubljana, 2018. Pucihar, Gorazd; Kotnik, Tadej: Digitalne strukture: Zbirka rešenih nalog, Založba FE in FRI, Ljubljana, 2011.
118